ZGlmZiAtLWdpdCBhL19wcm9qZWN0Q29tbW9uLnBocCBiL19wcm9qZWN0Q29tbW9uLnBocAppbmRleCBjNDQ5MjFjLi4zZWU2OTI3IDEwMDY0NAotLS0gYS9fcHJvamVjdENvbW1vbi5waHAKKysrIGIvX3Byb2plY3RDb21tb24ucGhwCkBAIC0xOCw3ICsxOCw3IEBACiAgICROYXYtPmFkZE5hdlNlcGFyYXRvcigiUHJvamVjdCBNYW5hZ2VtZW50IiwgIi9lY2QiKTsKICAgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJQcm9qZWN0IENoYXJ0ZXIiLCAiaHR0cHM6Ly93aWtpLmVjbGlwc2Uub3JnL0VDRC9DaGFydGVyI0VjbGlwc2VfQ2xvdWRfRGV2ZWxvcG1lbnRfQ2hhcnRlciIpOwogICAkTmF2LT5hZGROYXZTZXBhcmF0b3IoIlByb2plY3QgV2lraSIsICJodHRwczovL3dpa2kuZWNsaXBzZS5vcmcvRUNELyIpOwotICAkTmF2LT5hZGROYXZTZXBhcmF0b3IoIlByb2plY3QgRkFRIiwgIi9lY2QvZmFxLmh0bWwiKTsKKyAgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJQcm9qZWN0IEZBUSIsICIvZWNkL2VuX2ZhcS5waHAiKTsKICAgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJTdWItUHJvamVjdHMiLCAiL2VjZCIpOwogCiAgICROYXYtPmFkZEN1c3RvbU5hdigiQ2hlIiwgImh0dHA6Ly9lY2xpcHNlLm9yZy9jaGUiLCAiX3NlbGYiLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2NvbnRlbnQvZW5fZmFxLnBocCBiL2NvbnRlbnQvZW5fZmFxLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTA0OWNjCi0tLSAvZGV2L251bGwKKysrIGIvY29udGVudC9lbl9mYXEucGhwCkBAIC0wLDAgKzEsMTE4IEBACis8P3BocAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAxNCBFY2xpcHNlIEZvdW5kYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly9lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqCisgKiBDb250cmlidXRvcnM6CisgKiAgICBDaHJpc3RvcGhlciBHdWluZG9uIChFY2xpcHNlIEZvdW5kYXRpb24pIC0gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCis/PgorCis8IS0tIE1haW4gY29udGVudCBhcmVhIC0tPgorPGRpdiBpZD0ibWlkY29sdW1uIj4KKyAgPGgxPjxFY2xpcHNlIENsb3VkIERldmVsb3BtZW50IEZBUT48L2gxPgorCis8aDI+V2hhdCBpcyBiZWluZyBhbm5vdW5jZWQ/PC9oMj4KK0VjbGlwc2UgaXMgYW5ub3VuY2luZyB0aGUgZm9ybWF0aW9uIG9mIGEgbmV3IFRvcCBMZXZlbCBQcm9qZWN0LCCTRWNsaXBzZSBDbG91ZCBEZXZlbG9wbWVudJQgdG8gY3JlYXRlIHRoZSB0ZWNobm9sb2dpZXMsIHBsYXRmb3JtcywgYW5kIHRvb2xzIG5lY2Vzc2FyeSB0byBlbmFibGUgdGhlIGRlbGl2ZXJ5IG9mIGhpZ2hseSBpbnRlZ3JhdGVkIGNsb3VkIGRldmVsb3BtZW50IGFuZCBjbG91ZCBkZXZlbG9wZXIgZW52aXJvbm1lbnRzLiAgVGhlIEVDRCBjaGFydGVyIGlzIGF2YWlsYWJsZSBoZXJlLgorCitUaGlzIFRMUCBpbml0aWFsbHkgY29tYmluZXMgRWNsaXBzZSBPcmlvbiwgRWNsaXBzZSBDaGUsIGFuZCBFY2xpcHNlIEZsdXggd2l0aCBTQVAgc2lnbmFsaW5nIHRoYXQgRGlyaWdpYmxlIHdpbGwgYmVjb21lIHBhcnQgb2YgdGhlIGluaXRpYXRpdmUuICBUaGUgRWNsaXBzZSBib2FyZCBvZiBkaXJlY3RvcnMgdm90ZWQgdG8gYXBwcm92ZSB0aGlzIG5ldyBwcm9qZWN0IG9uIFNlcHRlbWJlciAxN3RoLCAyMDE0LCBhbmQgYSBuZXcgcHJvamVjdCBtYW5hZ2VtZW50IGNvbW1pdHRlZSBoYXMgYmVlbiBmb3JtZWQuICAKKworQWRkaXRpb25hbGx5LCBDb2RlbnZ5IGlzIGFubm91bmNpbmcgdGhlIGNyZWF0aW9uIG9mIHByb2plY3QgQ2hlLCB3aGljaCBjb250YWlucyB0aGVpciBJUCB0aGF0IG1ha2VzIHVwIHRoZSBDb2RlbnZ5IFNESywgQ29kZW52eSBJREUsIGFuZCA1MCBwbHVnLWlucyB0aGF0IHByb3ZpZGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvdXJjZSBjb2RlIGNvbnRyb2wsIGRlcGxveW1lbnQsIGFuZCBidWlsZCAvIGRlYnVnZ2VyIHN1cHBvcnQgZm9yIGNsb3VkIGRldmVsb3BtZW50LiAgQ29kZW52eSB3aWxsIGJlIGNvbnRyaWJ1dGluZyAzMCBmdWxsIHRpbWUgcmVzb3VyY2VzIHRvIHRoZSBvbmdvaW5nIGRldmVsb3BtZW50IG9mIEVjbGlwc2UgcHJvamVjdHMsIHRoZSBkZXZlbG9wbWVudCBvZiB0aGUgY29tbXVuaXR5IGFyb3VuZCBjbG91ZCBkZXZlbG9wbWVudCwgYW5kIHRoZSBwcm9tb3Rpb24gb2YgdGhlIEVjb3N5c3RlbSB0aGF0IG1ha2VzIHVwIHRoZSBFQ0QuCisKK0NvZGVudnkgaGFzIGJlY29tZSBhIHN0cmF0ZWdpYyBkZXZlbG9wZXIgbWVtYmVyIG9mIEVjbGlwc2UsIGFuZCB0YWtlbiBhIGJvYXJkIG9mIGRpcmVjdG9ycyBzZWF0IHdpdGggdGhlIGZvdW5kYXRpb24uICAKKworPGgyPldoeSBpcyBFY2xpcHNlIGNyZWF0aW5nIGEgdG9wIGxldmVsIHByb2plY3QgZGVkaWNhdGVkIHRvIGNsb3VkIGRldmVsb3BtZW50PzwvaDI+CitUaGVyZSBhcmUgb3ZlciAyMiBtaWxsaW9uIHByb2Zlc3Npb25hbCBkZXZlbG9wZXJzLCBhbmQgbW9yZSB0aGFuIDk5JSBvZiBhbGwgZGV2ZWxvcG1lbnQgaXMgc3RpbGwgZG9uZSBvbiB0aGUgZGVza3RvcC4gIFRoZSBjbG91ZCBoYXMgcHJvdmVuIGJlbmVmaXRzIHRvIGVsaW1pbmF0ZSBjb25maWd1cmF0aW9uIG92ZXJoZWFkIGFuZCBpbXByb3ZlIHZpc2liaWxpdHkgYW5kIGNvbnRyb2wgZm9yIG9yZ2FuaXphdGlvbnMuICBUaGUgdHJhbnNpdGlvbiB0byBjbG91ZCBkZXZlbG9wbWVudCBhd2F5IGZyb20gdGhlIGRlc2t0b3AgaGFzIGJlZ3VuLgorCitPdmVyIHRoZSBwYXN0IDUgeWVhcnMsIHRoZXJlIGhhdmUgYmVlbiAxMDBzIG9mIGdsb2JhbCBpbml0aWF0aXZlcyB0byB3b3JrIG9uIGRldmVsb3BtZW50IHRvb2xzIG9yIHVuZGVybHlpbmcgaW5mcmFzdHJ1Y3R1cmUgbmVjZXNzYXJ5IHRvIGVuYWJsZSBkZXZlbG9wbWVudCBlbnRpcmVseSBpbiB0aGUgY2xvdWQuICBXaXRoIHRocmVlIHByb2plY3RzIGF0IEVjbGlwc2UgYWxyZWFkeSB3b3JraW5nIG9uIGNsb3VkIGRldmVsb3BtZW50LCBhbmQgbW9yZSBjb21pbmcgc29vbiwgdGhlIHRpbWUgaGFzIGNvbWUgdG8gZm9jdXMgdGhlIGluZHVzdHJ5knMgZWZmb3J0cyBvbiBlbmFibGluZyB0aGlzIHRyYW5zaXRpb24uICAKKworQnkgY3JlYXRpbmcgYSBUb3AgTGV2ZWwgUHJvamVjdCwgdGhlIGNvbWJpbmVkIHByb2plY3RzIGFyZSBiZXR0ZXIgYWJsZSB0byBjb25jZW50cmF0ZSB0aGVpciByZXNvdXJjZXMsIG1vcmUgZWFzaWx5IGFsaWduIG9uIHRlY2hub2xvZ2ljYWwgYW5kIG1hcmtldCBvYmplY3RpdmVzLCBhbmQgY3JlYXRlIGEgc3RyZWFtbGluZWQgcGF0aCBmb3Igb25ib2FyZGluZyBhZGRpdGlvbmFsIGVjb3N5c3RlbSBwcm9qZWN0cywgZGV2ZWxvcGVycywgYW5kIGNvbW1pdHRlcnMgdG8gY2xvdWQgZGV2ZWxvcG1lbnQuCisKKzxoMj5XaGljaCBwcm9qZWN0cyB3aWxsIGJlIHBhcnQgb2YgdGhlIENsb3VkIERldmVsb3BtZW50IFBsYXRmb3JtIHRvcCBsZXZlbCBwcm9qZWN0PzwvaDI+CitFY2xpcHNlIE9yaW9uLCBDaGUsIGFuZCBGbHV4LiAgU0FQIERpcmlnaWJsZSBpcyBhbHNvIHBsYW5uZWQgZm9yIHN1Ym1pc3Npb24gYW5kIHdpbGwgYmVjb21lIHBhcnQgb2YgdGhlIFRMUC4KKworPGgyPldoYXQgaXMgdGhlIENoZSBwcm9qZWN0PzwvaDI+CitZb3UgY2FuIHJlYWQgdGhlIEVjbGlwc2UgQ2hlIHByb2plY3QgcHJvcG9zYWwgaGVyZS4KKworPGgyPldoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBPcmlvbiBhbmQgQ2hlPzwvaDI+CitPcmlvbiAmIENoZToKKzx1bD4KKzxsaT5Qcm92aWRlIGEgcnVudGltZSBmb3IgaG9zdGluZywgbWFuYWdpbmcgYW5kIHNjYWxpbmcgZGV2ZWxvcGVyIGVudmlyb25tZW50cyBhcyBXZWIgYXBwcy48L2xpPgorPGxpPlByb3ZpZGUgYW4gU0RLIGZvciBwYWNrYWdpbmcsIGxvYWRpbmcsIGFuZCBydW5uaW5nIHRvb2xpbmcgcGx1Zy1pbnMuPC9saT4KKzxsaT5Qcm92aWRlIGEgZGVmYXVsdCBzZXQgb2YgcGx1Zy1pbnMgcmVsYXRlZCB0byBwcm9ncmFtbWluZyBsYW5ndWFnZXMsIHNvdXJjZSBjb2RlLCBkZXBsb3ltZW50LCBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdCBhcmUgcGFydCBvZiB0aGUgZGV2ZWxvcGVyIHdvcmtmbG93LjwvbGk+Cis8bGk+UHJvdmlkZSBhIGRlZmF1bHQgY2xvdWQgSURFIHRoYXQgY29tYmluZXMgYSBzZXQgb2YgcGx1Zy1pbnMsIHRoZSBTREssIGFuZCBydW50aW1lIHRvZ2V0aGVyIHRvIG9mZmVyIGEgaG9zdGVkIGRldmVsb3BlciBleHBlcmllbmNlLjwvbGk+Cis8bGk+SGF2ZSB3YXlzIChvciBwbGFucyBmb3Igd2F5cykgdG8gY29ubmVjdCBkZXNrdG9wIElERXMgKGxpa2UgRWNsaXBzZSBhbmQgSW50ZWxsaUopIGRpcmVjdGx5IGludG8gdGhlIGhvc3RlZCBzZXJ2aWNlczwvbGk+Cis8L3VsPgorCitUaGlzIGNvbW1vbmFsaXR5IGlzIGFsc28gd2hhdCBtYWtlcyB0aGVtIGRpZmZlcmVudC4gIE9yaW9uIGhhcyBiZWVuIGF1dGhvcmVkIHdpdGggTm9kZS5qcyBhbmQgSmF2YVNjcmlwdCwgdG8gY3JlYXRlIGEgc3lzdGVtIG9wdGltaXplZCBmb3IgY3JlYXRpbmcsIHRlc3RpbmcsIGFuZCBkZXBsb3lpbmcgaW50ZXJwcmV0ZWQgbGFuZ3VhZ2Ugc3lzdGVtcyBlbnRpcmVseSB1c2luZyB0aGUgbGF0ZXN0IFdlYiB0ZWNobm9sb2dpZXMuIFRvIGFjaGlldmUgdGhpcyBnb2FsLCBpdCBoYXMgYWRvcHRlZCBhIHVuaXF1ZSBhcmNoaXRlY3R1cmUgdGhhdCBpcyBvcHRpbWl6ZWQgYXJvdW5kIHRoZSB0eXBlcyBvZiBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgYnVpbHQgd2l0aCBpdC4gIFdpdGggdGhpcywgT3Jpb24gcHJvdmlkZXMgbWFueSBhZHZhbmNlbWVudHMgYXJvdW5kIEphdmFTY3JpcHQgYW5kIG90aGVyIGludGVycHJldGVkIGxhbmd1YWdlcy4KKworQ2hlIGhhcyBiZWVuIGF1dGhvcmVkIGluIEphdmEgYW5kIGZvbGxvd3MgbWFueSBvZiB0aGUgYXJjaGl0ZWN0dXJhbCBwcmluY2lwbGVzIHVzZWQgYnkgdGhlIEVjbGlwc2UgUkNQIGFuZCBKYXZhIERldmVsb3BtZW50IFRvb2xzIHByb2plY3RzLiAgQ2hlIHByb3ZpZGVzIGFuIGFyY2hpdGVjdHVyZSBhbmQgZGVzaWduIG9wdGltaXplZCBmb3IgY29tcGlsZWQgbGFuZ3VhZ2VzIGFsb25nIHdpdGggaW4tZGVwdGggZXh0ZW5zaW9ucyByZWxhdGVkIHRvIHRoZSBKYXZhIGVjb3N5c3RlbSBsaWtlIG1hdmVuLCBKYXZhIGRlYnVnZ2luZywgYW50LCBhbmQgc28gb24uICBUaGUgQ2hlIGFyY2hpdGVjdHVyZSB3YXMgY3JlYXRlZCB0byBtaW5pbWl6ZSB0aGUgZWZmb3J0IHJlcXVpcmVkIHRvIHBvcnQgRWNsaXBzZSBwbHVnLWlucyB0byB3b3JrIHdpdGhpbiBDaGUgZm9yIGEgV2ViIGV4cGVyaWVuY2UuICBXaGlsZSBwbHVnLWlucyBtdXN0IGJlIHJld3JpdHRlbiBpbiBDaGUgaW50ZXJmYWNlcywgdGhlIHBsdWctaW4gbGlmZWN5Y2xlIGFuZCB0b29saW5nIHN1cHBvcnQgZm9yIENoZSBwbHVnLWlucyBpcyBkZXNpZ25lZCB0byBtYWtlIHRoZSB0cmFuc2l0aW9uIHRheCBhcyBsb3cgYXMgcG9zc2libGUuICBBZGRpdGlvbmFsbHksIHRoZSBDaGUgcnVudGltZSBtb2RlbCBzdXBwb3J0cyBkZXZlbG9waW5nIG5vbi1XZWIgYXBwbGljYXRpb25zIGluY2x1ZGluZyBtb2JpbGUsIGRlc2t0b3AsIGNvbnNvbGUsIGFuZCBBUEktb3JpZW50ZWQgYXBwbGljYXRpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBuYXRpdmUgSFRNTCBvdXRwdXQuCisKK0FkZGl0aW9uYWxseSwgdGhlIENoZSBwcm9qZWN0IGFsc28gaGFzIHRoZSBzY29wZSB0byBidWlsZCBvdXQgaW5mcmFzdHJ1Y3R1cmUgc3VwcG9ydGluZyBhIGRldmVsb3BlciBlbnZpcm9ubWVudCBQQUFTLCBmb3IgcnVubmluZyBkZXZlbG9wZXIgZW52aXJvbm1lbnRzIHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb25jdXJyZW50IGRldmVsb3BlcnMsIGJ1aWxkcywgcnVucywgYW5kIHByb2plY3RzIG9uIGEgdW5pZmllZCBzZXQgb2YgaGFyZHdhcmUsIHdoaWxlIHByb3ZpZGluZyBlbnRlcnByaXNlIGJlaGF2aW9yYWwgYW5kIGFjY2VzcyBjb250cm9scy4gIFRoZSBQQUFTIGluZnJhc3RydWN0dXJlIHRoYXQgaXMgcGFydCBvZiB0aGUgQ2hlIHByb2plY3Qgd2lsbCBiZSBkZXNpZ25lZCB0byBzdXBwb3J0IGFueSB0eXBlIG9mIGVkaXRvciwgY2xvdWQgSURFLCBvciBkZXZlbG9wbWVudCBydW50aW1lLCBlbmFibGluZyBzY2FsZSBvdXQgb2YgdGhvc2Ugc2VydmljZXMuICBTbywgT3Jpb24gY2FuIHdvcmsgd2l0aGluIGl0IGFzIHdlbGwuCisKKzxoMj5XaGF0IGlzIERpcmlnaWJsZSBhbmQgaG93IGRvZXMgdGhhdCByZWxhdGUgdG8gQ2hlIGFuZCBPcmlvbj88L2gyPgorRGlyaWdpYmxlIGV4dGVuZHMgdGhlIGNvbmNlcHRzIHByb21vdGVkIGJ5IE9yaW9uIGFuZCBDaGUgdG8gZGVsaXZlciBvbiBhIHJhcGlkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGZyYW1ld29yaywgZnVsbHkgaG9zdGVkIGluIHRoZSBjbG91ZC4gIERpcmlnaWJsZSBhYnN0cmFjdGlvbnMgbWFrZSBkZXZlbG9waW5nIFdlYiBzZXJ2aWNlcyBhbmQgdGhlIGNsaWVudHMgdGhhdCBjb25zdW1lIHRoZW0gc3RydWN0dXJlZCB3aXRoIHNjYWZmb2xkaW5nLCByYXBpZCwgYW5kIGVhc2llciB0byBtYWludGFpbi4gIFJhcGlkIGRldmVsb3BtZW50IGZyYW1ld29ya3MgaGF2ZSBjb21tb25seSBiZWVuIGRlcGxveWVkIHRvIHN1cHBvcnQgZGF0YWJhc2UgYW5kIHBhY2thZ2VkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LCBhbmQgRGlyaWdpYmxlIGJyaW5ncyB0aG9zZSBjb25jZXB0cyB0byBjbG91ZCBkZXZlbG9wZXIgZW52aXJvbm1lbnRzLgorCitBbGwgdGhyZWUgcHJvamVjdHMgcHJvdmlkZSBob3N0ZWQgZGV2ZWxvcGVyIGVudmlyb25tZW50cy4gIEJ1dCBvdXIgY29tbW9uYWxpdHkgYW5kIGFncmVlbWVudCBvbiBhIGNvbW1vbiB2aXNpb24gbWVhbnMgdGhhdCB0aGVyZSB3aWxsIGJlIG5pY2UgcmV1c2UgYW5kIGFsaWdubWVudCBiZXR3ZWVuIHRoZSBwcm9qZWN0cy4gIEFsbCBvZiB0aGUgcHJvamVjdHMgYWdyZWUgb24gY29yZSBwcmluY2lwbGVzIHJlbGF0aW5nIHRvIHByb3ZpZGluZyBkZXZlbG9wZXIgc2VydmljZXMgYXMgYXRvbWljIG1pY3Jvc2VydmljZXMsIGRlY291cGxpbmcgdGhlIGNsaWVudHMgKElERXMpIHRoYXQgY29uc3VtZSB0aG9zZSBzZXJ2aWNlcyBmcm9tIHRoZSBzZXJ2aWNlcyB0aGVtc2VsdmVzLCBzdXBwb3J0aW5nIGEgYnJvYWQgcmFuZ2Ugb2YgY2xpZW50cyAod2hldGhlciBvdXIgYnJvd3NlciBJREVzIG9yIGRlc2t0b3AgSURFcyBjb25uZWN0ZWQgb3ZlciBhIGJ1cyksIGFuZCBwcm92aWRpbmcgYSBjb25zaXN0ZW50IHdheSB0byBwcm92aXNpb24sIHNoYXJlIGFuZCBzY2FsZSBob3N0ZWQgZGV2ZWxvcGVyIGVudmlyb25tZW50cyB0b2dldGhlci4KKworPGgyPldoZW4gc2hvdWxkIGEgZGV2ZWxvcGVyIHVzZXIgY2hvb3NlIE9yaW9uIGFuZCB3aGVuIHNob3VsZCB0aGV5IGNob29zZSBDaGU/PC9oMj4KK1RoZXkgc2hvdWxkIGNob29zZSBib3RoIDopLiAgQnV0IG1vcmUgc2VyaW91c2x5LCB3aGlsZSBhIGRldmVsb3BlciBzaG91bGQgdHJ5IGJvdGggcHJvZHVjdHMgZm9yIGFsbCBraW5kcyBvZiBhcHBsaWNhdGlvbnMsIGlmIGEgZGV2ZWxvcGVyIGlzIGRvaW5nIGEgSmF2YVNjcmlwdCBwcm9qZWN0LCB0aGV5IHNob3VsZCBleHBlcmllbmNlIE9yaW9uLiAgSWYgdGhlaXIgcHJvamVjdCBoYXMgSmF2YSBsYW5ndWFnZSBleHRlbnNpb25zLCBFY2xpcHNlIHBsdWctaW5zLCBtb2JpbGUgZGV2ZWxvcG1lbnQsIG9yIG90aGVyIG5vbi1XZWIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQsIHRoZW4gdGhleSBzaG91bGQgZ2l2ZSBDaGUgYSB0cnkuCisKK0JvdGggT3Jpb24gYW5kIENoZSB3aWxsIGJlIHdvcmtpbmcgb24gYSB2YXJpZXR5IG9mIGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBwcm9qZWN0cyB0aGF0IHdpbGwgbWFrZSBpdCBlYXN5IGZvciBwcm9qZWN0cyB0byBtaWdyYXRlIGJldHdlZW4gQ2hlIGFuZCBvcmlvbiwgYWxvbmcgd2l0aCB0aGUgQ2hlIC8gT3Jpb24gSURFcyBvcGVyYXRpbmcgb24gYSBjb21tb24gc2V0IG9mIGVudGVycHJpc2UgaW5mcmFzdHJ1Y3R1cmUuCisKKzxoMj5Ib3cgd2lsbCBPcmlvbiwgQ2hlLCBGbHV4LCBhbmQgRGlyaWdpYmxlIGNvbGxhYm9yYXRlIHRvZ2V0aGVyPzwvaDI+CitXZSBoYXZlIGlkZW50aWZpZWQgYSBudW1iZXIgb2YgaW5pdGlhdGl2ZXMgdGhhdCB0aGUgcHJvamVjdHMgd2lsbCBhbGlnbiBvbi4gIFRoZXNlIGluY2x1ZGU6CitGaW5kaW5nIHdheXMgdG8gaGF2ZSBDaGUgYW5kIE9yaW9uIHBsdWctaW5zIHdvcmsgd2l0aGluIGVhY2ggb3RoZXKScyBzeXN0ZW1zLgorU3RhbmRhcmRpemluZyBvbiB0aGUgc3luY2hyb25vdXMgUkVTVCBBUEkgbW9kZWwgdGhhdCBhbGxvd3MgYnJvd3NlciBjbGllbnRzIHRvIGNvbW11bmljYXRlIHdpdGggc2VydmVyLXNpZGUgc3lzdGVtcy4gIEEgc2FtcGxlIHNldCBvZiBBUElzIGNhbiBiZSBzZWVuIGF0IGRvY3MuY29kZW52eS5jb20uCitVc2luZyBGbHV4IHRvIHN0YW5kYXJkaXplIG9uIHRoZSBhc3luY2hyb25vdXMgY29tbXVuaWNhdGlvbiBtb2RlbCBiZXR3ZWVuIHZhcmlvdXMgY2xvdWQgc3lzdGVtcywgYWxvbmcgd2l0aCBlbmFibGluZyBicm93c2VyIGFuZCBkZXNrdG9wIGNsaWVudHMgdG8gaGF2ZSBkZWNvdXBsZWQgYWNjZXNzIHRvIGNsb3VkIHN5c3RlbXMuCitDb2xsYWJvcmF0aW5nIG9uIGEgbW9kZWwgdGhhdCBhbGxvd3MgZm9yIG9uLWRlbWFuZCwgYXV0aGVudGljYXRpb24tbGVzcyBlbnZpcm9ubWVudCBjcmVhdGlvbiB0aHJvdWdoIFVSTHMsIHNpbWlsYXIgdG8gdGhlIGVmZmVjdHMgc2VlbiBieSBDb2RlbnZ5IEZhY3RvcnksIGFzIGRvY3VtZW50ZWQgYXQgZG9jcy5jb2RlbnZ5LmNvbS91c2VyLiAgVGVtcG9yYXJ5IGVudmlyb25tZW50cyB3aWxsIGJlIHBvc3NpYmxlIHRvIGJlIGdlbmVyYXRlZCBvbiBhbnkgc3lzdGVtIHN1cHBvcnRpbmcgdGhlIGZvcm1hdC4KK0FsaWduIG9uIGNvbW1vbiB1bmRlcmx5aW5nIGVudGVycHJpc2UgaW5mcmFzdHJ1Y3R1cmUsIHRoYXQgd2lsbCBzZWFtbGVzc2x5IHRha2UgYSBzaW5nbGUgc2VydmVyIGNsb3VkIElERSBwYWNrYWdlLCBhbmQgYWxsb3cgaXQgdG8gYmUgZGVwbG95ZWQgd2l0aGluIGFuIGVudGVycHJpc2Ugc3lzdGVtIHRoYXQgcHJvdmlkZXMgbXVsdGktdGVuYW5jeSwgZWxhc3RpY2l0eSwgYW5kIHNlY3VyaXR5LgorSW5jb3Jwb3JhdGUgdGhlIERpcmlnaWJsZSBjb25maWd1cmF0ZS1zdG9yZWQtYXMtYS1tb2RlbCBhcHByb2FjaCB0byBjcmVhdGUgYW4gYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBhIHZhcmlldHkgb2YgcmFwaWQgZGV2ZWxvcG1lbnQgYXBwcm9hY2hlcyBhbmQgZnJhbWV3b3Jrcy4KKworPGgyPldoYXQgaXMgdGhlIGZ1dHVyZSBvZiBjbG91ZCBkZXZlbG9wbWVudCwgYW5kIHlvdXIgcm9hZG1hcCBoZXJlPzwvaDI+CitDbG91ZCBkZXZlbG9wbWVudJJzIGJlbmVmaXRzIGFyZSBzaWduaWZpY2FudCB0byBpbmRpdmlkdWFsIGRldmVsb3BlcnMsIGRldmVsb3BtZW50IHRlYW1zLCBhbmQgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zLiAgVGhlcmUgYXJlIGh1Z2UgY29uZmlndXJhdGlvbiB0YXhlcyB0aGF0IGV4aXN0IHRvZGF5IGR1ZSB0byBlbnZpcm9ubWVudCBjcmVhdGlvbiwgZW52aXJvbm1lbnRhbCB0ZWNobmljYWwgZGVidCwgZW52aXJvbm1lbnRhbCB0cmliYWwga25vd2xlZGdlLCBoYXJkd2FyZSBpbnRlcm9wZXJhYmlsaXR5IGlzc3VlcywgYW5kIHRoZSBnZW5lcmFsIGludGVyb3BlcmFiaWxpdHkgaXNzdWVzIHRoYXQgZXhpc3QgYmV0d2VlbiBtYWtpbmcgYW4gZWNvc3lzdGVtIG9mIHRvb2xzIGFuZCBwbHVnLWlucyB3b3JrIHRvZ2V0aGVyLiAgQWxsIG9mIHRoZXNlIHByb2JsZW1zIGNhbiBiZSBkcmFtYXRpY2FsbHkgcmVkdWNlZCB3aXRoIGEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdGhhdCBhdXRvbWF0ZXMgdGhlIGZ1bGwgbGlmZWN5Y2xlIG9mIGRldmVsb3BlciBlbnZpcm9ubWVudCBhbmQgaXRzIHN1cHBvcnRlZCB0b29saW5nLgorCitUbyBhY2hpZXZlIHRoaXMgdmlzaW9uLCBtdWNoIG1vcmUgdGhhbiBhIGNsb3VkIElERSBpcyByZXF1aXJlZC4gIEEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gKENEUCkgdGFrZXMgYSBjbG91ZCBJREUgYW5kIHR1cm5zIGl0IGludG8gYW4gb3JjaGVzdHJhdGlvbiBzeXN0ZW0gZm9yIGRldmVsb3BlciBlbnZpcm9ubWVudHMuICBUaGUgcG93ZXIgb2YgdGhlIENEUCBpcyB0aGF0IGl0IGNhbiBhdXRvbWF0ZSBtYW55IG9mIHRoZSB3b3JrZmxvd3MgdGhhdCBtYWtlIHVwIHRoZSB0YXNrcyBjYXJyaWVkIG91dCBieSBkZXZlbG9wZXJzLCBRQSwgcHJvZHVjdCBtYW5hZ2VycywgZG9jdW1lbnRhdGlvbiBzcGVjaWFsaXN0cywgYW5kIGRldm9wcyBwcm9mZXNzaW9uYWxzLiAgV2h5IHNob3VsZCBlYWNoIGRldmVsb3BlciBvbmx5IGhhdmUgYSBzaW5nbGUgZGV2ZWxvcGVyIGVudmlyb25tZW50IHRoYXQgbGl2ZXMgaW5kZWZpbml0ZWx5IChzdGF0aWNhbGx5KSBvbiB0aGVpciBkZXNrdG9wLCB3aGVuIC0gd2l0aCBmdWxsIGF1dG9tYXRpb24gLSBldmVyeSBkZXZlbG9wZXIgYW5kIHN5c3RlbSBjYW4gaGF2ZSBhIHVuaXF1ZSBkZXZlbG9wZXIgZW52aXJvbm1lbnQgZm9yIGVhY2ggdGFzayB0aGV5IGNhcnJ5IG91dCBkdXJpbmcgdGhlIGRheT8gIFdoZXRoZXIgaXSScyBmaXhpbmcgYSBidWcsIGludmVzdGlnYXRpbmcgYSBsZWdhY3kgYnJhbmNoLCB3b3JraW5nIG9uIGEgbmV3IGZlYXR1cmUsIG9yIGV4cGxvcmluZyBhIG5ldyB0ZWNobm9sb2d5IGxpYnJhcnksIGEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gY2FuIGF1dG8tcHJvdmlzaW9uIGEgc3BlY2lhbGl6ZWQgZW52aXJvbm1lbnQgZm9yIGVhY2ggdGFzaywgb24tZGVtYW5kLCB3aXRoIG5vIGRvd25sb2FkcyBvciBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBkZXZlbG9wZXIuCisKK1RoZSBDRFAgY2FuIHRoZW4gcHJvdmlkZSBudW1lcm91cyBzZXJ2aWNlcyB0byBtYWtlIHRoZSBkZXZlbG9wZXKScyB3b3JrZmxvdyBzaG9ydGVyIGFuZCBsZXNzIGVycm9yIHByb25lLiAgVGhlc2UgaW5jbHVkZSBhZHZhbmNlZCBlZGl0b3JzLCBkZXBlbmRlbmN5IGFuYWx5c2lzLCBhdXRvbWF0ZWQgdW5pdCB0ZXN0aW5nLCBkZWJ1Z2dpbmcsIGJ1aWxkaW5nLCBwYWNrYWdpbmcsIGFuZCBzb3VyY2UgY29kZSBtYW5hZ2VtZW50IGludGVncmF0aW9uLiAgVGhlIENEUCBjYW4gdGFrZSB0aGVzZSBvcGVyYXRpb25zIGF0IHNjYWxlLCBhbmQgbWFrZSB0aGVtIHJ1biBmYXN0ZXIgdGhhbiB0aGV5IHdvdWxkIG5vcm1hbGx5IHJ1biBvbiBhbiBpbmRpdmlkdWFsIGRlc2t0b3AsIGJ1dCBhbHNvIHJlcXVpcmUgbGVzcyBoYXJkd2FyZSBmb3IgYSBsYXJnZSBvcmdhbml6YXRpb24gdGhhbiBwZXJmb3JtaW5nIHRoZXNlIGZ1bmN0aW9ucyBvbiBkZXNrdG9wcyBzaW5jZSB0aGUgY2xvdWQgY2FuIGJlIG9wZXJhdGVkIG9uIGEgZGVuc2UgaGFyZHdhcmUgY2x1c3Rlci4gICAKKworRmluYWxseSwgd2l0aCBkZXZlbG9wbWVudCBjZW50cmFsaXplZCwgZGV2b3BzIGFuZCBkZXZlbG9wbWVudCBsZWFkZXJzLCBjYW4gYmV0dGVyIHN1cHBvcnQgdGhlIGRldmVsb3BtZW50IG9mIGEgcG9wdWxhdGlvbiBvZiBkZXZlbG9wZXJzIGJ5IGluY29ycG9yYXRpbmcgYmVzdCBwcmFjdGljZXMsIGJlaGF2aW9yYWwgYWNjZXNzIGNvbnRyb2xzLCBhbmQgbW9uaXRvcmluZyB0b29scyB0byBlbnN1cmUgSVAgY29tcGxpYW5jZSBhbmQgbWF4aW11bSBwcm9kdWN0aXZpdHkgb2YgaW5kaXZpZHVhbHMuICBJbWFnaW5lIGJlaW5nIGFibGUgdG8gZGlyZWN0IGFuIGV4dHJhIDIwR0Igb2YgUkFNIHRvIGEgZGV2ZWxvcGVyIHRoYXQgdXJnZW50bHkgbmVlZHMgaXQgZm9yIGNvbXBpbGF0aW9uLCBvciBjcmVhdGluZyBhIHNwZWNpYWwgc2V0IG9mIHNhbmQgYm94ZXMgdG8gc3VwcG9ydCB3aGl0ZSByb29tIGRldmVsb3BtZW50IG9mIHNlY3VyZSBJUCwgb3IgYWxsb3dpbmcgYW4gaW5zdHJ1Y3RvciB0byBjcmVhdGUgYSBwcm9ncmFtbWluZyBleGFtIGFjY2Vzc2libGUgdG8gaGlzIHN0dWRlbnRzIGZvciBleGFjdGx5IG9uZSBob3VyIHdpdGggY29udHJvbHMgdG8gZGV0ZWN0IGFueSBwbGFnaWFyaXNtIG9yIGNoZWF0aW5nLiAgV2l0aCBhIENEUCwgYWxsIG9mIHRoZXNlIHNjZW5hcmlvcyBhcmUgY29uZmlndXJhYmxlLCBzaW1wbHkuCisKK05ldCwgbmV0OiBGYXN0ZXIgZGV2ZWxvcG1lbnQuICBDaGVhcGVyIGRldmVsb3BtZW50LiAgRGV2ZWxvcG1lbnQgZG9uZSB3aXRoIGNvbXBsaWFuY2UgYW5kIHNlY3VyaXR5LgorCitPdXIgcm9hZG1hcCB0byBzdXBwb3J0IHRoaXMgdmlzaW9uIGluY2x1ZGVzOgorQWR2YW5jaW5nIGVhY2ggVExQIHByb2plY3QgdGhyb3VnaCB0aGVpciBub3JtYWwgcm9hZG1hcCBhbmQgZXZvbHV0aW9uIHByb2Nlc3Nlcy4KK1JlY3J1aXRpbmcgbmV3IHByb2plY3RzIHRoYXQgcHJvdmlkZSBjcml0aWNhbCBkZXZlbG9wZXIgc2VydmljZXMgaW4gdGhlIGNsb3VkIGludG8gdGhlIEVDRCBUTFAuCitBbGlnbmluZyBjb3JlIHBsdWctaW4sIGVkaXRvciwgYW5kIEFQSSAvIGludGVyZmFjZSBtb2RlbHMgYmV0d2VlbiB0aGUgcHJvamVjdHMuCitUaGVyZSB3aWxsIGJlIGNvbWJpbmVkIGVjb3N5c3RlbSwgZXZhbmdlbGlzbSwgYW5kIGJ1c2luZXNzIGRldmVsb3BtZW50IGVmZm9ydHMgdG8gYnJpbmcgbW9yZSBkZXZlbG9wZXJzLCBwcm9qZWN0cywgYW5kIHBsdWctaW5zIHRvIEVDRCBtb2RlbCBpbmNsdWRpbmcgc3BlY2lhbCBlZmZvcnRzIGFuZCBhdHRlbnRpb24gdG8gbWlncmF0aW5nIGV4aXN0aW5nIEVjbGlwc2UgcGx1Zy1pbnMuCitDb2RlbnZ5IHdpbGwgY3JlYXRlIGFuIGFkZGl0aW9uYWwgcHJvamVjdCB0aGF0IGZvY3VzZXMgb24gdGhlIGVudGVycHJpc2Ugc2NhbGUgZWxlbWVudHMgb2YgYSBFQ0QsIGFuZCBGbHV4IC8gT3Jpb24gLyBDaGUgd2lsbCB3b3JrIHRvIHN0YW5kYXJkaXplIGRlcGxveW1lbnQgb2YgZWFjaCBzeXN0ZW0gd2l0aGluIHRoZSBlbnRlcnByaXNlIGluZnJhc3RydWN0dXJlLgorQW4gZWZmb3J0IHRvIHN0dWR5IGhvdyBhbmFseXRpY3MsIGV2ZW50cywgYW5kIHRoZSBCSSBvZiBkZXZlbG9wbWVudCB3b3JrZmxvd3Mgd2lsbCBiZSBjcmVhdGVkLgorCis8aDI+V2h5IGlzIENvZGVudnkgZG9uYXRpbmcgdGhlaXIgY29yZSBJUD88L2gyPgorQ29kZW52eSBiZWxpZXZlcyBpbiBvcGVubmVzcywgdHJhbnNwYXJlbmN5LCBlY29zeXN0ZW0sIGFuZCBFY2xpcHNlLiAgVGhlIGNsb3VkIGRldmVsb3BtZW50IHByb2JsZW0gaXMgbWFzc2l2ZSBhbmQgY2Fubm90IGJlIHNvbHZlZCBpbmRpdmlkdWFsbHkuICBCeSB3b3JraW5nIHdpdGggdGhlIEVjbGlwc2UgZm91bmRhdGlvbiwgQ29kZW52eSBpcyBhYmxlIHRvIGNvbmNlbnRyYXRlIHRoZWlyIHJlc291cmNlcyB3aXRoIG90aGVycyB0aGF0IGhhdmUgYSBzaW1pbGFyIHZhbHVlIHN5c3RlbSBhbmQgdmlzaW9uLiAgCisKKzxoMj5XaGVuIHdpbGwgdGhlIENoZSBjb2RlIGJlIGF2YWlsYWJsZT8gRm9yIHdoaWNoIJNwYXJ0c5Qgb2YgdGhlIHBsYXRmb3JtPzwvaDI+CitUaGUgaW5pdGlhbCBDaGUgY29kZSBpcyBhdmFpbGFibGUgdW5kZXIgRVBMIGF0IGdpdGh1Yi5jb20vY29kZW52eS9zZGsuICBXZSBhcmUgd29ya2luZyB3aXRoaW4gdGhlIEVjbGlwc2UgcHJvY2VzcyB0byBnZXQgdGhyb3VnaCBJbmN1YmF0aW9uIG5vdy4KKworPGgyPldoYXQga2luZHMgb2YgcHJvZHVjdHMsIGFwcGxpY2F0aW9ucyBjYW4gd2UgZXhwZWN0IHRvIHNlZSBhcyBhIHJlc3VsdCBvZiB0aGlzIGNvbGxhYm9yYXRpb24/PC9oMj4KK1lvdSBjYW4gZXhwZWN0IHRvIHNlZSBuZXcgSURFcywgbmV3IHBsdWctaW5zLCBuZXcgZW50ZXJwcmlzZSB0ZWNobm9sb2dpZXMgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlc2Ugc3lzdGVtcyBhdCBzY2FsZSwgYW5kIHlvdSBjYW4gZXhwZWN0IHRvIHNlZSBpbnRlZ3JhdGlvbiBicmlkZ2VzIHRoYXQgYmluZCBFQ0QgaW50byBvdGhlciBjb3JlIGRldmVsb3BtZW50IHBsYXRmb3JtcyBsaWtlIEplbmtpbnMgYW5kIEppcmEuCisKKzxoMj5Ib3cgY2FuIEkgY29udHJpYnV0ZSB0byBhbmQgcGFydGljaXBhdGUgaW4gdGhlIENoZSBwcm9qZWN0PzwvaDI+CitHZXQgc3RhcnRlZCBieSBjbG9uaW5nIHRoZSBzb3VyY2UgYW5kIGdldHRpbmcgYWN0aXZlIGF0IEVjbGlwc2UuICBodHRwczovL2dpdGh1Yi5jb20vY29kZW52eS9zZGsKKworPC9kaXY+Cis8IS0tIC4vZW5kICAjbWlkY29sdW1uIC0tPgorCis8IS0tIFN0YXJ0IG9mIHRoZSByaWdodCBjb2x1bW4KKzxkaXYgaWQ9InJpZ2h0Y29sdW1uIj4KKyAgPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgorICAgIDxoMj5SZWxhdGVkIExpbmtzPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgdGFyZ2V0PSJfc2VsZiIgaHJlZj0iL2VjbGlwc2Uub3JnLWNvbW1vbi90aGVtZXMvc29sc3RpY2UvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2Rpdj4KKzwvZGl2PgorLS0+Cg==