From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 80E187CE3 for ; Sat, 3 Jun 2017 11:03:26 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jun 2017 02:03:24 -0700 Message-Id: Date: 03 Jun 2017 02:03:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,289,1493708400"; d="scan'208";a="1156102498" Received: from unknown (HELO localhost.localdomain) ([10.240.176.250]) by fmsmga001.fm.intel.com with ESMTP; 03 Jun 2017 02:03:15 -0700 Content-Type: multipart/alternative; boundary="===============7733484947314655520==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org CC: ajit.khaparde@broadcom.com X-Mailman-Approved-At: Mon, 05 Jun 2017 15:27:13 +0200 Subject: [dpdk-test-report] |FAILURE| pw24987 [PATCH v4 02/26] net/bnxt: code reorg to properly allocate resources for PF/VF X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jun 2017 09:03:28 -0000 --===============7733484947314655520== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKCmh0dHA6 Ly9kcGRrLm9yZy9wYXRjaC8yNDk4NwoKX0NvbXBpbGF0aW9uIGlzc3Vlc18KClN1Ym1pdHRlcjog QWppdCBLaGFwYXJkZSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+CkRhdGU6IFRodSwgIDEg SnVuIDIwMTcgMTI6MDY6NTkgLTA1MDAKRFBESyBnaXQgYmFzZWxpbmU6IFJlcG86ZHBkaywgQnJh bmNoOm1hc3RlciwgQ29tbWl0SUQ6OWQ5OTQ5ZDY3Y2E4NDUwMTE1NmJkMjY1MDFiYjE2ODkwMGYx YzZlNAoKUGF0Y2gyNDk4Ny0yNDk4NyAtLT4gY29tcGlsZSBlcnJvcgpCdWlsZCBTdW1tYXJ5OiAy MSBCdWlsZHMgRG9uZSwgMCBTdWNjZXNzZnVsLCAyMSBGYWlsdXJlcwoKVGVzdCBlbnZpcm9ubWVu dCBhbmQgY29uZmlndXJhdGlvbiBhcyBiZWxvdzoKT1M6IFJIRUw3LjJfNjQKICAgIEtlcm5lbCBW ZXJzaW9uOjMuMTAuMC01MTQuMTAuMi5lbDcueDg2XzY0CiAgICBDUFUgaW5mbzpJbnRlbChSKSBY ZW9uKFIpIENQVSBFNS0yNjk5IHY0IEAgMi4yMEdIegogICAgR0NDIFZlcnNpb246Z2NjIChHQ0Mp IDQuOC41IDIwMTUwNjIzIChSZWQgSGF0IDQuOC41LTQpCiAgICBDbGFuZyBWZXJzaW9uOjMuNC4y CiAgICBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFyZWQKT1M6IFVCMTYxMF82NAog ICAgS2VybmVsIFZlcnNpb246NC44LjAtMjItZ2VuZXJpYwogICAgQ1BVIGluZm86SW50ZWwoUikg WGVvbihSKSBDUFUgRTUtMjY5OSB2NCBAIDIuMjBHSHoKICAgIEdDQyBWZXJzaW9uOmdjYyAoVWJ1 bnR1IDYuMi4wLTV1YnVudHUxMikgNi4yLjAgMjAxNjEwMDUKICAgIENsYW5nIFZlcnNpb246TkEK ICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtaWNjCk9TOiBSSEVMNy4zXzY0CiAgICBLZXJuZWwg VmVyc2lvbjozLjEwLjAtNTE0LjE2LjEuZWw3Lng4Nl82NAogICAgQ1BVIGluZm86SW50ZWwoUikg WGVvbihSKSBDUFUgRTUtMjY5OSB2NCBAIDIuMjBHSHoKICAgIEdDQyBWZXJzaW9uOmdjYyAoR0ND KSA0LjguNSAyMDE1MDYyMyAoUmVkIEhhdCA0LjguNS0xMSkKICAgIENsYW5nIFZlcnNpb246TkEK ICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtaWNjCk9TOiBGQzI1XzY0CiAgICBLZXJuZWwgVmVy c2lvbjo0LjguNi0zMDAuZmMyNS54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikg Q1BVIEU1LTI2OTkgdjQgQCAyLjIwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNi4zLjEg MjAxNjEyMjEgKFJlZCBIYXQgNi4zLjEtMSkKICAgIENsYW5nIFZlcnNpb246TkEKICAgIHg4Nl82 NC1uYXRpdmUtbGludXhhcHAtaWNjCk9TOiBGcmVlQlNEMTAuM182NAogICAgS2VybmVsIFZlcnNp b246MTAuMy1SRUxFQVNFCiAgICBDUFUgaW5mbzogSW50ZWwoUikgWGVvbihSKSBDUFUgRTUtMjY5 OSB2NCBAIDIuMjBHSHogKDIxOTQuOTgtTUh6IEs4LWNsYXNzIENQVSkKICAgIEdDQyBWZXJzaW9u OmdjYyAoRnJlZUJTRCBQb3J0cyBDb2xsZWN0aW9uKSA0LjguNQogICAgQ2xhbmcgVmVyc2lvbjoz LjQuMQogICAgeDg2XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcKICAgIHg4Nl82NC1uYXRpdmUtYnNk YXBwLWdjYwpPUzogQ2VudE9TN182NAogICAgS2VybmVsIFZlcnNpb246My4xMC4wLTUxNC4xMC4y LmVsNy54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikgQ1BVIEU1LTI2OTkgdjMg QCAyLjMwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNC44LjUgMjAxNTA2MjMgKFJlZCBI YXQgNC44LjUtNCkKICAgIENsYW5nIFZlcnNpb246My40LjIKICAgIGk2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwogICAgeDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2Mtc2hhcmVkCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwpPUzog RkMyNF82NAogICAgS2VybmVsIFZlcnNpb246NC45LjEzLTEwMC5mYzI0Lng4Nl82NAogICAgQ1BV IGluZm86SW50ZWwoUikgWGVvbihSKSBDUFUgRTUtMjY5OSB2MyBAIDIuMzBHSHoKICAgIEdDQyBW ZXJzaW9uOmdjYyAoR0NDKSA2LjIuMSAyMDE2MDkxNiAoUmVkIEhhdCA2LjIuMS0yKQogICAgQ2xh bmcgVmVyc2lvbjozLjguMAogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MtZGVidWcKICAg IGk2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFu ZwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCiAgICB4ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYwpPUzogVUIxNjA0XzY0CiAgICBLZXJuZWwgVmVyc2lvbjo0LjQuMC03OC1n ZW5lcmljCiAgICBDUFUgaW5mbzpJbnRlbChSKSBYZW9uKFIpIENQVSBFNS0yNjk5IHYzIEAgMi4z MEdIegogICAgR0NDIFZlcnNpb246Z2NjIChVYnVudHUgNS40LjAtNnVidW50dTF+MTYuMDQuNCkg NS40LjAgMjAxNjA2MDkKICAgIENsYW5nIFZlcnNpb246My44LjAKICAgIGk2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjLXNoYXJlZAogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwoK RmFpbGVkIEJ1aWxkICMxOgpPUzogUkhFTDcuMl82NApUYXJnZXQ6IGk2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYwpQTURJTkZPIGJueHRfZXRoZGV2Lm8ucG1kLmMgIExEIGJueHRfZXRoZGV2Lm9JbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92 bmljX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTQ1OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19N T0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBu b3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9y IGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1JPQ0VfRFVBTF9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTQ4OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1Nf Uk9DRV9PTkxZX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF KTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk1MTo0OiBlcnJv cjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3ZuaWNfcWNmZ+KAmToK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBp bmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFf dHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCY cmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogZXhj ZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVy cm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0 OjMwOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3Ry dWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE2MjozNDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdS TV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJl c3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTcwOjIwOiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxF U19WRl9JRF9WQUxJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgcnRlX2NwdV90b19sZV8zMihIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZB TElEKTsKICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3Njoy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBI V1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg ICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0 ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTc2OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKA mQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc4OjQ1OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmRmbHRfcmluZ19ncnAgPSBydGVf bGVfdG9fY3B1XzE2KHJlc3AtPmRmbHRfcmluZ19ncnApOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9p Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZp bmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzo5Nzk6NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgdm5pYy0+cnNzX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPnJzc19ydWxlKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3Rv X2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk4MDo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYo cmVzcC0+Y29zX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgxOjM5OiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmxiX3J1bGUgPSBy dGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxiX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODI6 MzU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5p Yy0+bXJ1ID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5tcnUpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVf bGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4 NDo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAg cmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBlcnJvcjog 4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFTigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfREVGQVVMVDsKICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk4NTo0MjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT52bGFuX3N0cmlwID0gcnRlX2xlX3RvX2NwdV8z MihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODY6NDogZXJyb3I6IOKA mEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfVkxBTl9TVFJJUF9NT0RFOwogICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTg3OjQwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogIHZuaWMtPmJkX3N0YWxsID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9f Y3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RFOwog ICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg5OjQxOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJvY2VfZHVhbCA9 IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRl X2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 OTA6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5J Q19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREU7CiAgICBeCkluIGZp bGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTE6NDE6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+cm9jZV9vbmx5ID0gcnRlX2xlX3Rv X2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1 XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5Mjo0OiBlcnJv cjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjk5Mzo0MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yc3NfZGZsdF9jciA9IHJ0ZV9sZV90b19jcHVfMzIo cmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5NDo0OiBlcnJvcjog4oCY SFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51c2VkIHZh cmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1f dm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX3ZmX21hY+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTA4NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBi dXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9 OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3Qg aW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0 aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogc3RvcmFnZSBz aXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFIp OwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE2 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTA5NDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdS TV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAg aWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA5NzoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNL X1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0 ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19j cHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA5NzoyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JN X0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCY cmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQgdG9w IGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXTi gJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgIHN0cnVj dCBod3JtX2Z1bmNfcWNhcHNfb3V0cHV0ICpxY2FwcykKICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc5 OjE1OiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0 aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IElu IGZ1bmN0aW9uIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJk6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODE6MzA6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9y c3Njb3NfY3R4ID0gZmNmZy0+bnVtX3Jzc2Nvc19jdHhzOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE2ODI6MzM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgbWVtY3B5KHFjYXBzLT5tYWNfYWRkcmVzcywgZmNmZy0+ZGZsdF9tYWNf YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg0OjI3OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhf bDJfY3R4cyA9IGZjZmctPm51bV9sMl9jdHhzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE2ODU6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgcWNhcHMtPm1heF9yeF9yaW5ncyA9IGZjZmctPm51bV9yeF9yaW5nczsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NjoyODogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X3R4X3JpbmdzID0gZmNmZy0+bnVt X3R4X3JpbmdzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg3OjMwOiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhf Y21wbF9yaW5ncyA9IGZjZmctPm51bV9jbXBsX3JpbmdzOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE2ODg6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9zdGF0X2N0eCA9IGZjZmctPm51bV9zdGF0X2N0eHM7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2OTE6MjU6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF92bmljcyA9IGZj ZmctPm51bV92bmljczsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY5OTozMzogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4 X21jYXN0X2ZpbHRlcnMgPSBmY2ZnLT5udW1fbWNhc3RfZmlsdGVyczsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzAxOjMyOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfaHdfcmluZ19ncnBzID0gZmNmZy0+ bnVtX2h3X3JpbmdfZ3JwczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJ biBmdW5jdGlvbiDigJhibnh0X2h3cm1fcGZfZnVuY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6OTogZXJyb3I6 IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQog IHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2 Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9y XQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzA2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBb LVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu 4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzEwOjMzOiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVeKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEuZW5hYmxlcyA9IHJ0 ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlXi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTM6NDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4 Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBM X1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTU6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJ TkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTY6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MTc6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE4OjQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklD UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE5OjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRl X2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MzU6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEs IEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwK ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9y X2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3Rv X2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2 OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFy aWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0NToxMDogZXJyb3I6 IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0 ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgIGludCBudW1fdmZzKQogICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog SW4gZnVuY3Rpb24g4oCYcG9wdWxhdGVfdmZfZnVuY19jZmdfcmVx4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5lbmFi bGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwK ICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjM0OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9f bGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0ODo0OiBl cnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19NUlUgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0OTo0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1MDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9TVEFUX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX0NNUExfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1Mjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mzo0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1f UlhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1 NDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8z MuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NTU6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTY6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBT4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9IV19SSU5HX0dSUFMpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4 Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc1ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHJlcS0+bXR1ID0gcnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsg RVRIRVJfSERSX0xFTiArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzYwOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5tcnUgPSBydGVfY3B1X3RvX2xlXzE2KGJw LT5ldGhfZGV2LT5kYXRhLT5tdHUgKyBFVEhFUl9IRFJfTEVOICsKICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjI6NTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51 bV9yc3Njb3NfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yc3Njb3NfY3R4IC8KICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NjQ6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICByZXEtPm51bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfc3Rh dF9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjU6NTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9jbXBsX3JpbmdzID0g cnRlX2NwdV90b19sZV8xNihicC0+bWF4X2NwX3JpbmdzIC8KICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njc6NTogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV90 eF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF90eF9yaW5ncyAvIChudW1fdmZzICsg MSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc2ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogIHJlcS0+bnVtX3J4X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+ bWF4X3J4X3JpbmdzIC8gKG51bV92ZnMgKyAxKSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY5OjU6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fbDJfY3R4 cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9sMl9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICByZXEtPm51bV92bmljcyA9IHJ0ZV9jcHVfdG9fbGVfMTYoMSk7CiAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzcyOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg cmVxLT5udW1faHdfcmluZ19ncnBzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3JpbmdfZ3Jw cyAvCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog4oCYc3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFst V2Vycm9yXQogICAgICAgICAgIGludCB2ZikKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhyZXNlcnZlX3Jlc291cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjM6IGVycm9yOiBwYXNzaW5n IGFyZ3VtZW50IDEgb2Yg4oCYY29weV9mdW5jX2NmZ190b19xY2Fwc+KAmSBmcm9tIGluY29tcGF0 aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoY2Zn X3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3Fj YXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox Nzk1OjM6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYY29weV9mdW5jX2NmZ190b19x Y2Fwc+KAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlf ZnVuY19jZmdfdG9fcWNhcHMoY2ZnX3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTog ZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQg aXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9p ZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2Zn LAogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3Bm X29ubHnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE4NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1Nf U1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RF X0VOQUJMRSB8CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9S SU5HX01PREVfRElTQUJMRSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Fs bG9jYXRlX3Zmc+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBp bml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50 cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJyb3I6IChuZWFy IGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJv cjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTg4NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklO R19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE4ODY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1RE X1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9E SVNBQkxFKTsKICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxOTE3OjM6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhIV1JNX1BSRVDigJkKICAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTI0OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9N QUNfQUREUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJjIHx8IHJlc3AtPmVycm9yX2Nv ZGUpIHsKICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2RlYnVnLmg6NDY6MCwKICAgICAgICAgICAgICAgICBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9nZW5lcmljL3J0ZV9j eWNsZXMuaDo3NCwKICAgICAgICAgICAgICAgICBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfY3ljbGVzLmg6NzEs CiAgICAgICAgICAgICAgICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozODoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkzMToxMzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICByYywgcmVzcC0+ZXJyb3JfY29k ZSk7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfbG9nLmg6MzM0OjMyOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmFJURV9MT0figJkKICAgIFJURV9MT0dUWVBFXyAjIyB0LCAjIHQg IjogIiBfX1ZBX0FSR1NfXykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4 NTU6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12 YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNf YnVmX3JndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5p dGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9y OiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTY0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFst V2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx 4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHi gJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0g ey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVO Q19CVUZfUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBy ZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v aTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTk2NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZ CiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZfUkdUUiwgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjEx OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAo cmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVT VUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xl X3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8x Nih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hF Q0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHi gJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2J1Zl91bnJndHLigJk6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0 IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHVua25vd24g ZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTog ZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE5OTE6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vy cm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0 IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5 cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19CVUZf VU5SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5y ZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBI V1JNX1BSRVAocmVxLCBGVU5DX0JVRl9VTlJHVFIsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJl c3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5ODoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VM VDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90 b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5ODoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNL X1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5OTE6MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZ IFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfY2ZnX2RlZl9jcOKA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MjAwNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBi dXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9 OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3Qg aW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0 aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2OjI5OiBlcnJvcjogc3RvcmFnZSBz aXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0g cnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDk6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChy ZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDEzOjQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1LigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZ TkNfRVZFTlRfQ1IpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog ICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDE3OjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hF Q0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0g cnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3Rv X2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDE3OjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDi gJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2Zn X2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBm dW5jdGlvbiDigJhibnh0X2h3cm1fcmVqZWN0X2Z3ZF9yZXNw4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9y OiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUK ICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9 OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXi gJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBl cnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3 cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9SRUpFQ1RfRldEX1JFU1DigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90 b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMzI6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFJFSkVD VF9GV0RfUkVTUCwgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBc CiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhI V1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJv cl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90 b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAy NjozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZh cmlhYmxlXQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90 eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KY2MxOiBhbGwg d2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQgQnVpbGQgIzI6Ck9TOiBS SEVMNy4yXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0 X2V0aGRldi5vLnBtZC5jICBMRCBibnh0X2V0aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0 OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01P REXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBub3RlOiBlYWNoIHVuZGVjbGFy ZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQg YXBwZWFycyBpbgogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklD X01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6 NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUpOwogICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JT U19ERkxUX0NSX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3ZuaWNfcWNmZ+KAmToKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVy cm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5 cGUKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsK ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkg c3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiAobmVhciBp bml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjog c3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fdm5p Y19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJy b3I6IOKAmEhXUk1fVk5JQ19RQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NzA6MjA6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZB TElE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBydGVfY3B1 X3RvX2xlXzMyKEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUQpOwogICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog ICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6Mjogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVD S19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBy dGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90 b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc2OjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc4OjQ1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmRmbHRfcmluZ19ncnAgPSBydGVfbGVfdG9f Y3B1XzE2KHJlc3AtPmRmbHRfcmluZ19ncnApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBy dGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk3OTo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICB2bmljLT5yc3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+cnNzX3J1bGUpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19j cHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5ODA6NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+Y29zX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJl c3AtPmNvc19ydWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgxOjM5OiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmxiX3J1bGUgPSBy dGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxiX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVf bGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4 MjozNTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2 bmljLT5tcnUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPm1ydSk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUg cnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5ODQ6ODogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwog ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19j cHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBl cnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFTigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVMVDsKICAgICAgICAgICAgICAgICAgIF4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4NTo0MjogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT52bGFuX3N0cmlwID0gcnRlX2xlX3Rv X2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9f Y3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4Njo0OiBl cnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9EReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREU7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJv bSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5ODc6NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgdm5pYy0+YmRfc3RhbGwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZs YWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4ODo0OiBlcnJvcjog4oCYSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RB TExfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4OTo0MTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5y b2NlX2R1YWwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEw OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkK ICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5OTA6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19S T0NFX0RVQUxfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREU7 CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTE6NDE6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+cm9jZV9vbmx5 ID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5l IHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTkyOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogICAgXgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkzOjQzOiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJzc19kZmx0X2NyID0gcnRl X2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRl X2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 OTQ6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREU7CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxl XQogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3 cm1fZnVuY192Zl9tYWPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBo YXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2Zn X2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiBleGNlc3MgZWxl bWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiAo bmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoyOTog ZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDkwOjQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19ERkxUX01BQ19BRERSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2 KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk0OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywg LTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxMDk3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JF U1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKA mQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1f Q0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJv cjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAg c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IOKAmHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBb LVdlcnJvcl0KICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX3FjYXBzX291dHB1dCAqcWNhcHMpCiAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMg ZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91 IHdhbnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz 4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHFjYXBzLT5tYXhfcnNzY29zX2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgyOjMzOiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweShxY2Fwcy0+bWFjX2Fk ZHJlc3MsIGZjZmctPmRmbHRfbWFjX2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTY4NDoyNzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2wyX2N0eHMgPSBmY2ZnLT5udW1fbDJfY3R4czsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg1OjI4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfcnhfcmluZ3MgPSBmY2ZnLT5u dW1fcnhfcmluZ3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODY6Mjg6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1h eF90eF9yaW5ncyA9IGZjZmctPm51bV90eF9yaW5nczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTY4NzozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2NtcGxfcmluZ3MgPSBmY2ZnLT5udW1fY21wbF9yaW5nczsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg4OjI4OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfc3RhdF9jdHgg PSBmY2ZnLT5udW1fc3RhdF9jdHhzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NjkxOjI1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHFjYXBzLT5tYXhfdm5pY3MgPSBmY2ZnLT5udW1fdm5pY3M7CiAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE2OTk6MzM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9tY2FzdF9maWx0ZXJzID0gZmNmZy0+bnVtX21jYXN0X2Zp bHRlcnM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwMTozMjogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4 X2h3X3JpbmdfZ3JwcyA9IGZjZmctPm51bV9od19yaW5nX2dycHM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3BmX2Z1bmNfY2Zn 4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVy IGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7 MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVj dCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6 YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdl IHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMDozMzogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMjo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxNTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9S SU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5H UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTc6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MTg6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X0hXX1JJTkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihI V1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczNToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0x LCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTczODoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNV TFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoz NjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5 OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkK ICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzM4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NI RUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6 IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDU6MTA6IGVycm9yOiDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1X ZXJyb3JdCiAgICAgICAgICBpbnQgbnVtX3ZmcykKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9u IOKAmHBvcHVsYXRlX3ZmX2Z1bmNfY2ZnX3JlceKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0Nzo1OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9j cHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgXgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0NzozNDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ5OjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8z MuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NTA6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fU1RBVF9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0NNUExfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzUyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1RYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTM6NDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1JYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc1NDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1NTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9WTklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU2OjQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHJlcS0+bXR1ID0gcnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0 YS0+bXR1ICsgRVRIRVJfSERSX0xFTiArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzYwOjU6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5tcnUgPSBydGVfY3B1X3Rv X2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRhLT5tdHUgKyBFVEhFUl9IRFJfTEVOICsKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NjI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICByZXEtPm51bV9yc3Njb3NfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yc3Njb3Nf Y3R4IC8KICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NjQ6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJw LT5tYXhfc3RhdF9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjU6NTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9jbXBs X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X2NwX3JpbmdzIC8KICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 Njc6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBy ZXEtPm51bV90eF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF90eF9yaW5ncyAvIChu dW1fdmZzICsgMSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX3J4X3JpbmdzID0gcnRlX2NwdV90b19s ZV8xNihicC0+bWF4X3J4X3JpbmdzIC8gKG51bV92ZnMgKyAxKSk7CiAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY5OjU6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5u dW1fbDJfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9sMl9jdHggLyAobnVtX3ZmcyAr IDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV92bmljcyA9IHJ0ZV9jcHVfdG9fbGVfMTYoMSk7CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzcyOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgcmVxLT5udW1faHdfcmluZ19ncnBzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4 X3JpbmdfZ3JwcyAvCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog 4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRl ciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgIGludCB2ZikKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBm dW5jdGlvbiDigJhyZXNlcnZlX3Jlc291cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjM6IGVycm9y OiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYY29weV9mdW5jX2NmZ190b19xY2Fwc+KAmSBmcm9t IGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9f cWNhcHMoY2ZnX3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCY c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDi gJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNf Y2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzk1OjM6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYY29weV9mdW5j X2NmZ190b19xY2Fwc+KAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3Jd CiAgIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoY2ZnX3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODox Mzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQg YXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBz dGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lu cHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Fs bG9jYXRlX3BmX29ubHnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE4NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhf UklOR19NT0RFX0VOQUJMRSB8CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdT X1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54 dF9od3JtX2FsbG9jYXRlX3Zmc+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx 4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJyb3I6IGV4Y2Vz cyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJy b3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1 OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTg4NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19T VERfVFhfUklOR19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVf RU5BQkxFIHwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE4ODY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRf RkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJ TkdfTU9ERV9ESVNBQkxFKTsKICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdS TV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MTc6Mzogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEs IHJlc3ApOwogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5MjQ6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MjY6MTc6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyYyB8fCBy ZXNwLT5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2RlYnVnLmg6NDY6MCwKICAgICAgICAgICAgICAgICBmcm9tIC9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL2dlbmVyaWMvcnRlX2N5Y2xlcy5oOjc0LAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2N5Y2xlcy5oOjcxLAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6Mzg6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MzE6 MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAg cmMsIHJlc3AtPmVycm9yX2NvZGUpOwogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfbG9nLmg6 MzM0OjMyOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmFJURV9MT0figJkKICAgIFJU RV9MT0dUWVBFXyAjIyB0LCAjIHQgIjogIiBfX1ZBX0FSR1NfXykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE4NTU6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx 4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rp b24g4oCYYm54dF9od3JtX2Z1bmNfYnVmX3JndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlh YmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVj dCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNp ZmllZCBpbiBpbml0aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4g c3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiAobmVhciBpbml0 aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHN0 b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNf YnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Mjoz NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19CVUZfUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1f IyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9SR1RSLCAt MSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5ODM6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVT VUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw OTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZ CiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTk4MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9D SEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9y OiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBz dHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fZnVuY19idWZfdW5yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSDigJhy ZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9m dW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTkxOjk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBp biBpbml0aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0 IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiAobmVhciBpbml0aWFsaXph dGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHN0b3JhZ2Ug c2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vu cmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1VOUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1f IyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9VTlJHVFIs IC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTk5ODoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19S RVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAv aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbi gJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JN X0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJy b3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQog IHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9 OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiB2YXJpYWJs ZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjo5OiBlcnJv cjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAw Njo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3Jd Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25v d24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBl KTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MjAxMzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5D X0VWRU5UX0NS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAg SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSKTsKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkg eyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoyMDE3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5l cnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoyMDA2OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVz ZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9y ZWplY3RfZndkX3Jlc3DigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBo YXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX3JlamVjdF9m d2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo5 OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlh bGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFs aXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9y IOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg 4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDi gJhIV1JNX1JFSkVDVF9GV0RfUkVTUOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoyMDMyOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBSRUpFQ1RfRldEX1JFU1AsIC0xLCByZXNw KTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAz OToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkK ICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZp bmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JF U1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHVudXNl ZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBo d3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJl YXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQgQnVpbGQgIzM6Ck9TOiBSSEVMNy4yXzY0ClRhcmdldDog eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCgpQTURJTkZPIGJueHRfZXRoZGV2Lm8u cG1kLmMgIExEIGJueHRfZXRoZGV2Lm9JbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92bmljX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IGVycm9yOiDi gJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09V VFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlm aWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGlu CiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjog 4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk1MTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1Jf TU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBm dW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19xY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHZhcmlh YmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVj dCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk2NDo5OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQg aW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0 IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0 aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiBzdG9yYWdlIHNp emUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdS TV9WTklDX1FDRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg cmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMToz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDi gJkKICBIV1JNX1BSRVAocmVxLCBWTklDX1FDRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3MDoyMDog ZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUTigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHJ0ZV9jcHVfdG9fbGVfMzIo SFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNw LT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsK ICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19j cHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19S RVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5Nzg6NDU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgdm5pYy0+ZGZsdF9yaW5nX2dycCA9IHJ0ZV9sZV90b19jcHVfMTYocmVz cC0+ZGZsdF9yaW5nX2dycCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19j cHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc5OjQwOiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJz c19ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5yc3NfcnVsZSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQog I2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk4MDo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICB2bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+Y29zX3J1 bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODE6Mzk6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+bGJfcnVsZSA9IHJ0ZV9sZV90b19j cHVfMTYocmVzcC0+bGJfcnVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVf MTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgyOjM1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPm1ydSA9 IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+bXJ1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9f Y3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4NDo4OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmVzcC0+ ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6IGVycm9yOiDigJhI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVMVOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09V VFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTg1OjQyOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogIHZuaWMtPnZsYW5fc3RyaXAgPSBydGVfbGVfdG9fY3B1XzMyKHJl c3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiDigJhI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RF4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk4Nzo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICB2bmljLT5iZF9zdGFsbCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9f Y3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RFOwog ICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg5OjQxOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJvY2VfZHVhbCA9 IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBy dGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk5MDo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9W TklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERTsKICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5MTo0MTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yb2NlX29ubHkgPSBydGVfbGVf dG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3Rv X2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTI6NDog ZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREU7CiAgICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTM6NDM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+cnNzX2RmbHRfY3IgPSBydGVfbGVfdG9fY3B1 XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1 XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5NDo0OiBlcnJv cjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51 c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0 IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX3Zm X21hY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTA4NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFs aXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBz dHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IChuZWFyIGluaXRp YWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogc3Rv cmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFD X0FERFIpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6 MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5 cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7 CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAg SFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog ICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5l IHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTA5NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNV TFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVycm9yOiB1bnVzZWQg dmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQog ICAgICAgIHN0cnVjdCBod3JtX2Z1bmNfcWNhcHNfb3V0cHV0ICpxY2FwcykKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9u IG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdl cnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2 ODE6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg cWNhcHMtPm1heF9yc3Njb3NfY3R4ID0gZmNmZy0+bnVtX3Jzc2Nvc19jdHhzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODI6MzM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgbWVtY3B5KHFjYXBzLT5tYWNfYWRkcmVzcywgZmNm Zy0+ZGZsdF9tYWNfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox Njg0OjI3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHFjYXBzLT5tYXhfbDJfY3R4cyA9IGZjZmctPm51bV9sMl9jdHhzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE2ODU6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9yeF9yaW5ncyA9IGZjZmctPm51bV9yeF9yaW5n czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NjoyODogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X3R4X3Jpbmdz ID0gZmNmZy0+bnVtX3R4X3JpbmdzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox Njg3OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHFjYXBzLT5tYXhfY21wbF9yaW5ncyA9IGZjZmctPm51bV9jbXBsX3JpbmdzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODg6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9zdGF0X2N0eCA9IGZjZmctPm51 bV9zdGF0X2N0eHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2OTE6MjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1h eF92bmljcyA9IGZjZmctPm51bV92bmljczsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTY5OTozMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBxY2Fwcy0+bWF4X21jYXN0X2ZpbHRlcnMgPSBmY2ZnLT5udW1fbWNhc3RfZmlsdGVyczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzAxOjMyOiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfaHdfcmluZ19n cnBzID0gZmNmZy0+bnVtX2h3X3JpbmdfZ3JwczsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fcGZfZnVuY19jZmfigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 MDY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29t cGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxp emVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig 4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDi gJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9 IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJv bSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzEwOjMzOiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEu ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01U VSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTcxMTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1ND T1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVf Y3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 MTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE0OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklO R1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90 b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE1OjQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8z MuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3MTY6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNzo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklD U+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE5OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19H UlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBl KTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4OjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAg IHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBy dGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU 4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogdW51c2VkIHZh cmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc0NToxMDogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAg ICAgICAgIGludCBudW1fdmZzKQogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcG9wdWxh dGVfdmZfZnVuY19jZmdfcmVx4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8z MihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICBeCkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ4OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDk6NDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1JTU0NPU19DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc1MDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9T VEFUX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8CiAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTE6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1f Q01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklO R1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1Mg fAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU0OjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFPigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzU1OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1ZOSUNT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAg SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDUyB8CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTY6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9I V19SSU5HX0dSUFMpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzU4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgcmVxLT5tdHUgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRhLT5tdHUgKyBF VEhFUl9IRFJfTEVOICsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjA6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm1ydSA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAt PmV0aF9kZXYtPmRhdGEtPm10dSArIEVUSEVSX0hEUl9MRU4gKwogICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2Mjo1OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVt X3Jzc2Nvc19jdHhzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3Jzc2Nvc19jdHggLwogICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc2NDo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogIHJlcS0+bnVtX3N0YXRfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9zdGF0 X2N0eCAvIChudW1fdmZzICsgMSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2NTo1OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX2NtcGxfcmluZ3MgPSBy dGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfY3BfcmluZ3MgLwogICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2Nzo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX3R4 X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3R4X3JpbmdzIC8gKG51bV92ZnMgKyAx KSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzY4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fcnhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5t YXhfcnhfcmluZ3MgLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njk6NTogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9sMl9jdHhz ID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X2wyX2N0eCAvIChudW1fdmZzICsgMSkpOwogICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc3MTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogIHJlcS0+bnVtX3ZuaWNzID0gcnRlX2NwdV90b19sZV8xNigxKTsKICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 NzI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBy ZXEtPm51bV9od19yaW5nX2dycHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcmluZ19ncnBz IC8KICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Nzg6MTE6IGVycm9yOiDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1X ZXJyb3JdCiAgICAgICAgICAgaW50IHZmKQogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKA mHJlc2VydmVfcmVzb3VyY2VzX2Zyb21fdmbigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3OTE6MzogZXJyb3I6IHBhc3Npbmcg YXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21wYXRp YmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICAgY29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdf cmVxLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc4OjEzOiBub3RlOiBleHBlY3RlZCDigJhzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkKIHN0YXRpYyB2b2lkIGNvcHlfZnVuY19jZmdfdG9fcWNh cHMoc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZjZmcsCiAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 OTU6MzogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3Fj YXBz4oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICAgY29weV9m dW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc4OjEzOiBub3RlOiBl eHBlY3RlZCDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZIGJ1dCBhcmd1bWVudCBp cyBvZiB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkKIHN0YXRpYyB2b2lk IGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZjZmcs CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fYWxsb2NhdGVfcGZf b25seeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTg0NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19T VERfVFhfUklOR19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVf RU5BQkxFIHwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE4NDY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRf RkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJ TkdfTU9ERV9ESVNBQkxFKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fYWxs b2NhdGVfdmZz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxODU1Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGlu aXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogKG5lYXIg aW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6Mjk6IGVycm9y OiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxODg1OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5H X01PREVfRU5BQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICB+KEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUgfAog ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTg4Njo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERf VFhfUklOR19NT0RFX0RJU0FCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJ U0FCTEUpOwogICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7 IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTkxNzozOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYSFdSTV9QUkVQ4oCZCiAgIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTkyNDo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRf TUFDX0FERFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFIpOwogICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJjIHx8IHJlc3AtPmVycm9y X2NvZGUpIHsKICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfZGVidWcuaDo0NjowLAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvZ2VuZXJp Yy9ydGVfY3ljbGVzLmg6NzQsCiAgICAgICAgICAgICAgICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfY3lj bGVzLmg6NzEsCiAgICAgICAgICAgICAgICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozODoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkzMToxMzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICByYywgcmVzcC0+ ZXJyb3JfY29kZSk7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9sb2cuaDozMzQ6MzI6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYUlRFX0xPR+KAmQogICAgUlRFX0xPR1RZUEVf ICMjIHQsICMgdCAiOiAiIF9fVkFfQVJHU19fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJy b3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHsw fTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fZnVuY19idWZfcmd0cuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx 4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVu Y19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5 NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGlu aXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5p dGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9u IGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjM0OiBlcnJvcjogc3RvcmFnZSBzaXpl IG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9p bnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0JVRl9SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKA mEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCByZXNwKTsK ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4Mzoy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBI V1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg ICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUg cnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTgzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VM VOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHVudXNlZCB2 YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3Jt X2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5j X2J1Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMg aW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vu cmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTog ZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxp emVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE5OTE6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6 ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDi gJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKA mHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0 IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKA mEhXUk1fRlVOQ19CVUZfVU5SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5OTQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKA mEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1VOUkdUUiwgLTEsIHJlc3Ap OwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk4 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQog IEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmlu ZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVT VUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3 cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdy bV9mdW5jX2NmZ19kZWZfY3DigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKA mSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiBleGNlc3Mg ZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9y OiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoy OTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMDk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1f UFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDEz OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1Li gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1IpOwogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjIwMTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hF Q0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1 XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6 IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJs ZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3JlamVjdF9md2Rf cmVzcOKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFs aXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lu cHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiB1 bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDI2Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vy cm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZ KSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkg aXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7 LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fUkVK RUNUX0ZXRF9SRVNQ4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog IHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjIwMzI6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJF UOKAmQogIEhXUk1fUFJFUChyZXEsIFJFSkVDVF9GV0RfUkVTUCwgLTEsIHJlc3ApOwogIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog ICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hF Q0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0g cnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVf dG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMzk6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAg SFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxl IOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fcmVqZWN0 X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycwoKCkZhaWxlZCBCdWlsZCAjNDoKT1M6IFVCMTYxMF82NApUYXJnZXQ6IHg4Nl82NC1uYXRp dmUtbGludXhhcHAtaWNjClBNRElORk8gYm54dF9ldGhkZXYuby5wbWQuYyAgTEQgYm54dF9ldGhk ZXYuby9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDk0NCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSIgaXMgdW5kZWZpbmVkCiAgCQlyZXEuZmxhZ3MgfD0gcnRl X2NwdV90b19sZV8zMigKICAJCSAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk0Nyk6IGVycm9yOiBpZGVudGlm aWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSIgaXMg dW5kZWZpbmVkCiAgCQlyZXEuZmxhZ3MgfD0gcnRlX2NwdV90b19sZV8zMigKICAJCSAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jKDk1MCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfUlNTX0RGTFRfQ1JfTU9ERSIgaXMgdW5kZWZpbmVkCiAgCQlyZXEuZmxhZ3MgfD0gcnRl X2NwdV90b19sZV8zMigKICAJCSAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk2NCk6IGVycm9yOiBpbmNvbXBs ZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJl cSA9IHsucmVxX3R5cGUgPSAwIH07CiAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j KDk2Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGRyIgaXMgdW5kZWZpbmVkCiAg CUhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJlc3ApOwogIAleCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk3MCk6IGVycm9y OiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZBTElEIiBp cyB1bmRlZmluZWQKICAJCXJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5B QkxFU19WRl9JRF9WQUxJRCk7CiAgCQleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk3Nik6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VMVDsKICAJ XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYyg5NzYpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90 IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTc4KTogZXJyb3I6IHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPmRmbHRf cmluZ19ncnAgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmRmbHRfcmluZ19ncnApOwogIAkgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5NzkpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRl IGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+cnNzX3J1bGUgPSBydGVfbGVfdG9f Y3B1XzE2KHJlc3AtPnJzc19ydWxlKTsKICAJICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4MCk6IGVy cm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAl2 bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+Y29zX3J1bGUpOwogIAkgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoOTgxKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFz cyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPmxiX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2 KHJlc3AtPmxiX3J1bGUpOwogIAkgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5ODIpOiBlcnJvcjogcG9p bnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+bXJ1 ID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5tcnUpOwogIAkgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4Myk6 IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAog IAl2bmljLT5mdW5jX2RlZmF1bHQgPSBydGVfbGVfdG9fY3B1XzMyKAogIAkgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jKDk4NCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfREVGQVVMVCIgaXMgdW5kZWZpbmVkCiAgCQkJcmVzcC0+ZmxhZ3MpICYgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgCQkJICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5 ODUpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93 ZWQKICAJdm5pYy0+dmxhbl9zdHJpcCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYK ICAJICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTg2KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREUiIGlzIHVuZGVmaW5lZAogIAkJ CUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREU7CiAgCQkJXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5 ODcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93 ZWQKICAJdm5pYy0+YmRfc3RhbGwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAg CSAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5ODgpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01PREUiIGlzIHVuZGVmaW5lZAogIAkJCUhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RFOwogIAkJCV4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTg5KTogZXJy b3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZu aWMtPnJvY2VfZHVhbCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAJICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYyg5OTApOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUiIGlzIHVuZGVmaW5lZAogIAkJCUhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFOwogIAkJCV4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTkx KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2Vk CiAgCXZuaWMtPnJvY2Vfb25seSA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAJ ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5OTIpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUiIGlzIHVuZGVmaW5lZAogIAkJ CUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogIAkJCV4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmMoOTkzKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBh bGxvd2VkCiAgCXZuaWMtPnJzc19kZmx0X2NyID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFn cykgJgogIAkgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTk0KTogZXJyb3I6IGlkZW50aWZpZXIg IkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFIiBpcyB1bmRlZmlu ZWQKICAJCQlIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAJ CQleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDEwODQpOiBlcnJvcjogaW5jb21wbGV0ZSB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAJICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxMDg5KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19ERkxUX01BQ19BRERSIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBy dGVfY3B1X3RvX2xlXzMyKAogIAkgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTA5NCk6IGVycm9yOiBpZGVu dGlmaWVyICJIV1JNX0ZVTkNfQ0ZHIiBpcyB1bmRlZmluZWQKICAJSFdSTV9QUkVQKHJlcSwgRlVO Q19DRkcsIC0xLCByZXNwKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxMDk3KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21w bGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAle Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jKDEwOTcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90 IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY3OCk6IGVycm9yICMyNzQ6 IGRlY2xhcmF0aW9uIGlzIG5vdCB2aXNpYmxlIG91dHNpZGUgb2YgZnVuY3Rpb24KICBzdGF0aWMg dm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpm Y2ZnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4 MSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dl ZAogIAlxY2Fwcy0+bWF4X3Jzc2Nvc19jdHggPSBmY2ZnLT5udW1fcnNzY29zX2N0eHM7CiAgCSAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4Mik6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAltZW1jcHkocWNhcHMtPm1hY19hZGRy ZXNzLCBmY2ZnLT5kZmx0X21hY19hZGRyLAogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jKDE2ODQpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90 IGFsbG93ZWQKICAJcWNhcHMtPm1heF9sMl9jdHhzID0gZmNmZy0+bnVtX2wyX2N0eHM7CiAgCSAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4NSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxl dGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X3J4X3JpbmdzID0gZmNm Zy0+bnVtX3J4X3JpbmdzOwogIAkgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjg2KTogZXJy b3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFj YXBzLT5tYXhfdHhfcmluZ3MgPSBmY2ZnLT5udW1fdHhfcmluZ3M7CiAgCSAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jKDE2ODcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5 cGUgaXMgbm90IGFsbG93ZWQKICAJcWNhcHMtPm1heF9jbXBsX3JpbmdzID0gZmNmZy0+bnVtX2Nt cGxfcmluZ3M7CiAgCSAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4OCk6IGVycm9yOiBw b2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+ bWF4X3N0YXRfY3R4ID0gZmNmZy0+bnVtX3N0YXRfY3R4czsKICAJICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTY5MSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBp cyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X3ZuaWNzID0gZmNmZy0+bnVtX3ZuaWNzOwogIAkg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjk5KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5tYXhfbWNhc3RfZmlsdGVycyA9 IGZjZmctPm51bV9tY2FzdF9maWx0ZXJzOwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jKDE3MDEpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90 IGFsbG93ZWQKICAJcWNhcHMtPm1heF9od19yaW5nX2dycHMgPSBmY2ZnLT5udW1faHdfcmluZ19n cnBzOwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcwNik6IGVycm9yOiBpbmNv bXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg cmVxID0gezB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJv cjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSIgaXMgdW5kZWZp bmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRp ZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSIgaXMgdW5kZWZpbmVkCiAgCXJl cS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmllciAiSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyIgaXMgdW5kZWZpbmVkCiAg CXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmllciAi SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMiIGlzIHVuZGVmaW5lZAog IAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzEwKTogZXJyb3I6IGlkZW50aWZpZXIg IkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HUyIgaXMgdW5kZWZpbmVk CiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyIgaXMgdW5kZWZpbmVk CiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUyIgaXMgdW5kZWZpbmVk CiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhTIiBpcyB1bmRlZmluZWQK ICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19NVFUgfAogIAkgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVy ICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIiBpcyB1bmRlZmluZWQKICAJ cmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19NVFUgfAogIAkgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQUyIgaXMgdW5kZWZpbmVk CiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MzUpOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9GVU5DX0NGRyIgaXMgdW5kZWZpbmVkCiAgCUhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZH LCAtMSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoMTczOCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUg Y2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VMVDsKICAJXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygx NzM4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxv d2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDQpOiBlcnJvciAjMjc0OiBkZWNs YXJhdGlvbiBpcyBub3QgdmlzaWJsZSBvdXRzaWRlIG9mIGZ1bmN0aW9uCiAgCQkJCSAgICAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKnJlcSwKICAJCQkJICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3 KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2Vk CiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX01UVSB8CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVRVIiBpcyB1bmRlZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRl X2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19NUlUiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3Rv X2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDE3NDcpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX05VTV9SU1NDT1NfQ1RYUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9j cHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0 ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMg PSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jKDE3NDcpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS0+ZW5hYmxl cyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAg CSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIiBpcyB1bmRlZmluZWQKICAJcmVxLT5lbmFi bGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwK ICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS0+ZW5h YmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8 CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIiBpcyB1bmRlZmluZWQKICAJcmVxLT5lbmFi bGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwK ICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTIiBpcyB1bmRlZmluZWQKICAJcmVx LT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzU4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5j b21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bXR1ID0gcnRlX2NwdV90 b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsgRVRIRVJfSERSX0xFTiArCiAgCV4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTc2MCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxs b3dlZAogIAlyZXEtPm1ydSA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPmV0aF9kZXYtPmRhdGEtPm10 dSArIEVUSEVSX0hEUl9MRU4gKwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NjIpOiBlcnJvcjogcG9pbnRlciB0byBpbmNv bXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1fcnNzY29zX2N0eHMg PSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcnNzY29zX2N0eCAvCiAgCV4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc2NCk6IGVy cm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAly ZXEtPm51bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfc3RhdF9jdHggLyAo bnVtX3ZmcyArIDEpKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzY1KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVtX2NtcGxfcmluZ3MgPSBydGVf Y3B1X3RvX2xlXzE2KGJwLT5tYXhfY3BfcmluZ3MgLwogIAleCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NjcpOiBlcnJvcjogcG9p bnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1f dHhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfdHhfcmluZ3MgLyAobnVtX3ZmcyAr IDEpKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxNzY4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVtX3J4X3JpbmdzID0gcnRlX2NwdV90b19sZV8x NihicC0+bWF4X3J4X3JpbmdzIC8gKG51bV92ZnMgKyAxKSk7CiAgCV4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc2OSk6IGVycm9y OiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlyZXEt Pm51bV9sMl9jdHhzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X2wyX2N0eCAvIChudW1fdmZz ICsgMSkpOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jKDE3NzEpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNz IHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1fdm5pY3MgPSBydGVfY3B1X3RvX2xlXzE2 KDEpOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jKDE3NzIpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5 cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1faHdfcmluZ19ncnBzID0gcnRlX2NwdV90b19s ZV8xNihicC0+bWF4X3JpbmdfZ3JwcyAvCiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc3Nyk6IGVycm9yICMyNzQ6IGRlY2xh cmF0aW9uIGlzIG5vdCB2aXNpYmxlIG91dHNpZGUgb2YgZnVuY3Rpb24KICAJCQkJICAgICAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmNmZ19yZXEsCiAgCQkJCSAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j KDE3OTEpOiBlcnJvciAjMTY3OiBhcmd1bWVudCBvZiB0eXBlICJzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCAqIiBpcyBpbmNvbXBhdGlibGUgd2l0aCBwYXJhbWV0ZXIgb2YgdHlwZSAic3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXQgKiIKICAJCWNvcHlfZnVuY19jZmdfdG9fcWNhcHMoY2ZnX3Jl cSwgcmVzcCk7CiAgCQkgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc5NSk6IGVycm9yICMx Njc6IGFyZ3VtZW50IG9mIHR5cGUgInN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICoiIGlzIGlu Y29tcGF0aWJsZSB3aXRoIHBhcmFtZXRlciBvZiB0eXBlICJzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCAqIgogIAkJY29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAJCSAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxODQ1KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1f RlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUiIGlzIHVuZGVmaW5l ZAogIAkJfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxF IHwKICAJCSAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxODQ2KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5Q VVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxFIiBpcyB1bmRlZmluZWQKICAJCSAgSFdS TV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogIAkJICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jKDE4NTUpOiBlcnJvcjogaW5jb21wbGV0ZSB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAJICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYygxODg1KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRf RkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUiIGlzIHVuZGVmaW5lZAogIAkJfihIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwKICAJCSAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygx ODg2KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RY X1JJTkdfTU9ERV9ESVNBQkxFIiBpcyB1bmRlZmluZWQKICAJCSAgSFdSTV9GVU5DX0NGR19JTlBV VF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogIAkJICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5MTcpOiBlcnJv cjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGRyIgaXMgdW5kZWZpbmVkCiAgCQlIV1JNX1BSRVAo cmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIAkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTIzKTogZXJyb3I6IGlkZW50aWZp ZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSIiBpcyB1bmRlZmlu ZWQKICAJCXJlcS5lbmFibGVzICY9IH5ydGVfY3B1X3RvX2xlXzMyKAogIAkJICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTkyNik6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBp cyBub3QgYWxsb3dlZAogIAkJaWYgKHJjIHx8IHJlc3AtPmVycm9yX2NvZGUpIHsKICAJCSAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jKDE5MjkpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUg aXMgbm90IGFsbG93ZWQKICAJCQlSVEVfTE9HKEVSUiwgUE1ELAogIAkJCV4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTk2NCk6IGVy cm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fZnVuY19i dWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogIAkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoMTk2Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNf QlVGX1JHVFIiIGlzIHVuZGVmaW5lZAogIAlIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9SR1RSLCAt MSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoMTk4Myk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xh c3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VMVDsKICAJXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTgz KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2Vk CiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5OTEpOiBlcnJvcjogaW5jb21wbGV0ZSB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMCB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYygxOTk0KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19CVUZfVU5SR1RSIiBp cyB1bmRlZmluZWQKICAJSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZfVU5SR1RSLCAtMSwgcmVzcCk7 CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTk5OCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBp cyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VMVDsKICAJXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTk4KTogZXJyb3I6 IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1f Q0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jKDIwMDYpOiBlcnJvcjogaW5jb21wbGV0ZSB0eXBlIGlzIG5v dCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAJICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygyMDA5KTogZXJyb3I6IGlkZW50aWZpZXIgIkhX Uk1fRlVOQ19DRkciIGlzIHVuZGVmaW5lZAogIAlIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEs IHJlc3ApOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jKDIwMTIpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMg PSBydGVfY3B1X3RvX2xlXzMyKAogIAkgICAgICAgICAgICAgIF4KY29tcGlsYXRpb24gYWJvcnRl ZCBmb3IgL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMgKGNvZGUgNCkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVy bmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdibnh0X2h3cm0u bycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1r OjYzOiByZWNpcGUgZm9yIHRhcmdldCAnYm54dCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBm YWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo3 MzogcmVjaXBlIGZvciB0YXJnZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAnYWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxs Lm1rOjg1OiByZWNpcGUgZm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTA3OiByZWNpcGUgZm9yIHRh cmdldCAnaW5zdGFsbCcgZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICM1OgpPUzogUkhFTDcuM182NApU YXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtaWNjClBNRElORk8gYm54dF9ldGhkZXYuby5w bWQuYyAgTEQgYm54dF9ldGhkZXYuby9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk0NCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSIgaXMgdW5kZWZpbmVkCiAg CQlyZXEuZmxhZ3MgfD0gcnRlX2NwdV90b19sZV8zMigKICAJCSAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk0 Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9P TkxZX1ZOSUNfTU9ERSIgaXMgdW5kZWZpbmVkCiAgCQlyZXEuZmxhZ3MgfD0gcnRlX2NwdV90b19s ZV8zMigKICAJCSAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk1MCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JN X1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERSIgaXMgdW5kZWZpbmVkCiAg CQlyZXEuZmxhZ3MgfD0gcnRlX2NwdV90b19sZV8zMigKICAJCSAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk2 NCk6IGVycm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1f dm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jKDk2Nyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNG RyIgaXMgdW5kZWZpbmVkCiAgCUhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJlc3ApOwog IAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDk3MCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFC TEVTX1ZGX0lEX1ZBTElEIiBpcyB1bmRlZmluZWQKICAJCXJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9W TklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgCQleCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk3Nik6IGVycm9y OiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JN X0NIRUNLX1JFU1VMVDsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5NzYpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRl IGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo OTc4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxv d2VkCiAgCXZuaWMtPmRmbHRfcmluZ19ncnAgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmRmbHRf cmluZ19ncnApOwogIAkgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5NzkpOiBlcnJvcjogcG9p bnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+cnNz X3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPnJzc19ydWxlKTsKICAJICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jKDk4MCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBp cyBub3QgYWxsb3dlZAogIAl2bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ Y29zX3J1bGUpOwogIAkgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTgxKTogZXJyb3I6IHBvaW50ZXIg dG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPmxiX3J1bGUg PSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxiX3J1bGUpOwogIAkgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yyg5ODIpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFs bG93ZWQKICAJdm5pYy0+bXJ1ID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5tcnUpOwogIAkgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jKDk4Myk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlw ZSBpcyBub3QgYWxsb3dlZAogIAl2bmljLT5mdW5jX2RlZmF1bHQgPSBydGVfbGVfdG9fY3B1XzMy KAogIAkgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4NCk6IGVycm9yOiBpZGVudGlmaWVyICJI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVMVCIgaXMgdW5kZWZpbmVkCiAgCQkJcmVz cC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgCQkJICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYyg5ODUpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNz IHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+dmxhbl9zdHJpcCA9IHJ0ZV9sZV90b19jcHVf MzIocmVzcC0+ZmxhZ3MpICYKICAJICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTg2KTogZXJyb3I6 IGlkZW50aWZpZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREUi IGlzIHVuZGVmaW5lZAogIAkJCUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQ X01PREU7CiAgCQkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYyg5ODcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNz IHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+YmRfc3RhbGwgPSBydGVfbGVfdG9fY3B1XzMy KHJlc3AtPmZsYWdzKSAmCiAgCSAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5ODgpOiBlcnJvcjogaWRl bnRpZmllciAiSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01PREUiIGlzIHVu ZGVmaW5lZAogIAkJCUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RFOwog IAkJCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoOTg5KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlz IG5vdCBhbGxvd2VkCiAgCXZuaWMtPnJvY2VfZHVhbCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ ZmxhZ3MpICYKICAJICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5OTApOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUiIGlzIHVu ZGVmaW5lZAogIAkJCUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19N T0RFOwogIAkJCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmMoOTkxKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPnJvY2Vfb25seSA9IHJ0ZV9sZV90b19jcHVfMzIo cmVzcC0+ZmxhZ3MpICYKICAJICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5OTIpOiBlcnJvcjogaWRl bnRpZmllciAiSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUi IGlzIHVuZGVmaW5lZAogIAkJCUhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlf Vk5JQ19NT0RFOwogIAkJCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoOTkzKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBj bGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPnJzc19kZmx0X2NyID0gcnRlX2xlX3Rv X2NwdV8zMihyZXNwLT5mbGFncykgJgogIAkgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTk0KTog ZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9D Ul9NT0RFIiBpcyB1bmRlZmluZWQKICAJCQlIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNT X0RGTFRfQ1JfTU9ERTsKICAJCQleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDEwODQpOiBlcnJvcjogaW5jb21wbGV0ZSB0eXBlIGlz IG5vdCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxMDg5KTogZXJyb3I6IGlkZW50aWZpZXIg IkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSIiBpcyB1bmRlZmluZWQK ICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKAogIAkgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTA5NCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHIiBpcyB1bmRlZmluZWQKICAJ SFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAJXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxMDk3KTogZXJyb3I6 IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1f Q0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jKDEwOTcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRl IGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTY3OCk6IGVycm9yICMyNzQ6IGRlY2xhcmF0aW9uIGlzIG5vdCB2aXNpYmxlIG91dHNpZGUgb2Yg ZnVuY3Rpb24KICBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3Jt X2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmMoMTY4MSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3Mg dHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X3Jzc2Nvc19jdHggPSBmY2ZnLT5udW1f cnNzY29zX2N0eHM7CiAgCSAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4Mik6IGVycm9y OiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAltZW1j cHkocWNhcHMtPm1hY19hZGRyZXNzLCBmY2ZnLT5kZmx0X21hY19hZGRyLAogIAkgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jKDE2ODQpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRl IGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcWNhcHMtPm1heF9sMl9jdHhzID0gZmNmZy0+ bnVtX2wyX2N0eHM7CiAgCSAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4NSk6IGVycm9yOiBw b2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+ bWF4X3J4X3JpbmdzID0gZmNmZy0+bnVtX3J4X3JpbmdzOwogIAkgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYygxNjg2KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlz IG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5tYXhfdHhfcmluZ3MgPSBmY2ZnLT5udW1fdHhfcmluZ3M7 CiAgCSAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE2ODcpOiBlcnJvcjogcG9pbnRlciB0byBp bmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcWNhcHMtPm1heF9jbXBsX3Jp bmdzID0gZmNmZy0+bnVtX2NtcGxfcmluZ3M7CiAgCSAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmMoMTY4OCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3Qg YWxsb3dlZAogIAlxY2Fwcy0+bWF4X3N0YXRfY3R4ID0gZmNmZy0+bnVtX3N0YXRfY3R4czsKICAJ ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY5MSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X3ZuaWNzID0gZmNm Zy0+bnVtX3ZuaWNzOwogIAkgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjk5KTogZXJyb3I6IHBv aW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5t YXhfbWNhc3RfZmlsdGVycyA9IGZjZmctPm51bV9tY2FzdF9maWx0ZXJzOwogIAkgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jKDE3MDEpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRl IGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcWNhcHMtPm1heF9od19yaW5nX2dycHMgPSBm Y2ZnLT5udW1faHdfcmluZ19ncnBzOwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTcwNik6IGVycm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01UVSIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3 MTApOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSIg aXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBlcnJv cjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RY UyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTApOiBl cnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NU WFMiIGlzIHVuZGVmaW5lZAogIAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzEwKTog ZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9S SU5HUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTAp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9S SU5HUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTAp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9S SU5HUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MTAp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9D VFhTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcxMCk6 IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNT IiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcxMCk6IGVy cm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdf R1JQUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MzUp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGRyIgaXMgdW5kZWZpbmVkCiAgCUhXUk1f UFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTczOCk6IGVycm9yOiBwb2lu dGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNL X1JFU1VMVDsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYygxNzM4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFz cyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDQp OiBlcnJvciAjMjc0OiBkZWNsYXJhdGlvbiBpcyBub3QgdmlzaWJsZSBvdXRzaWRlIG9mIGZ1bmN0 aW9uCiAgCQkJCSAgICAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKnJlcSwKICAJCQkJICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVu dGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIiBpcyB1bmRlZmluZWQKICAJ cmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlkZW50aWZpZXIg IkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVu YWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUg fAogIAkgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyIgaXMgdW5kZWZpbmVkCiAgCXJl cS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVyICJI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyIgaXMgdW5kZWZpbmVkCiAg CXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlmaWVy ICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MiIGlzIHVuZGVmaW5l ZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcpOiBlcnJvcjogaWRlbnRp ZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyIgaXMgdW5kZWZp bmVkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVu dGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIiBpcyB1bmRl ZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlk ZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyIgaXMgdW5k ZWZpbmVkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBp ZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIiBpcyB1bmRl ZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlk ZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTIiBp cyB1bmRlZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzU4KTogZXJy b3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJl cS0+bXR1ID0gcnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsgRVRIRVJf SERSX0xFTiArCiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoMTc2MCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xh c3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlyZXEtPm1ydSA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAt PmV0aF9kZXYtPmRhdGEtPm10dSArIEVUSEVSX0hEUl9MRU4gKwogIAleCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NjIpOiBlcnJv cjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVx LT5udW1fcnNzY29zX2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcnNzY29zX2N0eCAv CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTc2NCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBp cyBub3QgYWxsb3dlZAogIAlyZXEtPm51bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJw LT5tYXhfc3RhdF9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzY1KTogZXJyb3I6IHBv aW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVt X2NtcGxfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfY3BfcmluZ3MgLwogIAleCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j KDE3NjcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFs bG93ZWQKICAJcmVxLT5udW1fdHhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfdHhf cmluZ3MgLyAobnVtX3ZmcyArIDEpKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzY4KTogZXJyb3I6IHBvaW50ZXIgdG8g aW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVtX3J4X3Jpbmdz ID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3J4X3JpbmdzIC8gKG51bV92ZnMgKyAxKSk7CiAg CV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTc2OSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBu b3QgYWxsb3dlZAogIAlyZXEtPm51bV9sMl9jdHhzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4 X2wyX2N0eCAvIChudW1fdmZzICsgMSkpOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NzEpOiBlcnJvcjogcG9pbnRlciB0 byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1fdm5pY3Mg PSBydGVfY3B1X3RvX2xlXzE2KDEpOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NzIpOiBlcnJvcjogcG9pbnRlciB0byBp bmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5udW1faHdfcmluZ19n cnBzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3JpbmdfZ3JwcyAvCiAgCV4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc3Nyk6 IGVycm9yICMyNzQ6IGRlY2xhcmF0aW9uIGlzIG5vdCB2aXNpYmxlIG91dHNpZGUgb2YgZnVuY3Rp b24KICAJCQkJICAgICAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmNmZ19yZXEsCiAgCQkJ CSAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jKDE3OTEpOiBlcnJvciAjMTY3OiBhcmd1bWVudCBvZiB0eXBlICJz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqIiBpcyBpbmNvbXBhdGlibGUgd2l0aCBwYXJhbWV0 ZXIgb2YgdHlwZSAic3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKiIKICAJCWNvcHlfZnVuY19j ZmdfdG9fcWNhcHMoY2ZnX3JlcSwgcmVzcCk7CiAgCQkgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmMoMTc5NSk6IGVycm9yICMxNjc6IGFyZ3VtZW50IG9mIHR5cGUgInN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV0ICoiIGlzIGluY29tcGF0aWJsZSB3aXRoIHBhcmFtZXRlciBvZiB0eXBlICJzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqIgogIAkJY29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdf cmVxLCByZXNwKTsKICAJCSAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxODQ1KTogZXJyb3I6 IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9F TkFCTEUiIGlzIHVuZGVmaW5lZAogIAkJfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9U WF9SSU5HX01PREVfRU5BQkxFIHwKICAJCSAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxODQ2KTogZXJyb3I6IGlkZW50aWZpZXIg IkhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxFIiBpcyB1 bmRlZmluZWQKICAJCSAgSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RF X0RJU0FCTEUpOwogIAkJICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jKDE4NTUpOiBlcnJvcjogaW5jb21wbGV0ZSB0eXBlIGlzIG5v dCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAJICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxODg1KTogZXJyb3I6IGlkZW50aWZpZXIgIkhX Uk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUiIGlzIHVuZGVm aW5lZAogIAkJfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5B QkxFIHwKICAJCSAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYygxODg2KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdf SU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxFIiBpcyB1bmRlZmluZWQKICAJCSAg SFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogIAkJ ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDE5MTcpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGRyIgaXMgdW5kZWZp bmVkCiAgCQlIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIAkJXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTIz KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01B Q19BRERSIiBpcyB1bmRlZmluZWQKICAJCXJlcS5lbmFibGVzICY9IH5ydGVfY3B1X3RvX2xlXzMy KAogIAkJICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTkyNik6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAkJaWYgKHJjIHx8IHJlc3AtPmVycm9y X2NvZGUpIHsKICAJCSAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5MjkpOiBlcnJvcjogcG9pbnRlciB0byBpbmNv bXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJCQlSVEVfTE9HKEVSUiwgUE1ELAog IAkJCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTk2NCk6IGVycm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJ c3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9Owog IAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTk2Nyk6IGVycm9yOiBpZGVu dGlmaWVyICJIV1JNX0ZVTkNfQlVGX1JHVFIiIGlzIHVuZGVmaW5lZAogIAlIV1JNX1BSRVAocmVx LCBGVU5DX0JVRl9SR1RSLCAtMSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTk4Myk6IGVycm9yOiBwb2ludGVy IHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JF U1VMVDsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxOTgzKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5OTEpOiBl cnJvcjogaW5jb21wbGV0ZSB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNf YnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogIAkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTk0KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1f RlVOQ19CVUZfVU5SR1RSIiBpcyB1bmRlZmluZWQKICAJSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZf VU5SR1RSLCAtMSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTk5OCk6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VMVDsKICAJ XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYygxOTk4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5v dCBhbGxvd2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDIwMDYpOiBlcnJvcjogaW5j b21wbGV0ZSB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0 IHJlcSA9IHswfTsKICAJICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygyMDA5KTogZXJy b3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkciIGlzIHVuZGVmaW5lZAogIAlIV1JNX1BSRVAo cmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDIwMTIpOiBlcnJvcjogaWRlbnRpZmll ciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSIiBpcyB1bmRlZmlu ZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKAogIAkgICAgICAgICAgICAgIF4K Y29tcGlsYXRpb24gYWJvcnRlZCBmb3IgL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMgKGNvZGUgNCkKCgpGYWlsZWQgQnVpbGQgIzY6Ck9T OiBGQzI1XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1pY2MKUE1ESU5GTyBibnh0 X2V0aGRldi5vLnBtZC5jICBMRCBibnh0X2V0aGRldi5vL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTQ0KTogZXJyb3I6IGlkZW50aWZp ZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFIiBpcyB1 bmRlZmluZWQKICAJCXJlcS5mbGFncyB8PSBydGVfY3B1X3RvX2xlXzMyKAogIAkJICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoOTQ3KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ST0NFX09OTFlfVk5JQ19NT0RFIiBpcyB1bmRlZmluZWQKICAJCXJlcS5mbGFncyB8PSBy dGVfY3B1X3RvX2xlXzMyKAogIAkJICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTUwKTogZXJyb3I6IGlkZW50 aWZpZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFIiBpcyB1 bmRlZmluZWQKICAJCXJlcS5mbGFncyB8PSBydGVfY3B1X3RvX2xlXzMyKAogIAkJICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoOTY0KTogZXJyb3I6IGluY29tcGxldGUgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlz dHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAJICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTY3KTogZXJyb3I6IGlkZW50aWZpZXIgIkhX Uk1fVk5JQ19RQ0ZHIiBpcyB1bmRlZmluZWQKICAJSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAt MSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoOTcwKTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fVk5JQ19RQ0ZH X0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUQiIGlzIHVuZGVmaW5lZAogIAkJcnRlX2NwdV90b19s ZV8zMihIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZBTElEKTsKICAJCV4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo OTc2KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxv d2VkCiAgCUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk3Nik6IGVycm9yOiBwb2ludGVyIHRv IGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VM VDsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYyg5NzgpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUg aXMgbm90IGFsbG93ZWQKICAJdm5pYy0+ZGZsdF9yaW5nX2dycCA9IHJ0ZV9sZV90b19jcHVfMTYo cmVzcC0+ZGZsdF9yaW5nX2dycCk7CiAgCSAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk3OSk6 IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAog IAl2bmljLT5yc3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+cnNzX3J1bGUpOwogIAkg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmMoOTgwKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBj bGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPmNvc19ydWxlID0gcnRlX2xlX3RvX2Nw dV8xNihyZXNwLT5jb3NfcnVsZSk7CiAgCSAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5ODEpOiBlcnJv cjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5p Yy0+bGJfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+bGJfcnVsZSk7CiAgCSAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jKDk4Mik6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlw ZSBpcyBub3QgYWxsb3dlZAogIAl2bmljLT5tcnUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPm1y dSk7CiAgCSAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTgzKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXZuaWMtPmZ1bmNfZGVmYXVsdCA9IHJ0ZV9s ZV90b19jcHVfMzIoCiAgCSAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoOTg0KTogZXJyb3I6IGlk ZW50aWZpZXIgIkhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUIiBpcyB1bmRlZmlu ZWQKICAJCQlyZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVM VDsKICAJCQkgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4NSk6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAl2bmljLT52bGFuX3N0cmlwID0gcnRl X2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogIAkgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5 ODYpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5f U1RSSVBfTU9ERSIgaXMgdW5kZWZpbmVkCiAgCQkJSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X1ZMQU5fU1RSSVBfTU9ERTsKICAJCQleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4Nyk6IGVycm9yOiBwb2ludGVyIHRvIGluY29t cGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAl2bmljLT5iZF9zdGFsbCA9IHJ0ZV9s ZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAJICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk4OCk6 IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExf TU9ERSIgaXMgdW5kZWZpbmVkCiAgCQkJSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NU QUxMX01PREU7CiAgCQkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYyg5ODkpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNs YXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+cm9jZV9kdWFsID0gcnRlX2xlX3RvX2Nw dV8zMihyZXNwLT5mbGFncykgJgogIAkgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk5MCk6IGVycm9y OiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNf TU9ERSIgaXMgdW5kZWZpbmVkCiAgCQkJSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0Vf RFVBTF9WTklDX01PREU7CiAgCQkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5OTEpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBs ZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+cm9jZV9vbmx5ID0gcnRlX2xl X3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogIAkgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDk5Mik6 IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9ERSIgaXMgdW5kZWZpbmVkCiAgCQkJSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X1JPQ0VfT05MWV9WTklDX01PREU7CiAgCQkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyg5OTMpOiBlcnJvcjogcG9pbnRlciB0byBp bmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJdm5pYy0+cnNzX2RmbHRfY3Ig PSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgCSAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYyg5OTQpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X1JTU19ERkxUX0NSX01PREUiIGlzIHVuZGVmaW5lZAogIAkJCUhXUk1fVk5JQ19RQ0ZHX09VVFBV VF9GTEFHU19SU1NfREZMVF9DUl9NT0RFOwogIAkJCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTA4NCk6IGVycm9yOiBpbmNvbXBs ZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDEwODkpOiBlcnJvcjog aWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFIiIGlz IHVuZGVmaW5lZAogIAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoCiAgCSAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYygxMDk0KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkciIGlzIHVu ZGVmaW5lZAogIAlIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIAleCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDEw OTcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93 ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTA5Nyk6IGVycm9yOiBwb2ludGVyIHRv IGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlIV1JNX0NIRUNLX1JFU1VM VDsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYygxNjc4KTogZXJyb3IgIzI3NDogZGVjbGFyYXRpb24gaXMgbm90IHZpc2libGUg b3V0c2lkZSBvZiBmdW5jdGlvbgogIHN0YXRpYyB2b2lkIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMo c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZjZmcsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjgxKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21w bGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5tYXhfcnNzY29zX2N0eCA9 IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAJICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygx NjgyKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxv d2VkCiAgCW1lbWNweShxY2Fwcy0+bWFjX2FkZHJlc3MsIGZjZmctPmRmbHRfbWFjX2FkZHIsCiAg CSAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4NCk6IGVycm9yOiBwb2ludGVyIHRv IGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X2wyX2N0 eHMgPSBmY2ZnLT5udW1fbDJfY3R4czsKICAJICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjg1 KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2Vk CiAgCXFjYXBzLT5tYXhfcnhfcmluZ3MgPSBmY2ZnLT5udW1fcnhfcmluZ3M7CiAgCSAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jKDE2ODYpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNs YXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcWNhcHMtPm1heF90eF9yaW5ncyA9IGZjZmctPm51 bV90eF9yaW5nczsKICAJICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTY4Nyk6IGVycm9yOiBw b2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+ bWF4X2NtcGxfcmluZ3MgPSBmY2ZnLT5udW1fY21wbF9yaW5nczsKICAJICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxNjg4KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0 eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5tYXhfc3RhdF9jdHggPSBmY2ZnLT5udW1fc3Rh dF9jdHhzOwogIAkgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNjkxKTogZXJyb3I6IHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXFjYXBzLT5tYXhf dm5pY3MgPSBmY2ZnLT5udW1fdm5pY3M7CiAgCSAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE2OTkp OiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQK ICAJcWNhcHMtPm1heF9tY2FzdF9maWx0ZXJzID0gZmNmZy0+bnVtX21jYXN0X2ZpbHRlcnM7CiAg CSAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTcwMSk6IGVycm9yOiBwb2ludGVyIHRv IGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlxY2Fwcy0+bWF4X2h3X3Jp bmdfZ3JwcyA9IGZjZmctPm51bV9od19yaW5nX2dycHM7CiAgCSAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYygxNzA2KTogZXJyb3I6IGluY29tcGxldGUgdHlwZSBpcyBub3QgYWxsb3dlZAog IAlzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgCSAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTVRVIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1 X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVJVIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMy KEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1JTU0NPU19DVFhTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xl XzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1NUQVRfQ1RYUyIgaXMgdW5kZWZpbmVkCiAgCXJlcS5lbmFibGVzID0gcnRlX2NwdV90b19s ZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jKDE3MTApOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9DTVBMX1JJTkdTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3Rv X2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1RYX1JJTkdTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3Rv X2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1JYX1JJTkdTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3Rv X2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTcxMCk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX0wyX0NUWFMiIGlzIHVuZGVmaW5lZAogIAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9f bGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYygxNzEwKTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fVk5JQ1MiIGlzIHVuZGVmaW5lZAogIAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVf MzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YygxNzEwKTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fSFdfUklOR19HUlBTIiBpcyB1bmRlZmluZWQKICAJcmVxLmVuYWJsZXMgPSBydGVfY3B1X3Rv X2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTczNSk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHIiBpcyB1bmRlZmlu ZWQKICAJSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAJXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzM4KTog ZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAg CUhXUk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3MzgpOiBlcnJvcjogcG9pbnRlciB0byBpbmNv bXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAg CV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmMoMTc0NCk6IGVycm9yICMyNzQ6IGRlY2xhcmF0aW9uIGlzIG5vdCB2aXNpYmxlIG91dHNp ZGUgb2YgZnVuY3Rpb24KICAJCQkJICAgICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqcmVx LAogIAkJCQkgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBs ZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90 b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTog ZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUiIGlzIHVu ZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcpOiBlcnJvcjog aWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSIgaXMgdW5kZWZpbmVk CiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVycm9yOiBpZGVudGlm aWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhTIiBpcyB1bmRl ZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6IGlk ZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIiBpcyB1 bmRlZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTogZXJyb3I6 IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HUyIg aXMgdW5kZWZpbmVkCiAgCXJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgCSAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc0Nyk6IGVy cm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT IiBpcyB1bmRlZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3KTog ZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklO R1MiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9D VFhTIiBpcyB1bmRlZmluZWQKICAJcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAJICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzQ3 KTogZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5J Q1MiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NDcp OiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19S SU5HX0dSUFMiIGlzIHVuZGVmaW5lZAogIAlyZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMy KEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogIAkgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j KDE3NTgpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFs bG93ZWQKICAJcmVxLT5tdHUgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRhLT5t dHUgKyBFVEhFUl9IRFJfTEVOICsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxNzYwKTogZXJyb3I6IHBvaW50ZXIgdG8gaW5j b21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bXJ1ID0gcnRlX2NwdV90 b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsgRVRIRVJfSERSX0xFTiArCiAgCV4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMo MTc2Mik6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxs b3dlZAogIAlyZXEtPm51bV9yc3Njb3NfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9y c3Njb3NfY3R4IC8KICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYygxNzY0KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBj bGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVtX3N0YXRfY3R4cyA9IHJ0ZV9jcHVf dG9fbGVfMTYoYnAtPm1heF9zdGF0X2N0eCAvIChudW1fdmZzICsgMSkpOwogIAleCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NjUp OiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQK ICAJcmVxLT5udW1fY21wbF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9jcF9yaW5n cyAvCiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmMoMTc2Nyk6IGVycm9yOiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlw ZSBpcyBub3QgYWxsb3dlZAogIAlyZXEtPm51bV90eF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYo YnAtPm1heF90eF9yaW5ncyAvIChudW1fdmZzICsgMSkpOwogIAleCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE3NjgpOiBlcnJvcjog cG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJcmVxLT5u dW1fcnhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcnhfcmluZ3MgLyAobnVtX3Zm cyArIDEpKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYygxNzY5KTogZXJyb3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFz cyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCXJlcS0+bnVtX2wyX2N0eHMgPSBydGVfY3B1X3RvX2xl XzE2KGJwLT5tYXhfbDJfY3R4IC8gKG51bV92ZnMgKyAxKSk7CiAgCV4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc3MSk6IGVycm9y OiBwb2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlyZXEt Pm51bV92bmljcyA9IHJ0ZV9jcHVfdG9fbGVfMTYoMSk7CiAgCV4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc3Mik6IGVycm9yOiBw b2ludGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAlyZXEtPm51 bV9od19yaW5nX2dycHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcmluZ19ncnBzIC8KICAJ XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYygxNzc3KTogZXJyb3IgIzI3NDogZGVjbGFyYXRpb24gaXMgbm90IHZpc2libGUgb3V0c2lk ZSBvZiBmdW5jdGlvbgogIAkJCQkgICAgICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqY2Zn X3JlcSwKICAJCQkJICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTc5MSk6IGVycm9yICMxNjc6IGFyZ3VtZW50 IG9mIHR5cGUgInN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICoiIGlzIGluY29tcGF0aWJsZSB3 aXRoIHBhcmFtZXRlciBvZiB0eXBlICJzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqIgogIAkJ Y29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAJCSAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYygxNzk1KTogZXJyb3IgIzE2NzogYXJndW1lbnQgb2YgdHlwZSAic3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXQgKiIgaXMgaW5jb21wYXRpYmxlIHdpdGggcGFyYW1ldGVyIG9m IHR5cGUgInN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICoiCiAgCQljb3B5X2Z1bmNfY2ZnX3Rv X3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogIAkJICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE4 NDUpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhf UklOR19NT0RFX0VOQUJMRSIgaXMgdW5kZWZpbmVkCiAgCQl+KEhXUk1fRlVOQ19DRkdfSU5QVVRf RkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUgfAogIAkJICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE4NDYpOiBlcnJvcjog aWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJ U0FCTEUiIGlzIHVuZGVmaW5lZAogIAkJICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9U WF9SSU5HX01PREVfRElTQUJMRSk7CiAgCQkgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTg1NSk6IGVycm9yOiBpbmNvbXBsZXRl IHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE4ODUpOiBlcnJvcjogaWRl bnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJM RSIgaXMgdW5kZWZpbmVkCiAgCQl+KEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJ TkdfTU9ERV9FTkFCTEUgfAogIAkJICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE4ODYpOiBlcnJvcjogaWRlbnRpZmllciAiSFdS TV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUiIGlzIHVuZGVm aW5lZAogIAkJICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElT QUJMRSk7CiAgCQkgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmMoMTkxNyk6IGVycm9yOiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZH IiBpcyB1bmRlZmluZWQKICAJCUhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAg CQleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jKDE5MjMpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX0RGTFRfTUFDX0FERFIiIGlzIHVuZGVmaW5lZAogIAkJcmVxLmVuYWJsZXMgJj0gfnJ0ZV9j cHVfdG9fbGVfMzIoCiAgCQkgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTI2KTogZXJyb3I6IHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCQlpZiAocmMgfHwg cmVzcC0+ZXJyb3JfY29kZSkgewogIAkJICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMTkyOSk6IGVycm9yOiBwb2lu dGVyIHRvIGluY29tcGxldGUgY2xhc3MgdHlwZSBpcyBub3QgYWxsb3dlZAogIAkJCVJURV9MT0co RVJSLCBQTUQsCiAgCQkJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYygxOTY0KTogZXJyb3I6IGluY29tcGxldGUgdHlwZSBpcyBub3Qg YWxsb3dlZAogIAlzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5 cGUgPSAwIH07CiAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTY3KTog ZXJyb3I6IGlkZW50aWZpZXIgIkhXUk1fRlVOQ19CVUZfUkdUUiIgaXMgdW5kZWZpbmVkCiAgCUhX Uk1fUFJFUChyZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCByZXNwKTsKICAJXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTgzKTogZXJy b3I6IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhX Uk1fQ0hFQ0tfUkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5ODMpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBs ZXRlIGNsYXNzIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmMoMTk5MSk6IGVycm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0 IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jKDE5OTQpOiBlcnJvcjogaWRlbnRp ZmllciAiSFdSTV9GVU5DX0JVRl9VTlJHVFIiIGlzIHVuZGVmaW5lZAogIAlIV1JNX1BSRVAocmVx LCBGVU5DX0JVRl9VTlJHVFIsIC0xLCByZXNwKTsKICAJXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYygxOTk4KTogZXJyb3I6IHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSBjbGFzcyB0eXBlIGlzIG5vdCBhbGxvd2VkCiAgCUhXUk1fQ0hFQ0tf UkVTVUxUOwogIAleCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jKDE5OTgpOiBlcnJvcjogcG9pbnRlciB0byBpbmNvbXBsZXRlIGNsYXNz IHR5cGUgaXMgbm90IGFsbG93ZWQKICAJSFdSTV9DSEVDS19SRVNVTFQ7CiAgCV4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMjAwNik6 IGVycm9yOiBpbmNvbXBsZXRlIHR5cGUgaXMgbm90IGFsbG93ZWQKICAJc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgcmVxID0gezB9OwogIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j KDIwMDkpOiBlcnJvcjogaWRlbnRpZmllciAiSFdSTV9GVU5DX0NGRyIgaXMgdW5kZWZpbmVkCiAg CUhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgCV4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmMoMjAxMik6IGVycm9y OiBpZGVudGlmaWVyICJIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1Ii IGlzIHVuZGVmaW5lZAogIAlyZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoCiAgCSAgICAg ICAgICAgICAgXgpjb21waWxhdGlvbiBhYm9ydGVkIGZvciAvaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyAoY29kZSA0KQovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODog cmVjaXBlIGZvciB0YXJnZXQgJ2JueHRfaHdybS5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdibnh0 JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6 NjM6IHJlY2lwZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnZHJpdmVy cycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5t azoxMjg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdw cmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c2Rrcm9vdC5tazoxMDc6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWls ZWQgQnVpbGQgIzc6Ck9TOiBGcmVlQlNEMTAuM182NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtYnNk YXBwLWNsYW5nClBNRElORk8gYm54dF9ldGhkZXYuby5wbWQuYyAgTEQgYm54dF9ldGhkZXYuby9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk0NTo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FD RkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUnCiAgICAgICAgICAgICAgICAgICAg ICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfY3B1X3RvX2xlXzMyJwojZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6 NDogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX09V VFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFJwogICAgICAgICAgICAgICAgICAgICAgICBI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtYnNkYXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog ZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2NwdV90b19sZV8zMicKI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTUxOjQ6IGVy cm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfUlNTX0RGTFRfQ1JfTU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFw cC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGV4cGFuZGVkIGZy b20gbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDogZXJyb3I6IHZhcmlh YmxlIGhhcyBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCcKICAg ICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogbm90ZTogZm9y d2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0JwogICAgICAg IHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk2NzoyOiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmll ciAnSFdSTV9WTklDX1FDRkcnCiAgICAgICAgSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwg cmVzcCk7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0hX Uk1fUFJFUCcKICAgICAgICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0 eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo8c2NyYXRj aCBzcGFjZT46NjE6MTogbm90ZTogZXhwYW5kZWQgZnJvbSBoZXJlCkhXUk1fVk5JQ19RQ0ZHCl4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5n L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAncnRlX2NwdV90b19sZV8xNicKI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTcwOjIwOiBlcnJvcjogdXNlIG9mIHVuZGVj bGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJ RCcKICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRf RU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5n L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAncnRlX2NwdV90b19sZV8zMicKI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc2OjI6IGVycm9yOiBpbmNvbXBsZXRlIGRl ZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBI V1JNX0NIRUNLX1JFU1VMVDsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0hXUk1fQ0hFQ0tfUkVTVUxUJwogICAgICAgICAgICAg ICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgICAgICAgICAgIH5+fn5eCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdybV92bmljX3Fj Zmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQgKnJlc3AgPSBi cC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBlcnJvcjog aW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRw dXQnCiAgICAgICAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc2OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VMVCcK ICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9y X2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAt Y2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9t IG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBk ZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1 Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsK ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5Nzg6NDU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24g b2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5kZmx0 X3JpbmdfZ3JwID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5kZmx0X3JpbmdfZ3JwKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVf dG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAn c3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3Fj Zmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzo5Nzk6NDA6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0 IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5yc3NfcnVsZSA9IHJ0ZV9sZV90 b19jcHVfMTYocmVzcC0+cnNzX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBl eHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19j cHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90 ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcK ICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21k X3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODA6NDA6IGVycm9yOiBpbmNvbXBsZXRl IGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAg ICB2bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+Y29zX3J1bGUpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9f Y3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3Ry dWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdf b3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5ODE6Mzk6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3 cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5sYl9ydWxlID0gcnRlX2xlX3RvX2Nw dV8xNihyZXNwLT5sYl9ydWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1i c2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRl ZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9y d2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAg ICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3Bf YWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODI6MzU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmlu aXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmlj LT5tcnUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPm1ydSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBu b3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9s ZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6 OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291 dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3 cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6ODogZXJyb3I6IGluY29t cGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0Jwog ICAgICAgICAgICAgICAgICAgICAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfREVGQVVMVDsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5nL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xl X3RvX2NwdV8zMicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2Yg J3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19x Y2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTg0OjE5OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQnCiAgICAgICAgICAgICAgICAgICAgICAgIHJl c3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4NTo0MjogZXJyb3I6IGluY29t cGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0Jwog ICAgICAgIHZuaWMtPnZsYW5fc3RyaXAgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAm CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5nL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRl X2xlX3RvX2NwdV8zMicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24g b2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5p Y19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTg2OjQ6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JN X1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RFJwogICAgICAgICAgICAgICAg ICAgICAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RFOwogICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4Nzo0MDogZXJyb3I6IGluY29tcGxldGUgZGVmaW5p dGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMt PmJkX3N0YWxsID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTEwOjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzMyJwoj ZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1f dm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpy ZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODg6NDog ZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX09VVFBV VF9GTEFHU19CRF9TVEFMTF9NT0RFJwogICAgICAgICAgICAgICAgICAgICAgICBIV1JNX1ZOSUNf UUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgICAgICAgICAgICAgICAgICAgICAg XgpmYXRhbCBlcnJvcjogdG9vIG1hbnkgZXJyb3JzIGVtaXR0ZWQsIHN0b3BwaW5nIG5vdyBbLWZl cnJvci1saW1pdD1dCjIwIGVycm9ycyBnZW5lcmF0ZWQuCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRh cmdldCAnYm54dF9od3JtLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZv ciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2RrYnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBl IGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBm YWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEw NzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjODoK T1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjClBNRElO Rk8gYm54dF9ldGhkZXYuby5wbWQuYyAgTEQgYm54dF9ldGhkZXYub0luIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24gJ2JueHRfaHdybV92bmljX2NmZyc6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0 NTo0OiBlcnJvcjogJ0hXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19N T0RFJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9j cHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVu dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJz IGluCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzMyJwogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjogJ0hX Uk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFJyB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ST0NFX09OTFlfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTUxOjQ6IGVycm9yOiAnSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19E RkxUX0NSX01PREUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAg SFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAn cnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24gJ2JueHRfaHdybV92bmlj X3FjZmcnOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHZhcmlhYmxlICdyZXEnIGhhcyBpbml0aWFsaXplciBi dXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsu cmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiB1bmtub3duIGZpZWxk ICdyZXFfdHlwZScgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogZXhj ZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVy cm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3IgJ3JlcScpIFstV2Vycm9yXQovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3JlcScgaXNuJ3Qga25vd24KICBzdHJ1Y3QgaHdybV92 bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBl cnJvcjogJ0hXUk1fVk5JQ19RQ0ZHJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8xNicK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX1BSRVAn CiAgSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzA6MjA6IGVy cm9yOiAnSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCcgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9W TklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2Rl KSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g J0hXUk1fQ0hFQ0tfUkVTVUxUJwogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJv cl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfbGVfdG9f Y3B1XzE2JwogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ0hX Uk1fQ0hFQ0tfUkVTVUxUJwogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc4OjQ1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmRmbHRf cmluZ19ncnAgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmRmbHRfcmluZ19ncnApOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfbGVfdG9fY3B1 XzE2JwogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk3OTo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICB2bmljLT5yc3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ cnNzX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAn cnRlX2xlX3RvX2NwdV8xNicKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODA6NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+Y29zX3J1bGUgPSBydGVfbGVfdG9f Y3B1XzE2KHJlc3AtPmNvc19ydWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNk YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYnCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgxOjM5OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmxiX3J1bGUg PSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxiX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwogI2RlZmluZSBydGVfbGVf dG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4Mjoz NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmlj LT5tcnUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPm1ydSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xlX3RvX2NwdV8xNicKICNkZWZpbmUgcnRlX2xlX3Rv X2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6ODog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJlc3At PmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8gJ3J0ZV9sZV90b19jcHVfMzInCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBlcnJvcjogJ0hXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFH U19ERUZBVUxUOwogICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTg1OjQyOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHZuaWMtPnZsYW5fc3RyaXAgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdz KSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9s ZV90b19jcHVfMzInCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiAnSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RF OwogICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg3OjQwOiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPmJkX3N0YWxs ID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xlX3RvX2NwdV8zMicKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODg6 NDogZXJyb3I6ICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERScgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk4OTo0MTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICB2bmljLT5yb2NlX2R1YWwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdz KSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xl X3RvX2NwdV8zMicKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTA6NDogZXJyb3I6ICdIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZO SUNfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5MTo0MTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5y b2NlX29ubHkgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xlX3RvX2NwdV8zMicKICNkZWZp bmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzo5OTI6NDogZXJyb3I6ICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9ERScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERTsKICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5Mzo0MzogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yc3NfZGZsdF9jciA9IHJ0ZV9s ZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9sZV90b19jcHVfMzInCiAjZGVmaW5lIHJ0ZV9sZV90b19j cHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTk0OjQ6IGVy cm9yOiAnSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUnIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREU7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDogZXJyb3I6IHVudXNl ZCB2YXJpYWJsZSAncmVxJyBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1f dm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uICdibnh0X2h3cm1fZnVuY192Zl9tYWMnOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxMDg0Ojk6IGVycm9yOiB2YXJpYWJsZSAncmVxJyBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29t cGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxp emVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig J3JlcScpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdyZXEn IGlzbid0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjEwOTA6NDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNf QUREUicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3Rv X2xlXzMyJwogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHJyB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1 X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyAncnRlX2NwdV90b19sZV8xNicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk0OjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyAnSFdSTV9QUkVQJwogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAt MSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VM VCcKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjow OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v eDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xlX3RvX2NwdV8xNicKICNkZWZpbmUg cnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxMDk3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnSFdSTV9DSEVDS19SRVNVTFQn CiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlICdyZXEnIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQg dG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjogJ3N0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0 JyBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgc3RydWN0 IGh3cm1fZnVuY19xY2Fwc19vdXRwdXQgKnFjYXBzKQogICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzk6 MTU6IGVycm9yOiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRp b24sIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4g ZnVuY3Rpb24gJ2NvcHlfZnVuY19jZmdfdG9fcWNhcHMnOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfcnNzY29z X2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjgyOjMzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIG1lbWNweShxY2Fwcy0+bWFjX2FkZHJlc3MsIGZjZmctPmRmbHRfbWFjX2FkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NDoyNzogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2wyX2N0 eHMgPSBmY2ZnLT5udW1fbDJfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox Njg1OjI4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHFjYXBzLT5tYXhfcnhfcmluZ3MgPSBmY2ZnLT5udW1fcnhfcmluZ3M7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2ODY6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF90eF9yaW5ncyA9IGZjZmctPm51bV90eF9y aW5nczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NzozMDogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2NtcGxf cmluZ3MgPSBmY2ZnLT5udW1fY21wbF9yaW5nczsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjg4OjI4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHFjYXBzLT5tYXhfc3RhdF9jdHggPSBmY2ZnLT5udW1fc3RhdF9jdHhzOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjkxOjI1OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfdm5pY3MgPSBmY2ZnLT5u dW1fdm5pY3M7CiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2OTk6MzM6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9tY2Fz dF9maWx0ZXJzID0gZmNmZy0+bnVtX21jYXN0X2ZpbHRlcnM7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTcwMTozMjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2h3X3JpbmdfZ3JwcyA9IGZjZmctPm51bV9o d19yaW5nX2dycHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVu Y3Rpb24gJ2JueHRfaHdybV9wZl9mdW5jX2NmZyc6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6OTogZXJyb3I6IHZhcmlhYmxl ICdyZXEnIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6OTogZXJyb3I6IGV4 Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6OTog ZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciAncmVxJykgWy1XZXJyb3JdCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6 Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3JlcScgaXNuJ3Qga25vd24KICBzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMDozMzogZXJyb3I6ICdIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICByZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMTo0OiBlcnJvcjogJ0hXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19NUlUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdy dGVfY3B1X3RvX2xlXzMyJwogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTI6NDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09T X0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEzOjQ6IGVy cm9yOiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMnIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzE0OjQ6IGVycm9yOiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBM X1JJTkdTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1 X3RvX2xlXzMyJwogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTU6NDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1RYX1JJTkdTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiAnSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUycgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JY X1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9f bGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNzo0OiBl cnJvcjogJ0hXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUycgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v eDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzE4OjQ6IGVycm9yOiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDUycg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTcxOTo0OiBlcnJvcjogJ0hXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1f SFdfUklOR19HUlBTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g J3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjogJ0hXUk1fRlVOQ19D RkcnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlw ZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzE2JwogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MzU6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX1BSRVAnCiAgSFdSTV9QUkVQKHJlcSwg RlVOQ19DRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAog ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTczODoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ0hXUk1f Q0hFQ0tfUkVTVUxUJwogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2Rl KTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2 JwogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX0NI RUNLX1JFU1VMVCcKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiB1 bnVzZWQgdmFyaWFibGUgJ3JlcScgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDU6MTA6IGVycm9yOiAnc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQnIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAg ICAgICAgIGludCBudW1fdmZzKQogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24gJ3BvcHVsYXRl X3ZmX2Z1bmNfY2ZnX3JlcSc6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDc6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NDc6MzQ6IGVycm9yOiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01UVScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLT5l bmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRV IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVf MzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJvcjogJ0hXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19NUlUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzMyJwog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NDk6NDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1JTU0NPU19DVFhTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAn cnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUwOjQ6IGVycm9yOiAnSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NU WFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1i c2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9y OiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTJyB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzMyJwogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3NTI6NDogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJ TkdTJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19s ZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzUzOjQ6IGVycm9yOiAnSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX05VTV9SWF9SSU5HUycgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g J3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1NDo0OiBlcnJvcjogJ0hXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUycgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFMg fAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2Rh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyAncnRlX2NwdV90b19sZV8zMicKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU1OjQ6IGVycm9yOiAn SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDUycgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVmaW5lIHJ0ZV9jcHVfdG9f bGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Njo0OiBl cnJvcjogJ0hXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTJyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzIn CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHJlcS0+bXR1ID0gcnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0 YS0+bXR1ICsgRVRIRVJfSERSX0xFTiArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzYwOjU6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5tcnUgPSBydGVfY3B1X3Rv X2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRhLT5tdHUgKyBFVEhFUl9IRFJfTEVOICsKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NjI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICByZXEtPm51bV9yc3Njb3NfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yc3Njb3Nf Y3R4IC8KICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NjQ6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJw LT5tYXhfc3RhdF9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjU6NTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9jbXBs X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X2NwX3JpbmdzIC8KICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 Njc6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBy ZXEtPm51bV90eF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF90eF9yaW5ncyAvIChu dW1fdmZzICsgMSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX3J4X3JpbmdzID0gcnRlX2NwdV90b19s ZV8xNihicC0+bWF4X3J4X3JpbmdzIC8gKG51bV92ZnMgKyAxKSk7CiAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY5OjU6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5u dW1fbDJfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9sMl9jdHggLyAobnVtX3ZmcyAr IDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV92bmljcyA9IHJ0ZV9jcHVfdG9fbGVfMTYoMSk7CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzcyOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgcmVxLT5udW1faHdfcmluZ19ncnBzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4 X3JpbmdfZ3JwcyAvCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog J3N0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0JyBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxp c3QgWy1XZXJyb3JdCiAgICAgICAgICAgaW50IHZmKQogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0 aW9uICdyZXNlcnZlX3Jlc291cmNlc19mcm9tX3ZmJzoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5MTozOiBlcnJvcjogcGFzc2lu ZyBhcmd1bWVudCAxIG9mICdjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzJyBmcm9tIGluY29tcGF0aWJs ZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoY2ZnX3Jl cSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQgJ3N0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV0IConIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlICdzdHJ1Y3QgaHdybV9mdW5j X2NmZ19pbnB1dCAqJwogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5NTozOiBlcnJv cjogcGFzc2luZyBhcmd1bWVudCAxIG9mICdjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzJyBmcm9tIGlu Y29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9fcWNh cHMoY2ZnX3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQgJ3N0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IConIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlICdzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAqJwogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2Fw cyhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IElu IGZ1bmN0aW9uICdibnh0X2h3cm1fYWxsb2NhdGVfcGZfb25seSc6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NDU6NTogZXJyb3I6 ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFJyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwKICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NDY6NTogZXJy b3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRScg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgSFdSTV9GVU5DX0NG R19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1 bmN0aW9uICdibnh0X2h3cm1fYWxsb2NhdGVfdmZzJzoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogdmFyaWFi bGUgJ3JlcScgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjog ZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5 OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yICdyZXEnKSBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1 NToyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAncmVxJyBpc24ndCBrbm93bgogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE4ODU6NTogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9S SU5HX01PREVfRU5BQkxFJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE4ODY6NTogZXJyb3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9U WF9SSU5HX01PREVfRElTQUJMRScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FC TEUpOwogICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJy b3I6ICdIV1JNX0ZVTkNfQ0ZHJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8xNicKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTE3OjM6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnSFdSTV9QUkVQJwog ICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MjQ6NTogZXJy b3I6ICdIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUicgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX0RGTFRfTUFDX0FERFIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICAgaWYgKHJjIHx8IHJlc3AtPmVycm9yX2NvZGUpIHsKICAgICAgICAgICAgICAgICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2RlYnVnLmg6NDY6MCwKICAgICAgICAg ICAgICAgICBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWJzZGFwcC1nY2MvaW5jbHVkZS9nZW5lcmljL3J0ZV9jeWNsZXMuaDo3NCwKICAgICAgICAgICAg ICAgICBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJz ZGFwcC1nY2MvaW5jbHVkZS9ydGVfY3ljbGVzLmg6NzEsCiAgICAgICAgICAgICAgICAgZnJvbSAv aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzozODoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTkzMToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgICByYywgcmVzcC0+ZXJyb3JfY29kZSk7CiAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVk ZS9ydGVfbG9nLmg6MzM0OjMyOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdSVEVfTE9H JwogICAgUlRFX0xPR1RZUEVfICMjIHQsICMgdCAiOiAiIF9fVkFfQVJHU19fKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJs ZSAncmVxJyBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1 bmN0aW9uICdibnh0X2h3cm1fZnVuY19idWZfcmd0cic6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlh YmxlICdyZXEnIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3 cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQgJ3JlcV90eXBlJyBzcGVjaWZpZWQgaW4g aW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBp bml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRp b24gZm9yICdyZXEnKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBv ZiAncmVxJyBpc24ndCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6ICdIV1JNX0ZV TkNfQlVGX1JHVFInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJl cS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzE2JwogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX1BSRVAnCiAgSFdSTV9Q UkVQKHJlcSwgRlVOQ19CVUZfUkdUUiwgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJy b3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAnSFdSTV9DSEVDS19SRVNVTFQnCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJl c3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ3J0 ZV9sZV90b19jcHVfMTYnCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8gJ0hXUk1fQ0hFQ0tfUkVTVUxUJwogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2 NDozNDogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSAncmVxJyBbLVdlcnJvcj11bnVzZWQtdmFyaWFi bGVdCiAgc3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0g MCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g J2JueHRfaHdybV9mdW5jX2J1Zl91bnJndHInOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSAn cmVxJyBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1 bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE5OTE6OTogZXJyb3I6IHVua25vd24gZmllbGQgJ3JlcV90eXBlJyBzcGVjaWZpZWQgaW4gaW5p dGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTk5MTo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0 aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24g Zm9yICdyZXEnKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAn cmVxJyBpc24ndCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiAnSFdSTV9G VU5DX0JVRl9VTlJHVFInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog IHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzE2JwogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5OTQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX1BSRVAnCiAgSFdS TV9QUkVQKHJlcSwgRlVOQ19CVUZfVU5SR1RSLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNw LT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VMVCcKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVf MTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byAncnRlX2xlX3RvX2NwdV8xNicKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyAnSFdSTV9DSEVDS19SRVNVTFQnCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTkxOjM2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlICdyZXEnIFstV2Vycm9yPXVudXNlZC12 YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFf dHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4g ZnVuY3Rpb24gJ2JueHRfaHdybV9mdW5jX2NmZ19kZWZfY3AnOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiB2 YXJpYWJsZSAncmVxJyBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVy cm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDA2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3IgJ3JlcScpIFstV2Vycm9yXQov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoyMDA2OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdyZXEnIGlzbid0IGtub3duCiAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6 ICdIV1JNX0ZVTkNfQ0ZHJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMToz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2NwdV90b19sZV8xNicKICNkZWZp bmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoyMDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnSFdSTV9QUkVQJwogIEhX Uk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDEzOjQ6IGVycm9yOiAn SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19BU1lOQ19FVkVOVF9DUik7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzMyJwogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ0hXUk1fQ0hFQ0tfUkVTVUxUJwogIEhXUk1fQ0hFQ0tf UkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRl X2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJz ZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2 KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTc6Mjogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VMVCcKICBIV1JNX0NIRUNLX1JF U1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUgJ3JlcScgWy1XZXJy b3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHsw fTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiAnYm54dF9o d3JtX3JlamVjdF9md2RfcmVzcCc6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IHZhcmlhYmxlICdyZXEnIGhh cyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3 ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6 IGVycm9yOiB1bmtub3duIGZpZWxkICdyZXFfdHlwZScgc3BlY2lmaWVkIGluIGluaXRpYWxpemVy Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMjY6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIg Wy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciAncmVx JykgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3JlcScgaXNu J3Qga25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFf dHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUg aW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiAnSFdSTV9SRUpFQ1RfRldE X1JFU1AnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFf dHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvICdydGVfY3B1X3RvX2xlXzE2JwogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMzI6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdIV1JNX1BSRVAnCiAgSFdSTV9QUkVQKHJl cSwgUkVKRUNUX0ZXRF9SRVNQLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9j b2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMzk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvICdIV1JNX0NIRUNLX1JFU1VMVCcKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUg aW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAncnRlX2xl X3RvX2NwdV8xNicKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byAnSFdSTV9DSEVDS19SRVNVTFQnCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2 OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlICdyZXEnIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0K ICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9 OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNjMTogYWxsIHdhcm5pbmdz IGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnYm54 dF9od3JtLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1 YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQg J25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVp bGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJn ZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rr aW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVjaXBl IGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjOToKT1M6IENlbnRP UzdfNjQKVGFyZ2V0OiBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0X2V0aGRl di5vLnBtZC5jICBMRCBibnh0X2V0aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJv cjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDU6NDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50 aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMg aW4KICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsK ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjog 4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBV VF9GTEFHU19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01P REUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9f bGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0 aW9uIOKAmGJueHRfaHdybV92bmljX3FjZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogdmFyaWFibGUg 4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3 cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTY0Ojk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBp bml0aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5p dGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24g Zm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBv ZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX1ZO SUNfUUNGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEu cmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4 Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBI V1JNX1BSRVAocmVxLCBWTklDX1FDRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6 IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUTigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9W TklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3Jf Y29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJl c3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk3ODo0NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICB2bmljLT5kZmx0X3JpbmdfZ3JwID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5kZmx0X3Jp bmdfZ3JwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc5OjQwOiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJzc19ydWxlID0gcnRl X2xlX3RvX2NwdV8xNihyZXNwLT5yc3NfcnVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODA6 NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5p Yy0+Y29zX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmNvc19ydWxlKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKA mQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk4MTozOTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUKICB2bmljLT5sYl9ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5sYl9y dWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf bGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgyOjM1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPm1ydSA9IHJ0ZV9sZV90b19jcHVfMTYo cmVzcC0+bXJ1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6ODogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19R Q0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8z MuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk4NDoxOTogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ERUZBVUxU4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgcmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAg ICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODU6 NDI6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5p Yy0+dmxhbl9zdHJpcCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzMy 4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfVkxBTl9TVFJJUF9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAg IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4Nzo0MDogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5iZF9zdGFsbCA9IHJ0 ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVf dG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4ODo0 OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01PREXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk4OTo0MTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUKICB2bmljLT5yb2NlX2R1YWwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZs YWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkwOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNf UUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19S T0NFX0RVQUxfVk5JQ19NT0RFOwogICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTkxOjQxOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHZuaWMtPnJvY2Vfb25seSA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19j cHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5OTI6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBV VF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9W TklDX01PREU7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTM6NDM6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+ cnNzX2RmbHRfY3IgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLi gJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5OTQ6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFH U19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREU7CiAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk2NDozMDogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9 dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5j dGlvbiDigJhibnh0X2h3cm1fZnVuY192Zl9tYWPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IHZhcmlh YmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVy cm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox MDg0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJv cl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTA4NDoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBr bm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDkw OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRl X2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEs IEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwK ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9y X2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3Rv X2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0 OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFy aWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6 IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0 ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX3FjYXBzX291dHB1dCAq cWNhcHMpCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IGl0cyBzY29wZSBpcyBv bmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90 IHdoYXQgeW91IHdhbnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhjb3B5X2Z1bmNfY2Zn X3RvX3FjYXBz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfcnNzY29zX2N0eCA9IGZjZmctPm51bV9yc3Nj b3NfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgyOjMzOiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweShxY2Fw cy0+bWFjX2FkZHJlc3MsIGZjZmctPmRmbHRfbWFjX2FkZHIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTY4NDoyNzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2wyX2N0eHMgPSBmY2ZnLT5udW1fbDJfY3R4 czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg1OjI4OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfcnhfcmluZ3Mg PSBmY2ZnLT5udW1fcnhfcmluZ3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2 ODY6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg cWNhcHMtPm1heF90eF9yaW5ncyA9IGZjZmctPm51bV90eF9yaW5nczsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTY4NzozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2NtcGxfcmluZ3MgPSBmY2ZnLT5udW1fY21w bF9yaW5nczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjg4OjI4OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhf c3RhdF9jdHggPSBmY2ZnLT5udW1fc3RhdF9jdHhzOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjkxOjI1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHFjYXBzLT5tYXhfdm5pY3MgPSBmY2ZnLT5udW1fdm5pY3M7CiAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2OTk6MzM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9tY2FzdF9maWx0ZXJzID0gZmNmZy0+bnVt X21jYXN0X2ZpbHRlcnM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcw MTozMjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBx Y2Fwcy0+bWF4X2h3X3JpbmdfZ3JwcyA9IGZjZmctPm51bV9od19yaW5nX2dycHM7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3Bm X2Z1bmNfY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGlu aXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogKG5lYXIg aW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9y OiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMDozMzogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzExOjQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEyOjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9SU1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTQ6NDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzE1OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJ TkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUyB8 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE3OjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFPigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v aTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTcxODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9W TklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdf R1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90 b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njoz MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJj ID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQog IEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJs ZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBB dCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NDU6MTA6IGVycm9yOiDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAg ICBpbnQgbnVtX3ZmcykKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmHBvcHVsYXRlX3Zm X2Z1bmNfY2ZnX3JlceKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc0Nzo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0NzozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TVRVIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDg6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDk6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NP U19DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTA6 NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1MTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwK ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTI6NDogZXJyb3I6 IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1PigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1RYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1f UlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTQ6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RY UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU1OjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9WTklDUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9p Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzU2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hX X1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTg6NTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm10dSA9IHJ0ZV9jcHVfdG9f bGVfMTYoYnAtPmV0aF9kZXYtPmRhdGEtPm10dSArIEVUSEVSX0hEUl9MRU4gKwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc2MDo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHJlcS0+bXJ1ID0gcnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsgRVRI RVJfSERSX0xFTiArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzYyOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fcnNzY29zX2N0eHMgPSBydGVfY3B1X3Rv X2xlXzE2KGJwLT5tYXhfcnNzY29zX2N0eCAvCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY0OjU6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fc3RhdF9jdHhz ID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3N0YXRfY3R4IC8gKG51bV92ZnMgKyAxKSk7CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzY1OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgcmVxLT5udW1fY21wbF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9j cF9yaW5ncyAvCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY3OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fdHhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2 KGJwLT5tYXhfdHhfcmluZ3MgLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njg6NTogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9y eF9yaW5ncyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yeF9yaW5ncyAvIChudW1fdmZzICsg MSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc2OTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogIHJlcS0+bnVtX2wyX2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5t YXhfbDJfY3R4IC8gKG51bV92ZnMgKyAxKSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzcxOjU6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fdm5pY3MgPSBy dGVfY3B1X3RvX2xlXzE2KDEpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc3Mjo1OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX2h3X3JpbmdfZ3JwcyA9IHJ0 ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yaW5nX2dycHMgLwogICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZl bDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc3ODoxMTogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRl Y2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgICBpbnQgdmYp CiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcmVzZXJ2ZV9yZXNvdXJjZXNfZnJvbV92 ZuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc5MTozOiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVu Y19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9y XQogICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6 MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkgYnV0 IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmQog c3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5NTozOiBlcnJvcjogcGFzc2luZyBhcmd1 bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBhdGlibGUg cG9pbnRlciB0eXBlIFstV2Vycm9yXQogICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEs IHJlc3ApOwogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2Fwcyhz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1 bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV9wZl9vbmx54oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODQ1OjU6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxF4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICB+KEhXUk1fRlVOQ19D RkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUgfAogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg0Njo1 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJ U0FCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgSFdS TV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV92ZnPigJk6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTog ZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUg dHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxODU1Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFst V2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxODU1Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx 4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHi gJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4ODU6NTogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9G TEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODg2OjU6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7CiAgICAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUg PSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkxNzoz OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgIEhXUk1fUFJF UChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkyNDo1OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFLigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X0RGTFRfTUFDX0FERFIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2 ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5MjY6MTc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgIGlmIChyYyB8fCByZXNwLT5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAgICAgICAgXgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9kZWJ1Zy5oOjQ2OjAsCiAgICAgICAgICAg ICAgICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvZ2VuZXJpYy9ydGVfY3ljbGVzLmg6NzQsCiAgICAgICAgICAgICAg ICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2N5Y2xlcy5oOjcxLAogICAgICAgICAgICAgICAgIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 Mzg6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE5MzE6MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgICAgcmMsIHJlc3AtPmVycm9yX2NvZGUpOwogICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2xvZy5oOjMzNDozMjogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhSVEVfTE9H 4oCZCiAgICBSVEVfTE9HVFlQRV8gIyMgdCwgIyB0ICI6ICIgX19WQV9BUkdTX18pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2J1Zl9yZ3Ry4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVy cm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5 cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAw IH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlw ZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogZXhjZXNzIGVs ZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjog KG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3Qg aHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjow OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1JHVFLigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19s ZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVG X1JHVFIsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTk4MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9D SEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29k ZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1 XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTk4MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6 IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJs ZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAw IH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhibnh0X2h3cm1fZnVuY19idWZfdW5yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJs ZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3Qg aHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNp ZmllZCBpbiBpbml0aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4g c3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiAobmVhciBpbml0 aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHN0 b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNf YnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1VOUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2 KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5NDoyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZfVU5S R1RSLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hF Q0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8x NuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVd CiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAw IH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9u IOKAmGJueHRfaHdybV9mdW5jX2NmZ19kZWZfY3DigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IHZhcmlh YmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVy cm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDA2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJv cl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MjAwNjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBr bm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6 MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5 cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MjAxMzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5D X0VWRU5UX0NS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAg SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSKTsKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsg XAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJy b3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVf dG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIw MDY6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12 YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3JlamVj dF9md2RfcmVzcOKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBp bml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9y ZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVy cm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXpl cgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoyMDI2Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVy IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCY cmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhy ZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhX Uk1fUkVKRUNUX0ZXRF9SRVNQ4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoyMDMyOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JN X1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBSRUpFQ1RfRldEX1JFU1AsIC0xLCByZXNwKTsKICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JN X0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6 MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICBy YyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9s ZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAz OToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkK ICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFi bGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9yZWpl Y3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMg ZXJyb3JzCgoKRmFpbGVkIEJ1aWxkICMxMDoKT1M6IENlbnRPUzdfNjQKVGFyZ2V0OiB4ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWNsYW5nClBNRElORk8gYm54dF9ldGhkZXYuby5wbWQuYyAgTEQgYm54 dF9ldGhkZXYuby9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAn SFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUnCiAgICAgICAg ICAgICAgICAgICAgICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5J Q19NT0RFKTsKICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzIn CiNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk0ODo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUnCiAgICAgICAgICAg ICAgICAgICAgICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19N T0RFKTsKICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk1MTo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUnCiAgICAgICAgICAgICAgICAg ICAgICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFKTsKICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiNkZWZpbmUgcnRl X2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2 NDozMDogZXJyb3I6IHZhcmlhYmxlIGhhcyBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBod3JtX3Zu aWNfcWNmZ19pbnB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0g ey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19x Y2ZnX2lucHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMCB9OwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBlcnJvcjogdXNlIG9mIHVu ZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkcnCiAgICAgICAgSFdSTV9QUkVQKHJl cSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IG5vdGU6IGV4cGFu ZGVkIGZyb20gbWFjcm8gJ0hXUk1fUFJFUCcKICAgICAgICByZXEucmVxX3R5cGUgPSBydGVfY3B1 X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgo8c2NyYXRjaCBzcGFjZT46MjA6MTogbm90ZTogZXhwYW5kZWQgZnJvbSBoZXJl CkhXUk1fVk5JQ19RQ0ZHCl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3Rl OiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfY3B1X3RvX2xlXzE2JwojZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzA6MjA6 IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19JTlBV VF9FTkFCTEVTX1ZGX0lEX1ZBTElEJwogICAgICAgICAgICAgICAgcnRlX2NwdV90b19sZV8zMihI V1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZBTElEKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9jcHVfdG9fbGVfMzInCiNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3Njoy OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNf cWNmZ19vdXRwdXQnCiAgICAgICAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1OjExOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdIV1JNX0NIRUNL X1JFU1VMVCcKICAgICAgICAgICAgICAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAg ICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBv ZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmlj X3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NzY6MjogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1 Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIEhXUk1fQ0hFQ0tfUkVTVUxUOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAnSFdSTV9DSEVDS19SRVNVTFQnCiAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcnRlX2xl X3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5 OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5l IHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19x Y2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0g YnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5Nzg6NDU6IGVycm9y OiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291 dHB1dCcKICAgICAgICB2bmljLT5kZmx0X3JpbmdfZ3JwID0gcnRlX2xlX3RvX2NwdV8xNihyZXNw LT5kZmx0X3JpbmdfZ3JwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYnCiNkZWZpbmUgcnRlX2xlX3RvX2Nw dV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NTo5OiBub3Rl OiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0Jwog ICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQgKnJlc3AgPSBicC0+aHdybV9jbWRf cmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3OTo0MDogZXJyb3I6IGluY29tcGxldGUg ZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAg IHZuaWMtPnJzc19ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5yc3NfcnVsZSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3Rv X2NwdV8xNicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0 cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2Zn X291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTgwOjQwOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBo d3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5pYy0+Y29zX3J1bGUgPSBydGVfbGVfdG9f Y3B1XzE2KHJlc3AtPmNvc19ydWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBl eHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19j cHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90 ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcK ICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21k X3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODE6Mzk6IGVycm9yOiBpbmNvbXBsZXRl IGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAg ICB2bmljLT5sYl9ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5sYl9ydWxlKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19j cHVfMTYnCiNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1 Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19v dXRwdXQgKnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk4MjozNTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdy bV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMtPm1ydSA9IHJ0ZV9sZV90b19jcHVfMTYo cmVzcC0+bXJ1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5n L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAncnRlX2xlX3RvX2NwdV8xNicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFy YXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3 cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTg0Ojg6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlw ZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICAgICAgICAgICAgICAgICAg cmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAg ICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDoz MDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8zMicKI2RlZmluZSBy dGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNm Z19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJw LT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBlcnJvcjog dXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X0RFRkFVTFQnCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk4NTo0MjogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMtPnZsYW5fc3Ry aXAgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTEwOjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzMyJwojZGVm aW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5p Y19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNw ID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODY6NDogZXJy b3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19WTEFOX1NUUklQX01PREUnCiAgICAgICAgICAgICAgICAgICAgICAgIEhXUk1fVk5JQ19R Q0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREU7CiAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTg3OjQwOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVj dCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5pYy0+YmRfc3RhbGwgPSBydGVfbGVf dG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTog ZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8zMicKI2RlZmluZSBydGVfbGVfdG9f Y3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQn CiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2Nt ZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiB1c2Ugb2YgdW5k ZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExf TU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X0JEX1NUQUxMX01PREU7CiAgICAgICAgICAgICAgICAgICAgICAgIF4KZmF0YWwgZXJyb3I6IHRv byBtYW55IGVycm9ycyBlbWl0dGVkLCBzdG9wcGluZyBub3cgWy1mZXJyb3ItbGltaXQ9XQoyMCBl cnJvcnMgZ2VuZXJhdGVkLgoKCkZhaWxlZCBCdWlsZCAjMTE6Ck9TOiBDZW50T1M3XzY0ClRhcmdl dDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCgpQTURJTkZPIGJueHRfZXRoZGV2 Lm8ucG1kLmMgIExEIGJueHRfZXRoZGV2Lm9JbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92bmljX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IGVycm9y OiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVu dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJz IGluCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJv cjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk1MTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRf Q1JfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVf Y3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJ biBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19xY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHZh cmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0 cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk2NDo5OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZp ZWQgaW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3Ry dWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IChuZWFyIGluaXRpYWxp emF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiBzdG9yYWdl IHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCY SFdSTV9WTklDX1FDRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BS RVDigJkKICBIV1JNX1BSRVAocmVxLCBWTklDX1FDRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3MDoy MDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUTigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHJ0ZV9jcHVfdG9fbGVf MzIoSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90 b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChy ZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VM VDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90 b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8x Nih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6Mjogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVD S19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5Nzg6NDU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+ZGZsdF9yaW5nX2dycCA9IHJ0ZV9sZV90b19jcHVfMTYo cmVzcC0+ZGZsdF9yaW5nX2dycCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90 b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc5OjQw OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMt PnJzc19ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5yc3NfcnVsZSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKA mQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk4MDo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUKICB2bmljLT5jb3NfcnVsZSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+Y29z X3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODE6Mzk6IGVycm9yOiBkZXJlZmVyZW5j aW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+bGJfcnVsZSA9IHJ0ZV9sZV90 b19jcHVfMTYocmVzcC0+bGJfcnVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19j cHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgyOjM1OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPm1y dSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+bXJ1KTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVf dG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4NDo4 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmVz cC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6IGVycm9yOiDi gJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVMVOKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTg1OjQyOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnZsYW5fc3RyaXAgPSBydGVfbGVfdG9fY3B1XzMy KHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiDi gJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RF4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVU X0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2 OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk4Nzo0MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICB2bmljLT5iZF9zdGFsbCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVf dG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RF OwogICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg5OjQxOiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHZuaWMtPnJvY2VfZHVh bCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmlu ZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk5MDo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVB TF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERTsKICAgIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5MTo0MTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yb2NlX29ubHkgPSBydGVf bGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTI6 NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREU7CiAgICBeCkluIGZpbGUg aW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTM6NDM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+cnNzX2RmbHRfY3IgPSBydGVfbGVfdG9f Y3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9f Y3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5NDo0OiBl cnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNG R19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjog dW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3Ry dWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5j X3ZmX21hY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTA4NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0 aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg cmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBp biBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6OTogZXJyb3I6IChuZWFyIGlu aXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjog c3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRf TUFDX0FERFIpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8j I3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVz cCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEw OTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZ CiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVm aW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTA5NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19S RVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVycm9yOiB1bnVz ZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjog4oCYc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9y XQogICAgICAgIHN0cnVjdCBod3JtX2Z1bmNfcWNhcHNfb3V0cHV0ICpxY2FwcykKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNjc5OjE1OiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0 aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBb LVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE2ODE6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgcWNhcHMtPm1heF9yc3Njb3NfY3R4ID0gZmNmZy0+bnVtX3Jzc2Nvc19jdHhzOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODI6MzM6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgbWVtY3B5KHFjYXBzLT5tYWNfYWRkcmVzcywg ZmNmZy0+ZGZsdF9tYWNfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjg0OjI3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHFjYXBzLT5tYXhfbDJfY3R4cyA9IGZjZmctPm51bV9sMl9jdHhzOwogICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2ODU6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9yeF9yaW5ncyA9IGZjZmctPm51bV9yeF9y aW5nczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NjoyODogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X3R4X3Jp bmdzID0gZmNmZy0+bnVtX3R4X3JpbmdzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjg3OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHFjYXBzLT5tYXhfY21wbF9yaW5ncyA9IGZjZmctPm51bV9jbXBsX3JpbmdzOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODg6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9zdGF0X2N0eCA9IGZjZmct Pm51bV9zdGF0X2N0eHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2OTE6MjU6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMt Pm1heF92bmljcyA9IGZjZmctPm51bV92bmljczsKICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTY5OTozMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICBxY2Fwcy0+bWF4X21jYXN0X2ZpbHRlcnMgPSBmY2ZnLT5udW1fbWNhc3RfZmlsdGVyczsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzAxOjMyOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfaHdfcmlu Z19ncnBzID0gZmNmZy0+bnVtX2h3X3JpbmdfZ3JwczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fcGZfZnVuY19jZmfigJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3MDY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGlu Y29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRp YWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBm b3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBv ZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJl cSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzEwOjMzOiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBy ZXEuZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X01UVSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9S U1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3MTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9D VFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE0OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExf UklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE1 OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3MTY6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNzo0OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTcxODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9W TklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE5OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklO R19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYy OjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0 eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3Ap OwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQog IEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmlu ZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVT VUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0NToxMDogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0K ICAgICAgICAgIGludCBudW1fdmZzKQogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcG9w dWxhdGVfdmZfZnVuY19jZmdfcmVx4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19s ZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ4OjQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDk6NDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1JTU0NPU19DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1MDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9TVEFUX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTE6NDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3NTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhf UklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf Y3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklO R1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90 b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU0OjQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFPigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzU1OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1ZOSUNT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDUyB8CiAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTY6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBT4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9IV19SSU5HX0dSUFMpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzU4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgcmVxLT5tdHUgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRhLT5tdHUg KyBFVEhFUl9IRFJfTEVOICsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjA6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm1ydSA9IHJ0ZV9jcHVfdG9fbGVfMTYo YnAtPmV0aF9kZXYtPmRhdGEtPm10dSArIEVUSEVSX0hEUl9MRU4gKwogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2Mjo1 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+ bnVtX3Jzc2Nvc19jdHhzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3Jzc2Nvc19jdHggLwog ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc2NDo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHJlcS0+bnVtX3N0YXRfY3R4cyA9IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9z dGF0X2N0eCAvIChudW1fdmZzICsgMSkpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2NTo1OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVtX2NtcGxfcmluZ3Mg PSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfY3BfcmluZ3MgLwogICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2Nzo1OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bnVt X3R4X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3R4X3JpbmdzIC8gKG51bV92ZnMg KyAxKSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzY4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fcnhfcmluZ3MgPSBydGVfY3B1X3RvX2xlXzE2KGJw LT5tYXhfcnhfcmluZ3MgLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njk6NTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9sMl9j dHhzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X2wyX2N0eCAvIChudW1fdmZzICsgMSkpOwog ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc3MTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHJlcS0+bnVtX3ZuaWNzID0gcnRlX2NwdV90b19sZV8xNigxKTsKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NzI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICByZXEtPm51bV9od19yaW5nX2dycHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfcmluZ19n cnBzIC8KICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Nzg6MTE6IGVycm9yOiDigJhzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qg Wy1XZXJyb3JdCiAgICAgICAgICAgaW50IHZmKQogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9u IOKAmHJlc2VydmVfcmVzb3VyY2VzX2Zyb21fdmbigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3OTE6MzogZXJyb3I6IHBhc3Np bmcgYXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21w YXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICAgY29weV9mdW5jX2NmZ190b19xY2Fwcyhj ZmdfcmVxLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc4OjEzOiBub3RlOiBleHBlY3RlZCDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkKIHN0YXRpYyB2b2lkIGNvcHlfZnVuY19jZmdfdG9f cWNhcHMoc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZjZmcsCiAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3OTU6MzogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3Rv X3FjYXBz4oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICAgY29w eV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjc4OjEzOiBub3Rl OiBleHBlY3RlZCDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZIGJ1dCBhcmd1bWVu dCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkKIHN0YXRpYyB2 b2lkIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZj ZmcsCiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fYWxsb2NhdGVf cGZfb25seeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTg0NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFH U19TVERfVFhfUklOR19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01P REVfRU5BQkxFIHwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE4NDY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RY X1JJTkdfTU9ERV9ESVNBQkxFKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1f YWxsb2NhdGVfdmZz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFz IGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogZXhjZXNzIGVsZW1l bnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJvcjogKG5l YXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6Mjk6IGVy cm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxODg1OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9S SU5HX01PREVfRU5BQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogICB+KEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUg fAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTg4Njo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19T VERfVFhfUklOR19NT0RFX0RJU0FCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RF X0RJU0FCTEUpOwogICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Mjoz NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlw ZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkxNzozOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYSFdSTV9QUkVQ4oCZCiAgIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7 CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTkyNDo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RG TFRfTUFDX0FERFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFIpOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJjIHx8IHJlc3AtPmVy cm9yX2NvZGUpIHsKICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfZGVidWcuaDo0NjowLAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvZ2Vu ZXJpYy9ydGVfY3ljbGVzLmg6NzQsCiAgICAgICAgICAgICAgICAgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Y3ljbGVzLmg6NzEsCiAgICAgICAgICAgICAgICAgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozODoKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkzMToxMzogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICByYywgcmVz cC0+ZXJyb3JfY29kZSk7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9sb2cuaDozMzQ6MzI6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYUlRFX0xPR+KAmQogICAgUlRFX0xPR1RZ UEVfICMjIHQsICMgdCAiOiAiIF9fVkFfQVJHU19fKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1X ZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9 IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhi bnh0X2h3cm1fZnVuY19idWZfcmd0cuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCY cmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1f ZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE5NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGlu IGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3Qg aW5pdGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0 aW9uIGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjM0OiBlcnJvcjogc3RvcmFnZSBz aXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfcmd0 cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0JVRl9SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCByZXNw KTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4 MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkK ICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzY6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgICByYyA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZp bmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTgzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JF U1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHVudXNl ZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBo d3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9m dW5jX2J1Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBo YXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVm X3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6 OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRp YWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlh bGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9uIGZv ciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3RvcmFnZSBzaXplIG9m IOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lu cHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6 IOKAmEhXUk1fRlVOQ19CVUZfVU5SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1VOUkdUUiwgLTEsIHJl c3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox OTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKA mQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2Rl ZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tf UkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogdW51 c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0 IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRf aHdybV9mdW5jX2NmZ19kZWZfY3DigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJl ceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiBleGNl c3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVy cm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAw NjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8x NuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMDk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRf Q1LigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1IpOwogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1f Q0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2Nv ZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9f Y3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6 Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJp YWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3JlamVjdF9m d2RfcmVzcOKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0 aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNw X2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9y OiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoyMDI2Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFst V2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx 4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHi gJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1f UkVKRUNUX0ZXRF9SRVNQ4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMzI6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1f UFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFJFSkVDVF9GV0RfUkVTUCwgLTEsIHJlc3ApOwogIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njoz MDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJj ID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVf bGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIw Mzk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZ CiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fcmVq ZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFz IGVycm9ycwoKCkZhaWxlZCBCdWlsZCAjMTI6Ck9TOiBDZW50T1M3XzY0ClRhcmdldDogeDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBMRCBibnh0 X2V0aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhibnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FD RkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9D RV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk0NTo0OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRl ZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogICAgSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19R Q0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JP Q0VfT05MWV9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1Nf REZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54 dF9od3JtX3ZuaWNfcWNmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkg aGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV92bmljX3Fj ZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJy b3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVy Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk2NDo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBb LVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx 4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKA mSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVx X3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZH4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9 IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2Nzoy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQ KHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzA6MjA6IGVycm9yOiDigJhIV1JN X1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZGX0lEX1ZBTElE4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBydGVfY3B1X3RvX2xlXzMyKEhXUk1fVk5JQ19RQ0ZH X0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUQpOwogICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkg eyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKA mEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVy cm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf bGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc2OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTc4OjQ1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHZuaWMtPmRmbHRfcmluZ19ncnAgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmRmbHRfcmluZ19n cnApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3OTo0MDogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yc3NfcnVsZSA9IHJ0ZV9s ZV90b19jcHVfMTYocmVzcC0+cnNzX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xl X3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODA6 NDA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5p Yy0+Y29zX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmNvc19ydWxlKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE2 4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTgxOjM5OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogIHZuaWMtPmxiX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxi X3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4MjozNTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5tcnUgPSBydGVfbGVfdG9fY3B1 XzE2KHJlc3AtPm1ydSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6ODogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfbGVf dG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX0RFRkFVTFTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVG QVVMVDsKICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk4NTo0MjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICB2bmljLT52bGFuX3N0cmlwID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFncykgJgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMTA6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xl X3RvX2NwdV8zMuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4Njo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQ X01PREU7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODc6NDA6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+YmRf c3RhbGwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMTA6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8zMuKAmQogI2Rl ZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk4ODo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NU QUxMX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgIF4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4OTo0MTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB2bmljLT5yb2NlX2R1YWwgPSBydGVfbGVfdG9fY3B1 XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTA6NDogZXJyb3I6 IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RF4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREU7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5OTE6NDE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgdm5pYy0+cm9jZV9vbmx5ID0gcnRlX2xlX3RvX2NwdV8zMihyZXNw LT5mbGFncykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfbGVfdG9fY3B1XzMy4oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkyOjQ6IGVycm9yOiDigJhIV1JN X1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTkzOjQzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHZuaWMtPnJzc19kZmx0X2NyID0gcnRlX2xlX3RvX2NwdV8zMihyZXNwLT5mbGFn cykgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9sZV90b19jcHVfMzLigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTQ6NDogZXJyb3I6IOKAmEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JT U19ERkxUX0NSX01PREU7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDi gJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX3ZuaWNfcWNm Z19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY192Zl9tYWPigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEw ODQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29t cGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxp emVyIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig 4oCYcmVx4oCZKSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDi gJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9 IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJv bSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxMDkwOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfREZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAx OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxMDk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BS RVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjEx OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBpZiAo cmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk3OjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVT VUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgIHJjID0gcnRlX2xl X3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmluZSBydGVfbGVfdG9fY3B1 XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9D SEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJl ceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBs ZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZ IGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICBzdHJ1Y3Qg aHdybV9mdW5jX3FjYXBzX291dHB1dCAqcWNhcHMpCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OTox NTogZXJyb3I6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlv biwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgWy1XZXJyb3JdCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBm dW5jdGlvbiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfcnNz Y29zX2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNjgyOjMzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIG1lbWNweShxY2Fwcy0+bWFjX2FkZHJlc3MsIGZjZmctPmRmbHRfbWFjX2Fk ZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NDoyNzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2wy X2N0eHMgPSBmY2ZnLT5udW1fbDJfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjg1OjI4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHFjYXBzLT5tYXhfcnhfcmluZ3MgPSBmY2ZnLT5udW1fcnhfcmluZ3M7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODY6Mjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF90eF9yaW5ncyA9IGZjZmctPm51bV90 eF9yaW5nczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4NzozMDogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2Nt cGxfcmluZ3MgPSBmY2ZnLT5udW1fY21wbF9yaW5nczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNjg4OjI4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHFjYXBzLT5tYXhfc3RhdF9jdHggPSBmY2ZnLT5udW1fc3RhdF9jdHhzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjkxOjI1OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHFjYXBzLT5tYXhfdm5pY3MgPSBmY2Zn LT5udW1fdm5pY3M7CiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2OTk6MzM6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcWNhcHMtPm1heF9t Y2FzdF9maWx0ZXJzID0gZmNmZy0+bnVtX21jYXN0X2ZpbHRlcnM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTcwMTozMjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICBxY2Fwcy0+bWF4X2h3X3JpbmdfZ3JwcyA9IGZjZmctPm51 bV9od19yaW5nX2dycHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4g ZnVuY3Rpb24g4oCYYm54dF9od3JtX3BmX2Z1bmNfY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2 YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5 OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcwNjo5OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1X ZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKA mXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTcxMDozMzogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLmVuYWJsZXMgPSBydGVf Y3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlXi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTcxMjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAogICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEzOjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNTo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJ TkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTc6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTg6NDogZXJy b3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1PigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9I V19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQUyk7CiAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg cmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMToz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTczNToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ 4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJl c3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczODoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VM VDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90 b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8x Nih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4OjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hF Q0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHi gJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0 IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2 ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NDU6MTA6IGVycm9yOiDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmSBk ZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICBpbnQgbnVt X3ZmcykKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmHBvcHVsYXRlX3ZmX2Z1bmNfY2Zn X3JlceKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc0Nzo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc0NzozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLT5lbmFibGVz ID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ5OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RY UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTA6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MgfAog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUyOjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1NDo0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9M Ml9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1 NTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzU2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsK ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1ODo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHJlcS0+bXR1ID0g cnRlX2NwdV90b19sZV8xNihicC0+ZXRoX2Rldi0+ZGF0YS0+bXR1ICsgRVRIRVJfSERSX0xFTiAr CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzYwOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgcmVxLT5tcnUgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5ldGhfZGV2LT5kYXRh LT5tdHUgKyBFVEhFUl9IRFJfTEVOICsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjI6NTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9yc3Njb3NfY3R4cyA9 IHJ0ZV9jcHVfdG9fbGVfMTYoYnAtPm1heF9yc3Njb3NfY3R4IC8KICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjQ6NTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51 bV9zdGF0X2N0eHMgPSBydGVfY3B1X3RvX2xlXzE2KGJwLT5tYXhfc3RhdF9jdHggLyAobnVtX3Zm cyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3NjU6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV9jbXBsX3JpbmdzID0gcnRlX2NwdV90b19sZV8x NihicC0+bWF4X2NwX3JpbmdzIC8KICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Njc6NTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51bV90eF9yaW5ncyA9IHJ0ZV9j cHVfdG9fbGVfMTYoYnAtPm1heF90eF9yaW5ncyAvIChudW1fdmZzICsgMSkpOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc2ODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IHJlcS0+bnVtX3J4X3JpbmdzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3J4X3JpbmdzIC8g KG51bV92ZnMgKyAxKSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY5OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1fbDJfY3R4cyA9IHJ0ZV9jcHVfdG9f bGVfMTYoYnAtPm1heF9sMl9jdHggLyAobnVtX3ZmcyArIDEpKTsKICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NzE6NTog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICByZXEtPm51 bV92bmljcyA9IHJ0ZV9jcHVfdG9fbGVfMTYoMSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzcyOjU6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgcmVxLT5udW1faHdfcmlu Z19ncnBzID0gcnRlX2NwdV90b19sZV8xNihicC0+bWF4X3JpbmdfZ3JwcyAvCiAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog QXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAg ICAgIGludCB2ZikKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhyZXNlcnZlX3Jlc291 cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjM6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg 4oCYY29weV9mdW5jX2NmZ190b19xY2Fwc+KAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5 cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoY2ZnX3JlcSwgcmVzcCk7CiAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3Jt X2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzk1OjM6IGVycm9yOiBw YXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYY29weV9mdW5jX2NmZ190b19xY2Fwc+KAmSBmcm9tIGlu Y29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgIGNvcHlfZnVuY19jZmdfdG9fcWNh cHMoY2ZnX3JlcSwgcmVzcCk7CiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2Zn X3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3BmX29ubHnigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4 NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9E RV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIH4o SFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8CiAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9S SU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJM RSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3Zmc+KAmToK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTg1NTo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQg aW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9Owog ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE4NTU6OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5p dGlhbGl6ZXIgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJyb3I6IChuZWFyIGluaXRpYWxpemF0aW9u IGZvciDigJhyZXHigJkpIFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJvcjogc3RvcmFnZSBzaXpl IG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg cmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg4NTo1OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMReKA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgfihIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwKICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4ODY6 NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9E SVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxFKTsKICAgICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JN X0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJl cS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE5MTc6Mzogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKA mQogICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MjQ6NTog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5MjY6MTc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChyYyB8fCByZXNwLT5lcnJvcl9jb2RlKSB7CiAgICAg ICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2RlYnVnLmg6 NDY6MCwKICAgICAgICAgICAgICAgICBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL2dlbmVyaWMvcnRlX2N5Y2xlcy5o Ojc0LAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2N5Y2xlcy5oOjcxLAogICAg ICAgICAgICAgICAgIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6Mzg6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MzE6MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgcmMsIHJlc3AtPmVycm9yX2NvZGUpOwog ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfbG9nLmg6MzM0OjMyOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmFJURV9MT0figJkKICAgIFJURV9MT0dUWVBFXyAjIyB0LCAjIHQgIjog IiBfX1ZBX0FSR1NfXykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6 Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJp YWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfYnVm X3JndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlh bGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiB1 bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox OTY0Ojk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vy cm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZ KSBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkg aXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5y ZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19C VUZfUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEu cmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkK ICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9SR1RSLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIGlmIChy ZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5ODM6Mjogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNV TFQ7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgcmMgPSBydGVfbGVf dG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfbGVfdG9fY3B1XzE24oCZCiAjZGVmaW5lIHJ0ZV9sZV90b19jcHVf MTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4MzoyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NI RUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx 4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3Ry X2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19idWZfdW5yZ3Ry4oCZ OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1 dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB1bmtub3du IGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6 IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTkxOjk6IGVycm9yOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKSBbLVdl cnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZ dCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90 eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUg aW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVG X1VOUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEu cmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkK ICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9VTlJHVFIsIC0xLCByZXNwKTsKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTox MTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYg KHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5ODoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JF U1VMVDsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9s ZV90b19jcHVfMTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2Nw dV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk4OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhy ZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vu cmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVm X2Nw4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxp emVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEg PSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjo5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0 cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjo5OiBlcnJvcjogKG5lYXIgaW5pdGlh bGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NG R+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5 cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JN X1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxMzo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NS4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX0FTWU5DX0VWRU5UX0NSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDE3 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQog IEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NjozMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2xlX3RvX2NwdV8xNuKAmQogI2RlZmlu ZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVT VUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2OjI5OiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9yZWplY3RfZndkX3Jlc3DigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIw MjY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29t cGxldGUgdHlwZQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogdW5rbm93biBmaWVsZCDi gJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjog ZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo5 OiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkgWy1XZXJyb3JdCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24K ICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9 OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX1JFSkVDVF9GV0RfUkVTUOKA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUg PSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDMy OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BS RVAocmVxLCBSRUpFQ1RfRldEX1JFU1AsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgaWYgKHJlc3AtPmVy cm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzY6MzA6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICByYyA9IHJ0ZV9sZV90b19jcHVf MTYocmVzcC0+ZXJyb3JfY29kZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9sZV90b19jcHVfMTbigJkKICNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVT VUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1X ZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1 dCByZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQg QnVpbGQgIzEzOgpPUzogRkMyNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj LWRlYnVnCgpQTURJTkZPIGJueHRfZXRoZGV2Lm8ucG1kLmMgIExEIGJueHRfZXRoZGV2Lm9JbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92 bmljX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTQ1OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19N T0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6 IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBm b3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8z MuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNf TU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk1MTo0 OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNf UUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19x Y2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6 ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6 Mzc6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0 aWFsaXplcgogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0g MCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6NDk6IGVy cm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0 cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6NDk6IG5v dGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDozMDogZXJyb3I6 IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3Zu aWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDog ZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAg Xn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJM RVNfVkZfSURfVkFMSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9W QUxJRCk7CiAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXTigJkKICAgaWYgKHJlc3At PmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc2OjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwog IF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk4NDoxOTogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09V VFBVVF9GTEFHU19ERUZBVUxU4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgcmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFV TFQ7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzo5ODY6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NU UklQX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RFOwogICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODg6NDogZXJyb3I6IOKAmEhX Uk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFMTF9NT0RF4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X0JEX1NUQUxMX01PREU7CiAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5OTA6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NF X0RVQUxfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREU7CiAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTI6 NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREU7CiAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTQ6NDogZXJyb3I6IOKA mEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVU X0ZMQUdTX1JTU19ERkxUX0NSX01PREU7CiAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx 4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY192Zl9tYWPigJk6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6 OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxl dGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGlu IHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4 NDozNjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoy OTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDogZXJyb3I6 IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX0RGTFRfTUFDX0FERFIpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9f bGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNf Q0ZHLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0 cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAg SFdSTV9DSEVDS19SRVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoyOTogZXJyb3I6 IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODo0MzogZXJyb3I6IOKAmHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3 aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0 aW9uIFstV2Vycm9yXQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGNvcHlf ZnVuY19jZmdfdG9fcWNhcHPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2ODE6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZ CiAgcWNhcHMtPm1heF9yc3Njb3NfY3R4ID0gZmNmZy0+bnVtX3Jzc2Nvc19jdHhzOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3Bm X2Z1bmNfY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGlu aXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjozNjogZXJy b3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3MDY6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZv ciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZ IGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoz NjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzEwOjMzOiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01U VeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEuZW5hYmxl cyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTcxMTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RY UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTM6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzE0OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MgfAog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE1OjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MTY6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNzo0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9M Ml9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcx ODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzE5OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsK ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzM1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhI V1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJy b3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF5+ fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx 4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0b3Ag bGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3NDQ6MTc6IGVycm9yOiDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKA mSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRz aWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBbLVdlcnJvcl0KICAgICAgICAg IHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpyZXEsCiAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcG9wdWxhdGVfdmZfZnVuY19jZmdfcmVx 4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzQ3OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZCiAgcmVxLT5lbmFibGVzID0g cnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICBe fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0NzozNDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgcmVxLT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19N UlUgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90 b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ5OjQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTA6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMg fAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzUyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1RYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTM6NDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc1NDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9M Ml9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf Y3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1NTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9WTklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU2OjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc3NzoxODogZXJyb3I6IOKAmHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlz dCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xh cmF0aW9uIFstV2Vycm9yXQogICAgICAgICAgIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpj ZmdfcmVxLAogICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5j dGlvbiDigJhyZXNlcnZlX3Jlc291cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjI2OiBlcnJvcjog cGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBp bmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5 cGVzXQogICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2Zn X3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzk1OjI2OiBlcnJvcjogcGFzc2luZyBhcmd1bWVu dCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9p bnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQogICBjb3B5X2Z1 bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5j X2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3BmX29ubHnigJk6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE4NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJ TkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8 CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5H X01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7 CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV92ZnPigJk6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTog ZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUg dHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0 cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCBy ZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NToz Njogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NToyOTog ZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTg4NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERf VFhfUklOR19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5B QkxFIHwKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE4ODY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RY X1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNB QkxFKTsKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAx OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTE3OjM6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BS RVDigJkKICAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAgXn5+fn5+fn5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5MjQ6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01B Q19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MjY6MTc6IGVycm9yOiBkZXJlZmVyZW5j aW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291 dHB1dOKAmQogICBpZiAocmMgfHwgcmVzcC0+ZXJyb3JfY29kZSkgewogICAgICAgICAgICAgICAg IF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE4NTU6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9y PXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fZnVuY19idWZfcmd0cuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx 4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVu Y19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo0MTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVx X3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCiAgc3RydWN0IGh3cm1fZnVuY19idWZf cmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo1MzogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBp biBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19idWZfcmd0 cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo1Mzogbm90ZTogKG5lYXIgaW5p dGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHN0b3JhZ2Ugc2l6 ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0JVRl9SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCByZXNw KTsKICBefn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX291dHB1dOKAmQog ICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hF Q0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiB1bnVzZWQg dmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdy bV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9m dW5jX2J1Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBo YXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVm X3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjQzOiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFf dHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91 bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTo1NTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50 cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19idWZf dW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6NTU6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6MzY6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2J1 Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1VOUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2 KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk0OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9V TlJHVFIsIC0xLCByZXNwKTsKICBefn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91 bnJndHJfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5OTg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVT VUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MToz NjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlh YmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBl ID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1 bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2NmZ19kZWZfY3DigJk6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6 IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQog IHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoyMDA2OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBp bml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7 MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjozNjogbm90 ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTogZXJyb3I6 IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MjAwOToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZ CiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICBefn5+fn5+fn4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAx Mzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NS 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkK ICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NI RUNLX1JFU1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2OjI5OiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3JlamVjdF9md2RfcmVzcOKAmToKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MjAyNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5j b21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsu cmVxX3R5cGUgPSAwfTsKICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAy Njo0MzogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGlu aXRpYWxpemVyCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVx X3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MjAyNjo1NTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIg Wy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVx X3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MjAyNjo1NTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKA mHJlceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu 4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9SRUpF Q1RfRldEX1JFU1DigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg cmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMToz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MjAzMjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ 4oCZCiAgSFdSTV9QUkVQKHJlcSwgUkVKRUNUX0ZXRF9SRVNQLCAtMSwgcmVzcCk7CiAgXn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX291dHB1dOKAmQogICBpZiAocmVz cC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxU OwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg 4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9yZWplY3Rf ZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21w aWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdibnh0X2h3cm0ubycgZmFpbGVkCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUg Zm9yIHRhcmdldCAnYm54dCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo3MzogcmVjaXBlIGZv ciB0YXJnZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNp cGUgZm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTA3OiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFs bCcgZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICMxNDoKT1M6IEZDMjRfNjQKVGFyZ2V0OiBpNjg2LW5h dGl2ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBMRCBibnh0X2V0 aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhi bnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9E VUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NDU6NDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25s eSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KICAgIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf Y3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92bmlj X3FjZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFs aXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJl cSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2 NDozNzogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGlu aXRpYWxpemVyCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUg PSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo0OTog ZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAg c3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo0OTog bm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJv cjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1f dm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0 OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlw ZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAg Xn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJM RVNfVkZfSURfVkFMSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9W QUxJRCk7CiAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5l cnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfREVGQVVMVOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxU OwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTg2OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJ UF9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JN X1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19C RF9TVEFMTF9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTkwOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9E VUFMX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFOwogICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkyOjQ6 IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9E ReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTk0OjQ6IGVycm9yOiDigJhI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9EReKAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19SU1NfREZMVF9DUl9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKA mSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0 IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfdmZfbWFj4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6 IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRl IHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBz dHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg cmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6 MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDkwOjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19ERkxUX01BQ19BRERSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8x NihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAt MSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0cHV04oCZ CiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9D SEVDS19SRVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoyOTogZXJyb3I6IHVudXNl ZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODo0MzogZXJyb3I6IOKAmHN0cnVjdCBod3Jt X2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5v dCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFst V2Vycm9yXQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGNvcHlfZnVuY19j ZmdfdG9fcWNhcHPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2ODE6MzA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZCiAgcWNh cHMtPm1heF9yc3Njb3NfY3R4ID0gZmNmZy0+bnVtX3Jzc2Nvc19jdHhzOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3BmX2Z1bmNf Y2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxp emVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEg PSB7MH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjozNjogZXJyb3I6IGV4 Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MDY6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhy ZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKA mXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzEwOjMzOiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVeKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEuZW5hYmxlcyA9IHJ0 ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2Rl ZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlXi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTM6NDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhT4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4 Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBM X1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTU6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJ TkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTY6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MTc6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE4OjQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklD UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE5OjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRl X2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MzU6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEs IEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19j Zmdfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3Mzg6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU 4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoyOTog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxl XQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0NDoxNzogZXJyb3I6IOKA mHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIg bGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRl Y2xhcmF0aW9uIFstV2Vycm9yXQogICAgICAgICAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg KnJlcSwKICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlv biDigJhwb3B1bGF0ZV92Zl9mdW5jX2NmZ19yZXHigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDc6NTogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXTigJkKICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgIF5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoz NjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzQ3OjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01U VeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEtPmVuYWJs ZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc0OTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMg fAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1MDo0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFPigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1MgfAogICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mjo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc1Mzo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5H U+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1NDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhTIHwKICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTU6NDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0 aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVf Y3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 NTY6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19H UlBT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFMpOwogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf Y3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc3NzoxODogZXJy b3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJh bWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9u IG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQogICAgICAgICAgIHN0cnVjdCBod3JtX2Z1bmNfY2Zn X2lucHV0ICpjZmdfcmVxLAogICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OiBJbiBmdW5jdGlvbiDigJhyZXNlcnZlX3Jlc291cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjI2 OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPi gJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1w b2ludGVyLXR5cGVzXQogICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwog ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0 ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2Yg dHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5 X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzk1OjI2OiBlcnJvcjogcGFzc2lu ZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBh dGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQog ICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3Fj YXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3Bm X29ubHnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE4NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1Nf U1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RF X0VOQUJMRSB8CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NU RF9UWF9SSU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVf RElTQUJMRSk7CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV92ZnPigJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE4NTU6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGlu Y29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1l bnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTg1NTozNjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTg1NToyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgog IHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTg4NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9G TEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5H X01PREVfRU5BQkxFIHwKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE4ODY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxB R1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdf TU9ERV9ESVNBQkxFKTsKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBl cnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTkxNzozOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9QUkVQ4oCZCiAgIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgIF5+ fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTI0OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf REZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19j Zmdfb3V0cHV04oCZCiAgIGlmIChyYyB8fCByZXNwLT5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAg ICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1X ZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9 IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKA mGJueHRfaHdybV9mdW5jX2J1Zl9yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDi gJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdy bV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjQxOiBlcnJvcjogdW5rbm93biBmaWVsZCDi gJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKICBzdHJ1Y3QgaHdybV9mdW5j X2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjUzOiBlcnJvcjogZXhjZXNzIGVsZW1l bnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1 Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjUzOiBub3RlOiAobmVh ciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjM0OiBlcnJvcjogc3RvcmFn ZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZf cmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1JHVFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMj dHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCBy ZXNwKTsKICBefn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX291dHB1dOKA mQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiB1bnVz ZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3Qg aHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdy bV9mdW5jX2J1Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKA mSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNf YnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjQzOiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhy ZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKICBzdHJ1Y3QgaHdybV9mdW5jX2J1 Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTo1NTogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19i dWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6NTU6IG5vdGU6 IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6MzY6IGVycm9yOiBz dG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5j X2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQlVGX1VOUkdUUuKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xl XzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5NDoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZf VU5SR1RSLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19idWZf dW5yZ3RyX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JF U1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6 MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJp YWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlw ZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBm dW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9y OiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUK ICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MjAwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3Qg aW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6MzY6IG5v dGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9y OiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JN X0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJl cS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9p Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoyMDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkK ICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF5+fn5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDEz OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1Li gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1IpOwogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAg aWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNL X1JFU1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2OjI5OiBlcnJvcjogdW51c2VkIHZh cmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3JlamVjdF9md2RfcmVzcOKAmToKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAy Njo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21w bGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVx X3R5cGUgPSAwfTsKICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo0 MzogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRp YWxpemVyCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5 cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MjAyNjo1NTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1X ZXJyb3JdCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5 cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MjAyNjo1NTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJl ceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZ dCBrbm93bgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90 eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9SRUpFQ1Rf RldEX1JFU1DigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2 ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMzI6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQog IEhXUk1fUFJFUChyZXEsIFJFSkVDVF9GV0RfUkVTUCwgLTEsIHJlc3ApOwogIF5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVy cm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJl ceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9y ZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3Jz Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1w cmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnYm54dF9od3JtLm8nIGZhaWxlZAovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0 YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFy Z2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0 ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZv ciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZh aWxlZAoKCkZhaWxlZCBCdWlsZCAjMTU6Ck9TOiBGQzI0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1jbGFuZwpQTURJTkZPIGJueHRfZXRoZGV2Lm8ucG1kLmMgIExEIGJueHRfZXRo ZGV2Lm8vaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NDU6NDogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFJwogICAgICAgICAgICAg ICAgICAgICAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9E RSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ4OjQ6IGVycm9yOiB1c2Ugb2YgdW5k ZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdSTV9WTklDX1FDRkdfT1VUUFVU X0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUpOwogICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk1MTo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FD RkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUnCiAgICAgICAgICAgICAgICAgICAgICAg IEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFKTsKICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiB2YXJpYWJsZSBoYXMgaW5jb21wbGV0 ZSB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQnCiAgICAgICAgc3RydWN0IGh3cm1f dm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24g b2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmlj X3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 Njc6MjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZH JwogICAgICAgIEhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJlc3ApOwogICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTYyOjM0OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdIV1JNX1BSRVAnCiAgICAgICAg cmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPHNjcmF0Y2ggc3BhY2U+OjIyOjE6IG5v dGU6IGV4cGFuZGVkIGZyb20gaGVyZQpIV1JNX1ZOSUNfUUNGRwpeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6 IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJM RVNfVkZfSURfVkFMSUQnCiAgICAgICAgICAgICAgICBydGVfY3B1X3RvX2xlXzMyKEhXUk1fVk5J Q19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUQpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk3NjoyOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5 cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgSFdSTV9DSEVDS19SRVNV TFQ7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VMVCcKICAgICAgICAgICAgICAgIGlmIChyZXNwLT5l cnJvcl9jb2RlKSB7IFwKICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTog Zm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAg ICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jl c3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzY6MjogZXJyb3I6IGluY29tcGxldGUgZGVm aW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NjozMDogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnSFdSTV9DSEVDS19SRVNVTFQnCiAgICAgICAgICAgICAg ICAgICAgICAgIHJjID0gcnRlX2xlX3RvX2NwdV8xNihyZXNwLT5lcnJvcl9jb2RlKTsgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVf bGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBv ZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmlj X3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5Nzg6NDU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3Ry dWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5kZmx0X3JpbmdfZ3JwID0g cnRlX2xlX3RvX2NwdV8xNihyZXNwLT5kZmx0X3JpbmdfZ3JwKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDk6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYn CiNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdy bV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQg KnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3OTo0 MDogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmlj X3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMtPnJzc19ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihy ZXNwLT5yc3NfcnVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogZXhwYW5kZWQg ZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8xNicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndh cmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAg c3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2Fk ZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTgwOjQwOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0 aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5pYy0+ Y29zX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmNvc19ydWxlKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2 JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3 cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0 ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODE6 Mzk6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5p Y19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5sYl9ydWxlID0gcnRlX2xlX3RvX2NwdV8xNihy ZXNwLT5sYl9ydWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6IG5vdGU6IGV4cGFuZGVkIGZy b20gbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYnCiNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJk IGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0 cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQgKnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRy OwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk4MjozNTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlv biBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMtPm1y dSA9IHJ0ZV9sZV90b19jcHVfMTYocmVzcC0+bXJ1KTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90 ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8xNicKI2RlZmluZSBydGVfbGVf dG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6 IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRw dXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3Jt X2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0Ojg6IGVycm9yOiBpbmNvbXBs ZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAg ICAgICAgICAgICAgICAgICAgICAgcmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVU X0ZMQUdTX0RFRkFVTFQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjExMDozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xl X3RvX2NwdV8zMicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2Yg J3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19x Y2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTg0OjE5OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQnCiAgICAgICAgICAgICAgICAgICAgICAgIHJl c3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4NTo0MjogZXJyb3I6IGluY29t cGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0Jwog ICAgICAgIHZuaWMtPnZsYW5fc3RyaXAgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAm CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdy dGVfbGVfdG9fY3B1XzMyJwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlv biBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92 bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5ODY6NDogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hX Uk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREUnCiAgICAgICAgICAgICAg ICAgICAgICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREU7CiAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg3OjQwOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZp bml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5p Yy0+YmRfc3RhbGwgPSBydGVfbGVfdG9fY3B1XzMyKHJlc3AtPmZsYWdzKSAmCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjExMDozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8z MicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBo d3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1 dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4 OjQ6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19P VVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01PREU7CiAgICAgICAgICAgICAgICAgICAg ICAgIF4KZmF0YWwgZXJyb3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBzdG9wcGluZyBub3cg Wy1mZXJyb3ItbGltaXQ9XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZv ciB0YXJnZXQgJ2JueHRfaHdybS5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zdWJkaXIubWs6NjM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdibnh0JyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjM6IHJlY2lw ZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnZHJpdmVycycgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjg6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFs bCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5t azoxMDc6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQg IzE2OgpPUzogRkMyNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJl ZAoKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBMRCBibnh0X2V0aGRldi5vSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19j ZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JP Q0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBub3Rl OiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVh Y2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X1JPQ0VfRFVBTF9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NDg6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19S T0NFX09OTFlfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREUp OwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NTE6NDogZXJy b3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RF4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9y ZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9f bGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3ZuaWNfcWNmZ+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1 dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5y ZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjM3OiBl cnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6 ZXIKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjQ5OiBlcnJvcjog ZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3Qg aHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjQ5OiBub3RlOiAo bmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV92bmljX3Fj ZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9y OiDigJhIV1JNX1ZOSUNfUUNGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJlc3ApOwogIF5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NzA6MjA6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19JTlBVVF9FTkFCTEVTX1ZG X0lEX1ZBTElE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBy dGVfY3B1X3RvX2xlXzMyKEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUQp OwogICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5lcnJv cl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBefn5+ fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfREVGQVVMVOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxUOwog ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTg2OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9N T0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9T VEFMTF9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTkwOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFM X1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFOwogICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkyOjQ6IGVy cm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9EReKA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19R Q0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTk0OjQ6IGVycm9yOiDigJhIV1JN X1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9EReKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFH U19SU1NfREZMVF9DUl9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBb LVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJl cSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfdmZfbWFj4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVy cm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5 cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTA4NDozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1 Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6MzY6 IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVy cm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDkwOjQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19ERkxUX01BQ19BRERSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2 KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk0OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywg LTEsIHJlc3ApOwogIF5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1dOKA mQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk3OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVycm9yOiB1bnVz ZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6NDM6IGVycm9yOiDigJhzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2lsbCBu b3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBb LVdlcnJvcl0KIHN0YXRpYyB2b2lkIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMoc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgKmZjZmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhjb3B5X2Z1bmNf Y2ZnX3RvX3FjYXBz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmQogIHFj YXBzLT5tYXhfcnNzY29zX2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9wZl9mdW5j X2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFs aXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6MzY6IGVycm9yOiBl eGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzA2OjM2OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCY cmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27i gJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxMDozMzogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLmVuYWJsZXMgPSBy dGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6 MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQog I2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19N UlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTcxMjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEzOjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNTo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JY X1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRl X2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTc6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RY UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTg6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1PigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQUyk7CiAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTczNToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9Q UkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICBefn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVycm9yX2Nv ZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczODoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBefn5+fn5+ fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBb LVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVs OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzQ0OjE3OiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXTigJkgZGVj bGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBv ZiB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24gWy1XZXJyb3JdCiAgICAgICAgICBzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqcmVxLAogICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmHBvcHVsYXRlX3ZmX2Z1bmNfY2ZnX3JlceKAmToK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTc0Nzo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9j cHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgXn4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDc6MzQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDg6NDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwK ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0OTo0OiBlcnJv cjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzUwOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1MTo0OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTc1Mjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUzOjQ6IGVycm9yOiDigJhIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9SWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NTQ6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RY U+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTU6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Njo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX0hXX1JJTkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Nzc6MTg6IGVycm9yOiDigJhzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2ls bCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlv biBbLVdlcnJvcl0KICAgICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqY2ZnX3Jl cSwKICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g 4oCYcmVzZXJ2ZV9yZXNvdXJjZXNfZnJvbV92ZuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5MToyNjogZXJyb3I6IHBhc3Np bmcgYXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21w YXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10K ICAgY29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19x Y2FwcyhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc5NToyNjogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMSBv ZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIg dHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICAgY29weV9mdW5jX2Nm Z190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lu cHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV9wZl9vbmx54oCZOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox ODQ1OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01P REVfRU5BQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICB+ KEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUgfAogICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg0 Njo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RF X0RJU0FCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg SFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJ biBmdW5jdGlvbiDigJhibnh0X2h3cm1fYWxsb2NhdGVfdmZz4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1Ojk6IGVycm9y OiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUK ICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTg1NTozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3Qg aW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6MzY6IG5v dGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6Mjk6IGVycm9y OiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE4ODU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJ TkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8 CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxODg2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5H X01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7 CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTkxNzozOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZ CiAgIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgIF5+fn5+fn5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox OTI0OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQURE UuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTI2OjE3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTi gJkKICAgaWYgKHJjIHx8IHJlc3AtPmVycm9yX2NvZGUpIHsKICAgICAgICAgICAgICAgICBefgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxODU1OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVz ZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3Jt X2Z1bmNfYnVmX3JndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBo YXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVm X3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5NjQ6NDE6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl 4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NTM6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3Ry dWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NTM6IG5vdGU6IChuZWFyIGluaXRpYWxp emF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg 4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0 IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKA mEhXUk1fRlVOQ19CVUZfUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhI V1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9SR1RSLCAtMSwgcmVzcCk7CiAg Xn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9vdXRwdXTigJkKICAgaWYg KHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4MzoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JF U1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjM0OiBlcnJvcjogdW51c2VkIHZhcmlh YmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVu Y19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19i dWZfdW5yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGlu aXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJn dHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTk5MTo0MzogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXi gJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3Ry X2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4g c3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0 cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjU1OiBub3RlOiAobmVhciBp bml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3RvcmFnZSBz aXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5y Z3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0JVRl9VTlJHVFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JN XyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5NDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZfVU5SR1RS LCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3Ry X291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox OTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKA mQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6MzY6IGVy cm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0K ICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAg fTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlv biDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVycm9yOiB2YXJp YWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MjAwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlh bGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6MzY6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+CkluIGZp bGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFf dHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjIwMDk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhX Uk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTM6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19BU1lOQ19FVkVOVF9DUuKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19BU1lOQ19FVkVOVF9DUik7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0cHV04oCZCiAgIGlm IChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTc6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19S RVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTogZXJyb3I6IHVudXNlZCB2YXJp YWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1 bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9yZWplY3RfZndkX3Jlc3DigJk6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6 OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxl dGUgdHlwZQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90 eXBlID0gMH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6NDM6 IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFs aXplcgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBl ID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIw MjY6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vy cm9yXQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBl ID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjIwMjY6NTU6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHi gJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQg a25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlw ZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fUkVKRUNUX0ZX RF9SRVNQ4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5y ZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMzI6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQog IEhXUk1fUFJFUChyZXEsIFJFSkVDVF9GV0RfUkVTUCwgLTEsIHJlc3ApOwogIF5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVy cm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJl ceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9y ZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3Jz Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1w cmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnYm54dF9od3JtLm8nIGZhaWxlZAovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0 YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFy Z2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0 ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZv ciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZh aWxlZAoKCkZhaWxlZCBCdWlsZCAjMTc6Ck9TOiBGQzI0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBMRCBibnh0X2V0aGRl di5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFM X1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk0NTo0OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5 IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogICAgSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09V VFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBp biB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05M WV9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9D Ul9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3Jt X3ZuaWNfcWNmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGlu aXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTY0OjM3OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQg aW4gaW5pdGlhbGl6ZXIKICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFf dHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0 OjQ5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJv cl0KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0 OjQ5OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3Qg aHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NjI6MzQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1f IyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5Njc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFZOSUNfUUNGRywgLTEsIHJl c3ApOwogIF5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NzA6MjA6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19JTlBV VF9FTkFCTEVTX1ZGX0lEX1ZBTElE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICBydGVfY3B1X3RvX2xlXzMyKEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNf VkZfSURfVkFMSUQpOwogICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV04oCZCiAgIGlm IChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JF U1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6IGVycm9yOiDigJhIV1JNX1ZOSUNf UUNGR19PVVRQVVRfRkxBR1NfREVGQVVMVOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIHJlc3AtPmZsYWdzKSAmIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFH U19ERUZBVUxUOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1Nf VkxBTl9TVFJJUF9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9y OiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBV VF9GTEFHU19CRF9TVEFMTF9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTkwOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19N T0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTkyOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZ X1ZOSUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFOwogICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTk0OjQ6IGVy cm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9EReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFOwogICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51c2VkIHZhcmlhYmxl IOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fdm5pY19x Y2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfdmZfbWFj4oCZOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxMDg0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBp bmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDozNjogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjEwODQ6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjEwODQ6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24K ICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDkwOjQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVf Y3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk0OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVx LCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxMDk3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VM VOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6 IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJs ZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6NDM6IGVycm9yOiDi gJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVy IGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBk ZWNsYXJhdGlvbiBbLVdlcnJvcl0KIHN0YXRpYyB2b2lkIGNvcHlfZnVuY19jZmdfdG9fcWNhcHMo c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKmZjZmcsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dOKAmQogIHFjYXBzLT5tYXhfcnNzY29zX2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRf aHdybV9wZl9mdW5jX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZ IGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6 MzY6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9y XQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjM2OiBub3RlOiAobmVhciBpbml0aWFsaXph dGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKA mHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTcxMDozMzogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19N VFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRl X2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVf Y3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNT Q09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RY U+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJ TkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNTo0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HUyB8CiAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTc6NDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3MTg6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5J Q1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdf R1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Mjoz NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlw ZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczNToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsK ICBefn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAgaWYgKHJl c3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczODoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VM VDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxl IOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog QXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzQ0OjE3OiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2li bGUgb3V0c2lkZSBvZiB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24gWy1XZXJyb3JdCiAg ICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqcmVxLAogICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmHBvcHVsYXRlX3ZmX2Z1bmNf Y2ZnX3JlceKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0Nzo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmQogIHJlcS0+ZW5h YmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8 CiAgICAgXn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDc6MzQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRV4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIo SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDg6 NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTVJVIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc0OTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1Nf Q1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUwOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RB VF9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1 MTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdT 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1Mg fAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUzOjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9SWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3NTQ6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fTDJfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTU6NDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZO SUNTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVf dG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Njo0 OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9i eXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2Nw dV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Nzc6MTg6IGVycm9y OiDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1l dGVyIGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBv ciBkZWNsYXJhdGlvbiBbLVdlcnJvcl0KICAgICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCAqY2ZnX3JlcSwKICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog SW4gZnVuY3Rpb24g4oCYcmVzZXJ2ZV9yZXNvdXJjZXNfZnJvbV92ZuKAmToKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5MToyNjog ZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZ IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9p bnRlci10eXBlc10KICAgY29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVk IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5 cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9m dW5jX2NmZ190b19xY2FwcyhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5NToyNjogZXJyb3I6IHBhc3Npbmcg YXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21wYXRp YmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICAg Y29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3Jt X2Z1bmNfY2ZnX2lucHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2Fw cyhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV9wZl9v bmx54oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxODQ1OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NU RF9UWF9SSU5HX01PREVfRU5BQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICB+KEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9F TkFCTEUgfAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTg0Njo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERf VFhfUklOR19NT0RFX0RJU0FCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICAgSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJ U0FCTEUpOwogICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fYWxsb2NhdGVfdmZz4oCZOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox ODU1Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNv bXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50 cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE4NTU6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4 NTU6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBz dHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE4ODU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxB R1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19N T0RFX0VOQUJMRSB8CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxODg2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdT X1NURF9UWF9SSU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01P REVfRElTQUJMRSk7CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJy b3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTkxNzozOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9QUkVQ4oCZCiAgIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgIF5+ fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTI0OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf REZMVF9NQUNfQUREUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTI2OjE3OiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5j X2NmZ19vdXRwdXTigJkKICAgaWYgKHJjIHx8IHJlc3AtPmVycm9yX2NvZGUpIHsKICAgICAgICAg ICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBb LVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g 4oCYYm54dF9od3JtX2Z1bmNfYnVmX3JndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlhYmxl IOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBo d3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NDE6IGVycm9yOiB1bmtub3duIGZpZWxk IOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgogIHN0cnVjdCBod3JtX2Z1 bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NTM6IGVycm9yOiBleGNlc3MgZWxl bWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNf YnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NTM6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2J1 Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2Mjoz NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19CVUZfUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1f IyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9SR1RSLCAt MSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9vdXRw dXTigJkKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk4Mzoy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBI V1JNX0NIRUNLX1JFU1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0OjM0OiBlcnJvcjog dW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3Ry dWN0IGh3cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fZnVuY19idWZfdW5yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSDigJhy ZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9m dW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTo0MzogZXJyb3I6IHVua25vd24gZmllbGQg 4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCiAgc3RydWN0IGh3cm1fZnVu Y19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6NTU6IGVycm9yOiBleGNlc3Mg ZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1 bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjU1OiBu b3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJv cjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1f ZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0JVRl9VTlJHVFLigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90 b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5NDoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVO Q19CVUZfVU5SR1RSLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVu Y19idWZfdW5yZ3RyX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NI RUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF5+fn5+fn5+fn5+fn5+fn5+Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE5OTE6MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNl ZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVxID0gey5y ZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6 IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRl IHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBz dHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQg cmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6 MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3Qg aHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMDk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1f UFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXn5+fn5+fn5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19BU1lOQ19F VkVOVF9DUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19BU1lOQ19FVkVOVF9DUik7CiAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0 cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTc6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAg SFdSTV9DSEVDS19SRVNVTFQ7CiAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTogZXJyb3I6 IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9yZWplY3RfZndkX3Jlc3Di gJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjIwMjY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIg YnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMjY6NDM6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmll ZCBpbiBpbml0aWFsaXplcgogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjIwMjY6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRp YWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEg PSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6NTU6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9u IGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx 4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhX Uk1fUkVKRUNUX0ZXRF9SRVNQ4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8x NuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMzI6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIFJFSkVDVF9GV0RfUkVTUCwgLTEsIHJlc3ApOwog IF5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9vdXRwdXTigJkKICAg aWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNL X1JFU1VMVDsKICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogdW51c2VkIHZh cmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1f cmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0 ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9y dGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnYm54dF9od3JtLm8nIGZh aWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2Mzog cmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFp bGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4 NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVjaXBlIGZvciB0YXJnZXQg J2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjMTg6Ck9TOiBVQjE2MDRfNjQKVGFyZ2V0 OiBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBM RCBibnh0X2V0aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5j dGlvbiDigJhibnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAy OjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkK ICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NDU6NDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw b3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KICAgIEhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0OiBlcnJvcjog4oCYSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1Nf Uk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1Nf REZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRf aHdybV92bmljX3FjZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhh cyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fdm5pY19xY2Zn X2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9y OiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NjQ6NDk6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFst V2Vycm9yXQogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0g MCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u Yzo5NjQ6NDk6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2 NDozMDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0 cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhX Uk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBWTklDX1FDRkcsIC0xLCBy ZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJM RVNfVkZfSURfVkFMSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9W QUxJRCk7CiAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5l cnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjk4NDoxOTogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ERUZBVUxU 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgcmVzcC0+Zmxh Z3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk4Njo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZM QU5fU1RSSVBfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01PREU7CiAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j Ojk4ODo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0JEX1NUQUxMX01P REXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTkwOjQ6IGVycm9y OiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9EReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZH X09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFOwogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5OTI6NDogZXJyb3I6 IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREU7CiAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5NDo0OiBlcnJvcjog 4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3 cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX3ZmX21h Y+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTA4NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXpl ciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjEwODQ6MzY6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3Ry dWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJl cSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjM2 OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBl cnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X0RGTFRfTUFDX0FERFIpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4 Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhX Uk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA5NDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCBy ZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0cHV04oCZCiAgIGlmIChyZXNw LT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7 CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJv cj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9 OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3 OToxNTogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGlu c2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX3Fj YXBzX291dHB1dCAqcWNhcHMpCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IGl0 cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMg cHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhj b3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dOKAmQogIHFjYXBzLT5tYXhfcnNzY29zX2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3Jt X3BmX2Z1bmNfY2Zn4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFz IGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVt ZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE3MDY6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24K ICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMDozMzog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xl XzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEx OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX01SVSB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzEyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19D VFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9D VFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTQ6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzE1OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1RYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVT X05VTV9SWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzE3OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NU WFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTcxODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9WTklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX0hXX1JJTkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVf MTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM1OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywg LTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAgaWYg KHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczODoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JF U1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFst V2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEg PSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVsOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzQ1OjEwOiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXTigJkgZGVjbGFy ZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgaW50IG51bV92ZnMp CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhwb3B1bGF0ZV92Zl9mdW5jX2NmZ19yZXHi gJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NDc6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXTigJkKICByZXEtPmVuYWJsZXMgPSBy dGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDc6MzQ6IGVycm9yOiDigJhIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ4OjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ5OjQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBV VF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzUwOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTlVNX1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTE6NDogZXJyb3I6IOKAmEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9p Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzUyOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RY X1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5H UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19s ZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU0OjQ6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFPigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1NTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9WTklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Njo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0hXX1JJ TkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogQXQg dG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5w dXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAg IGludCB2ZikKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhyZXNlcnZlX3Jlc291cmNl c19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzkxOjI2OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKA mGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBl IFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQogICBjb3B5X2Z1bmNfY2ZnX3Rv X3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3 ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBi dXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZ CiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2Zn X2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzk1OjI2OiBlcnJvcjogcGFzc2luZyBh cmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBhdGli bGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQogICBj b3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVuY19j ZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5j X2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0cnVj dCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rp b24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3BmX29ubHnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NDU6NTogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NGR19J TlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8CiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODQ2OjU6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJM ReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7CiAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog SW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3Zmc+KAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTo5OiBlcnJv cjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBl CiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4 NTU6MzY6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vy cm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjM2OiBub3RlOiAobmVhciBpbml0aWFs aXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9m IOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVx ID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg4NTo1OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgfihIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwKICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4ODY6NTog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNB QkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9ESVNBQkxFKTsKICAgICBeCklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5y ZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTE3OjM6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICAg SFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTI0OjU6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVU X0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEw MjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZ CiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6MTkyNjoxNzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0cHV04oCZCiAgIGlmIChyYyB8 fCByZXNwLT5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJv cjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAg c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2J1Zl9yZ3Ry4oCZ OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1 dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9 IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdW5rbm93biBm aWVsZCDigJhyZXFfdHlwZeKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo1Mzog ZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAg c3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTk2NDo1Mzogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2 NDozNDogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0 cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19CVUZfUkdUUuKAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1 X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NzoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVO Q19CVUZfUkdUUiwgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3Ry X291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox OTgzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKA mQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDozNDogZXJyb3I6IHVudXNlZCB2YXJp YWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1 bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2J1 Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5p dGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0 cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJy b3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVy Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE5OTE6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVy IFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTkxOjU1OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig 4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBp c27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsu cmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVO Q19CVUZfVU5SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog IHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxOTk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDi gJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9VTlJHVFIsIC0xLCByZXNwKTsKICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3 NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3Jf Y29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTk5MTozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2Vk LXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJl cV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJ biBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2Ojk6IGVy cm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5 cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MjAwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1X ZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6MzY6IG5vdGU6IChuZWFyIGluaXRp YWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUg b2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCBy ZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVf Y3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhh cHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlv biBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVf MTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwOToyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwg RlVOQ19DRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19BU1lOQ19FVkVOVF9DUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19BU1lOQ19F VkVOVF9DUik7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6 MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBc CiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoyMDE3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhI V1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxl XQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fcmVqZWN0X2Z3ZF9y ZXNw4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxp emVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IHVu a25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIw MjY6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vy cm9yXQogIHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBl ID0gMH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjIwMjY6NTU6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHi gJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQg a25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlw ZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX1JFSkVDVF9GV0Rf UkVTUOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVx X3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MjAzMjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdS TV9QUkVQKHJlcSwgUkVKRUNUX0ZXRF9SRVNQLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBo d3JtX3JlamVjdF9md2RfcmVzcF9vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsg XAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY SFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6 IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJs ZV0KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9 IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNjMTogYWxsIHdhcm5p bmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAn Ym54dF9od3JtLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJn ZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rr YnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0 YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVj aXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjMTk6Ck9TOiBV QjE2MDRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwpQTURJTkZPIGJueHRf ZXRoZGV2Lm8ucG1kLmMgIExEIGJueHRfZXRoZGV2Lm9JbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV92bmljX2NmZ+KAmToKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6 IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNfTU9E ReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5J Q19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTQ1OjQ6IG5vdGU6IGVhY2ggdW5kZWNsYXJl ZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZOSUNf TU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1 X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0ODo0 OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01P REXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk1MTo0OiBlcnJvcjog4oCYSFdSTV9WTklD X1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUlNT X0RGTFRfQ1JfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fdm5pY19xY2Zn4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6OTogZXJy b3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlw ZQogIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9Owog ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk2NDo5OiBlcnJvcjogdW5rbm93biBmaWVsZCDigJhyZXFfdHlwZeKAmSBz cGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXIKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjQ5OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdf aW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjQ5OiBub3RlOiAobmVhciBpbml0aWFsaXph dGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCY cmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0g ey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FD RkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90 eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTog aW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0 ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTY3OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JN X1BSRVAocmVxLCBWTklDX1FDRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3MDoyMDogZXJyb3I6IOKA mEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJMRVNfVkZfSURfVkFMSUTigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklD X1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1h Y3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAo eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX3ZuaWNf cWNmZ19vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTc2OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VM VOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg0OjE5OiBlcnJvcjog4oCYSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNGR19PVVRQVVRf RkxBR1NfREVGQVVMVDsKICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg2OjQ6IGVycm9yOiDigJhI V1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfVkxBTl9TVFJJUF9NT0RF4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg4OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNf UUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19CRF9TVEFM TF9NT0RFOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzo5OTA6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ST0NFX0RVQUxfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklD X01PREU7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk5Mjo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1JPQ0VfT05MWV9WTklDX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9PTkxZX1ZOSUNf TU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6OTk0OjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUlNTX0RGTFRfQ1JfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19SU1NfREZMVF9DUl9NT0RFOwog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NjQ6MzA6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9y PXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5wdXQgcmVxID0gey5y ZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVu Y3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfdmZfbWFj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0Ojk6IGVycm9yOiB2YXJp YWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDozNjog ZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAg c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6MzY6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9u IGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjEwODQ6Mjk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx 4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTA5MDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0RG TFRfTUFDX0FERFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1f RlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTA5NDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZ CiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3 cm1fZnVuY19jZmdfb3V0cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjEwOTc6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hF Q0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDg0OjI5OiBlcnJvcjog dW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3Ry dWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IOKAmHN0cnVjdCBo d3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdl cnJvcl0KICAgICAgICBzdHJ1Y3QgaHdybV9mdW5jX3FjYXBzX291dHB1dCAqcWNhcHMpCiAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTY3OToxNTogZXJyb3I6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVm aW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdh bnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZ OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNjgxOjMwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmQogIHFjYXBzLT5tYXhfcnNzY29z X2N0eCA9IGZjZmctPm51bV9yc3Njb3NfY3R4czsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX3BmX2Z1bmNfY2Zn4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2 Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBs ZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTcwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6 ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6MzY6IG5vdGU6IChuZWFy IGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6Mjk6IGVycm9yOiBzdG9yYWdl IHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMDozMzogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdf SU5QVVRfRU5BQkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgcmVxLmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRl L3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY cnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTE6NDogZXJyb3I6IOKAmEhXUk1fRlVO Q19DRkdfSU5QVVRfRU5BQkxFU19NUlXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJVIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMjo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SU1NDT1NfQ1RYU+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fUlNTQ09TX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMw OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNk ZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxNzEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X1NUQVRfQ1RYU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9DVFhTIHwKICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxNDo0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9DTVBMX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9DTVBMX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5l IHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTcxNTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9UWF9S SU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5H UyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTc6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fTDJfQ1RYU+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5Q VVRfRU5BQkxFU19OVU1fTDJfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MTg6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fVk5JQ1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg ICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNTIHwKICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUv cnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhy dGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxOTo0OiBlcnJvcjog4oCYSFdSTV9GVU5D X0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFPigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVN X0hXX1JJTkdfR1JQUyk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5v dGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmlu ZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkfigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihI V1JNXyMjdHlwZSk7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDi gJhydGVfY3B1X3RvX2xlXzE24oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTczNToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0x LCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfb3V0cHV04oCZCiAgIGlmIChy ZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3Mzg6Mjogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAgSFdSTV9DSEVDS19SRVNV TFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdl cnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0g ezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0IHRvcCBsZXZlbDoKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MTc0NToxMDogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZIGRlY2xhcmVk IGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgIGludCBudW1fdmZzKQog ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcG9wdWxhdGVfdmZfZnVuY19jZmdfcmVx4oCZ OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzQ3OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV04oCZCiAgcmVxLT5lbmFibGVzID0gcnRl X2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAgICBeCklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ3OjM0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICByZXEtPmVuYWJsZXMgPSBydGVfY3B1X3RvX2xlXzMyKEhXUk1fRlVOQ19D RkdfSU5QVVRfRU5BQkxFU19NVFUgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9m IG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4 KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ4OjQ6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8 CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDk6NDogZXJy b3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlNTQ09TX0NUWFPigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRl ci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xl XzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc1MDo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9TVEFUX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8CiAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTE6NDogZXJyb3I6 IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19OVU1fQ01QTF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3NTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fVFhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdTIHwKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2lu Y2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNy byDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1Mzo0OiBlcnJvcjog4oCYSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9SWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19O VU1fUlhfUklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3Rl OiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUg cnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxNzU0OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NU WFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU1OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1ZOSUNT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9WTklDUyB8CiAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NTY6NDogZXJyb3I6IOKA mEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklOR19HUlBT4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9F TkFCTEVTX05VTV9IV19SSU5HX0dSUFMpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzogQXQgdG9wIGxldmVsOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzc4OjExOiBlcnJvcjog4oCYc3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXTigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFst V2Vycm9yXQogICAgICAgICAgIGludCB2ZikKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDi gJhyZXNlcnZlX3Jlc291cmNlc19mcm9tX3Zm4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzkxOjI2OiBlcnJvcjogcGFzc2lu ZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPigJkgZnJvbSBpbmNvbXBh dGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQog ICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwogICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgaHdybV9m dW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzk1OjI2 OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGNvcHlfZnVuY19jZmdfdG9fcWNhcHPi gJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1w b2ludGVyLXR5cGVzXQogICBjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBzKGNmZ19yZXEsIHJlc3ApOwog ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY3ODoxMzogbm90ZTogZXhwZWN0ZWQg4oCY c3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDi gJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAq4oCZCiBzdGF0aWMgdm9pZCBjb3B5X2Z1bmNf Y2ZnX3RvX3FjYXBzKHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICpmY2ZnLAogICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3BmX29ubHnigJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE4NDU6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdf TU9ERV9FTkFCTEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg IH4oSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzoxODQ2OjU6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9U WF9SSU5HX01PREVfRElTQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElT QUJMRSk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2FsbG9jYXRlX3Zmc+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTg1NTo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBi dXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9 OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE4NTU6MzY6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0 IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9 IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjM2OiBu b3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODU1OjI5OiBlcnJv cjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1f ZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6MTg4NTo1OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklO R19NT0RFX0VOQUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAgfihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxFIHwK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE4ODY6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1RE X1RYX1JJTkdfTU9ERV9ESVNBQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9E SVNBQkxFKTsKICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUp OyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90 b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5MTc6Mzogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmEhXUk1fUFJFUOKAmQogICBIV1JNX1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwog ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE5MjQ6NTogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxU X01BQ19BRERS4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERSKTsKICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5MjY6MTc6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2Zn X291dHB1dOKAmQogICBpZiAocmMgfHwgcmVzcC0+ZXJyb3JfY29kZSkgewogICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJy b3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHsw fTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0 X2h3cm1fZnVuY19idWZfcmd0cuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx 4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVu Y19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5 NjQ6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGlu aXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE5NjQ6NTM6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGlu aXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6NTM6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9u IGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYcmVx 4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9 IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQlVGX1JHVFLigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAg cmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMToz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE24oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTk2NzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ 4oCZCiAgSFdSTV9QUkVQKHJlcSwgRlVOQ19CVUZfUkdUUiwgLTEsIHJlc3ApOwogIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1 OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29k ZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTgzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk2 NDozNDogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZh cmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQgcmVxID0gey5yZXFfdHlw ZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0 aW9uIOKAmGJueHRfaHdybV9mdW5jX2J1Zl91bnJndHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHZh cmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0 cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9Owog ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE5OTE6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkg c3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTE6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVu dHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVm X3Vucmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjU1OiBub3RlOiAo bmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogc3Rv cmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19i dWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2 MjozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19CVUZfVU5SR1RS4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYo SFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNs dWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g 4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTQ6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQlVGX1VO UkdUUiwgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfb3V0 cHV04oCZCiAgIGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5OTg6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fQ0hFQ0tfUkVTVUxU4oCZCiAg SFdSTV9DSEVDS19SRVNVTFQ7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjM2OiBlcnJvcjogdW51c2VkIHZhcmlhYmxl IOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCiAgc3RydWN0IGh3cm1fZnVuY19i dWZfdW5yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9mdW5jX2Nm Z19kZWZfY3DigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMDY6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5p dGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0 IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDA2OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRz IGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19p bnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 MjAwNjozNjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAw NjoyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8x NuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjIwMDk6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDEzOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRf Q1LigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfQVNZTkNfRVZFTlRfQ1IpOwogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1dOKA mQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDE3OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1f Q0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MjAwNjoyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhy ZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lu cHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5j dGlvbiDigJhibnh0X2h3cm1fcmVqZWN0X2Z3ZF9yZXNw4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2Ojk6IGVycm9yOiB2 YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBz dHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9Owog ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjIwMjY6OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkg c3BlY2lmaWVkIGluIGluaXRpYWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6NTU6IGVycm9yOiBleGNlc3MgZWxlbWVu dHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX3JlamVjdF9m d2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6NTU6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMjY6MzY6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9yZWplY3Rf ZndkX3Jlc3BfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6 MzQ6IGVycm9yOiDigJhIV1JNX1JFSkVDVF9GV0RfUkVTUOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhX Uk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDMyOjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBSRUpFQ1RfRldEX1JF U1AsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX291dHB1 dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDM5OjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDi gJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX3JlamVjdF9m d2RfcmVzcF9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMH07CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJv cnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxl LXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdibnh0X2h3cm0ubycgZmFpbGVkCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUgZm9y IHRhcmdldCAnYm54dCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc3ViZGlyLm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo3MzogcmVjaXBlIGZvciB0 YXJnZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsv cnRlLnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNpcGUg Zm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTA3OiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFsbCcg ZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICMyMDoKT1M6IFVCMTYwNF82NApUYXJnZXQ6IHg4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAoKUE1ESU5GTyBibnh0X2V0aGRldi5vLnBtZC5jICBM RCBibnh0X2V0aGRldi5vSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5j dGlvbiDigJhibnh0X2h3cm1fdm5pY19jZmfigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0OiBlcnJvcjog4oCYSFdSTV9W TklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREXigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUk9DRV9EVUFMX1ZOSUNfTU9ERSk7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk0NTo0OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyBy ZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgogICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUpOwogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3Jv IOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6NDogZXJyb3I6IOKAmEhXUk1f Vk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RF4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZM QUdTX1JPQ0VfT05MWV9WTklDX01PREUpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5NTE6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFH U19SU1NfREZMVF9DUl9NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g 4oCYYm54dF9od3JtX3ZuaWNfcWNmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhy ZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV92 bmljX3FjZmdfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjQ6 OTogZXJyb3I6IHVua25vd24gZmllbGQg4oCYcmVxX3R5cGXigJkgc3BlY2lmaWVkIGluIGluaXRp YWxpemVyCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk2NDo0OTogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlh bGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVx X3R5cGUgPSAwIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk2NDo0OTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHJlceKA mSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6OTY0OjMwOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtu b3duCiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjM2OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE2MjozNDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZH4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9f bGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgp ICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgVk5JQ19R Q0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NzA6MjA6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19J TlBVVF9FTkFCTEVTX1ZGX0lEX1ZBTElE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogICBydGVfY3B1X3RvX2xlXzMyKEhXUk1fVk5JQ19RQ0ZHX0lOUFVUX0VOQUJM RVNfVkZfSURfVkFMSUQpOwogICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVv cmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3Rv X2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV04oCZCiAg IGlmIChyZXNwLT5lcnJvcl9jb2RlKSB7IFwKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3NjoyOiBub3RlOiBp biBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNL X1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk4NDoxOTogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9G TEFHU19ERUZBVUxU4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICAgcmVzcC0+ZmxhZ3MpICYgSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOjk4Njo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbikKICAgIEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19WTEFOX1NUUklQX01P REU7CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk4ODo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdT X0JEX1NUQUxMX01PREXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 OTkwOjQ6IGVycm9yOiDigJhIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9EVUFMX1ZO SUNfTU9EReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhX Uk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFOwogICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 OTI6NDogZXJyb3I6IOKAmEhXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5J Q19NT0RF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JPQ0VfT05MWV9WTklDX01PREU7CiAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk5 NDo0OiBlcnJvcjog4oCYSFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01P REXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX1ZO SUNfUUNGR19PVVRQVVRfRkxBR1NfUlNTX0RGTFRfQ1JfTU9ERTsKICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY0OjMwOiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHJlceKAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVd CiAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdy bV9mdW5jX3ZmX21hY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZIGhh cyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fZnVuY19jZmdf aW5wdXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwODQ6MzY6IGVycm9yOiBleGNlc3MgZWxl bWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxMDg0OjM2OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxMDg0OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3du CiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2OjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTA6NDog ZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19ERkxUX01BQ19BRERS4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX0RGTFRfTUFDX0FERFIpOwogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9j cHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xl XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjEwOTQ6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEs IEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1 dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxMDk3OjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhX Uk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTA4NDoyOTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDi gJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2Zn X2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0 b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE2Nzk6MTU6IGVycm9yOiDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1 dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgc3Ry dWN0IGh3cm1fZnVuY19xY2Fwc19vdXRwdXQgKnFjYXBzKQogICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2 Nzk6MTU6IGVycm9yOiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFy YXRpb24sIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzog SW4gZnVuY3Rpb24g4oCYY29weV9mdW5jX2NmZ190b19xY2Fwc+KAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTY4MTozMDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3 cm1fZnVuY19jZmdfaW5wdXTigJkKICBxY2Fwcy0+bWF4X3Jzc2Nvc19jdHggPSBmY2ZnLT5udW1f cnNzY29zX2N0eHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0 aW9uIOKAmGJueHRfaHdybV9wZl9mdW5jX2NmZ+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjo5OiBlcnJvcjogdmFyaWFi bGUg4oCYcmVx4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0 IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9OwogICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MDY6MzY6IGVy cm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxpemVyIFstV2Vycm9yXQogIHN0 cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzA2OjM2OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBm b3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxNzA2OjI5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKA mSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjM2 OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3MTA6MzM6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRV 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5lbmFibGVz ID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTVRVIHwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6 MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLi gJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzoxNzExOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJM RVNfTVJV4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01SVSB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3MTI6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19OVU1fUlNTQ09TX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT IHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGlu dXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9f bGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcxMzo0OiBl cnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFPigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX1NUQVRfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8z MuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3MTQ6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19OVU1fQ01QTF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fQ01QTF9SSU5HUyB8CiAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMy KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3MTU6NDogZXJyb3I6 IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVFhfUklOR1PigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VO QUJMRVNfTlVNX1RYX1JJTkdTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTcxNjo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05V TV9SWF9SSU5HU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg IEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fUlhfUklOR1MgfAogICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVk ZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE3OjQ6IGVycm9yOiDigJhIV1JNX0ZV TkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wyX0NUWFPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0wy X0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzE4 OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1ZOSUNT4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX05VTV9WTklDUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDox MDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKA mQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE3MTk6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxF U19OVU1fSFdfUklOR19HUlBT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9IV19SSU5HX0dSUFMpOwog ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8z Mih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9y OiDigJhIV1JNX0ZVTkNfQ0ZH4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIu aDoxMDE6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8x NuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjE3MzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhX Uk1fUFJFUOKAmQogIEhXUk1fUFJFUChyZXEsIEZVTkNfQ0ZHLCAtMSwgcmVzcCk7CiAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox NzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKA mHN0cnVjdCBod3JtX2Z1bmNfY2ZnX291dHB1dOKAmQogICBpZiAocmVzcC0+ZXJyb3JfY29kZSkg eyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzM4OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxUOwogIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTcwNjoy OTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJyb3I9dW51c2VkLXZhcmlh YmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9ibnh0L2JueHRfaHdybS5jOiBBdCB0b3AgbGV2ZWw6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NDU6MTA6IGVycm9yOiDi gJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dOKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVy IGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICBpbnQgbnVtX3ZmcykKICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IElu IGZ1bmN0aW9uIOKAmHBvcHVsYXRlX3ZmX2Z1bmNfY2ZnX3JlceKAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0Nzo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdy bV9mdW5jX2NmZ19pbnB1dOKAmQogIHJlcS0+ZW5hYmxlcyA9IHJ0ZV9jcHVfdG9fbGVfMzIoSFdS TV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX01UVSB8CiAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc0NzozNDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5B QkxFU19NVFXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcmVx LT5lbmFibGVzID0gcnRlX2NwdV90b19sZV8zMihIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNf TVRVIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5 dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1 X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc0ODo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19J TlBVVF9FTkFCTEVTX01SVeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19NUlUgfAogICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9y dGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0 ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzQ5OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNf Q0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JTU0NPU19DVFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9S U1NDT1NfQ1RYUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDI6MzA6IG5vdGU6 IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8zMuKAmQogI2RlZmluZSBy dGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5j OjE3NTA6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fU1RBVF9D VFhT4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9G VU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9TVEFUX0NUWFMgfAogICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVf Ynl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9j cHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUxOjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZH X0lOUFVUX0VOQUJMRVNfTlVNX0NNUExfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX0NNUExf UklOR1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBk ZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2Nw dV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzUy OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1RYX1JJTkdT4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NG R19JTlBVVF9FTkFCTEVTX05VTV9UWF9SSU5HUyB8CiAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDI6MzA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19s ZV8zMuKAmQogI2RlZmluZSBydGVfY3B1X3RvX2xlXzMyKHgpICh4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9ibnh0L2JueHRfaHdybS5jOjE3NTM6NDogZXJyb3I6IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRf RU5BQkxFU19OVU1fUlhfUklOR1PigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgICBIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfTlVNX1JYX1JJTkdTIHwKICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIo eCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc1NDo0OiBlcnJvcjog 4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9MMl9DVFhT4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX05VTV9MMl9DVFhTIHwKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVm aW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTc1NTo0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX05VTV9W TklDU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIEhXUk1f RlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fVk5JQ1MgfAogICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0 ZW9yZGVyLmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVf dG9fbGVfMzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU2OjQ6IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfTlVNX0hXX1JJTkdfR1JQU+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgIEhXUk1fRlVOQ19DRkdfSU5QVVRfRU5BQkxFU19OVU1fSFdfUklO R19HUlBTKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjozMDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAjZGVmaW5lIHJ0ZV9j cHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEF0 IHRvcCBsZXZlbDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTc3ODoxMTogZXJyb3I6IOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lu cHV04oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAg ICBpbnQgdmYpCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYcmVzZXJ2ZV9yZXNvdXJj ZXNfZnJvbV92ZuKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MTc5MToyNjogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiDi gJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlw ZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICAgY29weV9mdW5jX2NmZ190 b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE2 Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0ICrigJkg YnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgKuKA mQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc5NToyNjogZXJyb3I6IHBhc3Npbmcg YXJndW1lbnQgMSBvZiDigJhjb3B5X2Z1bmNfY2ZnX3RvX3FjYXBz4oCZIGZyb20gaW5jb21wYXRp YmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICAg Y29weV9mdW5jX2NmZ190b19xY2FwcyhjZmdfcmVxLCByZXNwKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjE2Nzg6MTM6IG5vdGU6IGV4cGVjdGVkIOKAmHN0cnVjdCBod3JtX2Z1bmNf Y2ZnX2lucHV0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVu Y19jZmdfaW5wdXQgKuKAmQogc3RhdGljIHZvaWQgY29weV9mdW5jX2NmZ190b19xY2FwcyhzdHJ1 Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCAqZmNmZywKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6IEluIGZ1bmN0 aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV9wZl9vbmx54oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODQ1OjU6IGVycm9yOiDi gJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRU5BQkxF4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICB+KEhXUk1fRlVOQ19DRkdf SU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEUgfAogICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg0Njo1OiBl cnJvcjog4oCYSFdSTV9GVU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FC TEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgSFdSTV9G VU5DX0NGR19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0RJU0FCTEUpOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6 IEluIGZ1bmN0aW9uIOKAmGJueHRfaHdybV9hbGxvY2F0ZV92ZnPigJk6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6OTogZXJy b3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlw ZQogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJlcSA9IHswfTsKICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzox ODU1OjM2OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdl cnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NTozNjogbm90ZTogKG5lYXIgaW5pdGlh bGl6YXRpb24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTg1NToyOTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBv ZiDigJhyZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfY2ZnX2lucHV0IHJl cSA9IHswfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4ODU6NTogZXJyb3I6 IOKAmEhXUk1fRlVOQ19DRkdfSU5QVVRfRkxBR1NfU1REX1RYX1JJTkdfTU9ERV9FTkFCTEXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIH4oSFdSTV9GVU5DX0NG R19JTlBVVF9GTEFHU19TVERfVFhfUklOR19NT0RFX0VOQUJMRSB8CiAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxODg2OjU6 IGVycm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElT QUJMReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JN X0ZVTkNfQ0ZHX0lOUFVUX0ZMQUdTX1NURF9UWF9SSU5HX01PREVfRElTQUJMRSk7CiAgICAgXgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9G VU5DX0NGR+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEu cmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZp bmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTE3OjM6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkK ICAgSFdSTV9QUkVQKHJlcSwgRlVOQ19DRkcsIC0xLCByZXNwKTsKICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTI0OjU6IGVy cm9yOiDigJhIV1JNX0ZVTkNfQ0ZHX0lOUFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUuKAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICBIV1JNX0ZVTkNfQ0ZHX0lO UFVUX0VOQUJMRVNfREZMVF9NQUNfQUREUik7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAyOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MzLigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTI2OjE3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAgaWYg KHJjIHx8IHJlc3AtPmVycm9yX2NvZGUpIHsKICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE4NTU6Mjk6 IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJs ZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3JtX2Z1bmNfYnVmX3Jn dHLigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjE5NjQ6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHJlceKAmSBoYXMgaW5pdGlhbGl6 ZXIgYnV0IGluY29tcGxldGUgdHlwZQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3JndHJfaW5wdXQg cmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0Ojk6IGVycm9yOiB1bmtu b3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0aWFsaXplcgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTY0 OjUzOiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdlcnJv cl0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAw IH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxOTY0OjUzOiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYcmVx4oCZKQov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0u YzoxOTY0OjM0OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJlceKAmSBpc27igJl0IGtub3du CiAgc3RydWN0IGh3cm1fZnVuY19idWZfcmd0cl9pbnB1dCByZXEgPSB7LnJlcV90eXBlID0gMCB9 OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0JVRl9SR1RS4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHJlcS5yZXFfdHlwZSA9IHJ0 ZV9jcHVfdG9fbGVfMTYoSFdSTV8jI3R5cGUpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDE6MzA6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8g4oCYcnRlX2NwdV90b19sZV8xNuKAmQogI2RlZmluZSBydGVfY3B1X3Rv X2xlXzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5Njc6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmEhXUk1fUFJFUOKAmQogIEhXUk1fUFJFUChy ZXEsIEZVTkNfQlVGX1JHVFIsIC0xLCByZXNwKTsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19i dWZfcmd0cl9vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsgXAogICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9o d3JtLmM6MTk4MzoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19S RVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjE5NjQ6MzQ6IGVycm9yOiB1bnVz ZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3Qg aHdybV9mdW5jX2J1Zl9yZ3RyX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwIH07CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1f ZnVuY19idWZfdW5yZ3Ry4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkxOjk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkg aGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2J1 Zl91bnJndHJfaW5wdXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTkx Ojk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0 aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoxOTkxOjU1OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0 aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9mdW5jX2J1Zl91bnJndHJfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTo1NTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRp b24gZm9yIOKAmHJlceKAmSkKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2JueHQvYm54dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhy ZXHigJkgaXNu4oCZdCBrbm93bgogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzozNjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IGVycm9yOiDigJhI V1JNX0ZVTkNfQlVGX1VOUkdUUuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICByZXEucmVxX3R5cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTAxOjMwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVf MTbigJkKICNkZWZpbmUgcnRlX2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv Ym54dC9ibnh0X2h3cm0uYzoxOTk0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhI V1JNX1BSRVDigJkKICBIV1JNX1BSRVAocmVxLCBGVU5DX0JVRl9VTlJHVFIsIC0xLCByZXNwKTsK ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjE3NToxMTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGh3cm1fZnVuY19idWZfdW5yZ3RyX291dHB1dOKAmQogICBpZiAocmVz cC0+ZXJyb3JfY29kZSkgeyBcCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxOTk4OjI6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhIV1JNX0NIRUNLX1JFU1VMVOKAmQogIEhXUk1fQ0hFQ0tfUkVTVUxU OwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTk5MTozNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhyZXHigJkgWy1XZXJy b3I9dW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBod3JtX2Z1bmNfYnVmX3Vucmd0cl9pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOiBJbiBmdW5jdGlvbiDigJhibnh0X2h3cm1fZnVuY19jZmdfZGVmX2Nw4oCZOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDA2Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhyZXHigJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNv bXBsZXRlIHR5cGUKICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MjAwNjozNjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlh bGl6ZXIgWy1XZXJyb3JdCiAgc3RydWN0IGh3cm1fZnVuY19jZmdfaW5wdXQgcmVxID0gezB9Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6MzY6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhyZXHigJkpCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjIwMDY6Mjk6IGVycm9yOiBzdG9y YWdlIHNpemUgb2Yg4oCYcmVx4oCZIGlzbuKAmXQga25vd24KICBzdHJ1Y3QgaHdybV9mdW5jX2Nm Z19pbnB1dCByZXEgPSB7MH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdSTV9GVU5DX0NG R+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICByZXEucmVxX3R5 cGUgPSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTAxOjMwOiBub3RlOiBp biBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmHJ0ZV9jcHVfdG9fbGVfMTbigJkKICNkZWZpbmUgcnRl X2NwdV90b19sZV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoy MDA5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhIV1JNX1BSRVDigJkKICBIV1JN X1BSRVAocmVxLCBGVU5DX0NGRywgLTEsIHJlc3ApOwogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxMzo0OiBlcnJvcjog4oCY SFdSTV9GVU5DX0NGR19JTlBVVF9FTkFCTEVTX0FTWU5DX0VWRU5UX0NS4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgSFdSTV9GVU5DX0NGR19JTlBVVF9FTkFC TEVTX0FTWU5DX0VWRU5UX0NSKTsKICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwMjoz MDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzMy4oCZCiAj ZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6MTc1OjExOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaHdybV9mdW5jX2NmZ19vdXRwdXTigJkKICAgaWYgKHJlc3AtPmVy cm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAxNzoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsKICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdy bS5jOjIwMDY6Mjk6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9yPXVu dXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9mdW5jX2NmZ19pbnB1dCByZXEgPSB7MH07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzogSW4gZnVuY3Rpb24g4oCYYm54dF9od3Jt X3JlamVjdF9md2RfcmVzcOKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAyNjo5OiBlcnJvcjogdmFyaWFibGUg4oCYcmVx4oCZ IGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAgc3RydWN0IGh3cm1fcmVqZWN0 X2Z3ZF9yZXNwX2lucHV0IHJlcSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2 Ojk6IGVycm9yOiB1bmtub3duIGZpZWxkIOKAmHJlcV90eXBl4oCZIHNwZWNpZmllZCBpbiBpbml0 aWFsaXplcgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzoyMDI2OjU1OiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0 aWFsaXplciBbLVdlcnJvcl0KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjU1OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlv biBmb3Ig4oCYcmVx4oCZKQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoyMDI2OjM2OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHJl ceKAmSBpc27igJl0IGtub3duCiAgc3RydWN0IGh3cm1fcmVqZWN0X2Z3ZF9yZXNwX2lucHV0IHJl cSA9IHsucmVxX3R5cGUgPSAwfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MzY6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTYyOjM0OiBlcnJvcjog4oCYSFdS TV9SRUpFQ1RfRldEX1JFU1DigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgcmVxLnJlcV90eXBlID0gcnRlX2NwdV90b19sZV8xNihIV1JNXyMjdHlwZSk7IFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5o OjEwMTozMDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhydGVfY3B1X3RvX2xlXzE2 4oCZCiAjZGVmaW5lIHJ0ZV9jcHVfdG9fbGVfMTYoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2Ju eHQvYm54dF9od3JtLmM6MjAzMjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYSFdS TV9QUkVQ4oCZCiAgSFdSTV9QUkVQKHJlcSwgUkVKRUNUX0ZXRF9SRVNQLCAtMSwgcmVzcCk7CiAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3 cm0uYzoxNzU6MTE6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBod3JtX3JlamVjdF9md2RfcmVzcF9vdXRwdXTigJkKICAgaWYgKHJlc3At PmVycm9yX2NvZGUpIHsgXAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MjAzOToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYSFdSTV9DSEVDS19SRVNVTFTigJkKICBIV1JNX0NIRUNLX1JFU1VMVDsK ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjIwMjY6MzY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUg4oCYcmVx4oCZIFstV2Vycm9y PXVudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgaHdybV9yZWplY3RfZndkX3Jlc3BfaW5wdXQgcmVx ID0gey5yZXFfdHlwZSA9IDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNp cGUgZm9yIHRhcmdldCAnYm54dF9od3JtLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZh aWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2Mzog cmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBm YWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEy ODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9p bnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGty b290Lm1rOjEwNzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBC dWlsZCAjMjE6Ck9TOiBVQjE2MDRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNs YW5nClBNRElORk8gYm54dF9ldGhkZXYuby5wbWQuYyAgTEQgYm54dF9ldGhkZXYuby9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk0NTo0 OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkdfT1VU UFVUX0ZMQUdTX1JPQ0VfRFVBTF9WTklDX01PREUnCiAgICAgICAgICAgICAgICAgICAgICAgIEhX Uk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX0RVQUxfVk5JQ19NT0RFKTsKICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzo5NDg6NDogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50 aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19ST0NFX09OTFlfVk5JQ19NT0RFJwog ICAgICAgICAgICAgICAgICAgICAgICBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfUk9DRV9P TkxZX1ZOSUNfTU9ERSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTUxOjQ6IGVycm9y OiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxB R1NfUlNTX0RGTFRfQ1JfTU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdSTV9WTklDX1FD RkdfT1VUUFVUX0ZMQUdTX1JTU19ERkxUX0NSX01PREUpOwogICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRf aHdybS5jOjk2NDozMDogZXJyb3I6IHZhcmlhYmxlIGhhcyBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVj dCBod3JtX3ZuaWNfcWNmZ19pbnB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfaW5w dXQgcmVxID0gey5yZXFfdHlwZSA9IDAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5NjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3 cm1fdm5pY19xY2ZnX2lucHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19pbnB1dCBy ZXEgPSB7LnJlcV90eXBlID0gMCB9OwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NzoyOiBlcnJvcjog dXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkcnCiAgICAgICAgSFdS TV9QUkVQKHJlcSwgVk5JQ19RQ0ZHLCAtMSwgcmVzcCk7CiAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzoxNjI6MzQ6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0hXUk1fUFJFUCcKICAgICAgICByZXEucmVxX3R5cGUg PSBydGVfY3B1X3RvX2xlXzE2KEhXUk1fIyN0eXBlKTsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgo8c2NyYXRjaCBzcGFjZT46Mjg6MTogbm90ZTogZXhwYW5kZWQg ZnJvbSBoZXJlCkhXUk1fVk5JQ19RQ0ZHCl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTcwOjIwOiBlcnJvcjogdXNlIG9mIHVuZGVj bGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkdfSU5QVVRfRU5BQkxFU19WRl9JRF9WQUxJ RCcKICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fbGVfMzIoSFdSTV9WTklDX1FDRkdfSU5QVVRf RU5BQkxFU19WRl9JRF9WQUxJRCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3Jt LmM6OTc2OjI6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGh3 cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBIV1JNX0NIRUNLX1JFU1VMVDsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvYm54dC9ibnh0X2h3cm0uYzoxNzU6MTE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ0hX Uk1fQ0hFQ0tfUkVTVUxUJwogICAgICAgICAgICAgICAgaWYgKHJlc3AtPmVycm9yX2NvZGUpIHsg XAogICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xh cmF0aW9uIG9mICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBo d3JtX3ZuaWNfcWNmZ19vdXRwdXQgKnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9i bnh0L2JueHRfaHdybS5jOjk3NjoyOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5 cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgSFdSTV9DSEVDS19SRVNV TFQ7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6MTc2OjMwOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdIV1JNX0NIRUNLX1JFU1VMVCcKICAgICAgICAgICAgICAgICAgICAgICAgcmMg PSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmVycm9yX2NvZGUpOyBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3Jk ZXIuaDoxMDk6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYn CiNkZWZpbmUgcnRlX2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdy bV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQg KnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk3ODo0 NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmlj X3FjZmdfb3V0cHV0JwogICAgICAgIHZuaWMtPmRmbHRfcmluZ19ncnAgPSBydGVfbGVfdG9fY3B1 XzE2KHJlc3AtPmRmbHRfcmluZ19ncnApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDog bm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRlX2xlX3RvX2NwdV8xNicKI2RlZmluZSBydGVf bGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1 Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19v dXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5o d3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTc5OjQwOiBlcnJvcjogaW5j b21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQn CiAgICAgICAgdm5pYy0+cnNzX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPnJzc19ydWxl KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5j bHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdy dGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkgKHgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlv biBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92 bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9i bnh0X2h3cm0uYzo5ODA6NDA6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAn c3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5jb3NfcnVsZSA9IHJ0 ZV9sZV90b19jcHVfMTYocmVzcC0+Y29zX3J1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRlb3JkZXIuaDoxMDk6MzA6 IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19jcHVfMTYnCiNkZWZpbmUgcnRl X2xlX3RvX2NwdV8xNih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk2 NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaHdybV92bmljX3FjZmdf b3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQgKnJlc3AgPSBicC0+ aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4MTozOTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0 JwogICAgICAgIHZuaWMtPmxiX3J1bGUgPSBydGVfbGVfdG9fY3B1XzE2KHJlc3AtPmxiX3J1bGUp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5eCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1 ZGUvcnRlX2J5dGVvcmRlci5oOjEwOTozMDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAncnRl X2xlX3RvX2NwdV8xNicKI2RlZmluZSBydGVfbGVfdG9fY3B1XzE2KHgpICh4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTY1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24g b2YgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgc3RydWN0IGh3cm1fdm5p Y19xY2ZnX291dHB1dCAqcmVzcCA9IGJwLT5od3JtX2NtZF9yZXNwX2FkZHI7CiAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2JueHQvYm54 dF9od3JtLmM6OTgyOjM1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0 cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5pYy0+bXJ1ID0gcnRlX2xlX3Rv X2NwdV8xNihyZXNwLT5tcnUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTA5OjMwOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzE2JwojZGVmaW5lIHJ0ZV9sZV90b19jcHVfMTYoeCkg KHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2Fy ZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICBz dHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRk cjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6ODogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlv biBvZiB0eXBlICdzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgICAgICAgICAg ICAgICAgICByZXNwLT5mbGFncykgJiBIV1JNX1ZOSUNfUUNGR19PVVRQVVRfRkxBR1NfREVGQVVM VDsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVy Lmg6MTEwOjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzMyJwoj ZGVmaW5lIHJ0ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0 X2h3cm0uYzo5NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1f dm5pY19xY2ZnX291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpy ZXNwID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODQ6MTk6 IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfREVGQVVMVCcKICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC0+ZmxhZ3MpICYg SFdSTV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX0RFRkFVTFQ7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2JueHQvYm54dF9od3JtLmM6OTg1OjQyOiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0 aW9uIG9mIHR5cGUgJ3N0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRwdXQnCiAgICAgICAgdm5pYy0+ dmxhbl9zdHJpcCA9IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ieXRl b3JkZXIuaDoxMTA6MzA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3J0ZV9sZV90b19jcHVf MzInCiNkZWZpbmUgcnRlX2xlX3RvX2NwdV8zMih4KSAoeCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0 L2JueHRfaHdybS5jOjk2NTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3Qg aHdybV92bmljX3FjZmdfb3V0cHV0JwogICAgICAgIHN0cnVjdCBod3JtX3ZuaWNfcWNmZ19vdXRw dXQgKnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jOjk4 Njo0OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSFdSTV9WTklDX1FDRkdf T1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERScKICAgICAgICAgICAgICAgICAgICAgICAgSFdS TV9WTklDX1FDRkdfT1VUUFVUX0ZMQUdTX1ZMQU5fU1RSSVBfTU9ERTsKICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54 dC9ibnh0X2h3cm0uYzo5ODc6NDA6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlw ZSAnc3RydWN0IGh3cm1fdm5pY19xY2ZnX291dHB1dCcKICAgICAgICB2bmljLT5iZF9zdGFsbCA9 IHJ0ZV9sZV90b19jcHVfMzIocmVzcC0+ZmxhZ3MpICYKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfYnl0ZW9yZGVyLmg6MTEwOjMw OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdydGVfbGVfdG9fY3B1XzMyJwojZGVmaW5lIHJ0 ZV9sZV90b19jcHVfMzIoeCkgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5 NjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGh3cm1fdm5pY19xY2Zn X291dHB1dCcKICAgICAgICBzdHJ1Y3QgaHdybV92bmljX3FjZmdfb3V0cHV0ICpyZXNwID0gYnAt Pmh3cm1fY21kX3Jlc3BfYWRkcjsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYzo5ODg6NDogZXJyb3I6IHVz ZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0hXUk1fVk5JQ19RQ0ZHX09VVFBVVF9GTEFHU19C RF9TVEFMTF9NT0RFJwogICAgICAgICAgICAgICAgICAgICAgICBIV1JNX1ZOSUNfUUNGR19PVVRQ VVRfRkxBR1NfQkRfU1RBTExfTU9ERTsKICAgICAgICAgICAgICAgICAgICAgICAgXgpmYXRhbCBl cnJvcjogdG9vIG1hbnkgZXJyb3JzIGVtaXR0ZWQsIHN0b3BwaW5nIG5vdyBbLWZlcnJvci1saW1p dD1dCjIwIGVycm9ycyBnZW5lcmF0ZWQuCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnYm54 dF9od3JtLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1 YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ2JueHQnIGZhaWxlZAovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQg J25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVp bGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJn ZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rr aW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNzogcmVjaXBl IGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkRQREsgU1RWIHRlYW0K --===============7733484947314655520==--