S2VybmVsIGRyaXZlciBsbTgzCj09PT09PT09PT09PT09PT09PQoKU3VwcG9ydGVkIGNoaXBzOgogICogTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTgzCiAgICBQcmVmaXg6ICdsbTgzJwogICAgQWRkcmVzc2VzIHNjYW5uZWQ6IEkyQyAweDE4IC0gMHgxYSwgMHgyOSAtIDB4MmIsIDB4NGMgLSAweDRlCiAgICBEYXRhc2hlZXQ6IFB1YmxpY2x5IGF2YWlsYWJsZSBhdCB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciB3ZWJzaXRlCiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cubmF0aW9uYWwuY29tL3BmL0xNL0xNODMuaHRtbAoKCkF1dGhvcjogSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+CgpEZXNjcmlwdGlvbgotLS0tLS0tLS0tLQoKVGhlIExNODMgaXMgYSBkaWdpdGFsIHRlbXBlcmF0dXJlIHNlbnNvci4gSXQgc2Vuc2VzIGl0cyBvd24gdGVtcGVyYXR1cmUgYXMKd2VsbCBhcyB0aGUgdGVtcGVyYXR1cmUgb2YgdXAgdG8gdGhyZWUgZXh0ZXJuYWwgZGlvZGVzLiBJdCBpcyBjb21wYXRpYmxlCndpdGggbWFueSBvdGhlciBkZXZpY2VzIHN1Y2ggYXMgdGhlIExNODQgYW5kIGFsbCBvdGhlciBBRE0xMDIxIGNsb25lcy4KVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBMTTgzIGFuZCB0aGUgTE04NCBpbiB0aGF0IHRoZSBsYXRlciBjYW4Kb25seSBzZW5zZSB0aGUgdGVtcGVyYXR1cmUgb2Ygb25lIGV4dGVybmFsIGRpb2RlLgoKVXNpbmcgdGhlIGFkbTEwMjEgZHJpdmVyIGZvciBhIExNODMgc2hvdWxkIHdvcmssIGJ1dCBvbmx5IHR3byB0ZW1wZXJhdHVyZXMKd2lsbCBiZSByZXBvcnRlZCBpbnN0ZWFkIG9mIGZvdXIuCgpUaGUgTE04MyBpcyBvbmx5IGZvdW5kIG9uIGEgaGFuZGZ1bCBvZiBtb3RoZXJib2FyZHMuIEJvdGggYSBjb25maXJtZWQKbGlzdCBhbmQgYW4gdW5jb25maXJtZWQgbGlzdCBmb2xsb3cuIElmIHlvdSBjYW4gY29uZmlybSBvciBpbmZpcm0gdGhlCmZhY3QgdGhhdCBhbnkgb2YgdGhlc2UgbW90aGVyYm9hcmRzIGRvIGFjdHVhbGx5IGhhdmUgYW4gTE04MywgcGxlYXNlCmNvbnRhY3QgdXMuIE5vdGUgdGhhdCB0aGUgTE05MCBjYW4gZWFzaWx5IGJlIG1pc2RldGVjdGVkIGFzIGEgTE04My4KCkNvbmZpcm1lZCBtb3RoZXJib2FyZHM6CiAgICBTQlMgICAgICAgICBQMDE0CgpVbmNvbmZpcm1lZCBtb3RoZXJib2FyZHM6CiAgICBHaWdhYnl0ZSAgICBHQS04SUsxMTAwCiAgICBJd2lsbCAgICAgICBNUFgyCiAgICBTb2x0ZWsgICAgICBTTC03NURSVjUKClRoZSBkcml2ZXIgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHRlc3RlZCBieSBNYWdudXMgRm9yc3N0cvZtLCB3aG8gSSdkCmxpa2UgdG8gdGhhbmsgaGVyZS4gTW9yZSB0ZXN0ZXJzIHdpbGwgYmUgb2YgY291cnNlIHdlbGNvbWUuCgpUaGUgZmFjdCB0aGF0IHRoZSBMTTgzIGlzIG9ubHkgc2NhcmNlbHkgdXNlZCBjYW4gYmUgZWFzaWx5IGV4cGxhaW5lZC4KTW9zdCBtb3RoZXJib2FyZHMgY29tZSB3aXRoIG1vcmUgdGhhbiBqdXN0IHRlbXBlcmF0dXJlIHNlbnNvcnMgZm9yCmhlYWx0aCBtb25pdG9yaW5nLiBUaGV5IGFsc28gaGF2ZSB2b2x0YWdlIGFuZCBmYW4gcm90YXRpb24gc3BlZWQKc2Vuc29ycy4gVGhpcyBtZWFucyB0aGF0IHRlbXBlcmF0dXJlLW9ubHkgY2hpcHMgYXJlIHVzdWFsbHkgdXNlZCBhcwpzZWNvbmRhcnkgY2hpcHMgY291cGxlZCB3aXRoIGFub3RoZXIgY2hpcCBzdWNoIGFzIGFuIElUODcwNUYgb3Igc2ltaWxhcgpjaGlwLCB3aGljaCBwcm92aWRlcyBtb3JlIGZlYXR1cmVzLiBTaW5jZSBzeXN0ZW1zIHVzdWFsbHkgbmVlZCB0aHJlZQp0ZW1wZXJhdHVyZSBzZW5zb3JzIChtb3RoZXJib2FyZCwgcHJvY2Vzc29yLCBwb3dlciBzdXBwbHkpIGFuZCBwcmltYXJ5CmNoaXBzIHByb3ZpZGUgc29tZSB0ZW1wZXJhdHVyZSBzZW5zb3JzLCB0aGUgc2Vjb25kYXJ5IGNoaXAsIGlmIG5lZWRlZCwKd29uJ3QgaGF2ZSB0byBoYW5kbGUgbW9yZSB0aGFuIHR3byB0ZW1wZXJhdHVyZXMuIFRodXMsIEFETTEwMjEgY2xvbmVzCmFyZSBzdWZmaWNpZW50LCBhbmQgdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBmb3VyIHRlbXBlcmF0dXJlcyBzZW5zb3IKY2hpcCBzdWNoIGFzIHRoZSBMTTgzLiBUaGUgb25seSBjYXNlIHdoZXJlIHVzaW5nIGFuIExNODMgd291bGQgbWFrZQpzZW5zZSBpcyBvbiBTTVAgc3lzdGVtcywgc3VjaCBhcyB0aGUgYWJvdmUtbWVudGlvbmVkIEl3aWxsIE1QWDIsCmJlY2F1c2UgeW91IHdhbnQgYW4gYWRkaXRpb25hbCB0ZW1wZXJhdHVyZSBzZW5zb3IgZm9yIGVhY2ggYWRkaXRpb25hbApDUFUuCgpPbiB0aGUgU0JTIFAwMTQsIHRoaXMgaXMgZGlmZmVyZW50LCBzaW5jZSB0aGUgTE04MyBpcyB0aGUgb25seSBoYXJkd2FyZQptb25pdG9yaW5nIGNoaXBzZXQuIE9uZSB0ZW1wZXJhdHVyZSBzZW5zb3IgaXMgdXNlZCBmb3IgdGhlIG1vdGhlcmJvYXJkCihhY3R1YWxseSBtZWFzdXJpbmcgdGhlIExNODMncyBvd24gdGVtcGVyYXR1cmUpLCBvbmUgaXMgdXNlZCBmb3IgdGhlCkNQVS4gVGhlIHR3byBvdGhlciBzZW5zb3JzIG11c3QgYmUgdXNlZCB0byBtZWFzdXJlIHRoZSB0ZW1wZXJhdHVyZSBvZgp0d28gb3RoZXIgcG9pbnRzIG9mIHRoZSBtb3RoZXJib2FyZC4gV2Ugc3VzcGVjdCB0aGVzZSBwb2ludHMgdG8gYmUgdGhlCm5vcnRoIGFuZCBzb3V0aCBicmlkZ2VzLCBidXQgdGhpcyBjb3VsZG4ndCBiZSBjb25maXJtZWQuCgpBbGwgdGVtcGVyYXR1cmUgdmFsdWVzIGFyZSBnaXZlbiBpbiBkZWdyZWVzIENlbHNpdXMuIExvY2FsIHRlbXBlcmF0dXJlCmlzIGdpdmVuIHdpdGhpbiBhIHJhbmdlIG9mIDAgdG8gKzg1IGRlZ3JlZXMuIFJlbW90ZSB0ZW1wZXJhdHVyZXMgYXJlCmdpdmVuIHdpdGhpbiBhIHJhbmdlIG9mIDAgdG8gKzEyNSBkZWdyZWVzLiBSZXNvbHV0aW9uIGlzIDEuMCBkZWdyZWUsCmFjY3VyYWN5IGlzIGd1YXJhbnRlZWQgdG8gMy4wIGRlZ3JlZXMgKHNlZSB0aGUgZGF0YXNoZWV0IGZvciBtb3JlCmRldGFpbHMpLgoKRWFjaCBzZW5zb3IgaGFzIGl0cyBvd24gaGlnaCBsaW1pdCwgYnV0IHRoZSBjcml0aWNhbCBsaW1pdCBpcyBjb21tb24gdG8KYWxsIGZvdXIgc2Vuc29ycy4gVGhlcmUgaXMgbm8gaHlzdGVyZXNpcyBtZWNoYW5pc20gYXMgZm91bmQgb24gbW9zdApyZWNlbnQgdGVtcGVyYXR1cmUgc2Vuc29ycy4KClRoZSBsbTgzIGRyaXZlciB3aWxsIG5vdCB1cGRhdGUgaXRzIHZhbHVlcyBtb3JlIGZyZXF1ZW50bHkgdGhhbiBldmVyeQpvdGhlciBzZWNvbmQ7IHJlYWRpbmcgdGhlbSBtb3JlIG9mdGVuIHdpbGwgZG8gbm8gaGFybSwgYnV0IHdpbGwgcmV0dXJuCidvbGQnIHZhbHVlcy4K