From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Is it ok to routing periperal irq to any Domain0's vCPU on Xen ARM 4.5.x? Date: Fri, 17 Apr 2015 10:49:39 +0100 Message-ID: <1429264179.25195.231.camel@citrix.com> References: <8cb37b42f5a69a2069b957fa751bf5a6@cweb25.nm.nhnsystem.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <8cb37b42f5a69a2069b957fa751bf5a6@cweb25.nm.nhnsystem.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: =?UTF-8?Q?=EC=8B=A0=EC=A0=95=EC=84=AD?= Cc: Stefano Stabellini , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gRnJpLCAyMDE1LTA0LTE3IGF0IDExOjM2ICswOTAwLCDsi6DsoJXshK0gd3JvdGU6Cj4gIAo+ IAo+IEknbSBzdHVkeWluZyBwZXJpcGVyYWwgaXJxIHJvdXRpbmcgdG8gRG9tYWluMCdzIHZDUFUK CldoYXQgZG8geW91IG1lYW4gYnkgInBlcmlwaGVyYWwgaXJxIHJvdXRpbmciPyBEbyB5b3UgbWVh biBzdXBwb3J0aW5nIHRoZQpndWVzdCB3cml0aW5nIHRvIEdJQ0RfSVRBUkdFUiB0byBjYXVzZSBh biBpbnRlcnJ1cHQgdG8gYmUgaW5qZWN0ZWQgdG8gYQpzcGVjaWZpYyB2Y3B1PwoKSSB0aG91Z2h0 IHRoYXQgd2FzIHN1cHBvc2VkIHRvIHdvcmssIFN0ZWZhbm8/Cgo+IAo+ICAKPiAKPiBJJ20gdGVz dGluZyBvbiBBcm5kYWxlIEJyb2FkIGFuZCBEb21haW4gMCBoYXMgMiB2Q1BVLgo+IAo+IFNvIFhl biBjYW4gc2VsZWN0IHZjcHUwIG9yIHZjcHUxIHRvIGluamVjdCBwZXJpcGVyYWwgaXJxLgo+IAo+ ICAKPiAKPiBJIHRlc3RlZCBwZXJpcGVyYWwgcm91dGluZyBvbiBYZW4gNC40LjEgYW5kIGl0IHdv cmtzIHdlbGwuCj4gCj4gQnV0IEkgdGVzdGVkIHBlcmlwZXJhbCByb3V0aW5nIG9uIFhlbiA0LjUu MCBidXQgaXJxIGRvc2VuJ3Qgd29ya3MKPiB3ZWxsLgo+IAo+ICAKPiAKPiBTbyBJIHRlc3RlZCB2 ZXJ5IHNpbXBsZSBwZXJpcGVyYWwgcm91dGluZyBjb2RlIGxpa2UgdGhpcy4KPiAKPiAnZmxhZycg aXMgZ3JvYmFsIHZhcmlhYmxlLiAKPiAKPiAgCj4gCj4gKiBJbiAiZG9fSVJRIiBmdW5jdGlvbiBv biBYZW4gNC40LjEgCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAKPiAtIGZyb20KPiAKPiBpZiAoIGRlc2MtPnN0YXR1cyAmIElSUV9H VUVTVCApCj4gCj4gewo+IAo+IHN0cnVjdCBkb21haW4gKmQgPSBhY3Rpb24tPmRldl9pZDsKPiAK PiAgCj4gCj4gZGVzYy0+aGFuZGxlci0+ZW5kKGRlc2MpOwo+IAo+ICAKPiAKPiBkZXNjLT5zdGF0 dXMgPSBJUlFfSU5QUk9HUkVTUzsKPiAKPiBkZXNjLT5hcmNoLmVvaV9jcHUgPSBzbXBfcHJvY2Vz c29yX2lkKCk7Cj4gCj4gIAo+IAo+IC8qIFhYWDogaW5qZWN0IGlycSBpbnRvIGFsbCBndWVzdCB2 Y3B1cyAqLwo+IAo+IHZnaWNfdmNwdV9pbmplY3RfaXJxKGQtPnZjcHVbMF0sIGlycSwgMCk7Cj4g Cj4gZ290byBvdXRfbm9fZW5kOwo+IAo+IH0KPiAKPiAtdG8gaWYgKCBkZXNjLT5zdGF0dXMgJiBJ UlFfR1VFU1QgKSB7Cj4gCj4gc3RydWN0IGRvbWFpbiAqZCA9IGFjdGlvbi0+ZGV2X2lkOwo+IAo+ ICAKPiAKPiBkZXNjLT5oYW5kbGVyLT5lbmQoZGVzYyk7Cj4gCj4gIAo+IAo+IGRlc2MtPnN0YXR1 cyA9IElSUV9JTlBST0dSRVNTOwo+IAo+IGRlc2MtPmFyY2guZW9pX2NwdSA9IHNtcF9wcm9jZXNz b3JfaWQoKTsKPiAKPiAgCj4gCj4gLyogWFhYOiBpbmplY3QgaXJxIGludG8gYWxsIGd1ZXN0IHZj cHVzICovCj4gCj4gdmdpY192Y3B1X2luamVjdF9pcnEoZC0+dmNwdVsrK2ZsYWcgJSAyXSwgaXJx LCAwKTsKPiAKPiBnb3RvIG91dF9ub19lbmQ7Cj4gCj4gfQo+IAo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gIAo+IAo+ICogSW4gInZn aWNfdmNwdV9pbmplY3Rfc3BpIiBmdW5jdGlvbiBvbiBYZW4gNC41LjAgCj4gCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAKPiAtZnJvbQo+ IAo+IHZvaWQgdmdpY192Y3B1X2luamVjdF9zcGkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IGlycSkKPiAKPiB7Cj4gCj4gc3RydWN0IHZjcHUgKnY7Cj4gCj4gIAo+IAo+IC8qIHRoZSBJ UlEgbmVlZHMgdG8gYmUgYW4gU1BJICovCj4gCj4gQVNTRVJUKGlycSA+PSAzMiAmJiBpcnEgPD0g Z2ljX251bWJlcl9saW5lcygpKTsKPiAKPiAgCj4gCj4gdiA9IHZnaWNfZ2V0X3RhcmdldF92Y3B1 KGQtPnZjcHVbMF0sIGlycSk7Cj4gCj4gdmdpY192Y3B1X2luamVjdF9pcnEodiwgaXJxKTsKPiAK PiB9Cj4gCj4gLXRvdm9pZCB2Z2ljX3ZjcHVfaW5qZWN0X3NwaShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBpbnQgaXJxKQo+IAo+IHsKPiAKPiBzdHJ1Y3QgdmNwdSAqdjsKPiAKPiAgCj4gCj4g LyogdGhlIElSUSBuZWVkcyB0byBiZSBhbiBTUEkgKi8KPiAKPiBBU1NFUlQoaXJxID49IDMyICYm IGlycSA8PSBnaWNfbnVtYmVyX2xpbmVzKCkpOwo+IAo+ICAKPiAKPiB2Z2ljX3ZjcHVfaW5qZWN0 X2lycShkLT52Y3B1WysrZmxhZyAlIDJdLCBpcnEpOwo+IAo+IH0KPiAKPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IHNvIHBlcmlwZXJh bCBpcnEgaW5qZWN0ZWQgdG8gRG9tYWluMCdzIHZDUFUwIG9yIHZDUFUxLgo+IAo+ICAKPiAKPiBv biBYZW4gNC40LjEgaXQgd29yayB3ZWxsIGFuZCBpIGNhbiBjb25maXJtIAo+IAo+IHBlcmlwZXJh bCBpcnEgcm91dGVkIHZjcHUwIG9yIHZjcHUxIGJ5IHVzaW5nIGNhdCAvcHJvYy9pbnRlcnJ1cHRz Cj4gY29tbWFuZC4KPiAKPiAgCj4gCj4gKiBjYXQgL3Byb2MvaW50ZXJydXB0cyBjb21tYW5kIG9u IFhlbiA0LjQuMQo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gCj4gQ1BVMCBDUFUxIAo+IAo+IDI3OiA4NjkwIDg1NTggR0lDIDI3IGFyY2hf dGltZXIKPiAKPiAzMTogMzQgMSBHSUMgMzEgZXZlbnRzCj4gCj4gNjU6IDAgMCBHSUMgNjUgMTA4 MDAwMDAubWRtYQo+IAo+IDY2OiAwIDAgR0lDIDY2IDEyMWEwMDAwLnBkbWEKPiAKPiA2NzogMCAw IEdJQyA2NyAxMjFiMDAwMC5wZG1hCj4gCj4gNzQ6IDAgMCBHSUMgNzQgMTAxZDAwMDAud2F0Y2hk b2cKPiAKPiA3NTogMCAwIEdJQyA3NSBzM2MyNDEwLXJ0YyBhbGFybQo+IAo+IDc2OiAwIDAgR0lD IDc2IHMzYzI0MTAtcnRjIHRpY2sKPiAKPiA3NzogMCAwIEdJQyA3NyAxMzQwMDAwMC5waW5jdHJs Cj4gCj4gNzg6IDAgMCBHSUMgNzggMTE0MDAwMDAucGluY3RybAo+IAo+IDc5OiAwIDAgR0lDIDc5 IDM4NjAwMDAucGluY3RybAo+IAo+IDgyOiAwIDAgR0lDIDgyIDEwZDEwMDAwLnBpbmN0cmwKPiAK PiA4ODogMjI5IDIzMyBHSUMgODggMTJjNjAwMDAuaTJjCj4gCj4gOTA6IDAgMCBHSUMgOTAgMTJj ODAwMDAuaTJjCj4gCj4gOTE6IDAgMCBHSUMgOTEgMTJjOTAwMDAuaTJjCj4gCj4gOTY6IDAgMCBH SUMgOTYgMTJjZTAwMDAuaTJjCj4gCj4gOTc6IDAgMCBHSUMgOTcgMTAwNjAwMDAudG11Cj4gCj4g MTAzOiAyNTcgMjQ2IEdJQyAxMDMgZWhjaV9oY2Q6dXNiMywgb2hjaV9oY2Q6dXNiNAo+IAo+IDEw NDogMCAwIEdJQyAxMDQgeGhjaS1oY2Q6dXNiMQo+IAo+IDEwNzogNzEwIDcxMCBHSUMgMTA3IGR3 LW1jaQo+IAo+IDEwOTogOTYwMiA5NjEwIEdJQyAxMDkgZHctbWNpCj4gCj4gMTU2OiAwIDAgR0lD IDE1NiAxMWMxMDAwMC5tZG1hCj4gCj4gMTYwOiAwIDAgeGVuLWR5bi1ldmVudCB4ZW5idXMKPiAK PiAxODM6IDEgMCBleHlub3Nfd2t1cF9pcnFfY2hpcCAyIHM1bTg3NjcKPiAKPiAxODQ6IDMzIDAg eGVuLXBlcmNwdS12aXJxIGh2Y19jb25zb2xlCj4gCj4gMTg1OiAwIDAgczVtODc2NyAxMiBydGMt YWxhcm0wCj4gCj4gMTg2OiAwIDAgZXh5bm9zX3drdXBfaXJxX2NoaXAgNCBTVy1UQUNUMgo+IAo+ IDE4NzogMCAwIGV4eW5vc193a3VwX2lycV9jaGlwIDUgU1ctVEFDVDMKPiAKPiAxODg6IDAgMCBl eHlub3Nfd2t1cF9pcnFfY2hpcCA2IFNXLVRBQ1Q0Cj4gCj4gMTg5OiAwIDAgZXh5bm9zX3drdXBf aXJxX2NoaXAgNyBTVy1UQUNUNQo+IAo+IDE5MDogMCAwIGV4eW5vc193a3VwX2lycV9jaGlwIDAg U1ctVEFDVDYKPiAKPiAxOTE6IDAgMCBleHlub3Nfd2t1cF9pcnFfY2hpcCAxIFNXLVRBQ1Q3Cj4g Cj4gSVBJMDogMCAwIENQVSB3YWtldXAgaW50ZXJydXB0cwo+IAo+IElQSTE6IDAgMCBUaW1lciBi cm9hZGNhc3QgaW50ZXJydXB0cwo+IAo+IElQSTI6IDY2NjAgNjkyMCBSZXNjaGVkdWxpbmcgaW50 ZXJydXB0cwo+IAo+IElQSTM6IDAgMCBGdW5jdGlvbiBjYWxsIGludGVycnVwdHMKPiAKPiBJUEk0 OiA5IDMgU2luZ2xlIGZ1bmN0aW9uIGNhbGwgaW50ZXJydXB0cwo+IAo+IElQSTU6IDAgMCBDUFUg c3RvcCBpbnRlcnJ1cHRzCj4gCj4gSVBJNjogMCAwIElSUSB3b3JrIGludGVycnVwdHMKPiAKPiBJ UEk3OiAwIDAgY29tcGxldGlvbiBpbnRlcnJ1cHRzCj4gCj4gIAo+IAo+IEVycjogMAo+IAo+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4g IAo+IAo+IEJ1dCBvbiBYZW4gNC41LjAsIERvbTAgY2FuIG5vdCBib290aW5nLgo+IAo+IGJlbG93 IGlzIGRvbWFpbjAncyBib290aW5nIG1lc3NhZ2Ugb24gWGVuIDQuNS4wCj4gCj4gIAo+IAo+ICog ZG9tYWluMCdzIGJvb3RpbmcgbWVzc2FnZSBvbiBYZW4gNC41LjAKPiAKPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IFsgMy45MDA4MzBd IHVzYiAzLTMuMjogbmV3IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZwo+IGV4 eW5vcy1laGNpCj4gCj4gWyA0LjAxMjE4NF0gdXNiIDMtMy4yOiBOZXcgVVNCIGRldmljZSBmb3Vu ZCwgaWRWZW5kb3I9MDVlMywKPiBpZFByb2R1Y3Q9MDYxMAo+IAo+IFsgNC4wMTc2ODVdIHVzYiAz LTMuMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTAsIFByb2R1Y3Q9MSwKPiBTZXJpYWxO dW1iZXI9MAo+IAo+IFsgNC4wMjUwNzVdIHVzYiAzLTMuMjogUHJvZHVjdDogVVNCMi4wIEh1Ygo+ IAo+IFsgNC4wMzAxNTZdIGh1YiAzLTMuMjoxLjA6IFVTQiBodWIgZm91bmQKPiAKPiBbIDQuMDMz NTU1XSBodWIgMy0zLjI6MS4wOiA0IHBvcnRzIGRldGVjdGVkCj4gCj4gWyA0LjMxMDY4MV0gdXNi IDMtMy4yLjQ6IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDQgdXNpbmcKPiBleHlu b3MtZWhjaQo+IAo+IFsgNC40MDY2OTddIHVzYiAzLTMuMi40OiBOZXcgVVNCIGRldmljZSBmb3Vu ZCwgaWRWZW5kb3I9MGI5NSwKPiBpZFByb2R1Y3Q9NzcyYQo+IAo+IFsgNC40MTIzNzJdIHVzYiAz LTMuMi40OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MSwgUHJvZHVjdD0yLAo+IFNlcmlh bE51bWJlcj0zCj4gCj4gWyA0LjQxOTkyMV0gdXNiIDMtMy4yLjQ6IFByb2R1Y3Q6IEFYODg3NzIg Cj4gCj4gWyA0LjQyNDA4N10gdXNiIDMtMy4yLjQ6IE1hbnVmYWN0dXJlcjogQVNJWCBFbGVjLiBD b3JwLgo+IAo+IFsgNC40MjkzOTNdIHVzYiAzLTMuMi40OiBTZXJpYWxOdW1iZXI6IDAwMDAwMQo+ IAo+IFsgNC40MzU4MDldIGFzaXggMy0zLjIuNDoxLjAgKHVubmFtZWQgbmV0X2RldmljZSkgKHVu aW5pdGlhbGl6ZWQpOgo+IGludmFsaWQgaHcgYWRkcmVzcywgdXNpbmcgcmFuZG9tCj4gCj4gWyA1 LjIyOTY2M10gYXNpeCAzLTMuMi40OjEuMCBldGgwOiByZWdpc3RlciAnYXNpeCcgYXQKPiB1c2It MTIxMTAwMDAudXNiLTMuMi40LCBBU0lYIEFYODg3NzIgVVNCIDIuMCBFdGhlcm5ldCwgZWU6MjE6 OTY6Yjg6Cj4gCj4gWyA3LjkyNTgxMF0ga2pvdXJuYWxkIHN0YXJ0aW5nLiBDb21taXQgaW50ZXJ2 YWwgNSBzZWNvbmRzCj4gCj4gWyA3LjkyOTk5M10gRVhUMy1mcyAobW1jYmxrMXAyKTogdXNpbmcg aW50ZXJuYWwgam91cm5hbAo+IAo+IFsgNy45NDQ4MjBdIEVYVDMtZnMgKG1tY2JsazFwMik6IHJl Y292ZXJ5IGNvbXBsZXRlCj4gCj4gWyA3Ljk0ODIyOF0gRVhUMy1mcyAobW1jYmxrMXAyKTogbW91 bnRlZCBmaWxlc3lzdGVtIHdpdGggb3JkZXJlZCBkYXRhCj4gbW9kZQo+IAo+IFsgNy45NTUxOTRd IFZGUzogTW91bnRlZCByb290IChleHQzIGZpbGVzeXN0ZW0pIG9uIGRldmljZSAxNzk6MzQuCj4g Cj4gWyA3Ljk2MzYwN10gZGV2dG1wZnM6IG1vdW50ZWQKPiAKPiBbIDcuOTY1Mzc3XSBGcmVlaW5n IHVudXNlZCBrZXJuZWwgbWVtb3J5OiAzMDRLIChjMDY2ZTAwMCAtIGMwNmJhMDAwKQo+IAo+IFsg OC4xNTY4NThdIHJhbmRvbTogaW5pdCB1cmFuZG9tIHJlYWQgd2l0aCA4NiBiaXRzIG9mIGVudHJv cHkKPiBhdmFpbGFibGUKPiAKPiBbIDguMzc4MjA3XSBpbml0OiB1cmVhZGFoZWFkIG1haW4gcHJv Y2VzcyAoMTQwNykgdGVybWluYXRlZCB3aXRoCj4gc3RhdHVzIDUKPiAKPiBbIDEyLjc5MDQ5MV0g cmFuZG9tOiBub25ibG9ja2luZyBwb29sIGlzIGluaXRpYWxpemVkCj4gCj4gWyAyNDAuMTA1NDQ0 XSBJTkZPOiB0YXNrIGtqb3VybmFsZDoxNDAyIGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAKPiBz ZWNvbmRzLgo+IAo+IFsgMjQwLjExMDc3MF0gTm90IHRhaW50ZWQgMy4xOC4zLXN2bjEgIzIKPiAK PiBbIDI0MC4xMTUxMDVdICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1l b3V0X3NlY3MiCj4gZGlzYWJsZXMgdGhpcyBtZXNzYWdlLgo+IAo+IFsgMjQwLjEyMzAwNV0ga2pv dXJuYWxkIEQgYzA0YWEwMjggMCAxNDAyIDIgMHgwMDAwMDAwMAo+IAo+IFsgMjQwLjEyOTQzMF0g WzxjMDRhYTAyOD5dIChfX3NjaGVkdWxlKSBmcm9tIFs8YzA0YWE1ZjA+XSAoaW9fc2NoZWR1bGUK PiArMHg3MC8weDljKQo+IAo+IFsgMjQwLjEzNjgxMV0gWzxjMDRhYTVmMD5dIChpb19zY2hlZHVs ZSkgZnJvbSBbPGMwNGFhY2NjPl0KPiAoYml0X3dhaXRfaW8rMHgzNC8weDU4KQo+IAo+IFsgMjQw LjE0NDI3M10gWzxjMDRhYWNjYz5dIChiaXRfd2FpdF9pbykgZnJvbSBbPGMwNGFhOTIwPl0KPiAo X193YWl0X29uX2JpdCsweDgwLzB4YjgpCj4gCj4gWyAyNDAuMTUxOTEyXSBbPGMwNGFhOTIwPl0g KF9fd2FpdF9vbl9iaXQpIGZyb20gWzxjMDRhYTljND5dCj4gKG91dF9vZl9saW5lX3dhaXRfb25f Yml0KzB4NmMvMHg3NCkKPiAKPiBbIDI0MC4xNjA1OTNdIFs8YzA0YWE5YzQ+XSAob3V0X29mX2xp bmVfd2FpdF9vbl9iaXQpIGZyb20gWzxjMDBmNjlhOD5dCj4gKF9fc3luY19kaXJ0eV9idWZmZXIr MHhjMC8weGVjKQo+IAo+IFsgMjQwLjE2OTc5N10gWzxjMDBmNjlhOD5dIChfX3N5bmNfZGlydHlf YnVmZmVyKSBmcm9tIFs8YzAxODIyNDQ+XQo+IChqb3VybmFsX2NvbW1pdF90cmFuc2FjdGlvbisw eGZjOC8weDEzOWMpCj4gCj4gWyAyNDAuMTc5NTE4XSBbPGMwMTgyMjQ0Pl0gKGpvdXJuYWxfY29t bWl0X3RyYW5zYWN0aW9uKSBmcm9tCj4gWzxjMDE4NGU0OD5dIChram91cm5hbGQrMHhlNC8weDI2 OCkKPiAKPiBbIDI0MC4xODgyMDZdIFs8YzAxODRlNDg+XSAoa2pvdXJuYWxkKSBmcm9tIFs8YzAw MzliYjA+XSAoa3RocmVhZAo+ICsweGQ4LzB4ZjApCj4gCj4gWyAyNDAuMTk1MTM3XSBbPGMwMDM5 YmIwPl0gKGt0aHJlYWQpIGZyb20gWzxjMDAwZjFiOD5dIChyZXRfZnJvbV9mb3JrCj4gKzB4MTQv MHgzYykKPiAKPiBbIDI0MC4yMDI0MjddIElORk86IHRhc2sgdXBzdGFydC11ZGV2LWJyOjE1MjQg YmxvY2tlZCBmb3IgbW9yZSB0aGFuCj4gMTIwIHNlY29uZHMuCj4gCj4gWyAyNDAuMjA5NzEyXSBO b3QgdGFpbnRlZCAzLjE4LjMtc3ZuMSAjMgo+IAo+IFsgMjQwLjIxNDA1MV0gImVjaG8gMCA+IC9w cm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIKPiBkaXNhYmxlcyB0aGlzIG1l c3NhZ2UuCj4gCj4gWyAyNDAuMjIxOTUzXSB1cHN0YXJ0LXVkZXYtYnIgRCBjMDRhYTAyOCAwIDE1 MjQgMSAweDAwMDAwMDAwCj4gCj4gWyAyNDAuMjI4Mzg1XSBbPGMwNGFhMDI4Pl0gKF9fc2NoZWR1 bGUpIGZyb20gWzxjMDE4NDhjYz5dCj4gKGxvZ193YWl0X2NvbW1pdCsweGQ4LzB4MTIwKQo+IAo+ IFsgMjQwLjIzNjIwM10gWzxjMDE4NDhjYz5dIChsb2dfd2FpdF9jb21taXQpIGZyb20gWzxjMDBm MGY0ND5dCj4gKGRvX2ZzeW5jKzB4NTAvMHg3OCkKPiAKPiBbIDI0MC4yNDM3NDZdIFs8YzAwZjBm NDQ+XSAoZG9fZnN5bmMpIGZyb20gWzxjMDAwZjEyMD5dCj4gKHJldF9mYXN0X3N5c2NhbGwrMHgw LzB4MzApCj4gCj4gWyAyNDAuMjUxMjk1XSBJTkZPOiB0YXNrIHN5c3RlbWQtdWRldmQ6MTUyOCBi bG9ja2VkIGZvciBtb3JlIHRoYW4gMTIwCj4gc2Vjb25kcy4KPiAKPiBbIDI0MC4yNTg0MTddIE5v dCB0YWludGVkIDMuMTguMy1zdm4xICMyCj4gCj4gWyAyNDAuMjYyNzQ2XSAiZWNobyAwID4gL3By b2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNzIgo+IGRpc2FibGVzIHRoaXMgbWVz c2FnZS4KPiAKPiBbIDI0MC4yNzA2NDZdIHN5c3RlbWQtdWRldmQgRCBjMDRhYTAyOCAwIDE1Mjgg MSAweDAwMDAwMDA0Cj4gCj4gWyAyNDAuMjc3MDc2XSBbPGMwNGFhMDI4Pl0gKF9fc2NoZWR1bGUp IGZyb20gWzxjMDRhYTVmMD5dIChpb19zY2hlZHVsZQo+ICsweDcwLzB4OWMpCj4gCj4gWyAyNDAu Mjg0NDU0XSBbPGMwNGFhNWYwPl0gKGlvX3NjaGVkdWxlKSBmcm9tIFs8YzA0YWFjY2M+XQo+IChi aXRfd2FpdF9pbysweDM0LzB4NTgpCj4gCj4gWyAyNDAuMjkxOTIwXSBbPGMwNGFhY2NjPl0gKGJp dF93YWl0X2lvKSBmcm9tIFs8YzA0YWE5MjA+XQo+IChfX3dhaXRfb25fYml0KzB4ODAvMHhiOCkK PiAKPiBbIDI0MC4yOTk1NTZdIFs8YzA0YWE5MjA+XSAoX193YWl0X29uX2JpdCkgZnJvbSBbPGMw NGFhOWM0Pl0KPiAob3V0X29mX2xpbmVfd2FpdF9vbl9iaXQrMHg2Yy8weDc0KQo+IAo+IFsgMjQw LjMwODIzOF0gWzxjMDRhYTljND5dIChvdXRfb2ZfbGluZV93YWl0X29uX2JpdCkgZnJvbSBbPGMw MGY0ZjA0Pl0KPiAoX19icmVhZF9nZnArMHhhOC8weGVjKQo+IAo+IFsgMjQwLjMxNjc0N10gWzxj MDBmNGYwND5dIChfX2JyZWFkX2dmcCkgZnJvbSBbPGMwMTI3YzE0Pl0KPiAoZXh0M19nZXRfYnJh bmNoKzB4ODgvMHgxNGMpCj4gCj4gWyAyNDAuMzI0NjU2XSBbPGMwMTI3YzE0Pl0gKGV4dDNfZ2V0 X2JyYW5jaCkgZnJvbSBbPGMwMTI5ODAwPl0KPiAoZXh0M19nZXRfYmxvY2tzX2hhbmRsZSsweDkw LzB4YTQwKQo+IAo+IFsgMjQwLjMzMzQ5OF0gWzxjMDEyOTgwMD5dIChleHQzX2dldF9ibG9ja3Nf aGFuZGxlKSBmcm9tIFs8YzAxMmEyNGM+XQo+IChleHQzX2dldF9ibG9jaysweDljLzB4ZGMpCj4g Cj4gWyAyNDAuMzQyMTgwXSBbPGMwMTJhMjRjPl0gKGV4dDNfZ2V0X2Jsb2NrKSBmcm9tIFs8YzAw ZmNlMDg+XQo+IChkb19tcGFnZV9yZWFkcGFnZSsweDQ3MC8weDdhYykKPiAKPiBbIDI0MC4zNTA2 MDVdIFs8YzAwZmNlMDg+XSAoZG9fbXBhZ2VfcmVhZHBhZ2UpIGZyb20gWzxjMDBmZDIwYz5dCj4g KG1wYWdlX3JlYWRwYWdlcysweGM4LzB4MTE4KQo+IAo+IFsgMjQwLjM1OTAxNl0gWzxjMDBmZDIw Yz5dIChtcGFnZV9yZWFkcGFnZXMpIGZyb20gWzxjMDA5NDNkOD5dCj4gKF9fZG9fcGFnZV9jYWNo ZV9yZWFkYWhlYWQrMHgxYjAvMHgyNjApCj4gCj4gWyAyNDAuMzY4MjI0XSBbPGMwMDk0M2Q4Pl0g KF9fZG9fcGFnZV9jYWNoZV9yZWFkYWhlYWQpIGZyb20KPiBbPGMwMDhjMGZjPl0gKGZpbGVtYXBf ZmF1bHQrMHgzYWMvMHg0NzQpCj4gCj4gWyAyNDAuMzc3MjQ3XSBbPGMwMDhjMGZjPl0gKGZpbGVt YXBfZmF1bHQpIGZyb20gWzxjMDBhYTMxMD5dCj4gKF9fZG9fZmF1bHQrMHgzNC8weDg4KQo+IAo+ IFsgMjQwLjM4NDc5OF0gWzxjMDBhYTMxMD5dIChfX2RvX2ZhdWx0KSBmcm9tIFs8YzAwYWJmYzg+ XQo+IChkb19jb3dfZmF1bHQuaXNyYS45NSsweDVjLzB4MTdjKQo+IAo+IFsgMjQwLjM5MzA0NF0g WzxjMDBhYmZjOD5dIChkb19jb3dfZmF1bHQuaXNyYS45NSkgZnJvbSBbPGMwMGFkZDJjPl0KPiAo aGFuZGxlX21tX2ZhdWx0KzB4NDEwLzB4OGQ4KQo+IAo+IFsgMjQwLjQwMTgxNV0gWzxjMDBhZGQy Yz5dIChoYW5kbGVfbW1fZmF1bHQpIGZyb20gWzxjMDAxOTE0MD5dCj4gKGRvX3BhZ2VfZmF1bHQr MHgxOTQvMHgyODApCj4gCj4gWyAyNDAuNDA5OTY2XSBbPGMwMDE5MTQwPl0gKGRvX3BhZ2VfZmF1 bHQpIGZyb20gWzxjMDAwODU2MD5dCj4gKGRvX0RhdGFBYm9ydCsweDM4LzB4OWMpCj4gCj4gWyAy NDAuNDE3NjkxXSBbPGMwMDA4NTYwPl0gKGRvX0RhdGFBYm9ydCkgZnJvbSBbPGMwMDEyYTE4Pl0K PiAoX19kYWJ0X3N2YysweDM4LzB4NjApCj4gCj4gWyAyNDAuNDI1MTUxXSBFeGNlcHRpb24gc3Rh Y2soMHhjYWVlN2U3OCB0byAweGNhZWU3ZWMwKQo+IAo+IFsgMjQwLjQzMDI3Ml0gN2U2MDogMDAw MzcwNDQgMDAwMDBmYjQKPiAKPiBbIDI0MC40Mzg1MjNdIDdlODA6IDAwMDAwMDAwIDAwMDAwMDAw IGNiYWYzODgwIGNhY2E3YTAwIGNhZWU3ZWQwCj4gMDAwMzcwNDQgY2JhM2I5MDAgY2FlNDZjMDAK PiAKPiBbIDI0MC40NDY3NjhdIDdlYTA6IDAwMDM3OTQwIDAwMDM3MDQ0IDAwMDAwMDAwIGNhZWU3 ZWMwIGMwMTBhZGE0Cj4gYzAyMGNiODQgMjAwMDAwMTMgZmZmZmZmZmYKPiAKPiBbIDI0MC40NTUw MjhdIFs8YzAwMTJhMTg+XSAoX19kYWJ0X3N2YykgZnJvbSBbPGMwMjBjYjg0Pl0KPiAoX19jbGVh cl91c2VyX3N0ZCsweDM0LzB4NjQpCj4gCj4gWyAzNjAuNDYwNDQxXSBJTkZPOiB0YXNrIGtqb3Vy bmFsZDoxNDAyIGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAKPiBzZWNvbmRzLgo+IAo+IFsgMzYw LjQ2NTc2M10gTm90IHRhaW50ZWQgMy4xOC4zLXN2bjEgIzIKPiAKPiBbIDM2MC40NzAwODldICJl Y2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiCj4gZGlzYWJs ZXMgdGhpcyBtZXNzYWdlLgo+IAo+IFsgMzYwLjQ3Nzk5N10ga2pvdXJuYWxkIEQgYzA0YWEwMjgg MCAxNDAyIDIgMHgwMDAwMDAwMAo+IAo+IFsgMzYwLjQ4NDQxOV0gWzxjMDRhYTAyOD5dIChfX3Nj aGVkdWxlKSBmcm9tIFs8YzA0YWE1ZjA+XSAoaW9fc2NoZWR1bGUKPiArMHg3MC8weDljKQo+IAo+ IFsgMzYwLjQ5MTgwNV0gWzxjMDRhYTVmMD5dIChpb19zY2hlZHVsZSkgZnJvbSBbPGMwNGFhY2Nj Pl0KPiAoYml0X3dhaXRfaW8rMHgzNC8weDU4KQo+IAo+IFsgMzYwLjQ5OTI2OF0gWzxjMDRhYWNj Yz5dIChiaXRfd2FpdF9pbykgZnJvbSBbPGMwNGFhOTIwPl0KPiAoX193YWl0X29uX2JpdCsweDgw LzB4YjgpCj4gCj4gWyAzNjAuNTA2OTA4XSBbPGMwNGFhOTIwPl0gKF9fd2FpdF9vbl9iaXQpIGZy b20gWzxjMDRhYTljND5dCj4gKG91dF9vZl9saW5lX3dhaXRfb25fYml0KzB4NmMvMHg3NCkKPiAK PiBbIDM2MC41MTU1ODZdIFs8YzA0YWE5YzQ+XSAob3V0X29mX2xpbmVfd2FpdF9vbl9iaXQpIGZy b20gWzxjMDBmNjlhOD5dCj4gKF9fc3luY19kaXJ0eV9idWZmZXIrMHhjMC8weGVjKQo+IAo+IFsg MzYwLjUyNDc4OV0gWzxjMDBmNjlhOD5dIChfX3N5bmNfZGlydHlfYnVmZmVyKSBmcm9tIFs8YzAx ODIyNDQ+XQo+IChqb3VybmFsX2NvbW1pdF90cmFuc2FjdGlvbisweGZjOC8weDEzOWMpCj4gCj4g WyAzNjAuNTM0NTEyXSBbPGMwMTgyMjQ0Pl0gKGpvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKSBm cm9tCj4gWzxjMDE4NGU0OD5dIChram91cm5hbGQrMHhlNC8weDI2OCkKPiAKPiBbIDM2MC41NDMy MDFdIFs8YzAxODRlNDg+XSAoa2pvdXJuYWxkKSBmcm9tIFs8YzAwMzliYjA+XSAoa3RocmVhZAo+ ICsweGQ4LzB4ZjApCj4gCj4gWyAzNjAuNTUwMTMyXSBbPGMwMDM5YmIwPl0gKGt0aHJlYWQpIGZy b20gWzxjMDAwZjFiOD5dIChyZXRfZnJvbV9mb3JrCj4gKzB4MTQvMHgzYykKPiAKPiBbIDM2MC41 NTc0MjJdIElORk86IHRhc2sgdXBzdGFydC11ZGV2LWJyOjE1MjQgYmxvY2tlZCBmb3IgbW9yZSB0 aGFuCj4gMTIwIHNlY29uZHMuCj4gCj4gWyAzNjAuNTY0NzA4XSBOb3QgdGFpbnRlZCAzLjE4LjMt c3ZuMSAjMgo+IAo+IFsgMzYwLjU2OTA0N10gImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJuZWwvaHVu Z190YXNrX3RpbWVvdXRfc2VjcyIKPiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuCj4gCj4gWyAzNjAu NTc2OTQ4XSB1cHN0YXJ0LXVkZXYtYnIgRCBjMDRhYTAyOCAwIDE1MjQgMSAweDAwMDAwMDAwCj4g Cj4gWyAzNjAuNTgzMzgwXSBbPGMwNGFhMDI4Pl0gKF9fc2NoZWR1bGUpIGZyb20gWzxjMDE4NDhj Yz5dCj4gKGxvZ193YWl0X2NvbW1pdCsweGQ4LzB4MTIwKQo+IAo+IFsgMzYwLjU5MTE5N10gWzxj MDE4NDhjYz5dIChsb2dfd2FpdF9jb21taXQpIGZyb20gWzxjMDBmMGY0ND5dCj4gKGRvX2ZzeW5j KzB4NTAvMHg3OCkKPiAKPiBbIDM2MC41OTg3NDFdIFs8YzAwZjBmNDQ+XSAoZG9fZnN5bmMpIGZy b20gWzxjMDAwZjEyMD5dCj4gKHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4MzApCj4gCj4gWyAzNjAu NjA2Mjg5XSBJTkZPOiB0YXNrIHN5c3RlbWQtdWRldmQ6MTUyOCBibG9ja2VkIGZvciBtb3JlIHRo YW4gMTIwCj4gc2Vjb25kcy4KPiAKPiBbIDM2MC42MTM0MTJdIE5vdCB0YWludGVkIDMuMTguMy1z dm4xICMyCj4gCj4gWyAzNjAuNjE3NzQyXSAiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5n X3Rhc2tfdGltZW91dF9zZWNzIgo+IGRpc2FibGVzIHRoaXMgbWVzc2FnZS4KPiAKPiBbIDM2MC42 MjU2NDJdIHN5c3RlbWQtdWRldmQgRCBjMDRhYTAyOCAwIDE1MjggMSAweDAwMDAwMDA0Cj4gCj4g WyAzNjAuNjMyMDcxXSBbPGMwNGFhMDI4Pl0gKF9fc2NoZWR1bGUpIGZyb20gWzxjMDRhYTVmMD5d IChpb19zY2hlZHVsZQo+ICsweDcwLzB4OWMpCj4gCj4gWyAzNjAuNjM5NDQ5XSBbPGMwNGFhNWYw Pl0gKGlvX3NjaGVkdWxlKSBmcm9tIFs8YzA0YWFjY2M+XQo+IChiaXRfd2FpdF9pbysweDM0LzB4 NTgpCj4gCj4gWyAzNjAuNjQ2OTE2XSBbPGMwNGFhY2NjPl0gKGJpdF93YWl0X2lvKSBmcm9tIFs8 YzA0YWE5MjA+XQo+IChfX3dhaXRfb25fYml0KzB4ODAvMHhiOCkKPiAKPiBbIDM2MC42NTQ1NTJd IFs8YzA0YWE5MjA+XSAoX193YWl0X29uX2JpdCkgZnJvbSBbPGMwNGFhOWM0Pl0KPiAob3V0X29m X2xpbmVfd2FpdF9vbl9iaXQrMHg2Yy8weDc0KQo+IAo+IFsgMzYwLjY2MzIzNF0gWzxjMDRhYTlj ND5dIChvdXRfb2ZfbGluZV93YWl0X29uX2JpdCkgZnJvbSBbPGMwMGY0ZjA0Pl0KPiAoX19icmVh ZF9nZnArMHhhOC8weGVjKQo+IAo+IFsgMzYwLjY3MTc0Ml0gWzxjMDBmNGYwND5dIChfX2JyZWFk X2dmcCkgZnJvbSBbPGMwMTI3YzE0Pl0KPiAoZXh0M19nZXRfYnJhbmNoKzB4ODgvMHgxNGMpCj4g Cj4gWyAzNjAuNjc5NjUxXSBbPGMwMTI3YzE0Pl0gKGV4dDNfZ2V0X2JyYW5jaCkgZnJvbSBbPGMw MTI5ODAwPl0KPiAoZXh0M19nZXRfYmxvY2tzX2hhbmRsZSsweDkwLzB4YTQwKQo+IAo+IFsgMzYw LjY4ODQ5NF0gWzxjMDEyOTgwMD5dIChleHQzX2dldF9ibG9ja3NfaGFuZGxlKSBmcm9tIFs8YzAx MmEyNGM+XQo+IChleHQzX2dldF9ibG9jaysweDljLzB4ZGMpCj4gCj4gWyAzNjAuNjk3MTc0XSBb PGMwMTJhMjRjPl0gKGV4dDNfZ2V0X2Jsb2NrKSBmcm9tIFs8YzAwZmNlMDg+XQo+IChkb19tcGFn ZV9yZWFkcGFnZSsweDQ3MC8weDdhYykKPiAKPiBbIDM2MC43MDU2MDBdIFs8YzAwZmNlMDg+XSAo ZG9fbXBhZ2VfcmVhZHBhZ2UpIGZyb20gWzxjMDBmZDIwYz5dCj4gKG1wYWdlX3JlYWRwYWdlcysw eGM4LzB4MTE4KQo+IAo+IFsgMzYwLjcxNDAxMV0gWzxjMDBmZDIwYz5dIChtcGFnZV9yZWFkcGFn ZXMpIGZyb20gWzxjMDA5NDNkOD5dCj4gKF9fZG9fcGFnZV9jYWNoZV9yZWFkYWhlYWQrMHgxYjAv MHgyNjApCj4gCj4gWyAzNjAuNzIzMjE3XSBbPGMwMDk0M2Q4Pl0gKF9fZG9fcGFnZV9jYWNoZV9y ZWFkYWhlYWQpIGZyb20KPiBbPGMwMDhjMGZjPl0gKGZpbGVtYXBfZmF1bHQrMHgzYWMvMHg0NzQp Cj4gCj4gWyAzNjAuNzMyMjQzXSBbPGMwMDhjMGZjPl0gKGZpbGVtYXBfZmF1bHQpIGZyb20gWzxj MDBhYTMxMD5dCj4gKF9fZG9fZmF1bHQrMHgzNC8weDg4KQo+IAo+IFsgMzYwLjczOTc5Ml0gWzxj MDBhYTMxMD5dIChfX2RvX2ZhdWx0KSBmcm9tIFs8YzAwYWJmYzg+XQo+IChkb19jb3dfZmF1bHQu aXNyYS45NSsweDVjLzB4MTdjKQo+IAo+IFsgMzYwLjc0ODA0MF0gWzxjMDBhYmZjOD5dIChkb19j b3dfZmF1bHQuaXNyYS45NSkgZnJvbSBbPGMwMGFkZDJjPl0KPiAoaGFuZGxlX21tX2ZhdWx0KzB4 NDEwLzB4OGQ4KQo+IAo+IFsgMzYwLjc1NjgwN10gWzxjMDBhZGQyYz5dIChoYW5kbGVfbW1fZmF1 bHQpIGZyb20gWzxjMDAxOTE0MD5dCj4gKGRvX3BhZ2VfZmF1bHQrMHgxOTQvMHgyODApCj4gCj4g WyAzNjAuNzY0OTYxXSBbPGMwMDE5MTQwPl0gKGRvX3BhZ2VfZmF1bHQpIGZyb20gWzxjMDAwODU2 MD5dCj4gKGRvX0RhdGFBYm9ydCsweDM4LzB4OWMpCj4gCj4gWyAzNjAuNzcyNjg4XSBbPGMwMDA4 NTYwPl0gKGRvX0RhdGFBYm9ydCkgZnJvbSBbPGMwMDEyYTE4Pl0KPiAoX19kYWJ0X3N2YysweDM4 LzB4NjApCj4gCj4gWyAzNjAuNzgwMTQ3XSBFeGNlcHRpb24gc3RhY2soMHhjYWVlN2U3OCB0byAw eGNhZWU3ZWMwKQo+IAo+IFsgMzYwLjc4NTI2OV0gN2U2MDogMDAwMzcwNDQgMDAwMDBmYjQKPiAK PiBbIDM2MC43OTM1NDBdIDdlODA6IDAwMDAwMDAwIDAwMDAwMDAwIGNiYWYzODgwIGNhY2E3YTAw IGNhZWU3ZWQwCj4gMDAwMzcwNDQgY2JhM2I5MDAgY2FlNDZjMDAKPiAKPiBbIDM2MC44MDE3NjVd IDdlYTA6IDAwMDM3OTQwIDAwMDM3MDQ0IDAwMDAwMDAwIGNhZWU3ZWMwIGMwMTBhZGE0Cj4gYzAy MGNiODQgMjAwMDAwMTMgZmZmZmZmZmYKPiAKPiBbIDM2MC44MTAwMjNdIFs8YzAwMTJhMTg+XSAo X19kYWJ0X3N2YykgZnJvbSBbPGMwMjBjYjg0Pl0KPiAoX19jbGVhcl91c2VyX3N0ZCsweDM0LzB4 NjQpCj4gCj4gWyA0ODAuODE1NDQzXSBJTkZPOiB0YXNrIGtqb3VybmFsZDoxNDAyIGJsb2NrZWQg Zm9yIG1vcmUgdGhhbiAxMjAKPiBzZWNvbmRzLgo+IAo+IFsgNDgwLjgyMDgzOF0gTm90IHRhaW50 ZWQgMy4xOC4zLXN2bjEgIzIKPiAKPiBbIDQ4MC44MjUwOTRdICJlY2hvIDAgPiAvcHJvYy9zeXMv a2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiCj4gZGlzYWJsZXMgdGhpcyBtZXNzYWdlLgo+ IAo+IFsgNDgwLjgzMzAwNl0ga2pvdXJuYWxkIEQgYzA0YWEwMjggMCAxNDAyIDIgMHgwMDAwMDAw MAo+IAo+IFsgNDgwLjgzOTQyN10gWzxjMDRhYTAyOD5dIChfX3NjaGVkdWxlKSBmcm9tIFs8YzA0 YWE1ZjA+XSAoaW9fc2NoZWR1bGUKPiArMHg3MC8weDljKQo+IAo+IFsgNDgwLjg0NjgxMV0gWzxj MDRhYTVmMD5dIChpb19zY2hlZHVsZSkgZnJvbSBbPGMwNGFhY2NjPl0KPiAoYml0X3dhaXRfaW8r MHgzNC8weDU4KQo+IAo+IFsgNDgwLjg1NDI3M10gWzxjMDRhYWNjYz5dIChiaXRfd2FpdF9pbykg ZnJvbSBbPGMwNGFhOTIwPl0KPiAoX193YWl0X29uX2JpdCsweDgwLzB4YjgpCj4gCj4gWyA0ODAu ODYxOTE0XSBbPGMwNGFhOTIwPl0gKF9fd2FpdF9vbl9iaXQpIGZyb20gWzxjMDRhYTljND5dCj4g KG91dF9vZl9saW5lX3dhaXRfb25fYml0KzB4NmMvMHg3NCkKPiAKPiBbIDQ4MC44NzA1OTNdIFs8 YzA0YWE5YzQ+XSAob3V0X29mX2xpbmVfd2FpdF9vbl9iaXQpIGZyb20gWzxjMDBmNjlhOD5dCj4g KF9fc3luY19kaXJ0eV9idWZmZXIrMHhjMC8weGVjKQo+IAo+IFsgNDgwLjg3OTc5NV0gWzxjMDBm NjlhOD5dIChfX3N5bmNfZGlydHlfYnVmZmVyKSBmcm9tIFs8YzAxODIyNDQ+XQo+IChqb3VybmFs X2NvbW1pdF90cmFuc2FjdGlvbisweGZjOC8weDEzOWMpCj4gCj4gWyA0ODAuODg5NTE4XSBbPGMw MTgyMjQ0Pl0gKGpvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKSBmcm9tCj4gWzxjMDE4NGU0OD5d IChram91cm5hbGQrMHhlNC8weDI2OCkKPiAKPiBbIDQ4MC44OTgxOTZdIFs8YzAxODRlNDg+XSAo a2pvdXJuYWxkKSBmcm9tIFs8YzAwMzliYjA+XSAoa3RocmVhZAo+ICsweGQ4LzB4ZjApCj4gCj4g WyA0ODAuOTA1MTM3XSBbPGMwMDM5YmIwPl0gKGt0aHJlYWQpIGZyb20gWzxjMDAwZjFiOD5dIChy ZXRfZnJvbV9mb3JrCj4gKzB4MTQvMHgzYykKPiAKPiBbIDQ4MC45MTI0MjZdIElORk86IHRhc2sg dXBzdGFydC11ZGV2LWJyOjE1MjQgYmxvY2tlZCBmb3IgbW9yZSB0aGFuCj4gMTIwIHNlY29uZHMu Cj4gCj4gWyA0ODAuOTE5NzEzXSBOb3QgdGFpbnRlZCAzLjE4LjMtc3ZuMSAjMgo+IAo+IFsgNDgw LjkyNDA1Ml0gImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2Vj cyIKPiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuCj4gCj4gWyA0ODAuOTMxOTUyXSB1cHN0YXJ0LXVk ZXYtYnIgRCBjMDRhYTAyOCAwIDE1MjQgMSAweDAwMDAwMDAwCj4gCj4gWyA0ODAuOTM4MzkyXSBb PGMwNGFhMDI4Pl0gKF9fc2NoZWR1bGUpIGZyb20gWzxjMDE4NDhjYz5dCj4gKGxvZ193YWl0X2Nv bW1pdCsweGQ4LzB4MTIwKQo+IAo+IFsgNDgwLjk0NjIwMF0gWzxjMDE4NDhjYz5dIChsb2dfd2Fp dF9jb21taXQpIGZyb20gWzxjMDBmMGY0ND5dCj4gKGRvX2ZzeW5jKzB4NTAvMHg3OCkKPiAKPiBb IDQ4MC45NTM3NDddIFs8YzAwZjBmNDQ+XSAoZG9fZnN5bmMpIGZyb20gWzxjMDAwZjEyMD5dCj4g KHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4MzApCj4gCj4gWyA0ODAuOTYxMjk1XSBJTkZPOiB0YXNr IHN5c3RlbWQtdWRldmQ6MTUyOCBibG9ja2VkIGZvciBtb3JlIHRoYW4gMTIwCj4gc2Vjb25kcy4K PiAKPiBbIDQ4MC45Njg0MTddIE5vdCB0YWludGVkIDMuMTguMy1zdm4xICMyCj4gCj4gWyA0ODAu OTcyNzQ3XSAiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNz Igo+IGRpc2FibGVzIHRoaXMgbWVzc2FnZS4KPiAKPiBbIDQ4MC45ODA2NjBdIHN5c3RlbWQtdWRl dmQgRCBjMDRhYTAyOCAwIDE1MjggMSAweDAwMDAwMDA0Cj4gCj4gWyA0ODAuOTg3MDc2XSBbPGMw NGFhMDI4Pl0gKF9fc2NoZWR1bGUpIGZyb20gWzxjMDRhYTVmMD5dIChpb19zY2hlZHVsZQo+ICsw eDcwLzB4OWMpCj4gCj4gWyA0ODAuOTk0NDczXSBbPGMwNGFhNWYwPl0gKGlvX3NjaGVkdWxlKSBm cm9tIFs8YzA0YWFjY2M+XQo+IChiaXRfd2FpdF9pbysweDM0LzB4NTgpCj4gCj4gWyA0ODEuMDAx OTIyXSBbPGMwNGFhY2NjPl0gKGJpdF93YWl0X2lvKSBmcm9tIFs8YzA0YWE5MjA+XQo+IChfX3dh aXRfb25fYml0KzB4ODAvMHhiOCkKPiAKPiBbIDQ4MS4wMDk1NTddIFs8YzA0YWE5MjA+XSAoX193 YWl0X29uX2JpdCkgZnJvbSBbPGMwNGFhOWM0Pl0KPiAob3V0X29mX2xpbmVfd2FpdF9vbl9iaXQr MHg2Yy8weDc0KQo+IAo+IFsgNDgxLjAxODIzOF0gWzxjMDRhYTljND5dIChvdXRfb2ZfbGluZV93 YWl0X29uX2JpdCkgZnJvbSBbPGMwMGY0ZjA0Pl0KPiAoX19icmVhZF9nZnArMHhhOC8weGVjKQo+ IAo+IFsgNDgxLjAyNjc0Nl0gWzxjMDBmNGYwND5dIChfX2JyZWFkX2dmcCkgZnJvbSBbPGMwMTI3 YzE0Pl0KPiAoZXh0M19nZXRfYnJhbmNoKzB4ODgvMHgxNGMpCj4gCj4gWyA0ODEuMDM0NjQ0XSBb PGMwMTI3YzE0Pl0gKGV4dDNfZ2V0X2JyYW5jaCkgZnJvbSBbPGMwMTI5ODAwPl0KPiAoZXh0M19n ZXRfYmxvY2tzX2hhbmRsZSsweDkwLzB4YTQwKQo+IAo+IFsgNDgxLjA0MzUwMF0gWzxjMDEyOTgw MD5dIChleHQzX2dldF9ibG9ja3NfaGFuZGxlKSBmcm9tIFs8YzAxMmEyNGM+XQo+IChleHQzX2dl dF9ibG9jaysweDljLzB4ZGMpCj4gCj4gWyA0ODEuMDUyMTgwXSBbPGMwMTJhMjRjPl0gKGV4dDNf Z2V0X2Jsb2NrKSBmcm9tIFs8YzAwZmNlMDg+XQo+IChkb19tcGFnZV9yZWFkcGFnZSsweDQ3MC8w eDdhYykKPiAKPiBbIDQ4MS4wNjA2MDZdIFs8YzAwZmNlMDg+XSAoZG9fbXBhZ2VfcmVhZHBhZ2Up IGZyb20gWzxjMDBmZDIwYz5dCj4gKG1wYWdlX3JlYWRwYWdlcysweGM4LzB4MTE4KQo+IAo+IFsg NDgxLjA2OTAxNV0gWzxjMDBmZDIwYz5dIChtcGFnZV9yZWFkcGFnZXMpIGZyb20gWzxjMDA5NDNk OD5dCj4gKF9fZG9fcGFnZV9jYWNoZV9yZWFkYWhlYWQrMHgxYjAvMHgyNjApCj4gCj4gWyA0ODEu MDc4MjIzXSBbPGMwMDk0M2Q4Pl0gKF9fZG9fcGFnZV9jYWNoZV9yZWFkYWhlYWQpIGZyb20KPiBb PGMwMDhjMGZjPl0gKGZpbGVtYXBfZmF1bHQrMHgzYWMvMHg0NzQpCj4gCj4gWyA0ODEuMDg3MjQ3 XSBbPGMwMDhjMGZjPl0gKGZpbGVtYXBfZmF1bHQpIGZyb20gWzxjMDBhYTMxMD5dCj4gKF9fZG9f ZmF1bHQrMHgzNC8weDg4KQo+IAo+IFsgNDgxLjA5NDc5N10gWzxjMDBhYTMxMD5dIChfX2RvX2Zh dWx0KSBmcm9tIFs8YzAwYWJmYzg+XQo+IChkb19jb3dfZmF1bHQuaXNyYS45NSsweDVjLzB4MTdj KQo+IAo+IFsgNDgxLjEwMzA0NV0gWzxjMDBhYmZjOD5dIChkb19jb3dfZmF1bHQuaXNyYS45NSkg ZnJvbSBbPGMwMGFkZDJjPl0KPiAoaGFuZGxlX21tX2ZhdWx0KzB4NDEwLzB4OGQ4KQo+IAo+IFsg NDgxLjExMTgxM10gWzxjMDBhZGQyYz5dIChoYW5kbGVfbW1fZmF1bHQpIGZyb20gWzxjMDAxOTE0 MD5dCj4gKGRvX3BhZ2VfZmF1bHQrMHgxOTQvMHgyODApCj4gCj4gWyA0ODEuMTE5OTY2XSBbPGMw MDE5MTQwPl0gKGRvX3BhZ2VfZmF1bHQpIGZyb20gWzxjMDAwODU2MD5dCj4gKGRvX0RhdGFBYm9y dCsweDM4LzB4OWMpCj4gCj4gWyA0ODEuMTI3NjkyXSBbPGMwMDA4NTYwPl0gKGRvX0RhdGFBYm9y dCkgZnJvbSBbPGMwMDEyYTE4Pl0KPiAoX19kYWJ0X3N2YysweDM4LzB4NjApCj4gCj4gWyA0ODEu MTM1MTUxXSBFeGNlcHRpb24gc3RhY2soMHhjYWVlN2U3OCB0byAweGNhZWU3ZWMwKQo+IAo+IFsg NDgxLjE0MDI3M10gN2U2MDogMDAwMzcwNDQgMDAwMDBmYjQKPiAKPiBbIDQ4MS4xNDg1MjNdIDdl ODA6IDAwMDAwMDAwIDAwMDAwMDAwIGNiYWYzODgwIGNhY2E3YTAwIGNhZWU3ZWQwCj4gMDAwMzcw NDQgY2JhM2I5MDAgY2FlNDZjMDAKPiAKPiBbIDQ4MS4xNTY3NjldIDdlYTA6IDAwMDM3OTQwIDAw MDM3MDQ0IDAwMDAwMDAwIGNhZWU3ZWMwIGMwMTBhZGE0Cj4gYzAyMGNiODQgMjAwMDAwMTMgZmZm ZmZmZmYKPiAKPiBbIDQ4MS4xNjUwMjhdIFs8YzAwMTJhMTg+XSAoX19kYWJ0X3N2YykgZnJvbSBb PGMwMjBjYjg0Pl0KPiAoX19jbGVhcl91c2VyX3N0ZCsweDM0LzB4NjQpCj4gCj4gWyA2MDEuMTcw NDQzXSBJTkZPOiB0YXNrIGtqb3VybmFsZDoxNDAyIGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAK PiBzZWNvbmRzLgo+IAo+IFsgNjAxLjE3NTc3M10gTm90IHRhaW50ZWQgMy4xOC4zLXN2bjEgIzIK PiAKPiBbIDYwMS4xODAwOTldICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190 aW1lb3V0X3NlY3MiCj4gZGlzYWJsZXMgdGhpcyBtZXNzYWdlLgo+IAo+IFsgNjAxLjE4ODAwOF0g a2pvdXJuYWxkIEQgYzA0YWEwMjggMCAxNDAyIDIgMHgwMDAwMDAwMAo+IAo+IFsgNjAxLjE5NDQz M10gWzxjMDRhYTAyOD5dIChfX3NjaGVkdWxlKSBmcm9tIFs8YzA0YWE1ZjA+XSAoaW9fc2NoZWR1 bGUKPiArMHg3MC8weDljKQo+IAo+IFsgNjAxLjIwMTgxNl0gWzxjMDRhYTVmMD5dIChpb19zY2hl ZHVsZSkgZnJvbSBbPGMwNGFhY2NjPl0KPiAoYml0X3dhaXRfaW8rMHgzNC8weDU4KQo+IAo+IFsg NjAxLjIwOTI3OF0gWzxjMDRhYWNjYz5dIChiaXRfd2FpdF9pbykgZnJvbSBbPGMwNGFhOTIwPl0K PiAoX193YWl0X29uX2JpdCsweDgwLzB4YjgpCj4gCj4gWyA2MDEuMjE2OTE4XSBbPGMwNGFhOTIw Pl0gKF9fd2FpdF9vbl9iaXQpIGZyb20gWzxjMDRhYTljND5dCj4gKG91dF9vZl9saW5lX3dhaXRf b25fYml0KzB4NmMvMHg3NCkKPiAKPiBbIDYwMS4yMjU1OThdIFs8YzA0YWE5YzQ+XSAob3V0X29m X2xpbmVfd2FpdF9vbl9iaXQpIGZyb20gWzxjMDBmNjlhOD5dCj4gKF9fc3luY19kaXJ0eV9idWZm ZXIrMHhjMC8weGVjKQo+IAo+IFsgNjAxLjIzNDgwMF0gWzxjMDBmNjlhOD5dIChfX3N5bmNfZGly dHlfYnVmZmVyKSBmcm9tIFs8YzAxODIyNDQ+XQo+IChqb3VybmFsX2NvbW1pdF90cmFuc2FjdGlv bisweGZjOC8weDEzOWMpCj4gCj4gWyA2MDEuMjQ0NTM1XSBbPGMwMTgyMjQ0Pl0gKGpvdXJuYWxf Y29tbWl0X3RyYW5zYWN0aW9uKSBmcm9tCj4gWzxjMDE4NGU0OD5dIChram91cm5hbGQrMHhlNC8w eDI2OCkKPiAKPiBbIDYwMS4yNTMyMDBdIFs8YzAxODRlNDg+XSAoa2pvdXJuYWxkKSBmcm9tIFs8 YzAwMzliYjA+XSAoa3RocmVhZAo+ICsweGQ4LzB4ZjApCj4gCj4gWyA2MDEuMjYwMTQyXSBbPGMw MDM5YmIwPl0gKGt0aHJlYWQpIGZyb20gWzxjMDAwZjFiOD5dIChyZXRfZnJvbV9mb3JrCj4gKzB4 MTQvMHgzYykKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAKPiAgCj4gCj4gQWNjcm9k aW5nIHRvIGxvZy4KPiAKPiBJdCBzZWVtcyB0aGF0IHBlcmlwZXJhbCBpcnEgYXJuJ3QgaW5qZWN0 ZWQgcHJvcGVybHkuCj4gCj4gIAo+IAo+IEkgdGhpbmsgdmdpY192Y3B1X2luamVjdF9pcnEgZnVu Y3Rpb24gY2FuIGluamVjdCBpcnEgdG8gYW55IHZjcHUsIGFueQo+IGlycS4gcmlnaHQ/Cj4gCj4g IAo+IAo+IFRoaXMgaXMgQnVnPz8KPiAKPiBvciBJbnRlbmRlZCBvbiBYZW4gNC41Lng/Cj4gCj4g Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK