Re: fence_ec2 agent
東一彦 <[email protected]> Wed, 25 Mar 2015 09:49:32 +0900
| Newsgroups | gmane.linux.highavailability.user |
|---|---|
| Message-ID | <[email protected]> |
SGkgTWFya3VzLAoKVGhhbmsgeW91IGZvciB0aGUgY29tbWVudC4KCj4gV291bGQgaXQgYmUgcG9z c2libGUsIHRvIGltcGxlbWVudCB0aGlzIGlkZWEgYXMgYW4gYWRkaXRpb25hbCBjb25maWd1cmF0 aW9uIG1ldGhvZCB0byB0aGUgZmVuY2VfZWMyIGFnZW50PwpJIHRoaW5rIHRoYXQgeW91ciBpZGVh IGlzIGdvb2QuCgpTbywgSSB0cmllcyB0byBpbXBsZW1lbnQgaXQuCkknbSBnb2luZyB0byBjaGFu Z2UgdGhlIGZlbmNlX2VjMihlYzIpIHRoZSBmb2xsb3dpbmcgcG9pbnRzLgoKICAtIHRoZSAidGFn IiBhbmQgdGhlICJwb3J0IiBvcHRpb25zIHdpbGwgYmUgIm5vdCIgcmVxdWlyZWQuCgogIC0gaWYg dGhlICJwb3J0IiBvcHRpb24gaXMgbm90IHNldCwgdGhlIDJuZCBhcmd1bWVudCBvZiBlYzIgd2ls bCB1c2UgYXMgdGhlICJwb3J0Ii4KICAgIC0gdGhlIDJuZCBhcmd1bWVudCBvZiBlYzIgaXMgIm5v ZGUgdG8gZmVuY2UiLgoKICAtIHRoZSAic3RhdCIgYW5kICJzdGF0dXMiIGFjdGlvbiB3aWxsIGJl IHNhbWUgdGhlICJtb25pdG9yIiBhY3Rpb24uCiAgICAoZm9yIGRvIG5vdCB1c2UgdGhlICJwb3J0 IiBwYXJhbWV0ZXIgaW4gInN0YXQiIGFjdGlvbi4pCgoKQnkgdGhlIGFib3ZlIG1vZGlmaWNhdGlv bnMsIElmIGl0IGlzIGRlc2NyaWJlZCB1bmFtZSBpbiB0aGUgTmFtZSB0YWcsCnRoZSBzZXR0aW5n IG9mIHRoZSAidGFnIiBhbmQgInBvcnQiIHBhcmFtZXRlcnMgYXJlIG5vIGxvbmdlciBuZWNlc3Nh cnkuCgotLS0tCnByaW1pdGl2ZSBwcm1TdG9uaXRoMS0yIHN0b25pdGg6ZXh0ZXJuYWwvZWMyIFwK ICAgICAgICAgcGFyYW1zIFwKICAgICAgICAgICAgICAgICBwY21rX29mZl90aW1lb3V0PSIxMjBz IiBcCiAgICAgICAgIG9wIHN0YXJ0IGludGVydmFsPSIwcyIgdGltZW91dD0iNjBzIiBcCiAgICAg ICAgIG9wIG1vbml0b3IgaW50ZXJ2YWw9IjM2MDBzIiB0aW1lb3V0PSI2MHMiIFwKICAgICAgICAg b3Agc3RvcCBpbnRlcnZhbD0iMHMiIHRpbWVvdXQ9IjYwcyIKLS0tLQoKCllvdSBjYW4gdXNlICJ0 YWciIHBhcmFtZXRlciBsaWtlIHlvdXIgIkNsdXN0ZXJuYW1lIiB0YWcuCklmIGNsdXN0ZXIgbm9k ZXMoaW5zdGFuY2VzKSBoYXZlICJDbHVzdGVyMSIgdGFnLCBhbmQgdW5hbWUgaXMgZGVzY3JpYmVk IGluIHRoYXQgdGFnLAppdCB3b3JrcyBqdXN0IGxpa2UgeW91IHRvIGV4cGVjdC4KCi0tLS0KcHJp bWl0aXZlIHBybVN0b25pdGgxLTIgc3Rvbml0aDpleHRlcm5hbC9lYzIgXAogICAgICAgICBwYXJh bXMgXAogICAgICAgICAgICAgICAgIHBjbWtfb2ZmX3RpbWVvdXQ9IjEyMHMiIFwKICAgICAgICAg ICAgICAgICB0YWc9IkNsdXN0ZXIxIiBcCiAgICAgICAgIG9wIHN0YXJ0IGludGVydmFsPSIwcyIg dGltZW91dD0iNjBzIiBcCiAgICAgICAgIG9wIG1vbml0b3IgaW50ZXJ2YWw9IjM2MDBzIiB0aW1l b3V0PSI2MHMiIFwKICAgICAgICAgb3Agc3RvcCBpbnRlcnZhbD0iMHMiIHRpbWVvdXQ9IjYwcyIK LS0tLQoKVGhlIDFzdCBpbnN0YW5jZSBoYXZlICJDbHVzdGVyMT1ub2RlMDEiIHRhZy1rZXkuClRo ZSAybmQgaW5zdGFuY2UgaGF2ZSAiQ2x1c3RlcjE9bm9kZTAyIiB0YWcta2V5LgpUaGUgM3JkIGlu c3RhbmNlIGhhdmUgIkNsdXN0ZXIxPW5vZGUwMyIgdGFnLWtleS4KLi4uClRoZSBwcm1TdG9uaXRo MS0yIGNhbiBmZW5jZSBub2RlMDEgLCBub2RlMDIgYW5kIG5vZGUwMy4KCgpJZiB5b3UgbGlrZSBh Ym92ZSwgSSB3aWxsIGltcGxlbWVudCB0aGF0LgoKClJlZ2FyZHMsCkthenVoaWtvIEhpZ2FzaGkK CgpPbiAyMDE1LzAzLzE5IDE6MDMsIE1hcmt1cyBHdWVydGxlciB3cm90ZToKPiBIaSBLYXp1aGlr bywgRGVqYW4sCj4KPiB0aGUgbmV3IHJlc291cmNlIGFnZW50IGlzIHZlcnkgZ29vZC4gU2luY2Ug dGhlcmUgd2VyZSBhIGNvdXBsZSBvZiBkYXlzIGJldHdlZW4gbXkgb3JpZ2luYWwgcXVlc3Rpb24g YW5kIHRoZSBhbnN3ZXIgZnJvbQo+IEthenVoaWtvLCBJIGFsc28gaGF2ZSB3cml0dGVuIGEgc3Rv bml0aCBhZ2VudCBwcm9vZiBvZiBjb25jZXB0IChhdHRhY2hlZCB0byB0aGlzIGVtYWlsKSBpbiBv cmRlciB0byBjb250aW51ZSBpbiBteQo+IHByb2plY3QuIEhvd2V2ZXIsIEkgdGhpbmsgdGhhdCB5 b3VyIGZlbmNlX2VjMiBhZ2VudCBpcyBiZXR0ZXIgZnJvbSBhIGRldmVsb3BtZW50IHBlcnNwZWN0 aXZlIGFuZCBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UKPiB0byBoYXZlIHR3byBkaWZmZXJlbnQgYWdl bnRzIGZvciB0aGUgc2FtZSB1c2UgY2FzZS4KPgo+IE5ldmVydGhlbGVzcywgSSd2ZSBpbXBsZW1l bnRlZCBhbiBpZGVhLCB0aGF0IGlzIHZlcnkgdXNlZnVsIGluIEVDMiBlbnZpcm9ubWVudHMgd2l0 aCBjbHVzdGVycyB0aGF0IGhhdmUgbW9yZSB0aGFuIHR3bwo+IG5vZGVzOiBBbGwgRUMyIGluc3Rh bmNlcyB0aGF0IGJlbG9uZyB0byBhIGNsdXN0ZXIgZ2V0IGEgdW5pcXVlIGNsdXN0ZXIgbmFtZSB2 aWEgYW4gRUMyIGluc3RhbmNlIHRhZy4gVGhlIGFnZW50IHVzZXMgdGhpcwo+IHRhZyB0byBkZXRl cm1pbmUgYWxsIGNsdXN0ZXIgbm9kZXMgdGhhdCBiZWxvbmcgdG8gaGlzIG93biBjbHVzdGVyCj4K PiAtLS0gU05JUCAtLS0KPiAgICAgIGdldGhvc3RzKQo+ICAgICAgICAgICMgTGlzdCBvZiBob3N0 bmFtZXMgb2YgdGhpcyBjbHVzdGVyCj4gICAgICAgICAgaW5pdF9hZ2VudAo+ICAgICAgICAgIGVj Mi1kZXNjcmliZS1pbnN0YW5jZXMgLS1maWx0ZXIgInRhZy1rZXk9Q2x1c3Rlcm5hbWUiIC0tZmls dGVyICJ0YWctdmFsdWU9JGNsdXN0ZXJuYW1lIiB8IGdyZXAgIl5UQUciIHxncmVwCj4gIkhvc3Ru YW1lIiB8IGF3ayAneyBwcmludCAkNSB9JyB8IHNvcnQgLXUKPiAtLS0gU05JUCAtLS0KPgo+IFRo ZSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMsIHRoYXQgeW91IGp1c3QgbmVlZCBvbmUgY29u ZmlndXJhdGlvbiBzbmlwcGV0IGZvciBhbGwgbm9kZXMuIFRoaXMgYWxsb3dzIHRvIGR5bmFtaWNh bGx5Cj4gYWRkIG9yIHJlbW92ZSBFQzIgaW5zdGFuY2VzIC8gY2x1c3RlciBub2RlcyB0by9mcm9t IGEgY2x1c3RlciB3aXRob3V0IGhhdmluZyB0byBuZWVkIHRvIHRvdWNoIHRoZSBjbHVzdGVyIGNv bmZpZ3VyYXRpb24uCj4gRHluYW1pY2FsbHkgYWRkaW5nIG9yIHJlbW92aW5nIG5vZGVzIChjb21w dXRlIGluc3RhbmNlcykgaXMgYSB2ZXJ5IGNvbW1vbiBzY2VuYXJpbyBpbiBhIGNsb3VkLgo+Cj4g V291bGQgaXQgYmUgcG9zc2libGUsIHRvIGltcGxlbWVudCB0aGlzIGlkZWEgYXMgYW4gYWRkaXRp b25hbCBjb25maWd1cmF0aW9uIG1ldGhvZCB0byB0aGUgZmVuY2VfZWMyIGFnZW50Pwo+Cj4gQ2hl ZXJzLAo+IE1hcmt1cwo+Cj4+Pj4g5p2x5LiA5b2mIDxoaWdhc2hpLmthenVoaWtvQGxhYi5udHQu Y28uanA+IDMvMTIvMjAxNSAxMDo0NCBBTSA+Pj4KPiBIaSBEZWphbgo+Cj4gVGhhbmsgeW91IGZv ciBhZGQgaXQgYW5kIHRoZSBmaXggc29tZSBpc3N1ZXMgIQo+Cj4KPiAgID4gSSB3YXMgbm90IGFi bGUgdG8gdGVzdCBpdCwgaG9wZSBpdCB3b3JrcyA6KQo+IEkgY29uZmlybWVkIHRoYXQgaXQgd29y a3MgZmluZSBpbiBteSBBV1MgZW52aXJvbm1lbnQgOikKPgo+Cj4gUmVnYXJkcywKPiBLYXp1aGlr byBIaWdhc2hpCj4KPiBPbiAyMDE1LzAzLzExIDIxOjI3LCBEZWphbiBNdWhhbWVkYWdpYyB3cm90 ZToKPj4gSGkgS2F6dWhpa28tc2FuLAo+Pgo+PiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAwMjoz Njo0M1BNICswOTAwLCDmnbHkuIDlvaYgd3JvdGU6Cj4+PiBIaSwgRGVqYW4KPj4+Cj4+PiBUaGFu ayB5b3UgZm9yIHRoZSBjb21tZW50Lgo+Pj4KPj4+IEknZCBsaWtlIHRvIGNvbnRyaWJ1dGUgaXQg YXMgZ2x1ZSBzdG9uaXRoIGFnZW50cy4KPj4+Cj4+PiBTbywgSSByZW5hbWUgaXQgdG8ganVzdCAi ZWMyIi4KPj4+Cj4+PiBXb3VsZCB5b3UgcGxlYXNlIGFkZCBpdCB0byBnbHVlIHJlcG9zaXRvcnkg KGh0dHA6Ly9oZy5saW51eC1oYS5vcmcvZ2x1ZS8pID8KPj4KPj4gSSBqdXN0IGFkZGVkIHlvdXIg c3Rvbml0aCBhZ2VudC4gVGhlcmUgd2VyZSB0aGlzIGNoYW5nZSBpbiB0aGUKPj4gaW5pdGlhbCBj aGFuZ2VzZXQ6Cj4+Cj4+IC0gcmVwbGFjZWQgJy0nIHdoaWNoIGlzIG5vdCBhbGxvd2VkIGluIGlk ZW50aWZpZXJzIHdpdGggJ18nIGluCj4+ICAgICBmdW5jdGlvbiBnZXRpbmZvX3htbCgpLgo+Pgo+ PiBUaGVyZSB3ZXJlIG90aGVyIHNtYWxsZXIgY2hhbmdlcy4gWW91IGNhbiBmaW5kIHRoZW0gaW4g dGhlCj4+IHJlcG9zaXRvcnkuCj4+Cj4+IEkgd2FzIG5vdCBhYmxlIHRvIHRlc3QgaXQsIGhvcGUg aXQgd29ya3MgOikKPj4KPj4gTWFueSB0aGFua3MgZm9yIHRoZSBjb250cmlidXRpb24uCj4+Cj4+ IENoZWVycywKPj4KPj4gRGVqYW4KPj4KPj4+IFJlZ2FyZHMsCj4+PiBLYXp1aGlrbyBIaWdhc2hp Cj4+Pgo+Pj4gT24gMjAxNS8wMy8wNiAyOjM4LCBEZWphbiBNdWhhbWVkYWdpYyB3cm90ZToKPj4+ PiBIaSwKPj4+Pgo+Pj4+IE9uIFR1ZSwgTWFyIDAzLCAyMDE1IGF0IDA1OjEzOjQ5UE0gKzA5MDAs IOadseS4gOW9piB3cm90ZToKPj4+Pj4gRGVhciBNYXJrdXMsCj4+Pj4+Cj4+Pj4+IEkgd2FzIGFs c28gdGhpbmtpbmcgdGhlIHNhbWUgdGhpbmcuCj4+Pj4+IFNvLCBBbHJlYWR5IEkndmUgY3JlYXRl ZCBhIG5ldyBvbmUuCj4+Pj4KPj4+PiBQZXJoYXBzIHlvdSdkIGxpa2UgdG8gdGhlbiBjb250cmli dXRlIGl0IHVwc3RyZWFtPyBFaXRoZXIgdG8KPj4+PiBnbHVlIHN0b25pdGggYWdlbnRzIG9yIFJI VCBmZW5jaW5nIGFnZW50cy4gSXQgYXBwZWFycyB0aGF0IHRoZQo+Pj4+IGFnZW50IGlzIHVzaW5n IHRoZSBzdG9uaXRoIGludGVyZmFjZSwgYnV0IHRoZSBuYW1lIHJlZmxlY3RzIHRoZQo+Pj4+IGZl bmNpbmcgYWdlbnRzIG5hbWluZyBzY2hlbWUuCj4+Pj4KPj4+PiBDaGVlcnMsCj4+Pj4KPj4+PiBE ZWphbgo+Pj4+Cj4+Pj4+IFtDaGFuZ2VTZXRdCj4+Pj4+IC0gQW4gQVBJIHRvIGJlIHVzZWQgd2Fz IGNoYW5nZWQgZnJvbSAiQW1hem9uIEVDMiBDTEkiIHRvICJBV1MgQ0xJIi4KPj4+Pj4gICAgIC0t ICJBV1MgQ0xJIiBpcyBiYXNlZCBQeXRob24uIFNvLCBDUFUgbG9hZCBtaWdodCBiZSByZWR1Y2Vk Lgo+Pj4+Pgo+Pj4+PiAtIFRoZSAiLS1wcml2YXRlLWtleSIgYW5kICItLWNlcnQiIG9wdGlvbnMg YXJlIGRlcHJlY2F0ZWQgaW4gQVdTIENMSS4KPj4+Pj4gICAgIFNvLCBJIGFkZCBhIG5ldyBvcHRp b24gIi0tcHJvZmlsZSIuIFVzZSBhIHNwZWNpZmljIHByb2ZpbGUgZnJvbSB0aGF0IGNyZWRlbnRp YWwgZmlsZS4KPj4+Pj4gICAgIGRlZmF1bHQgaXMgIiIKPj4+Pj4KPj4+Pj4KPj4+Pj4gW0hvdyB0 byB1c2VdCj4+Pj4+IC0gUGxhZXNlIGluc3RhbGwgdGhlICJBV1MgQ0xJIi4KPj4+Pj4gICAgIGh0 dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NsaS9sYXRlc3QvdXNlcmd1aWRlL2NsaS1jaGFwLWdl dHRpbmctc3RhcnRlZC5odG1sCj4+Pj4+Cj4+Pj4+IC0gUGxlYXNlIGNvcHkgdGhlIGZlbmNlX2Vj MiBpbiAvdXNyL2xpYjY0L3N0b25pdGgvcGx1Z2lucy9leHRlcm5hbC8uCj4+Pj4+ICAgICBBbmQg LCBQbGVhc2Ugc2V0IHRoZSBwZXJtaXNzaW9ucyB0byA3NTUuCj4+Pj4+Cj4+Pj4+IC0gUGxlYXNl IHNldCBjcm0gc2V0dGluZ3MgYXMgaW4gdGhpcyBleGFtcGxlLgo+Pj4+PiAgICAgLSBUaGUgaW5z dGFuY2UgdGhhdCBoYXZlIGJlZW4gc2V0IGFzICJub2RlMDEiIGluIHRoZSAiTmFtZSIgdGFnIGFy ZSBmZW5jZS4KPj4+Pj4gICAgIC0tLS0tLQo+Pj4+PiAgICAgcHJpbWl0aXZlIHBybVN0b25pdGgx LTIgc3Rvbml0aDpleHRlcm5hbC9mZW5jZV9lYzIgXAkJCj4+Pj4+IAlwYXJhbXMgXAkKPj4+Pj4g CQlwY21rX29mZl90aW1lb3V0PSIzMDBzIiBcCj4+Pj4+IAkJcG9ydD0ibm9kZTAxIiBcCj4+Pj4+ IAkJdGFnPSJOYW1lIgo+IFwKPj4+Pj4gCW9wIHN0YXJ0IGludGVydmFsPSIwcyIgdGltZW91dD0i NjBzIiBcCQo+Pj4+PiAJb3AgbW9uaXRvciBpbnRlcnZhbD0iMzYwMHMiIHRpbWVvdXQ9IjYwcyIg XAkKPj4+Pj4gCW9wIHN0b3AgaW50ZXJ2YWw9IjBzIiB0aW1lb3V0PSI2MHMiCQo+Pj4+PiAgICAg LS0tLS0tCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+IEthenVoaWtvIEhpZ2FzaGkK Pj4+Pj4KPj4+Pj4gT24gMjAxNS8wMi8yNSA3OjIyLCBNYXJrdXMgR3VlcnRsZXIgd3JvdGU6Cj4+ Pj4+PiBEZWFyIGxpc3QsCj4+Pj4+PiBJIHdhcyBqdXN0IHRyeWluZyB0byBjb25maWd1cmUgdGhl IGZlbmNlX2VjMiBzdG9uaXRoIGFnZW50IGZyb20gMjAxMiwgd3JpdHRlbiBieSBBbmRyZXcgQmVl a2hvZi4gSXQgbG9va3MgbGlrZSwKPiB0aGF0IHRoaXMgb25lIG5vdCB3b3JraW5nIGFueW1vcmUg d2l0aCBuZXdlciBzdG9uaXRoIC8gY2x1c3RlciB2ZXJzaW9ucy4gSXMgdGhlcmUgYW55IG90aGVy IEVDMiBhZ2VudCwgdGhhdCBpcyBzdGlsbAo+IG1haW50YWluZWQ/Cj4+Pj4+Pgo+Pj4+Pj4gSWYg bm90LCBJJ2xsIHdyaXRlIG9uZSBteXNlbGYuIEhvd2V2ZXIsIEknZCBsaWtlIHRvIGNoZWNrIGFs bCBvcHRpb25zIGZpcnN0Lgo+Pj4+Pj4KPj4+Pj4+IENoZWVycywKPj4+Pj4+IE1hcmt1cwo+Pj4+ Pj4KPj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4+Pj4+PiBMaW51eC1IQSBtYWlsaW5nIGxpc3QKPj4+Pj4+IExpbnV4LUhBQGxpc3RzLmxpbnV4 LWhhLm9yZwo+Pj4+Pj4gaHR0cDovL2xpc3RzLmxpbnV4LWhhLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWhhCj4+Pj4+PiBTZWUgYWxzbzogaHR0cDovL2xpbnV4LWhhLm9yZy9SZXBvcnRpbmdQ cm9ibGVtcwo+Pj4+Pj4KPj4+Pj4KPj4+Pj4KPj4KPj4+ICMhL2Jpbi9iYXNoCj4+Pgo+Pj4gZGVz Y3JpcHRpb249Igo+Pj4gZmVuY2VfZWMyIGlzIGFuIEkvTyBGZW5jaW5nIGFnZW50IHdoaWNoIGNh biBiZSB1c2VkIHdpdGggQW1hem9uIEVDMiBpbnN0YW5jZXMuCj4+Pgo+Pj4gQVBJIGZ1bmN0aW9u cyB1c2VkIGJ5IHRoaXMgYWdlbnQ6Cj4+PiAtIGF3cyBlYzIgZGVzY3JpYmUtdGFncwo+Pj4gLSBh d3MgZWMyIGRlc2NyaWJlLWluc3RhbmNlcwo+Pj4gLSBhd3MgZWMyIHN0b3AtaW5zdGFuY2VzCj4+ PiAtIGF3cyBlYzIgc3RhcnQtaW5zdGFuY2VzCj4+PiAtIGF3cyBlYzIgcmVib290LWluc3RhbmNl cwo+Pj4KPj4+IElmIHRoZSB1bmFtZSB1c2VkIGJ5IHRoZSBjbHVzdGVyIG5vZGUgaXMgYW55IG9m Ogo+Pj4gICAgLSBQdWJsaWMgRE5TIG5hbWUgKG9yIHBhcnQgdGhlcmUgb2YpLAo+Pj4gICAgLSBQ cml2YXRlIEROUyBuYW1lIChvciBwYXJ0IHRoZXJlIG9mKSwKPj4+ICAgIC0gSW5zdGFuY2UgSUQg KGVnLiBpLTRmMTVhODM5KQo+Pj4gICAgLSBDb250ZW50cyBvZiB0YWcgYXNzb2NpYXRlZCB3aXRo IHRoZSBpbnN0YW5jZQo+Pj4gdGhlbiB0aGUgYWdlbnQgc2hvdWxkIGJlIGFibGUgdG8gYXV0b21h dGljYWxseSBkaXNjb3ZlciB0aGUgaW5zdGFuY2VzIGl0IGNhbiBjb250cm9sLgo+Pj4KPj4+IElm IHRoZSB0YWcgY29udGFpbmluZyB0aGUgdW5hbWUgaXMgbm90IFtOYW1lXSwgdGhlbiBpdCB3aWxs IG5lZWQgdG8gYmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBbdGFnXSBvcHRpb24uCj4+PiAiCj4+Pgo+ Pj4gIwo+Pj4gIyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMyBBbmRyZXcgQmVla2hvZgo+Pj4gIyBD b3B5cmlnaHQgKGMpIDIwMTQgTklQUE9OIFRFTEVHUkFQSCBBTkQgVEVMRVBIT05FIENPUlBPUkFU SU9OCj4+PiAjICAgICAgICAgICAgICAgICAgICBBbGwgUmlnaHRzIFJlc2VydmVkLgo+Pj4gIwo+ Pj4gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQo+Pj4gIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwo+Pj4gIyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPj4+ICMKPj4+ICMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd291bGQgYmUgdXNlZnVsLCBidXQKPj4+ICMg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zgo+Pj4gIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuCj4+PiAjCj4+PiAjIEZ1cnRoZXIsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgd2l0 aG91dCBhbnkgd2FycmFudHkgdGhhdCBpdCBpcwo+Pj4gIyBmcmVlIG9mIHRoZSByaWdodGZ1bCBj bGFpbSBvZiBhbnkgdGhpcmQgcGVyc29uIHJlZ2FyZGluZyBpbmZyaW5nZW1lbnQKPj4+ICMgb3Ig dGhlIGxpa2UuICBBbnkgbGljZW5zZSBwcm92aWRlZCBoZXJlaW4sIHdoZXRoZXIgaW1wbGllZCBv cgo+Pj4gIyBvdGhlcndpc2UsIGFwcGxpZXMgb25seSB0byB0aGlzIHNvZnR3YXJlIGZpbGUuICBQ YXRlbnQgbGljZW5zZXMsIGlmCj4+PiAjIGFueSwgcHJvdmlkZWQgaGVyZWluIGRvIG5vdCBhcHBs eSB0byBjb21iaW5hdGlvbnMgb2YgdGhpcyBwcm9ncmFtIHdpdGgKPj4+ICMgb3RoZXIgc29mdHdh cmUsIG9yIGFueSBvdGhlciBwcm9kdWN0IHdoYXRzb2V2ZXIuCj4+PiAjCj4+PiAjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cj4+PiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCj4+PiAjIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz MCwgQm9zdG9uIE1BIDAyMTExLTEzMDcsIFVTQS4KPj4+ICMKPj4+ICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4+ Pgo+Pj4gcXVpZXQ9MAo+Pj4gcG9ydF9kZWZhdWx0PSIiCj4+Pgo+Pj4gaW5zdGFuY2Vfbm90X2Zv dW5kPTAKPj4+IHVua25vd25fYXJlX3N0b3BwZWQ9MAo+Pj4KPj4+IGFjdGlvbl9kZWZhdWx0PSJy ZXNldCIgICAgICAgICAjIERlZmF1bHQgZmVuY2UgYWN0aW9uCj4+PiBlYzJfdGFnX2RlZmF1bHQ9 Ik5hbWUiCSAgICAgICAjIEVDMiBUYWcgY29udGFpbmluZyB0aGUgaW5zdGFuY2UncyB1bmFtZQo+ Pj4KPj4+IHNsZWVwX3RpbWU9IjEiCj4+Pgo+Pj4gZWMyX3RhZz0ke3RhZ30KPj4+Cj4+PiA6ICR7 ZWMyX3RhZz0ke2VjMl90YWdfZGVmYXVsdH19Cj4+PiA6ICR7cG9ydD0ke3BvcnRfZGVmYXVsdH19 Cj4+Pgo+Pj4gZnVuY3Rpb24gdXNhZ2UoKQo+Pj4gewo+Pj4gY2F0IDw8RU9GCj4+PiBgYmFzZW5h bWUgJDBgIC0gQSBmZW5jaW5nIGFnZW50IGZvciBBbWF6b24gRUMyIGluc3RhbmNlcwo+Pj4KPj4+ ICRkZXNjcmlwdGlvbgo+Pj4KPj4+IFVzYWdlOiBgYmFzZW5hbWUgJDBgIC1vfC0tYWN0aW9uIFst bnwtLXBvcnRdIFtvcHRpb25zXQo+Pj4gT3B0aW9uczoKPj4+ICAgIC1oLCAtLWhlbHAgCQlUaGlz IHRleHQKPj4+ICAgIC1WLCAtLXZlcnNpb24JCVZlcnNpb24gaW5mb3JtYXRpb24KPj4+ICAgIC1x LCAtLXF1aWV0IAkJUmVkdWNlZCBvdXRwdXQgbW9kZQo+Pj4KPj4+IENvbW1hbmRzOgo+Pj4gICAg LW8sIC0tYWN0aW9uCQlBY3Rpb24gdG8gcGVyZm9ybTogb258b2ZmfHJlYm9vdHxzdGF0dXN8bW9u aXRvcgo+Pj4gICAgLW4sIC0tcG9ydCAJCVRoZSBuYW1lIG9mIGEgbWFjaGluZS9pbnN0YW5jZSB0 byBjb250cm9sL2NoZWNrCj4+Pgo+Pj4gQWRkaXRpb25hbCBPcHRpb25zOgo+Pj4gICAgLXAsIC0t cHJvZmlsZQkJVXNlIGEgc3BlY2lmaWMgcHJvZmlsZSBmcm9tIHlvdXIgY3JlZGVudGlhbCBmaWxl Lgo+Pj4gICAgLXQsIC0tdGFnIAkJTmFtZSBvZiB0aGUgdGFnIGNvbnRhaW5pbmcgdGhlIGluc3Rh bmNlJ3MgdW5hbWUKPj4+Cj4+PiBEYW5nZXJvdXMgb3B0aW9uczoKPj4+ICAgIC1VLCAtLXVua25v d24tYXJlLXN0b3BwZWQgCUFzc3VtZSBhbnkgdW5rbm93biBpbnN0YW5jZSBpcyBzYWZlbHkgc3Rv cHBlZAo+Pj4KPj4+IEVPRgo+Pj4KPiAgICAgZXhpdCAwOwo+Pj4gfQo+Pj4KPj4+IGZ1bmN0aW9u IGdldGluZm8teG1sKCkKPj4+IHsKPj4+IAljYXQgPDxFT0YKPj4+IDxwYXJhbWV0ZXJzPgo+Pj4g CTxwYXJhbWV0ZXIgbmFtZT0icG9ydCIgdW5pcXVlPSIxIiByZXF1aXJlZD0iMSI+Cj4+PiAJCTxj b250ZW50IHR5cGU9InN0cmluZyIgLz4KPj4+IAkJPHNob3J0ZGVzYyBsYW5nPSJlbiI+VGhlIG5h bWUvaWQvdGFnIG9mIGEgaW5zdGFuY2UgdG8gY29udHJvbC9jaGVjazwvc2hvcnRkZXNjPgo+Pj4g CTwvcGFyYW1ldGVyPgo+Pj4gCTxwYXJhbWV0ZXIgbmFtZT0icHJvZmlsZSIgdW5pcXVlPSIwIiBy ZXF1aXJlZD0iMCI+Cj4+PiAJCTxjb250ZW50IHR5cGU9InN0cmluZyIgZGVmYXVsdD0iZGVmYXVs dCIgLz4KPj4+IAkJPHNob3J0ZGVzYyBsYW5nPSJlbiI+VXNlIGEgc3BlY2lmaWMgcHJvZmlsZSBm cm9tIHlvdXIgY3JlZGVudGlhbCBmaWxlLjwvc2hvcnRkZXNjPgo+Pj4gCTwvcGFyYW1ldGVyPgo+ Pj4gCTxwYXJhbWV0ZXIgbmFtZT0idGFnIiB1bmlxdWU9IjAiIHJlcXVpcmVkPSIxIj4KPj4+IAkJ PGNvbnRlbnQgdHlwZT0ic3RyaW5nIiBkZWZhdWx0PSJOYW1lIiAvPgo+Pj4gCQk8c2hvcnRkZXNj IGxhbmc9ImVuIj5OYW1lIG9mIHRoZSB0YWcgY29udGFpbmluZyB0aGUgaW5zdGFuY2VzIHVuYW1l PC9zaG9ydGRlc2M+Cj4+PiAJPC9wYXJhbWV0ZXI+Cj4+PiAJPHBhcmFtZXRlciBuYW1lPSJ1bmtu b3duX2FyZV9zdG9wcGVkIiB1bmlxdWU9IjAiIHJlcXVpcmVkPSIwIj4KPj4+IAkJPGNvbnRlbnQg dHlwZT0ic3RyaW5nIiBkZWZhdWx0PSJmYWxzZSIgLz4KPj4+IAkJPHNob3J0ZGVzYyBsYW5nPSJl biI+REFOR0VSOiBBc3N1bWUgYW55IHVua25vd24gaW5zdGFuY2UgaXMgc2FmZWx5IHN0b3BwZWQ8 L3Nob3J0ZGVzYz4KPj4+IAk8L3BhcmFtZXRlcj4KPj4+IDwvcGFyYW1ldGVycz4KPj4+IEVPRgo+ Pj4gCWV4aXQgMDsKPj4+IH0KPj4+Cj4+PiBmdW5jdGlvbiBtZXRhZGF0YSgpCj4+PiB7Cj4+PiAJ Y2F0IDw8RU9GCj4+PiA8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cj4+PiA8cmVzb3VyY2UtYWdlbnQg bmFtZT0iZmVuY2VfZWMyIiBzaG9ydGRlc2M9IkZlbmNpbmcgYWdlbnQgZm9yIEFtYXpvbiBFQzIg aW5zdGFuY2VzIiA+Cj4+PiAJPGxvbmdkZXNjPgo+Pj4gJGRlc2NyaXB0aW9uCj4+PiAJPC9sb25n ZGVzYz4KPj4+IAk8cGFyYW1ldGVycz4KPj4+IAk8cGFyYW1ldGVyIG5hbWU9ImFjdGlvbiIgdW5p cXVlPSIwIiByZXF1aXJlZD0iMSI+Cj4+PiAJCTxnZXRvcHQgbWl4ZWQ9Ii1vLCAtLWFjdGlvbj1b YWN0aW9uXSIgLz4KPj4+IAkJPGNvbnRlbnQgdHlwZT0ic3RyaW5nIiBkZWZhdWx0PSJyZWJvb3Qi IC8+Cj4+PiAJCTxzaG9ydGRlc2MgbGFuZz0iZW4iPkZlbmNpbmcgQWN0aW9uPC9zaG9ydGRlc2M+ Cj4+PiAJPC9wYXJhbWV0ZXI+Cj4+PiAJPHBhcmFtZXRlciBuYW1lPSJwb3J0IiB1bmlxdWU9IjEi IHJlcXVpcmVkPSIxIj4KPj4+IAkJPGdldG9wdCBtaXhlZD0iLW4sIC0tcG9ydD1bcG9ydF0iIC8+ Cj4+PiAJCTxjb250ZW50IHR5cGU9InN0cmluZyIgLz4KPj4+IAkJPHNob3J0ZGVzYyBsYW5nPSJl biI+VGhlIG5hbWUvaWQvdGFnIG9mIGEgaW5zdGFuY2UgdG8gY29udHJvbC9jaGVjazwvc2hvcnRk ZXNjPgo+Pj4gCTwvcGFyYW1ldGVyPgo+Pj4gCTxwYXJhbWV0ZXIgbmFtZT0icHJvZmlsZSIgdW5p cXVlPSIwIiByZXF1aXJlZD0iMCI+Cj4+PiAJCTxnZXRvcHQgbWl4ZWQ9Ii1wLCAtLXByb2ZpbGU9 W3Byb2ZpbGVdIiAvPgo+Pj4gCQk8Y29udGVudCB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9ImRlZmF1 bHQiIC8+Cj4+PiAJCTxzaG9ydGRlc2MgbGFuZz0iZW4iPlVzZSBhIHNwZWNpZmljIHByb2ZpbGUg ZnJvbSB5b3VyIGNyZWRlbnRpYWwgZmlsZS48L3Nob3J0ZGVzYz4KPj4+IAk8L3BhcmFtZXRlcj4K Pj4+IAk8cGFyYW1ldGVyIG5hbWU9InRhZyIgdW5pcXVlPSIwIiByZXF1aXJlZD0iMSI+Cj4+PiAJ CTxnZXRvcHQgbWl4ZWQ9Ii10LCAtLXRhZz1bdGFnXSIgLz4KPj4+IAkJPGNvbnRlbnQgdHlwZT0i c3RyaW5nIiBkZWZhdWx0PSJOYW1lIiAvPgo+Pj4gCQk8c2hvcnRkZXNjIGxhbmc9ImVuIj5OYW1l IG9mIHRoZSB0YWcgY29udGFpbmluZyB0aGUgaW5zdGFuY2VzIHVuYW1lPC9zaG9ydGRlc2M+Cj4+ PiAJPC9wYXJhbWV0ZXI+Cj4+PiAJPHBhcmFtZXRlciBuYW1lPSJ1bmtub3duLWFyZS1zdG9wcGVk IiB1bmlxdWU9IjAiIHJlcXVpcmVkPSIwIj4KPj4+IAkJPGdldG9wdCBtaXhlZD0iLVUsIC0tdW5r bm93bi1hcmUtc3RvcHBlZCIgLz4KPj4+IAkJPGNvbnRlbnQgdHlwZT0ic3RyaW5nIiBkZWZhdWx0 PSJmYWxzZSIgLz4KPj4+IAkJPHNob3J0ZGVzYyBsYW5nPSJlbiI+REFOR0VSOiBBc3N1bWUgYW55 IHVua25vd24gaW5zdGFuY2UgaXMgc2FmZWx5IHN0b3BwZWQ8L3Nob3J0ZGVzYz4KPj4+IAk8L3Bh cmFtZXRlcj4KPj4+IAk8L3BhcmFtZXRlcnM+Cj4+PiAJPGFjdGlvbnM+Cj4+PiAJPGFjdGlvbiBu YW1lPSJvbiIgLz4KPj4+IAk8YWN0aW9uIG5hbWU9Im9mZiIgLz4KPj4+IAk8YWN0aW9uIG5hbWU9 InJlYm9vdCIgLz4KPj4+IAk8YWN0aW9uIG5hbWU9InN0YXR1cyIgLz4KPj4+IAk8YWN0aW9uIG5h bWU9Imxpc3QiIC8+Cj4+PiAJPGFjdGlvbiBuYW1lPSJtb25pdG9yIiAvPgo+Pj4gCTxhY3Rpb24g bmFtZT0ibWV0YWRhdGEiIC8+Cj4+PiAJPC9hY3Rpb25zPgo+Pj4gPC9yZXNvdXJjZS1hZ2VudD4K Pj4+IEVPRgo+Pj4gCWV4aXQgMDsKPj4+IH0KPj4+Cj4+PiBmdW5jdGlvbiBpbnN0YW5jZV9mb3Jf cG9ydCgpCj4+PiB7Cj4+PiAJbG9jYWwgcG9ydD0kMQo+Pj4gCWxvY2FsIGluc3RhbmNlPSIiCj4+ Pgo+Pj4gCSMgTG9vayBmb3IgcG9ydCBuYW1lIC1uIGluIHRoZSBJTlNUQU5DRSBkYXRhCj4+PiAJ aW5zdGFuY2U9YGF3cyBlYzIgZGVzY3JpYmUtaW5zdGFuY2VzICRvcHRpb25zIHwgZ3JlcCAiXklO U1RBTkNFU1tbOnNwYWNlOl1dLipbWzpzcGFjZTpdXSRwb3J0W1s6c3BhY2U6XV0iIHwgYXdrCj4g J3twcmludCAkOH0nYAo+Pj4gCWlmIFsgLXogJGluc3RhbmNlIF07IHRoZW4KPj4+IAkJIyBMb29r IGZvciBwb3J0IG5hbWUgLW4gaW4gdGhlIE5hbWUgVEFHCj4+PiAJCWluc3RhbmNlPWBhd3MgZWMy IGRlc2NyaWJlLXRhZ3MgJG9wdGlvbnMgfCBncmVwCj4gIl5UQUdTW1s6c3BhY2U6XV0kZWMyX3Rh Z1tbOnNwYWNlOl1dLipbWzpzcGFjZTpdXWluc3RhbmNlW1s6c3BhY2U6XV0kcG9ydCQiIHwgYXdr ICd7cHJpbnQgJDN9J2AKPj4+IAlmaQo+Pj4KPj4+IAlpZiBbIC16ICRpbnN0YW5jZSBdOyB0aGVu Cj4+PiAJCWluc3RhbmNlX25vdF9mb3VuZD0xCj4+PiAJCWluc3RhbmNlPSRwb3J0Cj4+PiAJZmkK Pj4+Cj4+PiAJZWNobyAkaW5zdGFuY2UKPj4+IH0KPj4+Cj4+PiBmdW5jdGlvbiBpbnN0YW5jZV9v bigpCj4+PiB7Cj4+PiAJYXdzIGVjMiBzdGFydC1pbnN0YW5jZXMgJG9wdGlvbnMgLS1pbnN0YW5j ZS1pZHMgJGluc3RhbmNlCj4+PiB9Cj4+Pgo+Pj4gZnVuY3Rpb24gaW5zdGFuY2Vfb2ZmKCkKPj4+ IHsKPj4+IAlpZiBbICR1bmtub3duX2FyZV9zdG9wcGVkID0gMSAtYSAkaW5zdGFuY2Vfbm90X2Zv dW5kIF07IHRoZW4KPj4+IAkJOiBub3RoaW5nIHRvIGRvCj4+PiAJCWhhX2xvZy5zaCBpbmZvICJB c3N1bWluZyB1bmtub3duIGluc3RhbmNlICRpbnN0YW5jZSBpcyBhbHJlYWR5IG9mZiIKPj4+IAll bHNlCj4+PiAJCWF3cyBlYzIgc3RvcC1pbnN0YW5jZXMgJG9wdGlvbnMgLS1pbnN0YW5jZS1pZHMg JGluc3RhbmNlIC0tZm9yY2UKPj4+IAlmaQo+Pj4gfQo+Pj4KPj4+IGZ1bmN0aW9uIGluc3RhbmNl X3N0YXR1cygpCj4+PiB7Cj4+PiAJbG9jYWwgaW5zdGFuY2U9JDEKPj4+IAlsb2NhbCBzdGF0dXM9 InVua25vd24iCj4+PiAJbG9jYWwgcmM9MQo+Pj4KPj4+IAkjIExpc3Qgb2YgaW5zdGFuY2VzIGFu ZCB0aGVpciBjdXJyZW50IHN0YXR1cwo+Pj4gCWlmIFsgJHVua25vd25fYXJlX3N0b3BwZWQgPSAx IC1hICRpbnN0YW5jZV9ub3RfZm91bmQgXTsgdGhlbgo+Pj4gCQloYV9sb2cuc2ggaW5mbyAiJGlu c3RhbmNlIHN0b3BwZWQgKHVua25vd24pIgo+Pj4gCWVsc2UKPj4+IAkJc3RhdHVzPWBhd3MgZWMy IGRlc2NyaWJlLWluc3RhbmNlCj4gcyAkb3B0aW9ucyAtLWluc3RhbmNlLWlkcyAkaW5zdGFuY2Ug fCBhd2sgJ3sKPj4+IAkJCWlmICgvXlNUQVRFwqV0LykgeyBwcmludGYgIiVzIiwgJDMgfQo+Pj4g CQkJfSdgCj4+PiAJCXJjPSQ/Cj4+PiAJZmkKPj4+IAloYV9sb2cuc2ggaW5mbyAic3RhdHVzIGNo ZWNrIGZvciAkaW5zdGFuY2UgaXMgJHN0YXR1cyIKPj4+IAllY2hvICRzdGF0dXMKPj4+IAlyZXR1 cm4gJHJjCj4+PiB9Cj4+Pgo+Pj4KPj4+IFRFTVA9YGdldG9wdCAtbyBxVmhvOmU6cDpuOnQ6VSAt LWxvbmcgdmVyc2lvbixoZWxwLGFjdGlvbjoscG9ydDosb3B0aW9uOixwcm9maWxlOix0YWc6LHF1 aWV0LHVua25vd24tYXJlLXN0b3BwZWQgwqUKPj4+ICAgICAgICAtbiAnZmVuY2VfZWMyJyAtLSAi JEAiYAo+Pj4KPj4+IGlmIFsgJD8gIT0gMCBdO3RoZW4KPj4+ICAgICAgIHVzYWdlCj4+PiAgICAg ICBleGl0IDEKPj4+IGZpCj4+Pgo+Pj4gIyBOb3RlIHRoZSBxdW90ZXMgYXJvdW5kIGAkVEVNUCc6 IHRoZXkgYXJlIGVzc2VudGlhbCEKPj4+IGV2YWwgc2V0IC0tICIkVEVNUCIKPj4+Cj4+PiBpZiBb IC16ICQxIF07IHRoZW4KPj4+IAkjIElmIHRoZXJlIGFyZSBubyBjb21tYW5kIGxpbmUgYXJncywg bG9vayBmb3Igb3B0aW9ucyBmcm9tIHN0ZGluCj4+PiAJd2hpbGUgcmVhZCBsaW5lOyBkbwo+Pj4g CQljYXNlICRsaW5lIGluCj4+PiAJCQlvcHRpb249KnxhY3Rpb249KikgYWN0aW9uPWBlY2hvICRs aW5lIHwgc2VkIHMvLio9Ly9gOzsKPj4+IAkJCXBvcnQ9KikgICAgICAgIHBvcnQ9YGVjaG8gJGxp bmUgfCBzZWQgcy8uKj0vL2A7Owo+Pj4gCQkJcHJvZmlsZT0qKSAgICAgZWMyX3Byb2ZpbGU9YGVj aG8gJGxpbmUgfCBzZWQgcy8uKj0vL2A7Owo+Pj4gCQkJdGFnPSopICAgICAgICAgZWMyX3RhZz1g ZWNobyAkbGluZSB8IHNlZCBzLy4qPS8vYDs7Cj4+PiAJCQlxdWlldCopICAgICAgICBxdWlldD0x OzsKPj4+IAkJCXVua25vd24tYXJlLXN0b3BwZWQqKSB1bmtub3duX2FyZV9zdG9wcGVkPTE7Owo+ Pj4gCQkJLS0pOzsKPj4+IAkJCSopIGhhX2xvZy5zaCBlcnIgIkludmFsaWQgY29tbWFuZDogJGxp bmUiOzsKPj4+IAkJZXNhYwo+Pj4gCWRvbmUKPj4+IGZpCj4+Pgo+Pj4gd2hpbGUgdHJ1ZSA7IGRv Cj4+PiAJY2FzZSAiJDEiIGluCj4+PiAJCS1vfC0tYWN0aW9ufC0tb3B0aW9uKSBhY3Rpb249JDI7 ICAgc2hpZnQ7IHNoaWZ0OzsKPj4+IAkJLW58LS1wb3J0KSAgICAgICAgICAgIHBvcnQ9JDI7ICAg ICBzaGlmdDsgc2hpZnQ7Owo+Pj4gCQktcHwtLXByb2ZpbGUpICAgICAgICAgZWMyX3Byb2ZpbGU9 JDI7IHNoaWZ0OyBzaGlmdDs7Cj4+PiAJCS10fC0tdGFnKQkgICAgICBlYzJfdGFnPSQyOyBzaGlm dDsgc2hpZnQ7Owo+Pj4gCQktVXwtLXVua25vd24tYXJlLXN0b3BwZWQpIHVua25vd25fYXJlX3N0 b3BwZWQ9MTsgc2hpZnQ7Owo+Pj4gCQktcXwtLXF1aWV0KSBxdWlldD0xOyBzaGlmdDs7Cj4+PiAJ CS1WfC0tdmVyc2lvbikgZWNobyAiMS4wLjAiOyBleGl0IDA7Owo+Pj4gCQktLWhlbHB8LWgpCj4+ PiAJCQl1c2FnZTsKPj4+IAkJCWV4aXQgMDs7Cj4+PiAJCS0tKSBzaGlmdCA7IGJyZWFrIDs7Cj4+ PiAJCSopIGhhX2xvZy5zaCBlcnIgIlVua25vd24gb3B0aW9uOiAkMS4gU2VlIC0taGVscCBmb3Ig ZGV0YWlscy4iOyBleGl0IDE7Owo+Pj4gCWVzYWMKPj4+IGRvbmUKPj4+Cj4+PiBbIC1uICIkMSIg XSAmJiBhY3Rpb249JDEKPj4+Cj4+PiBpZiBbIC16ICIkZWMyX3Byb2ZpbGUiXTsgdGhlbgo+Pj4g CW9wdGlvbnM9Ii0tb3V0cHV0IHRleHQgLS1wcm9maWxlIGRlZmF1bHQiCj4+PiBlbHNlCj4+PiAJ b3B0aW9ucz0iLS1vdXRwdXQgdGV4dCAtLXByb2ZpbGUgJGVjMl9wcm9maWxlICIKPj4+IGZpCj4+ Pgo+Pj4gYWN0aW9uPWBlY2hvICRhY3Rpb24gfCB0ciAnQS1aJyAnYS16J2AKPj4+Cj4+PiBjYXNl ICRhY3Rpb24gaW4KPj4+IAltZXRhZGF0YSkKPj4+IAkJbWV0YWRhdGEKPj4+IAk7Owo+Pj4gCWdl dGluZm8teG1sKQo+Pj4gCQlnZXRpbmZvLXhtbAo+Pj4gCTs7Cj4+PiAJZ2V0Y29uZmlnbmFtZXMp Cj4+PiAJCWZvciBpIGluIHByb2ZpbGUgcG9ydCB0YWcKPj4+IAkJZG8KPj4+IAkJCWVjaG8gJGkK Pj4+IAkJZG9uZQo+Pj4gCQlleGl0IDAKPj4+IAk7Owo+Pj4gCWdldGluZm8tZGV2aWQpCj4+PiAJ CWVjaG8gIkVDMiBTVE9OSVRIIGRldmljZSIKPj4+IAkJZXhpdCAwCj4+PiAJOzsKPj4+IAlnZXRp bmZvLWRldm5hbWUpCj4+PiAJCWVjaG8gIkVDMiBTVE9OSVRIIGV4dGVybmFsIGRldmljZSIKPj4+ IAkJZXhpdCAwCj4+PiAJOzsKPj4+IAlnZXRpbmZvLWRldmRlc2NyKQo+Pj4gCQllY2hvICJmZW5j ZV9lYzIgaXMgYW4gSS9PIEZlbmNpbmcgYWdlbnQgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbWF6 b24gRUMyIGluc3RhbmNlcy4iCj4+PiAJCWV4aXQgMAo+Pj4gCTs7Cj4+PiAJZ2V0aW5mby1kZXZ1 cmwpCj4+PiAJCWVjaG8gIiIKPj4+IAkJZXhpdCAwCj4+PiAJOzsKPj4+IGVzYWMKPj4+Cj4+PiAj IGdldCBteSBpbnN0YW5jZSBpZAo+Pj4gbXlpbnN0YW5jZT1gY3VybCBodHRwOi8vMTY5LjI1NC4x NjkuMjU0L2xhdGVzdC9tZXRhLWRhdGEvaW5zdGFuY2UtaWRgCj4+Pgo+Pj4gIyBjaGVjayBteSBz dGF0dXMuCj4+PiAjIFdoZW4gdGhlIEVDMiBpbnN0YW5jZSBiZSBzdG9wcGVkIGJ5IHRoZSAiYXdz IGVjMiBzdG9wLWluc3RhbmNlcyIgLCB0aGUgc3RvcCBwcm9jZXNzaW5nIG9mIHRoZSBPUyBpcyBl eGVjdXRlZC4KPj4+ICMgV2hpbGUgdGhlIE9TIHN0b3AgcHJvY2Vzc2luZywgUGFjZW1ha2VyIGNh biBleGVjdXRlIHRoZSBTVE9OSVRIIHByb2Nlc3NpbmcuCj4+PiAjIFNvLCBJZiBteSBzdGF0dXMg aXMgbm90ICJydW5uaW5nIiwgaXQgZGV0ZXJtaW5lZCB0aGF0IEkgd2FzIGFscmVhZHkgZmVuY2Vk LiBBbmQgdG8gcHJldmVudCBmZW5jaW5nIGVhY2ggb3RoZXIKPj4+ICMgaW4gc3BsaXQtYnJhaW4s IEkgZG9uJ3QgZmVuY2Ugb3RoZXIgbm9kZS4KPj4+IGlmIFsgLXogIiRteWluc3RhbmNlIiBdOyB0 aGVuCj4+PiAJaGFfbG9nLnNoIGVyciAiRmFpbGVkIHRvIGdldCBNeSBJbnN0YW5jZSBJRC4gc28g Y2FuIG5vdCBjaGVjayBteSBzdGF0dXMuIgo+Pj4gCWV4aXQgMQo+Pj4gZmkKPj4+IG15c3RhdHVz PWBpbnN0YW5jZV9zdGF0dXMgJG15aW5zdGFuY2VgCj4+PiBpZiBbICIkbXlzdGF0dXMiICE9ICJy dW5uaW5nIiBdOyB0aGVuICNkbyBub3QgZmVuY2UKPj4+IAloYV9sb2cuc2ggd2FybiAiSSB3YXMg YWxyZWFkeSBmZW5jZWQgKE15IGluc3RhbmNlIHN0YXR1cz0kbXlzdGF0dXMpLiBJIGRvbid0IGZl bmNlIG90aGVyIG5vZGUuIgo+Pj4gCWV4aXQgMQo+Pj4gZmkKPj4+Cj4+PiAjIGdldCB0YXJnZXQn cyBpbnN0YW5jZSBpZAo+Pj4gaW5zdGFuY2U9IiIKPj4+IGlmIFsgISAteiAiJHBvcnQiIF07IHRo ZW4KPj4+IAlpbnN0YW5jZT1gaW5zdGFuY2VfZm9yX3BvcnQgJHBvcnQgJG9wdGlvbnNgCj4+PiBm aQo+Pj4KPj4+IGNhc2UgJGFjdGlvbiBpbgo+Pj4gCXJlYm9vdHxyZXNldCkKPj4+IAkJc3RhdHVz PWBpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlYAo+Pj4gCQlpZiBbICIkc3RhdHVzIiAhPSAic3Rv cHBlZCIgXTsgdGhlbgo+Pj4gCQkJaW5zdGFuY2Vfb2ZmCj4+PiAJCWZpCj4+PiAJCXdoaWxlIHRy dWU7Cj4+PiAJCWRvCj4+PiAJCQlzdGF0dXM9YGluc3RhbmNlX3N0YXR1cyAkaW5zdGFuY2VgCj4+ PiAJCQlpZiBbICIkc3RhdHVzIiA9ICJzdG9wcGVkIiBdOyB0aGVuCj4+PiAJCQkJYnJlYWsKPj4+ IAkJCWZpCj4+PiAJCQlzbGVlcCAkc2xlZXBfdGltZQo+Pj4gCQlkb25lCj4+PiAJCWluc3RhbmNl X29uCj4+PiAJCXdoaWxlIHRydWU7Cj4+PiAJCWRvCj4+PiAJCQlzdGF0dXM9YGluc3RhbmNlX3N0 YXR1cyAkaW5zdGFuY2VgCj4+PiAJCQlpZiBbICIkc3RhdHVzIiA9ICJydW5uaW5nIiBdOyB0aGVu Cj4+PiAJCQkJYnJlYWsKPj4+IAkJCWZpCj4+PiAJCQlzbGVlcCAkc2xlZXBfdGltZQo+Pj4gCQlk b25lCj4+PiAJOzsKPj4+IAlwb3dlcm9ufG9uKQo+Pj4gCQlpbnN0YW5jZV9vbgo+Pj4gCQl3aGls ZSB0cnVlOwo+Pj4gCQlkbwo+Pj4gCQkJc3RhdHVzPWBpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNl YAo+Pj4gCQkJaWYgWyAiJAo+IHN0YXR1cyIgPSAicnVubmluZyIgXTsgdGhlbgo+Pj4gCQkJCWJy ZWFrCj4+PiAJCQlmaQo+Pj4gCQlkb25lCj4+PiAJOzsKPj4+IAlwb3dlcm9mZnxvZmYpCj4+PiAJ CWluc3RhbmNlX29mZgo+Pj4gCQl3aGlsZSB0cnVlOwo+Pj4gCQlkbwo+Pj4gCQkJc3RhdHVzPWBp bnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlYAo+Pj4gCQkJaWYgWyAiJHN0YXR1cyIgPSAic3RvcHBl ZCIgXTsgdGhlbgo+Pj4gCQkJCWJyZWFrCj4+PiAJCQlmaQo+Pj4gCQkJc2xlZXAgJHNsZWVwX3Rp bWUKPj4+IAkJZG9uZQo+Pj4gCTs7Cj4+PiAJbW9uaXRvcikKPj4+IAkJIyBJcyB0aGUgZGV2aWNl IG9rPwo+Pj4gCQlhd3MgZWMyIGRlc2NyaWJlLWluc3RhbmNlcyAkb3B0aW9ucyB8IGdyZXAgSU5T VEFOQ0VTICY+IC9kZXYvbnVsbAo+Pj4gCTs7Cj4+PiAJZ2V0aG9zdHN8aG9zdGxpc3R8bGlzdCkK Pj4+IAkJIyBMaXN0IG9mIG5hbWVzIHdlIGtub3cgYWJvdXQKPj4+IAkJYT1gYXdzIGVjMiBkZXNj cmliZS1pbnN0YW5jZXMgJG9wdGlvbnMgfCBhd2sgLXYgdGFnX3BhdD0iXlRBR1PCpXQkZWMyX3Rh Z8KldCIgLUYgJ8KldCcgJ3sKPj4+IAkJCWlmICgvXklOU1RBTkNFUy8pIHsgcHJpbnRmICIlc8Kl biIsICQ4IH0KPj4+IAkJCWVsc2UgaWYgKCAkMSLCpXQiJDIiwqV0IiDigL4gdGFnX3BhdCApIHsg cHJpbnRmICIlc8KlbiIsICQzIH0KPj4+IAkJCX0nIHwgc29ydCAtdWAKPj4+IAkJZWNobyAkYQo+ Pj4gCTs7Cj4+PiAJc3RhdHxzdGF0dXMpCj4+PiAJCWluc3RhbmNlX3N0YXR1cyAkaW5zdGFuY2Ug PiAvZGV2L251bGwKPj4+IAk7Owo+Pj4gCSopIGhhX2xvZy5zaCBlcnIgIlVua25vd24gYWN0aW9u OiAkYWN0aW9uIjsgZXhpdCAxOzsKPj4+IGVzYWMKPj4+Cj4+PiBzdGF0dXM9JD8KPj4+Cj4+PiBp ZiBbICRxdWlldCAtZXEgMSBdOyB0aGVuCj4+PiAJOiBub3RoaW5nCj4+PiBlbGlmIFsgJHN0YXR1 cyAtZXEgMCBdOyB0aGVuCj4+PiAJaGFfbG9nLnNoIGluZm8gIk9wZXJhdGlvbiAkYWN0aW9uIHBh c3NlZCIKPj4+IGVsc2UKPj4+IAloYV9sb2cuc2ggZXJyICJPcGVyYXRpb24gJGFjdGlvbiBmYWls ZWQ6ICRzdGF0dXMiCj4+PiBmaQo+Pj4gZXhpdCAkc3RhdHVzCj4+Cj4+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gTGludXgtSEEgbWFpbGluZyBs aXN0Cj4+PiBMaW51eC1IQUBsaXN0cy5saW51eC1oYS5vcmcKPj4+IGh0dHA6Ly9saXN0cy5saW51 eC1oYS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1oYQo+Pj4gU2VlIGFsc286IGh0dHA6Ly9s aW51eC1oYS5vcmcvUmVwb3J0aW5nUHJvYmxlbXMKPj4KPj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gTGludXgtSEEgbWFpbGluZyBsaXN0Cj4+IExp bnV4LUhBQGxpc3RzLmxpbnV4LWhhLm9yZwo+PiBodHRwOi8vbGlzdHMubGludXgtaGEub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtaGEKPj4gU2VlIGFsc286IGh0dHA6Ly9saW51eC1oYS5vcmcv UmVwb3J0aW5nUHJvYmxlbXMKPj4KPj4KPgo+Cj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gVXNlcnMgbWFpbGluZyBsaXN0OiBVc2Vyc0BjbHVz dGVybGFicy5vcmcKPiBodHRwOi8vY2x1c3RlcmxhYnMub3JnL21haWxtYW4vbGlzdGluZm8vdXNl cnMKPgo+IFByb2plY3QgSG9tZTogaHR0cDovL3d3dy5jbHVzdGVybGFicy5vcmcKPiBHZXR0aW5n IHN0YXJ0ZWQ6IGh0dHA6Ly93d3cuY2x1c3RlcmxhYnMub3JnL2RvYy9DbHVzdGVyX2Zyb21fU2Ny YXRjaC5wZGYKPiBCdWdzOiBodHRwOi8vYnVncy5jbHVzdGVybGFicy5vcmcKPgoKCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LUhBIG1haWxp bmcgbGlzdApMaW51eC1IQUBsaXN0cy5saW51eC1oYS5vcmcKaHR0cDovL2xpc3RzLmxpbnV4LWhh Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWhhClNlZSBhbHNvOiBodHRwOi8vbGludXgtaGEu b3JnL1JlcG9ydGluZ1Byb2JsZW1z