From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id YKYiGPNeXGdEiRUAWB0awg (envelope-from ) for ; Fri, 13 Dec 2024 11:21:07 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=L4eppQ18; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 5E3F91E097; Fri, 13 Dec 2024 11:21:07 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 43BF31E091 for ; Fri, 13 Dec 2024 11:21:05 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 53E013858282 for ; Fri, 13 Dec 2024 16:20:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 53E013858282 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=L4eppQ18 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by sourceware.org (Postfix) with ESMTPS id BC29E3858C53 for ; Fri, 13 Dec 2024 16:01:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BC29E3858C53 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BC29E3858C53 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.16 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105695; cv=none; b=pqOKY491EQAsX9shktUEVHAP4sMm0+WZUU8IPMgKZtwYhktWtuOJ3KIdY1QvsZd4O219E5om5Md0cmfOeu5zjtfX9KoJiqB2bQiGxPhOjs9D3swa6Ec+w98LTgy8PV8h052Jyix43WYSJ+jvz49i+2AnCh8KebC80W2LeyHErwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105695; c=relaxed/simple; bh=AbU/KL98bWOBiozn24lIHJ9UWM+DR5UjhhISKPCs3ew=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=F5tEjJQ8GI7MSDONFN03bAHOPM4m4NnFCfm/xqI8Rx7q60UpBx45NVnPzdt5giWXBUegyw3PR/gzI8GD7eazS2kDxn1wdlAvF5mEpguzezKbM1Vjoq6WVfUEVPUoRwG1OL5iLdq4AIzzqRgDbQSt3eieJgWQVm098RtFOOf7WLE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BC29E3858C53 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1734105695; x=1765641695; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=AbU/KL98bWOBiozn24lIHJ9UWM+DR5UjhhISKPCs3ew=; b=L4eppQ18kAze/2WfqMWVPi4N9p3CdwQ0j86kkZO+TmgGX90K848wmOOR ROhBSvxikn+G1RbXknr+vKHkZQiPaJdSNZpmoC5MIrwJMSrehsvn5fb2G vSsxOOCoSz4OZn8HbI6lUV1N8b+yAOAbLP/gJb/3n/T7FHk2PlaK2LElc 3yuNCiEjfEeKzB8dKsPLkohjLBBRJdI14uh5Xx6zEZnABzIvFTgPsHUKu qtdEV9akc3Ft5XSBH4mZUeJA3HGS09SuLMZDTmXbFP4ObOXMQtACdtbe2 +SKGALzo1+Z8JTmfoBykkLfq+vBmPaMrA9SbgCBU4Mz9ohOoDJpRhU9ab g==; X-CSE-ConnectionGUID: 1orSuZaWTFWNLdiw86WHPA== X-CSE-MsgGUID: lOIXzHW8SDeyl3HrSuvctA== X-IronPort-AV: E=McAfee;i="6700,10204,11285"; a="22149480" X-IronPort-AV: E=Sophos;i="6.12,231,1728975600"; d="scan'208";a="22149480" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2024 08:01:34 -0800 X-CSE-ConnectionGUID: V/YJH4hFSlewg0GPc5XzPA== X-CSE-MsgGUID: YpUI5MOcRNGOLDhv8c/9Lw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,231,1728975600"; d="scan'208";a="101412013" Received: from gkldtt-dev-004.igk.intel.com (HELO localhost) ([10.123.221.202]) by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2024 08:01:32 -0800 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org, Markus Metzger Subject: [PATCH v2 08/47] gdb, intelgt: add disassemble feature for the Intel GT architecture. Date: Fri, 13 Dec 2024 16:59:25 +0100 Message-Id: <20241213-upstream-intelgt-mvp-v2-8-5c4caeb7b33d@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241213-upstream-intelgt-mvp-v2-0-5c4caeb7b33d@intel.com> References: <20241213-upstream-intelgt-mvp-v2-0-5c4caeb7b33d@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org RnJvbTogQWxiZXJ0YW5vIENhcnVzbyA8YWxiZXJ0YW5vLmNhcnVzb0BpbnRlbC5jb20+CgpEaXNh c3NlbWJseSBvZiBJbnRlbCBHVCBwcm9ncmFtcyBpcyBkb25lIHZpYSB0aGUgSW50ZWwgR2VuIEFz c2VtYmxlcgpsaWJyYXJ5LiAgQWRkIHRoaXMgbGlicmFyeSBhcyBhbiBvcHRpb25hbCBkZXBlbmRl bmN5LiAgSWYgdGhlIGxpYnJhcnkKaXMgbm90IGZvdW5kLCBkaXNhc3NlbWJseSBpcyBkaXNhYmxl ZC4KLS0tCiBnZGIvTWFrZWZpbGUuaW4gICAgICAgIHwgICA2ICstCiBnZGIvY29uZmlnLmluICAg ICAgICAgIHwgICAzICsKIGdkYi9jb25maWd1cmUgICAgICAgICAgfCA1MzcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZ2RiL2NvbmZpZ3VyZS5hYyAg ICAgICB8ICA0MCArKysrCiBnZGIvZGlzYXNtLXNlbGZ0ZXN0cy5jIHwgICA0ICsKIGdkYi9pbnRl bGd0LXRkZXAuYyAgICAgfCAxMTUgKysrKysrKysrKy0KIGdkYi90b3AuYyAgICAgICAgICAgICAg fCAgMTAgKwogNyBmaWxlcyBjaGFuZ2VkLCA3MTEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KaW5kZXgg MDUyODBjNzc4N2U0NjdiMmNiN2IwNjNkODkzYjFjMzk0YjUwNmMxMi4uOTZiM2FiZjljZDc2ZGIz YmM5OWQ5YjRiNzk0NGQ1MWYwODExYThlNyAxMDA2NDQKLS0tIGEvZ2RiL01ha2VmaWxlLmluCisr KyBiL2dkYi9NYWtlZmlsZS5pbgpAQCAtMjUwLDYgKzI1MCwxMCBAQCBDT0RFU0lHTl9DRVJUID0g QENPREVTSUdOX0NFUlRACiAjIEZsYWdzIHRvIHBhc3MgdG8gZ2RiIHdoZW4gaW52b2tlZCB3aXRo ICJtYWtlIHJ1biIuCiBHREJGTEFHUyA9CiAKKyMgV2hlcmUgaXMgbGliaWdhIChpLmUuICB0aGUg ZGlzYXNzZW1ibGVyIGxpYiBmb3IgdGhlIGludGVsZ3QgdGFyZ2V0KT8KKyMgVGhpcyB3aWxsIGJl IGVtcHR5IGlmIGxpYmlnYSB3YXMgbm90IGF2YWlsYWJsZS4KK0xJQklHQSA9IEBMSUJJR0E2NEAK KwogIyBIZWxwZXIgY29kZSBmcm9tIGdudWxpYi4KIEdOVUxJQl9QQVJFTlRfRElSID0gLi4KIGlu Y2x1ZGUgJChHTlVMSUJfUEFSRU5UX0RJUikvZ251bGliL01ha2VmaWxlLmdudWxpYi5pbmMKQEAg LTY4MCw3ICs2ODQsNyBAQCBDTElCUyA9ICQoU0lNKSAkKFJFQURMSU5FKSAkKE9QQ09ERVMpICQo TElCQ1RGKSAkKEJGRCkgJChaTElCKSAkKFpTVERfTElCUykgXAogCSQoTElCRVhQQVQpICQoTElC TFpNQSkgJChMSUJCQUJFTFRSQUNFKSAkKExJQklQVCkgXAogCSQoV0lOMzJMSUJTKSAkKExJQkdO VSkgJChMSUJHTlVfRVhUUkFfTElCUykgJChMSUJJQ09OVikgXAogCSQoR01QTElCUykgJChTUkNI SUdIX0xJQlMpICQoTElCWFhIQVNIKSAkKFBUSFJFQURfTElCUykgXAotCSQoREVCVUdJTkZPRF9M SUJTKSAkKExJQkJBQkVMVFJBQ0VfTElCKQorCSQoREVCVUdJTkZPRF9MSUJTKSAkKExJQkJBQkVM VFJBQ0VfTElCKSAkKExJQklHQSkKIENERVBTID0gJChOQVRfQ0RFUFMpICQoU0lNKSAkKEJGRCkg JChSRUFETElORV9ERVBTKSAkKENURl9ERVBTKSBcCiAJJChPUENPREVTKSAkKElOVExfREVQUykg JChMSUJJQkVSVFkpICQoQ09ORklHX0RFUFMpICQoTElCR05VKSBcCiAJJChMSUJTVVBQT1JUKQpk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9jb25maWcuaW4KaW5kZXggZGI2M2FlYWVj NzVhNjk1NzNkMjFlYzVkYTEwMmViNDIyZTU4ZTllOC4uYzQyNzU1MjM0ZGM3YTEyZTVmOTQyYjJl ZTJkMzdkODE5MGViYjhhMiAxMDA2NDQKLS0tIGEvZ2RiL2NvbmZpZy5pbgorKysgYi9nZGIvY29u ZmlnLmluCkBAIC0yNzEsNiArMjcxLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBgbGliaWNvbnZsaXN0JyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0xJQklDT05WTElTVAog CisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlnYTY0IGxpYnJhcnkuICovCisjdW5kZWYgSEFW RV9MSUJJR0E2NAorCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlwdCBsaWJyYXJ5LiAqLwog I3VuZGVmIEhBVkVfTElCSVBUCiAKZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29u ZmlndXJlCmluZGV4IGRlNzUwZjRmYWZlZTY0OTAwZmMxYTZkNGExZDhhZWQyZWFkNzM2NTcuLmYy YmUzOTBjN2Q3OTJkZDRiZmRlNDUzMzdiNTFmOTNmMDcyYWViNDEgMTAwNzU1Ci0tLSBhL2dkYi9j b25maWd1cmUKKysrIGIvZ2RiL2NvbmZpZ3VyZQpAQCAtNzE0LDYgKzcxNCw5IEBAIFNZU1RFTV9H REJJTklUCiBUQVJHRVRfU1lTVEVNX1JPT1QKIENPTkZJR19MREZMQUdTCiBSRFlOQU1JQworTFRM SUJJR0E2NAorTElCSUdBNjQKK0hBVkVfTElCSUdBNjQKIFNSQ0hJR0hfQ0ZMQUdTCiBTUkNISUdI X0xJQlMKIEhBVkVfR1VJTEVfRkFMU0UKQEAgLTk1Niw2ICs5NTksOCBAQCB3aXRoX3B5dGhvbgog d2l0aF9weXRob25fbGliZGlyCiB3aXRoX2d1aWxlCiBlbmFibGVfc291cmNlX2hpZ2hsaWdodAor d2l0aF9saWJpZ2E2NF9wcmVmaXgKK3dpdGhfbGliaWdhNjRfdHlwZQogd2l0aF9zeXNyb290CiB3 aXRoX3N5c3RlbV9nZGJpbml0CiB3aXRoX3N5c3RlbV9nZGJpbml0X2RpcgpAQCAtMTcyOCw2ICsx NzMzLDkgQEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl YXJjaCBmb3IgcHl0aG9uJ3MgbGlicmFyaWVzIGluIERJUgogICAtLXdpdGgtZ3VpbGVbPUdVSUxF XSAgICBpbmNsdWRlIGd1aWxlIHN1cHBvcnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF1 dG8veWVzL25vLzxndWlsZS12ZXJzaW9uPi88cGtnLWNvbmZpZy1wcm9ncmFtPikKKyAgLS13aXRo LWxpYmlnYTY0LXByZWZpeFs9RElSXSAgc2VhcmNoIGZvciBsaWJpZ2E2NCBpbiBESVIvaW5jbHVk ZSBhbmQgRElSL2xpYgorICAtLXdpdGhvdXQtbGliaWdhNjQtcHJlZml4ICAgICBkb24ndCBzZWFy Y2ggZm9yIGxpYmlnYTY0IGluIGluY2x1ZGVkaXIgYW5kIGxpYmRpcgorICAtLXdpdGgtbGliaWdh NjQtdHlwZT1UWVBFICAgICB0eXBlIG9mIGxpYnJhcnkgdG8gc2VhcmNoIGZvciAoYXV0by9zdGF0 aWMvc2hhcmVkKQogICAtLXdpdGgtc3lzcm9vdFs9RElSXSAgICBzZWFyY2ggZm9yIHVzci9saWIg ZXQgYWwgd2l0aGluIERJUgogICAtLXdpdGgtc3lzdGVtLWdkYmluaXQ9UEFUSAogICAgICAgICAg ICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGxvYWQgYSBzeXN0ZW0td2lkZSBnZGJpbml0 IGZpbGUKQEAgLTExNDk5LDcgKzExNTA3LDcgQEAgZWxzZQogICBsdF9kbHVua25vd249MDsgbHRf ZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCiAgIGx0X3N0YXR1cz0kbHRfZGx1bmtu b3duCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0jbGluZSAxMTUwMiAiY29u ZmlndXJlIgorI2xpbmUgMTE1MTAgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgog CiAjaWYgSEFWRV9ETEZDTl9ICkBAIC0xMTYwNSw3ICsxMTYxMyw3IEBAIGVsc2UKICAgbHRfZGx1 bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9zdGF0 dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotI2xp bmUgMTE2MDggImNvbmZpZ3VyZSIKKyNsaW5lIDExNjE2ICJjb25maWd1cmUiCiAjaW5jbHVkZSAi Y29uZmRlZnMuaCIKIAogI2lmIEhBVkVfRExGQ05fSApAQCAtMjkwNzEsNiArMjkwNzksNTMxIEBA IGZpCiAKIAogCisjIENoZWNrIGZvciBJbnRlbChSKSBHcmFwaGljcyBUZWNobm9sb2d5IGFzc2Vt YmxlciBsaWJyYXJ5CithY19leHQ9Y3BwCithY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorCisKKworCisKKworCisKKworICAgIHVzZV9hZGRpdGlv bmFsPXllcworCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNsX2Zp bmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZXhl Y19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisKKyAgICBldmFsIGFkZGl0aW9uYWxf aW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwi JGxpYmRpclwiCisKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJl Zml4PSIkYWNsX3NhdmVfcHJlZml4IgorCisKKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbGliaWdh NjQtcHJlZml4IHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9saWJpZ2E2NF9wcmVmaXgrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2xpYmlnYTY0X3ByZWZpeDsKKyAgICBp ZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlhubyI7IHRoZW4KKyAgICAgIHVzZV9hZGRpdGlvbmFsPW5v CisgICAgZWxzZQorICAgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9ICJYIjsgdGhlbgorCisgIGFj bF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAg YWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xf ZmluYWxfZXhlY19wcmVmaXgiCisKKyAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfaW5jbHVkZWRp cj1cIiRpbmNsdWRlZGlyXCIKKyAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwiJGxp YmRpclwiCisKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4 PSIkYWNsX3NhdmVfcHJlZml4IgorCisgICAgICBlbHNlCisgICAgICAgIGFkZGl0aW9uYWxfaW5j bHVkZWRpcj0iJHdpdGh2YWwvaW5jbHVkZSIKKyAgICAgICAgYWRkaXRpb25hbF9saWJkaXI9IiR3 aXRodmFsL2xpYiIKKyAgICAgIGZpCisgICAgZmkKKworZmkKKworCisjIENoZWNrIHdoZXRoZXIg LS13aXRoLWxpYmlnYTY0LXR5cGUgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX2xpYmlnYTY0 X3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2xpYmlnYTY0X3R5cGU7 ICB3aXRoX2xpYmlnYTY0X3R5cGU9JHdpdGh2YWwKK2Vsc2UKKyAgIHdpdGhfbGliaWdhNjRfdHlw ZT1hdXRvCitmaQorCisgIGxpYl90eXBlPWBldmFsIGVjaG8gXCR3aXRoX2xpYmlnYTY0X3R5cGVg CisKKyAgICAgIExJQklHQTY0PQorICBMVExJQklHQTY0PQorICBJTkNJR0E2ND0KKyAgcnBhdGhk aXJzPQorICBsdHJwYXRoZGlycz0KKyAgbmFtZXNfYWxyZWFkeV9oYW5kbGVkPQorICBuYW1lc19u ZXh0X3JvdW5kPSdpZ2E2NCAnCisgIHdoaWxlIHRlc3QgLW4gIiRuYW1lc19uZXh0X3JvdW5kIjsg ZG8KKyAgICBuYW1lc190aGlzX3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCIKKyAgICBuYW1lc19u ZXh0X3JvdW5kPQorICAgIGZvciBuYW1lIGluICRuYW1lc190aGlzX3JvdW5kOyBkbworICAgICAg YWxyZWFkeV9oYW5kbGVkPQorICAgICAgZm9yIG4gaW4gJG5hbWVzX2FscmVhZHlfaGFuZGxlZDsg ZG8KKyAgICAgICAgaWYgdGVzdCAiJG4iID0gIiRuYW1lIjsgdGhlbgorICAgICAgICAgIGFscmVh ZHlfaGFuZGxlZD15ZXMKKyAgICAgICAgICBicmVhaworICAgICAgICBmaQorICAgICAgZG9uZQor ICAgICAgaWYgdGVzdCAteiAiJGFscmVhZHlfaGFuZGxlZCI7IHRoZW4KKyAgICAgICAgbmFtZXNf YWxyZWFkeV9oYW5kbGVkPSIkbmFtZXNfYWxyZWFkeV9oYW5kbGVkICRuYW1lIgorICAgICAgICAg ICAgICAgICAgICAgICAgdXBwZXJuYW1lPWBlY2hvICIkbmFtZSIgfCBzZWQgLWUgJ3l8YWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXouLy18QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfX198J2AK KyAgICAgICAgZXZhbCB2YWx1ZT1cIlwkSEFWRV9MSUIkdXBwZXJuYW1lXCIKKyAgICAgICAgaWYg dGVzdCAtbiAiJHZhbHVlIjsgdGhlbgorICAgICAgICAgIGlmIHRlc3QgIiR2YWx1ZSIgPSB5ZXM7 IHRoZW4KKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExJQiR1cHBlcm5hbWVcIgorICAgICAg ICAgICAgdGVzdCAteiAiJHZhbHVlIiB8fCBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0 OisgfSR2YWx1ZSIKKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExUTElCJHVwcGVybmFtZVwi CisgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExUTElCSUdBNjQ9IiR7TFRMSUJJR0E2 NH0ke0xUTElCSUdBNjQ6KyB9JHZhbHVlIgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDoKKyAgICAgICAgICBmaQorICAgICAgICBlbHNlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9kaXI9CisgICAgICAgICAgZm91bmRfbGE9 CisgICAgICAgICAgZm91bmRfc289CisgICAgICAgICAgZm91bmRfYT0KKyAgICAgICAgICBpZiB0 ZXN0ICR1c2VfYWRkaXRpb25hbCA9IHllczsgdGhlbgorICAgICAgICAgICAgaWYgdGVzdCAtbiAi JHNobGliZXh0IiAmJiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJHNobGli ZXh0IiAmJiB0ZXN0IHgkbGliX3R5cGUgIT0geHN0YXRpYzsgdGhlbgorICAgICAgICAgICAgICBm b3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICAgICAgZm91bmRfc289IiRh ZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kc2hsaWJleHQiCisgICAgICAgICAgICAgIGlmIHRl c3QgLWYgIiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSI7IHRoZW4KKyAgICAgICAgICAg ICAgICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAg ICAgICBmaQorICAgICAgICAgICAgZWxpZiB0ZXN0IHgkbGliX3R5cGUgIT0geHNoYXJlZDsgdGhl bgorICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUu JGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgICBmb3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xp YmRpciIKKyAgICAgICAgICAgICAgICBmb3VuZF9hPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5h bWUuJGxpYmV4dCIKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJk aXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgICBmb3VuZF9sYT0iJGFkZGl0 aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAg ICAgIGZpCisgICAgICAgICAgICBmaQorICAgICAgICAgIGZpCisgICAgICAgICAgaWYgdGVzdCAi WCRmb3VuZF9kaXIiID0gIlgiOyB0aGVuCisgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAk TFRMSUJJR0E2NDsgZG8KKworICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCisgIHByZWZpeD0i JGFjbF9maW5hbF9wcmVmaXgiCisgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgi CisgIGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgorICBldmFsIHg9XCIkeFwi CisgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisgIHByZWZpeD0iJGFjbF9z YXZlX3ByZWZpeCIKKworICAgICAgICAgICAgICBjYXNlICIkeCIgaW4KKyAgICAgICAgICAgICAg ICAtTCopCisgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgt TC8vJ2AKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVzdCAt ZiAiJGRpci9saWIkbmFtZS4kc2hsaWJleHQiICYmIHRlc3QgeCRsaWJfdHlwZSAhPSB4c3RhdGlj OyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0iJGRpciIKKyAgICAgICAgICAg ICAgICAgICAgZm91bmRfc289IiRkaXIvbGliJG5hbWUuJHNobGliZXh0IgorICAgICAgICAgICAg ICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgIGZvdW5kX2xhPSIkZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAgICAgICAg ICBmaQorICAgICAgICAgICAgICAgICAgZWxpZiB0ZXN0IHgkbGliX3R5cGUgIT0geHNoYXJlZDsg dGhlbgorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLiRsaWJl eHQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgorICAgICAg ICAgICAgICAgICAgICAgIGZvdW5kX2E9IiRkaXIvbGliJG5hbWUuJGxpYmV4dCIKKyAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorICAgICAg ICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCisgICAgICAgICAg ICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAg IGZpCisgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAg ICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KKyAgICAgICAgICAgICAgICBi cmVhaworICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG9uZQorICAgICAgICAgIGZpCisg ICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgTFRMSUJJR0E2ND0iJHtMVExJQklHQTY0fSR7TFRMSUJJR0E2NDorIH0tTCRm b3VuZF9kaXIgLWwkbmFtZSIKKyAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfc28iICE9ICJY IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiA9IG5vIHx8IHRlc3QgIlgkZm91bmRfZGly IiA9ICJYL3Vzci9saWIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJ QklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9JGZvdW5kX3NvIgorICAgICAgICAgICAg ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICBm b3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgi ID0gIlgkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisg ICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAg ICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgor ICAgICAgICAgICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZm91bmRfZGlyIgor ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJ QklHQTY0OisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg ICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgJiYgdGVzdCAiJGhh cmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7TElC SUdBNjQ6KyB9JGZvdW5kX3NvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICBmb3Ig eCBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIg PSAiWCRmb3VuZF9kaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVz CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAt eiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBycGF0aGRpcnM9IiRycGF0 aGRpcnMgJGZvdW5kX2RpciIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAg ICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTElCSUdBNjQ7IGRvCisKKyAgYWNsX3NhdmVfcHJlZml4 PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVj X3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3By ZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJl Zml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKyAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRmb3VuZF9kaXIiOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAg ICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfS1MJGZvdW5kX2RpciIKKyAgICAg ICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0wiICE9IG5vOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElC SUdBNjQ9IiR7TElCSUdBNjR9JHtMSUJJR0E2NDorIH0kZm91bmRfc28iCisgICAgICAgICAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9JHtMSUJJR0E2NDorIH0tbCRu YW1lIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQorICAgICAg ICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2EiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfSRmb3Vu ZF9hIgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfS1MJGZv dW5kX2RpciAtbCRuYW1lIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0KKyAgICAgICAgICAgIGNh c2UgIiRmb3VuZF9kaXIiIGluCisgICAgICAgICAgICAgICovbGliIHwgKi9saWIvKQorICAgICAg ICAgICAgICAgIGJhc2VkaXI9YGVjaG8gIlgkZm91bmRfZGlyIiB8IHNlZCAtZSAncyxeWCwsJyAt ZSAncywvbGliLyokLCwnYAorICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0i JGJhc2VkaXIvaW5jbHVkZSIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgZXNhYwor ICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiICE9ICJYIjsgdGhl bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWC91c3IvaW5jbHVkZSI7IHRo ZW4KKyAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRh ZGRpdGlvbmFsX2luY2x1ZGVkaXIiID0gIlgvdXNyL2xvY2FsL2luY2x1ZGUiOyB0aGVuCisgICAg ICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgorICAgICAgICAgICAgICAgICAg ICBjYXNlICRob3N0X29zIGluCisgICAgICAgICAgICAgICAgICAgICAgbGludXgqKSBoYXZlaXQ9 eWVzOzsKKyAgICAgICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICAgICAgZmkKKyAg ICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0 aGVuCisgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkQ1BQRkxBR1MgJElOQ0lHQTY0OyBkbwor CisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZp eCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9 IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisgIGV2YWwgeD1cIiR4XCIKKyAgZXhlY19wcmVmaXg9 IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorCisg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1JJGFkZGl0aW9uYWxfaW5jbHVk ZWRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAg ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAg ICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0 aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOQ0lHQTY0 PSIke0lOQ0lHQTY0fSR7SU5DSUdBNjQ6KyB9LUkkYWRkaXRpb25hbF9pbmNsdWRlZGlyIgorICAg ICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAg ICBmaQorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGlmIHRlc3QgLW4gIiRmb3VuZF9sYSI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZV9saWJkaXI9IiRsaWJkaXIi CisgICAgICAgICAgICAgIGNhc2UgIiRmb3VuZF9sYSIgaW4KKyAgICAgICAgICAgICAgICAqLyog fCAqXFwqKSAuICIkZm91bmRfbGEiIDs7CisgICAgICAgICAgICAgICAgKikgLiAiLi8kZm91bmRf bGEiIDs7CisgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgbGliZGlyPSIkc2F2ZV9s aWJkaXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRlcCBpbiAkZGVwZW5kZW5j eV9saWJzOyBkbworICAgICAgICAgICAgICAgIGNhc2UgIiRkZXAiIGluCisgICAgICAgICAgICAg ICAgICAtTCopCisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPWBlY2hvICJY JGRlcCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfbGliZGlyIiAhPSAiWC91c3Iv bGliIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAg ICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfbGliZGlyIiA9ICJYL3Vzci9sb2NhbC9saWIi OyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgor ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGludXgqKSBoYXZlaXQ9eWVzOzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgZXNhYworICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAg ICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVu CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgeCBpbiAkTERGTEFHUyAkTElCSUdBNjQ7IGRvCisKKyAgYWNsX3NhdmVfcHJlZml4PSIk cHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVjX3By ZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZp eCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4 IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAg ICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0 IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25h bF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9LUwkYWRk aXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAg ICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCSUdBNjQ7IGRvCisKKyAg YWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4Igor ICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFj bF9maW5hbF9leGVjX3ByZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0iJGFj bF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJk aXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBp ZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUTElCSUdBNjQ9IiR7TFRMSUJJR0E2 NH0ke0xUTElCSUdBNjQ6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAg ICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIDs7 CisgICAgICAgICAgICAgICAgICAtUiopCisgICAgICAgICAgICAgICAgICAgIGRpcj1gZWNobyAi WCRkZXAiIHwgc2VkIC1lICdzL15YLVIvLydgCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg IiRlbmFibGVfcnBhdGgiICE9IG5vOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAg ICAgICAgICAgICAgZm9yIHggaW4gJHJwYXRoZGlyczsgZG8KKyAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAg ICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICBycGF0aGRpcnM9IiRycGF0aGRpcnMgJGRpciIKKyAgICAgICAgICAgICAgICAgICAg ICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRs dHJwYXRoZGlyczsgZG8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAi WCRkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisg ICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBsdHJwYXRoZGlycz0i JGx0cnBhdGhkaXJzICRkaXIiCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgIC1s KikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19uZXh0X3Jv dW5kPSIkbmFtZXNfbmV4dF9yb3VuZCAiYGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9eWC1sLy8n YAorICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgICAgKi5sYSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZXNfbmV4dF9yb3VuZD0iJG5hbWVzX25leHRfcm91bmQgImBl Y2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MsXlguKi8sLCcgLWUgJ3MsXmxpYiwsJyAtZSAncyxcLmxh JCwsJ2AKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICopCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9 JHtMSUJJR0E2NDorIH0kZGVwIgorICAgICAgICAgICAgICAgICAgICBMVExJQklHQTY0PSIke0xU TElCSUdBNjR9JHtMVExJQklHQTY0OisgfSRkZXAiCisgICAgICAgICAgICAgICAgICAgIDs7Cisg ICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICBmaQor ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngkbGliX3R5cGUiID0gInhhdXRvIiB8fCB0ZXN0 ICJ4JGxpYl90eXBlIiA9ICJ4c2hhcmVkIjsgdGhlbgorICAgICAgICAgICAgICBMSUJJR0E2ND0i JHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfS1sJG5hbWUiCisgICAgICAgICAgICAgIExUTElCSUdB NjQ9IiR7TFRMSUJJR0E2NH0ke0xUTElCSUdBNjQ6KyB9LWwkbmFtZSIKKyAgICAgICAgICAgIGVs c2UKKyAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9JHtMSUJJR0E2NDorIH0tbDps aWIkbmFtZS4kbGliZXh0IgorICAgICAgICAgICAgICBMVExJQklHQTY0PSIke0xUTElCSUdBNjR9 JHtMVExJQklHQTY0OisgfS1sOmxpYiRuYW1lLiRsaWJleHQiCisgICAgICAgICAgICBmaQorICAg ICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICBmaQorICAgIGRvbmUKKyAgZG9uZQorICBpZiB0 ZXN0ICJYJHJwYXRoZGlycyIgIT0gIlgiOyB0aGVuCisgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBhbGxkaXJz PQorICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICBhbGxkaXJz PSIke2FsbGRpcnN9JHthbGxkaXJzOiskaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcn0kZm91bmRf ZGlyIgorICAgICAgZG9uZQorICAgICAgICAgICAgYWNsX3NhdmVfbGliZGlyPSIkbGliZGlyIgor ICAgICAgbGliZGlyPSIkYWxsZGlycyIKKyAgICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXCIKKyAgICAgIGxpYmRpcj0iJGFjbF9zYXZlX2xpYmRpciIKKyAgICAgIExJ QklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9JGZsYWciCisgICAgZWxzZQorICAgICAg ICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICBhY2xfc2F2ZV9s aWJkaXI9IiRsaWJkaXIiCisgICAgICAgIGxpYmRpcj0iJGZvdW5kX2RpciIKKyAgICAgICAgZXZh bCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgICAgICBsaWJkaXI9IiRh Y2xfc2F2ZV9saWJkaXIiCisgICAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6 KyB9JGZsYWciCisgICAgICBkb25lCisgICAgZmkKKyAgZmkKKyAgaWYgdGVzdCAiWCRsdHJwYXRo ZGlycyIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICBmb3IgZm91bmRfZGlyIGluICRsdHJwYXRo ZGlyczsgZG8KKyAgICAgIExUTElCSUdBNjQ9IiR7TFRMSUJJR0E2NH0ke0xUTElCSUdBNjQ6KyB9 LVIkZm91bmRfZGlyIgorICAgIGRvbmUKKyAgZmkKKworCisgICAgICAgIGFjX3NhdmVfQ1BQRkxB R1M9IiRDUFBGTEFHUyIKKworICBmb3IgZWxlbWVudCBpbiAkSU5DSUdBNjQ7IGRvCisgICAgaGF2 ZWl0PQorICAgIGZvciB4IGluICRDUFBGTEFHUzsgZG8KKworICBhY2xfc2F2ZV9wcmVmaXg9IiRw cmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisgIGFjbF9zYXZlX2V4ZWNfcHJl Zml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4 IgorICBldmFsIHg9XCIkeFwiCisgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgi CisgIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKworICAgICAgaWYgdGVzdCAiWCR4IiA9ICJY JGVsZW1lbnQiOyB0aGVuCisgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgYnJlYWsKKyAgICAg IGZpCisgICAgZG9uZQorICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICBDUFBG TEFHUz0iJHtDUFBGTEFHU30ke0NQUEZMQUdTOisgfSRlbGVtZW50IgorICAgIGZpCisgIGRvbmUK KworCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIGxpYmlnYTY0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsaWJpZ2E2NC4uLiAi ID4mNjsgfQoraWYgJHthY19jdl9saWJpZ2E2NCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CitlbHNlCisKKyAgICBhY19zYXZlX0xJQlM9IiRMSUJTIgorICAg IExJQlM9IiRMSUJTICRMSUJJR0E2NCIKKyAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSAiYXNzZXJ0 LmgiCisgICAjaW5jbHVkZSAiaWdhL2lnYS5oIgoraW50CittYWluICgpCit7CitpZ2FfdmVyc2lv bl9zdHJpbmcoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY3h4X3Ry eV9saW5rICIkTElORU5PIjsgdGhlbiA6CisgIGFjX2N2X2xpYmlnYTY0PXllcworZWxzZQorICBh Y19jdl9saWJpZ2E2ND1ubworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisgICAg TElCUz0iJGFjX3NhdmVfTElCUyIKKworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliaWdhNjQiID4mNQorJGFzX2VjaG8gIiRhY19j dl9saWJpZ2E2NCIgPiY2OyB9CisgIGlmIHRlc3QgIiRhY19jdl9saWJpZ2E2NCIgPSB5ZXM7IHRo ZW4KKyAgICBIQVZFX0xJQklHQTY0PXllcworCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQklH QTY0IDEiID4+Y29uZmRlZnMuaAorCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gbGluayB3aXRoIGxpYmlnYTY0IiA+JjUKKyRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBsaW5rIHdpdGggbGliaWdhNjQuLi4gIiA+JjY7IH0KKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJExJQklH QTY0IiA+JjUKKyRhc19lY2hvICIkTElCSUdBNjQiID4mNjsgfQorICBlbHNlCisgICAgSEFWRV9M SUJJR0E2ND1ubworICAgICAgICAgICAgQ1BQRkxBR1M9IiRhY19zYXZlX0NQUEZMQUdTIgorICAg IExJQklHQTY0PQorICAgIExUTElCSUdBNjQ9CisgIGZpCisKKworCisKKworCithY19leHQ9Ywor YWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19l eGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworaW50ZWxndF90 YXJnZXQ9ZmFsc2UKKworZm9yIHRhcmdfYWxpYXMgaW4gYGVjaG8gJHRhcmdldF9hbGlhcyAkZW5h YmxlX3RhcmdldHMgfCBzZWQgJ3MvLC8gL2cnYAorZG8KKyAgaWYgdGVzdCAiJHRhcmdfYWxpYXMi ID0gImFsbCI7IHRoZW4KKyAgICBpbnRlbGd0X3RhcmdldD10cnVlCisgIGVsc2UKKyAgICBjYXNl ICIkdGFyZ19hbGlhcyIgaW4KKyAgICAgIGludGVsZ3QtKikKKyAgICAgICAgaW50ZWxndF90YXJn ZXQ9dHJ1ZQorICAgICAgICA7OworICAgIGVzYWMKKyAgZmkKK2RvbmUKKworY2FzZSAiJHt0YXJn ZXR9IiBpbgorICBpbnRlbGd0LSopCisgICAgaW50ZWxndF90YXJnZXQ9dHJ1ZQorICAgIDs7Citl c2FjCisKK2lmIHRlc3QgeCR7aW50ZWxndF90YXJnZXR9ID0geHRydWU7IHRoZW4KKyAgaWYgdGVz dCAiJEhBVkVfTElCSUdBNjQiICE9IHllczsgdGhlbgorICAgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogbGliaWdhNjQgaXMgbWlzc2luZyBvciB1bnVz YWJsZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IGxpYmlnYTY0IGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVh dHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KKyAgZmkKK2Vsc2UKKyAgIyBEbyBub3Qg bGluayBsaWJpZ2E2NCBzcHVyaW91c2x5CisgIEhBVkVfTElCSUdBNjQ9bm8KKyAgTElCSUdBNjQ9 CisgIExUTElCSUdBNjQ9CitmaQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyBD aGVja3MgZm9yIGhlYWRlciBmaWxlcy4gICMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj CmRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwppbmRleCAy MzBjMGJlNzljN2M1MWY2NGY3NDhjZmE1YzQ0NmZjMGQ2MmI3NTIwLi5jMmI2ZmFkMDQ4NzZhNTc4 YTRlYTI4YTZhNmYzMGJmNWU1ZDg2ODZmIDEwMDY0NAotLS0gYS9nZGIvY29uZmlndXJlLmFjCisr KyBiL2dkYi9jb25maWd1cmUuYWMKQEAgLTEyODksNiArMTI4OSw0NiBAQCBmaQogQUNfU1VCU1Qo U1JDSElHSF9MSUJTKQogQUNfU1VCU1QoU1JDSElHSF9DRkxBR1MpCiAKKyMgQ2hlY2sgZm9yIElu dGVsKFIpIEdyYXBoaWNzIFRlY2hub2xvZ3kgYXNzZW1ibGVyIGxpYnJhcnkKK0FDX0xBTkdfUFVT SChbQysrXSkKK0FDX0xJQl9IQVZFX0xJTktGTEFHUyhbaWdhNjRdLCBbXSwKKyAgWyNpbmNsdWRl ICJhc3NlcnQuaCIKKyAgICNpbmNsdWRlICJpZ2EvaWdhLmgiXSwKKyAgW2lnYV92ZXJzaW9uX3N0 cmluZygpO10pCitBQ19MQU5HX1BPUChbQysrXSkKKworaW50ZWxndF90YXJnZXQ9ZmFsc2UKKwor Zm9yIHRhcmdfYWxpYXMgaW4gYGVjaG8gJHRhcmdldF9hbGlhcyAkZW5hYmxlX3RhcmdldHMgfCBz ZWQgJ3MvLC8gL2cnYAorZG8KKyAgaWYgdGVzdCAiJHRhcmdfYWxpYXMiID0gImFsbCI7IHRoZW4K KyAgICBpbnRlbGd0X3RhcmdldD10cnVlCisgIGVsc2UKKyAgICBjYXNlICIkdGFyZ19hbGlhcyIg aW4KKyAgICAgIGludGVsZ3QtKikKKyAgICAgICAgaW50ZWxndF90YXJnZXQ9dHJ1ZQorICAgICAg ICA7OworICAgIGVzYWMKKyAgZmkKK2RvbmUKKworY2FzZSAiJHt0YXJnZXR9IiBpbgorICBpbnRl bGd0LSopCisgICAgaW50ZWxndF90YXJnZXQ9dHJ1ZQorICAgIDs7Citlc2FjCisKK2lmIHRlc3Qg eCR7aW50ZWxndF90YXJnZXR9ID0geHRydWU7IHRoZW4KKyAgaWYgdGVzdCAiJEhBVkVfTElCSUdB NjQiICE9IHllczsgdGhlbgorICAgIEFDX01TR19XQVJOKFtsaWJpZ2E2NCBpcyBtaXNzaW5nIG9y IHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS5dKQorICBmaQorZWxz ZQorICAjIERvIG5vdCBsaW5rIGxpYmlnYTY0IHNwdXJpb3VzbHkKKyAgSEFWRV9MSUJJR0E2ND1u bworICBMSUJJR0E2ND0KKyAgTFRMSUJJR0E2ND0KK2ZpCisKICMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjCiAjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzLiAgIwogIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMKZGlmZiAtLWdpdCBhL2dkYi9kaXNhc20tc2VsZnRlc3RzLmMgYi9nZGIv ZGlzYXNtLXNlbGZ0ZXN0cy5jCmluZGV4IDIyMWI5NGYwODUxMzU4Mzc1MTBmYTkwNjIwODI3MDJj NzZjNWM4MDIuLjk0MWMwOWI4NGYxMDcwM2VkOTMyOTE5ZWEyNzkwYjQ2NjgzM2ZmZTggMTAwNjQ0 Ci0tLSBhL2dkYi9kaXNhc20tc2VsZnRlc3RzLmMKKysrIGIvZ2RiL2Rpc2FzbS1zZWxmdGVzdHMu YwpAQCAtMTE1LDYgKzExNSwxMCBAQCBnZXRfdGVzdF9pbnNuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgc2l6ZV90ICpsZW4pCiAJKmxlbiA9IGJwbGVuOwogICAgICAgfQogICAgICAgYnJlYWs7 CisgICAgY2FzZSBiZmRfYXJjaF9pbnRlbGd0OgorICAgICAgLyogVGhlIGludGVsZ3QgYXJjaGl0 ZWN0dXJlIG5lZWRzIHRvIGluaXRpYWxpemUgdGhlIGdkYmFyY2ggd2l0aAorCSBhbiBJR0EgY29u dGV4dCB0byBiZSBhYmxlIHRvIHVzZSB0aGUgZGlzYXNzZW1ibGVyLiAgKi8KKyAgICAgIHJldHVy biBpbnNuOwogICAgIGNhc2UgYmZkX2FyY2hfaTM4NjoKICAgICAgIHsKIAljb25zdCBzdHJ1Y3Qg YmZkX2FyY2hfaW5mbyAqaW5mbyA9IGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAoZ2RiYXJjaCk7CmRp ZmYgLS1naXQgYS9nZGIvaW50ZWxndC10ZGVwLmMgYi9nZGIvaW50ZWxndC10ZGVwLmMKaW5kZXgg NTdjMzU5YmYzNTVjNTc3MWRiMzhiOGQyMTNmNjY4MWEwNDNjMmIzMy4uN2QwYWUzODQ4MGZlODli MTQ1YzFjMjliZTBlNThjOTY0ODBlMzMzNSAxMDA3NTUKLS0tIGEvZ2RiL2ludGVsZ3QtdGRlcC5j CisrKyBiL2dkYi9pbnRlbGd0LXRkZXAuYwpAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJp bmZlcmlvci5oIgogI2luY2x1ZGUgInVzZXItcmVncy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4K KyNpbmNsdWRlICJkaXNhc20uaCIKKyNpZiBkZWZpbmVkIChIQVZFX0xJQklHQTY0KQorI2luY2x1 ZGUgImlnYS9pZ2EuaCIKKyNlbmRpZiAvKiBkZWZpbmVkIChIQVZFX0xJQklHQTY0KSAgKi8KIAog LyogR2xvYmFsIGRlYnVnIGZsYWcuICAqLwogc3RhdGljIGJvb2wgaW50ZWxndF9kZWJ1ZyA9IGZh bHNlOwpAQCAtMTE5LDYgKzEyMywxMSBAQCBzdHJ1Y3QgaW50ZWxndF9nZGJhcmNoX3RkZXAgOiBn ZGJhcmNoX3RkZXBfYmFzZQogICAgIGdkYl9hc3NlcnQgKHJlZ3NldF9yYW5nZXNbaW50ZWxndDo6 UkVHU0VUX0dSRl0uZW5kID4gMSk7CiAgICAgcmV0dXJuIHJlZ3NldF9yYW5nZXNbaW50ZWxndDo6 UkVHU0VUX0dSRl0uZW5kIC0gMTsKICAgfQorCisjaWYgZGVmaW5lZCAoSEFWRV9MSUJJR0E2NCkK KyAgLyogbGliaWdhIGNvbnRleHQgZm9yIGRpc2Fzc2VtYmx5LiAgKi8KKyAgaWdhX2NvbnRleHRf dCBpZ2FfY3R4ID0gbnVsbHB0cjsKKyNlbmRpZgogfTsKIAogLyogVGhlICdyZWdpc3Rlcl90eXBl JyBnZGJhcmNoIG1ldGhvZC4gICovCkBAIC01MTEsMTMgKzUyMCw3NyBAQCBpbnRlbGd0X3N3X2Jy ZWFrcG9pbnRfZnJvbV9raW5kIChnZGJhcmNoICpnZGJhcmNoLCBpbnQga2luZCwgaW50ICpzaXpl KQogICByZXR1cm4gbnVsbHB0cjsKIH0KIAorI2lmIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpCisv KiBNYXAgQ09SRV9BRERSIHRvIHN5bWJvbCBuYW1lcyBmb3IganVtcCBsYWJlbHMgaW4gYW4gSUdB IGRpc2Fzc2VtYmx5LiAgKi8KKworc3RhdGljIGNvbnN0IGNoYXIgKgoraW50ZWxndF9kaXNhc21f c3ltX2NiIChpbnQgYWRkciwgdm9pZCAqY3R4KQoreworICBkaXNhc3NlbWJsZV9pbmZvICppbmZv ID0gKGRpc2Fzc2VtYmxlX2luZm8gKikgY3R4OworICBzeW1ib2wgKnN5bSA9IGZpbmRfcGNfZnVu Y3Rpb24gKGFkZHIgKyAodWludHB0cl90KSBpbmZvLT5wcml2YXRlX2RhdGEpOworICByZXR1cm4g c3ltID8gc3ltLT5saW5rYWdlX25hbWUgKCkgOiBudWxscHRyOworfQorI2VuZGlmIC8qIGRlZmlu ZWQgKEhBVkVfTElCSUdBNjQpICAqLworCiAvKiBQcmludCBvbmUgaW5zdHJ1Y3Rpb24gZnJvbSBN RU1BRERSIG9uIElORk8tPlNUUkVBTS4gICovCiAKIHN0YXRpYyBpbnQKIGludGVsZ3RfcHJpbnRf aW5zbiAoYmZkX3ZtYSBtZW1hZGRyLCBzdHJ1Y3QgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbykKIHsK LSAgLyogRGlzYXNzZW1ibGVyIGlzIHRvIGJlIGFkZGVkIGluIGEgbGF0ZXIgcGF0Y2guICAqLwor ICB1bnNpZ25lZCBpbnQgZnVsbF9sZW5ndGggPSBpbnRlbGd0OjppbnN0X2xlbmd0aF9mdWxsICgp OworICB1bnNpZ25lZCBpbnQgY29tcGFjdF9sZW5ndGggPSBpbnRlbGd0OjppbnN0X2xlbmd0aF9j b21wYWN0ZWQgKCk7CisKKyAgc3RkOjp1bmlxdWVfcHRyPGJmZF9ieXRlW10+IGluc24gKG5ldyBi ZmRfYnl0ZVtmdWxsX2xlbmd0aF0pOworCisgIGludCBzdGF0dXMgPSAoKmluZm8tPnJlYWRfbWVt b3J5X2Z1bmMpIChtZW1hZGRyLCBpbnNuLmdldCAoKSwKKwkJCQkJICBjb21wYWN0X2xlbmd0aCwg aW5mbyk7CisgIGlmIChzdGF0dXMgIT0gMCkKKyAgICB7CisgICAgICAvKiBBYm9ydHMgZGlzYXNz ZW1ibGluZyB3aXRoIGEgbWVtb3J5X2Vycm9yIGV4Y2VwdGlvbi4gICovCisgICAgICAoKmluZm8t Pm1lbW9yeV9lcnJvcl9mdW5jKSAoc3RhdHVzLCBtZW1hZGRyLCBpbmZvKTsKKyAgICAgIHJldHVy biAtMTsKKyAgICB9CisgIGlmICghaW50ZWxndDo6aXNfY29tcGFjdGVkX2luc3QgKGdkYjo6bWFr ZV9hcnJheV92aWV3IChpbnNuLmdldCAoKSwKKwkJCQkJCQkgY29tcGFjdF9sZW5ndGgpKSkKKyAg ICB7CisgICAgICBzdGF0dXMgPSAoKmluZm8tPnJlYWRfbWVtb3J5X2Z1bmMpIChtZW1hZGRyLCBp bnNuLmdldCAoKSwKKwkJCQkJICBmdWxsX2xlbmd0aCwgaW5mbyk7CisgICAgICBpZiAoc3RhdHVz ICE9IDApCisJeworCSAgLyogQWJvcnRzIGRpc2Fzc2VtYmxpbmcgd2l0aCBhIG1lbW9yeV9lcnJv ciBleGNlcHRpb24uICAqLworCSAgKCppbmZvLT5tZW1vcnlfZXJyb3JfZnVuYykgKHN0YXR1cywg bWVtYWRkciwgaW5mbyk7CisJICByZXR1cm4gLTE7CisJfQorICAgIH0KKworI2lmIGRlZmluZWQg KEhBVkVfTElCSUdBNjQpCisgIGNoYXIgKmRidWY7CisgIGlnYV9kaXNhc3NlbWJsZV9vcHRpb25z X3QgZG9wdHMgPSBJR0FfRElTQVNTRU1CTEVfT1BUSU9OU19JTklUICgpOworICBnZGJfZGlzYXNz ZW1ibGVfaW5mbyAqZGkKKyAgICA9IHN0YXRpY19jYXN0PGdkYl9kaXNhc3NlbWJsZV9pbmZvICo+ KGluZm8tPmFwcGxpY2F0aW9uX2RhdGEpOworICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGRp LT5hcmNoICgpOworCisgIGlnYV9jb250ZXh0X3QgaWdhX2N0eAorICAgID0gZ2RiYXJjaF90ZGVw PGludGVsZ3RfZ2RiYXJjaF90ZGVwPiAoZ2RiYXJjaCktPmlnYV9jdHg7CisgIGlnYV9zdGF0dXNf dCBpZ2Ffc3RhdHVzCisgICAgPSBpZ2FfY29udGV4dF9kaXNhc3NlbWJsZV9pbnN0cnVjdGlvbiAo aWdhX2N0eCwgJmRvcHRzLCBpbnNuLmdldCAoKSwKKwkJCQkJICAgaW50ZWxndF9kaXNhc21fc3lt X2NiLAorCQkJCQkgICBpbmZvLCAmZGJ1Zik7CisgIGlmIChpZ2Ffc3RhdHVzICE9IElHQV9TVUND RVNTKQorICAgIHJldHVybiAtMTsKKworICAoKmluZm8tPmZwcmludGZfZnVuYykgKGluZm8tPnN0 cmVhbSwgIiVzIiwgZGJ1Zik7CisKKyAgaWYgKGludGVsZ3Q6OmlzX2NvbXBhY3RlZF9pbnN0IChn ZGI6Om1ha2VfYXJyYXlfdmlldyAoaW5zbi5nZXQgKCksCisJCQkJCQkJZnVsbF9sZW5ndGgpKSkK KyAgICByZXR1cm4gY29tcGFjdF9sZW5ndGg7CisgIGVsc2UKKyAgICByZXR1cm4gZnVsbF9sZW5n dGg7CisjZWxzZQorICBnZGJfcHJpbnRmIChfKCJcbkRpc2Fzc2VtYmxlIGZlYXR1cmUgbm90IGF2 YWlsYWJsZTogbGliaWdhNjQgIgorCQkiaXMgbWlzc2luZy5cbiIpKTsKICAgcmV0dXJuIC0xOwor I2VuZGlmIC8qIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpICAqLwogfQogCiAvKiBVdGlsaXR5IGZ1 bmN0aW9uIHRvIGxvb2sgdXAgdGhlIHBzZXVkby1yZWdpc3RlciBudW1iZXIgYnkgbmFtZS4gIEV4 YWN0CkBAIC04NjQsNiArOTM3LDQ2IEBAIGludGVsZ3RfZ2RiYXJjaF9pbml0IChnZGJhcmNoX2lu Zm8gaW5mbywgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgIGludGVsZ3RfZ2RiYXJjaF90ZGVwICpk YXRhCiAgICAgPSBnZGJhcmNoX3RkZXA8aW50ZWxndF9nZGJhcmNoX3RkZXA+IChnZGJhcmNoKTsK IAorI2lmIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpCisgIGlnYV9nZW5fdCBpZ2FfdmVyc2lvbiA9 IElHQV9HRU5fSU5WQUxJRDsKKworICBpZiAodGRlc2MgIT0gbnVsbHB0cikKKyAgICB7CisgICAg ICBjb25zdCB0ZGVzY19kZXZpY2UgKmRldmljZV9pbmZvID0gdGRlc2NfZGV2aWNlX2luZm8gKHRk ZXNjKTsKKyAgICAgIGlmICghKGRldmljZV9pbmZvLT52ZW5kb3JfaWQuaGFzX3ZhbHVlICgpCisJ ICAgICYmIGRldmljZV9pbmZvLT50YXJnZXRfaWQuaGFzX3ZhbHVlICgpKSkKKwl7CisJICB3YXJu aW5nIChfKCJEZXZpY2UgdmVuZG9yIGlkIGFuZCB0YXJnZXQgaWQgbm90IGZvdW5kLiIpKTsKKwkg IGdkYmFyY2hfZnJlZSAoZ2RiYXJjaCk7CisJICByZXR1cm4gbnVsbHB0cjsKKwl9CisKKyAgICAg IHVpbnQzMl90IHZlbmRvcl9pZCA9ICpkZXZpY2VfaW5mby0+dmVuZG9yX2lkOworICAgICAgdWlu dDMyX3QgZGV2aWNlX2lkID0gKmRldmljZV9pbmZvLT50YXJnZXRfaWQ7CisgICAgICBpZiAodmVu ZG9yX2lkICE9IDB4ODA4NikKKwl7CisJICB3YXJuaW5nIChfKCJEZXZpY2Ugbm90IHJlY29nbml6 ZWQ6IHZlbmRvciBpZD0weCUwNHgsIgorCQkgICAgICIgZGV2aWNlIGlkPTB4JTA0eCIpLCB2ZW5k b3JfaWQsIGRldmljZV9pZCk7CisJICBnZGJhcmNoX2ZyZWUgKGdkYmFyY2gpOworCSAgcmV0dXJu IG51bGxwdHI7CisJfQorICAgICAgZWxzZQorCXsKKwkgIGlnYV92ZXJzaW9uID0gKGlnYV9nZW5f dCkgZ2V0X3hlX3ZlcnNpb24gKGRldmljZV9pZCk7CisJICBpZiAoaWdhX3ZlcnNpb24gPT0gSUdB X0dFTl9JTlZBTElEKQorCSAgICB3YXJuaW5nIChfKCJJbnRlbCBHVCBkZXZpY2UgaWQgaXMgdW5y ZWNvZ25pemVkOiBJRCAweCUwNHgiKSwKKwkJICAgICBkZXZpY2VfaWQpOworCX0KKyAgICB9CisK KyAgLyogVGFrZSB0aGUgYmVzdCBndWVzcyBpbiBjYXNlIElHQV9WRVJTSU9OIGlzIHN0aWxsIGlu dmFsaWQuICAqLworICBpZiAoaWdhX3ZlcnNpb24gPT0gSUdBX0dFTl9JTlZBTElEKQorICAgIGln YV92ZXJzaW9uID0gSUdBX1hFX0hQQzsKKworICBjb25zdCBpZ2FfY29udGV4dF9vcHRpb25zX3Qg b3B0aW9ucyA9IElHQV9DT05URVhUX09QVElPTlNfSU5JVCAoaWdhX3ZlcnNpb24pOworICBpZ2Ff Y29udGV4dF9jcmVhdGUgKCZvcHRpb25zLCAmZGF0YS0+aWdhX2N0eCk7CisjZW5kaWYKKwogICAv KiBJbml0aWFsaXplIHJlZ2lzdGVyIGluZm8uICAqLwogICBzZXRfZ2RiYXJjaF9udW1fcmVncyAo Z2RiYXJjaCwgMCk7CiAgIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIHRkZXNj X3JlZ2lzdGVyX25hbWUpOwpkaWZmIC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCmluZGV4 IGQ3NTBmMzMwNWYyZWVmN2M1YTMwY2VmN2Y2NDc1Mzc5MTZhODA0OTkuLmMyN2Y3ZDYwMjU0YTRk Mzg0ZGZkNzcwY2U5OGViNGYwOTIzZGVlNDkgMTAwNjQ0Ci0tLSBhL2dkYi90b3AuYworKysgYi9n ZGIvdG9wLmMKQEAgLTE1MjMsNiArMTUyMywxNiBAQCBUaGlzIEdEQiB3YXMgY29uZmlndXJlZCBh cyBmb2xsb3dzOlxuXAogIikpOwogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX0xJQklHQTY0CisgIGdk Yl9wcmludGYgKHN0cmVhbSwgXygiXAorCSAgICAgLS13aXRoLWxpYmlnYTY0XG5cCisiKSk7Cisj ZWxzZQorICBnZGJfcHJpbnRmIChzdHJlYW0sIF8oIlwKKwkgICAgIC0td2l0aG91dC1saWJpZ2E2 NFxuXAorIikpOworI2VuZGlmCisKICNpZiBIQVZFX1NPVVJDRV9ISUdITElHSFQKICAgZ2RiX3By aW50ZiAoc3RyZWFtLCBfKCJcCiAJICAgICAtLWVuYWJsZS1zb3VyY2UtaGlnaGxpZ2h0XG5cCgot LSAKMi4zNC4xCgpJbnRlbCBEZXV0c2NobGFuZCBHbWJIDQpSZWdpc3RlcmVkIEFkZHJlc3M6IEFt IENhbXBlb24gMTAsIDg1NTc5IE5ldWJpYmVyZywgR2VybWFueQ0KVGVsOiArNDkgODkgOTkgODg1 My0wLCB3d3cuaW50ZWwuZGUNCk1hbmFnaW5nIERpcmVjdG9yczogU2VhbiBGZW5uZWxseSwgSmVm ZnJleSBTY2huZWlkZXJtYW4sIFRpZmZhbnkgRG9vbiBTaWx2YQ0KQ2hhaXJwZXJzb24gb2YgdGhl IFN1cGVydmlzb3J5IEJvYXJkOiBOaWNvbGUgTGF1DQpSZWdpc3RlcmVkIE9mZmljZTogTXVuaWNo DQpDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==