LS0gJElkOiBNQVAtQ29tbW9uRGF0YVR5cGVzLmFzbiAzNDgxNCAyMDEwLTExLTA4IDIzOjE1OjE2WiBldHhyYWIgJA0KLS0gM0dQUCBUUyAyOS4wMDIgVjkuMy4wICgyMDEwLTA5KQ0KLS0gMTcuNy44CUNvbW1vbiBkYXRhIHR5cGVzDQoNCk1BUC1Db21tb25EYXRhVHlwZXMgew0KICAgaXR1LXQgaWRlbnRpZmllZC1vcmdhbml6YXRpb24gKDQpIGV0c2kgKDApIG1vYmlsZURvbWFpbiAoMCkNCiAgIGdzbS1OZXR3b3JrICgxKSBtb2R1bGVzICgzKSBtYXAtQ29tbW9uRGF0YVR5cGVzICgxOCkgdmVyc2lvbjEyICgxMil9DQoNCkRFRklOSVRJT05TDQoNCklNUExJQ0lUIFRBR1MNCg0KOjo9DQoNCkJFR0lODQoNCkVYUE9SVFMNCg0KCS0tIGdlbmVyYWwgZGF0YSB0eXBlcyBhbmQgdmFsdWVzDQoJQWRkcmVzc1N0cmluZywNCglJU0ROLUFkZHJlc3NTdHJpbmcsDQoJbWF4SVNETi1BZGRyZXNzTGVuZ3RoLA0KCUZUTi1BZGRyZXNzU3RyaW5nLA0KCUlTRE4tU3ViYWRkcmVzc1N0cmluZywNCglFeHRlcm5hbFNpZ25hbEluZm8sIA0KCUV4dC1FeHRlcm5hbFNpZ25hbEluZm8sIA0KCUFjY2Vzc05ldHdvcmtTaWduYWxJbmZvLA0KCVNpZ25hbEluZm8sDQoJbWF4U2lnbmFsSW5mb0xlbmd0aCwNCglBbGVydGluZ1BhdHRlcm4sDQoJVEJDRC1TVFJJTkcsDQoJRGlhbWV0ZXJJZGVudGl0eSwNCg0KCS0tIGRhdGEgdHlwZXMgZm9yIG51bWJlcmluZyBhbmQgaWRlbnRpZmljYXRpb24NCglJTVNJLA0KCVRNU0ksIA0KCUlkZW50aXR5LA0KCVN1YnNjcmliZXJJZCwNCglJTUVJLA0KCUhMUi1MaXN0LA0KCUxNU0ksDQoJR2xvYmFsQ2VsbElkLA0KCU5ldHdvcmtSZXNvdXJjZSwNCglBZGRpdGlvbmFsTmV0d29ya1Jlc291cmNlLA0KCU5BRUEtUHJlZmVycmVkQ0ksIA0KCU5BRUEtQ0lDLCANCglBU0NJLUNhbGxSZWZlcmVuY2UsDQoJU3Vic2NyaWJlcklkZW50aXR5LA0KCVBMTU4tSWQsDQoNCgktLSBkYXRhIHR5cGVzIGZvciBDQU1FTA0KCUNlbGxHbG9iYWxJZE9yU2VydmljZUFyZWFJZE9yTEFJLCANCglDZWxsR2xvYmFsSWRPclNlcnZpY2VBcmVhSWRGaXhlZExlbmd0aCwNCglMQUlGaXhlZExlbmd0aCwNCg0KCS0tIGRhdGEgdHlwZXMgZm9yIHN1YnNjcmliZXIgbWFuYWdlbWVudA0KCUJhc2ljU2VydmljZUNvZGUsDQoJRXh0LUJhc2ljU2VydmljZUNvZGUsDQoJRU1MUFAtSW5mbywNCglFTUxQUC1Qcmlvcml0eSwgDQoJTUMtU1MtSW5mbywNCglNYXhNQy1CZWFyZXJzLA0KCU1DLUJlYXJlcnMsDQoJRXh0LVNTLVN0YXR1cywNCg0KCS0tIGRhdGEgdHlwZXMgZm9yIGdlb2dyYXBoaWMgbG9jYXRpb24NCglBZ2VPZkxvY2F0aW9uSW5mb3JtYXRpb24sDQoJTENTQ2xpZW50RXh0ZXJuYWxJRCwNCglMQ1NDbGllbnRJbnRlcm5hbElELA0KCUxDU1NlcnZpY2VUeXBlSUQsDQoNCgktLSBXUyBhZGRlZCBleHBvcnRzIG5lZWRlZCBieSBnc21fbWFwLmFzbiAoZXh0cmEgYXNuMSBmaWxlIHRvIGhhbmRsZSBvbGRlciBwcm90LiB2ZXIuKQ0KCVByb3RvY29sSWQsDQoJLS0gZ3BycyBsb2NhdGlvbiByZWdpc3RyYXRpb24gdHlwZXMNCglHU04tQWRkcmVzcw0KDQo7DQoNCklNUE9SVFMNCglUZWxlc2VydmljZUNvZGUsDQoJRXh0LVRlbGVzZXJ2aWNlQ29kZQ0KRlJPTSBNQVAtVFMtQ29kZSB7DQogICBpdHUtdCBpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiAoNCkgZXRzaSAoMCkgbW9iaWxlRG9tYWluICgwKQ0KICAgZ3NtLU5ldHdvcmsgKDEpIG1vZHVsZXMgKDMpIG1hcC1UUy1Db2RlICgxOSkgdmVyc2lvbjEyICgxMil9DQoNCglCZWFyZXJTZXJ2aWNlQ29kZSwNCglFeHQtQmVhcmVyU2VydmljZUNvZGUNCkZST00gTUFQLUJTLUNvZGUgew0KICAgaXR1LXQgaWRlbnRpZmllZC1vcmdhbml6YXRpb24gKDQpIGV0c2kgKDApIG1vYmlsZURvbWFpbiAoMCkNCiAgIGdzbS1OZXR3b3JrICgxKSBtb2R1bGVzICgzKSBtYXAtQlMtQ29kZSAoMjApIHZlcnNpb24xMiAoMTIpfQ0KDQoJU1MtQ29kZQ0KRlJPTSBNQVAtU1MtQ29kZSB7DQogICBpdHUtdCBpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiAoNCkgZXRzaSAoMCkgbW9iaWxlRG9tYWluICgwKQ0KICAgZ3NtLU5ldHdvcmsgKDEpIG1vZHVsZXMgKDMpIG1hcC1TUy1Db2RlICgxNSkgdmVyc2lvbjEyICgxMil9DQoNCglFeHRlbnNpb25Db250YWluZXINCkZST00gTUFQLUV4dGVuc2lvbkRhdGFUeXBlcyB7DQogICBpdHUtdCBpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiAoNCkgZXRzaSAoMCkgbW9iaWxlRG9tYWluICgwKQ0KICAgZ3NtLU5ldHdvcmsgKDEpIG1vZHVsZXMgKDMpIG1hcC1FeHRlbnNpb25EYXRhVHlwZXMgKDIxKSB2ZXJzaW9uMTIgKDEyKX0NCjsNCg0KDQotLSBnZW5lcmFsIGRhdGEgdHlwZXMNCg0KVEJDRC1TVFJJTkcgOjo9IE9DVEVUIFNUUklORw0KCS0tIFRoaXMgdHlwZSAoVGVsZXBob255IEJpbmFyeSBDb2RlZCBEZWNpbWFsIFN0cmluZykgaXMgdXNlZCB0bw0KCS0tIHJlcHJlc2VudCBzZXZlcmFsIGRpZ2l0cyBmcm9tIDAgdGhyb3VnaCA5LCAqLCAjLCBhLCBiLCBjLCB0d28NCgktLSBkaWdpdHMgcGVyIG9jdGV0LCBlYWNoIGRpZ2l0IGVuY29kZWQgMDAwMCB0byAxMDAxICgwIHRvIDkpLA0KCS0tIDEwMTAgKCopLCAxMDExICgjKSwgMTEwMCAoYSksIDExMDEgKGIpIG9yIDExMTAgKGMpOyAxMTExIHVzZWQNCgktLSBhcyBmaWxsZXIgd2hlbiB0aGVyZSBpcyBhbiBvZGQgbnVtYmVyIG9mIGRpZ2l0cy4NCg0KCS0tIGJpdHMgODc2NSBvZiBvY3RldCBuIGVuY29kaW5nIGRpZ2l0IDJuDQoJLS0gYml0cyA0MzIxIG9mIG9jdGV0IG4gZW5jb2RpbmcgZGlnaXQgMihuLTEpICsxDQoNCkRpYW1ldGVySWRlbnRpdHkgOjo9IE9DVEVUIFNUUklORyAoU0laRSg5Li41NSkpDQotLSBjb250ZW50IG9mIERpYW1ldGVySWRlbnRpdHkgaXMgZGVmaW5lZCBpbiBJRVRGIFJGQyAzNTg4IFsxMzldDQoNCkFkZHJlc3NTdHJpbmcgOjo9IE9DVEVUIFNUUklORyAoU0laRSAoMS4ubWF4QWRkcmVzc0xlbmd0aCkpDQoJLS0gVGhpcyB0eXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGEgbnVtYmVyIGZvciBhZGRyZXNzaW5nDQoJLS0gcHVycG9zZXMuIEl0IGlzIGNvbXBvc2VkIG9mDQoJLS0JYSkJb25lIG9jdGV0IGZvciBuYXR1cmUgb2YgYWRkcmVzcywgYW5kIG51bWJlcmluZyBwbGFuDQoJLS0JCWluZGljYXRvci4NCgktLQliKQlkaWdpdHMgb2YgYW4gYWRkcmVzcyBlbmNvZGVkIGFzIFRCQ0QtU3RyaW5nLg0KDQoJLS0gYSkJVGhlIGZpcnN0IG9jdGV0IGluY2x1ZGVzIGEgb25lIGJpdCBleHRlbnNpb24gaW5kaWNhdG9yLCBhDQoJLS0JCTMgYml0cyBuYXR1cmUgb2YgYWRkcmVzcyBpbmRpY2F0b3IgYW5kIGEgNCBiaXRzIG51bWJlcmluZw0KCS0tCQlwbGFuIGluZGljYXRvciwgZW5jb2RlZCBhcyBmb2xsb3dzOg0KDQoJLS0gYml0IDg6IDEgIChubyBleHRlbnNpb24pDQoNCgktLSBiaXRzIDc2NTogbmF0dXJlIG9mIGFkZHJlc3MgaW5kaWNhdG9yDQoJLS0JMDAwICB1bmtub3duDQoJLS0JMDAxICBpbnRlcm5hdGlvbmFsIG51bWJlcg0KCS0tCTAxMCAgbmF0aW9uYWwgc2lnbmlmaWNhbnQgbnVtYmVyDQoJLS0JMDExICBuZXR3b3JrIHNwZWNpZmljIG51bWJlcg0KCS0tCTEwMCAgc3Vic2NyaWJlciBudW1iZXINCgktLQkxMDEgIHJlc2VydmVkDQoJLS0JMTEwICBhYmJyZXZpYXRlZCBudW1iZXINCgktLQkxMTEgIHJlc2VydmVkIGZvciBleHRlbnNpb24NCg0KCS0tIGJpdHMgNDMyMTogbnVtYmVyaW5nIHBsYW4gaW5kaWNhdG9yDQoJLS0JMDAwMCAgdW5rbm93bg0KCS0tCTAwMDEgIElTRE4vVGVsZXBob255IE51bWJlcmluZyBQbGFuIChSZWMgSVRVLVQgRS4xNjQpDQoJLS0JMDAxMCAgc3BhcmUNCgktLQkwMDExICBkYXRhIG51bWJlcmluZyBwbGFuIChJVFUtVCBSZWMgWC4xMjEpDQoJLS0JMDEwMCAgdGVsZXggbnVtYmVyaW5nIHBsYW4gKElUVS1UIFJlYyBGLjY5KQ0KCS0tCTAxMDEgIHNwYXJlDQoJLS0JMDExMCAgbGFuZCBtb2JpbGUgbnVtYmVyaW5nIHBsYW4gKElUVS1UIFJlYyBFLjIxMikNCgktLQkwMTExICBzcGFyZQ0KCS0tCTEwMDAgIG5hdGlvbmFsIG51bWJlcmluZyBwbGFuDQoJLS0JMTAwMSAgcHJpdmF0ZSBudW1iZXJpbmcgcGxhbg0KCS0tCTExMTEgIHJlc2VydmVkIGZvciBleHRlbnNpb24NCg0KCS0tCWFsbCBvdGhlciB2YWx1ZXMgYXJlIHJlc2VydmVkLg0KDQoJLS0gYikJVGhlIGZvbGxvd2luZyBvY3RldHMgcmVwcmVzZW50aW5nIGRpZ2l0cyBvZiBhbiBhZGRyZXNzDQoJLS0JCWVuY29kZWQgYXMgYSBUQkNELVNUUklORy4NCg0KbWF4QWRkcmVzc0xlbmd0aCAgSU5URUdFUiA6Oj0gMjANCg0KSVNETi1BZGRyZXNzU3RyaW5nIDo6PSANCgkJCUFkZHJlc3NTdHJpbmcgKFNJWkUgKDEuLm1heElTRE4tQWRkcmVzc0xlbmd0aCkpDQoJLS0gVGhpcyB0eXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IElTRE4gbnVtYmVycy4NCg0KbWF4SVNETi1BZGRyZXNzTGVuZ3RoICBJTlRFR0VSIDo6PSA5DQoNCkZUTi1BZGRyZXNzU3RyaW5nIDo6PSANCgkJCUFkZHJlc3NTdHJpbmcgKFNJWkUgKDEuLm1heEZUTi1BZGRyZXNzTGVuZ3RoKSkNCgktLSBUaGlzIHR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgZm9yd2FyZGVkLXRvIG51bWJlcnMuIA0KCS0tIElmIE5BSSA9IGludGVybmF0aW9uYWwgdGhlIGZpcnN0IGRpZ2l0cyByZXByZXNlbnQgdGhlIGNvdW50cnkgY29kZSAoQ0MpDQoJLS0gYW5kIHRoZSBuZXR3b3JrIGRlc3RpbmF0aW9uIGNvZGUgKE5EQykgYXMgZm9yIEUuMTY0Lg0KDQptYXhGVE4tQWRkcmVzc0xlbmd0aCAgSU5URUdFUiA6Oj0gMTUNCg0KSVNETi1TdWJhZGRyZXNzU3RyaW5nIDo6PSANCgkJCU9DVEVUIFNUUklORyAoU0laRSAoMS4ubWF4SVNETi1TdWJhZGRyZXNzTGVuZ3RoKSkNCgktLSBUaGlzIHR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgSVNETiBzdWJhZGRyZXNzZXMuDQoJLS0gSXQgaXMgY29tcG9zZWQgb2YNCgktLQlhKQlvbmUgb2N0ZXQgZm9yIHR5cGUgb2Ygc3ViYWRkcmVzcyBhbmQgb2RkL2V2ZW4gaW5kaWNhdG9yLg0KCS0tCWIpCTIwIG9jdGV0cyBmb3Igc3ViYWRkcmVzcyBpbmZvcm1hdGlvbi4NCg0KCS0tCWEpCVRoZSBmaXJzdCBvY3RldCBpbmNsdWRlcyBhIG9uZSBiaXQgZXh0ZW5zaW9uIGluZGljYXRvciwgYQ0KCS0tCQkzIGJpdHMgdHlwZSBvZiBzdWJhZGRyZXNzIGFuZCBhIG9uZSBiaXQgb2RkL2V2ZW4gaW5kaWNhdG9yLA0KCS0tCQllbmNvZGVkIGFzIGZvbGxvd3M6DQoNCgktLQliaXQgODogMSAgKG5vIGV4dGVuc2lvbikNCg0KCS0tCWJpdHMgNzY1OiB0eXBlIG9mIHN1YmFkZHJlc3MNCgktLQkJMDAwICBOU0FQIChYLjIxMy9JU08gODM0OCBBRDIpDQoJLS0JCTAxMCAgVXNlciBTcGVjaWZpZWQNCgktLQkJQWxsIG90aGVyIHZhbHVlcyBhcmUgcmVzZXJ2ZWQNCg0KCS0tCWJpdCA0OiBvZGQvZXZlbiBpbmRpY2F0b3INCgktLQkJMCAgZXZlbiBudW1iZXIgb2YgYWRkcmVzcyBzaWduYWxzDQoJLS0JCTEgIG9kZCBudW1iZXIgb2YgYWRkcmVzcyBzaWduYWxzDQoJLS0JCVRoZSBvZGQvZXZlbiBpbmRpY2F0b3IgaXMgdXNlZCB3aGVuIHRoZSB0eXBlIG9mIHN1YmFkZHJlc3MNCgktLQkJaXMgInVzZXIgc3BlY2lmaWVkIiBhbmQgdGhlIGNvZGluZyBpcyBCQ0QuDQoNCgktLQliaXRzIDMyMTogMDAwICh1bnVzZWQpDQoNCgktLQliKSBTdWJhZGRyZXNzIGluZm9ybWF0aW9uLg0KCS0tCVRoZSBOU0FQIFguMjEzL0lTTzgzNDhBRDIgYWRkcmVzcyBzaGFsbCBiZSBmb3JtYXR0ZWQgYXMgc3BlY2lmaWVkDQoJLS0JYnkgb2N0ZXQgNCB3aGljaCBjb250YWlucyB0aGUgQXV0aG9yaXR5IGFuZCBGb3JtYXQgSWRlbnRpZmllcg0KCS0tCShBRkkpLiBUaGUgZW5jb2RpbmcgaXMgbWFkZSBhY2NvcmRpbmcgdG8gdGhlICJwcmVmZXJyZWQgYmluYXJ5DQoJLS0JZW5jb2RpbmciIGFzIGRlZmluZWQgaW4gWC4yMTMvSVNPODM0QUQyLiBGb3IgdGhlIGRlZmluaXRpb24NCgktLQlvZiB0aGlzIHR5cGUgb2Ygc3ViYWRkcmVzcywgc2VlIElUVS1UIFJlYyBJLjMzNC4NCg0KCS0tCUZvciBVc2VyLXNwZWNpZmljIHN1YmFkZHJlc3MsIHRoaXMgZmllbGQgaXMgZW5jb2RlZCBhY2NvcmRpbmcNCgktLQl0byB0aGUgdXNlciBzcGVjaWZpY2F0aW9uLCBzdWJqZWN0IHRvIGEgbWF4aW11bSBsZW5ndGggb2YgMjANCgktLQlvY3RldHMuIFdoZW4gaW50ZXJ3b3JraW5nIHdpdGggWC4yNSBuZXR3b3JrcyBCQ0QgY29kaW5nIHNob3VsZA0KCS0tCWJlIGFwcGxpZWQuDQoNCm1heElTRE4tU3ViYWRkcmVzc0xlbmd0aCAgSU5URUdFUiA6Oj0gMjENCg0KRXh0ZXJuYWxTaWduYWxJbmZvIDo6PSBTRVFVRU5DRSB7DQoJcHJvdG9jb2xJZAlQcm90b2NvbElkLA0KCXNpZ25hbEluZm8JU2lnbmFsSW5mbywNCgktLSBJbmZvcm1hdGlvbiBhYm91dCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIGlzIGdpdmVuIGluDQoJLS0gY2xhdXNlIDcuNi45Lg0KCWV4dGVuc2lvbkNvbnRhaW5lcglFeHRlbnNpb25Db250YWluZXIJT1BUSU9OQUwsDQoJLS0gZXh0ZW5zaW9uQ29udGFpbmVyIG11c3Qgbm90IGJlIHVzZWQgaW4gdmVyc2lvbiAyDQoJLi4ufQ0KDQpTaWduYWxJbmZvIDo6PSBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEuLm1heFNpZ25hbEluZm9MZW5ndGgpKQ0KDQptYXhTaWduYWxJbmZvTGVuZ3RoICBJTlRFR0VSIDo6PSAyMDANCgktLSBUaGlzIE5hbWVkVmFsdWUgcmVwcmVzZW50cyB0aGUgdGhlb3JldGljYWwgbWF4aW11bSBudW1iZXIgb2Ygb2N0ZXRzIHdoaWNoIGlzDQoJLS0gYXZhaWxhYmxlIHRvIGNhcnJ5IGEgc2luZ2xlIGluc3RhbmNlIG9mIHRoZSBTaWduYWxJbmZvIGRhdGEgdHlwZSwNCgktLSB3aXRob3V0IHJlcXVpcmluZyBzZWdtZW50YXRpb24gdG8gY29wZSB3aXRoIHRoZSBuZXR3b3JrIGxheWVyIHNlcnZpY2UuDQoJLS0gSG93ZXZlciwgdGhlIGFjdHVhbCBtYXhpbXVtIHNpemUgYXZhaWxhYmxlIGZvciBhbiBpbnN0YW5jZSBvZiB0aGUgZGF0YQ0KCS0tIHR5cGUgbWF5IGJlIGxvd2VyLCBlc3BlY2lhbGx5IHdoZW4gb3RoZXIgaW5mb3JtYXRpb24gZWxlbWVudHMNCgktLSBoYXZlIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBzYW1lIGNvbXBvbmVudC4NCg0KUHJvdG9jb2xJZCA6Oj0gRU5VTUVSQVRFRCB7DQoJZ3NtLTA0MDggICgxKSwNCglnc20tMDgwNiAgKDIpLA0KCWdzbS1CU1NNQVAgICgzKSwNCgktLSBWYWx1ZSAzIGlzIHJlc2VydmVkIGFuZCBtdXN0IG5vdCBiZSB1c2VkDQoJZXRzLTMwMDEwMi0xICAoNCl9DQoNCkV4dC1FeHRlcm5hbFNpZ25hbEluZm8gOjo9IFNFUVVFTkNFIHsNCglleHQtUHJvdG9jb2xJZAlFeHQtUHJvdG9jb2xJZCwNCglzaWduYWxJbmZvCVNpZ25hbEluZm8sDQoJLS0gSW5mb3JtYXRpb24gYWJvdXQgdGhlIGludGVybmFsIHN0cnVjdHVyZSBpcyBnaXZlbiBpbg0KCS0tIGNsYXVzZSA3LjYuOS4xMA0KCWV4dGVuc2lvbkNvbnRhaW5lcglFeHRlbnNpb25Db250YWluZXIJT1BUSU9OQUwsDQoJLi4ufQ0KDQpFeHQtUHJvdG9jb2xJZCA6Oj0gRU5VTUVSQVRFRCB7DQoJZXRzLTMwMDM1NiAgKDEpLA0KCS4uLiANCgkgfQ0KLS0gZXhjZXB0aW9uIGhhbmRsaW5nOg0KLS0gRm9yIEV4dC1FeHRlcm5hbFNpZ25hbEluZm8gc2VxdWVuY2VzIGNvbnRhaW5pbmcgdGhpcyBwYXJhbWV0ZXIgd2l0aCBhbnkNCi0tIG90aGVyIHZhbHVlIHRoYW4gdGhlIG9uZXMgbGlzdGVkIHRoZSByZWNlaXZlciBzaGFsbCBpZ25vcmUgdGhlIHdob2xlIA0KLS0gRXh0LUV4dGVybmFsU2lnbmFsSW5mbyBzZXF1ZW5jZS4NCg0KQWNjZXNzTmV0d29ya1NpZ25hbEluZm8gOjo9IFNFUVVFTkNFIHsNCglhY2Nlc3NOZXR3b3JrUHJvdG9jb2xJZAlBY2Nlc3NOZXR3b3JrUHJvdG9jb2xJZCwNCglzaWduYWxJbmZvCUxvbmdTaWduYWxJbmZvLA0KCS0tIEluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgaXMgZ2l2ZW4gaW4gY2xhdXNlIDcuNi45LjENCgkNCglleHRlbnNpb25Db250YWluZXIJRXh0ZW5zaW9uQ29udGFpbmVyCU9QVElPTkFMLA0KCS4uLn0NCg0KTG9uZ1NpZ25hbEluZm8gOjo9IE9DVEVUIFNUUklORyAoU0laRSAoMS4ubWF4TG9uZ1NpZ25hbEluZm9MZW5ndGgpKQ0KDQptYXhMb25nU2lnbmFsSW5mb0xlbmd0aCAgSU5URUdFUiA6Oj0gMjU2MA0KCS0tIFRoaXMgTmFtZWQgVmFsdWUgcmVwcmVzZW50cyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb2N0ZXRzIHdoaWNoIGlzIGF2YWlsYWJsZQ0KCS0tIHRvIGNhcnJ5IGEgc2luZ2xlIGluc3RhbmNlIG9mIHRoZSBMb25nU2lnbmFsSW5mbyBkYXRhIHR5cGUgdXNpbmcNCgktLSBXaGl0ZSBCb29rIFNDQ1Agd2l0aCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2VnbWVudHMuDQoJLS0gSXQgdGFrZXMgYWNjb3VudCBvZiB0aGUgb2N0ZXRzIHVzZWQgYnkgdGhlIGxvd2VyIGxheWVycyBvZiB0aGUgcHJvdG9jb2wsIGFuZA0KCS0tIG90aGVyIGluZm9ybWF0aW9uIGVsZW1lbnRzIHdoaWNoIG1heSBiZSBpbmNsdWRlZCBpbiB0aGUgc2FtZSBjb21wb25lbnQuDQoNCkFjY2Vzc05ldHdvcmtQcm90b2NvbElkIDo6PSBFTlVNRVJBVEVEIHsNCgl0czNHLTQ4MDA2ICAgKDEpLA0KCXRzM0ctMjU0MTMgKDIpLA0KCS4uLn0NCgktLSBleGNlcHRpb24gaGFuZGxpbmc6DQoJLS0gRm9yIEFjY2Vzc05ldHdvcmtTaWduYWxJbmZvIHNlcXVlbmNlcyBjb250YWluaW5nIHRoaXMgcGFyYW1ldGVyIHdpdGggYW55DQoJLS0gb3RoZXIgdmFsdWUgdGhhbiB0aGUgb25lcyBsaXN0ZWQgdGhlIHJlY2VpdmVyIHNoYWxsIGlnbm9yZSB0aGUgd2hvbGUgDQoJLS0gQWNjZXNzTmV0d29ya1NpZ25hbEluZm8gc2VxdWVuY2UuDQoNCkFsZXJ0aW5nUGF0dGVybiA6Oj0gT0NURVQgU1RSSU5HIChTSVpFICgxKSApDQoJLS0gVGhpcyB0eXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IEFsZXJ0aW5nIFBhdHRlcm4NCg0KCS0tCWJpdHMgODc2NSA6IDAwMDAgKHVudXNlZCkNCg0KCS0tCWJpdHMgNDMgOiB0eXBlIG9mIFBhdHRlcm4NCgktLQkJMDAgbGV2ZWwNCgktLQkJMDEgY2F0ZWdvcnkNCgktLQkJMTAgY2F0ZWdvcnkNCgktLQkJYWxsIG90aGVyIHZhbHVlcyBhcmUgcmVzZXJ2ZWQuDQoNCgktLQliaXRzIDIxIDogdHlwZSBvZiBhbGVydGluZw0KDQphbGVydGluZ0xldmVsLTAgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDAwMCdCDQphbGVydGluZ0xldmVsLTEgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDAwMSdCDQphbGVydGluZ0xldmVsLTIgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDAxMCdCDQoJLS0gYWxsIG90aGVyIHZhbHVlcyBvZiBBbGVydGluZyBsZXZlbCBhcmUgcmVzZXJ2ZWQNCgktLSBBbGVydGluZyBMZXZlbHMgYXJlIGRlZmluZWQgaW4gR1NNIDAyLjA3DQoJDQphbGVydGluZ0NhdGVnb3J5LTEgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDEwMCdCDQphbGVydGluZ0NhdGVnb3J5LTIgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDEwMSdCDQphbGVydGluZ0NhdGVnb3J5LTMgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDExMCdCDQphbGVydGluZ0NhdGVnb3J5LTQgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMDExMSdCDQphbGVydGluZ0NhdGVnb3J5LTUgICBBbGVydGluZ1BhdHRlcm4gOjo9ICcwMDAwMTAwMCdCDQoJLS0gYWxsIG90aGVyIHZhbHVlcyBvZiBBbGVydGluZyBDYXRlZ29yeSBhcmUgcmVzZXJ2ZWQNCgktLSBBbGVydGluZyBjYXRlZ29yaWVzIGFyZSBkZWZpbmVkIGluIEdTTSAwMi4wNw0KDQpHU04tQWRkcmVzcyA6Oj0gT0NURVQgU1RSSU5HIChTSVpFICg1Li4xNykpDQoJLS0gT2N0ZXRzIGFyZSBjb2RlZCBhY2NvcmRpbmcgdG8gVFMgM0dQUCBUUyAyMy4wMDMgWzE3XQ0KDQotLSBkYXRhIHR5cGVzIGZvciBudW1iZXJpbmcgYW5kIGlkZW50aWZpY2F0aW9uDQoNCklNU0kgOjo9IFRCQ0QtU1RSSU5HIChTSVpFICgzLi44KSkNCgktLSBkaWdpdHMgb2YgTUNDLCBNTkMsIE1TSU4gYXJlIGNvbmNhdGVuYXRlZCBpbiB0aGlzIG9yZGVyLg0KDQpJZGVudGl0eSA6Oj0gQ0hPSUNFIHsNCglpbXNpCQkJSU1TSSwNCglpbXNpLVdpdGhMTVNJCUlNU0ktV2l0aExNU0l9DQoNCklNU0ktV2l0aExNU0kgOjo9IFNFUVVFTkNFIHsNCglpbXNpCQkJSU1TSSwNCglsbXNpCQkJTE1TSSwNCgktLSBhIHNwZWNpYWwgdmFsdWUgMDAwMDAwMDAgaW5kaWNhdGVzIHRoYXQgdGhlIExNU0kgaXMgbm90IGluIHVzZQ0KCS4uLn0NCg0KQVNDSS1DYWxsUmVmZXJlbmNlIDo6PSBUQkNELVNUUklORyAoU0laRSAoMS4uOCkpDQoJLS0gZGlnaXRzIG9mIFZHQ1MvVkJTLWFyZWEsR3JvdXAtSUQgYXJlIGNvbmNhdGVuYXRlZCBpbiB0aGlzIG9yZGVyIGlmIHRoZXJlIGlzIGENCgktLSBWR0NTL1ZCUy1hcmVhLg0KDQpUTVNJIDo6PSBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEuLjQpKQ0KDQpTdWJzY3JpYmVySWQgOjo9IENIT0lDRSB7DQoJaW1zaQkJCVswXSBJTVNJLA0KCXRtc2kJCQlbMV0gVE1TSX0NCg0KSU1FSSA6Oj0gVEJDRC1TVFJJTkcgKFNJWkUgKDgpKQ0KCS0tCVJlZmVycyB0byBJbnRlcm5hdGlvbmFsIE1vYmlsZSBTdGF0aW9uIEVxdWlwbWVudCBJZGVudGl0eQ0KCS0tCWFuZCBTb2Z0d2FyZSBWZXJzaW9uIE51bWJlciAoU1ZOKSBkZWZpbmVkIGluIFRTIDNHUFAgVFMgMjMuMDAzIFsxN10uDQoJLS0JSWYgdGhlIFNWTiBpcyBub3QgcHJlc2VudCB0aGUgbGFzdCBvY3RldCBzaGFsbCBjb250YWluIHRoZQ0KCS0tCWRpZ2l0IDAgYW5kIGEgZmlsbGVyLg0KCS0tCUlmIHByZXNlbnQgdGhlIFNWTiBzaGFsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbGFzdCBvY3RldC4NCg0KSExSLUlkIDo6PSBJTVNJDQoJLS0gbGVhZGluZyBkaWdpdHMgb2YgSU1TSSwgaS5lLiAoTUNDLCBNTkMsIGxlYWRpbmcgZGlnaXRzIG9mDQoJLS0gTVNJTikgZm9ybWluZyBITFIgSWQgZGVmaW5lZCBpbiBUUyAzR1BQIFRTIDIzLjAwMyBbMTddLg0KDQpITFItTGlzdCA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4ubWF4TnVtT2ZITFItSWQpIE9GDQoJCQkJSExSLUlkDQoNCm1heE51bU9mSExSLUlkICBJTlRFR0VSIDo6PSA1MA0KDQpMTVNJIDo6PSBPQ1RFVCBTVFJJTkcgKFNJWkUgKDQpKQ0KDQpHbG9iYWxDZWxsSWQgOjo9IE9DVEVUIFNUUklORyAoU0laRSAoNS4uNykpDQoJLS0gUmVmZXJzIHRvIENlbGwgR2xvYmFsIElkZW50aWZpY2F0aW9uIGRlZmluZWQgaW4gVFMgM0dQUCBUUyAyMy4wMDMgWzE3XS4NCgktLSBUaGUgaW50ZXJuYWwgc3RydWN0dXJlIGlzIGRlZmluZWQgYXMgZm9sbG93czoNCgktLSBvY3RldCAxIGJpdHMgNDMyMQlNb2JpbGUgQ291bnRyeSBDb2RlIDFzdCBkaWdpdA0KCS0tICAgICAgICAgYml0cyA4NzY1CU1vYmlsZSBDb3VudHJ5IENvZGUgMm5kIGRpZ2l0DQoJLS0gb2N0ZXQgMiBiaXRzIDQzMjEJTW9iaWxlIENvdW50cnkgQ29kZSAzcmQgZGlnaXQNCgktLSAgICAgICAgIGJpdHMgODc2NQlNb2JpbGUgTmV0d29yayBDb2RlIDNyZCBkaWdpdA0KCS0tCQkJb3IgZmlsbGVyICgxMTExKSBmb3IgMiBkaWdpdCBNTkNzDQoJLS0gb2N0ZXQgMyBiaXRzIDQzMjEJTW9iaWxlIE5ldHdvcmsgQ29kZSAxc3QgZGlnaXQNCgktLSAgICAgICAgIGJpdHMgODc2NQlNb2JpbGUgTmV0d29yayBDb2RlIDJuZCBkaWdpdA0KCS0tIG9jdGV0cyA0IGFuZCA1CUxvY2F0aW9uIEFyZWEgQ29kZSBhY2NvcmRpbmcgdG8gVFMgM0dQUCBUUyAyNC4wMDggWzM1XQ0KCS0tIG9jdGV0cyA2IGFuZCA3CUNlbGwgSWRlbnRpdHkgKENJKSBhY2NvcmRpbmcgdG8gVFMgM0dQUCBUUyAyNC4wMDggWzM1XQ0KDQpOZXR3b3JrUmVzb3VyY2UgOjo9IEVOVU1FUkFURUQgew0KCXBsbW4gICgwKSwNCglobHIgICgxKSwNCgl2bHIgICgyKSwNCglwdmxyICAoMyksDQoJY29udHJvbGxpbmdNU0MgICg0KSwNCgl2bXNjICAoNSksDQoJZWlyICAoNiksDQoJcnNzICAoNyl9DQoNCkFkZGl0aW9uYWxOZXR3b3JrUmVzb3VyY2UgOjo9IEVOVU1FUkFURUQgew0KCXNnc24gKDApLA0KCWdnc24gKDEpLA0KCWdtbGMgKDIpLA0KCWdzbVNDRiAoMyksDQoJbnBsciAoNCksDQoJYXVjICg1KSwNCgkuLi4gLA0KCXVlICg2KSwNCgltbWUgKDcpfQ0KCS0tIGlmIHVua25vd24gdmFsdWUgaXMgcmVjZWl2ZWQgaW4gQWRkaXRpb25hbE5ldHdvcmtSZXNvdXJjZQ0KCS0tIGl0IHNoYWxsIGJlIGlnbm9yZWQuDQoNCg0KTkFFQS1QcmVmZXJyZWRDSSA6Oj0gU0VRVUVOQ0Ugew0KCW5hZWEtUHJlZmVycmVkQ0lDCVswXSBOQUVBLUNJQywNCglleHRlbnNpb25Db250YWluZXIJWzFdIEV4dGVuc2lvbkNvbnRhaW5lcglPUFRJT05BTCwNCgkuLi59DQoNCk5BRUEtQ0lDIDo6PSBPQ1RFVCBTVFJJTkcgKFNJWkUgKDMpKQ0KCS0tIFRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgaXMgZGVmaW5lZCBieSB0aGUgQ2FycmllciBJZGVudGlmaWNhdGlvbg0KCS0tIHBhcmFtZXRlciBpbiBBTlNJIFQxLjExMy4zLiBDYXJyaWVyIGNvZGVzIGJldHdlZW4gkzAwMJQgYW5kIJM5OTmUIG1heQ0KCS0tIGJlIGVuY29kZWQgYXMgMyBkaWdpdHMgdXNpbmcgkzAwMJQgdG8gkzk5OZQgb3IgYXMgNCBkaWdpdHMgdXNpbmcgDQoJLS0gkzAwMDCUIHRvIJMwOTk5lC4gQ2FycmllciBjb2RlcyBiZXR3ZWVuIJMxMDAwlCBhbmQgkzk5OTmUIGFyZSBlbmNvZGVkDQoJLS0gdXNpbmcgNCBkaWdpdHMuDQoNClN1YnNjcmliZXJJZGVudGl0eSA6Oj0gQ0hPSUNFIHsNCglpbXNpCQkJWzBdIElNU0ksDQoJbXNpc2RuCQlbMV0gSVNETi1BZGRyZXNzU3RyaW5nDQoJfQ0KDQpMQ1NDbGllbnRFeHRlcm5hbElEIDo6PSBTRVFVRU5DRSB7DQoJZXh0ZXJuYWxBZGRyZXNzCVswXSBJU0ROLUFkZHJlc3NTdHJpbmcJT1BUSU9OQUwsDQoJZXh0ZW5zaW9uQ29udGFpbmVyCVsxXSBFeHRlbnNpb25Db250YWluZXIJT1BUSU9OQUwsDQoJLi4uIH0NCg0KTENTQ2xpZW50SW50ZXJuYWxJRCA6Oj0gRU5VTUVSQVRFRCB7DQoJYnJvYWRjYXN0U2VydmljZQkoMCksDQoJby1hbmRNLUhQTE1OCSgxKSwNCglvLWFuZE0tVlBMTU4JKDIpLA0KCWFub255bW91c0xvY2F0aW9uCSgzKSwNCgl0YXJnZXRNU3N1YnNjcmliZWRTZXJ2aWNlCSg0KSwNCgkuLi4gfQ0KLS0gZm9yIGEgQ0FNRUwgcGhhc2UgMyBQTE1OIG9wZXJhdG9yIGNsaWVudCwgdGhlIHZhbHVlIHRhcmdldE1Tc3Vic2NyaWJlZFNlcnZpY2Ugc2hhbGwgYmUgdXNlZA0KDQpMQ1NTZXJ2aWNlVHlwZUlEIDo6PSBJTlRFR0VSICgwLi4xMjcpDQoJLS0gdGhlIGludGVnZXIgdmFsdWVzIDAtNjMgYXJlIHJlc2VydmVkIGZvciBTdGFuZGFyZCBMQ1Mgc2VydmljZSB0eXBlcw0KCS0tIHRoZSBpbnRlZ2VyIHZhbHVlcyA2NC0xMjcgYXJlIHJlc2VydmVkIGZvciBOb24gU3RhbmRhcmQgTENTIHNlcnZpY2UgdHlwZXMNCg0KLS0gU3RhbmRhcmQgTENTIFNlcnZpY2UgVHlwZXMNCmVtZXJnZW5jeVNlcnZpY2VzCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAwDQplbWVyZ2VuY3lBbGVydFNlcnZpY2VzCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxDQpwZXJzb25UcmFja2luZwkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDINCmZsZWV0TWFuYWdlbWVudAkJTENTU2VydmljZVR5cGVJRCA6Oj0gMw0KYXNzZXRNYW5hZ2VtZW50CQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA0DQp0cmFmZmljQ29uZ2VzdGlvblJlcG9ydGluZwkJTENTU2VydmljZVR5cGVJRCA6Oj0gNQ0Kcm9hZHNpZGVBc3Npc3RhbmNlCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA2DQpyb3V0aW5nVG9OZWFyZXN0Q29tbWVyY2lhbEVudGVycHJpc2UJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDcNCm5hdmlnYXRpb24JCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA4DQoJLS10aGlzIHNlcnZpY2UgdHlwZSBpcyByZXNlcnZlZCBmb3IgdXNlIGluIHByZXZpb3VzIHJlbGVhc2VzDQpjaXR5U2lnaHRzZWVpbmcJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDkNCmxvY2FsaXplZEFkdmVydGlzaW5nCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMA0KbW9iaWxlWWVsbG93UGFnZXMJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDExIA0KdHJhZmZpY0FuZFB1YmxpY1RyYW5zcG9ydGF0aW9uSW5mbwkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTINCndlYXRoZXIJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTMNCmFzc2V0QW5kU2VydmljZUZpbmRpbmcJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDE0DQpnYW1pbmcJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTUNCmZpbmRZb3VyRnJpZW5kCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTYNCmRhdGluZwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxNw0KY2hhdHRpbmcJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTgNCnJvdXRlRmluZGluZwkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDE5DQp3aGVyZUFtSQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAyMA0KDQotLSBUaGUgdmFsdWVzIG9mIExDU1NlcnZpY2VUeXBlSUQgYXJlIGRlZmluZWQgYWNjb3JkaW5nIHRvIDNHUFAgVFMgMjIuMDcxLg0KDQotLSBOb24gU3RhbmRhcmQgTENTIFNlcnZpY2UgVHlwZXMNCnNlcnY2NAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA2NA0Kc2VydjY1CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDY1DQpzZXJ2NjYJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gNjYNCnNlcnY2NwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA2Nw0Kc2VydjY4CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDY4DQpzZXJ2NjkJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gNjkNCnNlcnY3MAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA3MA0Kc2VydjcxCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDcxDQpzZXJ2NzIJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gNzINCnNlcnY3MwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA3Mw0Kc2Vydjc0CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDc0DQpzZXJ2NzUJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gNzUNCnNlcnY3NgkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA3Ng0Kc2Vydjc3CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDc3DQpzZXJ2NzgJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gNzgNCnNlcnY3OQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA3OQ0Kc2VydjgwCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDgwDQpzZXJ2ODEJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gODENCnNlcnY4MgkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA4Mg0Kc2VydjgzCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDgzDQpzZXJ2ODQJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gODQNCnNlcnY4NQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA4NQ0Kc2Vydjg2CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDg2DQpzZXJ2ODcJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gODcNCnNlcnY4OAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA4OA0Kc2Vydjg5CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDg5DQpzZXJ2OTAJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gOTANCnNlcnY5MQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA5MQ0Kc2VydjkyCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDkyDQpzZXJ2OTMJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gOTMNCnNlcnY5NAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA5NA0Kc2Vydjk1CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDk1DQpzZXJ2OTYJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gOTYNCnNlcnY5NwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSA5Nw0Kc2Vydjk4CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDk4DQpzZXJ2OTkJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gOTkNCnNlcnYxMDAJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTAwDQpzZXJ2MTAxCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDEwMQ0Kc2VydjEwMgkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMDINCnNlcnYxMDMJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTAzDQpzZXJ2MTA0CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDEwNA0Kc2VydjEwNQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMDUNCnNlcnYxMDYJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTA2DQpzZXJ2MTA3CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDEwNw0Kc2VydjEwOAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMDgNCnNlcnYxMDkJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTA5DQpzZXJ2MTEwCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDExMA0Kc2VydjExMQkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMTENCnNlcnYxMTIJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTEyDQpzZXJ2MTEzCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDExMw0Kc2VydjExNAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMTQNCnNlcnYxMTUJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTE1DQpzZXJ2MTE2CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDExNg0Kc2VydjExNwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMTcNCnNlcnYxMTgJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTE4DQpzZXJ2MTE5CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDExOQ0Kc2VydjEyMAkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMjANCnNlcnYxMjEJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTIxDQpzZXJ2MTIyCQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDEyMg0Kc2VydjEyMwkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMjMNCnNlcnYxMjQJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTI0DQpzZXJ2MTI1CQkJCUxDU1NlcnZpY2VUeXBlSUQgOjo9IDEyNQ0Kc2VydjEyNgkJCQlMQ1NTZXJ2aWNlVHlwZUlEIDo6PSAxMjYNCnNlcnYxMjcJCQkJTENTU2VydmljZVR5cGVJRCA6Oj0gMTI3DQoNClBMTU4tSWQgOjo9IE9DVEVUIFNUUklORyAoU0laRSAoMykpDQoJLS0gVGhlIGludGVybmFsIHN0cnVjdHVyZSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoJLS0gb2N0ZXQgMSBiaXRzIDQzMjEJTW9iaWxlIENvdW50cnkgQ29kZSAxc3QgZGlnaXQNCgktLSAgICAgICAgIGJpdHMgODc2NQlNb2JpbGUgQ291bnRyeSBDb2RlIDJuZCBkaWdpdA0KCS0tIG9jdGV0IDIgYml0cyA0MzIxCU1vYmlsZSBDb3VudHJ5IENvZGUgM3JkIGRpZ2l0DQoJLS0gICAgICAgICBiaXRzIDg3NjUJTW9iaWxlIE5ldHdvcmsgQ29kZSAzcmQgZGlnaXQNCgktLQkJCW9yIGZpbGxlciAoMTExMSkgZm9yIDIgZGlnaXQgTU5Dcw0KCS0tIG9jdGV0IDMgYml0cyA0MzIxCU1vYmlsZSBOZXR3b3JrIENvZGUgMXN0IGRpZ2l0DQoJLS0gICAgICAgICBiaXRzIDg3NjUJTW9iaWxlIE5ldHdvcmsgQ29kZSAybmQgZGlnaXQNCg0KLS0gZGF0YSB0eXBlcyBmb3IgQ0FNRUwNCg0KQ2VsbEdsb2JhbElkT3JTZXJ2aWNlQXJlYUlkT3JMQUkgOjo9IENIT0lDRSB7DQoJY2VsbEdsb2JhbElkT3JTZXJ2aWNlQXJlYUlkRml4ZWRMZW5ndGgJWzBdIENlbGxHbG9iYWxJZE9yU2VydmljZUFyZWFJZEZpeGVkTGVuZ3RoLA0KCWxhaUZpeGVkTGVuZ3RoCVsxXSBMQUlGaXhlZExlbmd0aH0NCg0KQ2VsbEdsb2JhbElkT3JTZXJ2aWNlQXJlYUlkRml4ZWRMZW5ndGggOjo9IE9DVEVUIFNUUklORyAoU0laRSAoNykpDQoJLS0gUmVmZXJzIHRvIENlbGwgR2xvYmFsIElkZW50aWZpY2F0aW9uIG9yIFNlcnZpY2UgQXJlIElkZW50aWZpY2F0aW9uDQoJLS0gZGVmaW5lZCBpbiAzR1BQIFRTIDIzLjAwMy4NCgktLSBUaGUgaW50ZXJuYWwgc3RydWN0dXJlIGlzIGRlZmluZWQgYXMgZm9sbG93czoNCgktLSBvY3RldCAxIGJpdHMgNDMyMQlNb2JpbGUgQ291bnRyeSBDb2RlIDFzdCBkaWdpdA0KCS0tICAgICAgICAgYml0cyA4NzY1CU1vYmlsZSBDb3VudHJ5IENvZGUgMm5kIGRpZ2l0DQoJLS0gb2N0ZXQgMiBiaXRzIDQzMjEJTW9iaWxlIENvdW50cnkgQ29kZSAzcmQgZGlnaXQNCgktLSAgICAgICAgIGJpdHMgODc2NQlNb2JpbGUgTmV0d29yayBDb2RlIDNyZCBkaWdpdA0KCS0tCQkJb3IgZmlsbGVyICgxMTExKSBmb3IgMiBkaWdpdCBNTkNzDQoJLS0gb2N0ZXQgMyBiaXRzIDQzMjEJTW9iaWxlIE5ldHdvcmsgQ29kZSAxc3QgZGlnaXQNCgktLSAgICAgICAgIGJpdHMgODc2NQlNb2JpbGUgTmV0d29yayBDb2RlIDJuZCBkaWdpdA0KCS0tIG9jdGV0cyA0IGFuZCA1CUxvY2F0aW9uIEFyZWEgQ29kZSBhY2NvcmRpbmcgdG8gM0dQUCBUUyAyNC4wMDgNCgktLSBvY3RldHMgNiBhbmQgNwlDZWxsIElkZW50aXR5IChDSSkgdmFsdWUgb3IgDQoJLS0gCQkJU2VydmljZSBBcmVhIENvZGUgKFNBQykgdmFsdWUgDQoJLS0JCQlhY2NvcmRpbmcgdG8gM0dQUCBUUyAyMy4wMDMNCg0KTEFJRml4ZWRMZW5ndGggOjo9IE9DVEVUIFNUUklORyAoU0laRSAoNSkpDQoJLS0gUmVmZXJzIHRvIExvY2F0aW9uIEFyZWEgSWRlbnRpZmljYXRpb24gZGVmaW5lZCBpbiAzR1BQIFRTIDIzLjAwMyBbMTddLg0KCS0tIFRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KCS0tIG9jdGV0IDEgYml0cyA0MzIxCU1vYmlsZSBDb3VudHJ5IENvZGUgMXN0IGRpZ2l0DQoJLS0gICAgICAgICBiaXRzIDg3NjUJTW9iaWxlIENvdW50cnkgQ29kZSAybmQgZGlnaXQNCgktLSBvY3RldCAyIGJpdHMgNDMyMQlNb2JpbGUgQ291bnRyeSBDb2RlIDNyZCBkaWdpdA0KCS0tICAgICAgICAgYml0cyA4NzY1CU1vYmlsZSBOZXR3b3JrIENvZGUgM3JkIGRpZ2l0DQoJLS0JCQlvciBmaWxsZXIgKDExMTEpIGZvciAyIGRpZ2l0IE1OQ3MNCgktLSBvY3RldCAzIGJpdHMgNDMyMQlNb2JpbGUgTmV0d29yayBDb2RlIDFzdCBkaWdpdA0KCS0tICAgICAgICAgYml0cyA4NzY1CU1vYmlsZSBOZXR3b3JrIENvZGUgMm5kIGRpZ2l0DQoJLS0gb2N0ZXRzIDQgYW5kIDUJTG9jYXRpb24gQXJlYSBDb2RlIGFjY29yZGluZyB0byAzR1BQIFRTIDI0LjAwOCBbMzVdDQoNCi0tIGRhdGEgdHlwZXMgZm9yIHN1YnNjcmliZXIgbWFuYWdlbWVudA0KDQpCYXNpY1NlcnZpY2VDb2RlIDo6PSBDSE9JQ0Ugew0KCWJlYXJlclNlcnZpY2UJWzJdIEJlYXJlclNlcnZpY2VDb2RlLA0KCXRlbGVzZXJ2aWNlCVszXSBUZWxlc2VydmljZUNvZGV9DQoNCkV4dC1CYXNpY1NlcnZpY2VDb2RlIDo6PSBDSE9JQ0Ugew0KCWV4dC1CZWFyZXJTZXJ2aWNlCVsyXSBFeHQtQmVhcmVyU2VydmljZUNvZGUsDQoJZXh0LVRlbGVzZXJ2aWNlCVszXSBFeHQtVGVsZXNlcnZpY2VDb2RlfQ0KDQpFTUxQUC1JbmZvIDo6PSBTRVFVRU5DRSB7DQoJbWF4aW11bWVudGl0bGVkUHJpb3JpdHkJRU1MUFAtUHJpb3JpdHksDQoJZGVmYXVsdFByaW9yaXR5CUVNTFBQLVByaW9yaXR5LA0KCWV4dGVuc2lvbkNvbnRhaW5lcglFeHRlbnNpb25Db250YWluZXIJT1BUSU9OQUwsDQoJLi4ufQ0KDQpFTUxQUC1Qcmlvcml0eSA6Oj0gSU5URUdFUiAoMC4uMTUpDQoJLS0gVGhlIG1hcHBpbmcgZnJvbSB0aGUgdmFsdWVzIEEsQiwwLDEsMiwzLDQgdG8gdGhlIGludGVnZXItdmFsdWUgaXMNCgktLSBzcGVjaWZpZWQgYXMgZm9sbG93cyB3aGVyZSBBIGlzIHRoZSBoaWdoZXN0IGFuZCA0IGlzIHRoZSBsb3dlc3QNCgktLSBwcmlvcml0eSBsZXZlbA0KCS0tIHRoZSBpbnRlZ2VyIHZhbHVlcyA3LTE1IGFyZSBzcGFyZSBhbmQgc2hhbGwgYmUgbWFwcGVkIHRvIHZhbHVlIDQNCg0KcHJpb3JpdHlMZXZlbEEJCUVNTFBQLVByaW9yaXR5IDo6PSA2DQpwcmlvcml0eUxldmVsQgkJRU1MUFAtUHJpb3JpdHkgOjo9IDUNCnByaW9yaXR5TGV2ZWwwCQlFTUxQUC1Qcmlvcml0eSA6Oj0gMA0KcHJpb3JpdHlMZXZlbDEJCUVNTFBQLVByaW9yaXR5IDo6PSAxDQpwcmlvcml0eUxldmVsMgkJRU1MUFAtUHJpb3JpdHkgOjo9IDINCnByaW9yaXR5TGV2ZWwzCQlFTUxQUC1Qcmlvcml0eSA6Oj0gMw0KcHJpb3JpdHlMZXZlbDQJCUVNTFBQLVByaW9yaXR5IDo6PSA0DQoNCk1DLVNTLUluZm8gOjo9IFNFUVVFTkNFIHsNCglzcy1Db2RlCQlbMF0gU1MtQ29kZSwNCglzcy1TdGF0dXMJCVsxXSBFeHQtU1MtU3RhdHVzLA0KCW5iclNCCQlbMl0gTWF4TUMtQmVhcmVycywNCgluYnJVc2VyCQlbM10gTUMtQmVhcmVycywNCglleHRlbnNpb25Db250YWluZXIJWzRdIEV4dGVuc2lvbkNvbnRhaW5lcglPUFRJT05BTCwNCgkuLi59DQoNCk1heE1DLUJlYXJlcnMgOjo9IElOVEVHRVIgKDIuLm1heE51bU9mTUMtQmVhcmVycykNCg0KTUMtQmVhcmVycyA6Oj0gSU5URUdFUiAoMS4ubWF4TnVtT2ZNQy1CZWFyZXJzKQ0KDQptYXhOdW1PZk1DLUJlYXJlcnMgIElOVEVHRVIgOjo9IDcNCg0KRXh0LVNTLVN0YXR1cyA6Oj0gT0NURVQgU1RSSU5HIChTSVpFICgxLi41KSkNCg0KCS0tIE9DVEVUIDE6DQoJLS0NCgktLSBiaXRzIDg3NjU6IDAwMDAgKHVudXNlZCkNCgktLSBiaXRzIDQzMjE6IFVzZWQgdG8gY29udmV5IHRoZSAiUCBiaXQiLCJSIGJpdCIsIkEgYml0IiBhbmQgIlEgYml0IiwNCgktLQkJICAgIHJlcHJlc2VudGluZyBzdXBwbGVtZW50YXJ5IHNlcnZpY2Ugc3RhdGUgaW5mb3JtYXRpb24NCgktLQkJICAgIGFzIGRlZmluZWQgaW4gVFMgM0dQUCBUUyAyMy4wMTEgWzIyXQ0KDQoJLS0gYml0IDQ6ICJRIGJpdCINCg0KCS0tIGJpdCAzOiAiUCBiaXQiDQoNCgktLSBiaXQgMjogIlIgYml0Ig0KDQoJLS0gYml0IDE6ICJBIGJpdCINCg0KCS0tIE9DVEVUUyAyLTU6IHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLiBUaGV5IHNoYWxsIGJlIGRpc2NhcmRlZCBpZg0KCS0tIHJlY2VpdmVkIGFuZCBub3QgdW5kZXJzdG9vZC4NCg0KDQoJLS0gZGF0YSB0eXBlcyBmb3IgZ2VvZ3JhcGhpYyBsb2NhdGlvbg0KDQpBZ2VPZkxvY2F0aW9uSW5mb3JtYXRpb24gOjo9IElOVEVHRVIgKDAuLjMyNzY3KQ0KLS0gdGhlIHZhbHVlIHJlcHJlc2VudHMgdGhlIGVsYXBzZWQgdGltZSBpbiBtaW51dGVzIHNpbmNlIHRoZSBsYXN0DQotLSBuZXR3b3JrIGNvbnRhY3Qgb2YgdGhlIG1vYmlsZSBzdGF0aW9uIChpLmUuIHRoZSBhY3R1YWxpdHkgb2YgdGhlDQotLSBsb2NhdGlvbiBpbmZvcm1hdGlvbikuDQotLSB2YWx1ZSCTMJQgaW5kaWNhdGVzIHRoYXQgdGhlIE1TIGlzIGN1cnJlbnRseSBpbiBjb250YWN0IHdpdGggdGhlDQotLSAgICAgICAgICAgbmV0d29yaw0KLS0gdmFsdWUgkzMyNzY3lCBpbmRpY2F0ZXMgdGhhdCB0aGUgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgYXQgbGVhc3QNCi0tICAgICAgICAgICAgICAgMzI3NjcgbWludXRlcyBvbGQNCg0KRU5EDQo=