From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F875C433DB for ; Fri, 5 Feb 2021 16:57:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D4A4764F1C for ; Fri, 5 Feb 2021 16:57:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D4A4764F1C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l84QZ-0003DR-PX for qemu-devel@archiver.kernel.org; Fri, 05 Feb 2021 11:57:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l84Fi-0001MT-Sg for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:46:38 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:41314) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l84Fd-0006V5-TI for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:46:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612543593; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eTpR9g24FXXI4XuSNonRJkrJvllVvTQW3t5fMH6Tt1w=; b=Nj1Oau38g5l44Mw7UFG9e9pB8bgD1PjJdW7qC8TojQ9LIdVbylLnGZbB6MNXX0Tvx+CXUW 3ME0C8zPYwiKzLuQt5fx3/E7jVZMzTi+0BMhShbCGvYm4svCCJEKTin8KuKjsLMg89XEbh BJkMf6hL4nt8jKSqyGD2XTVB9q2Hi68= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-483-2gpf_wE1P2icU58KABOWtw-1; Fri, 05 Feb 2021 11:46:28 -0500 X-MC-Unique: 2gpf_wE1P2icU58KABOWtw-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2051D8710E2; Fri, 5 Feb 2021 16:46:27 +0000 (UTC) Received: from localhost (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 140415D6AB; Fri, 5 Feb 2021 16:46:16 +0000 (UTC) From: Stefan Hajnoczi To: Peter Maydell , qemu-devel@nongnu.org Subject: [PULL v3 07/27] multi-process: add the concept description to docs/devel/qemu-multiprocess Date: Fri, 5 Feb 2021 16:44:39 +0000 Message-Id: <20210205164459.432714-8-stefanha@redhat.com> In-Reply-To: <20210205164459.432714-1-stefanha@redhat.com> References: <20210205164459.432714-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="US-ASCII" Received-SPF: pass client-ip=216.205.24.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.352, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , John G Johnson , Thomas Huth , Jagannathan Raman , Stefan Hajnoczi , qemu-block@nongnu.org, "Michael S. Tsirkin" , "Denis V. Lunev" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Elena Ufimtseva , Wainer dos Santos Moschetta , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RnJvbTogSm9obiBHIEpvaG5zb24gPGpvaG4uZy5qb2huc29uQG9yYWNsZS5jb20+CgpTaWduZWQt b2ZmLWJ5OiBKb2huIEcgSm9obnNvbiA8am9obi5nLmpvaG5zb25Ab3JhY2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRWxlbmEgVWZpbXRzZXZhIDxlbGVuYS51ZmltdHNldmFAb3JhY2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogSmFnYW5uYXRoYW4gUmFtYW4gPGphZy5yYW1hbkBvcmFjbGUuY29tPgpSZXZp ZXdlZC1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgpNZXNzYWdlLWlk OiAwMmE2OGFkZWY5OWY1ZGY2YTM4MGJmOGZkN2I5MDk0ODc3N2U0MTFjLjE2MTE5MzgzMTkuZ2l0 LmphZy5yYW1hbkBvcmFjbGUuY29tClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBIYWpub2N6aSA8c3Rl ZmFuaGFAcmVkaGF0LmNvbT4KLS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgIHwgICA3 ICsKIGRvY3MvZGV2ZWwvaW5kZXgucnN0ICAgICAgICAgfCAgIDEgKwogZG9jcy9kZXZlbC9tdWx0 aS1wcm9jZXNzLnJzdCB8IDk2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MyBmaWxlcyBjaGFuZ2VkLCA5NzQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Y3MvZGV2ZWwvbXVsdGktcHJvY2Vzcy5yc3QKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01B SU5UQUlORVJTCmluZGV4IDAwNjI2OTQxZjEuLjJmZjFlYWQ0YWIgMTAwNjQ0Ci0tLSBhL01BSU5U QUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0zMTk0LDYgKzMxOTQsMTMgQEAgUzogTWFpbnRh aW5lZAogRjogaHcvc2VtaWhvc3RpbmcvCiBGOiBpbmNsdWRlL2h3L3NlbWlob3N0aW5nLwogCitN dWx0aS1wcm9jZXNzIFFFTVUKK006IEVsZW5hIFVmaW10c2V2YSA8ZWxlbmEudWZpbXRzZXZhQG9y YWNsZS5jb20+CitNOiBKYWdhbm5hdGhhbiBSYW1hbiA8amFnLnJhbWFuQG9yYWNsZS5jb20+CitN OiBKb2huIEcgSm9obnNvbiA8am9obi5nLmpvaG5zb25Ab3JhY2xlLmNvbT4KK1M6IE1haW50YWlu ZWQKK0Y6IGRvY3MvZGV2ZWwvbXVsdGktcHJvY2Vzcy5yc3QKKwogQnVpbGQgYW5kIHRlc3QgYXV0 b21hdGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogQnVpbGQgYW5kIHRlc3QgYXV0b21h dGlvbgpkaWZmIC0tZ2l0IGEvZG9jcy9kZXZlbC9pbmRleC5yc3QgYi9kb2NzL2RldmVsL2luZGV4 LnJzdAppbmRleCA5OGE3MDE2YTliLi4yMjg1NGUzMzRkIDEwMDY0NAotLS0gYS9kb2NzL2RldmVs L2luZGV4LnJzdAorKysgYi9kb2NzL2RldmVsL2luZGV4LnJzdApAQCAtMzcsMyArMzcsNCBAQCBD b250ZW50czoKICAgIGNsb2NrcwogICAgcW9tCiAgICBibG9jay1jb3JvdXRpbmUtd3JhcHBlcgor ICAgbXVsdGktcHJvY2VzcwpkaWZmIC0tZ2l0IGEvZG9jcy9kZXZlbC9tdWx0aS1wcm9jZXNzLnJz dCBiL2RvY3MvZGV2ZWwvbXVsdGktcHJvY2Vzcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uNjk2OTkzMjlkNgotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvZGV2ZWwv bXVsdGktcHJvY2Vzcy5yc3QKQEAgLTAsMCArMSw5NjYgQEAKK1RoaXMgaXMgdGhlIGRlc2lnbiBk b2N1bWVudCBmb3IgbXVsdGktcHJvY2VzcyBRRU1VLiBJdCBkb2VzIG5vdAorbmVjZXNzYXJpbHkg cmVmbGVjdCB0aGUgc3RhdHVzIG9mIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB3aGljaAor bWF5IGxhY2sgZmVhdHVyZXMgb3IgYmUgY29uc2lkZXJhYmx5IGRpZmZlcmVudCBmcm9tIHdoYXQg aXMgZGVzY3JpYmVkCitpbiB0aGlzIGRvY3VtZW50LiBUaGlzIGRvY3VtZW50IGlzIHN0aWxsIHVz ZWZ1bCBhcyBhIGRlc2NyaXB0aW9uIG9mCit0aGUgZ29hbHMgYW5kIGdlbmVyYWwgZGlyZWN0aW9u IG9mIHRoaXMgZmVhdHVyZS4KKworUGxlYXNlIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgd2lraSBm b3IgbGF0ZXN0IGRldGFpbHM6CitodHRwczovL3dpa2kucWVtdS5vcmcvRmVhdHVyZXMvTXVsdGlQ cm9jZXNzUUVNVQorCitNdWx0aS1wcm9jZXNzIFFFTVUKKz09PT09PT09PT09PT09PT09PT0KKwor UUVNVSBpcyBvZnRlbiB1c2VkIGFzIHRoZSBoeXBlcnZpc29yIGZvciB2aXJ0dWFsIG1hY2hpbmVz IHJ1bm5pbmcgaW4gdGhlCitPcmFjbGUgY2xvdWQuIFNpbmNlIG9uZSBvZiB0aGUgYWR2YW50YWdl cyBvZiBjbG91ZCBjb21wdXRpbmcgaXMgdGhlCithYmlsaXR5IHRvIHJ1biBtYW55IFZNcyBmcm9t IGRpZmZlcmVudCB0ZW5hbnRzIGluIHRoZSBzYW1lIGNsb3VkCitpbmZyYXN0cnVjdHVyZSwgYSBn dWVzdCB0aGF0IGNvbXByb21pc2VkIGl0cyBoeXBlcnZpc29yIGNvdWxkCitwb3RlbnRpYWxseSB1 c2UgdGhlIGh5cGVydmlzb3IncyBhY2Nlc3MgcHJpdmlsZWdlcyB0byBhY2Nlc3MgZGF0YSBpdCBp cworbm90IGF1dGhvcml6ZWQgZm9yLgorCitRRU1VIGNhbiBiZSBzdXNjZXB0aWJsZSB0byBzZWN1 cml0eSBhdHRhY2tzIGJlY2F1c2UgaXQgaXMgYSBsYXJnZSwKK21vbm9saXRoaWMgcHJvZ3JhbSB0 aGF0IHByb3ZpZGVzIG1hbnkgZmVhdHVyZXMgdG8gdGhlIFZNcyBpdCBzZXJ2aWNlcy4KK01hbnkg b2YgdGhlc2UgZmVhdHVyZXMgY2FuIGJlIGNvbmZpZ3VyZWQgb3V0IG9mIFFFTVUsIGJ1dCBldmVu IGEgcmVkdWNlZAorY29uZmlndXJhdGlvbiBRRU1VIGhhcyBhIGxhcmdlIGFtb3VudCBvZiBjb2Rl IGEgZ3Vlc3QgY2FuIHBvdGVudGlhbGx5CithdHRhY2suIFNlcGFyYXRpbmcgUUVNVSByZWR1Y2Vz IHRoZSBhdHRhY2sgc3VyZmFjZSBieSBhaWRpbmcgdG8KK2xpbWl0IGVhY2ggY29tcG9uZW50IGlu IHRoZSBzeXN0ZW0gdG8gb25seSBhY2Nlc3MgdGhlIHJlc291cmNlcyB0aGF0CitpdCBuZWVkcyB0 byBwZXJmb3JtIGl0cyBqb2IuCisKK1FFTVUgc2VydmljZXMKKy0tLS0tLS0tLS0tLS0KKworUUVN VSBjYW4gYmUgYnJvYWRseSBkZXNjcmliZWQgYXMgcHJvdmlkaW5nIHRocmVlIG1haW4gc2Vydmlj ZXMuIE9uZSBpcyBhCitWTSBjb250cm9sIHBvaW50LCB3aGVyZSBWTXMgY2FuIGJlIGNyZWF0ZWQs IG1pZ3JhdGVkLCByZS1jb25maWd1cmVkLCBhbmQKK2Rlc3Ryb3llZC4gQSBzZWNvbmQgaXMgdG8g ZW11bGF0ZSB0aGUgQ1BVIGluc3RydWN0aW9ucyB3aXRoaW4gdGhlIFZNLAorb2Z0ZW4gYWNjZWxl cmF0ZWQgYnkgSFcgdmlydHVhbGl6YXRpb24gZmVhdHVyZXMgc3VjaCBhcyBJbnRlbCdzIFZUCitl eHRlbnNpb25zLiBGaW5hbGx5LCBpdCBwcm92aWRlcyBJTyBzZXJ2aWNlcyB0byB0aGUgVk0gYnkg ZW11bGF0aW5nIEhXCitJTyBkZXZpY2VzLCBzdWNoIGFzIGRpc2sgYW5kIG5ldHdvcmsgZGV2aWNl cy4KKworQSBtdWx0aS1wcm9jZXNzIFFFTVUKK35+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0EgbXVs dGktcHJvY2VzcyBRRU1VIGludm9sdmVzIHNlcGFyYXRpbmcgUUVNVSBzZXJ2aWNlcyBpbnRvIHNl cGFyYXRlCitob3N0IHByb2Nlc3Nlcy4gRWFjaCBvZiB0aGVzZSBwcm9jZXNzZXMgY2FuIGJlIGdp dmVuIG9ubHkgdGhlIHByaXZpbGVnZXMKK2l0IG5lZWRzIHRvIHByb3ZpZGUgaXRzIHNlcnZpY2Us IGUuZy4sIGEgZGlzayBzZXJ2aWNlIGNvdWxkIGJlIGdpdmVuCithY2Nlc3Mgb25seSB0byB0aGUg ZGlzayBpbWFnZXMgaXQgcHJvdmlkZXMsIGFuZCBub3QgYmUgYWxsb3dlZCB0bworYWNjZXNzIG90 aGVyIGZpbGVzLCBvciBhbnkgbmV0d29yayBkZXZpY2VzLiBBbiBhdHRhY2tlciB3aG8gY29tcHJv bWlzZWQKK3RoaXMgc2VydmljZSB3b3VsZCBub3QgYmUgYWJsZSB0byB1c2UgdGhpcyBleHBsb2l0 IHRvIGFjY2VzcyBmaWxlcyBvcgorZGV2aWNlcyBiZXlvbmQgd2hhdCB0aGUgZGlzayBzZXJ2aWNl IHdhcyBnaXZlbiBhY2Nlc3MgdG8uCisKK0EgUUVNVSBjb250cm9sIHByb2Nlc3Mgd291bGQgcmVt YWluLCBidXQgaW4gbXVsdGktcHJvY2VzcyBtb2RlLCB3aWxsCitoYXZlIG5vIGRpcmVjdCBpbnRl cmZhY2VzIHRvIHRoZSBWTS4gRHVyaW5nIFZNIGV4ZWN1dGlvbiwgaXQgd291bGQgc3RpbGwKK3By b3ZpZGUgdGhlIHVzZXIgaW50ZXJmYWNlIHRvIGhvdC1wbHVnIGRldmljZXMgb3IgbGl2ZSBtaWdy YXRlIHRoZSBWTS4KKworQSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIGEgbXVsdGktcHJvY2VzcyBR RU1VIGlzIHRvIHNlcGFyYXRlIElPIHNlcnZpY2VzCitmcm9tIHRoZSBtYWluIFFFTVUgcHJvZ3Jh bSwgd2hpY2ggd291bGQgY29udGludWUgdG8gcHJvdmlkZSBDUFUKK2VtdWxhdGlvbi4gaS5lLiwg dGhlIGNvbnRyb2wgcHJvY2VzcyB3b3VsZCBhbHNvIGJlIHRoZSBDUFUgZW11bGF0aW9uCitwcm9j ZXNzLiBJbiBhIGxhdGVyIHBoYXNlLCBDUFUgZW11bGF0aW9uIGNvdWxkIGJlIHNlcGFyYXRlZCBm cm9tIHRoZQorY29udHJvbCBwcm9jZXNzLgorCitTZXBhcmF0aW5nIElPIHNlcnZpY2VzCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK1NlcGFyYXRpbmcgSU8gc2VydmljZXMgaW50byBpbmRpdmlk dWFsIGhvc3QgcHJvY2Vzc2VzIGlzIGEgZ29vZCBwbGFjZSB0bworYmVnaW4gZm9yIGEgY291cGxl IG9mIHJlYXNvbnMuIE9uZSBpcyB0aGUgc2hlZXIgbnVtYmVyIG9mIElPIGRldmljZXMgUUVNVQor Y2FuIGVtdWxhdGUgcHJvdmlkZXMgYSBsYXJnZSBzdXJmYWNlIG9mIGludGVyZmFjZXMgd2hpY2gg Y291bGQgcG90ZW50aWFsbHkKK2JlIGV4cGxvaXRlZCwgYW5kLCBpbmRlZWQsIGhhdmUgYmVlbiBh IHNvdXJjZSBvZiBleHBsb2l0cyBpbiB0aGUgcGFzdC4KK0Fub3RoZXIgaXMgdGhlIG1vZHVsYXIg bmF0dXJlIG9mIFFFTVUgZGV2aWNlIGVtdWxhdGlvbiBjb2RlIHByb3ZpZGVzCitpbnRlcmZhY2Ug cG9pbnRzIHdoZXJlIHRoZSBRRU1VIGZ1bmN0aW9ucyB0aGF0IHBlcmZvcm0gZGV2aWNlIGVtdWxh dGlvbgorY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBRRU1VIGZ1bmN0aW9ucyB0aGF0IG1hbmFn ZSB0aGUgZW11bGF0aW9uIG9mCitndWVzdCBDUFUgaW5zdHJ1Y3Rpb25zLiBUaGUgZGV2aWNlcyBl bXVsYXRlZCBpbiB0aGUgc2VwYXJhdGUgcHJvY2VzcyBhcmUKK3JlZmVycmVkIHRvIGFzIHJlbW90 ZSBkZXZpY2VzLgorCitRRU1VIGRldmljZSBlbXVsYXRpb24KK35+fn5+fn5+fn5+fn5+fn5+fn5+ fgorCitRRU1VIHVzZXMgYW4gb2JqZWN0IG9yaWVudGVkIFNXIGFyY2hpdGVjdHVyZSBmb3IgZGV2 aWNlIGVtdWxhdGlvbiBjb2RlLgorQ29uZmlndXJlZCBvYmplY3RzIGFyZSBhbGwgY29tcGlsZWQg aW50byB0aGUgUUVNVSBiaW5hcnksIHRoZW4gb2JqZWN0cworYXJlIGluc3RhbnRpYXRlZCBieSBu YW1lIHdoZW4gdXNlZCBieSB0aGUgZ3Vlc3QgVk0uIEZvciBleGFtcGxlLCB0aGUKK2NvZGUgdG8g ZW11bGF0ZSBhIGRldmljZSBuYW1lZCAiZm9vIiBpcyBhbHdheXMgcHJlc2VudCBpbiBRRU1VLCBi dXQgaXRzCitpbnN0YW50aWF0aW9uIGNvZGUgaXMgb25seSBydW4gd2hlbiB0aGUgZGV2aWNlIGlz IGluY2x1ZGVkIGluIHRoZSB0YXJnZXQKK1ZNLiAoZS5nLiwgdmlhIHRoZSBRRU1VIGNvbW1hbmQg bGluZSBhcyAqLWRldmljZSBmb28qKQorCitUaGUgb2JqZWN0IG1vZGVsIGlzIGhpZXJhcmNoaWNh bCwgc28gZGV2aWNlIGVtdWxhdGlvbiBjb2RlIG5hbWVzIGl0cworcGFyZW50IG9iamVjdCAoc3Vj aCBhcyAicGNpLWRldmljZSIgZm9yIGEgUENJIGRldmljZSkgYW5kIFFFTVUgd2lsbAoraW5zdGFu dGlhdGUgYSBwYXJlbnQgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIHRoZSBkZXZpY2UncyBpbnN0YW50 aWF0aW9uCitjb2RlLgorCitDdXJyZW50IHNlcGFyYXRpb24gbW9kZWxzCit+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CisKK0luIG9yZGVyIHRvIHNlcGFyYXRlIHRoZSBkZXZpY2UgZW11bGF0aW9u IGNvZGUgZnJvbSB0aGUgQ1BVIGVtdWxhdGlvbgorY29kZSwgdGhlIGRldmljZSBvYmplY3QgY29k ZSBtdXN0IHJ1biBpbiBhIGRpZmZlcmVudCBwcm9jZXNzLiBUaGVyZSBhcmUKK2EgY291cGxlIG9m IGV4aXN0aW5nIFFFTVUgZmVhdHVyZXMgdGhhdCBjYW4gcnVuIGVtdWxhdGlvbiBjb2RlCitzZXBh cmF0ZWx5IGZyb20gdGhlIG1haW4gUUVNVSBwcm9jZXNzLiBUaGVzZSBhcmUgZXhhbWluZWQgYmVs b3cuCisKK3Zob3N0IHVzZXIgbW9kZWwKK15eXl5eXl5eXl5eXl5eXl4KKworVmlydGlvIGd1ZXN0 IGRldmljZSBkcml2ZXJzIGNhbiBiZSBjb25uZWN0ZWQgdG8gdmhvc3QgdXNlciBhcHBsaWNhdGlv bnMKK2luIG9yZGVyIHRvIHBlcmZvcm0gdGhlaXIgSU8gb3BlcmF0aW9ucy4gVGhpcyBtb2RlbCB1 c2VzIHNwZWNpYWwgdmlydGlvCitkZXZpY2UgZHJpdmVycyBpbiB0aGUgZ3Vlc3QgYW5kIHZob3N0 IHVzZXIgZGV2aWNlIG9iamVjdHMgaW4gUUVNVSwgYnV0CitvbmNlIHRoZSBRRU1VIHZob3N0IHVz ZXIgY29kZSBoYXMgY29uZmlndXJlZCB0aGUgdmhvc3QgdXNlciBhcHBsaWNhdGlvbiwKK21pc3Np b24tbW9kZSBJTyBpcyBwZXJmb3JtZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGUgdmhvc3QgdXNl cgorYXBwbGljYXRpb24gaXMgYSBkYWVtb24gcHJvY2VzcyB0aGF0IGNhbiBiZSBjb250YWN0ZWQg dmlhIGEga25vd24gVU5JWAorZG9tYWluIHNvY2tldC4KKwordmhvc3Qgc29ja2V0CisnJycnJycn JycnJycKKworQXMgbWVudGlvbmVkIGFib3ZlLCBvbmUgb2YgdGhlIHRhc2tzIG9mIHRoZSB2aG9z dCBkZXZpY2Ugb2JqZWN0IHdpdGhpbgorUUVNVSBpcyB0byBjb250YWN0IHRoZSB2aG9zdCBhcHBs aWNhdGlvbiBhbmQgc2VuZCBpdCBjb25maWd1cmF0aW9uCitpbmZvcm1hdGlvbiBhYm91dCB0aGlz IGRldmljZSBpbnN0YW5jZS4gQXMgcGFydCBvZiB0aGUgY29uZmlndXJhdGlvbgorcHJvY2Vzcywg dGhlIGFwcGxpY2F0aW9uIGNhbiBhbHNvIGJlIHNlbnQgb3RoZXIgZmlsZSBkZXNjcmlwdG9ycyBv dmVyCit0aGUgc29ja2V0LCB3aGljaCB0aGVuIGNhbiBiZSB1c2VkIGJ5IHRoZSB2aG9zdCB1c2Vy IGFwcGxpY2F0aW9uIGluCit2YXJpb3VzIHdheXMsIHNvbWUgb2Ygd2hpY2ggYXJlIGRlc2NyaWJl ZCBiZWxvdy4KKwordmhvc3QgTU1JTyBzdG9yZSBhY2NlbGVyYXRpb24KKycnJycnJycnJycnJycn JycnJycnJycnJycnJycnCisKK1ZNcyBhcmUgb2Z0ZW4gcnVuIHVzaW5nIEhXIHZpcnR1YWxpemF0 aW9uIGZlYXR1cmVzIHZpYSB0aGUgS1ZNIGtlcm5lbAorZHJpdmVyLiBUaGlzIGRyaXZlciBhbGxv d3MgUUVNVSB0byBhY2NlbGVyYXRlIHRoZSBlbXVsYXRpb24gb2YgZ3Vlc3QgQ1BVCitpbnN0cnVj dGlvbnMgYnkgcnVubmluZyB0aGUgZ3Vlc3QgaW4gYSB2aXJ0dWFsIEhXIG1vZGUuIFdoZW4gdGhl IGd1ZXN0CitleGVjdXRlcyBpbnN0cnVjdGlvbnMgdGhhdCBjYW5ub3QgYmUgZXhlY3V0ZWQgYnkg dmlydHVhbCBIVyBtb2RlLAorZXhlY3V0aW9uIHJldHVybnMgdG8gdGhlIEtWTSBkcml2ZXIgc28g aXQgY2FuIGluZm9ybSBRRU1VIHRvIGVtdWxhdGUgdGhlCitpbnN0cnVjdGlvbnMgaW4gU1cuCisK K09uZSBvZiB0aGUgZXZlbnRzIHRoYXQgY2FuIGNhdXNlIGEgcmV0dXJuIHRvIFFFTVUgaXMgd2hl biBhIGd1ZXN0IGRldmljZQorZHJpdmVyIGFjY2Vzc2VzIGFuIElPIGxvY2F0aW9uLiBRRU1VIHRo ZW4gZGlzcGF0Y2hlcyB0aGUgbWVtb3J5CitvcGVyYXRpb24gdG8gdGhlIGNvcnJlc3BvbmRpbmcg UUVNVSBkZXZpY2Ugb2JqZWN0LiBJbiB0aGUgY2FzZSBvZiBhCit2aG9zdCB1c2VyIGRldmljZSwg dGhlIG1lbW9yeSBvcGVyYXRpb24gd291bGQgbmVlZCB0byBiZSBzZW50IG92ZXIgYQorc29ja2V0 IHRvIHRoZSB2aG9zdCBhcHBsaWNhdGlvbi4gVGhpcyBwYXRoIGlzIGFjY2VsZXJhdGVkIGJ5IHRo ZSBRRU1VCit2aXJ0aW8gY29kZSBieSBzZXR0aW5nIHVwIGFuIGV2ZW50ZmQgZmlsZSBkZXNjcmlw dG9yIHRoYXQgdGhlIHZob3N0CithcHBsaWNhdGlvbiBjYW4gZGlyZWN0bHkgcmVjZWl2ZSBNTUlP IHN0b3JlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgS1ZNCitkcml2ZXIsIGluc3RlYWQgb2YgbmVl ZGluZyB0aGVtIHRvIGJlIHNlbnQgdG8gdGhlIFFFTVUgcHJvY2VzcyBmaXJzdC4KKwordmhvc3Qg aW50ZXJydXB0IGFjY2VsZXJhdGlvbgorJycnJycnJycnJycnJycnJycnJycnJycnJycnJworCitB bm90aGVyIG9wdGltaXphdGlvbiB1c2VkIGJ5IHRoZSB2aG9zdCBhcHBsaWNhdGlvbiBpcyB0aGUg YWJpbGl0eSB0bworZGlyZWN0bHkgaW5qZWN0IGludGVycnVwdHMgaW50byB0aGUgVk0gdmlhIHRo ZSBLVk0gZHJpdmVyLCBhZ2FpbiwKK2J5cGFzc2luZyB0aGUgbmVlZCB0byBzZW5kIHRoZSBpbnRl cnJ1cHQgYmFjayB0byB0aGUgUUVNVSBwcm9jZXNzIGZpcnN0LgorVGhlIFFFTVUgdmlydGlvIHNl dHVwIGNvZGUgY29uZmlndXJlcyB0aGUgS1ZNIGRyaXZlciB3aXRoIGFuIGV2ZW50ZmQKK3RoYXQg dHJpZ2dlcnMgdGhlIGRldmljZSBpbnRlcnJ1cHQgaW4gdGhlIGd1ZXN0IHdoZW4gdGhlIGV2ZW50 ZmQgaXMKK3dyaXR0ZW4uIFRoaXMgaXJxZmQgZmlsZSBkZXNjcmlwdG9yIGlzIHRoZW4gcGFzc2Vk IHRvIHRoZSB2aG9zdCB1c2VyCithcHBsaWNhdGlvbiBwcm9ncmFtLgorCit2aG9zdCBhY2Nlc3Mg dG8gZ3Vlc3QgbWVtb3J5CisnJycnJycnJycnJycnJycnJycnJycnJycnJycnCisKK1RoZSB2aG9z dCBhcHBsaWNhdGlvbiBpcyBhbHNvIGFsbG93ZWQgdG8gZGlyZWN0bHkgYWNjZXNzIGd1ZXN0IG1l bW9yeSwKK2luc3RlYWQgb2YgbmVlZGluZyB0byBzZW5kIHRoZSBkYXRhIGFzIG1lc3NhZ2VzIHRv IFFFTVUuIFRoaXMgaXMgYWxzbworZG9uZSB3aXRoIGZpbGUgZGVzY3JpcHRvcnMgc2VudCB0byB0 aGUgdmhvc3QgdXNlciBhcHBsaWNhdGlvbiBieSBRRU1VLgorVGhlc2UgZGVzY3JpcHRvcnMgY2Fu IGJlIHBhc3NlZCB0byBgYG1tYXAoKWBgIGJ5IHRoZSB2aG9zdCBhcHBsaWNhdGlvbgordG8gbWFw IHRoZSBndWVzdCBhZGRyZXNzIHNwYWNlIGludG8gdGhlIHZob3N0IGFwcGxpY2F0aW9uLgorCitJ T01NVXMgaW50cm9kdWNlIGFub3RoZXIgbGV2ZWwgb2YgY29tcGxleGl0eSwgc2luY2UgdGhlIGFk ZHJlc3MgZ2l2ZW4gdG8KK3RoZSBndWVzdCB2aXJ0aW8gZGV2aWNlIHRvIERNQSB0byBvciBmcm9t IGlzIG5vdCBhIGd1ZXN0IHBoeXNpY2FsCithZGRyZXNzLiBUaGlzIGNhc2UgaXMgaGFuZGxlZCBi eSBoYXZpbmcgdmhvc3QgY29kZSB3aXRoaW4gUUVNVSByZWdpc3RlcgorYXMgYSBsaXN0ZW5lciBm b3IgSU9NTVUgbWFwcGluZyBjaGFuZ2VzLiBUaGUgdmhvc3QgYXBwbGljYXRpb24gbWFpbnRhaW5z CithIGNhY2hlIG9mIElPTU1NVSB0cmFuc2xhdGlvbnM6IHNlbmRpbmcgdHJhbnNsYXRpb24gcmVx dWVzdHMgYmFjayB0bworUUVNVSBvbiBjYWNoZSBtaXNzZXMsIGFuZCBpbiB0dXJuIHJlY2Vpdmlu ZyBmbHVzaCByZXF1ZXN0cyBmcm9tIFFFTVUKK3doZW4gbWFwcGluZ3MgYXJlIHB1cmdlZC4KKwor YXBwbGljYWJpbGl0eSB0byBkZXZpY2Ugc2VwYXJhdGlvbgorJycnJycnJycnJycnJycnJycnJycn JycnJycnJycnJycnJworCitNdWNoIG9mIHRoZSB2aG9zdCBtb2RlbCBjYW4gYmUgcmUtdXNlZCBi eSBzZXBhcmF0ZWQgZGV2aWNlIGVtdWxhdGlvbi4gSW4KK3BhcnRpY3VsYXIsIHRoZSBpZGVhcyBv ZiB1c2luZyBhIHNvY2tldCBiZXR3ZWVuIFFFTVUgYW5kIHRoZSBkZXZpY2UKK2VtdWxhdGlvbiBh cHBsaWNhdGlvbiwgdXNpbmcgYSBmaWxlIGRlc2NyaXB0b3IgdG8gaW5qZWN0IGludGVycnVwdHMg aW50bwordGhlIFZNIHZpYSBLVk0sIGFuZCBhbGxvd2luZyB0aGUgYXBwbGljYXRpb24gdG8gYGBt bWFwKClgYCB0aGUgZ3Vlc3QKK3Nob3VsZCBiZSByZSB1c2VkLgorCitUaGVyZSBhcmUsIGhvd2V2 ZXIsIHNvbWUgbm90YWJsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGhvdyBhIHZob3N0CithcHBsaWNh dGlvbiB3b3JrcyBhbmQgdGhlIG5lZWRzIG9mIHNlcGFyYXRlZCBkZXZpY2UgZW11bGF0aW9uLiBU aGUgbW9zdAorYmFzaWMgaXMgdGhhdCB2aG9zdCB1c2VzIGN1c3RvbSB2aXJ0aW8gZGV2aWNlIGRy aXZlcnMgd2hpY2ggYWx3YXlzCit0cmlnZ2VyIElPIHdpdGggTU1JTyBzdG9yZXMuIEEgc2VwYXJh dGVkIGRldmljZSBlbXVsYXRpb24gbW9kZWwgbXVzdAord29yayB3aXRoIGV4aXN0aW5nIElPIGRl dmljZSBtb2RlbHMgYW5kIGd1ZXN0IGRldmljZSBkcml2ZXJzLiBNTUlPIGxvYWRzCiticmVhayB2 aG9zdCBzdG9yZSBhY2NlbGVyYXRpb24gc2luY2UgdGhleSBhcmUgc3luY2hyb25vdXMgLSBndWVz dAorcHJvZ3Jlc3MgY2Fubm90IGNvbnRpbnVlIHVudGlsIHRoZSBsb2FkIGhhcyBiZWVuIGVtdWxh dGVkLiBCeSBjb250cmFzdCwKK3N0b3JlcyBhcmUgYXN5bmNocm9ub3VzLCB0aGUgZ3Vlc3QgY2Fu IGNvbnRpbnVlIGFmdGVyIHRoZSBzdG9yZSBldmVudAoraGFzIGJlZW4gc2VudCB0byB0aGUgdmhv c3QgYXBwbGljYXRpb24uCisKK0Fub3RoZXIgZGlmZmVyZW5jZSBpcyB0aGF0IGluIHRoZSB2aG9z dCB1c2VyIG1vZGVsLCBhIHNpbmdsZSBkYWVtb24gY2FuCitzdXBwb3J0IG11bHRpcGxlIFFFTVUg aW5zdGFuY2VzLiBUaGlzIGlzIGNvbnRyYXJ5IHRvIHRoZSBzZWN1cml0eSByZWdpbWUKK2Rlc2ly ZWQsIGluIHdoaWNoIHRoZSBlbXVsYXRpb24gYXBwbGljYXRpb24gc2hvdWxkIG9ubHkgYmUgYWxs b3dlZCB0bworYWNjZXNzIHRoZSBmaWxlcyBvciBkZXZpY2VzIHRoZSBWTSBpdCdzIHJ1bm5pbmcg b24gYmVoYWxmIG9mIGNhbiBhY2Nlc3MuCisjIyMjIHFlbXUtaW8gbW9kZWwKKworUWVtdS1pbyBp cyBhIHRlc3QgaGFybmVzcyB1c2VkIHRvIHRlc3QgY2hhbmdlcyB0byB0aGUgUUVNVSBibG9jayBi YWNrZW5kCitvYmplY3QgY29kZS4gKGUuZy4sIHRoZSBjb2RlIHRoYXQgaW1wbGVtZW50cyBkaXNr IGltYWdlcyBmb3IgZGlzayBkcml2ZXIKK2VtdWxhdGlvbikgUWVtdS1pbyBpcyBub3QgYSBkZXZp Y2UgZW11bGF0aW9uIGFwcGxpY2F0aW9uIHBlciBzZSwgYnV0IGl0Citkb2VzIGNvbXBpbGUgdGhl IFFFTVUgYmxvY2sgb2JqZWN0cyBpbnRvIGEgc2VwYXJhdGUgYmluYXJ5IGZyb20gdGhlIG1haW4K K1FFTVUgb25lLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCBmb3IgZGlzayBkZXZpY2UgZW11bGF0aW9u LCBzaW5jZSBpdHMKK2VtdWxhdGlvbiBhcHBsaWNhdGlvbnMgd2lsbCBuZWVkIHRvIGluY2x1ZGUg dGhlIFFFTVUgYmxvY2sgb2JqZWN0cy4KKworTmV3IHNlcGFyYXRpb24gbW9kZWwgYmFzZWQgb24g cHJveHkgb2JqZWN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCitBIGRpZmZlcmVudCBtb2RlbCBiYXNlZCBvbiBwcm94eSBvYmplY3RzIGluIHRoZSBRRU1V IHByb2dyYW0KK2NvbW11bmljYXRpbmcgd2l0aCByZW1vdGUgZW11bGF0aW9uIHByb2dyYW1zIGNv dWxkIHByb3ZpZGUgc2VwYXJhdGlvbgord2hpbGUgbWluaW1pemluZyB0aGUgY2hhbmdlcyBuZWVk ZWQgdG8gdGhlIGRldmljZSBlbXVsYXRpb24gY29kZS4gVGhlCityZXN0IG9mIHRoaXMgc2VjdGlv biBpcyBhIGRpc2N1c3Npb24gb2YgaG93IGEgcHJveHkgb2JqZWN0IG1vZGVsIHdvdWxkCit3b3Jr LgorCitSZW1vdGUgZW11bGF0aW9uIHByb2Nlc3Nlcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KKworVGhlIHJlbW90ZSBlbXVsYXRpb24gcHJvY2VzcyB3aWxsIHJ1biB0aGUgUUVNVSBvYmpl Y3QgaGllcmFyY2h5IHdpdGhvdXQKK21vZGlmaWNhdGlvbi4gVGhlIGRldmljZSBlbXVsYXRpb24g b2JqZWN0cyB3aWxsIGJlIGFsc28gYmUgYmFzZWQgb24gdGhlCitRRU1VIGNvZGUsIGJlY2F1c2Ug Zm9yIGFueXRoaW5nIGJ1dCB0aGUgc2ltcGxlc3QgZGV2aWNlLCBpdCB3b3VsZCBub3QgYmUKK2Eg dHJhY3RhYmxlIHRvIHJlLWltcGxlbWVudCBib3RoIHRoZSBvYmplY3QgbW9kZWwgYW5kIHRoZSBt YW55IGRldmljZQorYmFja2VuZHMgdGhhdCBRRU1VIGhhcy4KKworVGhlIHByb2Nlc3NlcyB3aWxs IGNvbW11bmljYXRlIHdpdGggdGhlIFFFTVUgcHJvY2VzcyBvdmVyIFVOSVggZG9tYWluCitzb2Nr ZXRzLiBUaGUgcHJvY2Vzc2VzIGNhbiBiZSBleGVjdXRlZCBlaXRoZXIgYXMgc3RhbmRhbG9uZSBw cm9jZXNzZXMsCitvciBiZSBleGVjdXRlZCBieSBRRU1VLiBJbiBib3RoIGNhc2VzLCB0aGUgaG9z dCBiYWNrZW5kcyB0aGUgZW11bGF0aW9uCitwcm9jZXNzZXMgd2lsbCBwcm92aWRlIGFyZSBzcGVj aWZpZWQgb24gaXRzIGNvbW1hbmQgbGluZSwgYXMgdGhleSB3b3VsZAorYmUgZm9yIFFFTVUuIEZv ciBleGFtcGxlOgorCis6OgorCisgICAgZGlzay1wcm9jIC1ibG9ja2RldiBkcml2ZXI9ZmlsZSxu b2RlLW5hbWU9ZmlsZTAsZmlsZW5hbWU9ZGlzay1maWxlMCAgXAorICAgIC1ibG9ja2RldiBkcml2 ZXI9cWNvdzIsbm9kZS1uYW1lPWRyaXZlMCxmaWxlPWZpbGUwCisKK3dvdWxkIGluZGljYXRlIHBy b2Nlc3MgKmRpc2stcHJvYyogdXNlcyBhIHFjb3cyIGVtdWxhdGVkIGRpc2sgbmFtZWQKKypmaWxl MCogYXMgaXRzIGJhY2tlbmQuCisKK0VtdWxhdGlvbiBwcm9jZXNzZXMgbWF5IGVtdWxhdGUgbW9y ZSB0aGFuIG9uZSBndWVzdCBjb250cm9sbGVyLiBBIGNvbW1vbgorY29uZmlndXJhdGlvbiBtaWdo dCBiZSB0byBwdXQgYWxsIGNvbnRyb2xsZXJzIG9mIHRoZSBzYW1lIGRldmljZSBjbGFzcworKGUu Zy4sIGRpc2ssIG5ldHdvcmssIGV0Yy4pIGluIGEgc2luZ2xlIHByb2Nlc3MsIHNvIHRoYXQgYWxs IGJhY2tlbmRzIG9mCit0aGUgc2FtZSB0eXBlIGNhbiBiZSBtYW5hZ2VkIGJ5IGEgc2luZ2xlIFFN UCBtb25pdG9yLgorCitjb21tdW5pY2F0aW9uIHdpdGggUUVNVQorXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KKworVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSByZW1vdGUgZW11bGF0aW9uIHByb2Nl c3Mgd2lsbCBiZSBhIFVuaXggZG9tYWluCitzb2NrZXQgdGhhdCBjb25uZWN0cyB3aXRoIHRoZSBQ cm94eSBvYmplY3QuIFRoaXMgaXMgYSByZXF1aXJlZCBhcmd1bWVudC4KKworOjoKKworICAgIGRp c2stcHJvYyA8c29ja2V0IG51bWJlcj4gPGJhY2tlbmQgbGlzdD4KKworcmVtb3RlIHByb2Nlc3Mg UU1QIG1vbml0b3IKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1JlbW90ZSBlbXVsYXRp b24gcHJvY2Vzc2VzIGNhbiBiZSBtb25pdG9yZWQgdmlhIFFNUCwgc2ltaWxhciB0byBRRU1VCitp dHNlbGYuIFRoZSBRTVAgbW9uaXRvciBzb2NrZXQgaXMgc3BlY2lmaWVkIHRoZSBzYW1lIGFzIGZv ciBhIFFFTVUKK3Byb2Nlc3M6CisKKzo6CisKKyAgICBkaXNrLXByb2MgLXFtcCB1bml4Oi90bXAv ZGlzay1tb24sc2VydmVyCisKK2NhbiBiZSBtb25pdG9yZWQgb3ZlciB0aGUgVU5JWCBzb2NrZXQg cGF0aCAqL3RtcC9kaXNrLW1vbiouCisKK1FFTVUgY29tbWFuZCBsaW5lCit+fn5+fn5+fn5+fn5+ fn5+fgorCitFYWNoIHJlbW90ZSBkZXZpY2UgZW11bGF0ZWQgaW4gYSByZW1vdGUgcHJvY2VzcyBv biB0aGUgaG9zdCBpcworcmVwcmVzZW50ZWQgYXMgYSAqLWRldmljZSogb2YgdHlwZSAqcGNpLXBy b3h5LWRldiouIEEgc29ja2V0CitzdWItb3B0aW9uIHRvIHRoaXMgb3B0aW9uIHNwZWNpZmllcyB0 aGUgVW5peCBzb2NrZXQgdGhhdCBjb25uZWN0cwordG8gdGhlIHJlbW90ZSBwcm9jZXNzLiBBbiAq aWQqIHN1Yi1vcHRpb24gaXMgcmVxdWlyZWQsIGFuZCBpdCBzaG91bGQKK2JlIHRoZSBzYW1lIGlk IGFzIHVzZWQgaW4gdGhlIHJlbW90ZSBwcm9jZXNzLgorCis6OgorCisgICAgcWVtdS1zeXN0ZW0t eDg2XzY0IC4uLiAtZGV2aWNlIHBjaS1wcm94eS1kZXYsaWQ9bHNpMCxzb2NrZXQ9MworCitjYW4g YmUgdXNlZCB0byBhZGQgYSBkZXZpY2UgZW11bGF0ZWQgaW4gYSByZW1vdGUgcHJvY2VzcworCisK K1FFTVUgbWFuYWdlbWVudCBvZiByZW1vdGUgcHJvY2Vzc2VzCit+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgorCitRRU1VIGlzIG5vdCBhd2FyZSBvZiB0aGUgdHlwZSBvZiB0eXBl IG9mIHRoZSByZW1vdGUgUENJIGRldmljZS4gSXQgaXMKK2EgcGFzcyB0aHJvdWdoIGRldmljZSBh cyBmYXIgYXMgUUVNVSBpcyBjb25jZXJuZWQuCisKK2NvbW11bmljYXRpb24gd2l0aCBlbXVsYXRp b24gcHJvY2VzcworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK3ByaW1h cnkgY2hhbm5lbAorJycnJycnJycnJycnJycnCisKK1RoZSBwcmltYXJ5IGNoYW5uZWwgKHJlZmVy cmVkIHRvIGFzIGNvbSBpbiB0aGUgY29kZSkgaXMgdXNlZCB0byBib290c3RyYXAKK3RoZSByZW1v dGUgcHJvY2Vzcy4gSXQgaXMgYWxzbyB1c2VkIHRvIHBhc3Mgb24gZGV2aWNlLWFnbm9zdGljIGNv bW1hbmRzCitsaWtlIHJlc2V0LgorCitwZXItZGV2aWNlIGNoYW5uZWxzCisnJycnJycnJycnJycn JycnJycnCisKK0VhY2ggcmVtb3RlIGRldmljZSBjb21tdW5pY2F0ZXMgd2l0aCBRRU1VIHVzaW5n IGEgZGVkaWNhdGVkIGNvbW11bmljYXRpb24KK2NoYW5uZWwuIFRoZSBwcm94eSBvYmplY3Qgc2V0 cyB1cCB0aGlzIGNoYW5uZWwgdXNpbmcgdGhlIHByaW1hcnkKK2NoYW5uZWwgZHVyaW5nIGl0cyBp bml0aWFsaXphdGlvbi4KKworUUVNVSBkZXZpY2UgcHJveHkgb2JqZWN0cworfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgorCitRRU1VIGhhcyBhbiBvYmplY3QgbW9kZWwgYmFzZWQgb24gc3ViLWNs YXNzZXMgaW5oZXJpdGVkIGZyb20gdGhlCisib2JqZWN0IiBzdXBlci1jbGFzcy4gVGhlIHN1Yi1j bGFzc2VzIHRoYXQgYXJlIG9mIGludGVyZXN0IGhlcmUgYXJlIHRoZQorImRldmljZSIgYW5kICJi dXMiIHN1Yi1jbGFzc2VzIHdob3NlIGNoaWxkIHN1Yi1jbGFzc2VzIG1ha2UgdXAgdGhlCitkZXZp Y2UgdHJlZSBvZiBhIFFFTVUgZW11bGF0ZWQgc3lzdGVtLgorCitUaGUgcHJveHkgb2JqZWN0IG1v ZGVsIHdpbGwgdXNlIGRldmljZSBwcm94eSBvYmplY3RzIHRvIHJlcGxhY2UgdGhlCitkZXZpY2Ug ZW11bGF0aW9uIGNvZGUgd2l0aGluIHRoZSBRRU1VIHByb2Nlc3MuIFRoZXNlIG9iamVjdHMgd2ls bCBsaXZlCitpbiB0aGUgc2FtZSBwbGFjZSBpbiB0aGUgb2JqZWN0IGFuZCBidXMgaGllcmFyY2hp ZXMgYXMgdGhlIG9iamVjdHMgdGhleQorcmVwbGFjZS4gaS5lLiwgdGhlIHByb3h5IG9iamVjdCBm b3IgYW4gTFNJIFNDU0kgY29udHJvbGxlciB3aWxsIGJlIGEKK3N1Yi1jbGFzcyBvZiB0aGUgInBj aS1kZXZpY2UiIGNsYXNzLCBhbmQgd2lsbCBoYXZlIHRoZSBzYW1lIFBDSSBidXMKK3BhcmVudCBh bmQgdGhlIHNhbWUgU0NTSSBidXMgY2hpbGQgb2JqZWN0cyBhcyB0aGUgTFNJIGNvbnRyb2xsZXIg b2JqZWN0CitpdCByZXBsYWNlcy4KKworSXQgaXMgd29ydGggbm90aW5nIHRoYXQgdGhlIHNhbWUg cHJveHkgb2JqZWN0IGlzIHVzZWQgdG8gbWVkaWF0ZSB3aXRoCithbGwgdHlwZXMgb2YgcmVtb3Rl IFBDSSBkZXZpY2VzLgorCitvYmplY3QgaW5pdGlhbGl6YXRpb24KK15eXl5eXl5eXl5eXl5eXl5e Xl5eXgorCitUaGUgUHJveHkgZGV2aWNlIG9iamVjdHMgYXJlIGluaXRpYWxpemVkIGluIHRoZSBl eGFjdCBzYW1lIG1hbm5lciBpbgord2hpY2ggYW55IG90aGVyIFFFTVUgZGV2aWNlIHdvdWxkIGJl IGluaXRpYWxpemVkLgorCitJbiBhZGRpdGlvbiwgdGhlIFByb3h5IG9iamVjdHMgcGVyZm9ybSB0 aGUgZm9sbG93aW5nIHR3byB0YXNrczoKKy0gUGFyc2VzIHRoZSAic29ja2V0IiBzdWIgb3B0aW9u IGFuZCBjb25uZWN0cyB0byB0aGUgcmVtb3RlIHByb2Nlc3MKK3VzaW5nIHRoaXMgY2hhbm5lbAor LSBVc2VzIHRoZSAiaWQiIHN1Yi1vcHRpb24gdG8gY29ubmVjdCB0byB0aGUgZW11bGF0ZWQgZGV2 aWNlIG9uIHRoZQorc2VwYXJhdGUgcHJvY2VzcworCitjbGFzc1xfaW5pdAorJycnJycnJycnJycK KworVGhlIGBgY2xhc3NfaW5pdCgpYGAgbWV0aG9kIG9mIGEgcHJveHkgb2JqZWN0IHdpbGwsIGlu IGdlbmVyYWwgYmVoYXZlCitzaW1pbGFybHkgdG8gdGhlIG9iamVjdCBpdCByZXBsYWNlcywgaW5j bHVkaW5nIHNldHRpbmcgYW55IHN0YXRpYworcHJvcGVydGllcyBhbmQgbWV0aG9kcyBuZWVkZWQg YnkgdGhlIHByb3h5LgorCitpbnN0YW5jZVxfaW5pdCAvIHJlYWxpemUKKycnJycnJycnJycnJycn JycnJycnJycnJworCitUaGUgYGBpbnN0YW5jZV9pbml0KClgYCBhbmQgYGByZWFsaXplKClgYCBm dW5jdGlvbnMgd291bGQgb25seSBuZWVkIHRvCitwZXJmb3JtIHRhc2tzIHJlbGF0ZWQgdG8gYmVp bmcgYSBwcm94eSwgc3VjaCBhcmUgcmVnaXN0ZXJpbmcgaXRzIG93bgorTU1JTyBoYW5kbGVycywg b3IgY3JlYXRpbmcgYSBjaGlsZCBidXMgdGhhdCBvdGhlciBwcm94eSBkZXZpY2VzIGNhbiBiZQor YXR0YWNoZWQgdG8gbGF0ZXIuCisKK090aGVyIHRhc2tzIHdpbGwgYmUgZGV2aWNlLXNwZWNpZmlj LiBGb3IgZXhhbXBsZSwgUENJIGRldmljZSBvYmplY3RzCit3aWxsIGluaXRpYWxpemUgdGhlIFBD SSBjb25maWcgc3BhY2UgaW4gb3JkZXIgdG8gbWFrZSBhIHZhbGlkIFBDSSBkZXZpY2UKK3RyZWUg d2l0aGluIHRoZSBRRU1VIHByb2Nlc3MuCisKK2FkZHJlc3Mgc3BhY2UgcmVnaXN0cmF0aW9uCite Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitNb3N0IGRldmljZXMgYXJlIGRyaXZlbiBieSBn dWVzdCBkZXZpY2UgZHJpdmVyIGFjY2Vzc2VzIHRvIElPIGFkZHJlc3Nlcworb3IgcG9ydHMuIFRo ZSBRRU1VIGRldmljZSBlbXVsYXRpb24gY29kZSB1c2VzIFFFTVUncyBtZW1vcnkgcmVnaW9uCitm dW5jdGlvbiBjYWxscyAoc3VjaCBhcyBgYG1lbW9yeV9yZWdpb25faW5pdF9pbygpYGApIHRvIGFk ZCBjYWxsYmFjaworZnVuY3Rpb25zIHRoYXQgUUVNVSB3aWxsIGludm9rZSB3aGVuIHRoZSBndWVz dCBhY2Nlc3NlcyB0aGUgZGV2aWNlJ3MKK2FyZWFzIG9mIHRoZSBJTyBhZGRyZXNzIHNwYWNlLiBX aGVuIGEgZ3Vlc3QgZHJpdmVyIGRvZXMgYWNjZXNzIHRoZQorZGV2aWNlLCB0aGUgVk0gd2lsbCBl eGl0IEhXIHZpcnR1YWxpemF0aW9uIG1vZGUgYW5kIHJldHVybiB0byBRRU1VLAord2hpY2ggd2ls bCB0aGVuIGxvb2t1cCBhbmQgZXhlY3V0ZSB0aGUgY29ycmVzcG9uZGluZyBjYWxsYmFjayBmdW5j dGlvbi4KKworQSBwcm94eSBvYmplY3Qgd291bGQgbmVlZCB0byBtaXJyb3IgdGhlIG1lbW9yeSBy ZWdpb24gY2FsbHMgdGhlIGFjdHVhbAorZGV2aWNlIGVtdWxhdG9yIHdvdWxkIHBlcmZvcm0gaW4g aXRzIGluaXRpYWxpemF0aW9uIGNvZGUsIGJ1dCB3aXRoIGl0cworb3duIGNhbGxiYWNrcy4gV2hl biBpbnZva2VkIGJ5IFFFTVUgYXMgYSByZXN1bHQgb2YgYSBndWVzdCBJTyBvcGVyYXRpb24sCit0 aGV5IHdpbGwgZm9yd2FyZCB0aGUgb3BlcmF0aW9uIHRvIHRoZSBkZXZpY2UgZW11bGF0aW9uIHBy b2Nlc3MuCisKK1BDSSBjb25maWcgc3BhY2UKK15eXl5eXl5eXl5eXl5eXl4KKworUENJIGRldmlj ZXMgYWxzbyBoYXZlIGEgY29uZmlndXJhdGlvbiBzcGFjZSB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBi eSB0aGUKK2d1ZXN0IGRyaXZlci4gR3Vlc3QgYWNjZXNzZXMgdG8gdGhpcyBzcGFjZSBpcyBub3Qg aGFuZGxlZCBieSB0aGUgZGV2aWNlCitlbXVsYXRpb24gb2JqZWN0LCBidXQgYnkgaXRzIFBDSSBw YXJlbnQgb2JqZWN0LiBNdWNoIG9mIHRoaXMgc3BhY2UgaXMKK3JlYWQtb25seSwgYnV0IGNlcnRh aW4gcmVnaXN0ZXJzIChlc3BlY2lhbGx5IEJBUiBhbmQgTVNJLXJlbGF0ZWQgb25lcykKK25lZWQg dG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgZW11bGF0aW9uIHByb2Nlc3MuCisKK1BDSSBwYXJlbnQg cHJveHkKKycnJycnJycnJycnJycnJycKKworT25lIHdheSB0byBwcm9wYWdhdGUgZ3Vlc3QgUENJ IGNvbmZpZyBhY2Nlc3NlcyBpcyB0byBjcmVhdGUgYQorInBjaS1kZXZpY2UtcHJveHkiIGNsYXNz IHRoYXQgY2FuIHNlcnZlIGFzIHRoZSBwYXJlbnQgb2YgYSBQQ0kgZGV2aWNlCitwcm94eSBvYmpl Y3QuIFRoaXMgY2xhc3MncyBwYXJlbnQgd291bGQgYmUgInBjaS1kZXZpY2UiIGFuZCBpdCB3b3Vs ZAorb3ZlcnJpZGUgdGhlIFBDSSBwYXJlbnQncyBgYGNvbmZpZ19yZWFkKClgYCBhbmQgYGBjb25m aWdfd3JpdGUoKWBgCittZXRob2RzIHdpdGggb25lcyB0aGF0IGZvcndhcmQgdGhlc2Ugb3BlcmF0 aW9ucyB0byB0aGUgZW11bGF0aW9uCitwcm9ncmFtLgorCitpbnRlcnJ1cHQgcmVjZWlwdAorXl5e Xl5eXl5eXl5eXl5eXl4KKworQSBwcm94eSBmb3IgYSBkZXZpY2UgdGhhdCBnZW5lcmF0ZXMgaW50 ZXJydXB0cyB3aWxsIG5lZWQgdG8gY3JlYXRlIGEKK3NvY2tldCB0byByZWNlaXZlIGludGVycnVw dCBpbmRpY2F0aW9ucyBmcm9tIHRoZSBlbXVsYXRpb24gcHJvY2Vzcy4gQW4KK2luY29taW5nIGlu dGVycnVwdCBpbmRpY2F0aW9uIHdvdWxkIHRoZW4gYmUgc2VudCB1cCB0byBpdHMgYnVzIHBhcmVu dCB0bworYmUgaW5qZWN0ZWQgaW50byB0aGUgZ3Vlc3QuIEZvciBleGFtcGxlLCBhIFBDSSBkZXZp Y2Ugb2JqZWN0IG1heSB1c2UKK2BgcGNpX3NldF9pcnEoKWBgLgorCitsaXZlIG1pZ3JhdGlvbgor Xl5eXl5eXl5eXl5eXl4KKworVGhlIHByb3h5IHdpbGwgcmVnaXN0ZXIgdG8gc2F2ZSBhbmQgcmVz dG9yZSBhbnkgKnZtc3RhdGUqIGl0IG5lZWRzIG92ZXIKK2EgbGl2ZSBtaWdyYXRpb24gZXZlbnQu IFRoZSBkZXZpY2UgcHJveHkgZG9lcyBub3QgbmVlZCB0byBtYW5hZ2UgdGhlCityZW1vdGUgZGV2 aWNlJ3MgKnZtc3RhdGUqOyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcmVtb3RlIHByb2Nl c3MKK3Byb3h5IChzZWUgYmVsb3cpLgorCitRRU1VIHJlbW90ZSBkZXZpY2Ugb3BlcmF0aW9uCit+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0dlbmVyaWMgZGV2aWNlIG9wZXJhdGlvbnMs IHN1Y2ggYXMgRE1BLCB3aWxsIGJlIHBlcmZvcm1lZCBieSB0aGUgcmVtb3RlCitwcm9jZXNzIHBy b3h5IGJ5IHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIHJlbW90ZSBwcm9jZXNzLgorCitETUEgb3Bl cmF0aW9ucworXl5eXl5eXl5eXl5eXl4KKworRE1BIG9wZXJhdGlvbnMgd291bGQgYmUgaGFuZGxl ZCBtdWNoIGxpa2Ugdmhvc3QgYXBwbGljYXRpb25zIGRvLiBPbmUgb2YKK3RoZSBpbml0aWFsIG1l c3NhZ2VzIHNlbnQgdG8gdGhlIGVtdWxhdGlvbiBwcm9jZXNzIGlzIGEgZ3Vlc3QgbWVtb3J5Cit0 YWJsZS4gRWFjaCBlbnRyeSBpbiB0aGlzIHRhYmxlIGNvbnNpc3RzIG9mIGEgZmlsZSBkZXNjcmlw dG9yIGFuZCBzaXplCit0aGF0IHRoZSBlbXVsYXRpb24gcHJvY2VzcyBjYW4gYGBtbWFwKClgYCB0 byBkaXJlY3RseSBhY2Nlc3MgZ3Vlc3QKK21lbW9yeSwgc2ltaWxhciB0byBgYHZob3N0X3VzZXJf c2V0X21lbV90YWJsZSgpYGAuIE5vdGUgZ3Vlc3QgbWVtb3J5CittdXN0IGJlIGJhY2tlZCBieSBm aWxlIGRlc2NyaXB0b3JzLCBzdWNoIGFzIHdoZW4gUUVNVSBpcyBnaXZlbiB0aGUKKyotbWVtLXBh dGgqIGNvbW1hbmQgbGluZSBvcHRpb24uCisKK0lPTU1VIG9wZXJhdGlvbnMKK15eXl5eXl5eXl5e Xl5eXl4KKworV2hlbiB0aGUgZW11bGF0ZWQgc3lzdGVtIGluY2x1ZGVzIGFuIElPTU1VLCB0aGUg cmVtb3RlIHByb2Nlc3MgcHJveHkgaW4KK1FFTVUgd2lsbCBuZWVkIHRvIGNyZWF0ZSBhIHNvY2tl dCBmb3IgSU9NTVUgcmVxdWVzdHMgZnJvbSB0aGUgZW11bGF0aW9uCitwcm9jZXNzLiBJdCB3aWxs IGhhbmRsZSB0aG9zZSByZXF1ZXN0cyB3aXRoIGFuCitgYGFkZHJlc3Nfc3BhY2VfZ2V0X2lvdGxi X2VudHJ5KClgYCBjYWxsLiBJbiBvcmRlciB0byBoYW5kbGUgSU9NTVUKK3VubWFwcywgdGhlIHJl bW90ZSBwcm9jZXNzIHByb3h5IHdpbGwgYWxzbyByZWdpc3RlciBhcyBhIGxpc3RlbmVyIG9uIHRo ZQorZGV2aWNlJ3MgRE1BIGFkZHJlc3Mgc3BhY2UuIFdoZW4gYW4gSU9NTVUgbWVtb3J5IHJlZ2lv biBpcyBjcmVhdGVkCit3aXRoaW4gdGhlIERNQSBhZGRyZXNzIHNwYWNlLCBhbiBJT01NVSBub3Rp ZmllciBmb3IgdW5tYXBzIHdpbGwgYmUgYWRkZWQKK3RvIHRoZSBtZW1vcnkgcmVnaW9uIHRoYXQg d2lsbCBmb3J3YXJkIHVubWFwcyB0byB0aGUgZW11bGF0aW9uIHByb2Nlc3MKK292ZXIgdGhlIElP TU1VIHNvY2tldC4KKworZGV2aWNlIGhvdC1wbHVnIHZpYSBRTVAKK15eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eCisKK0FuIFFNUCAiZGV2aWNlXF9hZGQiIGNvbW1hbmQgY2FuIGFkZCBhIGRldmljZSBl bXVsYXRlZCBieSBhIHJlbW90ZQorcHJvY2Vzcy4gSXQgd2lsbCBhbHNvIGhhdmUgInJpZCIgb3B0 aW9uIHRvIHRoZSBjb21tYW5kLCBqdXN0IGFzIHRoZQorKi1kZXZpY2UqIGNvbW1hbmQgbGluZSBv cHRpb24gZG9lcy4gVGhlIHJlbW90ZSBwcm9jZXNzIG1heSBlaXRoZXIgYmUgb25lCitzdGFydGVk IGF0IFFFTVUgc3RhcnR1cCwgb3IgYmUgb25lIGFkZGVkIGJ5IHRoZSAiYWRkLXByb2Nlc3MiIFFN UAorY29tbWFuZCBkZXNjcmliZWQgYWJvdmUuIEluIGVpdGhlciBjYXNlLCB0aGUgcmVtb3RlIHBy b2Nlc3MgcHJveHkgd2lsbAorZm9yd2FyZCB0aGUgbmV3IGRldmljZSdzIEpTT04gZGVzY3JpcHRp b24gdG8gdGhlIGNvcnJlc3BvbmRpbmcgZW11bGF0aW9uCitwcm9jZXNzLgorCitsaXZlIG1pZ3Jh dGlvbgorXl5eXl5eXl5eXl5eXl4KKworVGhlIHJlbW90ZSBwcm9jZXNzIHByb3h5IHdpbGwgYWxz byByZWdpc3RlciBmb3IgbGl2ZSBtaWdyYXRpb24KK25vdGlmaWNhdGlvbnMgd2l0aCBgYHZtc3Rh dGVfcmVnaXN0ZXIoKWBgLiBXaGVuIGNhbGxlZCB0byBzYXZlIHN0YXRlLAordGhlIHByb3h5IHdp bGwgc2VuZCB0aGUgcmVtb3RlIHByb2Nlc3MgYSBzZWNvbmRhcnkgc29ja2V0IGZpbGUKK2Rlc2Ny aXB0b3IgdG8gc2F2ZSB0aGUgcmVtb3RlIHByb2Nlc3MncyBkZXZpY2UgKnZtc3RhdGUqIG92ZXIu IFRoZQoraW5jb21pbmcgYnl0ZSBzdHJlYW0gbGVuZ3RoIGFuZCBkYXRhIHdpbGwgYmUgc2F2ZWQg YXMgdGhlIHByb3h5J3MKKyp2bXN0YXRlKi4gV2hlbiB0aGUgcHJveHkgaXMgcmVzdW1lZCBvbiBp dHMgbmV3IGhvc3QsIHRoaXMgKnZtc3RhdGUqCit3aWxsIGJlIGV4dHJhY3RlZCwgYW5kIGEgc2Vj b25kYXJ5IHNvY2tldCBmaWxlIGRlc2NyaXB0b3Igd2lsbCBiZSBzZW50Cit0byB0aGUgbmV3IHJl bW90ZSBwcm9jZXNzIHRocm91Z2ggd2hpY2ggaXQgcmVjZWl2ZXMgdGhlICp2bXN0YXRlKiBpbgor b3JkZXIgdG8gcmVzdG9yZSB0aGUgZGV2aWNlcyB0aGVyZS4KKworZGV2aWNlIGVtdWxhdGlvbiBp biByZW1vdGUgcHJvY2Vzcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitU aGUgcGFydHMgb2YgUUVNVSB0aGF0IHRoZSBlbXVsYXRpb24gcHJvZ3JhbSB3aWxsIG5lZWQgaW5j bHVkZSB0aGUKK29iamVjdCBtb2RlbDsgdGhlIG1lbW9yeSBlbXVsYXRpb24gb2JqZWN0czsgdGhl IGRldmljZSBlbXVsYXRpb24gb2JqZWN0cworb2YgdGhlIHRhcmdldGVkIGRldmljZSwgYW5kIGFu eSBkZXBlbmRlbnQgZGV2aWNlczsgYW5kLCB0aGUgZGV2aWNlJ3MKK2JhY2tlbmRzLiBJdCB3aWxs IGFsc28gbmVlZCBjb2RlIHRvIHNldHVwIHRoZSBtYWNoaW5lIGVudmlyb25tZW50LAoraGFuZGxl IHJlcXVlc3RzIGZyb20gdGhlIFFFTVUgcHJvY2VzcywgYW5kIHJvdXRlIG1hY2hpbmUtbGV2ZWwg cmVxdWVzdHMKKyhzdWNoIGFzIGludGVycnVwdHMgb3IgSU9NTVUgbWFwcGluZ3MpIGJhY2sgdG8g dGhlIFFFTVUgcHJvY2Vzcy4KKworaW5pdGlhbGl6YXRpb24KK15eXl5eXl5eXl5eXl5eCisKK1Ro ZSBwcm9jZXNzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIHdpbGwgZm9sbG93IHRoZSBzYW1lIHNl cXVlbmNlCitmb2xsb3dlZCBieSBRRU1VLiBJdCB3aWxsIGZpcnN0IGluaXRpYWxpemUgdGhlIGJh Y2tlbmQgb2JqZWN0cywgdGhlbgorZGV2aWNlIGVtdWxhdGlvbiBvYmplY3RzLiBUaGUgSlNPTiBk ZXNjcmlwdGlvbnMgc2VudCBieSB0aGUgUUVNVSBwcm9jZXNzCit3aWxsIGRyaXZlIHdoaWNoIG9i amVjdHMgbmVlZCB0byBiZSBjcmVhdGVkLgorCistICBhZGRyZXNzIHNwYWNlcworCitCZWZvcmUg dGhlIGRldmljZSBvYmplY3RzIGFyZSBjcmVhdGVkLCB0aGUgaW5pdGlhbCBhZGRyZXNzIHNwYWNl cyBhbmQKK21lbW9yeSByZWdpb25zIG11c3QgYmUgY29uZmlndXJlZCB3aXRoIGBgbWVtb3J5X21h cF9pbml0KClgYC4gVGhpcworY3JlYXRlcyBhIFJBTSBtZW1vcnkgcmVnaW9uIG9iamVjdCAoKnN5 c3RlbVxfbWVtb3J5KikgYW5kIGFuIElPIG1lbW9yeQorcmVnaW9uIG9iamVjdCAoKnN5c3RlbVxf aW8qKS4KKworLSAgUkFNCisKK1JBTSBtZW1vcnkgcmVnaW9uIGNyZWF0aW9uIHdpbGwgZm9sbG93 IGhvdyBgYHBjX21lbW9yeV9pbml0KClgYCBjcmVhdGVzCit0aGVtLCBidXQgbXVzdCB1c2UgYGBt ZW1vcnlfcmVnaW9uX2luaXRfcmFtX2Zyb21fZmQoKWBgIGluc3RlYWQgb2YKK2BgbWVtb3J5X3Jl Z2lvbl9hbGxvY2F0ZV9zeXN0ZW1fbWVtb3J5KClgYC4gVGhlIGZpbGUgZGVzY3JpcHRvcnMgbmVl ZGVkCit3aWxsIGJlIHN1cHBsaWVkIGJ5IHRoZSBndWVzdCBtZW1vcnkgdGFibGUgZnJvbSBhYm92 ZS4gVGhvc2UgUkFNIHJlZ2lvbnMKK3dvdWxkIHRoZW4gYmUgYWRkZWQgdG8gdGhlICpzeXN0ZW1c X21lbW9yeSogbWVtb3J5IHJlZ2lvbiB3aXRoCitgYG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lv bigpYGAuCisKKy0gIFBDSQorCitJTyBpbml0aWFsaXphdGlvbiB3aWxsIGJlIGRyaXZlbiBieSB0 aGUgSlNPTiBkZXNjcmlwdGlvbnMgc2VudCBmcm9tIHRoZQorUUVNVSBwcm9jZXNzLiBGb3IgYSBQ Q0kgZGV2aWNlLCBhIFBDSSBidXMgd2lsbCBuZWVkIHRvIGJlIGNyZWF0ZWQgd2l0aAorYGBwY2lf cm9vdF9idXNfbmV3KClgYCwgYW5kIGEgUENJIG1lbW9yeSByZWdpb24gd2lsbCBuZWVkIHRvIGJl IGNyZWF0ZWQKK2FuZCBhZGRlZCB0byB0aGUgKnN5c3RlbVxfbWVtb3J5KiBtZW1vcnkgcmVnaW9u IHdpdGgKK2BgbWVtb3J5X3JlZ2lvbl9hZGRfc3VicmVnaW9uX292ZXJsYXAoKWBgLiBUaGUgb3Zl cmxhcCB2ZXJzaW9uIGlzCityZXF1aXJlZCBmb3IgYXJjaGl0ZWN0dXJlcyB3aGVyZSBQQ0kgbWVt b3J5IG92ZXJsYXBzIHdpdGggUkFNIG1lbW9yeS4KKworTU1JTyBoYW5kbGluZworXl5eXl5eXl5e Xl5eXgorCitUaGUgZGV2aWNlIGVtdWxhdGlvbiBvYmplY3RzIHdpbGwgdXNlIGBgbWVtb3J5X3Jl Z2lvbl9pbml0X2lvKClgYCB0bworaW5zdGFsbCB0aGVpciBNTUlPIGhhbmRsZXJzLCBhbmQgYGBw Y2lfcmVnaXN0ZXJfYmFyKClgYCB0byBhc3NvY2lhdGUKK3Rob3NlIGhhbmRsZXJzIHdpdGggYSBQ Q0kgQkFSLCBhcyB0aGV5IGRvIHdpdGhpbiBRRU1VIGN1cnJlbnRseS4KKworSW4gb3JkZXIgdG8g dXNlIGBgYWRkcmVzc19zcGFjZV9ydygpYGAgaW4gdGhlIGVtdWxhdGlvbiBwcm9jZXNzIHRvCito YW5kbGUgTU1JTyByZXF1ZXN0cyBmcm9tIFFFTVUsIHRoZSBQQ0kgcGh5c2ljYWwgYWRkcmVzc2Vz IG11c3QgYmUgdGhlCitzYW1lIGluIHRoZSBRRU1VIHByb2Nlc3MgYW5kIHRoZSBkZXZpY2UgZW11 bGF0aW9uIHByb2Nlc3MuIEluIG9yZGVyIHRvCithY2NvbXBsaXNoIHRoYXQsIGd1ZXN0IEJBUiBw cm9ncmFtbWluZyBtdXN0IGFsc28gYmUgZm9yd2FyZGVkIGZyb20gUUVNVQordG8gdGhlIGVtdWxh dGlvbiBwcm9jZXNzLgorCitpbnRlcnJ1cHQgaW5qZWN0aW9uCiteXl5eXl5eXl5eXl5eXl5eXl5e CisKK1doZW4gZGV2aWNlIGVtdWxhdGlvbiB3YW50cyB0byBpbmplY3QgYW4gaW50ZXJydXB0IGlu dG8gdGhlIFZNLCB0aGUKK3JlcXVlc3QgY2xpbWJzIHRoZSBkZXZpY2UncyBidXMgb2JqZWN0IGhp ZXJhcmNoeSB1bnRpbCB0aGUgcG9pbnQgd2hlcmUgYQorYnVzIG9iamVjdCBrbm93cyBob3cgdG8g c2lnbmFsIHRoZSBpbnRlcnJ1cHQgdG8gdGhlIGd1ZXN0LiBUaGUgZGV0YWlscworZGVwZW5kIG9u IHRoZSB0eXBlIG9mIGludGVycnVwdCBiZWluZyByYWlzZWQuCisKKy0gIFBDSSBwaW4gaW50ZXJy dXB0cworCitPbiB4ODYgc3lzdGVtcywgdGhlcmUgaXMgYW4gZW11bGF0ZWQgSU9BUElDIG9iamVj dCBhdHRhY2hlZCB0byB0aGUgcm9vdAorUENJIGJ1cyBvYmplY3QsIGFuZCB0aGUgcm9vdCBQQ0kg b2JqZWN0IGZvcndhcmRzIGludGVycnVwdCByZXF1ZXN0cyB0bworaXQuIFRoZSBJT0FQSUMgb2Jq ZWN0LCBpbiB0dXJuLCBjYWxscyB0aGUgS1ZNIGRyaXZlciB0byBpbmplY3QgdGhlCitjb3JyZXNw b25kaW5nIGludGVycnVwdCBpbnRvIHRoZSBWTS4gVGhlIHNpbXBsZXN0IHdheSB0byBoYW5kbGUg dGhpcyBpbgorYW4gZW11bGF0aW9uIHByb2Nlc3Mgd291bGQgYmUgdG8gc2V0dXAgdGhlIHJvb3Qg UENJIGJ1cyBkcml2ZXIgKHZpYQorYGBwY2lfYnVzX2lycXMoKWBgKSB0byBzZW5kIGEgaW50ZXJy dXB0IHJlcXVlc3QgYmFjayB0byB0aGUgUUVNVQorcHJvY2VzcywgYW5kIGhhdmUgdGhlIGRldmlj ZSBwcm94eSBvYmplY3QgcmVmbGVjdCBpdCB1cCB0aGUgUENJIHRyZWUKK3RoZXJlLgorCistICBQ Q0kgTVNJL1ggaW50ZXJydXB0cworCitQQ0kgTVNJL1ggaW50ZXJydXB0cyBhcmUgaW1wbGVtZW50 ZWQgaW4gSFcgYXMgRE1BIHdyaXRlcyB0byBhCitDUFUtc3BlY2lmaWMgUENJIGFkZHJlc3MuIElu IFFFTVUgb24geDg2LCBhIEtWTSBBUElDIG9iamVjdCByZWNlaXZlcwordGhlc2UgRE1BIHdyaXRl cywgdGhlbiBjYWxscyBpbnRvIHRoZSBLVk0gZHJpdmVyIHRvIGluamVjdCB0aGUgaW50ZXJydXB0 CitpbnRvIHRoZSBWTS4gQSBzaW1wbGUgZW11bGF0aW9uIHByb2Nlc3MgaW1wbGVtZW50YXRpb24g d291bGQgYmUgdG8gc2VuZAordGhlIE1TSSBETUEgYWRkcmVzcyBmcm9tIFFFTVUgYXMgYSBtZXNz YWdlIGF0IGluaXRpYWxpemF0aW9uLCB0aGVuCitpbnN0YWxsIGFuIGFkZHJlc3Mgc3BhY2UgaGFu ZGxlciBhdCB0aGF0IGFkZHJlc3Mgd2hpY2ggZm9yd2FyZHMgdGhlIE1TSQorbWVzc2FnZSBiYWNr IHRvIFFFTVUuCisKK0RNQSBvcGVyYXRpb25zCiteXl5eXl5eXl5eXl5eXgorCitXaGVuIGEgZW11 bGF0aW9uIG9iamVjdCB3YW50cyB0byBETUEgaW50byBvciBvdXQgb2YgZ3Vlc3QgbWVtb3J5LCBp dAorZmlyc3QgbXVzdCB1c2UgZG1hXF9tZW1vcnlcX21hcCgpIHRvIGNvbnZlcnQgdGhlIERNQSBh ZGRyZXNzIHRvIGEgbG9jYWwKK3ZpcnR1YWwgYWRkcmVzcy4gVGhlIGVtdWxhdGlvbiBwcm9jZXNz IG1lbW9yeSByZWdpb24gb2JqZWN0cyBzZXR1cCBhYm92ZQord2lsbCBiZSB1c2VkIHRvIHRyYW5z bGF0ZSB0aGUgRE1BIGFkZHJlc3MgdG8gYSBsb2NhbCB2aXJ0dWFsIGFkZHJlc3MgdGhlCitkZXZp Y2UgZW11bGF0aW9uIGNvZGUgY2FuIGFjY2Vzcy4KKworSU9NTVUKK15eXl5eCisKK1doZW4gYW4g SU9NTVUgaXMgaW4gdXNlIGluIFFFTVUsIERNQSB0cmFuc2xhdGlvbiB1c2VzIElPTU1VIG1lbW9y eQorcmVnaW9ucyB0byB0cmFuc2xhdGUgdGhlIERNQSBhZGRyZXNzIHRvIGEgZ3Vlc3QgcGh5c2lj YWwgYWRkcmVzcyBiZWZvcmUKK3RoYXQgcGh5c2ljYWwgYWRkcmVzcyBjYW4gYmUgdHJhbnNsYXRl ZCB0byBhIGxvY2FsIHZpcnR1YWwgYWRkcmVzcy4gVGhlCitlbXVsYXRpb24gcHJvY2VzcyB3aWxs IG5lZWQgc2ltaWxhciBmdW5jdGlvbmFsaXR5LgorCistICBJT1RMQiBjYWNoZQorCitUaGUgZW11 bGF0aW9uIHByb2Nlc3Mgd2lsbCBtYWludGFpbiBhIGNhY2hlIG9mIHJlY2VudCBJT01NVSB0cmFu c2xhdGlvbnMKKyh0aGUgSU9UTEIpLiBXaGVuIHRoZSB0cmFuc2xhdGUoKSBjYWxsYmFjayBvZiBh biBJT01NVSBtZW1vcnkgcmVnaW9uIGlzCitpbnZva2VkLCB0aGUgSU9UTEIgY2FjaGUgd2lsbCBi ZSBzZWFyY2hlZCBmb3IgYW4gZW50cnkgdGhhdCB3aWxsIG1hcCB0aGUKK0RNQSBhZGRyZXNzIHRv IGEgZ3Vlc3QgUEEuIE9uIGEgY2FjaGUgbWlzcywgYSBtZXNzYWdlIHdpbGwgYmUgc2VudCBiYWNr Cit0byBRRU1VIHJlcXVlc3RpbmcgdGhlIGNvcnJlc3BvbmRpbmcgdHJhbnNsYXRpb24gZW50cnks IHdoaWNoIGJlIGJvdGggYmUKK3VzZWQgdG8gcmV0dXJuIGEgZ3Vlc3QgYWRkcmVzcyBhbmQgYmUg YWRkZWQgdG8gdGhlIGNhY2hlLgorCistICBJT1RMQiBwdXJnZQorCitUaGUgSU9NTVUgZW11bGF0 aW9uIHdpbGwgYWxzbyBuZWVkIHRvIGFjdCBvbiB1bm1hcCByZXF1ZXN0cyBmcm9tIFFFTVUuCitU aGVzZSBoYXBwZW4gd2hlbiB0aGUgZ3Vlc3QgSU9NTVUgZHJpdmVyIHB1cmdlcyBhbiBlbnRyeSBm cm9tIHRoZQorZ3Vlc3QncyB0cmFuc2xhdGlvbiB0YWJsZS4KKworbGl2ZSBtaWdyYXRpb24KK15e Xl5eXl5eXl5eXl5eCisKK1doZW4gYSByZW1vdGUgcHJvY2VzcyByZWNlaXZlcyBhIGxpdmUgbWln cmF0aW9uIGluZGljYXRpb24gZnJvbSBRRU1VLCBpdAord2lsbCBzZXQgdXAgYSBjaGFubmVsIHVz aW5nIHRoZSByZWNlaXZlZCBmaWxlIGRlc2NyaXB0b3Igd2l0aAorYGBxaW9fY2hhbm5lbF9zb2Nr ZXRfbmV3X2ZkKClgYC4gVGhpcyBjaGFubmVsIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYQorKlFF TVVmaWxlKiB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYGBxZW11X3NhdmVfZGV2aWNlX3N0YXRlKClg YCB0byBzZW5kCit0aGUgcHJvY2VzcydzIGRldmljZSBzdGF0ZSBiYWNrIHRvIFFFTVUuIFRoaXMg bWV0aG9kIHdpbGwgYmUgcmV2ZXJzZWQgb24KK3Jlc3RvcmUgLSB0aGUgY2hhbm5lbCB3aWxsIGJl IHBhc3NlZCB0byBgYHFlbXVfbG9hZHZtX3N0YXRlKClgYCB0bworcmVzdG9yZSB0aGUgZGV2aWNl IHN0YXRlLgorCitBY2NlbGVyYXRpbmcgZGV2aWNlIGVtdWxhdGlvbgorfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KKworVGhlIG1lc3NhZ2VzIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGJlIHNl bnQgYmV0d2VlbiBRRU1VIGFuZCB0aGUgZW11bGF0aW9uCitwcm9jZXNzIGNhbiBhZGQgY29uc2lk ZXJhYmxlIGxhdGVuY3kgdG8gSU8gb3BlcmF0aW9ucy4gVGhlIG9wdGltaXphdGlvbnMKK2Rlc2Ny aWJlZCBiZWxvdyBhdHRlbXB0IHRvIGFtZWxpb3JhdGUgdGhpcyBlZmZlY3QgYnkgYWxsb3dpbmcg dGhlCitlbXVsYXRpb24gcHJvY2VzcyB0byBjb21tdW5pY2F0ZSBkaXJlY3RseSB3aXRoIHRoZSBr ZXJuZWwgS1ZNIGRyaXZlci4KK1RoZSBLVk0gZmlsZSBkZXNjcmlwdG9ycyBjcmVhdGVkIHdvdWxk IGJlIHBhc3NlZCB0byB0aGUgZW11bGF0aW9uIHByb2Nlc3MKK3ZpYSBpbml0aWFsaXphdGlvbiBt ZXNzYWdlcywgbXVjaCBsaWtlIHRoZSBndWVzdCBtZW1vcnkgdGFibGUgaXMgZG9uZS4KKyMjIyMg TU1JTyBhY2NlbGVyYXRpb24KKworVmhvc3QgdXNlciBhcHBsaWNhdGlvbnMgY2FuIHJlY2VpdmUg Z3Vlc3QgdmlydGlvIGRyaXZlciBzdG9yZXMgZGlyZWN0bHkKK2Zyb20gS1ZNLiBUaGUgaXNzdWUg d2l0aCB0aGUgZXZlbnRmZCBtZWNoYW5pc20gdXNlZCBieSB2aG9zdCB1c2VyIGlzCit0aGF0IGl0 IGRvZXMgbm90IHBhc3MgYW55IGRhdGEgd2l0aCB0aGUgZXZlbnQgaW5kaWNhdGlvbiwgc28gaXQg Y2Fubm90CitoYW5kbGUgZ3Vlc3QgbG9hZHMgb3IgZ3Vlc3Qgc3RvcmVzIHRoYXQgY2Fycnkgc3Rv cmUgZGF0YS4gVGhpcyBjb25jZXB0Citjb3VsZCwgaG93ZXZlciwgYmUgZXhwYW5kZWQgdG8gY292 ZXIgbW9yZSBjYXNlcy4KKworVGhlIGV4cGFuZGVkIGlkZWEgd291bGQgcmVxdWlyZSBhIG5ldyB0 eXBlIG9mIEtWTSBkZXZpY2U6CisqS1ZNXF9ERVZcX1RZUEVcX1VTRVIqLiBUaGlzIGRldmljZSBo YXMgdHdvIGZpbGUgZGVzY3JpcHRvcnM6IGEgbWFzdGVyCitkZXNjcmlwdG9yIHRoYXQgUUVNVSBj YW4gdXNlIGZvciBjb25maWd1cmF0aW9uLCBhbmQgYSBzbGF2ZSBkZXNjcmlwdG9yCit0aGF0IHRo ZSBlbXVsYXRpb24gcHJvY2VzcyBjYW4gdXNlIHRvIHJlY2VpdmUgTU1JTyBub3RpZmljYXRpb25z LiBRRU1VCit3b3VsZCBjcmVhdGUgYm90aCBkZXNjcmlwdG9ycyB1c2luZyB0aGUgS1ZNIGRyaXZl ciwgYW5kIHBhc3MgdGhlIHNsYXZlCitkZXNjcmlwdG9yIHRvIHRoZSBlbXVsYXRpb24gcHJvY2Vz cyB2aWEgYW4gaW5pdGlhbGl6YXRpb24gbWVzc2FnZS4KKworZGF0YSBzdHJ1Y3R1cmVzCiteXl5e Xl5eXl5eXl5eXl4KKworLSAgZ3Vlc3QgcGh5c2ljYWwgcmFuZ2UKKworVGhlIGd1ZXN0IHBoeXNp Y2FsIHJhbmdlIHN0cnVjdHVyZSBkZXNjcmliZXMgdGhlIGFkZHJlc3MgcmFuZ2UgdGhhdCBhCitk ZXZpY2Ugd2lsbCByZXNwb25kIHRvLiBJdCBpbmNsdWRlcyB0aGUgYmFzZSBhbmQgbGVuZ3RoIG9m IHRoZSByYW5nZSwgYXMKK3dlbGwgYXMgd2hpY2ggYnVzIHRoZSByYW5nZSByZXNpZGVzIG9uIChl LmcuLCBvbiBhbiB4ODZtYWNoaW5lLCBpdCBjYW4KK3NwZWNpZnkgd2hldGhlciB0aGUgcmFuZ2Ug cmVmZXJzIHRvIG1lbW9yeSBvciBJTyBhZGRyZXNzZXMpLgorCitBIGRldmljZSBjYW4gaGF2ZSBt dWx0aXBsZSBwaHlzaWNhbCBhZGRyZXNzIHJhbmdlcyBpdCByZXNwb25kcyB0byAoZS5nLiwKK2Eg UENJIGRldmljZSBjYW4gaGF2ZSBtdWx0aXBsZSBCQVJzKSwgc28gdGhlIHN0cnVjdHVyZSB3aWxs IGFsc28gaW5jbHVkZQorYW4gZW51bWVyYXRlZCBpZGVudGlmaWVyIHRvIHNwZWNpZnkgd2hpY2gg b2YgdGhlIGRldmljZSdzIHJhbmdlcyBpcworYmVpbmcgcmVmZXJyZWQgdG8uCisKKystLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBOYW1lICAgfCBEZXNjcmlwdGlvbiAg ICAgICAgICAgICAgICB8CisrPT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PSsK K3wgYWRkciAgIHwgcmFuZ2UgYmFzZSBhZGRyZXNzICAgICAgICAgfAorKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGxlbiAgICB8IHJhbmdlIGxlbmd0aCAgICAgICAg ICAgICAgIHwKKystLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBidXMg ICAgfCBhZGRyIHR5cGUgKG1lbW9yeSBvciBJTykgICB8CisrLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKK3wgaWQgICAgIHwgcmFuZ2UgSUQgKGUuZy4sIFBDSSBCQVIpICAg fAorKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKy0gIE1NSU8gcmVx dWVzdCBzdHJ1Y3R1cmUKKworVGhpcyBzdHJ1Y3R1cmUgZGVzY3JpYmVzIGFuIE1NSU8gb3BlcmF0 aW9uLiBJdCBpbmNsdWRlcyB3aGljaCBndWVzdAorcGh5c2ljYWwgcmFuZ2UgdGhlIE1NSU8gd2Fz IHdpdGhpbiwgdGhlIG9mZnNldCB3aXRoaW4gdGhhdCByYW5nZSwgdGhlCitNTUlPIHR5cGUgKGUu Zy4sIGxvYWQgb3Igc3RvcmUpLCBhbmQgaXRzIGxlbmd0aCBhbmQgZGF0YS4gSXQgYWxzbworaW5j bHVkZXMgYSBzZXF1ZW5jZSBudW1iZXIgdGhhdCBjYW4gYmUgdXNlZCB0byByZXBseSB0byB0aGUg TU1JTywgYW5kCit0aGUgQ1BVIHRoYXQgaXNzdWVkIHRoZSBNTUlPLgorCisrLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IE5hbWUgICAgIHwgRGVzY3JpcHRpb24gICAgICAg ICAgICB8CisrPT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT0rCit8IHJpZCAgICAg IHwgcmFuZ2UgTU1JTyBpcyB3aXRoaW4gICB8CisrLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCit8IG9mZnNldCAgIHwgb2Zmc2V0IHdpdGhpbmcgKnJpZCogICB8CisrLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IHR5cGUgICAgIHwgZS5nLiwgbG9hZCBv ciBzdG9yZSAgICB8CisrLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGxl biAgICAgIHwgTU1JTyBsZW5ndGggICAgICAgICAgICB8CisrLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCit8IGRhdGEgICAgIHwgc3RvcmUgZGF0YSAgICAgICAgICAgICB8Cisr LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IHNlcSAgICAgIHwgc2VxdWVu Y2UgSUQgICAgICAgICAgICB8CisrLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CisKKy0gIE1NSU8gcmVxdWVzdCBxdWV1ZXMKKworTU1JTyByZXF1ZXN0IHF1ZXVlcyBhcmUgRklG TyBhcnJheXMgb2YgTU1JTyByZXF1ZXN0IHN0cnVjdHVyZXMuIFRoZXJlCithcmUgdHdvIHF1ZXVl czogcGVuZGluZyBxdWV1ZSBpcyBmb3IgTU1JT3MgdGhhdCBoYXZlbid0IGJlZW4gcmVhZCBieSB0 aGUKK2VtdWxhdGlvbiBwcm9ncmFtLCBhbmQgdGhlIHNlbnQgcXVldWUgaXMgZm9yIE1NSU9zIHRo YXQgaGF2ZW4ndCBiZWVuCithY2tub3dsZWRnZWQuIFRoZSBtYWluIHVzZSBvZiB0aGUgc2Vjb25k IHF1ZXVlIGlzIHRvIHZhbGlkYXRlIE1NSU8KK3JlcGxpZXMgZnJvbSB0aGUgZW11bGF0aW9uIHBy b2dyYW0uCisKKy0gIHNjb3JlYm9hcmQKKworRWFjaCBDUFUgaW4gdGhlIFZNIGlzIGVtdWxhdGVk IGluIFFFTVUgYnkgYSBzZXBhcmF0ZSB0aHJlYWQsIHNvIG11bHRpcGxlCitNTUlPcyBtYXkgYmUg d2FpdGluZyB0byBiZSBjb25zdW1lZCBieSBhbiBlbXVsYXRpb24gcHJvZ3JhbSBhbmQgbXVsdGlw bGUKK3RocmVhZHMgbWF5IGJlIHdhaXRpbmcgZm9yIE1NSU8gcmVwbGllcy4gVGhlIHNjb3JlYm9h cmQgd291bGQgY29udGFpbiBhCit3YWl0IHF1ZXVlIGFuZCBzZXF1ZW5jZSBudW1iZXIgZm9yIHRo ZSBwZXItQ1BVIHRocmVhZHMsIGFsbG93aW5nIHRoZW0gdG8KK2JlIGluZGl2aWR1YWxseSB3b2tl biB3aGVuIHRoZSBNTUlPIHJlcGx5IGlzIHJlY2VpdmVkIGZyb20gdGhlIGVtdWxhdGlvbgorcHJv Z3JhbS4gSXQgYWxzbyB0cmFja3MgdGhlIG51bWJlciBvZiBwb3N0ZWQgTU1JTyBzdG9yZXMgdG8g dGhlIGRldmljZQordGhhdCBoYXZlbid0IGJlZW4gcmVwbGllZCB0bywgaW4gb3JkZXIgdG8gc2F0 aXNmeSB0aGUgUENJIGNvbnN0cmFpbnQKK3RoYXQgYSBsb2FkIHRvIGEgZGV2aWNlIHdpbGwgbm90 IGNvbXBsZXRlIHVudGlsIGFsbCBwcmV2aW91cyBzdG9yZXMgdG8KK3RoYXQgZGV2aWNlIGhhdmUg YmVlbiBjb21wbGV0ZWQuCisKKy0gIGRldmljZSBzaGFkb3cgbWVtb3J5CisKK1NvbWUgTU1JTyBs b2FkcyBkbyBub3QgaGF2ZSBkZXZpY2Ugc2lkZS1lZmZlY3RzLiBUaGVzZSBNTUlPcyBjYW4gYmUK K2NvbXBsZXRlZCB3aXRob3V0IHNlbmRpbmcgYSBNTUlPIHJlcXVlc3QgdG8gdGhlIGVtdWxhdGlv biBwcm9ncmFtIGlmIHRoZQorZW11bGF0aW9uIHByb2dyYW0gc2hhcmVzIGEgc2hhZG93IGltYWdl IG9mIHRoZSBkZXZpY2UncyBtZW1vcnkgaW1hZ2UKK3dpdGggdGhlIEtWTSBkcml2ZXIuCisKK1Ro ZSBlbXVsYXRpb24gcHJvZ3JhbSB3aWxsIGFzayB0aGUgS1ZNIGRyaXZlciB0byBhbGxvY2F0ZSBt ZW1vcnkgZm9yIHRoZQorc2hhZG93IGltYWdlLCBhbmQgd2lsbCB0aGVuIHVzZSBgYG1tYXAoKWBg IHRvIGRpcmVjdGx5IGFjY2VzcyBpdC4gVGhlCitlbXVsYXRpb24gcHJvZ3JhbSBjYW4gY29udHJv bCBLVk0gYWNjZXNzIHRvIHRoZSBzaGFkb3cgaW1hZ2UgYnkgc2VuZGluZworS1ZNIGFuIGFjY2Vz cyBtYXAgdGVsbGluZyBpdCB3aGljaCBhcmVhcyBvZiB0aGUgaW1hZ2UgaGF2ZSBubworc2lkZS1l ZmZlY3RzIChhbmQgY2FuIGJlIGNvbXBsZXRlZCBpbW1lZGlhdGVseSksIGFuZCB3aGljaCByZXF1 aXJlIGEKK01NSU8gcmVxdWVzdCB0byB0aGUgZW11bGF0aW9uIHByb2dyYW0uIFRoZSBhY2Nlc3Mg bWFwIGNhbiBhbHNvIGluZm9ybQordGhlIEtWTSBkcml2ZSB3aGljaCBzaXplIGFjY2Vzc2VzIGFy ZSBhbGxvd2VkIHRvIHRoZSBpbWFnZS4KKworbWFzdGVyIGRlc2NyaXB0b3IKK15eXl5eXl5eXl5e Xl5eXl5eCisKK1RoZSBtYXN0ZXIgZGVzY3JpcHRvciBpcyB1c2VkIGJ5IFFFTVUgdG8gY29uZmln dXJlIHRoZSBuZXcgS1ZNIGRldmljZS4KK1RoZSBkZXNjcmlwdG9yIHdvdWxkIGJlIHJldHVybmVk IGJ5IHRoZSBLVk0gZHJpdmVyIHdoZW4gUUVNVSBpc3N1ZXMgYQorKktWTVxfQ1JFQVRFXF9ERVZJ Q0UqIGBgaW9jdGwoKWBgIHdpdGggYSAqS1ZNXF9ERVZcX1RZUEVcX1VTRVIqIHR5cGUuCisKK0tW TVxfREVWXF9UWVBFXF9VU0VSIGRldmljZSBvcHMKKworCitUaGUgKktWTVxfREVWXF9UWVBFXF9V U0VSKiBvcGVyYXRpb25zIHZlY3RvciB3aWxsIGJlIHJlZ2lzdGVyZWQgYnkgYQorYGBrdm1fcmVn aXN0ZXJfZGV2aWNlX29wcygpYGAgY2FsbCB3aGVuIHRoZSBLVk0gc3lzdGVtIGluIGluaXRpYWxp emVkIGJ5CitgYGt2bV9pbml0KClgYC4gVGhlc2UgZGV2aWNlIG9wcyBhcmUgY2FsbGVkIGJ5IHRo ZSBLVk0gZHJpdmVyIHdoZW4gUUVNVQorZXhlY3V0ZXMgY2VydGFpbiBgYGlvY3RsKClgYCBvcGVy YXRpb25zIG9uIGl0cyBLVk0gZmlsZSBkZXNjcmlwdG9yLiBUaGV5CitpbmNsdWRlOgorCistICBj cmVhdGUKKworVGhpcyByb3V0aW5lIGlzIGNhbGxlZCB3aGVuIFFFTVUgaXNzdWVzIGEgKktWTVxf Q1JFQVRFXF9ERVZJQ0UqCitgYGlvY3RsKClgYCBvbiBpdHMgcGVyLVZNIGZpbGUgZGVzY3JpcHRv ci4gSXQgd2lsbCBhbGxvY2F0ZSBhbmQKK2luaXRpYWxpemUgYSBLVk0gdXNlciBkZXZpY2Ugc3Bl Y2lmaWMgZGF0YSBzdHJ1Y3R1cmUsIGFuZCBhc3NpZ24gdGhlCisqa3ZtXF9kZXZpY2UqIHByaXZh dGUgZmllbGQgdG8gaXQuCisKKy0gIGlvY3RsCisKK1RoaXMgcm91dGluZSBpcyBpbnZva2VkIHdo ZW4gUUVNVSBpc3N1ZXMgYW4gYGBpb2N0bCgpYGAgb24gdGhlIG1hc3RlcgorZGVzY3JpcHRvci4g VGhlIGBgaW9jdGwoKWBgIGNvbW1hbmRzIHN1cHBvcnRlZCBhcmUgZGVmaW5lZCBieSB0aGUgS1ZN CitkZXZpY2UgdHlwZS4gKktWTVxfREVWXF9UWVBFXF9VU0VSKiBvbmVzIHdpbGwgbmVlZCBzZXZl cmFsIGNvbW1hbmRzOgorCisqS1ZNXF9ERVZcX1VTRVJcX1NMQVZFXF9GRCogY3JlYXRlcyB0aGUg c2xhdmUgZmlsZSBkZXNjcmlwdG9yIHRoYXQgd2lsbAorYmUgcGFzc2VkIHRvIHRoZSBkZXZpY2Ug ZW11bGF0aW9uIHByb2dyYW0uIE9ubHkgb25lIHNsYXZlIGNhbiBiZSBjcmVhdGVkCitieSBlYWNo IG1hc3RlciBkZXNjcmlwdG9yLiBUaGUgZmlsZSBvcGVyYXRpb25zIHBlcmZvcm1lZCBieSB0aGlz CitkZXNjcmlwdG9yIGFyZSBkZXNjcmliZWQgYmVsb3cuCisKK1RoZSAqS1ZNXF9ERVZcX1VTRVJc X1BBXF9SQU5HRSogY29tbWFuZCBjb25maWd1cmVzIGEgZ3Vlc3QgcGh5c2ljYWwKK2FkZHJlc3Mg cmFuZ2UgdGhhdCB0aGUgc2xhdmUgZGVzY3JpcHRvciB3aWxsIHJlY2VpdmUgTU1JTyBub3RpZmlj YXRpb25zCitmb3IuIFRoZSByYW5nZSBpcyBzcGVjaWZpZWQgYnkgYSBndWVzdCBwaHlzaWNhbCBy YW5nZSBzdHJ1Y3R1cmUKK2FyZ3VtZW50LiBGb3IgYnVzZXMgdGhhdCBhc3NpZ24gYWRkcmVzc2Vz IHRvIGRldmljZXMgZHluYW1pY2FsbHksIHRoaXMKK2NvbW1hbmQgY2FuIGJlIGV4ZWN1dGVkIHdo aWxlIHRoZSBndWVzdCBpcyBydW5uaW5nLCBzdWNoIGFzIHRoZSBjYXNlCit3aGVuIGEgZ3Vlc3Qg Y2hhbmdlcyBhIGRldmljZSdzIFBDSSBCQVIgcmVnaXN0ZXJzLgorCisqS1ZNXF9ERVZcX1VTRVJc X1BBXF9SQU5HRSogd2lsbCB1c2UgYGBrdm1faW9fYnVzX3JlZ2lzdGVyX2RldigpYGAgdG8KK3Jl Z2lzdGVyICprdm1cX2lvXF9kZXZpY2VcX29wcyogY2FsbGJhY2tzIHRvIGJlIGludm9rZWQgd2hl biB0aGUgZ3Vlc3QKK3BlcmZvcm1zIGEgTU1JTyBvcGVyYXRpb24gd2l0aGluIHRoZSByYW5nZS4g V2hlbiBhIHJhbmdlIGlzIGNoYW5nZWQsCitgYGt2bV9pb19idXNfdW5yZWdpc3Rlcl9kZXYoKWBg IGlzIHVzZWQgdG8gcmVtb3ZlIHRoZSBwcmV2aW91cworaW5zdGFudGlhdGlvbi4KKworKktWTVxf REVWXF9VU0VSXF9USU1FT1VUKiB3aWxsIGNvbmZpZ3VyZSBhIHRpbWVvdXQgdmFsdWUgdGhhdCBz cGVjaWZpZXMKK2hvdyBsb25nIEtWTSB3aWxsIHdhaXQgZm9yIHRoZSBlbXVsYXRpb24gcHJvY2Vz cyB0byByZXNwb25kIHRvIGEgTU1JTworaW5kaWNhdGlvbi4KKworLSAgZGVzdHJveQorCitUaGlz IHJvdXRpbmUgaXMgY2FsbGVkIHdoZW4gdGhlIFZNIGluc3RhbmNlIGlzIGRlc3Ryb3llZC4gSXQg d2lsbCBuZWVkCit0byBkZXN0cm95IHRoZSBzbGF2ZSBkZXNjcmlwdG9yOyBhbmQgZnJlZSBhbnkg bWVtb3J5IGFsbG9jYXRlZCBieSB0aGUKK2RyaXZlciwgYXMgd2VsbCBhcyB0aGUgKmt2bVxfZGV2 aWNlKiBzdHJ1Y3R1cmUgaXRzZWxmLgorCitzbGF2ZSBkZXNjcmlwdG9yCiteXl5eXl5eXl5eXl5e Xl5eCisKK1RoZSBzbGF2ZSBkZXNjcmlwdG9yIHdpbGwgaGF2ZSBpdHMgb3duIGZpbGUgb3BlcmF0 aW9ucyB2ZWN0b3IsIHdoaWNoCityZXNwb25kcyB0byBzeXN0ZW0gY2FsbHMgb24gdGhlIGRlc2Ny aXB0b3IgcGVyZm9ybWVkIGJ5IHRoZSBkZXZpY2UKK2VtdWxhdGlvbiBwcm9ncmFtLgorCistICBy ZWFkCisKK0EgcmVhZCByZXR1cm5zIGFueSBwZW5kaW5nIE1NSU8gcmVxdWVzdHMgZnJvbSB0aGUg S1ZNIGRyaXZlciBhcyBNTUlPCityZXF1ZXN0IHN0cnVjdHVyZXMuIE11bHRpcGxlIHN0cnVjdHVy ZXMgY2FuIGJlIHJldHVybmVkIGlmIHRoZXJlIGFyZQorbXVsdGlwbGUgTU1JTyBvcGVyYXRpb25z IHBlbmRpbmcuIFRoZSBNTUlPIHJlcXVlc3RzIGFyZSBtb3ZlZCBmcm9tIHRoZQorcGVuZGluZyBx dWV1ZSB0byB0aGUgc2VudCBxdWV1ZSwgYW5kIGlmIHRoZXJlIGFyZSB0aHJlYWRzIHdhaXRpbmcg Zm9yCitzcGFjZSBpbiB0aGUgcGVuZGluZyB0byBhZGQgbmV3IE1NSU8gb3BlcmF0aW9ucywgdGhl eSB3aWxsIGJlIHdva2VuCitoZXJlLgorCistICB3cml0ZQorCitBIHdyaXRlIGFsc28gY29uc2lz dHMgb2YgYSBzZXQgb2YgTU1JTyByZXF1ZXN0cy4gVGhleSBhcmUgY29tcGFyZWQgdG8KK3RoZSBN TUlPIHJlcXVlc3RzIGluIHRoZSBzZW50IHF1ZXVlLiBNYXRjaGVzIGFyZSByZW1vdmVkIGZyb20g dGhlIHNlbnQKK3F1ZXVlLCBhbmQgYW55IHRocmVhZHMgd2FpdGluZyBmb3IgdGhlIHJlcGx5IGFy ZSB3b2tlbi4gSWYgYSBzdG9yZSBpcworcmVtb3ZlZCwgdGhlbiB0aGUgbnVtYmVyIG9mIHBvc3Rl ZCBzdG9yZXMgaW4gdGhlIHBlci1DUFUgc2NvcmVib2FyZCBpcworZGVjcmVtZW50ZWQuIFdoZW4g dGhlIG51bWJlciBpcyB6ZXJvLCBhbmQgYSBub24gc2lkZS1lZmZlY3QgbG9hZCB3YXMKK3dhaXRp bmcgZm9yIHBvc3RlZCBzdG9yZXMgdG8gY29tcGxldGUsIHRoZSBsb2FkIGlzIGNvbnRpbnVlZC4K KworLSAgaW9jdGwKKworVGhlcmUgYXJlIHNldmVyYWwgaW9jdGwoKXMgdGhhdCBjYW4gYmUgcGVy Zm9ybWVkIG9uIHRoZSBzbGF2ZQorZGVzY3JpcHRvci4KKworQSAqS1ZNXF9ERVZcX1VTRVJcX1NI QURPV1xfU0laRSogYGBpb2N0bCgpYGAgY2F1c2VzIHRoZSBLVk0gZHJpdmVyIHRvCithbGxvY2F0 ZSBtZW1vcnkgZm9yIHRoZSBzaGFkb3cgaW1hZ2UuIFRoaXMgbWVtb3J5IGNhbiBsYXRlciBiZQor YGBtbWFwKClgYFwgZWQgYnkgdGhlIGVtdWxhdGlvbiBwcm9jZXNzIHRvIHNoYXJlIHRoZSBlbXVs YXRpb24ncyB2aWV3IG9mCitkZXZpY2UgbWVtb3J5IHdpdGggdGhlIEtWTSBkcml2ZXIuCisKK0Eg KktWTVxfREVWXF9VU0VSXF9TSEFET1dcX0NUUkwqIGBgaW9jdGwoKWBgIGNvbnRyb2xzIGFjY2Vz cyB0byB0aGUKK3NoYWRvdyBpbWFnZS4gSXQgd2lsbCBzZW5kIHRoZSBLVk0gZHJpdmVyIGEgc2hh ZG93IGNvbnRyb2wgbWFwLCB3aGljaAorc3BlY2lmaWVzIHdoaWNoIGFyZWFzIG9mIHRoZSBpbWFn ZSBjYW4gY29tcGxldGUgZ3Vlc3QgbG9hZHMgd2l0aG91dAorc2VuZGluZyB0aGUgbG9hZCByZXF1 ZXN0IHRvIHRoZSBlbXVsYXRpb24gcHJvZ3JhbS4gSXQgd2lsbCBhbHNvIHNwZWNpZnkKK3RoZSBz aXplIG9mIGxvYWQgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkLgorCistICBwb2xsCisKK0Fu IGVtdWxhdGlvbiBwcm9ncmFtIHdpbGwgdXNlIHRoZSBgYHBvbGwoKWBgIGNhbGwgd2l0aCBhICpQ T0xMSU4qIGZsYWcKK3RvIGRldGVybWluZSBpZiB0aGVyZSBhcmUgTU1JTyByZXF1ZXN0cyB3YWl0 aW5nIHRvIGJlIHJlYWQuIEl0IHdpbGwKK3JldHVybiBpZiB0aGUgcGVuZGluZyBNTUlPIHJlcXVl c3QgcXVldWUgaXMgbm90IGVtcHR5LgorCistICBtbWFwCisKK1RoaXMgY2FsbCBhbGxvd3MgdGhl IGVtdWxhdGlvbiBwcm9ncmFtIHRvIGRpcmVjdGx5IGFjY2VzcyB0aGUgc2hhZG93CitpbWFnZSBh bGxvY2F0ZWQgYnkgdGhlIEtWTSBkcml2ZXIuIEFzIGRldmljZSBlbXVsYXRpb24gdXBkYXRlcyBk ZXZpY2UKK21lbW9yeSwgY2hhbmdlcyB3aXRoIG5vIHNpZGUtZWZmZWN0cyB3aWxsIGJlIHJlZmxl Y3RlZCBpbiB0aGUgc2hhZG93LAorYW5kIHRoZSBLVk0gZHJpdmVyIGNhbiBzYXRpc2Z5IGd1ZXN0 IGxvYWRzIGZyb20gdGhlIHNoYWRvdyBpbWFnZSB3aXRob3V0CituZWVkaW5nIHRvIHdhaXQgZm9y IHRoZSBlbXVsYXRpb24gcHJvZ3JhbS4KKwora3ZtXF9pb1xfZGV2aWNlIG9wcworXl5eXl5eXl5e Xl5eXl5eXl5eXgorCitFYWNoIEtWTSBwZXItQ1BVIHRocmVhZCBjYW4gaGFuZGxlIE1NSU8gb3Bl cmF0aW9uIG9uIGJlaGFsZiBvZiB0aGUgZ3Vlc3QKK1ZNLiBLVk0gd2lsbCB1c2UgdGhlIE1NSU8n cyBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIHRvIHNlYXJjaCBmb3IgYQorbWF0Y2hpbmcgKmt2bVxf aW9cX2RldmljZSogdG8gc2VlIGlmIHRoZSBNTUlPIGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBLVk0K K2RyaXZlciBpbnN0ZWFkIG9mIGV4aXRpbmcgYmFjayB0byBRRU1VLiBJZiBhIG1hdGNoIGlzIGZv dW5kLCB0aGUKK2NvcnJlc3BvbmRpbmcgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkLgorCistICBy ZWFkCisKK1RoaXMgY2FsbGJhY2sgaXMgaW52b2tlZCB3aGVuIHRoZSBndWVzdCBwZXJmb3JtcyBh IGxvYWQgdG8gdGhlIGRldmljZS4KK0xvYWRzIHdpdGggc2lkZS1lZmZlY3RzIG11c3QgYmUgaGFu ZGxlZCBzeW5jaHJvbm91c2x5LCB3aXRoIHRoZSBLVk0KK2RyaXZlciBwdXR0aW5nIHRoZSBRRU1V IHRocmVhZCB0byBzbGVlcCB3YWl0aW5nIGZvciB0aGUgZW11bGF0aW9uCitwcm9jZXNzIHJlcGx5 IGJlZm9yZSByZS1zdGFydGluZyB0aGUgZ3Vlc3QuIExvYWRzIHRoYXQgZG8gbm90IGhhdmUKK3Np ZGUtZWZmZWN0cyBtYXkgYmUgb3B0aW1pemVkIGJ5IHNhdGlzZnlpbmcgdGhlbSBmcm9tIHRoZSBz aGFkb3cgaW1hZ2UsCitpZiB0aGVyZSBhcmUgbm8gb3V0c3RhbmRpbmcgc3RvcmVzIHRvIHRoZSBk ZXZpY2UgYnkgdGhpcyBDUFUuIFBDSSBtZW1vcnkKK29yZGVyaW5nIGRlbWFuZHMgdGhhdCBhIGxv YWQgY2Fubm90IGNvbXBsZXRlIGJlZm9yZSBhbGwgb2xkZXIgc3RvcmVzIHRvCit0aGUgc2FtZSBk ZXZpY2UgaGF2ZSBiZWVuIGNvbXBsZXRlZC4KKworLSAgd3JpdGUKKworU3RvcmVzIGNhbiBiZSBo YW5kbGVkIGFzeW5jaHJvbm91c2x5IHVubGVzcyB0aGUgcGVuZGluZyBNTUlPIHJlcXVlc3QKK3F1 ZXVlIGlzIGZ1bGwuIEluIHRoaXMgY2FzZSwgdGhlIFFFTVUgdGhyZWFkIG11c3Qgc2xlZXAgd2Fp dGluZyBmb3IKK3NwYWNlIGluIHRoZSBxdWV1ZS4gU3RvcmVzIHdpbGwgaW5jcmVtZW50IHRoZSBu dW1iZXIgb2YgcG9zdGVkIHN0b3JlcyBpbgordGhlIHBlci1DUFUgc2NvcmVib2FyZCwgaW4gb3Jk ZXIgdG8gaW1wbGVtZW50IHRoZSBQQ0kgb3JkZXJpbmcKK2NvbnN0cmFpbnQgYWJvdmUuCisKK2lu dGVycnVwdCBhY2NlbGVyYXRpb24KK15eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworVGhpcyBwZXJm b3JtYW5jZSBvcHRpbWl6YXRpb24gd291bGQgd29yayBtdWNoIGxpa2UgYSB2aG9zdCB1c2VyCith cHBsaWNhdGlvbiBkb2VzLCB3aGVyZSB0aGUgUUVNVSBwcm9jZXNzIHNldHMgdXAgKmV2ZW50ZmRz KiB0aGF0IGNhdXNlCit0aGUgZGV2aWNlJ3MgY29ycmVzcG9uZGluZyBpbnRlcnJ1cHQgdG8gYmUg dHJpZ2dlcmVkIGJ5IHRoZSBLVk0gZHJpdmVyLgorVGhlc2UgaXJxIGZpbGUgZGVzY3JpcHRvcnMg YXJlIHNlbnQgdG8gdGhlIGVtdWxhdGlvbiBwcm9jZXNzIGF0Citpbml0aWFsaXphdGlvbiwgYW5k IGFyZSB1c2VkIHdoZW4gdGhlIGVtdWxhdGlvbiBjb2RlIHJhaXNlcyBhIGRldmljZQoraW50ZXJy dXB0LgorCitpbnR4IGFjY2VsZXJhdGlvbgorJycnJycnJycnJycnJycnJycKKworVHJhZGl0aW9u YWwgUENJIHBpbiBpbnRlcnJ1cHRzIGFyZSBsZXZlbCBiYXNlZCwgc28sIGluIGFkZGl0aW9uIHRv IGFuCitpcnEgZmlsZSBkZXNjcmlwdG9yLCBhIHJlLXNhbXBsaW5nIGZpbGUgZGVzY3JpcHRvciBu ZWVkcyB0byBiZSBzZW50IHRvCit0aGUgZW11bGF0aW9uIHByb2dyYW0uIFRoaXMgc2Vjb25kIGZp bGUgZGVzY3JpcHRvciBhbGxvd3MgbXVsdGlwbGUKK2RldmljZXMgc2hhcmluZyBhbiBpcnEgdG8g YmUgbm90aWZpZWQgd2hlbiB0aGUgaW50ZXJydXB0IGhhcyBiZWVuCithY2tub3dsZWRnZWQgYnkg dGhlIGd1ZXN0LCBzbyB0aGV5IGNhbiByZS10cmlnZ2VyIHRoZSBpbnRlcnJ1cHQgaWYgdGhlaXIK K2RldmljZSBoYXMgbm90IGRlLWFzc2VydGVkIGl0cyBpbnRlcnJ1cHQuCisKK2ludHggaXJxIGRl c2NyaXB0b3IKKworCitUaGUgaXJxIGRlc2NyaXB0b3JzIGFyZSBjcmVhdGVkIGJ5IHRoZSBwcm94 eSBvYmplY3QKK2BgdXNpbmcgZXZlbnRfbm90aWZpZXJfaW5pdCgpYGAgdG8gY3JlYXRlIHRoZSBp cnEgYW5kIHJlLXNhbXBsaW5nCisqZXZlbnRkcyosIGFuZCBgYGt2bV92bV9pb2N0bChLVk1fSVJR RkQpYGAgdG8gYmluZCB0aGVtIHRvIGFuIGludGVycnVwdC4KK1RoZSBpbnRlcnJ1cHQgcm91dGUg Y2FuIGJlIGZvdW5kIHdpdGgKK2BgcGNpX2RldmljZV9yb3V0ZV9pbnR4X3RvX2lycSgpYGAuCisK K2ludHggcm91dGluZyBjaGFuZ2VzCisKKworSW50eCByb3V0aW5nIGNhbiBiZSBjaGFuZ2VkIHdo ZW4gdGhlIGd1ZXN0IHByb2dyYW1zIHRoZSBBUElDIHRoZSBkZXZpY2UKK3BpbiBpcyBjb25uZWN0 ZWQgdG8uIFRoZSBwcm94eSBvYmplY3QgaW4gUUVNVSB3aWxsIHVzZQorYGBwY2lfZGV2aWNlX3Nl dF9pbnR4X3JvdXRpbmdfbm90aWZpZXIoKWBgIHRvIGJlIGluZm9ybWVkIG9mIGFueSBndWVzdAor Y2hhbmdlcyB0byB0aGUgcm91dGUuIFRoaXMgaGFuZGxlciB3aWxsIGJyb2FkbHkgZm9sbG93IHRo ZSBWRklPCitpbnRlcnJ1cHQgbG9naWMgdG8gY2hhbmdlIHRoZSByb3V0ZTogZGUtYXNzaWduaW5n IHRoZSBleGlzdGluZyBpcnEKK2Rlc2NyaXB0b3IgZnJvbSBpdHMgcm91dGUsIHRoZW4gYXNzaWdu aW5nIGl0IHRoZSBuZXcgcm91dGUuIChzZWUKK2BgdmZpb19pbnR4X3VwZGF0ZSgpYGApCisKK01T SS9YIGFjY2VsZXJhdGlvbgorJycnJycnJycnJycnJycnJycnCisKK01TSS9YIGludGVycnVwdHMg YXJlIHNlbnQgYXMgRE1BIHRyYW5zYWN0aW9ucyB0byB0aGUgaG9zdC4gVGhlIGludGVycnVwdAor ZGF0YSBjb250YWlucyBhIHZlY3RvciB0aGF0IGlzIHByb2dyYW1tZWQgYnkgdGhlIGd1ZXN0LCBB IGRldmljZSBtYXkgaGF2ZQorbXVsdGlwbGUgTVNJIGludGVycnVwdHMgYXNzb2NpYXRlZCB3aXRo IGl0LCBzbyBtdWx0aXBsZSBpcnEgZGVzY3JpcHRvcnMKK21heSBuZWVkIHRvIGJlIHNlbnQgdG8g dGhlIGVtdWxhdGlvbiBwcm9ncmFtLgorCitNU0kvWCBpcnEgZGVzY3JpcHRvcgorCisKK1RoaXMg Y2FzZSB3aWxsIGFsc28gZm9sbG93IHRoZSBWRklPIGV4YW1wbGUuIEZvciBlYWNoIE1TSS9YIGlu dGVycnVwdCwKK2FuICpldmVudGZkKiBpcyBjcmVhdGVkLCBhIHZpcnR1YWwgaW50ZXJydXB0IGlz IGFsbG9jYXRlZCBieQorYGBrdm1faXJxY2hpcF9hZGRfbXNpX3JvdXRlKClgYCwgYW5kIHRoZSB2 aXJ0dWFsIGludGVycnVwdCBpcyBib3VuZCB0bwordGhlIGV2ZW50ZmQgd2l0aCBgYGt2bV9pcnFj aGlwX2FkZF9pcnFmZF9ub3RpZmllcigpYGAuCisKK01TSS9YIGNvbmZpZyBzcGFjZSBjaGFuZ2Vz CisKKworVGhlIGd1ZXN0IG1heSBkeW5hbWljYWxseSB1cGRhdGUgc2V2ZXJhbCBNU0ktcmVsYXRl ZCB0YWJsZXMgaW4gdGhlCitkZXZpY2UncyBQQ0kgY29uZmlnIHNwYWNlLiBUaGVzZSBpbmNsdWRl IHBlci1NU0kgaW50ZXJydXB0IGVuYWJsZXMgYW5kCit2ZWN0b3IgZGF0YS4gQWRkaXRpb25hbGx5 LCBNU0lYIHRhYmxlcyBleGlzdCBpbiBkZXZpY2UgbWVtb3J5IHNwYWNlLCBub3QKK2NvbmZpZyBz cGFjZS4gTXVjaCBsaWtlIHRoZSBCQVIgY2FzZSBhYm92ZSwgdGhlIHByb3h5IG9iamVjdCBtdXN0 IGxvb2sKK2F0IGd1ZXN0IGNvbmZpZyBzcGFjZSBwcm9ncmFtbWluZyB0byBrZWVwIHRoZSBNU0kg aW50ZXJydXB0IHN0YXRlCitjb25zaXN0ZW50IGJldHdlZW4gUUVNVSBhbmQgdGhlIGVtdWxhdGlv biBwcm9ncmFtLgorCistLS0tLS0tLS0tLS0tLQorCitEaXNhZ2dyZWdhdGVkIENQVSBlbXVsYXRp b24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBZnRlciBJTyBzZXJ2aWNlcyBoYXZl IGJlZW4gZGlzYWdncmVnYXRlZCwgYSBzZWNvbmQgcGhhc2Ugd291bGQgYmUgdG8KK3NlcGFyYXRl IGEgcHJvY2VzcyB0byBoYW5kbGUgQ1BVIGluc3RydWN0aW9uIGVtdWxhdGlvbiBmcm9tIHRoZSBt YWluCitRRU1VIGNvbnRyb2wgZnVuY3Rpb24uIFRoZXJlIGFyZSBubyBvYmplY3Qgc2VwYXJhdGlv biBwb2ludHMgZm9yIHRoaXMKK2NvZGUsIHNvIHRoZSBmaXJzdCB0YXNrIHdvdWxkIGJlIHRvIGNy ZWF0ZSBvbmUuCisKK0hvc3QgYWNjZXNzIGNvbnRyb2xzCistLS0tLS0tLS0tLS0tLS0tLS0tLQor CitTZXBhcmF0aW5nIFFFTVUgcmVsaWVzIG9uIHRoZSBob3N0IE9TJ3MgYWNjZXNzIHJlc3RyaWN0 aW9uIG1lY2hhbmlzbXMgdG8KK2VuZm9yY2UgdGhhdCB0aGUgZGlmZmVyaW5nIHByb2Nlc3NlcyBj YW4gb25seSBhY2Nlc3MgdGhlIG9iamVjdHMgdGhleQorYXJlIGVudGl0bGVkIHRvLiBUaGVyZSBh cmUgYSBjb3VwbGUgdHlwZXMgb2YgbWVjaGFuaXNtcyB1c3VhbGx5IHByb3ZpZGVkCitieSBnZW5l cmFsIHB1cnBvc2UgT1NzLgorCitEaXNjcmV0aW9uYXJ5IGFjY2VzcyBjb250cm9sCit+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0Rpc2NyZXRpb25hcnkgYWNjZXNzIGNvbnRyb2wgYWxs b3dzIGVhY2ggdXNlciB0byBjb250cm9sIHdobyBjYW4gYWNjZXNzCit0aGVpciBmaWxlcy4gSW4g TGludXgsIHRoaXMgdHlwZSBvZiBjb250cm9sIGlzIHVzdWFsbHkgdG9vIGNvYXJzZSBmb3IKK1FF TVUgc2VwYXJhdGlvbiwgc2luY2UgaXQgb25seSBwcm92aWRlcyB0aHJlZSBzZXBhcmF0ZSBhY2Nl c3MgY29udHJvbHM6CitvbmUgZm9yIHRoZSBzYW1lIHVzZXIgSUQsIHRoZSBzZWNvbmQgZm9yIHVz ZXJzIElEcyB3aXRoIHRoZSBzYW1lIGdyb3VwCitJRCwgYW5kIHRoZSB0aGlyZCBmb3IgYWxsIG90 aGVyIHVzZXIgSURzLiBFYWNoIGRldmljZSBpbnN0YW5jZSB3b3VsZAorbmVlZCBhIHNlcGFyYXRl IHVzZXIgSUQgdG8gcHJvdmlkZSBhY2Nlc3MgY29udHJvbCwgd2hpY2ggaXMgbGlrZWx5IHRvIGJl Cit1bndpZWxkeSBmb3IgZHluYW1pY2FsbHkgY3JlYXRlZCBWTXMuCisKK01hbmRhdG9yeSBhY2Nl c3MgY29udHJvbAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK01hbmRhdG9yeSBhY2Nlc3Mg Y29udHJvbCBhbGxvd3MgdGhlIE9TIHRvIGFkZCBhbiBhZGRpdGlvbmFsIHNldCBvZgorY29udHJv bHMgb24gdG9wIG9mIGRpc2NyZXRpb25hcnkgYWNjZXNzIGZvciB0aGUgT1MgdG8gY29udHJvbC4g SXQgYWxzbworYWRkcyBvdGhlciBhdHRyaWJ1dGVzIHRvIHByb2Nlc3NlcyBhbmQgZmlsZXMgc3Vj aCBhcyB0eXBlcywgcm9sZXMsIGFuZAorY2F0ZWdvcmllcywgYW5kIGNhbiBlc3RhYmxpc2ggcnVs ZXMgZm9yIGhvdyBwcm9jZXNzZXMgYW5kIGZpbGVzIGNhbgoraW50ZXJhY3QuCisKK1R5cGUgZW5m b3JjZW1lbnQKK15eXl5eXl5eXl5eXl5eXl4KKworVHlwZSBlbmZvcmNlbWVudCBhc3NpZ25zIGEg KnR5cGUqIGF0dHJpYnV0ZSB0byBwcm9jZXNzZXMgYW5kIGZpbGVzLCBhbmQKK2FsbG93cyBydWxl cyB0byBiZSB3cml0dGVuIG9uIHdoYXQgb3BlcmF0aW9ucyBhIHByb2Nlc3Mgd2l0aCBhIGdpdmVu Cit0eXBlIGNhbiBwZXJmb3JtIG9uIGEgZmlsZSB3aXRoIGEgZ2l2ZW4gdHlwZS4gUUVNVSBzZXBh cmF0aW9uIGNvdWxkIHRha2UKK2FkdmFudGFnZSBvZiB0eXBlIGVuZm9yY2VtZW50IGJ5IHJ1bm5p bmcgdGhlIGVtdWxhdGlvbiBwcm9jZXNzZXMgd2l0aAorZGlmZmVyZW50IHR5cGVzLCBib3RoIGZy b20gdGhlIG1haW4gUUVNVSBwcm9jZXNzLCBhbmQgZnJvbSB0aGUgZW11bGF0aW9uCitwcm9jZXNz ZXMgb2YgZGlmZmVyZW50IGNsYXNzZXMgb2YgZGV2aWNlcy4KKworRm9yIGV4YW1wbGUsIGd1ZXN0 IGRpc2sgaW1hZ2VzIGFuZCBkaXNrIGVtdWxhdGlvbiBwcm9jZXNzZXMgY291bGQgaGF2ZQordHlw ZXMgc2VwYXJhdGUgZnJvbSB0aGUgbWFpbiBRRU1VIHByb2Nlc3MgYW5kIG5vbi1kaXNrIGVtdWxh dGlvbgorcHJvY2Vzc2VzLCBhbmQgdGhlIHR5cGUgcnVsZXMgY291bGQgcHJldmVudCBwcm9jZXNz ZXMgb3RoZXIgdGhhbiBkaXNrCitlbXVsYXRpb24gb25lcyBmcm9tIGFjY2Vzc2luZyBndWVzdCBk aXNrIGltYWdlcy4gU2ltaWxhcmx5LCBuZXR3b3JrCitlbXVsYXRpb24gcHJvY2Vzc2VzIGNhbiBo YXZlIGEgdHlwZSBzZXBhcmF0ZSBmcm9tIHRoZSBtYWluIFFFTVUgcHJvY2VzcworYW5kIG5vbi1u ZXR3b3JrIGVtdWxhdGlvbiBwcm9jZXNzLCBhbmQgb25seSB0aGF0IHR5cGUgY2FuIGFjY2VzcyB0 aGUKK2hvc3QgdHVuL3RhcCBkZXZpY2UgdXNlZCB0byBwcm92aWRlIGd1ZXN0IG5ldHdvcmtpbmcu CisKK0NhdGVnb3J5IGVuZm9yY2VtZW50CiteXl5eXl5eXl5eXl5eXl5eXl5eXgorCitDYXRlZ29y eSBlbmZvcmNlbWVudCBhc3NpZ25zIGEgc2V0IG9mIG51bWJlcnMgd2l0aGluIGEgZ2l2ZW4gcmFu Z2UgdG8KK3RoZSBwcm9jZXNzIG9yIGZpbGUuIFRoZSBwcm9jZXNzIGlzIGdyYW50ZWQgYWNjZXNz IHRvIHRoZSBmaWxlIGlmIHRoZQorcHJvY2VzcydzIHNldCBpcyBhIHN1cGVyc2V0IG9mIHRoZSBm aWxlJ3Mgc2V0LiBUaGlzIGVuZm9yY2VtZW50IGNhbiBiZQordXNlZCB0byBzZXBhcmF0ZSBtdWx0 aXBsZSBpbnN0YW5jZXMgb2YgZGV2aWNlcyBpbiB0aGUgc2FtZSBjbGFzcy4KKworRm9yIGV4YW1w bGUsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBkaXNrIGRldmljZXMgcHJvdmlkZXMgdG8gYSBndWVz dCwKK2VhY2ggZGV2aWNlIGVtdWxhdGlvbiBwcm9jZXNzIGNvdWxkIGJlIHByb3Zpc2lvbmVkIHdp dGggYSBzZXBhcmF0ZQorY2F0ZWdvcnkuIFRoZSBkaWZmZXJlbnQgZGV2aWNlIGVtdWxhdGlvbiBw cm9jZXNzZXMgd291bGQgbm90IGJlIGFibGUgdG8KK2FjY2VzcyBlYWNoIG90aGVyJ3MgYmFja2lu ZyBkaXNrIGltYWdlcy4KKworQWx0ZXJuYXRpdmVseSwgY2F0ZWdvcmllcyBjb3VsZCBiZSB1c2Vk IGluIGxpZXUgb2YgdGhlIHR5cGUgZW5mb3JjZW1lbnQKK3NjaGVtZSBkZXNjcmliZWQgYWJvdmUu IEluIHRoaXMgc2NlbmFyaW8sIGRpZmZlcmVudCBjYXRlZ29yaWVzIHdvdWxkIGJlCit1c2VkIHRv IHByZXZlbnQgZGV2aWNlIGVtdWxhdGlvbiBwcm9jZXNzZXMgaW4gZGlmZmVyZW50IGNsYXNzZXMg ZnJvbQorYWNjZXNzaW5nIHJlc291cmNlcyBhc3NpZ25lZCB0byBvdGhlciBjbGFzc2VzLgotLSAK Mi4yOS4yCgo=