From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patchwork Subject: =?utf-8?q?=E2=9C=97_Fi=2ECI=2ECHECKPATCH=3A_warning_f?= =?utf-8?q?or_series_starting_with_=5B01/39=5D_drm/i915=3A_Hold_a_ref_to_t?= =?utf-8?q?he_ring_while_retiring?= Date: Wed, 13 Mar 2019 23:55:27 -0000 Message-ID: <20190313235527.26027.11560@emeril.freedesktop.org> References: <20190313144401.17735-1-chris@chris-wilson.co.uk> Reply-To: intel-gfx@lists.freedesktop.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190313144401.17735-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogc2VyaWVzIHN0YXJ0aW5nIHdpdGggWzAxLzM5 XSBkcm0vaTkxNTogSG9sZCBhIHJlZiB0byB0aGUgcmluZyB3aGlsZSByZXRpcmluZwpVUkwgICA6 IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTc5NDIvClN0YXRlIDog d2FybmluZwoKPT0gU3VtbWFyeSA9PQoKJCBkaW0gY2hlY2twYXRjaCBvcmlnaW4vZHJtLXRpcAo1 MjZiZjRkNTYxOGUgZHJtL2k5MTU6IEhvbGQgYSByZWYgdG8gdGhlIHJpbmcgd2hpbGUgcmV0aXJp bmcKODQ4ZDc1MTllZDMzIGRybS9pOTE1OiBMb2NrIHRoZSBnZW1fY29udGV4dC0+YWN0aXZlX2xp c3Qgd2hpbGUgZHJvcHBpbmcgdGhlIGxpbmsKOTgwYTc1NzRmNTVmIGRybS9pOTE1OiBIb2xkIGEg cmVmZXJlbmNlIHRvIHRoZSBhY3RpdmUgSFcgY29udGV4dAoxNzE5NWJiZTg5NTIgZHJtL2k5MTU6 IFN0b3AgbmVlZGxlc3NseSBhY3F1aXJpbmcgd2FrZXJlZiBmb3IgZGVidWdmcy9kcm9wX2NhY2hl c19zZXQKOGFiMjYxYzkyZGNjIGRybS9pOTE1L3NlbGZ0ZXN0czogUHJvdmlkZSBzdHViIHJlc2V0 IGZ1bmN0aW9ucwo0N2VmMzQ1OTk0MDIgZHJtL2k5MTU6IFN3aXRjaCB0byB1c2UgSFdTIGluZGlj ZXMgcmF0aGVyIHRoYW4gYWRkcmVzc2VzCjJlY2JjYmQ4MmE4YSBkcm0vaTkxNTogSW50cm9kdWNl IHRoZSBpOTE1X3VzZXJfZXh0ZW5zaW9uX21ldGhvZAotOjcwOiBXQVJOSU5HOkZJTEVfUEFUSF9D SEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJT IG5lZWQgdXBkYXRpbmc/CiM3MDogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjc1OiBXQVJOSU5H OlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyIHRhZyBpbiBsaW5lIDEKIzc1OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3VzZXJfZXh0ZW5zaW9ucy5jOjE6CisvKgoKLToxNDA6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RB RzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxp bmUgMQojMTQwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3VzZXJfZXh0ZW5zaW9u cy5oOjE6CisvKgoKLToxNjg6IENIRUNLOk1BQ1JPX0FSR19SRVVTRTogTWFjcm8gYXJndW1lbnQg cmV1c2UgJ3B0cicgLSBwb3NzaWJsZSBzaWRlLWVmZmVjdHM/CiMxNjg6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaDoxMDg6CisjZGVmaW5lIGNvbnRhaW5lcl9vZl91c2Vy KHB0ciwgdHlwZSwgbWVtYmVyKSAoewkJCQlcCisJdm9pZCBfX3VzZXIgKl9fbXB0ciA9ICh2b2lk IF9fdXNlciAqKShwdHIpOwkJCVwKKwlCVUlMRF9CVUdfT05fTVNHKCFfX3NhbWVfdHlwZSgqKHB0 ciksICgodHlwZSAqKTApLT5tZW1iZXIpICYmCVwKKwkJCSAhX19zYW1lX3R5cGUoKihwdHIpLCB2 b2lkKSwJCQlcCisJCQkgInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIp OwlcCisJKCh0eXBlIF9fdXNlciAqKShfX21wdHIgLSBvZmZzZXRvZih0eXBlLCBtZW1iZXIpKSk7 IH0pCgotOjE2ODogQ0hFQ0s6TUFDUk9fQVJHX1JFVVNFOiBNYWNybyBhcmd1bWVudCByZXVzZSAn bWVtYmVyJyAtIHBvc3NpYmxlIHNpZGUtZWZmZWN0cz8KIzE2ODogRklMRTogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV91dGlscy5oOjEwODoKKyNkZWZpbmUgY29udGFpbmVyX29mX3VzZXIocHRy LCB0eXBlLCBtZW1iZXIpICh7CQkJCVwKKwl2b2lkIF9fdXNlciAqX19tcHRyID0gKHZvaWQgX191 c2VyICopKHB0cik7CQkJXAorCUJVSUxEX0JVR19PTl9NU0coIV9fc2FtZV90eXBlKCoocHRyKSwg KCh0eXBlICopMCktPm1lbWJlcikgJiYJXAorCQkJICFfX3NhbWVfdHlwZSgqKHB0ciksIHZvaWQp LAkJCVwKKwkJCSAicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIik7CVwK KwkoKHR5cGUgX191c2VyICopKF9fbXB0ciAtIG9mZnNldG9mKHR5cGUsIG1lbWJlcikpKTsgfSkK Ci06MTY4OiBDSEVDSzpNQUNST19BUkdfUFJFQ0VERU5DRTogTWFjcm8gYXJndW1lbnQgJ21lbWJl cicgbWF5IGJlIGJldHRlciBhcyAnKG1lbWJlciknIHRvIGF2b2lkIHByZWNlZGVuY2UgaXNzdWVz CiMxNjg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaDoxMDg6CisjZGVm aW5lIGNvbnRhaW5lcl9vZl91c2VyKHB0ciwgdHlwZSwgbWVtYmVyKSAoewkJCQlcCisJdm9pZCBf X3VzZXIgKl9fbXB0ciA9ICh2b2lkIF9fdXNlciAqKShwdHIpOwkJCVwKKwlCVUlMRF9CVUdfT05f TVNHKCFfX3NhbWVfdHlwZSgqKHB0ciksICgodHlwZSAqKTApLT5tZW1iZXIpICYmCVwKKwkJCSAh X19zYW1lX3R5cGUoKihwdHIpLCB2b2lkKSwJCQlcCisJCQkgInBvaW50ZXIgdHlwZSBtaXNtYXRj aCBpbiBjb250YWluZXJfb2YoKSIpOwlcCisJKCh0eXBlIF9fdXNlciAqKShfX21wdHIgLSBvZmZz ZXRvZih0eXBlLCBtZW1iZXIpKSk7IH0pCgotOjE3NTogQ0hFQ0s6TUFDUk9fQVJHX1JFVVNFOiBN YWNybyBhcmd1bWVudCByZXVzZSAnVScgLSBwb3NzaWJsZSBzaWRlLWVmZmVjdHM/CiMxNzU6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaDoxMTU6CisjZGVmaW5lIGNoZWNr X3VzZXJfbWJ6KFUpICh7CQkJCQkJXAorCXR5cGVvZigqKFUpKSBtYnpfXzsJCQkJCQlcCisJZ2V0 X3VzZXIobWJ6X18sIChVKSkgPyAtRUZBVUxUIDogbWJ6X18gPyAtRUlOVkFMIDogMDsJCVwKK30p Cgp0b3RhbDogMCBlcnJvcnMsIDMgd2FybmluZ3MsIDQgY2hlY2tzLCAxMzIgbGluZXMgY2hlY2tl ZAo1NzE3OGViYzNhYmQgZHJtL2k5MTU6IENyZWF0ZS9kZXN0cm95IFZNIChwcEdUVCkgZm9yIHVz ZSB3aXRoIGNvbnRleHRzCi06NDU6IENIRUNLOlVOQ09NTUVOVEVEX0RFRklOSVRJT046IHN0cnVj dCBtdXRleCBkZWZpbml0aW9uIHdpdGhvdXQgY29tbWVudAojNDU6IEZJTEU6IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2Lmg6MjIxOgorCXN0cnVjdCBtdXRleCB2bV9sb2NrOwoKLTo2OTQ6 IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJh dGlvbnMKIzY5NDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt X2NvbnRleHQuYzo1MDM6CisJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKKwkJSUdUX1RJTUVPVVQo ZW5kX3RpbWUpOwoKLTo3NTY6IENIRUNLOk1VTFRJUExFX0FTU0lHTk1FTlRTOiBtdWx0aXBsZSBh c3NpZ25tZW50cyBzaG91bGQgYmUgYXZvaWRlZAojNzU2OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jOjU2NToKKwkJbmNvbnRleHRzID0gZHcg PSAwOwoKLTo4MzE6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBh ZnRlciBkZWNsYXJhdGlvbnMKIzgzMTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfZ2VtX2NvbnRleHQuYzo2MzM6CisJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHggPSBOVUxMOworCQlJR1RfVElNRU9VVChlbmRfdGltZSk7CgotOjkwMTogQ0hFQ0s6TVVMVElQ TEVfQVNTSUdOTUVOVFM6IG11bHRpcGxlIGFzc2lnbm1lbnRzIHNob3VsZCBiZSBhdm9pZGVkCiM5 MDE6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0 LmM6Njg2OgorCQluY29udGV4dHMgPSBkdyA9IDA7CgotOjEwNTY6IFdBUk5JTkc6TE9OR19MSU5F OiBsaW5lIG92ZXIgMTAwIGNoYXJhY3RlcnMKIzEwNTY6IEZJTEU6IGluY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaDo0MDc6CisjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9WTV9DUkVBVEUJRFJN X0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9WTV9DUkVBVEUsIHN0cnVjdCBk cm1faTkxNV9nZW1fdm1fY29udHJvbCkKCi06MTA1NzogV0FSTklORzpMT05HX0xJTkU6IGxpbmUg b3ZlciAxMDAgY2hhcmFjdGVycwojMTA1NzogRklMRTogaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oOjQwODoKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX1ZNX0RFU1RST1kJRFJNX0lPVyAo RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9WTV9ERVNUUk9ZLCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3ZtX2NvbnRyb2wpCgotOjEwNTc6IFdBUk5JTkc6U1BBQ0lORzogc3BhY2UgcHJvaGli aXRlZCBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMDU3 OiBGSUxFOiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmg6NDA4OgorI2RlZmluZSBEUk1fSU9D VExfSTkxNV9HRU1fVk1fREVTVFJPWQlEUk1fSU9XIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5 MTVfR0VNX1ZNX0RFU1RST1ksIHN0cnVjdCBkcm1faTkxNV9nZW1fdm1fY29udHJvbCkKCi06MTA1 NzogRVJST1I6Q09NUExFWF9NQUNSTzogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxk IGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2VzCiMxMDU3OiBGSUxFOiBpbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmg6NDA4OgorI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fVk1fREVTVFJPWQlE Uk1fSU9XIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX1ZNX0RFU1RST1ksIHN0cnVj dCBkcm1faTkxNV9nZW1fdm1fY29udHJvbCkKCnRvdGFsOiAxIGVycm9ycywgNSB3YXJuaW5ncywg MyBjaGVja3MsIDEwMDQgbGluZXMgY2hlY2tlZAplZWZjZWJiYzQ0MWYgZHJtL2k5MTU6IEV4dGVu ZCBDT05URVhUX0NSRUFURSB0byBzZXQgcGFyYW1ldGVycyB1cG9uIGNvbnN0cnVjdGlvbgotOjI4 OiBXQVJOSU5HOkxPTkdfTElORTogbGluZSBvdmVyIDEwMCBjaGFyYWN0ZXJzCiMyODogRklMRTog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYzozMTEzOgorCURSTV9JT0NUTF9ERUZfRFJW KEk5MTVfR0VNX0NPTlRFWFRfQ1JFQVRFX0VYVCwgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfaW9j dGwsIERSTV9SRU5ERVJfQUxMT1cpLAoKLTo1MzU6IFdBUk5JTkc6TE9OR19MSU5FOiBsaW5lIG92 ZXIgMTAwIGNoYXJhY3RlcnMKIzUzNTogRklMRTogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o OjM5NzoKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JFQVRFX0VYVAlEUk1f SU9XUiAoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0NSRUFURSwgc3Ry dWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQpCgotOjUzNTogV0FSTklORzpTUEFD SU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJl bnRoZXNpcyAnKCcKIzUzNTogRklMRTogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oOjM5NzoK KyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JFQVRFX0VYVAlEUk1fSU9XUiAo RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0NSRUFURSwgc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQpCgotOjUzNTogRVJST1I6Q09NUExFWF9NQUNS TzogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVu dGhlc2VzCiM1MzU6IEZJTEU6IGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaDozOTc6CisjZGVm aW5lIERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURV9FWFQJRFJNX0lPV1IgKERSTV9D T01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fQ09OVEVYVF9DUkVBVEUsIHN0cnVjdCBkcm1faTkx NV9nZW1fY29udGV4dF9jcmVhdGVfZXh0KQoKdG90YWw6IDEgZXJyb3JzLCAzIHdhcm5pbmdzLCAw IGNoZWNrcywgNjk0IGxpbmVzIGNoZWNrZWQKOGYzOGY3ZWMxOTc0IGRybS9pOTE1OiBBbGxvdyBj b250ZXh0cyB0byBzaGFyZSBhIHNpbmdsZSB0aW1lbGluZSBhY3Jvc3MgYWxsIGVuZ2luZXMKMmQ5 MWMxODEwMjIzIGRybS9pOTE1OiBBbGxvdyB1c2Vyc3BhY2UgdG8gY2xvbmUgY29udGV4dHMgb24g Y3JlYXRpb24KZmM0MTI5Y2QwMzc4IGRybS9pOTE1OiBBbGxvdyBhIGNvbnRleHQgdG8gZGVmaW5l IGl0cyBzZXQgb2YgZW5naW5lcwotOjQ0ODogQ0hFQ0s6TUFDUk9fQVJHX1JFVVNFOiBNYWNybyBh cmd1bWVudCByZXVzZSAnVCcgLSBwb3NzaWJsZSBzaWRlLWVmZmVjdHM/CiM0NDg6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaDo5NDoKKyNkZWZpbmUgY2hlY2tfc3RydWN0 X3NpemUoVCwgQSwgQywgU1opIFwKKwlsaWtlbHkoX19jaGVja19zdHJ1Y3Rfc2l6ZShzaXplb2Yo KihUKSksIFwKKwkJCQkgICBzaXplb2YoKihUKS0+QSkgKyBfX211c3RfYmVfYXJyYXkoKFQpLT5B KSwgXAorCQkJCSAgIEMsIFNaKSkKCi06NDQ4OiBDSEVDSzpNQUNST19BUkdfUkVVU0U6IE1hY3Jv IGFyZ3VtZW50IHJldXNlICdBJyAtIHBvc3NpYmxlIHNpZGUtZWZmZWN0cz8KIzQ0ODogRklMRTog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oOjk0OgorI2RlZmluZSBjaGVja19zdHJ1 Y3Rfc2l6ZShULCBBLCBDLCBTWikgXAorCWxpa2VseShfX2NoZWNrX3N0cnVjdF9zaXplKHNpemVv ZigqKFQpKSwgXAorCQkJCSAgIHNpemVvZigqKFQpLT5BKSArIF9fbXVzdF9iZV9hcnJheSgoVCkt PkEpLCBcCisJCQkJICAgQywgU1opKQoKLTo0NDg6IENIRUNLOk1BQ1JPX0FSR19QUkVDRURFTkNF OiBNYWNybyBhcmd1bWVudCAnQScgbWF5IGJlIGJldHRlciBhcyAnKEEpJyB0byBhdm9pZCBwcmVj ZWRlbmNlIGlzc3VlcwojNDQ4OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxz Lmg6OTQ6CisjZGVmaW5lIGNoZWNrX3N0cnVjdF9zaXplKFQsIEEsIEMsIFNaKSBcCisJbGlrZWx5 KF9fY2hlY2tfc3RydWN0X3NpemUoc2l6ZW9mKCooVCkpLCBcCisJCQkJICAgc2l6ZW9mKCooVCkt PkEpICsgX19tdXN0X2JlX2FycmF5KChUKS0+QSksIFwKKwkJCQkgICBDLCBTWikpCgp0b3RhbDog MCBlcnJvcnMsIDAgd2FybmluZ3MsIDMgY2hlY2tzLCA0NTcgbGluZXMgY2hlY2tlZAoyYTUwNGE3 NmZkOTMgZHJtL2k5MTU6IEV4dGVuZCBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVSB0byBzdXBwb3J0 IGxvY2FsIGN0eC0+ZW5naW5lW10KYWExODRhNWIwNTFkIGRybS9pOTE1OiBMb2FkIGJhbGFuY2lu ZyBhY3Jvc3MgYSB2aXJ0dWFsIGVuZ2luZQotOjk2MjogV0FSTklORzpMSU5FX1NQQUNJTkc6IE1p c3NpbmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xhcmF0aW9ucwojOTYyOiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYzozMzkyOgorCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICphY3R1YWwgPSB2ZS0+c2libGluZ3NbMF07CisJCWludGVsX2NvbnRleHRfcHV0KCZ2ZS0+Y29u dGV4dCk7Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDAgY2hlY2tzLCAxMTYzIGxpbmVz IGNoZWNrZWQKZjEzOWZkMDhkODg2IGRybS9pOTE1OiBFeHRlbmQgZXhlY3V0aW9uIGZlbmNlIHRv IHN1cHBvcnQgYSBjYWxsYmFjawoxNDUzMDVmYTM4ZjIgZHJtL2k5MTUvZXhlY2xpc3RzOiBWaXJ0 dWFsIGVuZ2luZSBib25kaW5nCi06NDcyOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFs aWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojNDcyOiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmM6MTMxODoKKwkJaWYgKGk5MTVfcmVx dWVzdF93YWl0KHJxWzBdLAorCQkJCQlJOTE1X1dBSVRfTE9DS0VELAoKdG90YWw6IDAgZXJyb3Jz LCAwIHdhcm5pbmdzLCAxIGNoZWNrcywgNTU4IGxpbmVzIGNoZWNrZWQKNjQxZTgzYTk5MmNiIGRy bS9pOTE1OiBBbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHBhcmFsbGVsIGV4ZWNidWYKMGNhMjY4YmRh OTJhIGRybS9pOTE1L2V4ZWNsaXN0czogU2tpcCBkaXJlY3Qgc3VibWlzc2lvbiBpZiBvbmx5IGxp dGUtcmVzdG9yZQo3OGFhMDU5OGVjYmUgZHJtL2k5MTU6IFNwbGl0IEdFTSBvYmplY3QgdHlwZSBk ZWZpbml0aW9uIHRvIGl0cyBvd24gaGVhZGVyCi06MzQ6IFdBUk5JTkc6RklMRV9QQVRIX0NIQU5H RVM6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVl ZCB1cGRhdGluZz8KIzM0OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06Mzk6IFdBUk5JTkc6U1BE WF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXIgdGFnIGluIGxpbmUgMQojMzk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3RfdHlwZXMuaDoxOgorLyoKCi06MTU3OiBXQVJOSU5HOkxJTkVfU1BBQ0lORzog TWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMxNTc6IEZJTEU6IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaDoxMTk6CisJc3RydWN0 IGxpc3RfaGVhZCBiYXRjaF9wb29sX2xpbms7CisJSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0cnVj dCBsaXN0X2hlYWQgc3RfbGluayk7CgotOjI2NzogV0FSTklORzpCT09MX0JJVEZJRUxEOiBBdm9p ZCB1c2luZyBib29sIGFzIGJpdGZpZWxkLiAgUHJlZmVyIGJvb2wgYml0ZmllbGRzIGFzIHVuc2ln bmVkIGludCBvciB1PDh8MTZ8MzI+CiMyNjc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaDoyMjk6CisJCWJvb2wgZGlydHk6MTsKCi06MjczOiBX QVJOSU5HOkJPT0xfQklURklFTEQ6IEF2b2lkIHVzaW5nIGJvb2wgYXMgYml0ZmllbGQuICBQcmVm ZXIgYm9vbCBiaXRmaWVsZHMgYXMgdW5zaWduZWQgaW50IG9yIHU8OHwxNnwzMj4KIzI3MzogRklM RTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oOjIzNToK KwkJYm9vbCBxdWlya2VkOjE7CgotOjMzMDogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNz aW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGluZSAxCiMz MzA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5MTVfZ2VtX29iamVjdF90 eXBlc19zdGFuZGFsb25lLmM6MToKKy8qCgp0b3RhbDogMCBlcnJvcnMsIDYgd2FybmluZ3MsIDAg Y2hlY2tzLCA2NjIgbGluZXMgY2hlY2tlZAoyN2YwYmYyYjQ0MzkgZHJtL2k5MTU6IFB1bGwgR0VN IGlvY3RscyBpbnRlcmZhY2UgdG8gaXRzIG93biBmaWxlCi06MjQ6IFdBUk5JTkc6RklMRV9QQVRI X0NIQU5HRVM6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5F UlMgbmVlZCB1cGRhdGluZz8KIzI0OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06Mjk6IFdBUk5J Tkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXIgdGFnIGluIGxpbmUgMQojMjk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9pb2N0bHMuaDoxOgorLyoKCi06ODc6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RB RzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxp bmUgMQojODc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5MTVfZ2VtX2lv Y3Rsc19zdGFuZGFsb25lLmM6MToKKy8qCgp0b3RhbDogMCBlcnJvcnMsIDMgd2FybmluZ3MsIDAg Y2hlY2tzLCAxNjkgbGluZXMgY2hlY2tlZAo1YjFiN2Y1Y2EyOGIgZHJtL2k5MTU6IE1vdmUgb2Jq ZWN0LT5wYWdlcyBBUEkgdG8gaTkxNV9nZW1fb2JqZWN0LltjaF0KLTo0MzogV0FSTklORzpGSUxF X1BBVEhfQ0hBTkdFUzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlO VEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojNDM6IApyZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9vYmplY3QuYwoKLToyMDc6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzog TWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUg MQojMjA3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vdGVzdF9pOTE1X2dlbV9vYmpl Y3Rfc3RhbmRhbG9uZS5jOjE6CisvKgoKdG90YWw6IDAgZXJyb3JzLCAyIHdhcm5pbmdzLCAwIGNo ZWNrcywgMzI2IGxpbmVzIGNoZWNrZWQKNDE5NDQwNTNkNTc1IGRybS9pOTE1OiBNb3ZlIHNobWVt IG9iamVjdCBzZXR1cCB0byBpdHMgb3duIGZpbGUKLTo0MDg6IFdBUk5JTkc6RklMRV9QQVRIX0NI QU5HRVM6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMg bmVlZCB1cGRhdGluZz8KIzQwODogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjQxMzogV0FSTklO RzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRl bnRpZmllciB0YWcgaW4gbGluZSAxCiM0MTM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zaG1lbS5jOjE6CisvKgoKLTo5MTc6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdO TUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiM5MTc6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9jbWRfcGFyc2VyLmM6MTczMDoKKwliYi0+b2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbShzLT52Z3B1LT5ndnQtPmRldl9wcml2LAogCQkJ IHJvdW5kdXAoYmJfc2l6ZSArIGdtYV9zdGFydF9vZmZzZXQsIFBBR0VfU0laRSkpOwoKdG90YWw6 IDAgZXJyb3JzLCAyIHdhcm5pbmdzLCAxIGNoZWNrcywgMTkzNyBsaW5lcyBjaGVja2VkCjU2MjBl MTQ2YWUxNyBkcm0vaTkxNTogTW92ZSBwaHlzIG9iamVjdHMgdG8gaXRzIG93biBmaWxlCi06NzA6 IFdBUk5JTkc6RklMRV9QQVRIX0NIQU5HRVM6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUo cyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzcwOiAKbmV3IGZpbGUgbW9kZSAx MDA2NDQKCi06NzU6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3Jt ZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQojNzU6IEZJTEU6IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jOjE6CisvKgoKLToxNjc6IFdBUk5J Tkc6TUVNT1JZX0JBUlJJRVI6IG1lbW9yeSBiYXJyaWVyIHdpdGhvdXQgY29tbWVudAojMTY3OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYzo5MzoKKwkJc21w X21iX19iZWZvcmVfYXRvbWljKCk7CgotOjIzOTogQ0hFQ0s6TVVMVElQTEVfQVNTSUdOTUVOVFM6 IG11bHRpcGxlIGFzc2lnbm1lbnRzIHNob3VsZCBiZSBhdm9pZGVkCiMyMzk6IEZJTEU6IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jOjE2NToKKwlvYmotPm1tLnBhZ2Vf c2l6ZXMucGh5cyA9IG9iai0+bW0ucGFnZV9zaXplcy5zZyA9IDA7CgotOjM2NTogV0FSTklORzpN RU1PUllfQkFSUklFUjogbWVtb3J5IGJhcnJpZXIgd2l0aG91dCBjb21tZW50CiMzNjU6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jOjI5MToKKwkJCXNtcF9t Yl9fYmVmb3JlX2F0b21pYygpOwoKLTozODQ6IENIRUNLOk1VTFRJUExFX0FTU0lHTk1FTlRTOiBt dWx0aXBsZSBhc3NpZ25tZW50cyBzaG91bGQgYmUgYXZvaWRlZAojMzg0OiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYzozMTA6CisJCXB0ciA9IG9iai0+bW0u bWFwcGluZyA9IE5VTEw7CgotOjU2MzogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNzaW5n IG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGluZSAxCiM1NjM6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmM6MToKKy8qCgot OjgyMTogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBTUERY LUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGluZSAxCiM4MjE6IEZJTEU6IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fcGh5cy5jOjE6CisvKgoKdG90YWw6IDAg ZXJyb3JzLCA2IHdhcm5pbmdzLCAyIGNoZWNrcywgMTY1MSBsaW5lcyBjaGVja2VkCmY4MzIyMjhl MWM4NyBkcm0vaTkxNTogTW92ZSBtbWFwIGFuZCBmcmllbmRzIHRvIGl0cyBvd24gZmlsZQotOjI1 OiBXQVJOSU5HOkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxl KHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMyNTogCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CgotOjMwOiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9y bWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzMwOiBGSUxFOiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jOjE6CisvKgoKLTo1OTk6IFdBUk5J Tkc6TUVNT1JZX0JBUlJJRVI6IG1lbW9yeSBiYXJyaWVyIHdpdGhvdXQgY29tbWVudAojNTk5OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6NDAwOgorCQl3 bWIoKTsKCi06NjQyOiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9y bWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzY0MjogRklMRTogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmM6MToKKy8qCgot OjgzNDogV0FSTklORzpMT05HX0xJTkU6IGxpbmUgb3ZlciAxMDAgY2hhcmFjdGVycwojODM0OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYzox OTM6CisJCQkgICAgICAoMSArIG5leHRfcHJpbWVfbnVtYmVyKGk5MTUtPmdndHQudm0udG90YWwg Pj4gUEFHRV9TSElGVCkpIDw8IFBBR0VfU0hJRlQpOwoKLTo5NTM6IFdBUk5JTkc6U1BBQ0lORzog c3BhY2UgcHJvaGliaXRlZCBiZWZvcmUgc2VtaWNvbG9uCiM5NTM6IEZJTEU6IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jOjMxMjoKK25leHRfdGlsaW5n OiA7Cgp0b3RhbDogMCBlcnJvcnMsIDYgd2FybmluZ3MsIDAgY2hlY2tzLCAyMjgwIGxpbmVzIGNo ZWNrZWQKMDJjOWU0YTg3NjMwIGRybS9pOTE1OiBNb3ZlIEdFTSBkb21haW4gbWFuYWdlbWVudCB0 byBpdHMgb3duIGZpbGUKLToyNTogV0FSTklORzpGSUxFX1BBVEhfQ0hBTkdFUzogYWRkZWQsIG1v dmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwoj MjU6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKLTozMDogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFH OiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGlu ZSAxCiMzMDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5j OjE6CisvKgoKLToxMTM6IFdBUk5JTkc6TUVNT1JZX0JBUlJJRVI6IG1lbW9yeSBiYXJyaWVyIHdp dGhvdXQgY29tbWVudAojMTEzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fZG9tYWluLmM6ODQ6CisJCW1iKCk7CgotOjE3NTogV0FSTklORzpNRU1PUllfQkFSUklFUjog bWVtb3J5IGJhcnJpZXIgd2l0aG91dCBjb21tZW50CiMxNzU6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYzoxNDY6CisJCW1iKCk7Cgp0b3RhbDogMCBlcnJv cnMsIDQgd2FybmluZ3MsIDAgY2hlY2tzLCAxODY3IGxpbmVzIGNoZWNrZWQKNGRhOTI2MzNhZWU3 IGRybS9pOTE1OiBNb3ZlIG1vcmUgR0VNIG9iamVjdHMgdW5kZXIgZ2VtLwotOjczOiBXQVJOSU5H OkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2Vz IE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM3MzogCnJlbmFtZSBmcm9tIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NsZmx1c2guYwoKLToxMjE6IFdBUk5JTkc6U1BEWF9MSUNFTlNF X1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGlu IGxpbmUgMQojMTIxOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xm bHVzaC5oOjE6CisvKgoKLTo3MTk6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBv ciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQojNzE5OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1mcy5oOjE6CisvKgoKLTo3NzY6 IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQojNzc2OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfZ2VtX29iamVjdC5oOjE6CisvKgoKLToxMTAyOiBXQVJO SU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzExMDI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0Lmg6MToKKy8qCgotOjExNjc6IFdBUk5JTkc6U1BE WF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXIgdGFnIGluIGxpbmUgMQojMTE2NzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9tb2NrX2RtYWJ1Zi5oOjE6CisvKgoKLToxMTk4OiBXQVJOSU5HOlNQRFhfTElDRU5T RV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBp biBsaW5lIDEKIzExOTg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMv bW9ja19nZW1fb2JqZWN0Lmg6MToKKy8qCgotOjEyMTM6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RB RzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxp bmUgMQojMTIxMzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Rlc3RfaTkxNV9nZW1f Y2xmbHVzaF9zdGFuZGFsb25lLmM6MToKKy8qCgotOjEyMjY6IFdBUk5JTkc6U1BEWF9MSUNFTlNF X1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGlu IGxpbmUgMQojMTIyNjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Rlc3RfaTkxNV9n ZW1fY29udGV4dF9zdGFuZGFsb25lLmM6MToKKy8qCgotOjEyNDM6IFdBUk5JTkc6U1BEWF9MSUNF TlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFn IGluIGxpbmUgMQojMTI0MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Rlc3RfaTkx NV9nZW1mc19zdGFuZGFsb25lLmM6MToKKy8qCgp0b3RhbDogMCBlcnJvcnMsIDEwIHdhcm5pbmdz LCAwIGNoZWNrcywgMTMzMCBsaW5lcyBjaGVja2VkCjhjODBhNGY2MzNjNCBkcm0vaTkxNTogUHVs bCBzY2F0dGVybGlzdCB1dGlscyBvdXQgb2YgaTkxNV9nZW0uaAotOjM0NzogV0FSTklORzpGSUxF X1BBVEhfQ0hBTkdFUzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlO VEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMzQ3OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06MzUy OiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzM1MjogRklMRTogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2F0dGVybGlzdC5jOjE6CisvKgoKLTozOTc6IFdBUk5JTkc6U1BEWF9MSUNF TlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFn IGluIGxpbmUgMQojMzk3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjYXR0ZXJs aXN0Lmg6MToKKy8qCgotOjQyNzogQ0hFQ0s6TVVMVElQTEVfQVNTSUdOTUVOVFM6IG11bHRpcGxl IGFzc2lnbm1lbnRzIHNob3VsZCBiZSBhdm9pZGVkCiM0Mjc6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NhdHRlcmxpc3QuaDozMToKKwkJcy5tYXggPSBzLmN1cnIgPSBzLnNncC0+ b2Zmc2V0OwoKLTo0NzE6IENIRUNLOk1BQ1JPX0FSR19SRVVTRTogTWFjcm8gYXJndW1lbnQgcmV1 c2UgJ19faXRlcicgLSBwb3NzaWJsZSBzaWRlLWVmZmVjdHM/CiM0NzE6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc2NhdHRlcmxpc3QuaDo3NToKKyNkZWZpbmUgZm9yX2VhY2hfc2d0 X2RtYShfX2RtYXAsIF9faXRlciwgX19zZ3QpCQkJCVwKKwlmb3IgKChfX2l0ZXIpID0gX19zZ3Rf aXRlcigoX19zZ3QpLT5zZ2wsIHRydWUpOwkJCVwKKwkgICAgICgoX19kbWFwKSA9IChfX2l0ZXIp LmRtYSArIChfX2l0ZXIpLmN1cnIpOwkJCVwKKwkgICAgICgoKF9faXRlcikuY3VyciArPSBJOTE1 X0dUVF9QQUdFX1NJWkUpID49IChfX2l0ZXIpLm1heCkgPwlcCisJICAgICAoX19pdGVyKSA9IF9f c2d0X2l0ZXIoX19zZ19uZXh0KChfX2l0ZXIpLnNncCksIHRydWUpLCAwIDogMCkKCi06NDgzOiBD SEVDSzpNQUNST19BUkdfUkVVU0U6IE1hY3JvIGFyZ3VtZW50IHJldXNlICdfX2l0ZXInIC0gcG9z c2libGUgc2lkZS1lZmZlY3RzPwojNDgzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjYXR0ZXJsaXN0Lmg6ODc6CisjZGVmaW5lIGZvcl9lYWNoX3NndF9wYWdlKF9fcHAsIF9faXRl ciwgX19zZ3QpCQkJCVwKKwlmb3IgKChfX2l0ZXIpID0gX19zZ3RfaXRlcigoX19zZ3QpLT5zZ2ws IGZhbHNlKTsJCVwKKwkgICAgICgoX19wcCkgPSAoX19pdGVyKS5wZm4gPT0gMCA/IE5VTEwgOgkJ CVwKKwkgICAgICBwZm5fdG9fcGFnZSgoX19pdGVyKS5wZm4gKyAoKF9faXRlcikuY3VyciA+PiBQ QUdFX1NISUZUKSkpOyBcCisJICAgICAoKChfX2l0ZXIpLmN1cnIgKz0gUEFHRV9TSVpFKSA+PSAo X19pdGVyKS5tYXgpID8JCVwKKwkgICAgIChfX2l0ZXIpID0gX19zZ3RfaXRlcihfX3NnX25leHQo KF9faXRlcikuc2dwKSwgZmFsc2UpLCAwIDogMCkKCnRvdGFsOiAwIGVycm9ycywgMyB3YXJuaW5n cywgMyBjaGVja3MsIDQ0MyBsaW5lcyBjaGVja2VkCjEwMGYzNzhlNTU0NSBkcm0vaTkxNTogTW92 ZSBHRU0gb2JqZWN0IGRvbWFpbiBtYW5hZ2VtZW50IGZyb20gc3RydWN0X211dGV4IHRvIGxvY2Fs Ci06NTM0OiBXQVJOSU5HOkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRl ZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM1MzQ6IApuZXcgZmls ZSBtb2RlIDEwMDY0NAoKLTo1Mzk6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBv ciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQojNTM5OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZmVuY2UuYzoxOgorLyoKCnRv dGFsOiAwIGVycm9ycywgMiB3YXJuaW5ncywgMCBjaGVja3MsIDE2MjEgbGluZXMgY2hlY2tlZApl YzFmMzc3MGE5OWEgZHJtL2k5MTU6IE1vdmUgR0VNIG9iamVjdCB3YWl0aW5nIHRvIGl0cyBvd24g ZmlsZQotOjQxOiBXQVJOSU5HOkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVs ZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM0MTogCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CgotOjQ2OiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcg b3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzQ2OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fd2FpdC5jOjE6CisvKgoKdG90 YWw6IDAgZXJyb3JzLCAyIHdhcm5pbmdzLCAwIGNoZWNrcywgNTkwIGxpbmVzIGNoZWNrZWQKYjk4 M2M3Y2RjYTMyIGRybS9pOTE1OiBNb3ZlIEdFTSBvYmplY3QgYnVzeSBjaGVja2luZyB0byBpdHMg b3duIGZpbGUKLToyNDogV0FSTklORzpGSUxFX1BBVEhfQ0hBTkdFUzogYWRkZWQsIG1vdmVkIG9y IGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMjQ6IApu ZXcgZmlsZSBtb2RlIDEwMDY0NAoKLToyOTogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNz aW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGluZSAxCiMy OTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2J1c3kuYzoxOgorLyoK CnRvdGFsOiAwIGVycm9ycywgMiB3YXJuaW5ncywgMCBjaGVja3MsIDI3NyBsaW5lcyBjaGVja2Vk CjNlNDdkYjcyYzg2YiBkcm0vaTkxNTogTW92ZSBHRU0gY2xpZW50IHRocm90dGxpbmcgdG8gaXRz IG93biBmaWxlCi06MjQ6IFdBUk5JTkc6RklMRV9QQVRIX0NIQU5HRVM6IGFkZGVkLCBtb3ZlZCBv ciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzI0OiAK bmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06Mjk6IFdBUk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlz c2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQoj Mjk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aHJvdHRsZS5jOjE6 CisvKgoKdG90YWw6IDAgZXJyb3JzLCAyIHdhcm5pbmdzLCAwIGNoZWNrcywgMTYzIGxpbmVzIGNo ZWNrZWQKNTcwMTJkYmM1YzRhIGRybS9pOTE1OiBEcm9wIHRoZSBkZWZlcnJlZCBhY3RpdmUgcmVm ZXJlbmNlCjZlNmRiNDg2N2E4ZSBkcm0vaTkxNTogTW92ZSBvYmplY3QgY2xvc2UgdW5kZXIgaXRz IG93biBsb2NrCmNlNjVmMGNlZmQxZSBkcm0vaTkxNTogUmVuYW1lIGludGVsX2NvbnRleHQuYWN0 aXZlIHRvIC5pbmZsaWdodApjZWU5ODZmYTYxODIgZHJtL2k5MTU6IEtlZXAgY29udGV4dHMgcGlu bmVkIHVudGlsIGFmdGVyIHRoZSBuZXh0IGtlcm5lbCBjb250ZXh0IHN3aXRjaAotOjIyMjogQ0hF Q0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFy ZW50aGVzaXMKIzIyMjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYzo4NDoK KwkJbGxpc3RfZm9yX2VhY2hfc2FmZShub2RlLCBuZXh0LAorCQkJCWxsaXN0X2RlbF9hbGwoJmVu Z2luZS0+YmFycmllcl90YXNrcykpIHsKCi06MjI1OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1F TlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjI1OiBGSUxFOiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jOjg3OgorCQkJCWNvbnRhaW5lcl9vZigoc3Ry dWN0IGxpc3RfaGVhZCAqKW5vZGUsCisJCQkJCQl0eXBlb2YoKmFjdGl2ZSksIGxpbmspOwoKdG90 YWw6IDAgZXJyb3JzLCAwIHdhcm5pbmdzLCAyIGNoZWNrcywgNzc4IGxpbmVzIGNoZWNrZWQKYmYz ZTc4M2IxZWViIGRybS9pOTE1OiBTdG9wIHJldGlyaW5nIGFsb25nIGVuZ2luZQphNWM1MDY5OTU1 YmEgZHJtL2k5MTU6IFJlcGxhY2UgZW5naW5lLT50aW1lbGluZSB3aXRoIGEgcGxhaW4gbGlzdAot OjU1MTogQ0hFQ0s6VU5DT01NRU5URURfREVGSU5JVElPTjogc3BpbmxvY2tfdCBkZWZpbml0aW9u IHdpdGhvdXQgY29tbWVudAojNTUxOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfdHlwZXMuaDoyNzM6CisJCXNwaW5sb2NrX3QgbG9jazsKCnRvdGFsOiAwIGVycm9ycywg MCB3YXJuaW5ncywgMSBjaGVja3MsIDkyNSBsaW5lcyBjaGVja2VkCjhlOWYwNDAyYjFiMSBkcm0v aTkxNS9leGVjbGlzdHM6IFByZWVtcHQtdG8tYnVzeQotOjE1NzogQ0hFQ0s6TUFDUk9fQVJHX1JF VVNFOiBNYWNybyBhcmd1bWUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==