From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: [PATCHv2 RFC] virtio-spec: flexible configuration layout Date: Wed, 9 Nov 2011 21:59:03 +0200 Message-ID: <20111109195901.GA28155@redhat.com> References: <87wrbkvh3v.fsf@rustcorp.com.au> <20111101114542.GA13434@redhat.com> <1320150813.3847.24.camel@lappy> <20111101124223.GA14060@redhat.com> <8739e7uy87.fsf@rustcorp.com.au> <20111102233110.GA20289@redhat.com> <20111108214021.GA4538@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20111108214021.GA4538@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Rusty Russell Cc: Krishna Kumar , kvm@vger.kernel.org, Pawel Moll , Wang Sheng-Hui , Alexey Kardashevskiy , lkml - Kernel Mailing List , virtualization@lists.linux-foundation.org, penberg@kernel.org, Christian Borntraeger , Sasha Levin , Amit Shah , avi@redhat.com List-Id: virtualization@lists.linuxfoundation.org SGVyZSdzIGFuIHVwZGF0ZWQgc3BlYyBwYXRjaC4gQ2hhbmdlcyBmcm9tIHYxOgotIGFkZCBhbiBl eGFtcGxlIGNvbmZpZ3VyYXRpb24KLSBzY2FsZSB0YWJsZXMgc28gdGhleSBmaXQgd2l0aGluIHBh Z2UKLSBjbGVhbiB1cCBzb21lIHJlbWFpbmluZyBpdGVtcyBtZW50aW9uaW5nIGZlYXR1cmUgYml0 IDMxCgpEZXNjcmlwdGlvbiBmcm9tIHYxOgpIZXJlJ3MgYSBzcGVjIGNoYW5nZSBkb2N1bWVudGlu ZyB3aGF0IG15IEMgcGF0Y2ggZG9lcwooYWxtb3N0IC0gSSB0d2Vha2VkIHRoZSBsYXlvdXQgYSBi aXQsIGJ1dCB0aGUgaWRlYSBpcyB0aGUgc2FtZSkuClNvbWUgbW9yZSBjbGVhbnVwcyBhcmUgbmVl ZGVkIGJ1dCBJIHRob3VnaHQgSSdkIHNlbmQgaXQKZm9yIGVhcmx5IGZsYW1lcy9jb21tZW50cy4K ClRoZSBpZGVhIGlzIHNpbXBsZTogd2Ugc3BsaXQgZnVuY3Rpb25hbGx5IHVucmVsYXRlZApyZWdp c3RlciBncm91cHMgdG8gaW5kZXBlbmRlbnQgc3RydWN0dXJlcywgYW5kIGxldAp0aGUgZGV2aWNl IHBsYWNlIGlzIGFueXdoZXJlIHVzaW5nIGEgY2FwYWJpbGl0eQppbiBQQ0kgY29uZmlndXJhdGlv biBzcGFjZS4KCkl0IGNhbiB0aGVuIGdvIGludG8gTU1JTyBzcGFjZSB3aGljaCBpcyBjaGVhcGVy IHRoYW4gUElPLgoKQSBsZWdhY3kgcG9ydGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBpcyBtaXJy b3JlZAppbiB0aGUgZmlyc3QgQkFSLCB0byBrZWVwIGxlZ2FjeSBkcml2ZXJzIHdvcmtpbmcuCkFu eSBuZXcgZmllbGRzIGNhbiBiZSBhZGRlZCBpbiBleGlzdGluZyBzdHJ1Y3R1cmVzCmF0IHRoZSBl bmQsIHNvIHRoZXkgd29uJ3QgYWZmZWN0IGxlZ2FjeS4KQWx0ZXJuYXRpdmVseSB3ZSBjYW4gYWRk IG5ldyBzdHJ1Y3R1cmVzIHdpdGggbmV3CnN0cnVjdHVyZSBJRHMsIHBvaW50ZWQgdG8gZnJvbSBQ Q0kgY29uZmlndXJhdGlvbiBzcGFjZS4KCkFzIHdlIGRvbid0IHlldCBoYXZlIGRldmljZXMgb3Ig ZHJpdmVycyB3aXRoIDY0IGJpdCBmZWF0dXJlcywKSSBkZWNpZGVkIHdlIGRvbid0IG5lZWQgaGln aCBmZWF0dXJlIGJpdHMgaW4gbGVnYWN5IHNwYWNlLgpUaGlzIGFsc28gZnJlZXMgdXAgZmVhdHVy ZSBiaXQgMzEgYXMgd2UgZG9uJ3QgbmVlZCBpdAp0byBlbmFibGUgaGlnaCBmZWF0dXJlIGJpdHMg YW55bW9yZS4KSSBkb24ndCB0aGluayBhbnkgcmVsZWFzZWQgc29mdHdhcmUgYWN0dWFsbHkgdXNl cyBpdAoodGhlIGt2bSB0b29sIEhFQUQgYXBwYXJlbnRseSBkb2VzLAogYnV0IEkgdGhpbmsgaXQn cyBub3QgdG9vIGxhdGUgdG8gZml4IGl0KS4KCkFzIHRoaXMgc29sdmVzIHRoZSBkeW5hbWljIHBs YWNlbWVudCBvZiBNU0lYIHZlY3RvcnMKYW5kIGhpZ2ggZmVhdHVyZSBiaXRzLApJIHRob3VnaHQg aXQncyBlYXNpZXIgdG8ganVzdCByZXNlcnZlIHNwYWNlIGZvciB0aGF0CnByb2dyYW1taW5nIHRo YW4gZ2l2ZSBpdCBhIHNlcGFyYXRlIHN0cnVjdHVyZS4gVGhpcwpjYW4gYmUgY2hhbmdlZCBieSBh IHBhdGNoIG9uIHRvcC4KCk5vdGUgdGhhdCBkYXRhIHBhdGggaXMgc3BsaXQgZnJvbSBjb25maWd1 cmF0aW9uLgoKUERGIHdpbGwgZm9sbG93LgoKUGxlYXNlIGNvbW1lbnQuCgpTaWduZWQtb2ZmLWJ5 OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgoKLS0tCgpkaWZmIC0tZ2l0IGEv dmlydGlvLXNwZWMubHl4IGIvdmlydGlvLXNwZWMubHl4CmluZGV4IDY0MjZmOGYuLjJjZTI1NTMg MTAwNjQ0Ci0tLSBhL3ZpcnRpby1zcGVjLmx5eAorKysgYi92aXJ0aW8tc3BlYy5seXgKQEAgLTMs NiArMyw5IEBACiBcYmVnaW5fZG9jdW1lbnQKIFxiZWdpbl9oZWFkZXIKIFx0ZXh0Y2xhc3MgcmVw b3J0CitcYmVnaW5fcHJlYW1ibGUKK1x1c2VwYWNrYWdle2dyYXBoaWN4fQorXGVuZF9wcmVhbWJs ZQogXHVzZV9kZWZhdWx0X29wdGlvbnMgZmFsc2UKIFxtYWludGFpbl91bmluY2x1ZGVkX2NoaWxk cmVuIGZhbHNlCiBcbGFuZ3VhZ2UgZW5nbGlzaApAQCAtNTYsNiArNTksNyBAQAogXGh0bWxfbWF0 aF9vdXRwdXQgMAogXGh0bWxfY3NzX2FzX2ZpbGUgMAogXGh0bWxfYmVfc3RyaWN0IGZhbHNlCitc YXV0aG9yIDE5ODYyNDYzNjUgIk1pY2hhZWwgUy4gVHNpcmtpbiIgCiBcZW5kX2hlYWRlcgogCiBc YmVnaW5fYm9keQpAQCAtNTcwLDcgKzU3NCwzNCBAQCBEZXZpY2UgQ29uZmlndXJhdGlvbgogXGVu ZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAotVG8gY29uZmlndXJlIHRoZSBkZXZp Y2UsIHdlIHVzZSB0aGUgZmlyc3QgSS9PIHJlZ2lvbiBvZiB0aGUgUENJIGRldmljZS4KK1RvIGNv bmZpZ3VyZSB0aGUgZGV2aWNlLCB3ZSAKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw NzgzMzU0Cit1c2UgSS9PIGFuZC9vciBtZW1vcnkgcmVnaW9ucyBvZiB0aGUgUENJIGRldmljZS4K KyBUaGVzZSBjb250YWluIHRoZSB2aXJ0aW8gaGVhZGVyIHJlZ2lzdGVycywgdGhlIG5vdGlmaWNh dGlvbiByZWdpc3RlciwgdGhlCisgSVNSIHN0YXR1cyByZWdpc3RlciBhbmQgZGV2aWNlIHNwZWNp ZmljIHJlZ2lzdGVycywgYXMgc3BlY2lmaWVkIGJ5IFZpcnRpbworIFN0cnVjdHVyZSBQQ0kgQ2Fw YWJpbGl0aWVzCitcYmVnaW5faW5zZXQgRm9vdAorc3RhdHVzIG9wZW4KKworXGJlZ2luX2xheW91 dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODc2NTkK K0ZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgZGV2aWNlcyBzaG91bGQgcHJlc2VudCBwYXJ0 IG9mIHRoZXNlIGNvbmZpZ3VyYXRpb24KKyByZWdpc3RlcnMgaW4gYSBsZWdhY3kgY29uZmlndXJh dGlvbiBzdHJ1Y3R1cmUgaW4gdGhlIGZpcnN0IEkvTyByZWdpb24gb2YKKyB0aGUgUENJIGRldmlj ZQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisuCitc ZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfZGVsZXRlZCAx OTg2MjQ2MzY1IDEzMjA3NjY1MTIKK3VzZSB0aGUgZmlyc3QgSS9PIHJlZ2lvbiBvZiB0aGUgUENJ IGRldmljZS4KICBUaGlzIGNvbnRhaW5zIGEgCiBcZW1waCBvbgogdmlydGlvIGhlYWRlcgpAQCAt NTc4LDEwNSArNjA5LDMxMTUgQEAgdmlydGlvIGhlYWRlcgogIGZvbGxvd2VkIGJ5IGEgCiBcZW1w aCBvbgogZGV2aWNlLXNwZWNpZmljIHJlZ2lvbi4KK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRf bGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKK1RoZXJlIG1heSBiZSBkaWZmZXJlbnQg d2lkdGhzIG9mIGFjY2Vzc2VzIHRvIHRoZSBJL08gcmVnaW9uOyB0aGUgCitcYmVnaW5faW5zZXQg UXVvdGVzIGVsZAorXGVuZF9pbnNldAorCituYXR1cmFsCitcYmVnaW5faW5zZXQgUXVvdGVzIGVy ZAorXGVuZF9pbnNldAorCisgYWNjZXNzIG1ldGhvZCBmb3IgZWFjaCBmaWVsZCBpbiB0aGUgdmly dGlvIGhlYWRlciBtdXN0IGJlIHVzZWQgKGkuZS4KKyAzMi1iaXQgYWNjZXNzZXMgZm9yIDMyLWJp dCBmaWVsZHMsIGV0YyksIGJ1dCB0aGUgZGV2aWNlLXNwZWNpZmljIHJlZ2lvbgorIGNhbiBiZSBh Y2Nlc3NlZCB1c2luZyBhbnkgd2lkdGggYWNjZXNzZXMsIGFuZCBzaG91bGQgb2J0YWluIHRoZSBz YW1lIHJlc3VsdHMuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCitOb3Rl IHRoYXQgdGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIHdoaWxlIHRoZSB2aXJ0aW8gaGVhZGVyCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc2NzI0OQorLCBub3RpZmljYXRpb24gYW5k IElTUiBzdGF0dXMgYXJlCitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwNzY3MjUxCisg aXMKK1xjaGFuZ2VfdW5jaGFuZ2VkCisgUENJIChpLmUuCisgbGl0dGxlKSBlbmRpYW4sIHRoZSBk ZXZpY2Utc3BlY2lmaWMKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3NjczMzUKKyBy ZWdpb24gaXMKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzY3MzM3CityZWdpc3Rl cnMgYXJlCitcY2hhbmdlX3VuY2hhbmdlZAorIGVuY29kZWQgaW4gdGhlIG5hdGl2ZSBlbmRpYW4g b2YgdGhlIGd1ZXN0ICh3aGVyZSBzdWNoIGRpc3RpbmN0aW9uIGlzIGFwcGxpY2FibGUKKykuCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc2NzY2MAorCitcZW5kX2xheW91dAorCitc YmVnaW5fbGF5b3V0IFN1YnNlY3Rpb24KK0RldmljZSBJbml0aWFsaXphdGlvbiBTZXF1ZW5jZQor XGJlZ2luX2luc2V0IENvbW1hbmRJbnNldCBsYWJlbAorTGF0ZXhDb21tYW5kIGxhYmVsCituYW1l ICJzdWI6RGV2aWNlLUluaXRpYWxpemF0aW9uLVNlcXVlbmNlIgorCitcZW5kX2luc2V0CisKKwor XGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorV2Ugc3RhcnQgd2l0aCBhbiBv dmVydmlldyBvZiBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHRoZW4gZXhwYW5kIG9uIHRoZSBkZXRh aWxzCisgb2YgdGhlIGRldmljZSBhbmQgaG93IGVhY2ggc3RlcCBpcyBwcmVmb3JtZWQuCitcZW5k X2xheW91dAorCitcYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQorUmVzZXQgdGhlIGRldmljZS4KKyBU aGlzIGlzIG5vdCByZXF1aXJlZCBvbiBpbml0aWFsIHN0YXJ0IHVwLgorXGVuZF9sYXlvdXQKKwor XGJlZ2luX2xheW91dCBFbnVtZXJhdGUKK1RoZSBBQ0tOT1dMRURHRSBzdGF0dXMgYml0IGlzIHNl dDogd2UgaGF2ZSBub3RpY2VkIHRoZSBkZXZpY2UuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5 b3V0IEVudW1lcmF0ZQorVGhlIERSSVZFUiBzdGF0dXMgYml0IGlzIHNldDogd2Uga25vdyBob3cg dG8gZHJpdmUgdGhlIGRldmljZS4KK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgRW51bWVy YXRlCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODM4MDg5CitQQ0kgY2FwYWJp bGl0eSBsaXN0IHNjYW4sIGRldGVjdGluZyB2aXJ0aW8gY29uZmlndXJhdGlvbiBsYXlvdXQgdXNp bmcgVmlydGlvCisgU3RydWN0dXJlIFBDSSBjYXBhYmlsaXRpZXMuCisgCitcYmVnaW5faW5zZXQg Rm9vdAorc3RhdHVzIG9wZW4KKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4MzgxMjEKK0hpc3RvcmljYWxseSBkcml2ZXJzIHNr aXBwZWQgdGhpcyBzdGVwLCB1c2luZyBsZWdhY3kgY29uZmlndXJhdGlvbiBzcGFjZQorIHVuY29u ZGl0aW9uYWxseS4KK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKworCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQorRGV2aWNlLXNw ZWNpZmljIHNldHVwLCBpbmNsdWRpbmcgcmVhZGluZyB0aGUgRGV2aWNlIEZlYXR1cmUgQml0cywg ZGlzY292ZXJ5Cisgb2YgdmlydHF1ZXVlcyBmb3IgdGhlIGRldmljZSwgb3B0aW9uYWwgTVNJLVgg c2V0dXAsIGFuZCByZWFkaW5nIGFuZCBwb3NzaWJseQorIHdyaXRpbmcgdGhlIHZpcnRpbyBjb25m aWd1cmF0aW9uIHNwYWNlLgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBFbnVtZXJhdGUK K1RoZSBzdWJzZXQgb2YgRGV2aWNlIEZlYXR1cmUgQml0cyB1bmRlcnN0b29kIGJ5IHRoZSBkcml2 ZXIgaXMgd3JpdHRlbiB0bworIHRoZSBkZXZpY2UuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5 b3V0IEVudW1lcmF0ZQorVGhlIERSSVZFUl9PSyBzdGF0dXMgYml0IGlzIHNldC4KK1xlbmRfbGF5 b3V0CisKK1xiZWdpbl9sYXlvdXQgRW51bWVyYXRlCitUaGUgZGV2aWNlIGNhbiBub3cgYmUgdXNl ZCAoaWUuCisgYnVmZmVycyBhZGRlZCB0byB0aGUgdmlydHF1ZXVlcykKK1xiZWdpbl9pbnNldCBG b290CitzdGF0dXMgb3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorSGlzdG9yaWNh bGx5LCBkcml2ZXJzIGhhdmUgdXNlZCB0aGUgZGV2aWNlIGJlZm9yZSBzdGVwcyA1IGFuZCA2Lgor IFRoaXMgaXMgb25seSBhbGxvd2VkIGlmIHRoZSBkcml2ZXIgZG9lcyBub3QgdXNlIGFueSBmZWF0 dXJlcyB3aGljaCB3b3VsZAorIGFsdGVyIHRoaXMgZWFybHkgdXNlIG9mIHRoZSBkZXZpY2UuCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0CisKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91 dCBTdGFuZGFyZAorSWYgYW55IG9mIHRoZXNlIHN0ZXBzIGdvIGlycmVjb3ZlcmFibHkgd3Jvbmcs IHRoZSBndWVzdCBzaG91bGQgc2V0IHRoZSBGQUlMRUQKKyBzdGF0dXMgYml0IHRvIGluZGljYXRl IHRoYXQgaXQgaGFzIGdpdmVuIHVwIG9uIHRoZSBkZXZpY2UgKGl0IGNhbiByZXNldAorIHRoZSBk ZXZpY2UgbGF0ZXIgdG8gcmVzdGFydCBpZiBkZXNpcmVkKS4KK1xlbmRfbGF5b3V0CisKK1xiZWdp bl9sYXlvdXQgU3RhbmRhcmQKK1dlIG5vdyBjb3ZlciB0aGUgZmllbGRzIHJlcXVpcmVkIGZvciBn ZW5lcmFsIHNldHVwIGluIGRldGFpbC4KK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw NzY2NjYzCisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3Vic2VjdGlvbgorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4MTU4NAorVmlydGlvIFN0cnVjdHVyZSBQQ0kg Q2FwYWJpbGl0eQorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4MTA2MQorVmlydGlvIGNvbmZpZ3VyYXRpb24g bGF5b3V0IGluY2x1ZGVzIHZpcnRpbyBjb25maWd1cmF0aW9uIGhlYWRlciwgbm90aWZpY2F0aW9u CisgYW5kIElTUiBzdGF0dXMgYW5kIGRldmljZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZXMuCisg RWFjaCBzdHJ1Y3R1cmUgaXMgbWFwcGVkIGJ5IGEgQmFzZSBBZGRyZXNzIHJlZ2lzdGVyIChCQVIp IGJlbG9uZ2luZyB0bworIHRoZSBmdW5jdGlvbiwgbG9jYXRlZCBiZWdpbm5pbmcgYXQgMTBoIGlu IENvbmZpZ3VyYXRpb24gU3BhY2UuCisgCitcZW1waCBvbgorU3RydWN0dXJlIElEIAorXGVtcGgg ZGVmYXVsdAoraW5kZW50aWZpZXMgdGhlIHN0cnVjdHVyZQorXGVtcGggb24KKywgU2l6ZQorXGVt cGggZGVmYXVsdAorIGluZGljYXRlcyB0aGUgc3RydWN0dXJlIHNpemUsIGluIGJ5dGVzLCBhIAor XGVtcGggb24KK0JBUiBJbmRpY2F0b3IgcmVnaXN0ZXIgKEJJUikKK1xlbXBoIGRlZmF1bHQKKyBp bmRpY2F0ZXMgd2hpY2ggQkFSLCBhbmQgCitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0 CisgaW5kaWNhdGVzIHdoZXJlIHRoZSBzdHJ1Y3R1cmUgYmVnaW5zIHJlbGF0aXZlIHRvIHRoZSBi YXNlIGFkZHJlc3MgYXNzb2NpYXRlZAorIHdpdGggdGhlIEJBUi4KKyBUaGUgQkFSIGlzIHBlcm1p dHRlZCB0byBiZSBlaXRoZXIgMzItYml0IG9yIDY0LWJpdCwgaXQgY2FuIG1hcCBNZW1vcnkgU3Bh Y2UKKyBvciBJL08gU3BhY2UuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJk CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODM4NTIyCitUaGVzZSByZWdpc3Rl cnMgYXJlIHNwZWNpZmllZCB1c2luZyB2ZW5kb3Itc3BlY2lmaWMgUENJIGNhcGFiaWxpdHkgbG9j YXRlZAorIG9uIGNhcGFiaWxpdHkgbGlzdCBpbiBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSBvZiB0 aGUgZGV2aWNlLgorIFRoaXMgdmlydGlvIHN0cnVjdHVyZSBjYXBhYmlsaXR5IHVzZXMgbGl0dGxl LWVuZGlhbiBmb3JtYXQ7IGFsbCBiaXRzIGFyZQorIHJlYWQtb25seToKK1xlbmRfbGF5b3V0CisK K1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKK1xiZWdpbl9pbnNldCBFUlQKK3N0YXR1cyBvcGVuCisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKKworXGJhY2tzbGFzaAorcmVzaXplYm94ewor XGJhY2tzbGFzaAordGV4dHdpZHRofXshfXslCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisK KworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4MzkwNzMKKworXGJlZ2luX2luc2V0 IFRhYnVsYXIKKzxseXh0YWJ1bGFyIHZlcnNpb249IjMiIHJvd3M9IjQiIGNvbHVtbnM9IjM0Ij4K KzxmZWF0dXJlcyB0YWJ1bGFydmFsaWdubWVudD0iYm90dG9tIj4KKzxjb2x1bW4gYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjBwdCI+Cis8Y29sdW1uIGFsaWdubWVu dD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg d2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3 aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdp ZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lk dGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0 aD0iMHB0Ij4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxNzc0CisKK1xzaXplIHRpbnkK K0JpdAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0i dHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+Citc YmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdl X2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc3NworCitcc2l6ZSB0aW55CiszMQorXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc3MTc3OQorCitcc2l6ZSB0aW55CiszMAorXGNoYW5nZV91bmNoYW5nZWQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDc3MTc4MQorCitcc2l6ZSB0aW55CisyOQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc4MworCitc c2l6ZSB0aW55CisyOAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9p bnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg dG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc4NgorCitcc2l6ZSB0aW55Cisy NworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1 ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2lu c2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxMAorCitcc2l6ZSB0aW55CisyNgorXGNoYW5nZV91 bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDc3MTgxMworCitcc2l6ZSB0aW55CisyNQorXGNoYW5nZV91bmNoYW5nZWQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3 MTgxNQorCitcc2l6ZSB0aW55CisyNAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxNworCitcc2l6 ZSB0aW55CisyMworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxOQorCitcc2l6ZSB0aW55CisyMgor XGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgor PGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIg Ym90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2Vy dGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgyMQorCitcc2l6ZSB0aW55CisyMQorXGNoYW5nZV91bmNo YW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25t ZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0i dHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAor CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYz NjUgMTMyMDc3MTgyMworCitcc2l6ZSB0aW55CisyMAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxp bmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5 b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgy NQorCitcc2l6ZSB0aW55CisxOQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKwor XGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVz ZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExh eW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgyOQorCitcc2l6ZSB0 aW55CisxOAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGlu ZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgzMQorCitcc2l6ZSB0aW55CisxNworXGNo YW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90 dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5z ZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDc3MTgzMworCitcc2l6ZSB0aW55CisxNgorXGNoYW5nZV91bmNoYW5n ZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1 ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDc3MTgzNQorCitcc2l6ZSB0aW55CisxNQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0MAor Citcc2l6ZSB0aW55CisxNAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0MQorCitcc2l6ZSB0aW55 CisxMworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0i dHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+Citc YmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdl X2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0MworCitcc2l6ZSB0aW55CisxMgorXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc3MTg0NQorCitcc2l6ZSB0aW55CisxMQorXGNoYW5nZV91bmNoYW5nZWQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDc3MTg0NworCitcc2l6ZSB0aW55CisxMAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg1MAorCitc c2l6ZSB0aW55Cis5CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2lu c2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxODUyCisKK1xzaXplIHRpbnkKKzgK K1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUi IGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNl cnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzE4NTQKKworXHNpemUgdGlueQorNworXGNoYW5nZV91bmNo YW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25t ZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0i dHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAor CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYz NjUgMTMyMDc3MTg1NgorCitcc2l6ZSB0aW55Cis2CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5k X2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxODU4 CisKK1xzaXplIHRpbnkKKzUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzE4NTkKKworXHNpemUgdGlu eQorNAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0i dHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+Citc YmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdl X2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg2MQorCitcc2l6ZSB0aW55CiszCitcY2hhbmdl X3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21s aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwNzcxODYyCisKK1xzaXplIHRpbnkKKzIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3 NzE4NjQKKworXHNpemUgdGlueQorMQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg4OAorCitcc2l6 ZSB0aW55CiswCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzE5OTcKKworXHNpemUgdGlueQorT2Zmc2V0Citc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjEiIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUi IGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2Vy dGVkIDE5ODYyNDYzNjUgMTMyMDc4MTAyOQorCitcc2l6ZSBsYXJnZXIKK1N0cnVjdHVyZSBJRAor XGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgor PGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2lu c2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKwor XGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1 bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUi IGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJl Z2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVu dD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFp biBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVs dGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjEiIGFs aWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1MDMwMgorCitcc2l6ZSBsYXJnZXIKK0NhcExl bmd0aCA9IDEyCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0 Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5k X2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2Vs bCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5k X2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0i MiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+ Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVz ZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExh eW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNv bHVtbj0iMSIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1 ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODUwMjk4CisKK1xzaXplIGxh cmdlcgorTmV4dENhcFB0cgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49 IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGlj b2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdu bWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg bXVsdGljb2x1bW49IjEiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1MDI4OQorCitc c2l6ZSBsYXJnZXIKK0NhcElEID0gOQorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGlj b2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdu bWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg bXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRl eHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9p bnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5v bmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQg MTk4NjI0NjM2NSAxMzIwNzcyMDA0CiswCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2Nl bGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg bXVsdGljb2x1bW49IjEiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MjU0OQorCitc c2l6ZSBsYXJnZXIKK1NpemUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIxIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTA0MDgKKworXHNpemUg bGFyZ2VyCitCSVIKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDc3MjAwNworNAorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+ Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIxIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBi b3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzI1NDAKKworXHNpemUgbGFyZ2Vy CitPZmZzZXQKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MjAxMQor OAorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8L2x5eHRhYnVs YXI+CisKK1xlbmRfaW5zZXQKKworCitcY2hhbmdlX3VuY2hhbmdlZAorCitcYmVnaW5faW5zZXQg RVJUCitzdGF0dXMgb3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCit9CitcZW5k X2xheW91dAorCitcZW5kX2luc2V0CisKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEz MjA4MzkwNzMKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDgzODk5MgorUHVycG9zZToKK1xlbmRfbGF5b3V0 CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA3ODA5MTIKKworXGVtcGggb24KK0NhcGFiaWxpdHkgSUQKK1xlbXBoIGRlZmF1bHQKKywg CitcZW1waCBvbgorTmV4dCBDYXBhYmlsaXR5IFBvaW50ZXIKK1xlbXBoIGRlZmF1bHQKKywgCitc ZW1waCBvbgorQ2FwYWJpbGl0eSBMZW5ndGgKK1xlbXBoIGRlZmF1bHQKKyAtIHRoZXNlIGZpZWxk cyBhcmUgc3BlY2lmaWVkIGJ5IFBDSSBsb2NhbCBidXMgc3BlY2lmaWNhdGlvbiwgUmV2IDMuMAor XGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDc4NTA3MworCitcZW1waCBvbgorU3RydWN0dXJlIElECitcZW1waCBk ZWZhdWx0CisgLSBpZGVudGlmaWVzIHRoZSBzdHJ1Y3R1cmUgbWFwcGVkLgorIElmIGFuIElEIHJl cHJlc2VudGluZyBhIHNwZWNpZmljIHN0cnVjdHVyZSBpcyBhYnNlbnQsIHRoZSBzdHJ1Y3R1cmUg aXMKKyBsb2NhdGVkIGluIHRoZSBsZWdhY3kgdmlydGlvIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGZp cnN0IFBDSSBCQVIuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzgyNjg5CisKK1xlbXBoIG9uCitTaXplCitc ZW1waCBkZWZhdWx0CisgLSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgbWFwcGVkLgorIFRoaXMgc2l6 ZSBtaWdodCBpbmNsdWRlIHBhZGRpbmcsIG9yIGZpZWxkcyB1bnVzZWQgYnkgdGhlIGRyaXZlci4K KyBEcml2ZXJzIGFyZSBhbHNvIHJlY29tbWVuZGVkIHRvIG9ubHkgbWFwIHBhcnQgb2YgY29uZmln dXJhdGlvbiBzdHJ1Y3R1cmUKKyBsYXJnZSBlbm91Z2ggZm9yIGRldmljZSBvcGVyYXRpb24uCisg Rm9yIGV4YW1wbGUsIGEgZnV0dXJlIGRldmljZSBtaWdodCBwcmVzZW50IGEgbGFyZ2Ugc3RydWN0 dXJlIHNpemUgb2Ygc2V2ZXJhbAorIE1CeXRlcy4KKyBBcyBjdXJyZW50IGRldmljZXMgbmV2ZXIg dXRpbGl6ZSBzdHJ1Y3R1cmVzIGxhcmdlciB0aGFuIDRLQnl0ZXMgaW4gc2l6ZSwKKyBkcml2ZXIg Y2FuIGxpbWl0IHRoZSBtYXBwZWQgc3RydWN0dXJlIHNpemUgdG8gZS5nLgorIDRLQnl0ZXMgdG8g YWxsb3cgZm9yd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggc3VjaCBkZXZpY2VzIHdpdGhvdXQgbG9z cyBvZgorIGZ1bmN0aW9uYWxpdHkgYW5kIHdpdGhvdXQgd2FzdGluZyByZXNvdXJjZXMuCitcY2hh bmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODM5ODMzCisKK1xlbXBoIG9uCitCSVIg LSBCQVIgSW5kaWNhdG9yIFJlZ2lzdGVyCitcZW1waCBkZWZhdWx0CisgLSBJbmRpY2F0ZXMgd2hp Y2ggb25lIG9mIHRoZSBCQVIgcmVnaXN0ZXJzLCBsb2NhdGVkIGJlZ2lubmluZyBhdCAxMGggaW4K KyBDb25maWd1cmF0aW9uIFNwYWNlLCBpcyB1c2VkIHRvIG1hcCB0aGUgc3RydWN0dXJlIGludG8g TWVtb3J5IG9yIEkvTyBTcGFjZS4KKyBMZWdhbCB2YWx1ZXMgYXJlIDAgLSA1LgorIEJBUiBvZmZz ZXQgaXMgY2FsY3VsYXRlZCBhcyAKK1xlbXBoIG9uCitCQVIKK1xlbXBoIGRlZmF1bHQKKyA9IDEw aCArIDQgKiAKK1xlbXBoIG9uCitCSVIuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0 YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzgxMDAyCisKK1xlbXBo IG9uCitPZmZzZXQKK1xlbXBoIGRlZmF1bHQKKyAtIFVzZWQgYXMgYW4gb2Zmc2V0IGZyb20gdGhl IGFkZHJlc3MgY29udGFpbmVkIGJ5IG9uZSBvZiB0aGUgZnVuY3Rpb27igJlzCisgQmFzZSBBZGRy ZXNzIHJlZ2lzdGVycyB0byBwb2ludCB0byB0aGUgYmFzZSBvZiB0aGUgc3RydWN0dXJlLgorIERl cGVuZGluZyBvbiB0aGUgc3RydWN0dXJlLCB0aGUgbG93ZXIgYml0cyBhcmUgbWFza2VkIG9mZiAo c2V0IHRvIHplcm8pCisgYnkgc29mdHdhcmUgdG8gZm9ybSBhbiBhbGlnbmVkIG9mZnNldC4KK1xl bmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA3ODUwOTgKK0Egc2luZ2xlIGRldmljZSBoYXMgbXVsdGlwbGUgdmlydGlv IGNhcGFiaWxpdGllcyBvbiB0aGUgUENJIGNhcGFiaWxpdHkgbGlua2VkLWxpCitzdC4KKyBUbyBs b2NhdGUgYSBzcGVjaWZpYyByZWdpc3RlciwgZHJpdmVyIHNjYW5zIHRoZSBQQ0kgY2FwYWJpbGl0 eSBsaXN0IGxvb2tpbmcKKyBmb3IgY2FwYWJpbGl0aWVzIHVzaW5nIHRoZSB2ZW5kb3Igc3BlY2lm aWMgCitcZW1waCBvbgorQ2FwYWJpbGl0eSBJRAorXGVtcGggZGVmYXVsdAorLCB0aGF0IGlzIAor XGVtcGggb24KK0NhcGFiaWxpdHkgSUQKK1xlbXBoIGRlZmF1bHQKKyB2YWx1ZSAKK1xlbXBoIG9u Cis5CitcZW1waCBkZWZhdWx0CissIGFjY29yZGluZyB0byB0aGUgUENJIHNwZWMuCisgRm9yIGVh Y2ggY2FwYWJpbGl0eSwgaXQgdmVyaWZpZXMgdGhhdCB0aGUgCitcZW1waCBvbgorQ2FwYWJpbGl0 eSBMZW5ndGgKK1xlbXBoIGRlZmF1bHQKKyBmaWVsZCBtYXRjaGVzIHRoZSBleHBlY3RlZCB2YWx1 ZSAoMTIpIC0gaWYgaXQgZG9lc24ndCwgdGhpcyBpbmRpY2F0ZXMgYQorIGxheW91dCBjaGFuZ2Us IHdoaWNoIGNhdXNlcyBkcml2ZXIgdG8gaWdub3JlIHRoZSBzcGVjaWZpYyBQQ0kgY2FwYWJpbGl0 eQorIGFuZCBwcm9jZWVkIHRvIHRoZSBuZXh0IFBDSSBjYXBhYmlsaXR5IGluIHRoZSBsaXN0Lgor IE5leHQsCitcZW1waCBvbgorIFN0cnVjdHVyZSBJRAorXGVtcGggZGVmYXVsdAorIHNpbmdsZS1i eXRlIGZpZWxkIGlzIHJlYWQgYXQgb2Zmc2V0IDMuCisgVW5yZWNvZ25pemVkIAorXGVtcGggb24K K1N0cnVjdHVyZSBJRAorXGVtcGggZGVmYXVsdAorIHZhbHVlcyBhcmUgaWdub3JlZC4KKyBMb3cg Yml0cyBpbiB0aGUgCitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0CisgcmVnaXN0ZXIg YXJlIG1hc2tlZCB0byBtYXRjaCBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzLCBpZiBhbnkuCisgRGV2 aWNlIGRyaXZlcnMgYXJlIHJlY29tbWVuZGVkIHRvIHNhbml0eSBjaGVjayAKK1xlbXBoIG9uCitC SVIKK1xlbXBoIGRlZmF1bHQKKywgCitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0Ciss IGFuZCAKK1xlbXBoIG9uCitTaXplCitcZW1waCBkZWZhdWx0CisgZmllbGRzLCBpZ25vcmluZyB0 aGUgY2FwYWJpbGl0eSBvciBmYWlsaW5nIGdyYWNlZnVsbHkgb24gZXJyb3IuCisgRHJpdmVycyBh cmUgYWxzbyByZWNvbW1lbmRlZCB0byBvbmx5IG1hcCBwYXJ0IG9mIGNvbmZpZ3VyYXRpb24gc3Ry dWN0dXJlCisgbGFyZ2UgZW5vdWdoIGZvciBkZXZpY2Ugb3BlcmF0aW9uLgorXGVuZF9sYXlvdXQK KworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDc4NjAzNQorRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBkZXZpY2VzIHNob3VsZCBh bHNvIHByZXNlbnQgbGVnYWN5IGNvbmZpZ3VyYXRpb24KKyBzcGFjZSBpbiB0aGUgZmlyc3QgSS9P IHJlZ2lvbiBvZiB0aGUgUENJIGRldmljZSwgbWlycm9yaW5nIHZpcnRpbyBjb25maWd1cmF0aW9u Cisgc3RydWN0dXJlcyBpbiB0aGlzIHNwYWNlLgorIERyaXZlcnMgc2hvdWxkIGZhbGwgYmFjayBv biB0aGlzIGxlZ2FjeSBzdHJ1Y3R1cmUgaWYgYSBzcGVjaWZpYyBWaXJ0aW8KKyBTdHJ1Y3R1cmUg Y2FwYWJpbGl0eSBpcyBtaXNzaW5nIGluIHRoZSBQQ0kgY2FwYWJpbGl0eSBsaXN0LgorIEhvd2V2 ZXIsIGRldmljZXMgYXJlIG5vdCByZXF1aXJlZCB0byBtYXAgdGhlIHdob2xlIGNvbmZpZ3VyYXRp b24gc3RydWN0dXJlCisgaW4gbGVnYWN5IHNwYWNlIC0gb25seSB0aGUgaW5pdGlhbCBzZWdtZW50 IGV4cGVjdGVkIGJ5IGxlZ2FjeSBkcml2ZXJzIG5lZWRzCisgdG8gYmUgbWFwcGVkLgorIFRoZSBt aW5pbWFsIHNpemUgb2Ygc3VjaCBsZWdhY3kgc2VnbWVudCBzaXplLCBmb3IgZWFjaCBzdHJ1Y3R1 cmUsIGlzIGxpc3RlZAorIGJlbG93LgorIERyaXZlcnMgYXJlIGRpc2NvdXJhZ2VkIGZyb20gdXNp bmcgbGVnYWN5IHNwYWNlIGlmIGEgc3BlY2lmaWMgU3RydWN0dXJlCisgSUQgaXMgcHJlc2VudDsg dGhpcyBpcyB0byBhbGxvdyBkZXByZWNhdGluZyB0aGUgbGVnYWN5IHNwYWNlIGluIHRoZSBmdXR1 cmUuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5z ZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODUwNzcwCitCZWxvdyBpcyB0aGUgbGlzdCBvZiBzdXBwb3J0 ZWQgVmlydGlvIHN0cnVjdHVyZXMsIGluY2x1ZGluZyBTdHJ1Y3R1cmUgSUQsCisgb2Zmc2V0IGFs aWdubWVudCwgYW5kIHdoZXJlIGl0IGNhbiBiZSBsb2NhdGVkIGluIHRoZSBsZWdhY3kgY29uZmln dXJhdGlvbgorIHNwYWNlLgorIE5vdGUgdGhhdCBsZWdhY3kgc3BhY2UgbGF5b3V0IGNoYW5nZXMg YXMgdGhlIE1TSS1YIGNhcGFiaWxpdHkgaXMgZW5hYmxlZAorIGFuZCBkaXNhYmxlZAorXGJlZ2lu X2luc2V0IEZvb3QKK3N0YXR1cyBvcGVuCisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU2Nzk0CitpZS4KKyBvbmNlIHlvdSBl bmFibGUgTVNJLVggb24gdGhlIGRldmljZSwgc29tZSBsZWdhY3kgZmllbGRzIG1vdmUuCisgSWYg eW91IHR1cm4gaXQgb2ZmIGFnYWluLCB0aGV5IG1vdmUgYmFjayEgdGhpcyBkb2VzIG5vdCBhZmZl Y3QgdGhlIG5ldworIGNvbmZpZ3VyYXRpb24gCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisK Ky4KKyBBbGlnbm1lbnQsIG9mZnNldCBhbmQgYWxsIHNpemVzIGFyZSBpbiBieXRlcy4KK1xlbmRf bGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2 MjQ2MzY1IDEzMjA3ODY4NjgKK1xiZWdpbl9pbnNldCBUYWJ1bGFyCis8bHl4dGFidWxhciB2ZXJz aW9uPSIzIiByb3dzPSI2IiBjb2x1bW5zPSI2Ij4KKzxmZWF0dXJlcyB0YWJ1bGFydmFsaWdubWVu dD0ibWlkZGxlIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg d2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3 aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdp ZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lk dGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0 aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRo PSIwIj4KKzxyb3c+Cis8Y2VsbCBtdWx0aXJvdz0iMyIgYWxpZ25tZW50PSJsZWZ0IiB2YWxpZ25t ZW50PSJtaWRkbGUiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKK1N0cnVjdHVyZQorXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NTU1NjAKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGly b3c9IjMiIGFsaWdubWVudD0ibGVmdCIgdmFsaWdubWVudD0ibWlkZGxlIiB0b3BsaW5lPSJ0cnVl IiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CitJRAorXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTU1NjAKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorQWxpZ24tCitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aXJvdz0iMyIgYWxpZ25tZW50PSJsZWZ0 IiB2YWxpZ25tZW50PSJtaWRkbGUiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NTU1NjAKK01pblNpemUKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRs aW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xh eW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODU4 MjEKK09mZnNldCBpbgorXGNoYW5nZV9kZWxldGVkIDE5ODYyNDYzNjUgMTMyMDc4NTgxNworCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRs aW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xh eW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTA3 ODAKK01pblNpemUgaW4KK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93 PgorPHJvdz4KKzxjZWxsIG11bHRpcm93PSI0IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp cm93PSI0IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNo YW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTU2MjUKK21lbnQKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpcm93PSI0IiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIGJvdHRvbWxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA4NTU1OTMKK2xlZ2FjeSBzcGFjZQorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgYm90dG9tbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFu Z2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU1NjEwCisgbGVnYWN5IHNwYWNlCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg1ODU1CitWaXJ0 aW8gSGVhZGVyCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0 Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwNzg1ODYwCisweDEKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYxNTcKKzQKK1xjaGFuZ2VfdW5jaGFuZ2VkCisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYyMjUKKzI4IGJ5dGVzCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg2MTQ1CiswCitcY2hhbmdlX3Vu Y2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTUxODAKKzI0IG9yIDIwCitcYmVnaW5faW5zZXQgRm9vdAorc3RhdHVzIG9wZW4K KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTU1MTEKK1xiZWdpbl9pbnNldCBDb21tYW5kSW5zZXQgbGFiZWwKK0xhdGV4Q29t bWFuZCBsYWJlbAorbmFtZSAiZm46MjQtb3ItMjAiCisKK1xlbmRfaW5zZXQKKworMjQgYnl0ZXMg aWYgTVNJLVggaXMgZW5hYmxlZCwgMjAgYnl0ZXMgaWYgaXQgaXMgZGlzYWJsZWQKK1xjaGFuZ2Vf dW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKworCitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg2MTg4CitRdWV1ZSBOb3Rp ZnkKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA3ODYxOTEKKzB4MgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2Vy dGVkIDE5ODYyNDYzNjUgMTMyMDc4NjI2NworMiBieXRlcworXGNoYW5nZV91bmNoYW5nZWQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjIyOAorMiBieXRlcworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjUwNQorMTYgYnl0ZXMKK1xjaGFu Z2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRs aW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc4NjMwMworMgorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2Vy dGVkIDE5ODYyNDYzNjUgMTMyMDc4Njg3OAorSVNSIFN0YXR1cworXGNoYW5nZV91bmNoYW5nZWQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVz ZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExh eW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjI2MAorMHgzCitcY2hh bmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2Vs bCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg2 MjcwCisxIGJ5dGUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA3ODYyNzMKKzEgYnl0ZQorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDc4NjUzNAorMTkgYnl0ZXMKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjMwNgorMQor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc4Njg0NworRGV2aWNlIEhlYWRlcgorXGNoYW5nZV91bmNoYW5nZWQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4 NjQ3NAorMHg0CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0 Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg2NDc3CisxIGJ5dGUKK1xjaGFuZ2VfdW5j aGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdu bWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTU0MDUKKz8KK1xiZWdpbl9pbnNldCBGb290CitzdGF0dXMgb3BlbgorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDg1NTQxNworXGJlZ2luX2luc2V0IENvbW1hbmRJbnNldCBsYWJlbAorTGF0ZXhDb21tYW5kIGxh YmVsCituYW1lICJmbjpEZXZpY2Utc3BlY2lmaWMiCisKK1xlbmRfaW5zZXQKKworRGV2aWNlIHNw ZWNpZmljCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDg1NTUzNAorMjQgb3IgMjAKK1xiZWdpbl9pbnNldCBGb3JtdWxhICRee1x0ZXh0e1xyZWZ7Zm46 MjQtb3ItMjB9fX0kCitcZW5kX2luc2V0CisKKworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwODU1NDMyCis/CitcYmVnaW5faW5zZXQgRm9ybXVsYSAkXntcdGV4dHtccmVme2Zu OkRldmljZS1zcGVjaWZpY319fSQKK1xlbmRfaW5zZXQKKworCitcY2hhbmdlX3VuY2hhbmdlZAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzwvbHl4dGFidWxh cj4KKworXGVuZF9pbnNldAorCisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRh cmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODY5NzMKK0RyaXZlcnMgc2hv dWxkIGFzc3VtZSB0aGF0IGVhY2ggc3RydWN0dXJlIHNpemUgY2FuIGJlIGV4dGVuZGVkIGluIHRo ZSBmdXR1cmUuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFu Z2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5NzYyCitRdWV1ZSBOb3RpZnkgYW5kIElTUiBz dGF0dXMgYXJlIHNpbmdsZS1maWVsZCByZWdpc3RlcnMuCisgRGV2aWNlIEhlYWRlciBoYXMgZGV2 aWNlIHNwZWNpZmljIHN0cnVjdHVyZS4KKyBWaXJ0aW8gSGVhZGVyIHN0cnVjdHVyZSBpcyBkb2N1 bWVudGVkIGJlbG93LgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdWJzdWJzZWN0aW9u CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3MjUzCitFeGFtcGxlIFZpcnRp byBTdHJ1Y3R1cmUgTGF5b3V0CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJk CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY1NzU4CitMZXQncyBhc3N1bWUg dGhhdCBhIHZpcnRpbyBibG9jayBkZXZpY2UgcHJlc2VudHMgdHdvIFZpcnRpbyBTdHJ1Y3R1cmUg Y2FwYWJpbGl0aQorZXMgaW4gUENJIGNhcGFiaWxpdHkgbGlzdDoKK1xlbmRfbGF5b3V0CisKK1xi ZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NjMzOTIKK1N0cnVjdHVyZSBJRCAweDE7IEJJUiAxOyBPZmZzZXQgMHgxMDAwOyBTaXplIDB4MTAw CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwODYzMzk5CitTdHJ1Y3R1cmUgSUQgMHg0OyBCSVIgMTsgT2Zmc2V0 IDB4MTEwMDsgU2l6ZSAweDIwMAorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFy ZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2MzQ3OQorTGV0J3MgZnVydGhl ciBhc3N1bWUgdGhhdCBNU0ktWCBpcyBkaXNhYmxlZC4KK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9s YXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjM0OTgK K0luIHRoaXMgY2FzZSwgdGhlIGRyaXZlciBzaG91bGQgdXNlOgorXGVuZF9sYXlvdXQKKworXGJl Z2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2 MzU0MworVmlydGlvIEhlYWRlciBhdCBvZmZzZXQgMHgxMDAwIGluIEJBUiAxCitcZW5kX2xheW91 dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2 NSAxMzIwODYzNTY4CitEZXZpY2UgSGVhZGVyIGF0IG9mZnNldCAweDExMDAgaW4gQkFSMQorXGVu ZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg2ODA3NAorUXVldWUgTm90aWZ5IGF0IG9mZnNldCAweDEwIGluIEJBUjAg KGxlZ2FjeSBjb25maWd1cmF0aW9uIHNwYWNlIGlzIHVzZWQKKyBzaW5jZSBTdHJ1Y3R1cmUgSUQg aXMgbm90IHByZXNlbnQpCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY4MDc3CitJU1Igc3RhdHVzIGF0IG9m ZnNldCAweDEzIGluIEJBUjAgKGxlZ2FjeSBjb25maWd1cmF0aW9uIHNwYWNlIGlzIHVzZWQgc2lu Y2UKKyBTdHJ1Y3R1cmUgSUQgaXMgbm90IHByZXNlbnQpCitcY2hhbmdlX3VuY2hhbmdlZAorCitc ZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQg MTk4NjI0NjM2NSAxMzIwODY3MTYyCitGb3IgdXNlIGJ5IGxlZ2FjeSBkcml2ZXJzLCB0aGUgZmly c3QgMjAgYnl0ZXMgaW4gQkFSMCBtaXJyb3IgYnl0ZXMgMHgxMDAwCisgdG8gMHgxMDEzIGluIEJB UjEsIGFuZCB0aGUgZm9sbG93aW5nIDMyIGJ5dGVzIGluIEJBUjAgc2hvdWxkIG1pcnJvciBieXRl cworIDB4MTEwMCB0byAxMTFGIGluIEJBUjEuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0 IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3MjMxCitFbmFi bGluZyBNU0ktWCBvbmx5IGFmZmVjdHMgdGhlIGxlZ2FjeSBkcml2ZXJzOiB3aXRoIE1TSS1YIGVu YWJsZWQsIHRoZQorIGZpcnN0IDI0IGJ5dGVzIGluIEJBUjAgbWlycm9yIGJ5dGVzIDB4MTAwMCB0 byAweDEwMTcgaW4gQkFSMSwgYW5kIHRoZSBmb2xsb3dpbmcKKyAzMiBieXRlcyBpbiBCQVIwIHNo b3VsZCBtaXJyb3IgYnl0ZXMgMHgxMTAwIHRvIDExMUYgaW4gQkFSMS4KK1xjaGFuZ2VfdW5jaGFu Z2VkCisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3Vic2VjdGlvbgorCitcY2hhbmdl X2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1NTk4OAorVmlydGlvIEhlYWRlcgorXGVuZF9sYXlv dXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYz NjUgMTMyMDg1ODU3MQorVGhlIHZpcnRpbyBoZWFkZXIgbG9va3MgYXMgZm9sbG93czoKK1xlbmRf bGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2 MjQ2MzY1IDEzMjA4NTg1OTcKK1xiZWdpbl9pbnNldCBUYWJ1bGFyCis8bHl4dGFidWxhciB2ZXJz aW9uPSIzIiByb3dzPSIxMyIgY29sdW1ucz0iMyI+Cis8ZmVhdHVyZXMgdGFidWxhcnZhbGlnbm1l bnQ9Im1pZGRsZSI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg d2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3 aWR0aD0iMCI+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODYwMworQml0cworXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg1ODYxNAorUi9XCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91 dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA4NTg2MTkKK1B1cnBvc2UKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg4NDEKKzMyCitcY2hhbmdl X3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU4ODU4 CitSCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2Nl bGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg4NzAKK0RldmljZSBGZWF0dXJlcyBiaXRzIDA6MzEK K1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K Kzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2lu c2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRl ZCAxOTg2MjQ2MzY1IDEzMjA4NTg4NzMKKzMyCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU4ODc2CitSK1cKK1xjaGFuZ2VfdW5jaGFu Z2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVu dD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDg1ODg4NQorR3Vlc3QgRmVhdHVyZXMgYml0cyAwOjMxCitcY2hhbmdlX3VuY2hhbmdlZAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2Vs bCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU4 ODg5CiszMgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDg1ODg5MQorUitXCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg5MDcKK1F1ZXVlIEFk ZHJlc3MKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMDEKKzE2CitcY2hhbmdlX3VuY2hhbmdlZAorCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MDA2CitSCitcY2hhbmdlX3Vu Y2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTg5NTMKK1F1ZXVlIFNpemUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVu dD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFp biBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMTIKKzE2Citc Y2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8 Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw ODU5MDA4CitSK1cKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODk1NworUXVldWUgU2VsZWN0CitcY2hh bmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jv dz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwODU5MDE1CisxNgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+Citc YmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg5NjQKK1Jl c2VydmVkCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8 L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2Vf aW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MDI5Cis4CitcY2hhbmdlX3VuY2hhbmdlZAorCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MDMyCitSK1cKK1xjaGFuZ2Vf dW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFs aWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDg1ODk3MgorRGV2aWNlIFN0YXR1cworXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTA1Mgor OAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1 ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8 L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg5ODkKK1Jlc2VydmVkCitcY2hhbmdlX3VuY2hh bmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+ Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAx MzIwODU5MDYzCisxNgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAotXGJlZ2lu X2xheW91dCBTdGFuZGFyZAotVGhlcmUgbWF5IGJlIGRpZmZlcmVudCB3aWR0aHMgb2YgYWNjZXNz ZXMgdG8gdGhlIEkvTyByZWdpb247IHRoZSAKLVxiZWdpbl9pbnNldCBRdW90ZXMgZWxkCiBcZW5k X2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CiAKLW5hdHVyYWwKLVxiZWdpbl9pbnNldCBRdW90ZXMgZXJkCi1cZW5kX2luc2V0 CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAogCi0gYWNjZXNzIG1ldGhvZCBmb3IgZWFjaCBm aWVsZCBpbiB0aGUgdmlydGlvIGhlYWRlciBtdXN0IGJlIHVzZWQgKGkuZS4KLSAzMi1iaXQgYWNj ZXNzZXMgZm9yIDMyLWJpdCBmaWVsZHMsIGV0YyksIGJ1dCB0aGUgZGV2aWNlLXNwZWNpZmljIHJl Z2lvbgotIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBhbnkgd2lkdGggYWNjZXNzZXMsIGFuZCBzaG91 bGQgb2J0YWluIHRoZSBzYW1lIHJlc3VsdHMuCi1cZW5kX2xheW91dAorXGNoYW5nZV9pbnNlcnRl ZCAxOTg2MjQ2MzY1IDEzMjA4NTkwNjUKK1IrVworXGNoYW5nZV91bmNoYW5nZWQKIAotXGJlZ2lu X2xheW91dCBTdGFuZGFyZAotTm90ZSB0aGF0IHRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSB3aGls ZSB0aGUgdmlydGlvIGhlYWRlciBpcyBQQ0kgKGkuZS4KLSBsaXR0bGUpIGVuZGlhbiwgdGhlIGRl dmljZS1zcGVjaWZpYyByZWdpb24gaXMgZW5jb2RlZCBpbiB0aGUgbmF0aXZlIGVuZGlhbgotIG9m IHRoZSBndWVzdCAod2hlcmUgc3VjaCBkaXN0aW5jdGlvbiBpcyBhcHBsaWNhYmxlKS4KIFxlbmRf bGF5b3V0CiAKLVxiZWdpbl9sYXlvdXQgU3Vic2VjdGlvbgotRGV2aWNlIEluaXRpYWxpemF0aW9u IFNlcXVlbmNlCi1cYmVnaW5faW5zZXQgQ29tbWFuZEluc2V0IGxhYmVsCi1MYXRleENvbW1hbmQg bGFiZWwKLW5hbWUgInN1YjpEZXZpY2UtSW5pdGlhbGl6YXRpb24tU2VxdWVuY2UiCitcZW5kX2lu c2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5v bmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKwor XGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwODEKK01TSS1YIENvbmZpZ3VyYXRp b24gVmVjdG9yCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAogCiBcZW5kX2luc2V0 Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CiAKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFu Z2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MDgzCisxNgorXGNoYW5nZV91bmNoYW5nZWQK IAogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBTdGFuZGFyZAotV2Ugc3RhcnQgd2l0aCBh biBvdmVydmlldyBvZiBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHRoZW4gZXhwYW5kIG9uIHRoZSBk ZXRhaWxzCi0gb2YgdGhlIGRldmljZSBhbmQgaG93IGVhY2ggc3RlcCBpcyBwcmVmb3JtZWQuCitc ZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5z ZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MDg4CitSK1cKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxl bmRfbGF5b3V0CiAKLVxiZWdpbl9sYXlvdXQgRW51bWVyYXRlCi1SZXNldCB0aGUgZGV2aWNlLgot IFRoaXMgaXMgbm90IHJlcXVpcmVkIG9uIGluaXRpYWwgc3RhcnQgdXAuCitcZW5kX2luc2V0Cis8 L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwOTUKK01TSS1YIFF1ZXVlIFZlY3RvcgorXGNo YW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBFbnVtZXJhdGUK LVRoZSBBQ0tOT1dMRURHRSBzdGF0dXMgYml0IGlzIHNldDogd2UgaGF2ZSBub3RpY2VkIHRoZSBk ZXZpY2UuCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MTAyCiszMgor XGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBFbnVtZXJh dGUKLVRoZSBEUklWRVIgc3RhdHVzIGJpdCBpcyBzZXQ6IHdlIGtub3cgaG93IHRvIGRyaXZlIHRo ZSBkZXZpY2UuCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MTA2CitSCitcY2hhbmdlX3VuY2hh bmdlZAorCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQotRGV2aWNlLXNw ZWNpZmljIHNldHVwLCBpbmNsdWRpbmcgcmVhZGluZyB0aGUgRGV2aWNlIEZlYXR1cmUgQml0cywg ZGlzY292ZXJ5Ci0gb2YgdmlydHF1ZXVlcyBmb3IgdGhlIGRldmljZSwgb3B0aW9uYWwgTVNJLVgg c2V0dXAsIGFuZCByZWFkaW5nIGFuZCBwb3NzaWJseQotIHdyaXRpbmcgdGhlIHZpcnRpbyBjb25m aWd1cmF0aW9uIHNwYWNlLgorXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJp Z2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw ODU5MTE2CitEZXZpY2UgRmVhdHVyZXMgYml0cyAzMjo2MworXGNoYW5nZV91bmNoYW5nZWQKKwog XGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBFbnVtZXJhdGUKLVRoZSBzdWJzZXQgb2YgRGV2 aWNlIEZlYXR1cmUgQml0cyB1bmRlcnN0b29kIGJ5IHRoZSBkcml2ZXIgaXMgd3JpdHRlbiB0bwot IHRoZSBkZXZpY2UuCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21s aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwODU5MTIyCiszMgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQK IAotXGJlZ2luX2xheW91dCBFbnVtZXJhdGUKLVRoZSBEUklWRVJfT0sgc3RhdHVzIGJpdCBpcyBz ZXQuCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5MTE5CitSK1cK K1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxlbmRfbGF5b3V0CiAKLVxiZWdpbl9sYXlvdXQgRW51bWVy YXRlCi1UaGUgZGV2aWNlIGNhbiBub3cgYmUgdXNlZCAoaWUuCi0gYnVmZmVycyBhZGRlZCB0byB0 aGUgdmlydHF1ZXVlcykKLVxiZWdpbl9pbnNldCBGb290Ci1zdGF0dXMgb3BlbgorXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CiAKIFxiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0Ci1IaXN0b3JpY2FsbHksIGRyaXZlcnMgaGF2ZSB1c2VkIHRoZSBkZXZpY2Ug YmVmb3JlIHN0ZXBzIDUgYW5kIDYuCi0gVGhpcyBpcyBvbmx5IGFsbG93ZWQgaWYgdGhlIGRyaXZl ciBkb2VzIG5vdCB1c2UgYW55IGZlYXR1cmVzIHdoaWNoIHdvdWxkCi0gYWx0ZXIgdGhpcyBlYXJs eSB1c2Ugb2YgdGhlIGRldmljZS4KKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NTkxMzAKK0d1ZXN0IEZlYXR1cmVzIGJpdHMgMzI6NjMKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxl bmRfbGF5b3V0CiAKIFxlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPC9seXh0YWJ1bGFyPgor CitcZW5kX2luc2V0CiAKIAogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBTdGFuZGFyZAot SWYgYW55IG9mIHRoZXNlIHN0ZXBzIGdvIGlycmVjb3ZlcmFibHkgd3JvbmcsIHRoZSBndWVzdCBz aG91bGQgc2V0IHRoZSBGQUlMRUQKLSBzdGF0dXMgYml0IHRvIGluZGljYXRlIHRoYXQgaXQgaGFz IGdpdmVuIHVwIG9uIHRoZSBkZXZpY2UgKGl0IGNhbiByZXNldAotIHRoZSBkZXZpY2UgbGF0ZXIg dG8gcmVzdGFydCBpZiBkZXNpcmVkKS4KK1xiZWdpbl9sYXlvdXQgU3Vic3Vic2VjdGlvbgorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1NjAwNAorTGVnYWN5IAorXGNoYW5nZV91 bmNoYW5nZWQKK1ZpcnRpbyBIZWFkZXIKIFxlbmRfbGF5b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3Rh bmRhcmQKLVdlIG5vdyBjb3ZlciB0aGUgZmllbGRzIHJlcXVpcmVkIGZvciBnZW5lcmFsIHNldHVw IGluIGRldGFpbC4KLVxlbmRfbGF5b3V0CiAKLVxiZWdpbl9sYXlvdXQgU3Vic2VjdGlvbgotVmly dGlvIEhlYWRlcgorXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4Njc0ODIKK0ZvciBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgZGV2aWNlcyBzaG91bGQgbWlycm9yIHRoZSBpbml0aWFs IHBhcnQgb2YgdmlydGlvCisgaGVhZGVyIGFuZCBkZXZpY2UgaGVhZGVyIHN0cnVjdHVyZXMsIFF1 ZXVlIE5vdGlmeSBhbmQgSVNSIFN0YXR1cyByZWdpc3RlcnMKKyBpbiBsZWdhY3kgY29uZmlndXJh dGlvbiBzcGFjZSBpbiB0aGUgZmlyc3QgSS9PIHJlZ2lvbiBvZiB0aGUgUENJIGRldmljZS4KKyBE cml2ZXJzIHNob3VsZCBmYWxsIGJhY2sgb24gdGhpcyBsZWdhY3kgc3RydWN0dXJlIGlmIGEgc3Bl Y2lmaWMgVmlydGlvCisgU3RydWN0dXJlIGNhcGFiaWxpdHkgaXMgbWlzc2luZyBpbiB0aGUgUENJ IGNhcGFiaWxpdHkgbGlzdC4KKyBEcml2ZXJzIGFyZSBkaXNjb3VyYWdlZCBmcm9tIHVzaW5nIGxl Z2FjeSBzcGFjZSBpZiBhIHNwZWNpZmljIFN0cnVjdHVyZQorIElEIGlzIHByZXNlbnQ7IHRoaXMg aXMgdG8gYWxsb3cgZGVwcmVjYXRpbmcgdGhlIGxlZ2FjeSBzcGFjZSBpbiB0aGUgZnV0dXJlLgog XGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAotVGhlIHZpcnRpbyBoZWFkZXIg bG9va3MgYXMgZm9sbG93czoKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTk4 NDgKK0ZvciByZWZlcmVuY2UsIHRoZQorXGNoYW5nZV9kZWxldGVkIDE5ODYyNDYzNjUgMTMyMDg1 NjA0NAorVGhlCitcY2hhbmdlX3VuY2hhbmdlZAorIAorXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTk4NDgKK2xlZ2FjeSAKK1xjaGFuZ2VfdW5jaGFuZ2VkCit2aXJ0aW8gaGVhZGVy IGxvb2tzIGFzIGZvbGxvd3MKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5ODQ4 Cis7IG9uZSBvYnNlcnZlcyB0aGF0IG1vc3QgcmVnaXN0ZXIgb2Zmc2V0cyBtYXRjaCB0aGUgbmV3 IHZpcnRpbyBoZWFkZXIsIHRvCisgbWFrZSBjb21wYXRpYmlsaXR5IGVhc2llcgorXGNoYW5nZV91 bmNoYW5nZWQKKzoKIFxlbmRfbGF5b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3RhbmRhcmQKQEAgLTEw NjcsMTEgKzQxMDgsMTUgQEAgU3RhdHVzCiBJZiBNU0ktWCBpcyBlbmFibGVkIGZvciB0aGUgZGV2 aWNlLCB0d28gYWRkaXRpb25hbCBmaWVsZHMgaW1tZWRpYXRlbHkgZm9sbG93CiAgdGhpcyBoZWFk ZXI6CiBcYmVnaW5faW5zZXQgRm9vdAotc3RhdHVzIGNvbGxhcHNlZAorc3RhdHVzIG9wZW4KIAog XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKIGllLgotIG9uY2UgeW91IGVuYWJsZSBNU0ktWCBv biB0aGUgZGV2aWNlLCB0aGUgb3RoZXIgZmllbGRzIG1vdmUuCisgb25jZSB5b3UgZW5hYmxlIE1T SS1YIG9uIHRoZSBkZXZpY2UsIHRoZSBvdGhlciBmaWVsZHMgCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg2NzU0MAoraW4gbGVnYWN5IGNvbmZpZ3VyYXRpb24gCitcY2hhbmdlX3Vu Y2hhbmdlZAorbW92ZS4KICBJZiB5b3UgdHVybiBpdCBvZmYgYWdhaW4sIHRoZXkgbW92ZSBiYWNr IQogXGVuZF9sYXlvdXQKIApAQCAtMTIxOSwxMSArNDI2NCwxNSBAQCBWZWN0b3IKIFxlbmRfbGF5 b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9kZWxldGVkIDE5ODYyNDYz NjUgMTMyMDg2NzU2MwogRmluYWxseSwgaWYgZmVhdHVyZSBiaXRzIChWSVJUSU9fRl9GRUFUVVJF U19ISSkgdGhpcyBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZAogIGJ5IHR3byBhZGRpdGlvbmFsIGZp ZWxkczoKIFxlbmRfbGF5b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9k ZWxldGVkIDE5ODYyNDYzNjUgMTMyMDg2NzU2MwogXGJlZ2luX2luc2V0IFRhYnVsYXIKIDxseXh0 YWJ1bGFyIHZlcnNpb249IjMiIHJvd3M9IjQiIGNvbHVtbnM9IjMiPgogPGZlYXR1cmVzIHRhYnVs YXJ2YWxpZ25tZW50PSJtaWRkbGUiPgpAQCAtMTM1OSwxMSArNDQwOCwxNiBAQCBGZWF0dXJlcyBi aXRzIDMyOjYzCiBcZW5kX2luc2V0CiAKIAorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlv dXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAotSW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZXNl IGdlbmVyYWwgaGVhZGVycywgdGhlcmUgbWF5IGJlIGRldmljZS1zcGVjaWZpYwotIGhlYWRlcnM6 CitJbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhlc2UgZ2VuZXJhbCBoZWFkZXJzLCB0aGVyZSBtYXkg YmUgCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1NjM0NworbGVnYWN5IAorXGNo YW5nZV91bmNoYW5nZWQKK2RldmljZS1zcGVjaWZpYyBoZWFkZXJzOgogXGVuZF9sYXlvdXQKIAog XGJlZ2luX2xheW91dCBTdGFuZGFyZApAQCAtMTQ1OSw2ICs0NTEzLDE3IEBAIERldmljZSBTcGVj aWZpYy4uLgogXGVuZF9pbnNldAogCiAKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw ODU2MTA4CisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTYxMDkKK0xlZ2FjeSBkZXZpY2Utc3BlY2lmaWMg aGVhZGVycyBhcmUgc3VwcG9ydGVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KKyBBcyBz dWNoLCB0aGV5IGFyZSBub3QgcmVxdWlyZWQgdG8gbWFwIHRoZSB3aG9sZSBkZXZpY2UgY29uZmln dXJhdGlvbiBzdHJ1Y3R1cmUKKyAtIG9ubHkgdGhlIGluaXRpYWwgc2VnbWVudCBleHBlY3RlZCBi eSBsZWdhY3kgZHJpdmVycyBuZWVkcyB0byBiZSBtYXBwZWQuCisgVGhlIHNpemUgb2Ygc3VjaCBs ZWdhY3kgc2VnbWVudCBzaXplIGlzIGRldmljZSBzcGVjaWZpYy4KIFxlbmRfbGF5b3V0CiAKIFxi ZWdpbl9sYXlvdXQgU3Vic3Vic2VjdGlvbgpAQCAtMTUzMSw4ICs0NTk2LDEwIEBAIG5hbWUgInN1 YjpGZWF0dXJlLUJpdHMiCiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMzEgYml0cyBvZiB0aGUgZmly c3QgY29uZmlndXJhdGlvbiBmaWVsZCBpbmRpY2F0ZXMKICB0aGUgZmVhdHVyZXMgdGhhdCB0aGUg ZGV2aWNlIHN1cHBvcnRzICh0aGUgaGlnaCBiaXQgaXMgcmVzZXJ2ZWQsIGFuZCB3aWxsCiAgYmUg dXNlZCB0byBpbmRpY2F0ZSB0aGUgcHJlc2VuY2Ugb2YgZnV0dXJlIGZlYXR1cmUgYml0cyBlbHNl d2hlcmUpLgotIElmIG1vcmUgdGhhbiAzMSBmZWF0dXJlIGJpdHMgYXJlIHN1cHBvcnRlZCwgdGhl IGRldmljZSBpbmRpY2F0ZXMgc28gYnkKLSBzZXR0aW5nIGZlYXR1cmUgYml0IDMxIChzZWUgCisg CitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwNzg0OTI5CitJZiBtb3JlIHRoYW4gMzEg ZmVhdHVyZSBiaXRzIGFyZSBzdXBwb3J0ZWQsIHRoZSBkZXZpY2UgaW5kaWNhdGVzIHNvIGJ5IHNl dHRpbmcKKyBmZWF0dXJlIGJpdCAzMSAoc2VlIAogXGJlZ2luX2luc2V0IENvbW1hbmRJbnNldCBy ZWYKIExhdGV4Q29tbWFuZCByZWYKIHJlZmVyZW5jZSAiY2hhOlJlc2VydmVkLUZlYXR1cmUtQml0 cyIKQEAgLTE1NDAsNyArNDYwNyw5IEBAIHJlZmVyZW5jZSAiY2hhOlJlc2VydmVkLUZlYXR1cmUt Qml0cyIKIFxlbmRfaW5zZXQKIAogKS4KLSBUaGUgYml0cyBhcmUgYWxsb2NhdGVkIGFzIGZvbGxv d3M6CisgCitcY2hhbmdlX3VuY2hhbmdlZAorVGhlIGJpdHMgYXJlIGFsbG9jYXRlZCBhcyBmb2xs b3dzOgogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBEZXNjcmlwdGlvbgpAQCAtMTYxNSwx MCArNDY4NCwxNCBAQCBUaGlzIGFsbG93cyBmb3IgZm9yd2FyZHMgYW5kIGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OiBpZiB0aGUgZGV2aWNlIGlzIGVuaGFuY2VkCiBcZW5kX2xheW91dAogCiBcYmVn aW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3ODQ5 NDAKIEFjY2VzcyB0byBmZWF0dXJlIGJpdHMgMzIgdG8gNjMgaXMgZW5hYmxlZCBieSBHdWVzdCBi eSBzZXR0aW5nIGZlYXR1cmUgYml0CiAgMzEuCiAgSWYgdGhpcyBiaXQgaXMgdW5zZXQsIERldmlj ZSBtdXN0IGFzc3VtZSB0aGF0IGFsbCBmZWF0dXJlIGJpdHMgPiAzMSBhcmUKICB1bnNldC4KK1xj aGFuZ2VfdW5jaGFuZ2VkCisKIFxlbmRfbGF5b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3Vic3Vic2Vj dGlvbgpAQCAtMTYyOSwxMCArNDcwMiwxNCBAQCBDb25maWd1cmF0aW9uL1F1ZXVlIFZlY3RvcnMK IFdoZW4gTVNJLVggY2FwYWJpbGl0eSBpcyBwcmVzZW50IGFuZCBlbmFibGVkIGluIHRoZSBkZXZp Y2UgKHRocm91Z2ggc3RhbmRhcmQKICBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSkgNCBieXRlcyBh dCBieXRlIG9mZnNldCAyMCBhcmUgdXNlZCB0byBtYXAgY29uZmlndXJhdGlvCiBuIGNoYW5nZSBh bmQgcXVldWUgaW50ZXJydXB0cyB0byBNU0ktWCB2ZWN0b3JzLgotIEluIHRoaXMgY2FzZSwgdGhl IElTUiBTdGF0dXMgZmllbGQgaXMgdW51c2VkLCBhbmQgZGV2aWNlIHNwZWNpZmljIGNvbmZpZ3Vy YXRpb24KLSBzdGFydHMgYXQgYnl0ZSBvZmZzZXQgMjQgaW4gdmlydGlvIGhlYWRlciBzdHJ1Y3R1 cmUuCisgSW4gdGhpcyBjYXNlLCB0aGUgSVNSIFN0YXR1cyBmaWVsZCBpcyB1bnVzZWQKK1xjaGFu Z2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3ODQ5ODEKKywgYW5kIGRldmljZSBzcGVjaWZpYyBj b25maWd1cmF0aW9uIHN0YXJ0cyBhdCBieXRlIG9mZnNldCAyNCBpbiB2aXJ0aW8gaGVhZGVyCisg c3RydWN0dXJlLgogIFdoZW4gTVNJLVggY2FwYWJpbGl0eSBpcyBub3QgZW5hYmxlZCwgZGV2aWNl IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc3RhcnRzCi0gYXQgYnl0ZSBvZmZzZXQgMjAgaW4gdmly dGlvIGhlYWRlci4KKyBhdCBieXRlIG9mZnNldCAyMCBpbiB2aXJ0aW8gaGVhZGVyCitcY2hhbmdl X3VuY2hhbmdlZAorLgogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZApAQCAt MzgyOSw3ICs2OTA2LDEzIEBAIEFwcGVuZGl4IEI6IFJlc2VydmVkIEZlYXR1cmUgQml0cwogXGVu ZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAotQ3VycmVudGx5IHRoZXJlIGFyZSBm aXZlIGRldmljZS1pbmRlcGVuZGVudCBmZWF0dXJlIGJpdHMgZGVmaW5lZDoKK0N1cnJlbnRseSB0 aGVyZSBhcmUgCitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwODY3MzY2CitmaXZlCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2NzM2NworZm91cgorXGNoYW5nZV91bmNo YW5nZWQKKyBkZXZpY2UtaW5kZXBlbmRlbnQgZmVhdHVyZSBiaXRzIGRlZmluZWQ6CiBcZW5kX2xh eW91dAogCiBcYmVnaW5fbGF5b3V0IERlc2NyaXB0aW9uCkBAIC0zOTI2LDkgKzcwMDksMTMgQEAg QW4gZXhwZXJpbWVudGFsIHZpcnRpbyBQQ0kgZHJpdmVyIGNvbnRhaW5lZCBpbiBMaW51eCB2ZXJz aW9uIDIuNi4yNSBoYWQgdGhpcwogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBEZXNjcmlw dGlvbgorCitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwODY3MzcwCiBWSVJUSU9fRl9G RUFUVVJFU19ISUdIKDMxKSBUaGlzIGZlYXR1cmUgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBz dXBwb3J0cwogIGZlYXR1cmUgYml0cyAzMjo2My4KICBJZiB1bnNldCwgZmVhdHVyZSBiaXRzIDMy OjYzIGFyZSB1bnNldC4KK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxlbmRfbGF5b3V0CiAKIFxiZWdp bl9sYXlvdXQgQ2hhcHRlcioKQEAgLTQxODYsNiArNzI3MywyNCBAQCBzdHJ1Y3QgdmlydGlvX25l dF9jb25maWcgewogCiBcZW5kX2xheW91dAogCitcYmVnaW5fbGF5b3V0IERlc2NyaXB0aW9uCisK K1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3NzQzCitEZXZpY2UKK1xiZWdpbl9p bnNldCBzcGFjZSB+CitcZW5kX2luc2V0CisKK2xlZ2FjeQorXGJlZ2luX2luc2V0IHNwYWNlIH4K K1xlbmRfaW5zZXQKKworY29uZmlndXJhdGlvbgorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRf aW5zZXQKKworc2l6ZSBmb3IgdGhpcyBkZXZpY2UgaXMgOCBieXRlcy4KK1xlbmRfbGF5b3V0CisK IFxiZWdpbl9sYXlvdXQgU2VjdGlvbioKIERldmljZSBJbml0aWFsaXphdGlvbgogXGVuZF9sYXlv dXQKQEAgLTUyMjYsNiArODMzMSwyNCBAQCBzdHJ1Y3QgdmlydGlvX2Jsa19jb25maWcgewogCiBc ZW5kX2xheW91dAogCitcYmVnaW5fbGF5b3V0IERlc2NyaXB0aW9uCisKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwODY3Nzc5CitEZXZpY2UKK1xiZWdpbl9pbnNldCBzcGFjZSB+Citc ZW5kX2luc2V0CisKK2xlZ2FjeQorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKwor Y29uZmlndXJhdGlvbgorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKworc2l6ZSBm b3IgdGhpcyBkZXZpY2UgaXMgMzIgYnl0ZXMuCitcZW5kX2xheW91dAorCiBcYmVnaW5fbGF5b3V0 IFNlY3Rpb24qCiBEZXZpY2UgSW5pdGlhbGl6YXRpb24KIFxlbmRfbGF5b3V0CkBAIC01NzgwLDYg Kzg5MDMsMjQgQEAgc3RydWN0IHZpcnRpb19jb25zb2xlX2NvbmZpZyB7CiAKIFxlbmRfbGF5b3V0 CiAKK1xiZWdpbl9sYXlvdXQgRGVzY3JpcHRpb24KKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4Njc4MDYKK0RldmljZQorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQK KworbGVnYWN5CitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitjb25maWd1cmF0 aW9uCitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitzaXplIGZvciB0aGlzIGRl dmljZSBpcyA4IGJ5dGVzLgorXGVuZF9sYXlvdXQKKwogXGJlZ2luX2xheW91dCBTZWN0aW9uKgog RGV2aWNlIEluaXRpYWxpemF0aW9uCiBcZW5kX2xheW91dApAQCAtNTk5NCw2ICs5MTM1LDI4IEBA IGNvbmZpZ3VyYXRpb24KIFxlbmRfaW5zZXQKIAogbGF5b3V0IE5vbmUgY3VycmVudGx5IGRlZmlu ZWQuCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2Nzg0MAorCitcZW5kX2xheW91 dAorCitcYmVnaW5fbGF5b3V0IERlc2NyaXB0aW9uCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwODY3ODQ1CitEZXZpY2UKK1xiZWdpbl9pbnNldCBzcGFjZSB+CitcZW5kX2luc2V0 CisKK2xlZ2FjeQorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKworY29uZmlndXJh dGlvbgorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKworc2l6ZSBmb3IgdGhpcyBk ZXZpY2UgaXMgMCBieXRlcy4KK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxlbmRfbGF5b3V0CiAKIFxi ZWdpbl9sYXlvdXQgU2VjdGlvbioKQEAgLTYxMjcsNiArOTI5MCwyNCBAQCBzdHJ1Y3QgdmlydGlv X2JhbGxvb25fY29uZmlnIHsKIAogXGVuZF9sYXlvdXQKIAorXGJlZ2luX2xheW91dCBEZXNjcmlw dGlvbgorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2Nzg2NQorRGV2aWNlCitc YmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitsZWdhY3kKK1xiZWdpbl9pbnNldCBz cGFjZSB+CitcZW5kX2luc2V0CisKK2NvbmZpZ3VyYXRpb24KK1xiZWdpbl9pbnNldCBzcGFjZSB+ CitcZW5kX2luc2V0CisKK3NpemUgZm9yIHRoaXMgZGV2aWNlIGlzIDQgYnl0ZXMuCitcZW5kX2xh eW91dAorCiBcYmVnaW5fbGF5b3V0IFNlY3Rpb24qCiBEZXZpY2UgSW5pdGlhbGl6YXRpb24KIFxl bmRfbGF5b3V0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f ClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1m b3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9s aXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932728Ab1KIT6Q (ORCPT ); Wed, 9 Nov 2011 14:58:16 -0500 Received: from mx1.redhat.com ([209.132.183.28]:13411 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932582Ab1KIT6M (ORCPT ); Wed, 9 Nov 2011 14:58:12 -0500 Date: Wed, 9 Nov 2011 21:59:03 +0200 From: "Michael S. Tsirkin" To: Rusty Russell Cc: Sasha Levin , lkml - Kernel Mailing List , Alexey Kardashevskiy , Amit Shah , Christian Borntraeger , Krishna Kumar , Pawel Moll , Wang Sheng-Hui , virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, avi@redhat.com, penberg@kernel.org Subject: [PATCHv2 RFC] virtio-spec: flexible configuration layout Message-ID: <20111109195901.GA28155@redhat.com> References: <87wrbkvh3v.fsf@rustcorp.com.au> <20111101114542.GA13434@redhat.com> <1320150813.3847.24.camel@lappy> <20111101124223.GA14060@redhat.com> <8739e7uy87.fsf@rustcorp.com.au> <20111102233110.GA20289@redhat.com> <20111108214021.GA4538@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20111108214021.GA4538@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Here's an updated spec patch. Changes from v1: - add an example configuration - scale tables so they fit within page - clean up some remaining items mentioning feature bit 31 Description from v1: Here's a spec change documenting what my C patch does (almost - I tweaked the layout a bit, but the idea is the same). Some more cleanups are needed but I thought I'd send it for early flames/comments. The idea is simple: we split functionally unrelated register groups to independent structures, and let the device place is anywhere using a capability in PCI configuration space. It can then go into MMIO space which is cheaper than PIO. A legacy portion of the configuration is mirrored in the first BAR, to keep legacy drivers working. Any new fields can be added in existing structures at the end, so they won't affect legacy. Alternatively we can add new structures with new structure IDs, pointed to from PCI configuration space. As we don't yet have devices or drivers with 64 bit features, I decided we don't need high feature bits in legacy space. This also frees up feature bit 31 as we don't need it to enable high feature bits anymore. I don't think any released software actually uses it (the kvm tool HEAD apparently does, but I think it's not too late to fix it). As this solves the dynamic placement of MSIX vectors and high feature bits, I thought it's easier to just reserve space for that programming than give it a separate structure. This can be changed by a patch on top. Note that data path is split from configuration. PDF will follow. Please comment. Signed-off-by: Michael S. Tsirkin --- diff --git a/virtio-spec.lyx b/virtio-spec.lyx index 6426f8f..2ce2553 100644 --- a/virtio-spec.lyx +++ b/virtio-spec.lyx @@ -3,6 +3,9 @@ \begin_document \begin_header \textclass report +\begin_preamble +\usepackage{graphicx} +\end_preamble \use_default_options false \maintain_unincluded_children false \language english @@ -56,6 +59,7 @@ \html_math_output 0 \html_css_as_file 0 \html_be_strict false +\author 1986246365 "Michael S. Tsirkin" \end_header \begin_body @@ -570,7 +574,34 @@ Device Configuration \end_layout \begin_layout Standard -To configure the device, we use the first I/O region of the PCI device. +To configure the device, we +\change_inserted 1986246365 1320783354 +use I/O and/or memory regions of the PCI device. + These contain the virtio header registers, the notification register, the + ISR status register and device specific registers, as specified by Virtio + Structure PCI Capabilities +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320787659 +For backwards compatibility, devices should present part of these configuration + registers in a legacy configuration structure in the first I/O region of + the PCI device +\change_unchanged + +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Standard + +\change_deleted 1986246365 1320766512 +use the first I/O region of the PCI device. This contains a \emph on virtio header @@ -578,105 +609,3115 @@ virtio header followed by a \emph on device-specific region. +\change_unchanged + +\end_layout + +\begin_layout Standard +There may be different widths of accesses to the I/O region; the +\begin_inset Quotes eld +\end_inset + +natural +\begin_inset Quotes erd +\end_inset + + access method for each field in the virtio header must be used (i.e. + 32-bit accesses for 32-bit fields, etc), but the device-specific region + can be accessed using any width accesses, and should obtain the same results. +\end_layout + +\begin_layout Standard +Note that this is possible because while the virtio header +\change_inserted 1986246365 1320767249 +, notification and ISR status are +\change_deleted 1986246365 1320767251 + is +\change_unchanged + PCI (i.e. + little) endian, the device-specific +\change_deleted 1986246365 1320767335 + region is +\change_inserted 1986246365 1320767337 +registers are +\change_unchanged + encoded in the native endian of the guest (where such distinction is applicable +). +\change_inserted 1986246365 1320767660 + +\end_layout + +\begin_layout Subsection +Device Initialization Sequence +\begin_inset CommandInset label +LatexCommand label +name "sub:Device-Initialization-Sequence" + +\end_inset + + +\end_layout + +\begin_layout Standard +We start with an overview of device initialization, then expand on the details + of the device and how each step is preformed. +\end_layout + +\begin_layout Enumerate +Reset the device. + This is not required on initial start up. +\end_layout + +\begin_layout Enumerate +The ACKNOWLEDGE status bit is set: we have noticed the device. +\end_layout + +\begin_layout Enumerate +The DRIVER status bit is set: we know how to drive the device. +\end_layout + +\begin_layout Enumerate + +\change_inserted 1986246365 1320838089 +PCI capability list scan, detecting virtio configuration layout using Virtio + Structure PCI capabilities. + +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320838121 +Historically drivers skipped this step, using legacy configuration space + unconditionally. +\change_unchanged + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Enumerate +Device-specific setup, including reading the Device Feature Bits, discovery + of virtqueues for the device, optional MSI-X setup, and reading and possibly + writing the virtio configuration space. +\end_layout + +\begin_layout Enumerate +The subset of Device Feature Bits understood by the driver is written to + the device. +\end_layout + +\begin_layout Enumerate +The DRIVER_OK status bit is set. +\end_layout + +\begin_layout Enumerate +The device can now be used (ie. + buffers added to the virtqueues) +\begin_inset Foot +status open + +\begin_layout Plain Layout +Historically, drivers have used the device before steps 5 and 6. + This is only allowed if the driver does not use any features which would + alter this early use of the device. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +If any of these steps go irrecoverably wrong, the guest should set the FAILED + status bit to indicate that it has given up on the device (it can reset + the device later to restart if desired). +\end_layout + +\begin_layout Standard +We now cover the fields required for general setup in detail. +\change_inserted 1986246365 1320766663 + +\end_layout + +\begin_layout Subsection + +\change_inserted 1986246365 1320781584 +Virtio Structure PCI Capability +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320781061 +Virtio configuration layout includes virtio configuration header, notification + and ISR status and device configuration structures. + Each structure is mapped by a Base Address register (BAR) belonging to + the function, located beginning at 10h in Configuration Space. + +\emph on +Structure ID +\emph default +indentifies the structure +\emph on +, Size +\emph default + indicates the structure size, in bytes, a +\emph on +BAR Indicator register (BIR) +\emph default + indicates which BAR, and +\emph on +Offset +\emph default + indicates where the structure begins relative to the base address associated + with the BAR. + The BAR is permitted to be either 32-bit or 64-bit, it can map Memory Space + or I/O Space. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320838522 +These registers are specified using vendor-specific PCI capability located + on capability list in PCI configuration space of the device. + This virtio structure capability uses little-endian format; all bits are + read-only: +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +resizebox{ +\backslash +textwidth}{!}{% +\end_layout + +\end_inset + + +\change_inserted 1986246365 1320839073 + +\begin_inset Tabular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771774 + +\size tiny +Bit +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771777 + +\size tiny +31 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771779 + +\size tiny +30 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771781 + +\size tiny +29 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771783 + +\size tiny +28 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771786 + +\size tiny +27 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771810 + +\size tiny +26 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771813 + +\size tiny +25 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771815 + +\size tiny +24 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771817 + +\size tiny +23 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771819 + +\size tiny +22 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771821 + +\size tiny +21 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771823 + +\size tiny +20 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771825 + +\size tiny +19 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771829 + +\size tiny +18 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771831 + +\size tiny +17 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771833 + +\size tiny +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771835 + +\size tiny +15 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771840 + +\size tiny +14 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771841 + +\size tiny +13 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771843 + +\size tiny +12 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771845 + +\size tiny +11 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771847 + +\size tiny +10 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771850 + +\size tiny +9 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771852 + +\size tiny +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771854 + +\size tiny +7 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771856 + +\size tiny +6 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771858 + +\size tiny +5 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771859 + +\size tiny +4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771861 + +\size tiny +3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771862 + +\size tiny +2 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771864 + +\size tiny +1 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771888 + +\size tiny +0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771997 + +\size tiny +Offset +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320781029 + +\size larger +Structure ID +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850302 + +\size larger +CapLength = 12 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850298 + +\size larger +NextCapPtr +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850289 + +\size larger +CapID = 9 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772004 +0 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772549 + +\size larger +Size +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850408 + +\size larger +BIR +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772007 +4 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772540 + +\size larger +Offset +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772011 +8 +\end_layout + +\end_inset + + + + +\end_inset + + +\change_unchanged + +\begin_inset ERT +status open + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\change_inserted 1986246365 1320839073 + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320838992 +Purpose: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320780912 + +\emph on +Capability ID +\emph default +, +\emph on +Next Capability Pointer +\emph default +, +\emph on +Capability Length +\emph default + - these fields are specified by PCI local bus specification, Rev 3.0 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320785073 + +\emph on +Structure ID +\emph default + - identifies the structure mapped. + If an ID representing a specific structure is absent, the structure is + located in the legacy virtio configuration in the first PCI BAR. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320782689 + +\emph on +Size +\emph default + - size of the structure mapped. + This size might include padding, or fields unused by the driver. + Drivers are also recommended to only map part of configuration structure + large enough for device operation. + For example, a future device might present a large structure size of several + MBytes. + As current devices never utilize structures larger than 4KBytes in size, + driver can limit the mapped structure size to e.g. + 4KBytes to allow forward compatibility with such devices without loss of + functionality and without wasting resources. +\change_unchanged + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320839833 + +\emph on +BIR - BAR Indicator Register +\emph default + - Indicates which one of the BAR registers, located beginning at 10h in + Configuration Space, is used to map the structure into Memory or I/O Space. + Legal values are 0 - 5. + BAR offset is calculated as +\emph on +BAR +\emph default + = 10h + 4 * +\emph on +BIR. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320781002 + +\emph on +Offset +\emph default + - Used as an offset from the address contained by one of the function’s + Base Address registers to point to the base of the structure. + Depending on the structure, the lower bits are masked off (set to zero) + by software to form an aligned offset. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320785098 +A single device has multiple virtio capabilities on the PCI capability linked-li +st. + To locate a specific register, driver scans the PCI capability list looking + for capabilities using the vendor specific +\emph on +Capability ID +\emph default +, that is +\emph on +Capability ID +\emph default + value +\emph on +9 +\emph default +, according to the PCI spec. + For each capability, it verifies that the +\emph on +Capability Length +\emph default + field matches the expected value (12) - if it doesn't, this indicates a + layout change, which causes driver to ignore the specific PCI capability + and proceed to the next PCI capability in the list. + Next, +\emph on + Structure ID +\emph default + single-byte field is read at offset 3. + Unrecognized +\emph on +Structure ID +\emph default + values are ignored. + Low bits in the +\emph on +Offset +\emph default + register are masked to match alignment requirements, if any. + Device drivers are recommended to sanity check +\emph on +BIR +\emph default +, +\emph on +Offset +\emph default +, and +\emph on +Size +\emph default + fields, ignoring the capability or failing gracefully on error. + Drivers are also recommended to only map part of configuration structure + large enough for device operation. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320786035 +For backwards compatibility, devices should also present legacy configuration + space in the first I/O region of the PCI device, mirroring virtio configuration + structures in this space. + Drivers should fall back on this legacy structure if a specific Virtio + Structure capability is missing in the PCI capability list. + However, devices are not required to map the whole configuration structure + in legacy space - only the initial segment expected by legacy drivers needs + to be mapped. + The minimal size of such legacy segment size, for each structure, is listed + below. + Drivers are discouraged from using legacy space if a specific Structure + ID is present; this is to allow deprecating the legacy space in the future. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320850770 +Below is the list of supported Virtio structures, including Structure ID, + offset alignment, and where it can be located in the legacy configuration + space. + Note that legacy space layout changes as the MSI-X capability is enabled + and disabled +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320856794 +ie. + once you enable MSI-X on the device, some legacy fields move. + If you turn it off again, they move back! this does not affect the new + configuration +\end_layout + +\end_inset + +. + Alignment, offset and all sizes are in bytes. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320786868 +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Structure +\change_inserted 1986246365 1320855560 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +ID +\change_inserted 1986246365 1320855560 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Align- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855560 +MinSize +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785821 +Offset in +\change_deleted 1986246365 1320785817 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850780 +MinSize in +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855625 +ment +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855593 +legacy space +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855610 + legacy space +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785855 +Virtio Header +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785860 +0x1 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786157 +4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786225 +28 bytes +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786145 +0 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855180 +24 or 20 +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855511 +\begin_inset CommandInset label +LatexCommand label +name "fn:24-or-20" + +\end_inset + +24 bytes if MSI-X is enabled, 20 bytes if it is disabled +\change_unchanged + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786188 +Queue Notify +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786191 +0x2 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786267 +2 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786228 +2 bytes +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786505 +16 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786303 +2 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786878 +ISR Status +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786260 +0x3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786270 +1 byte +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786273 +1 byte +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786534 +19 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786306 +1 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786847 +Device Header +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786474 +0x4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786477 +1 byte +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855405 +? +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855417 +\begin_inset CommandInset label +LatexCommand label +name "fn:Device-specific" + +\end_inset + +Device specific +\change_unchanged + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855534 +24 or 20 +\begin_inset Formula $^{\text{\ref{fn:24-or-20}}}$ +\end_inset + + +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855432 +? +\begin_inset Formula $^{\text{\ref{fn:Device-specific}}}$ +\end_inset + + +\change_unchanged + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320786973 +Drivers should assume that each structure size can be extended in the future. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320859762 +Queue Notify and ISR status are single-field registers. + Device Header has device specific structure. + Virtio Header structure is documented below. +\end_layout + +\begin_layout Subsubsection + +\change_inserted 1986246365 1320867253 +Example Virtio Structure Layout +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320865758 +Let's assume that a virtio block device presents two Virtio Structure capabiliti +es in PCI capability list: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863392 +Structure ID 0x1; BIR 1; Offset 0x1000; Size 0x100 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863399 +Structure ID 0x4; BIR 1; Offset 0x1100; Size 0x200 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863479 +Let's further assume that MSI-X is disabled. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863498 +In this case, the driver should use: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863543 +Virtio Header at offset 0x1000 in BAR 1 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863568 +Device Header at offset 0x1100 in BAR1 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320868074 +Queue Notify at offset 0x10 in BAR0 (legacy configuration space is used + since Structure ID is not present) +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320868077 +ISR status at offset 0x13 in BAR0 (legacy configuration space is used since + Structure ID is not present) +\change_unchanged + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320867162 +For use by legacy drivers, the first 20 bytes in BAR0 mirror bytes 0x1000 + to 0x1013 in BAR1, and the following 32 bytes in BAR0 should mirror bytes + 0x1100 to 111F in BAR1. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320867231 +Enabling MSI-X only affects the legacy drivers: with MSI-X enabled, the + first 24 bytes in BAR0 mirror bytes 0x1000 to 0x1017 in BAR1, and the following + 32 bytes in BAR0 should mirror bytes 0x1100 to 111F in BAR1. +\change_unchanged + +\end_layout + +\begin_layout Subsection + +\change_inserted 1986246365 1320855988 +Virtio Header +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320858571 +The virtio header looks as follows: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320858597 +\begin_inset Tabular + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858603 +Bits +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858614 +R/W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858619 +Purpose +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858841 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858858 +R +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858870 +Device Features bits 0:31 +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858873 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858876 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858885 +Guest Features bits 0:31 +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858889 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858891 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858907 +Queue Address +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859001 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859006 +R +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858953 +Queue Size +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859012 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859008 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858957 +Queue Select +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859015 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858964 +Reserved +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859029 +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859032 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858972 +Device Status +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859052 +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858989 +Reserved +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859063 +16 +\change_unchanged + \end_layout -\begin_layout Standard -There may be different widths of accesses to the I/O region; the -\begin_inset Quotes eld \end_inset + + +\begin_inset Text -natural -\begin_inset Quotes erd -\end_inset +\begin_layout Plain Layout - access method for each field in the virtio header must be used (i.e. - 32-bit accesses for 32-bit fields, etc), but the device-specific region - can be accessed using any width accesses, and should obtain the same results. -\end_layout +\change_inserted 1986246365 1320859065 +R+W +\change_unchanged -\begin_layout Standard -Note that this is possible because while the virtio header is PCI (i.e. - little) endian, the device-specific region is encoded in the native endian - of the guest (where such distinction is applicable). \end_layout -\begin_layout Subsection -Device Initialization Sequence -\begin_inset CommandInset label -LatexCommand label -name "sub:Device-Initialization-Sequence" +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859081 +MSI-X Configuration Vector +\change_unchanged + +\end_layout \end_inset + + + + +\begin_inset Text +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859083 +16 +\change_unchanged \end_layout -\begin_layout Standard -We start with an overview of device initialization, then expand on the details - of the device and how each step is preformed. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859088 +R+W +\change_unchanged + \end_layout -\begin_layout Enumerate -Reset the device. - This is not required on initial start up. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859095 +MSI-X Queue Vector +\change_unchanged + \end_layout -\begin_layout Enumerate -The ACKNOWLEDGE status bit is set: we have noticed the device. +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859102 +32 +\change_unchanged + \end_layout -\begin_layout Enumerate -The DRIVER status bit is set: we know how to drive the device. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859106 +R +\change_unchanged + \end_layout -\begin_layout Enumerate -Device-specific setup, including reading the Device Feature Bits, discovery - of virtqueues for the device, optional MSI-X setup, and reading and possibly - writing the virtio configuration space. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859116 +Device Features bits 32:63 +\change_unchanged + \end_layout -\begin_layout Enumerate -The subset of Device Feature Bits understood by the driver is written to - the device. +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859122 +32 +\change_unchanged + \end_layout -\begin_layout Enumerate -The DRIVER_OK status bit is set. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859119 +R+W +\change_unchanged + \end_layout -\begin_layout Enumerate -The device can now be used (ie. - buffers added to the virtqueues) -\begin_inset Foot -status open +\end_inset + + +\begin_inset Text \begin_layout Plain Layout -Historically, drivers have used the device before steps 5 and 6. - This is only allowed if the driver does not use any features which would - alter this early use of the device. + +\change_inserted 1986246365 1320859130 +Guest Features bits 32:63 +\change_unchanged + \end_layout \end_inset + + + + +\end_inset \end_layout -\begin_layout Standard -If any of these steps go irrecoverably wrong, the guest should set the FAILED - status bit to indicate that it has given up on the device (it can reset - the device later to restart if desired). +\begin_layout Subsubsection + +\change_inserted 1986246365 1320856004 +Legacy +\change_unchanged +Virtio Header \end_layout \begin_layout Standard -We now cover the fields required for general setup in detail. -\end_layout -\begin_layout Subsection -Virtio Header +\change_inserted 1986246365 1320867482 +For backwards compatibility, devices should mirror the initial part of virtio + header and device header structures, Queue Notify and ISR Status registers + in legacy configuration space in the first I/O region of the PCI device. + Drivers should fall back on this legacy structure if a specific Virtio + Structure capability is missing in the PCI capability list. + Drivers are discouraged from using legacy space if a specific Structure + ID is present; this is to allow deprecating the legacy space in the future. \end_layout \begin_layout Standard -The virtio header looks as follows: + +\change_inserted 1986246365 1320859848 +For reference, the +\change_deleted 1986246365 1320856044 +The +\change_unchanged + +\change_inserted 1986246365 1320859848 +legacy +\change_unchanged +virtio header looks as follows +\change_inserted 1986246365 1320859848 +; one observes that most register offsets match the new virtio header, to + make compatibility easier +\change_unchanged +: \end_layout \begin_layout Standard @@ -1067,11 +4108,15 @@ Status If MSI-X is enabled for the device, two additional fields immediately follow this header: \begin_inset Foot -status collapsed +status open \begin_layout Plain Layout ie. - once you enable MSI-X on the device, the other fields move. + once you enable MSI-X on the device, the other fields +\change_inserted 1986246365 1320867540 +in legacy configuration +\change_unchanged +move. If you turn it off again, they move back! \end_layout @@ -1219,11 +4264,15 @@ Vector \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320867563 Finally, if feature bits (VIRTIO_F_FEATURES_HI) this is immediately followed by two additional fields: \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320867563 \begin_inset Tabular @@ -1359,11 +4408,16 @@ Features bits 32:63 \end_inset +\change_unchanged + \end_layout \begin_layout Standard -Immediately following these general headers, there may be device-specific - headers: +Immediately following these general headers, there may be +\change_inserted 1986246365 1320856347 +legacy +\change_unchanged +device-specific headers: \end_layout \begin_layout Standard @@ -1459,6 +4513,17 @@ Device Specific... \end_inset +\change_inserted 1986246365 1320856108 + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320856109 +Legacy device-specific headers are supported for backwards compatibility. + As such, they are not required to map the whole device configuration structure + - only the initial segment expected by legacy drivers needs to be mapped. + The size of such legacy segment size is device specific. \end_layout \begin_layout Subsubsection @@ -1531,8 +4596,10 @@ name "sub:Feature-Bits" The least significant 31 bits of the first configuration field indicates the features that the device supports (the high bit is reserved, and will be used to indicate the presence of future feature bits elsewhere). - If more than 31 feature bits are supported, the device indicates so by - setting feature bit 31 (see + +\change_deleted 1986246365 1320784929 +If more than 31 feature bits are supported, the device indicates so by setting + feature bit 31 (see \begin_inset CommandInset ref LatexCommand ref reference "cha:Reserved-Feature-Bits" @@ -1540,7 +4607,9 @@ reference "cha:Reserved-Feature-Bits" \end_inset ). - The bits are allocated as follows: + +\change_unchanged +The bits are allocated as follows: \end_layout \begin_layout Description @@ -1615,10 +4684,14 @@ This allows for forwards and backwards compatibility: if the device is enhanced \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320784940 Access to feature bits 32 to 63 is enabled by Guest by setting feature bit 31. If this bit is unset, Device must assume that all feature bits > 31 are unset. +\change_unchanged + \end_layout \begin_layout Subsubsection @@ -1629,10 +4702,14 @@ Configuration/Queue Vectors When MSI-X capability is present and enabled in the device (through standard PCI configuration space) 4 bytes at byte offset 20 are used to map configuratio n change and queue interrupts to MSI-X vectors. - In this case, the ISR Status field is unused, and device specific configuration - starts at byte offset 24 in virtio header structure. + In this case, the ISR Status field is unused +\change_deleted 1986246365 1320784981 +, and device specific configuration starts at byte offset 24 in virtio header + structure. When MSI-X capability is not enabled, device specific configuration starts - at byte offset 20 in virtio header. + at byte offset 20 in virtio header +\change_unchanged +. \end_layout \begin_layout Standard @@ -3829,7 +6906,13 @@ Appendix B: Reserved Feature Bits \end_layout \begin_layout Standard -Currently there are five device-independent feature bits defined: +Currently there are +\change_deleted 1986246365 1320867366 +five +\change_inserted 1986246365 1320867367 +four +\change_unchanged + device-independent feature bits defined: \end_layout \begin_layout Description @@ -3926,9 +7009,13 @@ An experimental virtio PCI driver contained in Linux version 2.6.25 had this \end_layout \begin_layout Description + +\change_deleted 1986246365 1320867370 VIRTIO_F_FEATURES_HIGH(31) This feature indicates that the device supports feature bits 32:63. If unset, feature bits 32:63 are unset. +\change_unchanged + \end_layout \begin_layout Chapter* @@ -4186,6 +7273,24 @@ struct virtio_net_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867743 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 8 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5226,6 +8331,24 @@ struct virtio_blk_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867779 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 32 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5780,6 +8903,24 @@ struct virtio_console_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867806 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 8 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5994,6 +9135,28 @@ configuration \end_inset layout None currently defined. +\change_inserted 1986246365 1320867840 + +\end_layout + +\begin_layout Description + +\change_inserted 1986246365 1320867845 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 0 bytes. +\change_unchanged + \end_layout \begin_layout Section* @@ -6127,6 +9290,24 @@ struct virtio_balloon_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867865 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 4 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout