T0suCgpUaGUgYmFzaWMgaXNzdWUgYXMgSSBzZWUgaXQgd2l0aCBBVlIgaXMgdGhhdCB0aGUgYWRk cmVzc2VzIGFyZQpzcGxpdCBiZXR3ZWVuICJyZWdpc3RlcnMiLCAiUkFNIiwgIkkvTy1zcGFjZSIu IEFuZCB0aGUgdXNlIG9mCnRoZXNlIHNwYWNlcyBpcyBub3QgZXZlbiBjb25zaXN0ZW50IHdpdGhp biBlYWNoIGdyb3VwLiBZb3UgaGF2ZQotbG93ZXIgMTYgcmVnaXN0ZXJzCi1oaWdoIDE2IHJlZ2lz dGVycwotbG93IDMyIEkvTyByZWdpc3RlcnMKLWhpZ2ggMzIgSS9PIHJlZ2lzdGVycwotMTYwIGV4 dGVuZGVkIEkvTyByZWdpc3RlcnMKLVJBTSAocmVzdCBvZiBtZW1vcnksIGlmIGF2YWlsYWJsZSkK QWxsIHRoZXNlIGFyZSBkaWZmZXJlbnQgaW4gcmVnYXJkIHRvIHdoYXQgaW5zdHJ1Y3Rpb25zL29w ZXJhdGlvbnMgdGhhdAp3b3JrcyBpbiBlYWNoIGFyZWEuCgpJIHRoaW5rIHRoZXJlIHdhcyBzb21l IEFWUiBtb2RlbCB3aGVyZSB0aGVyZSB3YXMgbXVsdGlwbGUgVVNBUlQsCm9uZSBpbiB0aGUgb2xk IEkvTy1yZWdpc3RlciBhcmVhIGFuZCBvbmUgaW4gdGhlICJleHRlbmRlZCBJL08gcmVnaXN0ZXJz Ii4KVGhlIG9sZCB3YXMgc2V0dXAgdXNpbmcgdGhlIHVzdWFsIGluc3RydWN0aW9ucywgYW5kIHRo ZSBuZXcgd2l0aCBsb2FkL3N0b3JlLgoKQW5kIG9uIHRoZSBQSUMsIG9mIGNvdXJzZSwgeW91IGFs d2F5cyB1c2UgdGhlIHNhbWUgaW5zdHJ1Y3Rpb25zIGFuZCBzYW1lCm9wZXJhdGlvbnMgbm8gbWF0 dGVyIHdoZXJlIGluIHRoZSBhdmFpbGFibGUgbWVtb3J5IHlvdSBhcmUgd29ya2luZy4KCj4gSSBt ZWFuIGNvdWxkIHlvdSBmb3IgZXhhbXBsZSBhZGQgW3R3byB2YWx1ZXNdLgoKT24gdGhlIFBJQyBp dCBpcyBhbHdheXMgZG9uZSBpbiB0aGUgc2FtZSB3YXkuCk9uIHRoZSBBVlIgaXQgZGVwZW5kcyBv biB3aGVyZSB0aGVzZSB2YWx1ZXMgYXJlIHN0b3JlZC4KCgoKLS0tLS1VcnNwcnVuZ2xpZ3QgbWVk ZGVsYW5kZS0tLS0tCkZyw6VuOiBwaWNsaXN0LWJvdW5jZXNAbWl0LmVkdSA8cGljbGlzdC1ib3Vu Y2VzQG1pdC5lZHU+IEbDtnIgc21wbHgKU2tpY2thdDogZGVuIDE1IGp1bGkgMjAxOCAwNDoxMQpU aWxsOiBNaWNyb2NvbnRyb2xsZXIgZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLiA8cGljbGlzdEBt aXQuZWR1PgrDhG1uZTogUmU6IFNWOiBbUElDXSBSRTogWHByZXNzIFBJQzE2RjE4NDQ2IEV2YWx1 YXRpb24gQm9hcmQKCgoKT24gU2F0LCAxNCBKdWwgMjAxOCwgSmFuLUVyaWsgU8O2ZGVyaG9sbSB3 cm90ZToKCj4gT0ssIG5vIHJlYXNvbiB0byBzdGFydCBhIGZsYW1lIHdhcmUgaGVyZSwgYnV0Li4u IPCfmIoKPgo+PiBUaGUgQXRtZWwgaW5zdHJ1Y3Rpb24gc2V0IGlzIHNvb29vIG11Y2ggZWFzaWVy Lgo+Cj4gSXQgaXMgbm90IGNsZWFyIHdoYXQgeW91IHRoaW5rIGlzIGVhc2llciwgYnV0IEkgaGF2 ZSBzb21lIGlzc3VlcyB0byAKPiBjb25zaWRlciBhIDEyMCsgaW5zdHJ1Y3Rpb24gSVNBICJlYXNp ZXIiIHRoZW4gYSA0MCBpbnN0cnVjdGlvbiBJU0EuCj4KPiBBbmQgSSBjb25zaWRlciBoYXZpbmcg dGhlIHNhbWUgaW5zdHJ1Y3Rpb25zIHRvIGFjY2VzcyAqZXZlcnl0aGluZyogaW4gCj4gdGhlIFBJ QyBhcmNoaXRlY3R1cmUgImVhc2llciIgdGhlbiBoYXZpbmcgdG8gZGVhbCB3aXRoIGRpZmZlcmVu dCAKPiBpbnN0cnVjdGlvbnMgZm9yICJyZWdpc3RlcnMiIChhbmQgc29tZXRpbWVzIGRpZmZlcmVu dCBpZiBpdCBpcyB0aGUgCj4gbG93ZXIgb3IgaGlnaGVyIDE2IHJlZ3MpLCAiUkFNIiBhbmQgdGhl ICJJL08gYWRkcmVzcyBzcGFjZSIuCj4KPiBJbiBhIFBJQyB5b3UgY2FuIGRpcmVjdGx5IGRvIGEg InNldC9jbGVhciBiaXQiIGluc3RydWN0aW9uIGFnYWluc3QgCj4gKmFsbCogYXZhaWxhYmxlIG1l bW9yeSAoaW5jbHVkaW5nIGFsbCBwZXJpcGhlcmFsIHJlZ2lzdGVycyBhbmQgSS9PIHBvcnRzKS4K PiBFdmVyeXRoaW5nIHlvdSBjYW4gcG9zc2libGUgYWNjZXNzIGlzIGluIHRoZSBzYW1lIGZsYXQg KGJ1dCBiYW5rZWQpIAo+IG1lbW9yeSBhZGRyZXNzIG1hcC4KPgo+IFRoZSBtYWluIHJlYXNvbiBm b3IgdGhlIDEyMCsgaW5zdHJ1Y3Rpb25zIGluIHRoZSBBVlIgaXMgdGhhdCBpdCBoYXMgYW4gCj4g YXJjaGl0ZWN0dXJlIHRoYXQgaXMgZGl2aWRlZCBiZXR3ZWVuIGRpZmZlcmVudCB0eXBlcyBvZiBz dG9yYWdlLgo+IEFuZCBlYWNoIHR5cGUgaGFzIHRvIHNvbWUgZGVncmVlIHRoZWlyIG93biBpbnN0 cnVjdGlvbnMuCj4KPiBPbiBhbiBBVlIgeW91IGhhdmUgU0JSIHRvIHNldCBhIGJpdCAoZG9lcyBp dCByZWFsbHkgdG9nZ2xlIHRoZSBiaXQgPz8pIAo+IGluIGEgcmVnaXN0ZXIsIGJ1dCBvbmx5IHJl Z2lzdGVyIDE2LTMxLCBub3QgdGhlIGxvd2VyIDE2IHJlZ2lzdGVycy4KPgo+IE9yIFNCSSB0byBz ZXQgYSBiaXQgaW4gdGhlICJsb3dlciAzMiBJL08gcmVnaXN0ZXJzIC0gYWRkcmVzc2VzIDAtMzEi Lgo+IE5vdGUsIG5vdCBpbiB0aGUgZnVsbCA2NCBJL08gcmVncyBvciBpbiB0aGUgMTYwICJleHRl bmRlZCBJL08gcmVncyIuCj4gU28gaXQgaXMgYSBoaXQtbi1taXNzIGlmIHlvdSBoYXBwZW5zIHRv IGJlIGFibGUgdG8gdXNlIGJpdCBpbnN0cnVjdGlvbiAKPiBhZ2FpbnN0IGEgc3BlY2lmaWMgcGVy aXBoZXJhbCByZWdpc3Rlci4gSWYgbm90LCB5b3UgaGF2ZSB0byBjb3B5IHRvIGEgCj4gcmVnaXN0 ZXIsIGRvIHRoZSBiaXQtZmlkZGxpbmcgYW5kIGNvcHkgYmFjay4KCkkgdGhpbmsgdGhlIHByb2Js ZW0gaGVyZSBpcyBub3QgdGhhdCAiQXRtZWwgaGFzIDEyMCsgaW5zdHJ1Y3Rpb24gSVNBIiBidXQg dGhhdCB0aGUgYXNzZW1ibGVyIGlzIGR1bWIgYW5kIGRvZXMgbm90IGdlbmVyYXRlIGRpZmZlcmVu dCBvcGNvZGVzIGRlcGVuZGluZyBvbiB0aGUgdXNlIG9mIHRoZSBpbnN0cnVjdGlvbi4KCj4KPiBT b21ldGltZXMgaXQgZmVlbHMgbGlrZSBzb21lIHBlb3BsZSBhcmUgbW9yZSBjb21mb3J0YWJsZSBj b21pbmcKPiBmcm9tICJsYXJnZSIgc3lzdGVtcyB3aGVyZSB5b3UgaGF2ZSAiUkFNIiBleHRlcm5h bGx5IHRvIHRoZSBDUFUKPiBhbmQgInJlZ2lzdGVycyIgd2hlcmUgeW91IGFjdHVhbGx5IGRvIHRo ZSB3b3JrLCBhbmQgdGhhdCBpcyB3aGF0Cj4gdGhlIEFWUiBsb29rcyBsaWtlLCBidXQgaW50ZXJu YWxseS4KPgo+IFBJQyBvbiB0aGUgb3RoZXIgaGFuZCBoYXMgKm9uZSogY29tbW9uIHdheSB0byBh Y2Nlc3MgdGhpbmdzIG5vCj4gbWF0dGVyIHdoYXQgaXQgaXMgY2FsbGVkLiBPbiBhIFBJQyB3aXRo IDIgS2J5dGVzLCB5b3UgaGF2ZSAoaW4gQVZSCj4gdGVybXMpIDJLICJyZWdpc3RlcnMiIHRoYXQg d29ya3MgbGlrZSB0aGUgMTYvMzIgKGRlcGVuZGluZyBpbiB3aGF0Cj4geW91IHdhbnQgdG8gZG8p ICJyZWdpc3RlcnMiIG9uIGFuIEFWUi4KClllcyBhbmQgc29tZSBwZW9wbGUgKEkgaW5jbHVkZSBt eXNlbGYgaGVyZSkgZmVlbCB0aGF0IGFuIE1DVSB0aGF0IGNsYWltcyAKdG8gaGF2ZSAySyByZWdp c3RlcnMgd2hlbiBpdCBpcyBjbGVhcmx5IGp1c3QgaW50ZXJuYWwgUkFNIGlzIGp1c3QgYSAKbWFy a2V0aW5nIGdpbWljay4gQ29tZSBvbiBiZSBob25lc3QgaG93IG1hbnkgb2YgdGhlc2UgUElDIHJl Z2lzdGVycyBjYW4gCm5vcm1hbGx5IGJlIHVzZWQgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBp biBvbmUgaW5zdHJ1Y3Rpb24gKHRoYXQgaXMgCndpdGhvdXQgZ29pbmcgdGhyb3VnaCBXKS4gSSBt ZWFuIGNvdWxkIHlvdSBmb3IgZXhhbXBsZSBhZGQgUjI3IHRvIFIxNDMuIApZZXMgSSBrbm93IGFi b3V0IG1vdmZmIGJ1dCB0aGF0J3MgYSBzcGVjaWFsIGNhc2UuCgo+Cj4gT24gYSBQSUMgeW91IGNh biBkbyBJTkMvREVDL1NCRi9DQkYvd2hhdGV2ZXIgb24gKmFueSogbWVtb3J5LgoKIm1lbW9yeSI/ IE9vcHMuLi4gQXJlIHlvdSBzZWVpbmcgdGhlc2UgcmVnaXN0ZXJzIGFzIFJBTSA6LSkKCj4gVGhl IG9ubHkgaW5zdHJ1Y3Rpb25zIGEgbGFyZ2UgcGFydCBvZiB0aGUgQVZSIG1lbW9yeSAodGhlICJS QU0iKQo+IHVuZGVyc3RhbmRzIGlzIExPQUQvU1RPUkUuCj4KPiBKdXN0IHRoZSBmYWN0IHRoYXQg aXQgaXMgZW5vdWdoIHdpdGggNDAgaW5zdHJ1Y3Rpb25zIGluc3RlYWQgb2YgMTIwKyBpcwo+IGVu b3VnaCBvZiBhIHByb29mIG9mIGEgY2xlYW5lciBhbmQgIm5pY2VyIiBhcmNoaXRlY3R1cmUuCgpT b3JyeSBKYW4gYnV0IHRoaXMgcmVhbGx5IGlzIG5vdCBwcm9vZi4gQ29uc2lkZXIgdGhlIGZvbGxv d2luZyBaODAgYW5kIAo4MDgwIGluc3RydWN0aW9ucwoKZS5nLgo4MDgwCQlaODAKPT09PQkJPT09 CkxEQSAgbWVtCUxEIEEsKG1lbSkKU1RBICBtZW0JTEQgKG1lbSksQQpNT1YgIEEsQglMRCBBLEIK TVZJICBBLDEyMwlMRCBBLDEyMwpNVkkgIE0sMTIzCUxEIChITCksMTIzCkxITEQgbWVtCUxEIEhM LChtZW0pClNITEQgbWVtCUxEIChtZW0pLEhMCk1PViAgQSxNCUxEIEEsKEhMKQpNT1YgIE0sQQlM RCAoSEwpLEEKTERBWCBCCQlMRCBBLChCQykKU1RBWCBCCQlMRCAoQkMpLEEKTFhJICBCLDEyMwlM RCAoQkMpLDEyMwoKQUREICBCCQlBREQgQSxCCkFESSAgMTIzCUFERCBBLDEyMwpBREQgIE0JCUFE RCBBLChITCkKCkRBRCAgQgkJQUREIEhMLEJDCkRBRCAgRAkJQUREIEhMLERFCgpJTlIgIEEJCUlO QyBBCklOUiAgTQkJSU5DIChITCkKCklOWCAgQgkJSU5DIEJDCklOWCAgRAkJSU5DIERFCgpJbiB0 aGUgYWJvdmUgZXhhbXBsZSB0aGVyZSBhcmUgMTQgZGlzdGluY3QgODA4MCBubWVtb25pY3MgYW5k IDMgZGlzdGluY3QgClo4MCBubWVtb25pY3MgYW5kIHRoZSBleGFtcGxlcyBnaXZlbiBnZW5lcmF0 ZSB0aGUgZXhhY3Qgc2FtZSBiaW5hcnkuCgpUaGUgcG9pbnQgSSBhbSB0cnlpbmcgdG8gbWFrZSBp cyB0aGF0IHRoZSBaODAgY29kZSBsb29rcyBhIGdyZWF0IGRlYWwgbW9yZSAKY29uc2lzdGFudCB0 aGFuIHRoZSA4MDgwIGNvZGUgZXZlbiB0aG91Z2ggdGhlcmUgYXJlIGh1Z2UgaG9sZXMgaW4gaXQK ZS5nLiAiTEQgKEhMKSwoQkMpIiBpcyBpbGxlZ2FsIGFuZCBkb2VzIG5vdCBnZW5lcmF0ZSBhbnkg Y29kZS4KClNvIHR1cm5pbmcgdGhpcyBvbiBpdCdzIGhlYWQsIEkgYW0gc3VyZSBhIGJldHRlciBB dG1lbCBhc3NlbWJsZXIgY291bGQgCmVhc2lseSBiZSB1c2VkIHRvIGdyZWF0bHkgcmVkdWNlIHRo ZSBudW1iZXIgb2YgdmlzaWJsZSBvcGNvZGVzIGFuZCBtYWtlIAp0aGUgTUNVIGZlZWwgbmljZXIg Oi0pCgpGcmllbmRseSBSZWdhcmRzClNlcmdpbyBNYXNjaQoKCi0tIApodHRwOi8vd3d3LnBpY2xp c3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hh bmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFp bG1hbi9saXN0aW5mby9waWNsaXN0Cg== .