From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 058C12BD8 for ; Sat, 1 Apr 2017 19:39:19 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP; 01 Apr 2017 10:39:18 -0700 Message-Id: Date: 01 Apr 2017 10:39:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,258,1486454400"; d="scan'208";a="1129759582" Received: from unknown (HELO localhost.localdomain) ([10.240.176.250]) by fmsmga001.fm.intel.com with ESMTP; 01 Apr 2017 10:39:16 -0700 Content-Type: multipart/alternative; boundary="===============2763260810604692928==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org CC: michalx.k.jastrzebski@intel.com Subject: [dpdk-test-report] |FAILURE| pw22965 [PATCH v2 2/5] add new xstats API id support for e1000 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, 01 Apr 2017 17:39:21 -0000 --===============2763260810604692928== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKCmh0dHA6 Ly9kcGRrLm9yZy9wYXRjaC8yMjk2NQoKX0NvbXBpbGF0aW9uIGlzc3Vlc18KClN1Ym1pdHRlcjog TWljaGFsIEphc3RyemVic2tpIDxtaWNoYWx4LmsuamFzdHJ6ZWJza2lAaW50ZWwuY29tPgpEYXRl OiBUaHUsIDMwIE1hciAyMDE3IDIzOjUwOjM2ICswMjAwCkRQREsgZ2l0IGJhc2VsaW5lOiBSZXBv OmRwZGssIEJyYW5jaDptYXN0ZXIsIENvbW1pdElEOmJhODI4MjlmZGEwMjJlMTRhOTM4YzNhNjY5 ZGUwZTYzNDYyNmU0YzgKClBhdGNoMjI5NjQtMjI5NjUgLS0+IGNvbXBpbGUgZXJyb3IKQnVpbGQg U3VtbWFyeTogMTggQnVpbGRzIERvbmUsIDAgU3VjY2Vzc2Z1bCwgMTggRmFpbHVyZXMKClRlc3Qg ZW52aXJvbm1lbnQgYW5kIGNvbmZpZ3VyYXRpb24gYXMgYmVsb3c6Ck9TOiBSSEVMNy4yXzY0CiAg ICBLZXJuZWwgVmVyc2lvbjozLjEwLjAtNTE0LjEwLjIuZWw3Lng4Nl82NAogICAgQ1BVIGluZm86 SW50ZWwoUikgWGVvbihSKSBDUFUgRTUtMjY5OSB2NCBAIDIuMjBHSHoKICAgIEdDQyBWZXJzaW9u OmdjYyAoR0NDKSA0LjguNSAyMDE1MDYyMyAoUmVkIEhhdCA0LjguNS00KQogICAgQ2xhbmcgVmVy c2lvbjozLjQuMgogICAgaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjCiAgICB4ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCk9TOiBG cmVlQlNEMTAuM182NAogICAgS2VybmVsIFZlcnNpb246MTAuMy1SRUxFQVNFCiAgICBDUFUgaW5m bzogSW50ZWwoUikgWGVvbihSKSBDUFUgRTUtMjY5OSB2NCBAIDIuMjBHSHogKDIxOTQuOTctTUh6 IEs4LWNsYXNzIENQVSkKICAgIEdDQyBWZXJzaW9uOmdjYyAoRnJlZUJTRCBQb3J0cyBDb2xsZWN0 aW9uKSA0LjguNQogICAgQ2xhbmcgVmVyc2lvbjozLjQuMQogICAgeDg2XzY0LW5hdGl2ZS1ic2Rh cHAtY2xhbmcKICAgIHg4Nl82NC1uYXRpdmUtYnNkYXBwLWdjYwpPUzogRkMyNF82NAogICAgS2Vy bmVsIFZlcnNpb246NC45LjEzLTEwMC5mYzI0Lng4Nl82NAogICAgQ1BVIGluZm86SW50ZWwoUikg WGVvbihSKSBDUFUgRTUtMjY5OSB2MyBAIDIuMzBHSHoKICAgIEdDQyBWZXJzaW9uOmdjYyAoR0ND KSA2LjIuMSAyMDE2MDkxNiAoUmVkIEhhdCA2LjIuMS0yKQogICAgQ2xhbmcgVmVyc2lvbjozLjgu MAogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwogICAgaTY4Ni1uYXRpdmUtbGludXhh cHAtZ2NjCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2Mtc2hhcmVkCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1kZWJ1ZwpP UzogVUIxNjA0XzY0CiAgICBLZXJuZWwgVmVyc2lvbjo0LjQuMC02NC1nZW5lcmljCiAgICBDUFUg aW5mbzpJbnRlbChSKSBYZW9uKFIpIENQVSBFNS0yNjk5IHYzIEAgMi4zMEdIegogICAgR0NDIFZl cnNpb246Z2NjIChVYnVudHUgNS40LjAtNnVidW50dTF+MTYuMDQuNCkgNS40LjAgMjAxNjA2MDkK ICAgIENsYW5nIFZlcnNpb246My44LjAKICAgIGk2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAg eDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2Mtc2hhcmVkCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwpPUzogQ2VudE9TN182NAog ICAgS2VybmVsIFZlcnNpb246My4xMC4wLTUxNC4xMC4yLmVsNy54ODZfNjQKICAgIENQVSBpbmZv OkludGVsKFIpIFhlb24oUikgQ1BVIEU1LTI2OTkgdjMgQCAyLjMwR0h6CiAgICBHQ0MgVmVyc2lv bjpnY2MgKEdDQykgNC44LjUgMjAxNTA2MjMgKFJlZCBIYXQgNC44LjUtNCkKICAgIENsYW5nIFZl cnNpb246My40LjIKICAgIGk2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1jbGFuZwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCiAg ICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwoKRmFpbGVkIEJ1aWxkICMxOgpPUzogUkhFTDcu Ml82NApUYXJnZXQ6IGk2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBJbiBmdW5jdGlvbiDigJhuaWNfeHN0 YXRzX2Rpc3BsYXnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1w bWQvY29uZmlnLmM6Mjc4OjI6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDi gJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkKICBjbnRfeHN0YXRzID0gcnRlX2V0aF94c3Rh dHNfZ2V0X25hbWVzKHBvcnRfaWQsIE5VTEwsIDApOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdj Yy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGludCBy dGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6NDogZXJyb3I6 IHBhc3NpbmcgYXJndW1lbnQgMyBvZiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkgbWFr ZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3JdCiAgICBwb3J0 X2lkLCB4c3RhdHNfbmFtZXMsIGNudF94c3RhdHMpKSB7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5j OjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50 NjRfdCAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmGludOKAmQogaW50IHJ0ZV9ldGhf eHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI5MTo0OiBlcnJvcjogdG9vIGZl dyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAg ICBwb3J0X2lkLCB4c3RhdHNfbmFtZXMsIGNudF94c3RhdHMpKSB7CiAgICBeCkluIGZpbGUgaW5j bHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2Nv bmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJlZCBo ZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0 OjI6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZ IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICBpZiAoY250X3hzdGF0 cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewog IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5v dGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCY c3RydWN0IHJ0ZV9ldGhfeHN0YXQgKuKAmQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90 IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJv cjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBtYWtlcyBw b2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcl0KICBpZiAoY250X3hz dGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkg ewogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6 IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg 4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0 X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjI6IGVycm9yOiB0b28gZmV3IGFyZ3Vt ZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkKICBpZiAoY250X3hzdGF0 cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewog IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5v dGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lk LCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAogICAgIF4KY2MxOiBhbGwgd2Fybmlu Z3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQgQnVpbGQgIzI6Ck9TOiBSSEVMNy4y XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzogSW4gZnVuY3Rpb24g4oCYbmljX3hz dGF0c19kaXNwbGF54oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOjI3ODoyOiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g 4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAgY250X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0 YXRzX2dldF9uYW1lcyhwb3J0X2lkLCBOVUxMLCAwKTsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJv bSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjky OjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBw LWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGlu dCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6NDogZXJy b3I6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkg bWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3JdCiAgICBw b3J0X2lkLCB4c3RhdHNfbmFtZXMsIGNudF94c3RhdHMpKSB7CiAgICBeCkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGV4cGVjdGVkIOKA mHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRl X2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjQ6IGVycm9yOiB0 b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPi gJkKICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1w bWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVj bGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQs CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOjMwNDoyOiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAyIG9mIOKAmHJ0ZV9ldGhfeHN0YXRz X2dldOKAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgaWYgKGNu dF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0 cykpIHsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoy NDQxOjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9m IHR5cGUg4oCYc3RydWN0IHJ0ZV9ldGhfeHN0YXQgKuKAmQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dl dCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMw NDoyOiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKA mSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcl0KICBp ZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRf eHN0YXRzKSkgewogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRl di5oOjI0NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKuKAmSBidXQgYXJndW1lbnQg aXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0 X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAogICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6MjogZXJyb3I6IHRv byBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQogIGlm IChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94 c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2 Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVp bnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCgoKRmFpbGVkIEJ1aWxkICMz OgpPUzogUkhFTDcuMl82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJl ZAoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzog SW4gZnVuY3Rpb24g4oCYbmljX3hzdGF0c19kaXNwbGF54oCZOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODoyOiBlcnJvcjogdG9vIGZldyBh cmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAgY250 X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyhwb3J0X2lkLCBOVUxMLCAwKTsKICBe CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBw L3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5v dGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBw b3J0X2lkLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzoyOTE6NDogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiDigJhydGVfZXRo X3hzdGF0c19nZXRfbmFtZXPigJkgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBh IGNhc3QgWy1XZXJyb3JdCiAgICBwb3J0X2lkLCB4c3RhdHNfbmFtZXMsIGNudF94c3RhdHMpKSB7 CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0 OjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5 cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9p ZCwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29u ZmlnLmM6MjkxOjQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVf ZXRoX3hzdGF0c19nZXRfbmFtZXPigJkKICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hz dGF0cykpIHsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRl di5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9u YW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAy IG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5 cGUgWy1XZXJyb3JdCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRf aWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICri gJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IHJ0ZV9ldGhfeHN0YXQgKuKAmQog aW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVp bnQ2NF90ICp2YWx1ZXMsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBw L3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKA mHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0 IGEgY2FzdCBbLVdlcnJvcl0KICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQo cG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6 MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAt Z2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0 X3QgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hz dGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVz LAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25m aWcuYzozMDQ6MjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9l dGhfeHN0YXRzX2dldOKAmQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChw b3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5Mjow OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQg cnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0 X3QgKnZhbHVlcywKICAgICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJy b3JzCgoKRmFpbGVkIEJ1aWxkICM0OgpPUzogRnJlZUJTRDEwLjNfNjQKVGFyZ2V0OiB4ODZfNjQt bmF0aXZlLWJzZGFwcC1jbGFuZwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rl c3QtcG1kL2NvbmZpZy5jOjI3ODo1NjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0 aW9uIGNhbGwsIGV4cGVjdGVkIDQsIGhhdmUgMwogICAgICAgIGNudF94c3RhdHMgPSBydGVfZXRo X3hzdGF0c19nZXRfbmFtZXMocG9ydF9pZCwgTlVMTCwgMCk7CiAgICAgICAgICAgICAgICAgICAg IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVf ZXRoZGV2Lmg6MjQ5NDoxOiBub3RlOiAncnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzJyBkZWNsYXJl ZCBoZXJlCmludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLApeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjM3 OiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24gY2FsbCwgZXhwZWN0ZWQgNCwg aGF2ZSAzCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250 X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDoxOiBub3RlOiAncnRlX2V0 aF94c3RhdHNfZ2V0X25hbWVzJyBkZWNsYXJlZCBoZXJlCmludCBydGVfZXRoX3hzdGF0c19nZXRf bmFtZXModWludDhfdCBwb3J0X2lkLApeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjY2OiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8g ZnVuY3Rpb24gY2FsbCwgZXhwZWN0ZWQgNCwgaGF2ZSAzCiAgICAgICAgaWYgKGNudF94c3RhdHMg IT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1ic2RhcHAtY2xhbmcvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MToxOiBub3RlOiAncnRlX2V0 aF94c3RhdHNfZ2V0JyBkZWNsYXJlZCBoZXJlCmludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhf dCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLApeCjMgZXJyb3JzIGdl bmVyYXRlZC4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5j b21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdjb25maWcubycgZmFpbGVkCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUg Zm9yIHRhcmdldCAndGVzdC1wbWQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnYXBwJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyNDogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj NToKT1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1ic2RhcHAtZ2NjCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6IEluIGZ1 bmN0aW9uICduaWNfeHN0YXRzX2Rpc3BsYXknOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODoyOiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMg dG8gZnVuY3Rpb24gJ3J0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcycKICBjbnRfeHN0YXRzID0gcnRl X2V0aF94c3RhdHNfZ2V0X25hbWVzKHBvcnRfaWQsIE5VTEwsIDApOwogIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29u ZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt YnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhl cmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6 NDogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiAncnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz JyBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcl0KICAg IHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29u ZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt YnNkYXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGV4cGVjdGVkICd1 aW50NjRfdCAqJyBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnaW50JwogaW50IHJ0ZV9ldGhfeHN0 YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI5MTo0OiBlcnJvcjogdG9vIGZldyBh cmd1bWVudHMgdG8gZnVuY3Rpb24gJ3J0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcycKICAgIHBvcnRf aWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6 OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtYnNkYXBw LWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGlu dCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6MjogZXJy b3I6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAncnRlX2V0aF94c3RhdHNfZ2V0JyBmcm9tIGluY29t cGF0aWJsZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0 aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICBeCkluIGZpbGUg aW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1k L2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0 aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBleHBlY3Rl ZCAndWludDY0X3QgKicgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgJ3N0cnVjdCBydGVfZXRoX3hz dGF0IConCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3Qg KmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjI6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50 IDMgb2YgJ3J0ZV9ldGhfeHN0YXRzX2dldCcgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0 aG91dCBhIGNhc3QgWy1XZXJyb3JdCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNf Z2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5j OjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFw cC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBleHBlY3RlZCAndWludDY0 X3QgKicgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgJ2ludCcKIGludCBydGVfZXRoX3hzdGF0c19n ZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAogICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoz MDQ6MjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdydGVfZXRoX3hzdGF0 c19nZXQnCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhz dGF0cywgY250X3hzdGF0cykpIHsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWJzZGFwcC1nY2MvaW5jbHVkZS9y dGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQgcnRlX2V0aF94c3Rh dHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywK ICAgICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4 OiByZWNpcGUgZm9yIHRhcmdldCAnY29uZmlnLm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ3Rlc3Qt cG1kJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWls ZC5tazo3MzogcmVjaXBlIGZvciB0YXJnZXQgJ2FwcCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdh bGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3Rh bGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMDM6IHJlY2lwZSBmb3Ig dGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQgIzY6Ck9TOiBGQzI0XzY0ClRh cmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODo1NjogZXJyb3I6IHRvbyBmZXcgYXJn dW1lbnRzIHRvIGZ1bmN0aW9uIGNhbGwsIGV4cGVjdGVkIDQsIGhhdmUgMwogICAgICAgIGNudF94 c3RhdHMgPSBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMocG9ydF9pZCwgTlVMTCwgMCk7CiAgICAg ICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1j bGFuZy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjE6IG5vdGU6ICdydGVfZXRoX3hzdGF0c19n ZXRfbmFtZXMnIGRlY2xhcmVkIGhlcmUKaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50 OF90IHBvcnRfaWQsCl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzoyOTE6Mzc6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiBj YWxsLCBleHBlY3RlZCA0LCBoYXZlIDMKICAgICAgICAgICAgICAgICAgICAgICAgcG9ydF9pZCwg eHN0YXRzX25hbWVzLCBjbnRfeHN0YXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0 OTQ6MTogbm90ZTogJ3J0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcycgZGVjbGFyZWQgaGVyZQppbnQg cnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo2NjogZXJyb3I6IHRv byBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIGNhbGwsIGV4cGVjdGVkIDQsIGhhdmUgMwogICAg ICAgIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMs IGNudF94c3RhdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6 MjQ0MToxOiBub3RlOiAncnRlX2V0aF94c3RhdHNfZ2V0JyBkZWNsYXJlZCBoZXJlCmludCBydGVf ZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAq dmFsdWVzLApeCjMgZXJyb3JzIGdlbmVyYXRlZC4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdjb25maWcubycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c3ViZGlyLm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAndGVzdC1wbWQnIGZhaWxlZAovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9y IHRhcmdldCAnYXBwJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0 ZS5zZGtyb290Lm1rOjEyNDogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZv ciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZh aWxlZAoKCkZhaWxlZCBCdWlsZCAjNzoKT1M6IEZDMjRfNjQKVGFyZ2V0OiBpNjg2LW5hdGl2ZS1s aW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9j b25maWcuYzogSW4gZnVuY3Rpb24g4oCYbmljX3hzdGF0c19kaXNwbGF54oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODoxNTogZXJyb3I6 IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1l c+KAmQogIGNudF94c3RhdHMgPSBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMocG9ydF9pZCwgTlVM TCwgMCk7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9j b25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQg aGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjI3OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9m IOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdl ciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lvbl0KICAgIHBvcnRfaWQsIHhz dGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6 NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgbG9uZyB1bnNpZ25lZCBp bnQgKn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94 c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcu YzoyOTA6MjA6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRo X3hzdGF0c19nZXRfbmFtZXPigJkKICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19n ZXRfbmFtZXMoCiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rl c3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBk ZWNsYXJlZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9p ZCwKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6NDg6IGVycm9yOiBwYXNzaW5nIGFyZ3Vt ZW50IDIgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50 ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICBpZiAoY250X3hz dGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAv dGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2 ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6 IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICoge2FrYSBsb25nIGxvbmcgdW5zaWduZWQgaW50ICp94oCZ IGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBydGVfZXRoX3hzdGF0ICrigJkKIGlu dCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50 NjRfdCAqdmFsdWVzLAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo1NjogZXJyb3I6IHBhc3Npbmcg YXJndW1lbnQgMyBvZiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkgbWFrZXMgcG9pbnRlciBmcm9t IGludGVnZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3I9aW50LWNvbnZlcnNpb25dCiAgaWYgKGNu dF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0 cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2 Lmg6MjQ0MTo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyBsb25nIHVu c2lnbmVkIGludCAqfeKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBy dGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRf dCAqdmFsdWVzLAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyMDogZXJyb3I6IHRvbyBmZXcgYXJn dW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQogIGlmIChjbnRfeHN0 YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7 CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5j OjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFw cC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBp bnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWlu dDY0X3QgKnZhbHVlcywKICAgICBefn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3Mg YmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21r L2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdjb25m aWcubycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGly Lm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAndGVzdC1wbWQnIGZhaWxlZAovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdl dCAnYXBwJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGty b290Lm1rOjEyNDogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJn ZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21r L3J0ZS5zZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoK CkZhaWxlZCBCdWlsZCAjODoKT1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOiBJbiBmdW5jdGlvbiDigJhuaWNfeHN0YXRzX2Rpc3BsYXnigJk6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6Mjc4OjE1OiBlcnJvcjogdG9v IGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZ CiAgY250X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyhwb3J0X2lkLCBOVUxMLCAw KTsKICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhl cmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBw L3Rlc3QtcG1kL2NvbmZpZy5jOjI5MToyNzogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiDi gJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIg d2l0aG91dCBhIGNhc3QgWy1XZXJyb3I9aW50LWNvbnZlcnNpb25dCiAgICBwb3J0X2lkLCB4c3Rh dHNfbmFtZXMsIGNudF94c3RhdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6 NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgdW5zaWduZWQgaW50ICp9 4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmGludOKAmQogaW50IHJ0ZV9ldGhfeHN0YXRz X2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6Mjkw OjIwOiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3Rh dHNfZ2V0X25hbWVz4oCZCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0X25h bWVzKAogICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNs YXJlZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwK ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6NDg6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50 IDIgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIg dHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICBpZiAoY250X3hzdGF0 cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVz dC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82 NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90ZTog ZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgdW5zaWduZWQgaW50ICp94oCZIGJ1dCBh cmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBydGVfZXRoX3hzdGF0ICrigJkKIGludCBydGVf ZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAq dmFsdWVzLAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo1NjogZXJyb3I6IHBhc3NpbmcgYXJndW1l bnQgMyBvZiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkgbWFrZXMgcG9pbnRlciBmcm9tIGludGVn ZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3I9aW50LWNvbnZlcnNpb25dCiAgaWYgKGNudF94c3Rh dHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoy NDQxOjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICoge2FrYSBsb25nIHVuc2lnbmVkIGlu dCAqfeKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hz dGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVz LAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyMDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRv IGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQogIGlmIChjbnRfeHN0YXRzICE9IHJ0 ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9p bmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVf ZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAq dmFsdWVzLAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0 cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJu YWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0YXJnZXQgJ2NvbmZpZy5vJyBm YWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjM6 IHJlY2lwZSBmb3IgdGFyZ2V0ICd0ZXN0LXBtZCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhcHAn IGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6 MTI0OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNpcGUgZm9yIHRhcmdldCAncHJl X2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNk a3Jvb3QubWs6MTAzOiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFsbCcgZmFpbGVkCgoKRmFpbGVk IEJ1aWxkICM5OgpPUzogRkMyNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj LXNoYXJlZAoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25m aWcuYzogSW4gZnVuY3Rpb24g4oCYbmljX3hzdGF0c19kaXNwbGF54oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODoxNTogZXJyb3I6IHRv byBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KA mQogIGNudF94c3RhdHMgPSBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMocG9ydF9pZCwgTlVMTCwg MCk7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25m aWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJlZCBo ZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Fw cC90ZXN0LXBtZC9jb25maWcuYzoyOTE6Mjc6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2Yg 4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2Vy IHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogICAgcG9ydF9pZCwgeHN0 YXRzX25hbWVzLCBjbnRfeHN0YXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0 OjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICoge2FrYSBsb25nIHVuc2lnbmVkIGludCAq feKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hzdGF0 c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI5 MDoyMDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0 YXRzX2dldF9uYW1lc+KAmQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldF9u YW1lcygKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1w bWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVj bGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQs CiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjQ4OiBlcnJvcjogcGFzc2luZyBhcmd1bWVu dCAyIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVy IHR5cGUgWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCiAgaWYgKGNudF94c3Rh dHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rl c3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZf NjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6 IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICoge2FrYSBsb25nIHVuc2lnbmVkIGludCAqfeKAmSBidXQg YXJndW1lbnQgaXMgb2YgdHlwZSDigJhzdHJ1Y3QgcnRlX2V0aF94c3RhdCAq4oCZCiBpbnQgcnRl X2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3Qg KnZhbHVlcywKICAgICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6NTY6IGVycm9yOiBwYXNzaW5nIGFyZ3Vt ZW50IDMgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRl Z2VyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogIGlmIChjbnRfeHN0 YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6 MjQ0MTo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyB1bnNpZ25lZCBp bnQgKn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94 c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVl cywKICAgICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6MjA6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0 byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkKICBpZiAoY250X3hzdGF0cyAhPSBy dGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewogICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQgcnRl X2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3Qg KnZhbHVlcywKICAgICBefn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcg dHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVy bmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdjb25maWcubycg ZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYz OiByZWNpcGUgZm9yIHRhcmdldCAndGVzdC1wbWQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnYXBw JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEyNDogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3By ZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5z ZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxl ZCBCdWlsZCAjMTA6Ck9TOiBGQzI0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MtZGVidWcKCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29u ZmlnLmM6IEluIGZ1bmN0aW9uIOKAmG5pY194c3RhdHNfZGlzcGxheeKAmToKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyNzg6MTU6IGVycm9yOiB0 b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPi gJkKICBjbnRfeHN0YXRzID0gcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHBvcnRfaWQsIE5VTEws IDApOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29u ZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQg aGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjI3OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9m IOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdl ciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lvbl0KICAgIHBvcnRfaWQsIHhz dGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5 NDo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyB1bnNpZ25lZCBpbnQg Kn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3Rh dHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoy OTA6MjA6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hz dGF0c19nZXRfbmFtZXPigJkKICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXRf bmFtZXMoCiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CkluIGZp bGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGRl Y2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lk LAogICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo0ODogZXJyb3I6IHBhc3NpbmcgYXJndW1l bnQgMiBvZiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRl ciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQogIGlmIChjbnRfeHN0 YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpJ biBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90 ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3Rl OiBleHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyB1bnNpZ25lZCBpbnQgKn3igJkgYnV0 IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IHJ0ZV9ldGhfeHN0YXQgKuKAmQogaW50IHJ0 ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90 ICp2YWx1ZXMsCiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjU2OiBlcnJvcjogcGFzc2luZyBhcmd1 bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50 ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lvbl0KICBpZiAoY250X3hz dGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5o OjI0NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgdW5zaWduZWQg aW50ICp94oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmGludOKAmQogaW50IHJ0ZV9ldGhf eHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1 ZXMsCiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjIwOiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMg dG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZCiAgaWYgKGNudF94c3RhdHMgIT0g cnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0 ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90 ICp2YWx1ZXMsCiAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRl cm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnY29uZmlnLm8n IGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2 MzogcmVjaXBlIGZvciB0YXJnZXQgJ3Rlc3QtcG1kJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo3MzogcmVjaXBlIGZvciB0YXJnZXQgJ2Fw cCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5t azoxMjQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdw cmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c2Rrcm9vdC5tazoxMDM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWls ZWQgQnVpbGQgIzExOgpPUzogVUIxNjA0XzY0ClRhcmdldDogaTY4Ni1uYXRpdmUtbGludXhhcHAt Z2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6 IEluIGZ1bmN0aW9uIOKAmG5pY194c3RhdHNfZGlzcGxheeKAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyNzg6MTU6IGVycm9yOiB0b28gZmV3 IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkKICBj bnRfeHN0YXRzID0gcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHBvcnRfaWQsIE5VTEwsIDApOwog ICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2 Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25h bWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjI3OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAz IG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50 ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lvbl0KICAgIHBvcnRfaWQs IHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg XgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Fw cC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v aTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90 ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQgKn3i gJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNf Z2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkwOjIwOiBlcnJvcjogdG9vIGZldyBhcmd1 bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAgaWYgKGNu dF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKAogICAgICAgICAgICAgICAgICAg IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5v dGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBw b3J0X2lkLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzozMDQ6NDg6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2Yg4oCYcnRlX2V0 aF94c3RhdHNfZ2V04oCZIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1p bmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10KICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hz dGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAv aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6 Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9pNjg2LW5hdGl2ZS1saW51eGFwcC1nY2Mv aW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAq IHtha2EgbG9uZyBsb25nIHVuc2lnbmVkIGludCAqfeKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlw ZSDigJhzdHJ1Y3QgcnRlX2V0aF94c3RhdCAq4oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVp bnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjU2 OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBt YWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29u dmVyc2lvbl0KICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwg eHN0YXRzLCBjbnRfeHN0YXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICoge2FrYSBsb25n IGxvbmcgdW5zaWduZWQgaW50ICp94oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmGludOKA mQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMs IHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyMDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRv IGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQogIGlmIChjbnRfeHN0YXRzICE9IHJ0 ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgICAgICAg ICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5o OjI0NDE6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50 OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgpjYzE6 IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZv ciB0YXJnZXQgJ2NvbmZpZy5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L21rL3J0ZS5zdWJkaXIubWs6NjM6IHJlY2lwZSBmb3IgdGFyZ2V0ICd0ZXN0LXBtZCcgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6NzM6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdhcHAnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka3Jvb3QubWs6MTI0OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiBy ZWNpcGUgZm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTAzOiByZWNpcGUgZm9yIHRhcmdldCAnaW5z dGFsbCcgZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICMxMjoKT1M6IFVCMTYwNF82NApUYXJnZXQ6IHg4 Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2FwcC90ZXN0LXBtZC9jb25maWcuYzoyNzg6NTY6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0 byBmdW5jdGlvbiBjYWxsLCBleHBlY3RlZCA0LCBoYXZlIDMKICAgICAgICBjbnRfeHN0YXRzID0g cnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHBvcnRfaWQsIE5VTEwsIDApOwogICAgICAgICAgICAg ICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcvaW5j bHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDoxOiBub3RlOiAncnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz JyBkZWNsYXJlZCBoZXJlCmludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBwb3J0 X2lkLApeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmln LmM6MjkxOjM3OiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24gY2FsbCwgZXhw ZWN0ZWQgNCwgaGF2ZSAzCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfaWQsIHhzdGF0c19u YW1lcywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjE6IG5v dGU6ICdydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMnIGRlY2xhcmVkIGhlcmUKaW50IHJ0ZV9ldGhf eHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6NjY6IGVycm9yOiB0b28gZmV3IGFy Z3VtZW50cyB0byBmdW5jdGlvbiBjYWxsLCBleHBlY3RlZCA0LCBoYXZlIDMKICAgICAgICBpZiAo Y250X3hzdGF0cyAhPSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0 YXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6MTog bm90ZTogJ3J0ZV9ldGhfeHN0YXRzX2dldCcgZGVjbGFyZWQgaGVyZQppbnQgcnRlX2V0aF94c3Rh dHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywK XgozIGVycm9ycyBnZW5lcmF0ZWQuCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9p bnRlcm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnY29uZmln Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5t azo2MzogcmVjaXBlIGZvciB0YXJnZXQgJ3Rlc3QtcG1kJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo3MzogcmVjaXBlIGZvciB0YXJnZXQg J2FwcCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9v dC5tazoxMjQ6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2Rrcm9vdC5tazoxMDM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpG YWlsZWQgQnVpbGQgIzEzOgpPUzogVUIxNjA0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2Mtc2hhcmVkCgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOiBJbiBmdW5jdGlvbiDigJhuaWNfeHN0YXRzX2Rpc3BsYXnigJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6Mjc4OjE1OiBl cnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0 X25hbWVz4oCZCiAgY250X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyhwb3J0X2lk LCBOVUxMLCAwKTsKICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5j bHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiBpbnQgcnRlX2V0 aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjI3OiBlcnJvcjogcGFz c2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmSBtYWtlcyBw b2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lv bl0KICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRo ZGV2Lmg6MjQ5NDo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyB1bnNp Z25lZCBpbnQgKn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRl X2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkwOjIwOiBlcnJvcjog dG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz 4oCZCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKAogICAgICAg ICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRl di5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9u YW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo0ODogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQg MiBvZiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0 eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQogIGlmIChjbnRfeHN0YXRz ICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQv Y29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90ZTogZXhwZWN0 ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgdW5zaWduZWQgaW50ICp94oCZIGJ1dCBhcmd1bWVu dCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBydGVfZXRoX3hzdGF0ICrigJkKIGludCBydGVfZXRoX3hz dGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVz LAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25m aWcuYzozMDQ6NTY6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2Yg4oCYcnRlX2V0aF94c3Rh dHNfZ2V04oCZIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFstV2Vy cm9yPWludC1jb252ZXJzaW9uXQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dl dChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5Mjow OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRf dCAqIHtha2EgbG9uZyB1bnNpZ25lZCBpbnQgKn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg 4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0 X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjIwOiBlcnJvcjogdG9vIGZldyBhcmd1 bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZCiAgaWYgKGNudF94c3Rh dHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsK ICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0 ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0 c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAog ICAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6 IHJlY2lwZSBmb3IgdGFyZ2V0ICdjb25maWcubycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUgZm9yIHRhcmdldCAndGVzdC1w bWQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxk Lm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnYXBwJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyNDogcmVjaXBlIGZvciB0YXJnZXQgJ2Fs bCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFs bC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0 YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjMTQ6Ck9TOiBVQjE2MDRfNjQK VGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBJbiBmdW5jdGlvbiDigJhuaWNfeHN0YXRz X2Rpc3BsYXnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQv Y29uZmlnLmM6Mjc4OjE1OiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCY cnRlX2V0aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAgY250X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0YXRz X2dldF9uYW1lcyhwb3J0X2lkLCBOVUxMLCAwKTsKICAgICAgICAgICAgICAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9j b25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJl ZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6 MjkxOjI3OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dl dF9uYW1lc+KAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdl cnJvcj1pbnQtY29udmVyc2lvbl0KICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0 cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5Mjow OgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRf dCAqIHtha2EgbG9uZyB1bnNpZ25lZCBpbnQgKn3igJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg 4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmln LmM6MjkwOjIwOiBlcnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0 aF94c3RhdHNfZ2V0X25hbWVz4oCZCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNf Z2V0X25hbWVzKAogICAgICAgICAgICAgICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0 ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDo0ODogZXJyb3I6 IHBhc3NpbmcgYXJndW1lbnQgMiBvZiDigJhydGVfZXRoX3hzdGF0c19nZXTigJkgZnJvbSBpbmNv bXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVz XQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMs IGNudF94c3RhdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0 NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKiB7YWthIGxvbmcgdW5zaWduZWQgaW50 ICp94oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0cnVjdCBydGVfZXRoX3hzdGF0ICri gJkKIGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRz LCB1aW50NjRfdCAqdmFsdWVzLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6NTY6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDMg b2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdp dGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogIGlmIChjbnRfeHN0YXRzICE9 IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0 LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0 LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBl eHBlY3RlZCDigJh1aW50NjRfdCAqIHtha2EgbG9uZyB1bnNpZ25lZCBpbnQgKn3igJkgYnV0IGFy Z3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4 X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjIwOiBl cnJvcjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0 4oCZCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0 cywgY250X3hzdGF0cykpIHsKICAgICAgICAgICAgICAgICAgICBeCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5j OjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4 YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUK IGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1 aW50NjRfdCAqdmFsdWVzLAogICAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBh cyBlcnJvcnMKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5j b21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdjb25maWcubycgZmFpbGVkCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYzOiByZWNpcGUg Zm9yIHRhcmdldCAndGVzdC1wbWQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka2J1aWxkLm1rOjczOiByZWNpcGUgZm9yIHRhcmdldCAnYXBwJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyNDogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj MTU6Ck9TOiBDZW50T1M3XzY0ClRhcmdldDogaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6IEluIGZ1bmN0 aW9uIOKAmG5pY194c3RhdHNfZGlzcGxheeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyNzg6MjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRz IHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmQogIGNudF94c3RhdHMg PSBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMocG9ydF9pZCwgTlVMTCwgMCk7CiAgXgpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFy ZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5j OjI5MTo0OiBlcnJvcjogcGFzc2luZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dl dF9uYW1lc+KAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdl cnJvcl0KICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVz dC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2k2ODYt bmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5vdGU6IGV4 cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYaW504oCZ CiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MjkxOjQ6 IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRoX3hzdGF0c19n ZXRfbmFtZXPigJkKICAgIHBvcnRfaWQsIHhzdGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAg IF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9h cHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2k2ODYtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjU6IG5v dGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXModWludDhfdCBw b3J0X2lkLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzozMDQ6MjogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiDigJhydGVfZXRo X3hzdGF0c19nZXTigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yXQog IGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNu dF94c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRl di5oOjI0NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKuKAmSBidXQgYXJndW1lbnQg aXMgb2YgdHlwZSDigJhzdHJ1Y3QgcnRlX2V0aF94c3RhdCAq4oCZCiBpbnQgcnRlX2V0aF94c3Rh dHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmln LmM6MzA0OjI6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2Yg4oCYcnRlX2V0aF94c3RhdHNf Z2V04oCZIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9y XQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMs IGNudF94c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0 aGRldi5oOjI0NDE6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKuKAmSBidXQgYXJndW1l bnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBw b3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzozMDQ6MjogZXJyb3I6 IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQog IGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNu dF94c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRl di5oOjI0NDE6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1 aW50OF90IHBvcnRfaWQsIHVpbnQ2NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgpj YzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwoKCkZhaWxlZCBCdWlsZCAj MTY6Ck9TOiBDZW50T1M3XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODo1 NjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIGNhbGwsIGV4cGVjdGVkIDQs IGhhdmUgMwogICAgICAgIGNudF94c3RhdHMgPSBydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMocG9y dF9pZCwgTlVMTCwgMCk7CiAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fiAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2 XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDk0OjE6IG5v dGU6ICdydGVfZXRoX3hzdGF0c19nZXRfbmFtZXMnIGRlY2xhcmVkIGhlcmUKaW50IHJ0ZV9ldGhf eHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6Mzc6IGVycm9yOiB0b28gZmV3IGFy Z3VtZW50cyB0byBmdW5jdGlvbiBjYWxsLCBleHBlY3RlZCA0LCBoYXZlIDMKICAgICAgICAgICAg ICAgICAgICAgICAgcG9ydF9pZCwgeHN0YXRzX25hbWVzLCBjbnRfeHN0YXRzKSkgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWNsYW5nL2lu Y2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6MTogbm90ZTogJ3J0ZV9ldGhfeHN0YXRzX2dldF9uYW1l cycgZGVjbGFyZWQgaGVyZQppbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9y dF9pZCwKXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOjMwNDo2NjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIGNhbGwsIGV4 cGVjdGVkIDQsIGhhdmUgMwogICAgICAgIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhfeHN0YXRz X2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcv aW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MToxOiBub3RlOiAncnRlX2V0aF94c3RhdHNfZ2V0JyBk ZWNsYXJlZCBoZXJlCmludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50 NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLApeCjMgZXJyb3JzIGdlbmVyYXRlZC4KCgpGYWls ZWQgQnVpbGQgIzE3OgpPUzogQ2VudE9TN182NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjLXNoYXJlZAoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBt ZC9jb25maWcuYzogSW4gZnVuY3Rpb24g4oCYbmljX3hzdGF0c19kaXNwbGF54oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI3ODoyOiBlcnJv cjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V0X25h bWVz4oCZCiAgY250X3hzdGF0cyA9IHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lcyhwb3J0X2lkLCBO VUxMLCAwKTsKICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYu aDoyNDk0OjU6IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXRfbmFt ZXModWludDhfdCBwb3J0X2lkLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6NDogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMyBv ZiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkgbWFrZXMgcG9pbnRlciBmcm9tIGludGVn ZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3JdCiAgICBwb3J0X2lkLCB4c3RhdHNfbmFtZXMsIGNu dF94c3RhdHMpKSB7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9l dGhkZXYuaDoyNDk0OjU6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ2NF90ICrigJkgYnV0IGFyZ3Vt ZW50IGlzIG9mIHR5cGUg4oCYaW504oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVp bnQ4X3QgcG9ydF9pZCwKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAv dGVzdC1wbWQvY29uZmlnLmM6MjkxOjQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5j dGlvbiDigJhydGVfZXRoX3hzdGF0c19nZXRfbmFtZXPigJkKICAgIHBvcnRfaWQsIHhzdGF0c19u YW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhf eHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJvcjogcGFzc2lu ZyBhcmd1bWVudCAyIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBmcm9tIGluY29tcGF0aWJs ZSBwb2ludGVyIHR5cGUgWy1XZXJyb3JdCiAgaWYgKGNudF94c3RhdHMgIT0gcnRlX2V0aF94c3Rh dHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsKICBeCkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6IG5vdGU6IGV4cGVjdGVkIOKA mHVpbnQ2NF90ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYc3RydWN0IHJ0ZV9ldGhf eHN0YXQgKuKAmQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2 NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJvcjogcGFzc2luZyBhcmd1 bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmSBtYWtlcyBwb2ludGVyIGZyb20gaW50 ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcl0KICBpZiAoY250X3hzdGF0cyAhPSBydGVfZXRo X3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewogIF4KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQv Y29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90ZTogZXhwZWN0 ZWQg4oCYdWludDY0X3QgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGlu dCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50 NjRfdCAqdmFsdWVzLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90 ZXN0LXBtZC9jb25maWcuYzozMDQ6MjogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0 aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldOKAmQogIGlmIChjbnRfeHN0YXRzICE9IHJ0ZV9ldGhf eHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7CiAgXgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9j b25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2 ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1OiBub3RlOiBkZWNsYXJl ZCBoZXJlCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3QgcG9ydF9pZCwgdWludDY0X3Qg KmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRy ZWF0ZWQgYXMgZXJyb3JzCgoKRmFpbGVkIEJ1aWxkICMxODoKT1M6IENlbnRPUzdfNjQKVGFyZ2V0 OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBJbiBmdW5jdGlvbiDigJhuaWNfeHN0YXRzX2Rpc3Bs YXnigJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmln LmM6Mjc4OjI6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhydGVfZXRo X3hzdGF0c19nZXRfbmFtZXPigJkKICBjbnRfeHN0YXRzID0gcnRlX2V0aF94c3RhdHNfZ2V0X25h bWVzKHBvcnRfaWQsIE5VTEwsIDApOwogIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1 ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogaW50IHJ0ZV9ldGhf eHN0YXRzX2dldF9uYW1lcyh1aW50OF90IHBvcnRfaWQsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjI5MTo0OiBlcnJvcjogcGFzc2lu ZyBhcmd1bWVudCAzIG9mIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmSBtYWtlcyBwb2lu dGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbLVdlcnJvcl0KICAgIHBvcnRfaWQsIHhz dGF0c19uYW1lcywgY250X3hzdGF0cykpIHsKICAgIF4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6OTI6MDoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2Nj L2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0OTQ6NTogbm90ZTogZXhwZWN0ZWQg4oCYdWludDY0X3Qg KuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhpbnTigJkKIGludCBydGVfZXRoX3hzdGF0 c19nZXRfbmFtZXModWludDhfdCBwb3J0X2lkLAogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcuYzoyOTE6NDogZXJyb3I6IHRvbyBmZXcgYXJn dW1lbnRzIHRvIGZ1bmN0aW9uIOKAmHJ0ZV9ldGhfeHN0YXRzX2dldF9uYW1lc+KAmQogICAgcG9y dF9pZCwgeHN0YXRzX25hbWVzLCBjbnRfeHN0YXRzKSkgewogICAgXgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2FwcC90ZXN0LXBtZC9jb25maWcu Yzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24veDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ5NDo1OiBub3RlOiBkZWNsYXJlZCBoZXJl CiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0X25hbWVzKHVpbnQ4X3QgcG9ydF9pZCwKICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjI6 IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIGZy b20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KICBpZiAoY250X3hzdGF0cyAh PSBydGVfZXRoX3hzdGF0c19nZXQocG9ydF9pZCwgeHN0YXRzLCBjbnRfeHN0YXRzKSkgewogIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAv dGVzdC1wbWQvY29uZmlnLmM6OTI6MDoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL3g4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2luY2x1ZGUvcnRlX2V0aGRldi5oOjI0NDE6NTogbm90 ZTogZXhwZWN0ZWQg4oCYdWludDY0X3QgKuKAmSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJhz dHJ1Y3QgcnRlX2V0aF94c3RhdCAq4oCZCiBpbnQgcnRlX2V0aF94c3RhdHNfZ2V0KHVpbnQ4X3Qg cG9ydF9pZCwgdWludDY0X3QgKmlkcywgdWludDY0X3QgKnZhbHVlcywKICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9hcHAvdGVzdC1wbWQvY29uZmlnLmM6MzA0OjI6IGVycm9y OiBwYXNzaW5nIGFyZ3VtZW50IDMgb2Yg4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZIG1ha2VzIHBv aW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yXQogIGlmIChjbnRfeHN0 YXRzICE9IHJ0ZV9ldGhfeHN0YXRzX2dldChwb3J0X2lkLCB4c3RhdHMsIGNudF94c3RhdHMpKSB7 CiAgXgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2FwcC90ZXN0LXBtZC9jb25maWcuYzo5MjowOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MvaW5jbHVkZS9ydGVfZXRoZGV2Lmg6MjQ0MTo1 OiBub3RlOiBleHBlY3RlZCDigJh1aW50NjRfdCAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBl IOKAmGludOKAmQogaW50IHJ0ZV9ldGhfeHN0YXRzX2dldCh1aW50OF90IHBvcnRfaWQsIHVpbnQ2 NF90ICppZHMsIHVpbnQ2NF90ICp2YWx1ZXMsCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjMwNDoyOiBlcnJvcjogdG9vIGZldyBhcmd1 bWVudHMgdG8gZnVuY3Rpb24g4oCYcnRlX2V0aF94c3RhdHNfZ2V04oCZCiAgaWYgKGNudF94c3Rh dHMgIT0gcnRlX2V0aF94c3RhdHNfZ2V0KHBvcnRfaWQsIHhzdGF0cywgY250X3hzdGF0cykpIHsK ICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v YXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjkyOjA6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9pbmNsdWRlL3J0ZV9ldGhkZXYuaDoyNDQxOjU6 IG5vdGU6IGRlY2xhcmVkIGhlcmUKIGludCBydGVfZXRoX3hzdGF0c19nZXQodWludDhfdCBwb3J0 X2lkLCB1aW50NjRfdCAqaWRzLCB1aW50NjRfdCAqdmFsdWVzLAogICAgIF4KY2MxOiBhbGwgd2Fy bmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpEUERLIFNUViB0ZWFtCg== --===============2763260810604692928==--