PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPSBBUk0gUmVhbFZpZXcgRW11bGF0aW9uIEJvYXJkIERvY3VtZW50YXRpb24gPQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCkhvd3RvIGJ1aWxkIFVFRkkgUmVhbFZpZXcgRUIgZm9yIFJlYWxUaW1lIFN5c3RlbSBNb2RlbA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCkZvciBMaW51eA0KLS0tLS0tLS0tDQoNCjEuIEdldCBFREsyIGZyb20gVGlhbm9jb3JlIFN1YnZlcnNpb24gcmVwb3NpdG9yeQ0Kc3ZuIGNvIGh0dHBzOi8vZWRrMi5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZWRrMi90cnVuay9lZGsyIGVkazIgLS11c2VybmFtZSBndWVzdA0KIA0KMi4gR2V0IEZhdFBrZyBmcm9tIEVESzIgU1ZOIHJlcG9zaXRvcnk6IA0KY2QgZWRrMg0Kc3ZuIGNvIGh0dHBzOi8vZWRrMi1mYXRkcml2ZXIyLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9lZGsyLWZhdGRyaXZlcjIvdHJ1bmsvRmF0UGtnIEZhdFBrZyAtLXVzZXJuYW1lIGd1ZXN0DQoNCjMuIFNldCB1cCB0aGUgZW52aXJvbm1lbnQuIEFuZCBidWlsZCB0aGUgRURLMpJzIHRvb2xzDQpleHBvcnQgRURLX1RPT0xTX1BBVEg9YHB3ZGAvQmFzZVRvb2xzDQouIGVka3NldHVwLnNoIGBwd2RgL0Jhc2VUb29scy8NCm1ha2UgLUMgJEVES19UT09MU19QQVRIDQoNCjQuIEJ1aWxkIHRoZSBBUk0gUmVhbFZpZXcgRUIgVUVGSSBGaXJtd2FyZQ0KYnVpbGQgLWEgQVJNIC1wIEFybVBsYXRmb3JtUGtnL0FybVJlYWxWaWV3RUJQa2cvQXJtUmVhbFZpZXdFYi1SVFNNLUE4LmRzYyAtdCBSVkNUTElOVVgNCg0KDQpIb3d0byB0ZXN0IFVFRkkgUmVhbFZpZXcgRUIgb24gUmVhbFRpbWUgU3lzdGVtIE1vZGVsIC0gRXhhbXBsZSBDb3J0ZXggQTgNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAxLiBCdWlsZCAnQXJtUmVhbFZpZXdFYi1SVFNNLUE4LmRzYycNCg0KICAgMi4gVG8gUnVuIEFybVJlYWxWaWV3RWJQa2cgb24gdGhlIFJUU00NCiAgICAgICAgIDEuIFN0YXJ0IFJlYWxWaWV3IERlYnVnZ2VyDQogICAgICAgICAyLiBUYXJnZXQgPiAiQ29ubmVjdCB0byBUYXJnZXQiDQogICAgICAgICAzLiBBZGQgUlRTTQ0KICAgICAgICAgNC4gQ29uZmlndXJlIHRoaXMgbmV3IFJUU00uDQogICAgICAgICA1LiBDaG9vc2UgQ29ydGV4QTgNCiAgICAgICAgIDYuIFNldHVwIHRoZSAnZm5hbWUnIG9mIGJhc2Vib2FyZC5mbGFzaGxkcl8wIHdpdGggeW91ciBGRCBmaWxlIChlZzogYzpcZGV2XGVkazJcQnVpbGRcQXJtUmVhbFZpZXdFYi1SVFNNLUE4XERFQlVHX1JWQ1RcRlZcQVJNUkVBTFZJRVdFQl9FRkkuZmQpDQogICAgICAgICA3LiBUdXJuIHVzZV9zOCB0byBUUlVFIGluIGJhc2Vib2FyZC5zcDgxMF9zeXNjdHJsDQogICAgICAgICA4LiBUdXJuIHVhcnRfZW5hYmxlIHRvIFRSVUUgaW4gYmFzZWJvYXJkLnVhcnRfMCANCiAgIDQuIENvbm5lY3QgYSB0ZWxuZXQgY2xpZW50IHRvIHRoZSBwb3J0IDUwMDAgb2YgeW91ciBsb2NhbGhvc3QNCiAgIDUuIExhdW5jaCB0aGUgcHJvZ3JhbSA=