U2FtcGxlOiBFeGNlcHRpb24gSGFuZGxpbmcgdXNpbmcgV1NETCBGYXVsdHMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KSW50cm9kdWN0aW9uDQo9PT09PT09PT09PT0NCg0KVGhpcyBzYW1wbGUgZGVtb25zdHJhdGVzIGhvdyBleGNlcHRpb25zIGNhbiBiZSBoYW5kbGVkIHVzaW5nIFdTREwgZmF1bHRzLCBpbiBvdGhlciB3b3JkcywgaG93IHRvIHNwZWNpZnkgYSBXU0RMIGZhdWx0IGluIG9yZGVyIHRvIGFsbG93IHlvdXIgc2VydmljZSB0byBjb21tdW5pY2F0ZSBleGNlcHRpb24gcGF0aHdheXMgdG8geW91ciBjbGllbnRzLiANCg0KUnVubmluZyBvZiB0aGlzIHNhbXBsZSBhc3N1bWVzIHRoYXQgeW91IGFyZSBydW5uaW5nIHRoaXMgd2l0aGluIHRoZSBleHRyYWN0ZWQgcmVsZWFzZSBmb2xkZXIuDQoNClByZS1SZXF1aXNpdGVzDQo9PT09PT09PT09PT09PQ0KQXBhY2hlIEFudCAxLjYuMiBvciBsYXRlcg0KDQoNCkJ1aWxkaW5nIFRoZSBTZXJ2aWNlDQo9PT09PT09PT09PT09PT09PT09PT0NCg0KKiBUeXBlIGFudCBnZW5lcmF0ZS5zZXJ2aWNlIG9yIGp1c3QgYW50IGZyb20gQXhpczJfSE9NRS9zYW1wbGVzL2ZhdWx0aGFuZGxpbmcuDQoqIFRoZW4gZ28gdG8gQXhpczJfSE9NRS9iaW4gZGlyZWN0b3J5IGFuZCBydW4gZWl0aGVyIGF4aXMyc2VydmVyLmJhdCBvciBheGlzMnNlcnZlci5zaCBkZXBlbmRpbmcgb24geW91ciBwbGF0Zm9ybS4NCg0KSWYgeW91IGdvIHRvICBodHRwOi8vbG9jYWxob3N0OjgwODAvYXhpczIvIHlvdSBzaG91bGQgc2VlIEJhbmtTZXJ2aWNlIGlzIGRlcGxveWVkLiANCg0KUnVubmluZyBUaGUgQ2xpZW50DQo9PT09PT09PT09PT09PT09PT0NCg0KSW52b2tlIHRoZSBjbGllbnQvc3JjL2V4YW1wbGUvQmFua0NsaWVudC5qYXZhIGNsYXNzLiBZb3UgbWF5IHVzZSB0aGUgY29tbWFuZCBzY3JpcHRzIHRvIGRvIHNvLiBZb3UgbmVlZCB0byBzdXBwbHkgMyBwYXJhbWV0ZXJzIHRvIHRoZSBjb21tYW5kLSB1cmwsIGFjY291bnQgYW5kIGFtb3VudC4NCg0KICogYW50IHJ1bi5jbGllbnQgLUR1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL2F4aXMyL3NlcnZpY2VzL0JhbmtTZXJ2aWNlIC1EYWNjb3VudD0xMyAtRGFtdD00MDANCiAgIFRocm93cyBBY2NvdW50Tm90RXhpc3RGYXVsdE1lc3NhZ2VFeGNlcHRpb24uIFlvdSB3aWxsIHNlZSAiQWNjb3VudCMxMyBkb2VzIG5vdCBleGlzdCKgIA0KICogYW50IHJ1bi5jbGllbnQgLUR1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL2F4aXMyL3NlcnZpY2VzL0JhbmtTZXJ2aWNlIC1EYWNjb3VudD04OCAtRGFtdD0xMjAwDQogICBUaHJvd3MgSW5zdWZmaWNpZW50RnVuZHNGYXVsdE1lc3NhZ2VFeGNlcHRpb24uIFlvdSB3aWxsIHNlZSAiQWNjb3VudCM4OCBoYXMgYmFsYW5jZSBvZiAxMDAwLiBJdCBjYW5ub3Qgc3VwcG9ydCB3aXRoZHJhd2FsICAgb2YgMTIwMCKgIA0KICogYW50IHJ1bi5jbGllbnQgLUR1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL2F4aXMyL3NlcnZpY2VzL0JhbmtTZXJ2aWNlIC1EYWNjb3VudD04OCAtRGFtdD00MDANCiAgIFN1Y2NlZWRzIHdpdGggYSBiYWxhbmNlIG9mIDYwMC4gWW91IHdpbGwgc2VlICJCYWxhbmNlID0gNjAwIqAgDQoNCldoZW4geW91IGNhbGwgYW50IHJ1bi5jbGllbnQgd2l0aCBwYXJhbWV0ZXJzLCBiZWZvcmUgcnVubmluZyBjbGllbnQvc3JjL2V4YW1wbGUvQmFua0NsaWVudC5qYXZhIGNsYXNzLCBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgYXMgd2VsbDoNCiAqIEdlbmVyYXRlIHRoZSBzdHVicyAoZm9yIHRoZSBjbGllbnQpIGZyb20gdGhlIFdTREwNCiAqIENvbXBpbGUgdGhlIGNsaWVudCBjbGFzc2VzDQogKiBDcmVhdGUgYSBKYXIgb2YgdGhlIGNsaWVudCBjbGFzc2VzIGFuZCBjb3B5IGl0IHRvIGJ1aWxkL2NsaWVudC9CYW5rU2VydmljZS10ZXN0LWNsaWVudC5qYXINCg0KQWR2YW5jZWQgR3VpZGUNCj09PT09PT09PT09PT09DQpGb3IgbW9yZSBkZXRhaWxzIGtpbmRseSBzZWUgZG9jL0ZhdWx0SGFuZGxpbmdTYW1wbGVHdWlkZS5odG1sDQoNCkhlbHANCj09PT0NClBsZWFzZSBjb250YWN0IGF4aXMtdXNlciBsaXN0IChheGlzLXVzZXJAd3MuYXBhY2hlLm9yZykgaWYgeW91IGhhdmUgYW55IHRyb3VibGUgcnVubmluZyB0aGUgc2FtcGxlLg0K