From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 32844FA75 for ; Sat, 25 Mar 2017 07:45:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490424319; x=1521960319; h=message-id:date:mime-version:subject:from:to:cc; bh=xmQRtPQ6PfcxHolKbf1IuXf8g4krYyZRegVg80v+pAo=; b=ERcKuzpvtJJZ7B568hHQwcatdlPG766warnX2/7VhXcA2N97paCiwiG6 Q2xJ/d6iTHgsIFjDPV8wKwyqeJuMyA==; Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Mar 2017 23:45:17 -0700 Message-Id: <63cbe6$125kuha@fmsmga002.fm.intel.com> Date: 24 Mar 2017 23:45:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,218,1486454400"; d="scan'208";a="1146780202" Received: from unknown (HELO localhost.localdomain) ([10.240.176.250]) by fmsmga002.fm.intel.com with ESMTP; 24 Mar 2017 23:45:14 -0700 Content-Type: multipart/alternative; boundary="===============5526450396093985197==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org CC: beilei.xing@intel.com Subject: [dpdk-test-report] |FAILURE| pw22272 [PATCH v4 3/5] net/i40e: add get all loaded profiles 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, 25 Mar 2017 06:45:23 -0000 --===============5526450396093985197== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKCmh0dHA6 Ly9kcGRrLm9yZy9wYXRjaC8yMjI3MgoKX0NvbXBpbGF0aW9uIGlzc3Vlc18KClN1Ym1pdHRlcjog QmVpbGVpIFhpbmcgPGJlaWxlaS54aW5nQGludGVsLmNvbT4KRGF0ZTogRnJpLCAyNCBNYXIgMjAx NyAxODoxOToyNyArMDgwMApEUERLIGdpdCBiYXNlbGluZTogUmVwbzpkcGRrLCBCcmFuY2g6bWFz dGVyLCBDb21taXRJRDo4NGFhYzk3YjQ5OTk0YmU2YjQ2MWI0NmJlMTYwYjQ3OTM4ZTY5N2IzCgpQ YXRjaDIyMjcwLTIyMjcyIC0tPiBjb21waWxlIGVycm9yCkJ1aWxkIFN1bW1hcnk6IDE4IEJ1aWxk cyBEb25lLCAwIFN1Y2Nlc3NmdWwsIDE4IEZhaWx1cmVzCgpUZXN0IGVudmlyb25tZW50IGFuZCBj b25maWd1cmF0aW9uIGFzIGJlbG93OgpPUzogUkhFTDcuMl82NAogICAgS2VybmVsIFZlcnNpb246 My4xMC4wLTUxNC4xMC4yLmVsNy54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikg Q1BVIEU1LTI2OTkgdjQgQCAyLjIwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNC44LjUg MjAxNTA2MjMgKFJlZCBIYXQgNC44LjUtNCkKICAgIENsYW5nIFZlcnNpb246My40LjIKICAgIGk2 ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKICAg IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZApPUzogRnJlZUJTRDEwLjNfNjQKICAg IEtlcm5lbCBWZXJzaW9uOjEwLjMtUkVMRUFTRQogICAgQ1BVIGluZm86IEludGVsKFIpIFhlb24o UikgQ1BVIEU1LTI2OTkgdjQgQCAyLjIwR0h6ICgyMTk0Ljk3LU1IeiBLOC1jbGFzcyBDUFUpCiAg ICBHQ0MgVmVyc2lvbjpnY2MgKEZyZWVCU0QgUG9ydHMgQ29sbGVjdGlvbikgNC44LjUKICAgIENs YW5nIFZlcnNpb246My40LjEKICAgIHg4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5nCiAgICB4ODZf NjQtbmF0aXZlLWJzZGFwcC1nY2MKT1M6IEZDMjRfNjQKICAgIEtlcm5lbCBWZXJzaW9uOjQuOS4x My0xMDAuZmMyNC54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikgQ1BVIEU1LTI2 OTkgdjMgQCAyLjMwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNi4yLjEgMjAxNjA5MTYg KFJlZCBIYXQgNi4yLjEtMikKICAgIENsYW5nIFZlcnNpb246My44LjAKICAgIHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjLWRlYnVnCiAgICBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4 Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj LXNoYXJlZAogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKT1M6IFVCMTYwNF82NAogICAg S2VybmVsIFZlcnNpb246NC40LjAtNjQtZ2VuZXJpYwogICAgQ1BVIGluZm86SW50ZWwoUikgWGVv bihSKSBDUFUgRTUtMjY5OSB2MyBAIDIuMzBHSHoKICAgIEdDQyBWZXJzaW9uOmdjYyAoVWJ1bnR1 IDUuNC4wLTZ1YnVudHUxfjE2LjA0LjQpIDUuNC4wIDIwMTYwNjA5CiAgICBDbGFuZyBWZXJzaW9u OjMuOC4wCiAgICBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRpdmUtbGlu dXhhcHAtY2xhbmcKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAogICAgeDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKT1M6IENlbnRPUzdfNjQKICAgIEtlcm5lbCBWZXJzaW9u OjMuMTAuMC01MTQuMTAuMi5lbDcueDg2XzY0CiAgICBDUFUgaW5mbzpJbnRlbChSKSBYZW9uKFIp IENQVSBFNS0yNjk5IHYzIEAgMi4zMEdIegogICAgR0NDIFZlcnNpb246Z2NjIChHQ0MpIDQuOC41 IDIwMTUwNjIzIChSZWQgSGF0IDQuOC41LTQpCiAgICBDbGFuZyBWZXJzaW9uOjMuNC4yCiAgICBp Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcK ICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAogICAgeDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MKCkZhaWxlZCBCdWlsZCAjMToKT1M6IFJIRUw3LjJfNjQKVGFyZ2V0OiBpNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjoxMTogZXJyb3I6IOKAmHN0cnVjdCBpNDBl X3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0K ICAgICAgICAgICBib29sIGFkZCkKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9yOiBp dHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdoaWNoIGlz IHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDi gJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnRibF9zaXpl ID0gMTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MjU6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXpl b2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjMwOjEwOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5m b+KAmQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzMTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjMxOjIyOiBlcnJvcjog4oCYU0VDVElPTl9UWVBFX0lORk/igJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVf SU5GTzsKICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjMxOiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnNlY3Rp b24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjU6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLnNpemUg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6Mjk6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzU6MTQ6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgICAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCk7CiAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM2Ojc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzc6MTQ6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzNzoyODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBtZW1jcHkocGluZm8tPm5h bWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzg6MTU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzODo0MjogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24s IHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6ODogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgcGluZm8tPm9wID0gSTQwRV9Q UFBfQUREX1RSQUNLSUQ7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1OiBlcnJvcjog4oCYSTQwRV9Q UFBfQUREX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyNDI6ODogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjQyOjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUTigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JF TU9WRV9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVf YWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NToxMDogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQp KS0+dHJhY2tfaWQ7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6MjogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBw KGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6MjogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1X ZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6NDk6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAo aHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2NoZWNr X3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5MDoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9aW1wbGlj aXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcs ICh2b2lkICopYnVmZiwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVj bGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9bmVzdGVkLWV4 dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEzMDA6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNp emVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcuKAmQogICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlcikpOwogICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA1OjE1OiBlcnJvcjogaW52YWxpZCBh cHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u KSkgJiYKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA3Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg ICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCY cnRlX3BtZF9pNDBlX3Byb2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDE6MjE6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXplb2Yoc3Ry dWN0IGk0MGVfcGFja2FnZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzQyOjE0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICAgICAgIHNp emVvZihzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzU1OjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzYxOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNr YWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJyb3I6IG5lc3Rl ZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKA mSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MTo1MDogZXJyb3I6IOKAmFNFR01F TlRfVFlQRV9NRVRBREFUQeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdN RU5UX1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzY3OjYzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9z ZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzA6 NDk6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfSTQwReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBwcm9maWxlX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9p bl9wYWNrYWdlKFNFR01FTlRfVFlQRV9JNDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc4OjE4OiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzk6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4 OTo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAg ICAgICAoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2ZpbGVfc2VnX2hkciktPm5h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzkwOjU3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogICAgICAgICYoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2Zp bGVfc2VnX2hkciktPnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTQwMDozOiBlcnJvcjogaW1wbGljaXQgZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2Zp bGUoaHcsCiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTQwMDozOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlv biBvZiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCgoKRmFpbGVkIEJ1aWxkICMy OgpPUzogUkhFTDcuMl82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjI6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBp bnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIyOjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZp bml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2Fu dCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2lu Zm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjU6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5k YXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI5OjI1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXLigJkKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2Vj dGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoxMDog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6NTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNF Q1RJT05fVFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IOKAmFNFQ1RJT05f VFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNl Yy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzE6MjI6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJl cG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy MzI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBz ZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzMzo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE0OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICAg IHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHBpbmZvLT50cmFj a19pZCA9IHRyYWNrX2lkOwogICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjE0OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFt ZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6Mjg6IGVy cm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJ WkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4OjE1OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8t PnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNp b27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0 MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjQwOjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTI0MDoxNTogZXJyb3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9B RERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQyOjg6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQ X1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MjoxNTogZXJyb3I6IOKAmEk0MEVf UFBQX1JFTU9WRV9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyNTU6MTA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjU3OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhp NDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0 YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjU3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9u IG9mIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjU3OjQ5OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRh X2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy OTA6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFf Z2V0X3BwcF9saXN04oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQog IHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjkwOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0 X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzAwOjE2OiBlcnJv cjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTMwNToxNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZ IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTMwNzo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsK ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9w YWNrYWdl4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMzQxOjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVh ZGVy4oCZCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSAr CiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFf c2VnbWVudCkgKwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1NToxMzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBpZiAocGtnX2hkci0+c2VnbWVudF9j b3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyOiBlcnJvcjogaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdf aGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEs CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzYxOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKA mGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNd Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEzNjE6NTA6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0 MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2 MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB0cmFj a19pZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIp LT50cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzcwOjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBF X0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmls ZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQw RSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM3ODoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsK ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc5OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p LAogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODk6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5MDo1NzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAmKChzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT52ZXJzaW9uLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTE0MDA6MzogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0 MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxlKGh3LAogICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6Mzog ZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl 4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVh dGVkIGFzIGVycm9ycwoKCkZhaWxlZCBCdWlsZCAjMzoKT1M6IFJIRUw3LjJfNjQKVGFyZ2V0OiB4 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFyZWQKCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9yOiDi gJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxp c3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIy OjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0 aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzog SW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2Vj4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjI4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg c2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjU6IGVycm9yOiBkZXJlZmVyZW5j aW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjI1 OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPmRh dGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoxMDogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwog ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0g U0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6 IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBm b3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6NTogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24ub2Zmc2V0 ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzMjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo1 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjMzOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE0OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZz ZXQpOwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHBpbmZvLT50cmFja19pZCA9IHRyYWNrX2lkOwog ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM3OjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9T SVpFKTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVt Y3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24s IHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzg6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBp bmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjg6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZv LT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MDoxNTogZXJy b3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjQyOjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwog ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTI0MjoxNTogZXJyb3I6IOKAmEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lE 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3Ag PSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5j dGlvbiDigJhpNDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTU6MTA6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICBzZWMtPnNl Y3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjI6IGVycm9y OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBl X2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjU3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfd3Jp dGVfcHBw4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjQ5OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHN0YXR1cyA9IGk0MGVf YXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFst V2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0 X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVycm9yOiBuZXN0 ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vy cm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzAwOjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNToxNTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNzo4OiBlcnJvcjog 4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzQxOjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUg PCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6 ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 4oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM1NToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM2MToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNp dC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjI6 IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9zZWdtZW50 X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6NTA6IGVy cm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2lu X3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB0cmFja19pZCA9ICgoc3RydWN0IGk0 MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzcwOjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3ODoxODogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDi gJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzc5OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bi gJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAg ICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEzODk6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxl X3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5MDo1NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAmKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Z21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT52ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQw ZV93cml0ZV9wcm9maWxlKGh3LAogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6IG5lc3RlZCBleHRl cm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3Rl ZC1leHRlcm5zXQpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwoKCkZh aWxlZCBCdWlsZCAjNDoKT1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1i c2RhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIyMDo1MTogZXJyb3I6IGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbicgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZnVu Y3Rpb24gWy1XZXJyb3IsLVd2aXNpYmlsaXR5XQppNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19z ZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24gKnZlcnNpb24sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6 IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnRibF9zaXplID0gMTsKICAgICAgICB+fn5e Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJy b3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBub3Rl OiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5V TEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToxODogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBu b3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9 IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDozOiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbycKICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm8pOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjMxOjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2Yg dHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNl Y3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNl YyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IHVzZSBvZiB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NFQ1RJT05fVFlQRV9JTkZPJwogICAgICAgIHNlYy0+c2Vj dGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzI6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5v ZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAg ICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMy OjI0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBs ZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2Vj LT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJh dGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzM6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5z aXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgfn5+XgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjIyOiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0 cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3 YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1 OjE0OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNs YXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBl ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgcGluZm8tPnRyYWNrX2lkID0gdHJh Y2tfaWQ7CiAgICAgICAgfn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJh dGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNDogZXJyb3I6 IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwog ICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0 aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4OjE1OiBlcnJvcjog aW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycK ICAgICAgICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0 MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1Ojk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyNDA6ODogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9B RERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1Ojk6IG5vdGU6IGZv cndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy NDA6MTU6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9BRERf VFJBQ0tJRCcKICAgICAgICAgICAgICAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lE OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQyOjg6IGVycm9yOiBpbmNv bXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAg ICAgICAgICAgICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAg ICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9m ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQyOjE1OiBlcnJvcjogdXNlIG9m IHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQnCiAgICAgICAg ICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KZmF0YWwgZXJyb3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBz dG9wcGluZyBub3cgWy1mZXJyb3ItbGltaXQ9XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEz ODogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQg J2k0MGUnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRp ci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdk cml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGty b290Lm1rOjEyOTogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJn ZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21r L3J0ZS5zZGtyb290Lm1rOjEwNDogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoK CkZhaWxlZCBCdWlsZCAjNToKT1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2 ZS1ic2RhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9yOiAnc3RydWN0IGk0MGVfcHBwX3ZlcnNp b24nIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgICBi b29sIGFkZCkKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9yOiBpdHMgc2NvcGUgaXMg b25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdoaWNoIGlzIHByb2JhYmx5IG5v dCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiAnaTQwZV9nZW5lcmF0 ZV9wcm9maWxlX2luZm9fc2VjJzoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyOTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlcikgKwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMwOjEw OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBpbmNvbXBsZXRlIHR5 cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05f VFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6ICdTRUNUSU9OX1RZUEVfSU5G TycgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9u LnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIzMToyMjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25s eSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlv bi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjMyOjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9m JyB0byBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIn CiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo1 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjMzOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICBzZWMtPnNlY3Rpb24u c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNToxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KTsKICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIzNzoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjI4OiBlcnJvcjogJ0k0MEVfUFBQX05BTUVfU0laRScg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5u YW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM4OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAn c3RydWN0IGk0MGVfcHBwX3ZlcnNpb24nCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lv biwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MDo4OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERf VFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6MTU6IGVycm9yOiAnSTQwRV9QUFBfQUREX1RS QUNLSUQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+ b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQyOjg6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZv LT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MjoxNTog ZXJyb3I6ICdJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwog ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uICdpNDBlX2FkZF9ybV9wcm9maWxlX2lu Zm8nOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjU1OjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ2k0MGVfYXFfd3JpdGVfcHBwJyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJh dGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0 aW9uIG9mICdpNDBlX2FxX3dyaXRlX3BwcCcgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyNTc6NDk6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFf ZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOiBJbiBmdW5jdGlvbiAnaTQwZV9jaGVja19wcm9maWxlX2luZm8nOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6 IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnaTQwZV9hcV9nZXRfcHBw X2xpc3QnIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0 MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVy cm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mICdpNDBlX2FxX2dldF9wcHBfbGlzdCcg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDA6MTY6IGVycm9yOiBpbnZhbGlkIGFw cGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVf c2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNToxNTogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbicKICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNp b24pKSAmJgogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDc6ODogZXJyb3I6ICdJNDBFX1BQUF9O QU1FX1NJWkUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAg IEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uICdydGVf cG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZSc6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDE6MjE6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0 MGVfcGFja2FnZV9oZWFkZXInCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2th Z2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1 Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50JwogICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX21ldGFk YXRhX3NlZ21lbnQpICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTU6MTM6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19oZHItPnNlZ21l bnRfY291bnQgPCAyKSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl JyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdf aGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEs CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzYxOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mICdp NDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlJyBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM2MTo1MDogZXJyb3I6ICdTRUdNRU5UX1RZUEVfTUVUQURBVEEnIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRf c2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjc6NjM6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdHJhY2tfaWQgPSAo KHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRhZGF0YV9zZWdfaGRyKS0+dHJhY2tf aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM3MDo0OTogZXJyb3I6ICdTRUdNRU5UX1RZUEVfSTQwRScgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0g aTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3ODoxODog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBl ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTM3OToxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8g aW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgICAgc2l6 ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM4OTo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgICAgICAoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2ZpbGVfc2VnX2hkcikt Pm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzkwOjU3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgICAgICYoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXBy b2ZpbGVfc2VnX2hkciktPnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTQwMDozOiBlcnJvcjogaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2k0MGVfd3JpdGVfcHJvZmlsZScgWy1XZXJyb3I9aW1w bGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmls ZShodywKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExNDAwOjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9u IG9mICdpNDBlX3dyaXRlX3Byb2ZpbGUnIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0 YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBl IGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyOTogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwNDogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj NjoKT1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1kZWJ1ZwoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyMDo1MTogZXJyb3I6IOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xh cmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2Yg dGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQogaTQwZV9nZW5lcmF0ZV9w cm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJz aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmls ZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy 4oCZCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToyNTogZXJyb3I6IGlu dmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoxMDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAg ICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBl ID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjMxOjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyBy ZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjMyOjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBz ZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6 Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNp emUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBw aW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6Mjg6IGVycm9y OiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy Mzg6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZv LT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6 MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7 CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDI6MTU6IGVycm9y OiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKA mGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NToxMDogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19p ZDsKICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6MTE6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZv aWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI1NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2Fx X3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBzdGF0dXMgPSBpNDBlX2Fx X3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjg6 IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX2dldF9w cHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICByZXQg PSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZmLAogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRp b24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNd CiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lkICopYnVmZiwKICBefn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTMwMDoxNjogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAg ICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNToxNTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYm CiAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA3Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg ICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZeKAmToKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM0MToyMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChz aXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcikgKwogICAgICAgICAgICAg ICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0 YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkg KwogICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU1OjEzOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRl cuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTM2MToyMTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKA mGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2lu X3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJyb3I6IG5lc3RlZCBleHRl cm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdl cnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21l bnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzYxOjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQogIHRyYWNrX2lk ID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRy YWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzcwOjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0 MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9z ZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzNzg6MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc5OjE4OiBlcnJv cjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4OTo1 NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MTI6IGVycm9y OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXi gJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0 MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTE0MDA6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0 ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogICBzdGF0dXMgPSBpNDBlX3dy aXRlX3Byb2ZpbGUoaHcsCiAgIF5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVk IGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRl LmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZh aWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTog cmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6ODE6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyOTogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFp bGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4 NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwNDogcmVjaXBlIGZvciB0YXJnZXQg J2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjNzoKT1M6IEZDMjRfNjQKVGFyZ2V0OiBp Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMDo1MTogZXJyb3I6IOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5v dCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFst V2Vycm9yXQogaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9u IOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZ IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy 4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoxMDog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IOKA mFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjIyOiBub3RlOiBlYWNoIHVu ZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rp b24gaXQgYXBwZWFycyBpbgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNjo3OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm/igJkKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAg IF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzc6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBu YW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3Zl cnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0 IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJ ROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9w ID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyNDI6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI1NToxMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5z ZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6MTE6IGVy cm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3Bw cOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBp NDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBk ZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0 ZXJuc10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ ZGF0YV9lbmQsCiAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmls ZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjkwOjg6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiDigJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5j dGlvbi1kZWNsYXJhdGlvbl0KICByZXQgPSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQg KilidWZmLAogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcs ICh2b2lkICopYnVmZiwKICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMDoxNjogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNTox NTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA3 Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICAgICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJv Y2Vzc19wcHBfcGFja2FnZeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MToyMTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w YWNrYWdlX2hlYWRlcuKAmQogIGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdl X2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0 IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU1 OjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50 IDwgMikgewogICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyMTogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkg Wy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hk ciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAog ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz NjE6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9z ZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURB VEEsCiAgXn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjUwOiBlcnJvcjog4oCYU0VHTUVOVF9U WVBFX01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog IG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRf VFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRh dGFfc2VnbWVudOKAmQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzcwOjQ5OiBl cnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFj a2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzg6MTg6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzc5OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQog ICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAg ICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM4OTo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAg ICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTE0MDA6MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVj bGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRl cm5zXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcsCiAgIF5+fn5+fgpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0 YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBl IGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyOTogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwNDogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj ODoKT1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjA6NTE6IGVycm9yOiBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24n IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yLC1X dmlzaWJpbGl0eV0KaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0 cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODo1OiBlcnJvcjogaW5jb21wbGV0 ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIn CiAgICAgICAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI0Ojk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0g TlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjU6IGVycm9yOiBpbmNvbXBsZXRlIGRl ZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAg ICAgICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXIpICsKICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJh dGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjk6MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2Yn IHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRl cicKICAgICAgICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2Vj dGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNs YXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzA6MzogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVv ZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAg ICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6OTogbm90ZTog Zm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAg IHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIzMTo1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNU SU9OX1RZUEVfSU5GTzsKICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBk ZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAg ICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlm aWVyICdTRUNUSU9OX1RZUEVfSU5GTycKICAgICAgICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJ T05fVFlQRV9JTkZPOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjU6 IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgICAgIH5+fl4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIy NDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIg KnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjoyNDogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBp NDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjU6 IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBub3RlOiBm b3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy JwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7 CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzoyMjogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8nCiAgICAgICAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBv ZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVf aW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNToxNDogZXJyb3I6IGluY29t cGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWMtPnNl Y3Rpb24ub2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM2 Ojc6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvJwogICAgICAgIHBpbmZvLT50cmFja19pZCA9IHRyYWNrX2lkOwogICAgICAgIH5+ fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBp NDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZv OwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTQ6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmlu aXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIG1lbWNweShw aW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICAgfn5+ fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyAqcGluZm87 CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoyODogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVk IGlkZW50aWZpZXIgJ0k0MEVfUFBQX05BTUVfU0laRScKICAgICAgICBtZW1jcHkocGluZm8tPm5h bWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzg6MTU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2Yg dHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIG1lbWNweSgmcGluZm8tPnZl cnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAg ICAgICAgICAgfn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBv ZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVf aW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzODozNTogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbicKICAgICAgICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9u LCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjA6NTE6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3BwcF92 ZXJzaW9uJwppNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWMoY2hhciAqbmFtZSwgc3RydWN0 IGk0MGVfcHBwX3ZlcnNpb24gKnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjg6IGVycm9yOiBpbmNvbXBsZXRlIGRl ZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgICAgICAg ICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgICB+fn5+ fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsK ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQg aWRlbnRpZmllciAnSTQwRV9QUFBfQUREX1RSQUNLSUQnCiAgICAgICAgICAgICAgICBwaW5mby0+ b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K ZmF0YWwgZXJyb3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBzdG9wcGluZyBub3cgWy1mZXJy b3ItbGltaXQ9XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0YXJn ZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZv ciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyOTogcmVjaXBl IGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBm YWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEw NDogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjOToK T1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFyZWQKCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjA6NTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJl ZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRo aXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBbLVdlcnJvcl0KIGk0MGVfZ2VuZXJhdGVfcHJv ZmlsZV9pbmZvX3NlYyhjaGFyICpuYW1lLCBzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbiAqdmVyc2lv biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVf aW5mb19zZWPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKA mQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MjU6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXpl b2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MTA6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmls ZV9pbmZv4oCZCiAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAg Xn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzE6MjI6IGVycm9yOiDigJhTRUNUSU9OX1RZUEVfSU5GT+KAmSB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBzZWMtPnNlY3Rpb24udHlwZSA9 IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzMToyMjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw b3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz MjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2Vj LT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjI5 OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXpl ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgcGlu Zm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjI4OiBlcnJvcjog 4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4 OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+ dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1 OiBlcnJvcjog4oCYSTQwRV9QUFBfQUREX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwog ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQyOjE1OiBlcnJvcjog 4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhp NDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTU6MTA6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVf c2VjdGlvbl9oZWFkZXLigJkKICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpKS0+dHJhY2tfaWQ7 CiAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjExOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVu Y3Rpb24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lk ICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyNTc6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93 cml0ZV9wcHDigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgc3RhdHVzID0gaTQwZV9hcV93 cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogIF5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJ biBmdW5jdGlvbiDigJhpNDBlX2NoZWNrX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5MDo4OiBl cnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBw X2xpc3TigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0g aTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lkICopYnVmZiwKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9u IG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQog IHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEzMDA6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQog ICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikpOwogICAg ICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDU6MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBw X3ZlcnNpb27igJkKICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgog ICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNzo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFN RV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAg IEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzog SW4gZnVuY3Rpb24g4oCYcnRlX3BtZF9pNDBlX3Byb2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEzNDE6MjE6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6 ZSA8IChzaXplb2Yoc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXIpICsKICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEzNDI6MTQ6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFf c2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQpICsK ICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1NToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLi gJkKICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAgICAgIF5+Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEzNjE6MjE6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhp NDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9u LWRlY2xhcmF0aW9uXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9w YWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJu IGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJy b3I9bmVzdGVkLWV4dGVybnNdCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50 X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogIF5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM2MTo1MDogZXJyb3I6IOKAmFNFR01FTlRfVFlQRV9NRVRBREFUQeKAmSB1bmRlY2xhcmVk IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEzNjc6NjM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICB0cmFja19pZCA9 ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFj a19pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3MDo0OTogZXJyb3I6IOKAmFNFR01FTlRfVFlQRV9JNDBF 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHByb2ZpbGVfc2Vn X2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX0k0MEUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzc4OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhz aXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlv bl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3OToxODogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDi gJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZvKSwKICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODk6NTY6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VnbWVudOKAmQogICAgICAgICgoc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExNDAwOjEyOiBlcnJvcjog aW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZ IFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICBzdGF0dXMgPSBpNDBl X3dyaXRlX3Byb2ZpbGUoaHcsCiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx NDAwOjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVf cHJvZmlsZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICAgc3RhdHVzID0gaTQwZV93cml0 ZV9wcm9maWxlKGh3LAogICBefn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBh cyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5j b21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWls ZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdpNDBlJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNp cGUgZm9yIHRhcmdldCAnZHJpdmVycycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjk6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxl ZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6 IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMDQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdp bnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQgIzEwOgpPUzogRkMyNF82NApUYXJnZXQ6IHg4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjA6NTE6IGVycm9yOiDigJhzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2lsbCBu b3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBb LVdlcnJvcl0KIGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlYyhjaGFyICpuYW1lLCBzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbiAqdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlv biDigJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPigJk6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMjk6MjU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKA mSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRl cuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MTA6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IGVycm9yOiDi gJhTRUNUSU9OX1RZUEVfSU5GT+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBv ZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVf aW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVf aW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6Nzog ZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0 IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAg ICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM3OjI4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwg bmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92 ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfQUREX1RSQUNL SUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5v cCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjQyOjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUTigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0 MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyNTU6MTA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgIHNlYy0+ c2VjdGlvbi5vZmZzZXQpKS0+dHJhY2tfaWQ7CiAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjExOiBl cnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9w cHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0g aTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4g ZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9bmVzdGVkLWV4 dGVybnNdCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMt PmRhdGFfZW5kLAogIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2NoZWNrX3Byb2Zp bGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTI5MDo4OiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVu Y3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lk ICopYnVmZiwKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVycm9y OiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZ IFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3 LCAodm9pZCAqKWJ1ZmYsCiAgXn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDA6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxp Y2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcikpOwogICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDU6 MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICAgICAgICBzaXplb2Yoc3Ry dWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgogICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMw Nzo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYcnRlX3BtZF9pNDBlX3By b2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDE6MjE6IGVycm9yOiBpbnZhbGlkIGFwcGxp Y2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVf cGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXplb2Yoc3RydWN0IGk0MGVfcGFja2Fn ZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDI6MTQ6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVj dCBpNDBlX21ldGFkYXRhX3NlZ21lbnQpICsKICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1 NToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3Vu dCA8IDIpIHsKICAgICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjE6IGVycm9yOiBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZ IFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIG1ldGFkYXRhX3NlZ19o ZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwK ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzYxOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9z ZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgbWV0YWRhdGFf c2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFE QVRBLAogIF5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MTo1MDogZXJyb3I6IOKAmFNFR01FTlRf VFlQRV9NRVRBREFUQeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5U X1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjc6NjM6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFk YXRhX3NlZ21lbnTigJkKICB0cmFja19pZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVu dCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3MDo0OTog ZXJyb3I6IOKAmFNFR01FTlRfVFlQRV9JNDBF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogIHByb2ZpbGVfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3Bh Y2thZ2UoU0VHTUVOVF9UWVBFX0k0MEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc4OjE4OiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKA mHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yo c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBe fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM3OToxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6 ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkK ICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKSwKICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEzODk6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudOKAmQogICAg ICAgICgoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFt ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExNDAwOjEyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24g4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcsCiAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExNDAwOjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRl Y2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0 ZXJuc10KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxlKGh3LAogICBefn5+fn4KY2MxOiBh bGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3Ig dGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lw ZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJpdmVycycgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjk6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFs bCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5t azoxMDQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQg IzExOgpPUzogVUIxNjA0XzY0ClRhcmdldDogaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjI6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBp bnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIyOjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZp bml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2Fu dCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2lu Zm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkK ICBzZWMtPnRibF9zaXplID0gMTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MjU6IGVycm9yOiBpbnZhbGlk IGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yo c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjMwOjEwOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhz aXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KA mQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIzMToyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBF X0lORk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IG5vdGU6IGVhY2gg dW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5j dGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6MzE6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzM6Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv 4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZv4oCZCiAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzc6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBF X1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4 OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+ dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MDoxNTogZXJy b3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjQyOjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNL SUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5v cCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1 bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NToxMDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkp LT50cmFja19pZDsKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoxMTogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBw KGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTc6 MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93cml0ZV9w cHDigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9w cHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6ODogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFst V2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0 X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVycm9y OiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZ IFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3 LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzAwOjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNToxNTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNzo4OiBlcnJvcjog 4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzQxOjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUg PCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM0MjoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6 ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 4oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM1NToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAocGtn X2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyMTog ZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdt ZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25d CiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVO VF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJy b3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9zZWdfaGRyID0g aTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzYxOjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjc6NjM6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICB0cmFja19pZCA9ICgoc3RydWN0IGk0MGVfbWV0 YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzcwOjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3ODoxODogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzc5OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8g aW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEzODk6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudOKAmQogICAgICAgICgoc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6 MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRl X3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0 YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExNDAwOjM6 IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVfcHJvZmls ZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9m aWxlKGh3LAogICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUu bWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZV9ldGhkZXYubycgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRh cmdldCAnaTQwZScgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo4MTogcmVjaXBlIGZvciB0YXJn ZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnNka3Jvb3QubWs6MTI5OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNpcGUgZm9y IHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka3Jvb3QubWs6MTA0OiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFsbCcgZmFp bGVkCgoKRmFpbGVkIEJ1aWxkICMxMjoKT1M6IFVCMTYwNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRp dmUtbGludXhhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMDo1MTogZXJyb3I6IGRlY2xhcmF0aW9uIG9mICdz dHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbicgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRo aXMgZnVuY3Rpb24gWy1XZXJyb3IsLVd2aXNpYmlsaXR5XQppNDBlX2dlbmVyYXRlX3Byb2ZpbGVf aW5mb19zZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24gKnZlcnNpb24sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjI4OjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnRibF9zaXplID0gMTsKICAgICAg ICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6 NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNl YyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToxODogZXJyb3I6IGludmFsaWQg YXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yo c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIy NDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIg KnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDozOiBlcnJvcjogaW52YWxp ZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBp NDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8pOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsK ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRp b24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz ZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgIH5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyNDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogZXJyb3I6IHVz ZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NFQ1RJT05fVFlQRV9JTkZPJwogICAgICAgIHNl Yy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzI6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2Vj dGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7 CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2Yg J3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjMyOjI0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAg ICAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBk ZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAg ICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzM6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2Vj dGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgfn5+ XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjIyOiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5 cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9 IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3Rl OiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAg ICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM1OjE0OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBp NDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2Fy ZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBv ZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgcGluZm8tPnRyYWNrX2lk ID0gdHJhY2tfaWQ7CiAgICAgICAgfn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6OTogbm90ZTogZm9yd2FyZCBk ZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBp NDBlX3Byb2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNDog ZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8nCiAgICAgICAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJ WkUpOwogICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRl Y2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjI4OiBl cnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSTQwRV9QUFBfTkFNRV9TSVpFJwog ICAgICAgIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzODoxNTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAg ICAgICAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBl X3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3Rl OiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAg ICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM4OjM1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3BwcF92ZXJzaW9uJwogICAgICAgIG1lbWNweSgm cGluZm8tPnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMDo1MTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlv biBvZiAnc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24nCmk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZv X3NlYyhjaGFyICpuYW1lLCBzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbiAqdmVyc2lvbiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6 ODogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8nCiAgICAgICAgICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJ RDsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1Ojk6IG5vdGU6IGZvcndhcmQgZGVj bGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6MTU6IGVy cm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9BRERfVFJBQ0tJRCcK ICAgICAgICAgICAgICAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgpmYXRhbCBlcnJvcjogdG9vIG1hbnkgZXJyb3JzIGVtaXR0 ZWQsIHN0b3BwaW5nIG5vdyBbLWZlcnJvci1saW1pdD1dCjIwIGVycm9ycyBnZW5lcmF0ZWQuCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUu bWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZV9ldGhkZXYubycgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRh cmdldCAnaTQwZScgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo4MTogcmVjaXBlIGZvciB0YXJn ZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnNka3Jvb3QubWs6MTI5OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNpcGUgZm9y IHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka3Jvb3QubWs6MTA0OiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFsbCcgZmFp bGVkCgoKRmFpbGVkIEJ1aWxkICMxMzoKT1M6IFVCMTYwNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjLXNoYXJlZAoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjoxMTogZXJyb3I6IOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJv cl0KICAgICAgICAgICBib29sIGFkZCkKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9y OiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdoaWNo IGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlv biDigJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPigJk6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZ IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy 4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MTA6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjIyOiBlcnJvcjog4oCYU0VDVElPTl9U WVBFX0lORk/igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2Vj LT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzMToyMjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw b3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz MjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2Vj LT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzoyOTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBwaW5mby0+dHJhY2tf aWQgPSB0cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoyODogZXJyb3I6IOKAmEk0MEVfUFBQ X05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBt ZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBw X3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3Ry dWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfQUREX1RSQUNLSUTi gJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9 IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDI6MTU6IGVy cm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7 CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9hZGRfcm1fcHJvZmls ZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjU1OjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjU3OjExOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQw ZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25d CiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFf ZW5kLAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNs YXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJu c10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0 YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2NoZWNrX3Byb2ZpbGVfaW5mb+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTI5MDo4OiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g 4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lkICopYnVmZiwK ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24g b2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAg cmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lkICopYnVmZiwKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz MDA6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAg ICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikpOwogICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMzA1OjE1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u 4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSkgJiYKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzA3Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgICAgSTQwRV9QUFBfTkFN RV9TSVpFKSkgewogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYcnRlX3BtZF9pNDBlX3By b2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDE6MjE6IGVycm9yOiBpbnZhbGlkIGFwcGxp Y2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVf cGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXplb2Yoc3RydWN0IGk0MGVfcGFja2Fn ZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzQyOjE0OiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKA mHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICAgICAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU1OjEzOiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50IDwgMikgewog ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjIxOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1p bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlv biBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5lc3RlZC1l eHRlcm5zXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl KFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6NTA6IGVycm9yOiDigJhTRUdN RU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rp b24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VH TUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQog IHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50ICopbWV0YWRhdGFfc2Vn X2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzA6NDk6IGVycm9yOiDigJhTRUdNRU5U X1RZUEVfSTQwReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBw cm9maWxlX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQ RV9JNDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzc4OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bi gJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRl cikgKwogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzk6MTg6IGVycm9yOiBpbnZhbGlkIGFw cGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVf aW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4OTo1NjogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWdtZW504oCZCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxl X3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTQwMDoxMjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1pbXBsaWNp dC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxlKGh3 LAogICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFy YXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5z XQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcsCiAgIF4KY2MxOiBhbGwgd2Fybmlu Z3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdp NDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0 ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFy Z2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNk a2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJpdmVycycgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjk6IHJlY2lwZSBmb3Ig dGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFsbCcgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMDQ6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQgIzE0OgpPUzog VUIxNjA0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjox MTogZXJyb3I6IOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBw YXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgICBib29sIGFkZCkKICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMjI6MTE6IGVycm9yOiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24g b3IgZGVjbGFyYXRpb24sIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vy cm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPi gJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ dGJsX3NpemUgPSAxOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMzA6MTA6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKA mSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjIy OiBlcnJvcjog4oCYU0VDVElPTl9UWVBFX0lORk/igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsK ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMToyMjogbm90ZTogZWFjaCB1bmRlY2xh cmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0 IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg 4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzMzoyOTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBz ZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm/igJkKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoy ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05B TUVfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9u LCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjE1OiBlcnJvcjog4oCY STQwRV9QUFBfQUREX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyNDI6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9hZGRfcm1fcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU1OjEwOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNr X2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjExOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQt ZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2 b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJv cjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBb LVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywg KHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBl X2NoZWNrX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5MDo4OiBlcnJvcjogaW1wbGljaXQgZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9 aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xp c3QoaHcsICh2b2lkICopYnVmZiwKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IG5lc3Rl ZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJy b3I9bmVzdGVkLWV4dGVybnNdCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lk ICopYnVmZiwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEzMDA6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcikpOwogICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA1OjE1OiBlcnJvcjogaW52 YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0 cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92 ZXJzaW9uKSkgJiYKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA3Ojg6IGVycm9yOiDigJhJNDBF X1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICAgICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rp b24g4oCYcnRlX3BtZF9pNDBlX3Byb2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDE6MjE6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXpl b2Yoc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzQyOjE0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICAg ICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzU1OjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5z ZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjIxOiBlcnJvcjog aW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRh ZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVf TUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyOiBlcnJvcjogbmVz dGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl 4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2Zp bmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz NjE6NTA6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9z ZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVf bWV0YWRhdGFfc2VnbWVudOKAmQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9z ZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzA6 NDk6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfSTQwReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBwcm9maWxlX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9p bl9wYWNrYWdlKFNFR01FTlRfVFlQRV9JNDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc4OjE4OiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzk6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4 OTo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTQwMDoxMjogZXJy b3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmls ZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0g aTQwZV93cml0ZV9wcm9maWxlKGh3LAogICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFst V2Vycm9yPW5lc3RlZC1leHRlcm5zXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcs CiAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6 IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdp NDBlJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIu bWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJp dmVycycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9v dC5tazoxMjk6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2Rrcm9vdC5tazoxMDQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpG YWlsZWQgQnVpbGQgIzE1OgpPUzogQ2VudE9TN182NApUYXJnZXQ6IGk2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIyOjExOiBlcnJvcjog4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27i gJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgIGJv b2wgYWRkKQogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjoxMTogZXJyb3I6IGl0cyBzY29wZSBpcyBv bmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90 IHdoYXQgeW91IHdhbnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJh dGVfcHJvZmlsZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODo1OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyOTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcikgKwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzA6MTA6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0 aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IGVycm9y OiDigJhTRUNUSU9OX1RZUEVfSU5GT+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRl bnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFy cyBpbgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjMyOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6MzE6IGVycm9yOiBpbnZhbGlk IGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBz aXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzoyOTogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzNToxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgICAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KTsKICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzY6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkocGlu Zm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM3OjI4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQw RV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz ODoxNTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBt ZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3Zl cnNpb24pKTsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM4OjQyOiBlcnJvcjogaW52YWxpZCBh cHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6 ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MDo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJ RDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJ ROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9w ID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0Mjo4OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+ b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDI6MTU6IGVy cm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7 CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9hZGRfcm1fcHJvZmls ZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjU1OjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsK ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICop c2VjLCBzZWMtPmRhdGFfZW5kLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVy biBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQt ZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTI1Nzo0OTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilz ZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv 4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjkwOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biDigJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1k ZWNsYXJhdGlvbl0KICByZXQgPSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZm LAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTI5MDoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDi gJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTMwMDoxNjogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGlu Y29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAg ICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEzMDU6MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNp b27igJkKICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzMDc6ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICAgICBJNDBFX1BQUF9O QU1FX1NJWkUpKSB7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVf cHJvY2Vzc19wcHBfcGFja2FnZeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MToyMTogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNr YWdlX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDI6MTQ6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVjdCBp NDBlX21ldGFkYXRhX3NlZ21lbnQpICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTU6MTM6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19o ZHItPnNlZ21lbnRfY291bnQgPCAyKSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJy b3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50 X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAg bWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9U WVBFX01FVEFEQVRBLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2MToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNs YXJhdGlvbiBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5l c3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFE QVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRh X3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRB REFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEzNjc6NjM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgdHJhY2tfaWQgPSAoKHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRh ZGF0YV9zZWdfaGRyKS0+dHJhY2tfaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3MDo0OTogZXJyb3I6IOKA mFNFR01FTlRfVFlQRV9JNDBF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHByb2ZpbGVfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VH TUVOVF9UWVBFX0k0MEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzNzg6MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3OToxODogZXJyb3I6IGlu dmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9pbmZvKSwKICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzg5OjU2OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICgoc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz OTA6NTc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg ICAgICAgJigoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+ dmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExNDAwOjM6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExNDAwOjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVf d3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KY2MxOiBhbGwgd2Fybmlu Z3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQgQnVpbGQgIzE2OgpPUzogQ2VudE9T N182NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMDo1MTog ZXJyb3I6IGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbicgd2lsbCBub3Qg YmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3IsLVd2aXNpYmlsaXR5 XQppNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVf cHBwX3ZlcnNpb24gKnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRp b24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz ZWMtPnRibF9zaXplID0gMTsKICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjQ6OTogbm90ZTogZm9yd2Fy ZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBv ZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwog ICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyOToxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5j b21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAg IHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRl cikgKwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9m ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzMDozOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICAgICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRl Y2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjU6IGVy cm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9J TkZPOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNDo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9u IG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBp NDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIzMToyMjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NFQ1RJ T05fVFlQRV9JTkZPJwogICAgICAgIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lO Rk87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6NTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6 IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVM TDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjI0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbyk7CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI0Ojk6IG5vdGU6IGZvcndhcmQgZGVj bGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAg c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjMzOjIyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6 ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAg ICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5m bzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE0OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZp bml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZz ZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5eCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjQ6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6 IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICAgfn5+fn5eCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjU6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzNzoxNDogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgbWVtY3B5KHBpbmZvLT5uYW1l LCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyNTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM4OjE1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5 cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBtZW1jcHkoJnBpbmZvLT52ZXJz aW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAg ICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjI1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2Yg J3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6ODogZXJyb3I6IGluY29tcGxl dGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAg ICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAg IH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI1Ojk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBp bmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDA6MTU6IGVycm9yOiB1c2Ugb2YgdW5kZWNs YXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9BRERfVFJBQ0tJRCcKICAgICAgICAgICAgICAgIHBp bmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjQyOjg6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAn c3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgICAgICAgICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjQyOjE1OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQnCiAgICAgICAgICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQ UF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZmF0YWwgZXJy b3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBzdG9wcGluZyBub3cgWy1mZXJyb3ItbGltaXQ9 XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgoKCkZhaWxlZCBCdWlsZCAjMTc6Ck9TOiBDZW50T1M3XzY0 ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjEx OiBlcnJvcjog4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkgZGVjbGFyZWQgaW5zaWRlIHBh cmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgIGJvb2wgYWRkKQogICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyMjoxMTogZXJyb3I6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBv ciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgWy1XZXJy b3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlY+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTo1OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ZGF0YV9lbmQg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyOToyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MTA6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMxOjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZ UEVfSU5GTzsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IGVycm9yOiDigJhTRUNUSU9OX1RZUEVfSU5G T+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBzZWMtPnNlY3Rp b24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjMxOjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBv bmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0 aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzI6MzE6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNp emVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzM6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzMzoyOTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCY c2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/i gJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNToxNDogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAgICBzZWMtPnNl Y3Rpb24ub2Zmc2V0KTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzY6NzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBwaW5mby0+dHJhY2tfaWQgPSB0 cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVf UFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjI4OiBlcnJvcjog4oCY STQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzODoxNTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9u LCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM4OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAg bWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92 ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI0MDo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy NDA6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNL SUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0Mjo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVf VFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNDI6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1P VkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg cGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzogSW4gZnVuY3Rpb24g4oCYaTQwZV9hZGRfcm1fcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU1 OjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAg ICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1 NzoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93 cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgc3Rh dHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTI1NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhp NDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1Nzo0 OTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzdGF0 dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVy cm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX2dldF9wcHBf bGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICByZXQgPSBp NDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZmLAogIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5MDoyOiBl cnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX2dldF9wcHBfbGlz dOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMDoxNjogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz MDU6MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICAgICAgICBzaXplb2Yo c3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDc6 ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgICAgICBJNDBFX1BQUF9OQU1FX1NJWkUpKSB7CiAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZeKA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTM0MToyMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQog IGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcikgKwogICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDI6MTQ6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRh dGFfc2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQp ICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTU6MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19oZHItPnNlZ21lbnRfY291bnQgPCAy KSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJy b3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0 MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM2MToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2Zp bmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzYxOjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRf c2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjc6NjM6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdHJhY2tfaWQgPSAo KHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRhZGF0YV9zZWdfaGRyKS0+dHJhY2tf aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM3MDo0OTogZXJyb3I6IOKAmFNFR01FTlRfVFlQRV9JNDBF4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHByb2ZpbGVfc2VnX2hk ciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX0k0MEUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzg6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAg ICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM3OToxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg 4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm/igJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKSwKICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzg5OjU2OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICgoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50 ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTA6NTc6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICAgJigoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+dmVyc2lvbiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExNDAw OjM6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRl X3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0 YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExNDAwOjM6IGVycm9yOiBu ZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdl cnJvcj1uZXN0ZWQtZXh0ZXJuc10KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKCgpGYWlsZWQgQnVpbGQgIzE4OgpPUzogQ2VudE9TN182NApUYXJnZXQ6IHg4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9w cHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAg ICAgICAgICAgYm9vbCBhZGQpCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjExOiBlcnJvcjogaXRz IHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBw cm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCY aTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT50Ymxfc2l6ZSA9 IDE7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI5OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjI1OiBlcnJvcjogaW52YWxp ZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzMDoxMDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCY c2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/i gJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzE6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz MToyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lO Rk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzE6MjI6IG5vdGU6IGVhY2ggdW5k ZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlv biBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjozMTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9u Lm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo1OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5zaXplID0g c2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMzOjI5OiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXplID0g c2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM1OjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzNjo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHBpbmZvLT50cmFja19pZCA9IHRyYWNrX2lkOwogICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjM3OjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzc6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1l LCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjM4OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzg6NDI6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2 ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjQwOjg6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQ X0FERF9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI0MDoxNTogZXJyb3I6IOKAmEk0MEVfUFBQ X0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjQyOjg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTI0MjoxNTogZXJyb3I6IOKAmEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lE4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1P VkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2Fk ZF9ybV9wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTU6MTA6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSkt PnRyYWNrX2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBs aWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcCho dywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjI6IGVycm9yOiBu ZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vy cm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU3OjQ5OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3 LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9jaGVja19w cm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTA6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPWltcGxpY2l0 LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAo dm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjkwOjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xh cmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRl cm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzAwOjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNToxNTogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikp ICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNzo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFN RV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAg IEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHJ0 ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzQxOjIxOiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKA mHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVj dCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0 MjoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXpl b2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM1NToxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM2MToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNs YXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2Fn ZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzYxOjI6IGVycm9yOiBuZXN0ZWQg ZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjE6NTA6IGVycm9yOiDigJhTRUdNRU5U X1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVO VF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM2Nzo2MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICB0cmFja19pZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2Vn bWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzcwOjQ5 OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3ODoxODogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc5OjE4 OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODk6 NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAg ICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTM5MDo1NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgICAgICAmKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxl X3NlZ19oZHIpLT52ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6IGltcGxpY2l0IGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1pbXBs aWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxl KGh3LAogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTE0MDA6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24g b2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6 IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwoKCkRQREsgU1RWIHRlYW0K --===============5526450396093985197==--