ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY3J5cHRvL2FwaS1pbnRyby50eHQgYi9Eb2N1bWVudGF0aW9uL2NyeXB0by9hcGktaW50cm8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZDViNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2NyeXB0by9hcGktaW50cm8udHh0CkBAIC0wLDAgKzEsMjQ0IEBACisKKyAgICAgICAgICAgICAgICAgICAgU2NhdHRlcmxpc3QgQ3J5cHRvZ3JhcGhpYyBBUEkKKyAgICAgICAgICAgICAgICAgICAKK0lOVFJPRFVDVElPTgorCitUaGUgU2NhdHRlcmxpc3QgQ3J5cHRvIEFQSSB0YWtlcyBwYWdlIHZlY3RvcnMgKHNjYXR0ZXJsaXN0cykgYXMKK2FyZ3VtZW50cywgYW5kIHdvcmtzIGRpcmVjdGx5IG9uIHBhZ2VzLiAgSW4gc29tZSBjYXNlcyAoZS5nLiBFQ0IKK21vZGUgY2lwaGVycyksIHRoaXMgd2lsbCBhbGxvdyBmb3IgcGFnZXMgdG8gYmUgZW5jcnlwdGVkIGluLXBsYWNlCit3aXRoIG5vIGNvcHlpbmcuCisKK09uZSBvZiB0aGUgaW5pdGlhbCBnb2FscyBvZiB0aGlzIGRlc2lnbiB3YXMgdG8gcmVhZGlseSBzdXBwb3J0IElQc2VjLAorc28gdGhhdCBwcm9jZXNzaW5nIGNhbiBiZSBhcHBsaWVkIHRvIHBhZ2VkIHNrYidzIHdpdGhvdXQgdGhlIG5lZWQKK2ZvciBsaW5lYXJpemF0aW9uLgorCisKK0RFVEFJTFMKKworQXQgdGhlIGxvd2VzdCBsZXZlbCBhcmUgYWxnb3JpdGhtcywgd2hpY2ggcmVnaXN0ZXIgZHluYW1pY2FsbHkgd2l0aCB0aGUKK0FQSS4KKworJ1RyYW5zZm9ybXMnIGFyZSB1c2VyLWluc3RhbnRpYXRlZCBvYmplY3RzLCB3aGljaCBtYWludGFpbiBzdGF0ZSwgaGFuZGxlIGFsbAorb2YgdGhlIGltcGxlbWVudGF0aW9uIGxvZ2ljIChlLmcuIG1hbmlwdWxhdGluZyBwYWdlIHZlY3RvcnMpLCBwcm92aWRlIGFuIAorYWJzdHJhY3Rpb24gdG8gdGhlIHVuZGVybHlpbmcgYWxnb3JpdGhtcywgYW5kIGhhbmRsZSBjb21tb24gbG9naWNhbCAKK29wZXJhdGlvbnMgKGUuZy4gY2lwaGVyIG1vZGVzLCBITUFDIGZvciBkaWdlc3RzKS4gIEhvd2V2ZXIsIGF0IHRoZSB1c2VyIAorbGV2ZWwgdGhleSBhcmUgdmVyeSBzaW1wbGUuCisKK0NvbmNlcHR1YWxseSwgdGhlIEFQSSBsYXllcmluZyBsb29rcyBsaWtlIHRoaXM6CisKKyAgW3RyYW5zZm9ybSBhcGldICAodXNlciBpbnRlcmZhY2UpCisgIFt0cmFuc2Zvcm0gb3BzXSAgKHBlci10eXBlIGxvZ2ljIGdsdWUgZS5nLiBjaXBoZXIuYywgZGlnZXN0LmMpCisgIFthbGdvcml0aG0gYXBpXSAgKGZvciByZWdpc3RlcmluZyBhbGdvcml0aG1zKQorICAKK1RoZSBpZGVhIGlzIHRvIG1ha2UgdGhlIHVzZXIgaW50ZXJmYWNlIGFuZCBhbGdvcml0aG0gcmVnaXN0cmF0aW9uIEFQSQordmVyeSBzaW1wbGUsIHdoaWxlIGhpZGluZyB0aGUgY29yZSBsb2dpYyBmcm9tIGJvdGguICBNYW55IGdvb2QgaWRlYXMKK2Zyb20gZXhpc3RpbmcgQVBJcyBzdWNoIGFzIENyeXB0b2FwaSBhbmQgTmV0dGxlIGhhdmUgYmVlbiBhZGFwdGVkIGZvciB0aGlzLgorCitUaGUgQVBJIGN1cnJlbnRseSBzdXBwb3J0cyB0aHJlZSB0eXBlcyBvZiB0cmFuc2Zvcm1zOiBDaXBoZXJzLCBEaWdlc3RzIGFuZAorQ29tcHJlc3NvcnMuICBUaGUgY29tcHJlc3Npb24gYWxnb3JpdGhtcyBlc3BlY2lhbGx5IHNlZW0gdG8gYmUgcGVyZm9ybWluZwordmVyeSB3ZWxsIHNvIGZhci4KKworU3VwcG9ydCBmb3IgaGFyZHdhcmUgY3J5cHRvIGRldmljZXMgdmlhIGFuIGFzeW5jaHJvbm91cyBpbnRlcmZhY2UgaXMKK3VuZGVyIGRldmVsb3BtZW50LgorCitIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gdXNlIHRoZSBBUEk6CisKKwkjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisJCisJc3RydWN0IHNjYXR0ZXJsaXN0IHNnWzJdOworCWNoYXIgcmVzdWx0WzEyOF07CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbTsKKwkKKwl0Zm0gPSBjcnlwdG9fYWxsb2NfdGZtKCJtZDUiLCAwKTsKKwlpZiAodGZtID09IE5VTEwpCisJCWZhaWwoKTsKKwkJCisJLyogLi4uIHNldCB1cCB0aGUgc2NhdHRlcmxpc3RzIC4uLiAqLworCQorCWNyeXB0b19kaWdlc3RfaW5pdCh0Zm0pOworCWNyeXB0b19kaWdlc3RfdXBkYXRlKHRmbSwgJnNnLCAyKTsKKwljcnlwdG9fZGlnZXN0X2ZpbmFsKHRmbSwgcmVzdWx0KTsKKwkKKwljcnlwdG9fZnJlZV90Zm0odGZtKTsKKworICAgIAorTWFueSByZWFsIGV4YW1wbGVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHJlZ3Jlc3Npb24gdGVzdCBtb2R1bGUgKHRjcnlwdC5jKS4KKworCitDT05GSUdVUkFUSU9OIE5PVEVTCisKK0FzIFRyaXBsZSBERVMgaXMgcGFydCBvZiB0aGUgREVTIG1vZHVsZSwgZm9yIHRob3NlIHVzaW5nIG1vZHVsYXIgYnVpbGRzLAorYWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byAvZXRjL21vZHByb2JlLmNvbmY6CisKKyAgYWxpYXMgZGVzM19lZGUgZGVzCisKK1RoZSBOdWxsIGFsZ29yaXRobXMgcmVzaWRlIGluIHRoZSBjcnlwdG9fbnVsbCBtb2R1bGUsIHNvIHRoZXNlIGxpbmVzCitzaG91bGQgYWxzbyBiZSBhZGRlZDoKKworICBhbGlhcyBjaXBoZXJfbnVsbCBjcnlwdG9fbnVsbAorICBhbGlhcyBkaWdlc3RfbnVsbCBjcnlwdG9fbnVsbAorICBhbGlhcyBjb21wcmVzc19udWxsIGNyeXB0b19udWxsCisKK1RoZSBTSEEzODQgYWxnb3JpdGhtIHNoYXJlcyBjb2RlIHdpdGhpbiB0aGUgU0hBNTEyIG1vZHVsZSwgc28geW91J2xsCithbHNvIG5lZWQ6CisgIGFsaWFzIHNoYTM4NCBzaGE1MTIKKworCitERVZFTE9QRVIgTk9URVMKKworVHJhbnNmb3JtcyBtYXkgb25seSBiZSBhbGxvY2F0ZWQgaW4gdXNlciBjb250ZXh0LCBhbmQgY3J5cHRvZ3JhcGhpYworbWV0aG9kcyBtYXkgb25seSBiZSBjYWxsZWQgZnJvbSBzb2Z0aXJxIGFuZCB1c2VyIGNvbnRleHRzLgorCitXaGVuIHVzaW5nIHRoZSBBUEkgZm9yIGNpcGhlcnMsIHBlcmZvcm1hbmNlIHdpbGwgYmUgb3B0aW1hbCBpZiBlYWNoCitzY2F0dGVybGlzdCBjb250YWlucyBkYXRhIHdoaWNoIGlzIGEgbXVsdGlwbGUgb2YgdGhlIGNpcGhlcidzIGJsb2NrCitzaXplICh0eXBpY2FsbHkgOCBieXRlcykuICBUaGlzIHByZXZlbnRzIGhhdmluZyB0byBkbyBhbnkgY29weWluZworYWNyb3NzIG5vbi1hbGlnbmVkIHBhZ2UgZnJhZ21lbnQgYm91bmRhcmllcy4KKworCitBRERJTkcgTkVXIEFMR09SSVRITVMKKworV2hlbiBzdWJtaXR0aW5nIGEgbmV3IGFsZ29yaXRobSBmb3IgaW5jbHVzaW9uLCBhIG1hbmRhdG9yeSByZXF1aXJlbWVudAoraXMgdGhhdCBhdCBsZWFzdCBhIGZldyB0ZXN0IHZlY3RvcnMgZnJvbSBrbm93biBzb3VyY2VzIChwcmVmZXJhYmx5CitzdGFuZGFyZHMpIGJlIGluY2x1ZGVkLgorCitDb252ZXJ0aW5nIGV4aXN0aW5nIHdlbGwga25vd24gY29kZSBpcyBwcmVmZXJyZWQsIGFzIGl0IGlzIG1vcmUgbGlrZWx5Cit0byBoYXZlIGJlZW4gcmV2aWV3ZWQgYW5kIHdpZGVseSB0ZXN0ZWQuICBJZiBzdWJtaXR0aW5nIGNvZGUgZnJvbSBMR1BMCitzb3VyY2VzLCBwbGVhc2UgY29uc2lkZXIgY2hhbmdpbmcgdGhlIGxpY2Vuc2UgdG8gR1BMIChzZWUgc2VjdGlvbiAzIG9mCit0aGUgTEdQTCkuCisKK0FsZ29yaXRobXMgc3VibWl0dGVkIG11c3QgYWxzbyBiZSBnZW5lcmFsbHkgcGF0ZW50LWZyZWUgKGUuZy4gSURFQQord2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIG1haW5saW5lIHVudGlsIGFyb3VuZCAyMDExKSwgYW5kIGJlIGJhc2VkCitvbiBhIHJlY29nbml6ZWQgc3RhbmRhcmQgYW5kL29yIGhhdmUgYmVlbiBzdWJqZWN0ZWQgdG8gYXBwcm9wcmlhdGUKK3BlZXIgcmV2aWV3LgorCitBbHNvIGNoZWNrIGZvciBhbnkgUkZDcyB3aGljaCBtYXkgcmVsYXRlIHRvIHRoZSB1c2Ugb2Ygc3BlY2lmaWMgYWxnb3JpdGhtcywKK2FzIHdlbGwgYXMgZ2VuZXJhbCBhcHBsaWNhdGlvbiBub3RlcyBzdWNoIGFzIFJGQzI0NTEgKCJUaGUgRVNQIENCQy1Nb2RlCitDaXBoZXIgQWxnb3JpdGhtcyIpLgorCitJdCdzIGEgZ29vZCBpZGVhIHRvIGF2b2lkIHVzaW5nIGxvdHMgb2YgbWFjcm9zIGFuZCB1c2UgaW5saW5lZCBmdW5jdGlvbnMKK2luc3RlYWQsIGFzIGdjYyBkb2VzIGEgZ29vZCBqb2Igd2l0aCBpbmxpbmluZywgd2hpbGUgZXhjZXNzaXZlIHVzZSBvZgorbWFjcm9zIGNhbiBjYXVzZSBjb21waWxhdGlvbiBwcm9ibGVtcyBvbiBzb21lIHBsYXRmb3Jtcy4KKworQWxzbyBjaGVjayB0aGUgVE9ETyBsaXN0IGF0IHRoZSB3ZWIgc2l0ZSBsaXN0ZWQgYmVsb3cgdG8gc2VlIHdoYXQgcGVvcGxlCittaWdodCBhbHJlYWR5IGJlIHdvcmtpbmcgb24uCisKKworQlVHUworCitTZW5kIGJ1ZyByZXBvcnRzIHRvOgorSmFtZXMgTW9ycmlzIDxqbW9ycmlzQHJlZGhhdC5jb20+CitDYzogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUByZWRoYXQuY29tPgorCisKK0ZVUlRIRVIgSU5GT1JNQVRJT04KKworRm9yIGZ1cnRoZXIgcGF0Y2hlcyBhbmQgdmFyaW91cyB1cGRhdGVzLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgVE9ETworbGlzdCwgc2VlOgoraHR0cDovL3NhbWJhLm9yZy9+amFtZXNtL2NyeXB0by8KKworCitBVVRIT1JTCisKK0phbWVzIE1vcnJpcworRGF2aWQgUy4gTWlsbGVyCisKKworQ1JFRElUUworCitUaGUgZm9sbG93aW5nIHBlb3BsZSBwcm92aWRlZCBpbnZhbHVhYmxlIGZlZWRiYWNrIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQKK29mIHRoZSBBUEk6CisKKyAgQWxleGV5IEt1em5ldHpvdgorICBSdXN0eSBSdXNzZWxsCisgIEhlcmJlcnQgVmFsZXJpbyBSaWVkZWwKKyAgSmVmZiBHYXJ6aWsKKyAgTWljaGFlbCBSaWNoYXJkc29uCisgIEFuZHJldyBNb3J0b24KKyAgSW5nbyBPZXNlcgorICBDaHJpc3RvcGggSGVsbHdpZworCitQb3J0aW9ucyBvZiB0aGlzIEFQSSB3ZXJlIGRlcml2ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHByb2plY3RzOgorICAKKyAgS2VybmVsaSBDcnlwdG9hcGkgKGh0dHA6Ly93d3cua2VybmVsaS5vcmcvKQorICAgIEFsZXhhbmRlciBLamVsZGFhcworICAgIEhlcmJlcnQgVmFsZXJpbyBSaWVkZWwKKyAgICBLeWxlIE1jTWFydGluCisgICAgSmVhbi1MdWMgQ29va2UKKyAgICBEYXZpZCBCcnlzb24KKyAgICBDbGVtZW5zIEZydWh3aXJ0aAorICAgIFRvYmlhcyBSaW5nc3Ryb20KKyAgICBIYXJhbGQgV2VsdGUKKworYW5kOworICAKKyAgTmV0dGxlIChodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35uaXNzZS9uZXR0bGUvKQorICAgIE5pZWxzIE32bGxlcgorCitPcmlnaW5hbCBkZXZlbG9wZXJzIG9mIHRoZSBjcnlwdG8gYWxnb3JpdGhtczoKKworICBEYW5hIEwuIEhvdyAoREVTKQorICBBbmRyZXcgVHJpZGdlbGwgYW5kIFN0ZXZlIEZyZW5jaCAoTUQ0KQorICBDb2xpbiBQbHVtYiAoTUQ1KQorICBTdGV2ZSBSZWlkIChTSEExKQorICBKZWFuLUx1YyBDb29rZSAoU0hBMjU2LCBTSEEzODQsIFNIQTUxMikKKyAgS2F6dW5vcmkgTWl5YXphd2EgLyBVU0FHSSAoSE1BQykKKyAgTWF0dGhldyBTa2FsYSAoVHdvZmlzaCkKKyAgRGFnIEFybmUgT3N2aWsgKFNlcnBlbnQpCisgIEJyaWFuIEdsYWRtYW4gKEFFUykKKyAgS2FydGlrZXkgTWFoZW5kcmEgQmhhdHQgKENBU1Q2KQorICBKb24gT2JlcmhlaWRlIChBUkM0KQorICBKb3VuaSBNYWxpbmVuIChNaWNoYWVsIE1JQykKKworU0hBMSBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBKZWFuLUZyYW5jb2lzIERpdmUKKyAgCitERVMgYWxnb3JpdGhtIGNvbnRyaWJ1dG9yczoKKyAgUmFpbWFyIEZhbGtlCisgIEdpc2xlIFPmbGVuc21pbmRlCisgIE5pZWxzIE32bGxlcgorCitCbG93ZmlzaCBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBIZXJiZXJ0IFZhbGVyaW8gUmllZGVsCisgIEt5bGUgTWNNYXJ0aW4KKworVHdvZmlzaCBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBXZXJuZXIgS29jaAorICBNYXJjIE11dHoKKworU0hBMjU2LzM4NC81MTIgYWxnb3JpdGhtIGNvbnRyaWJ1dG9yczoKKyAgQW5kcmV3IE1jRG9uYWxkCisgIEt5bGUgTWNNYXJ0aW4KKyAgSGVyYmVydCBWYWxlcmlvIFJpZWRlbAorICAKK0FFUyBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBBbGV4YW5kZXIgS2plbGRhYXMKKyAgSGVyYmVydCBWYWxlcmlvIFJpZWRlbAorICBLeWxlIE1jTWFydGluCisgIEFkYW0gSi4gUmljaHRlcgorICBGcnVod2lydGggQ2xlbWVucyAoaTU4NikKKyAgTGludXMgVG9ydmFsZHMgKGk1ODYpCisKK0NBU1Q1IGFsZ29yaXRobSBjb250cmlidXRvcnM6CisgIEthcnRpa2V5IE1haGVuZHJhIEJoYXR0IChvcmlnaW5hbCBkZXZlbG9wZXJzIHVua25vd24sIEZTRiBjb3B5cmlnaHQpLgorCitURUEvWFRFQSBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBBYXJvbiBHcm90aGUKKworS2hhemFkIGFsZ29yaXRobSBjb250cmlidXRvcnM6CisgIEFhcm9uIEdyb3RoZQorCitXaGlybHBvb2wgYWxnb3JpdGhtIGNvbnRyaWJ1dG9yczoKKyAgQWFyb24gR3JvdGhlCisgIEplYW4tTHVjIENvb2tlCisKK0FudWJpcyBhbGdvcml0aG0gY29udHJpYnV0b3JzOgorICBBYXJvbiBHcm90aGUKKworVGlnZXIgYWxnb3JpdGhtIGNvbnRyaWJ1dG9yczoKKyAgQWFyb24gR3JvdGhlCisKK0dlbmVyaWMgc2NhdHRlcndhbGsgY29kZSBieSBBZGFtIEouIFJpY2h0ZXIgPGFkYW1AeWdnZHJhc2lsLmNvbT4KKworUGxlYXNlIHNlbmQgYW55IGNyZWRpdHMgdXBkYXRlcyBvciBjb3JyZWN0aW9ucyB0bzoKK0phbWVzIE1vcnJpcyA8am1vcnJpc0ByZWRoYXQuY29tPgorCg==