Skip to content

Latest commit

 

History

History
1 lines (1 loc) · 14.3 KB

cl7oordtx001puknv1ao99dkp.md

File metadata and controls

1 lines (1 loc) · 14.3 KB

IyMgQmFzaWMgRnVuZGFtZW50YWxzIE9mICBMaW51eAoKIyMgMS4gSW50cm9kdWN0aW9uIG9mIGxpbnV4CgohW2U4N2U1MzU1N2EzZmViNzJkM2EwOTkzZmRiMTJmZGY1LmdpZl0oaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2NjIyOTg0NTIyODcvX3VqOUxTZGFMLmdpZiBhbGlnbj0ibGVmdCIpCgpMaW51eCBpcyBhIGNvbW11bml0eSBvZiBvcGVuLXNvdXJjZSBVbml4IGxpa2Ugb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBhcmUgYmFzZWQgb24gdGhlIExpbnV4IEtlcm5lbC4gSXQgd2FzIGluaXRpYWxseSByZWxlYXNlZCBieSBMaW51cyBUb3J2YWxkcyBvbiBTZXB0ZW1iZXIgMTcsIDE5OTEuIEl0IGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBhbmQgdGhlIHNvdXJjZSBjb2RlIGNhbiBiZSBtb2RpZmllZCBhbmQgZGlzdHJpYnV0ZWQgdG8gYW55b25lIGNvbW1lcmNpYWxseSBvciBub25jb21tZXJjaWFsbHkgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAKSW4gc2ltcGxlIHdvcmRzIGxpbnV4IGlzIGJhc2ljYWxseSBhIG9wZW4gc291cmNlIG9wZXJhdGluZyBzeXN0ZW0uIEluaXRpYWxseSwgTGludXggd2FzIGNyZWF0ZWQgZm9yIHBlcnNvbmFsIGNvbXB1dGVycyBhbmQgZ3JhZHVhbGx5IGl0IHdhcyB1c2VkIGluIG90aGVyIG1hY2hpbmVzIGxpa2Ugc2VydmVycywgbWFpbmZyYW1lIGNvbXB1dGVycywgc3VwZXJjb21wdXRlcnMsIGV0Yy4gTm93YWRheXMsIExpbnV4IGlzIGFsc28gdXNlZCBpbiBlbWJlZGRlZCBzeXN0ZW1zIGxpa2Ugcm91dGVycywgYXV0b21hdGlvbiBjb250cm9scywgdGVsZXZpc2lvbnMsIGRpZ2l0YWwgdmlkZW8gcmVjb3JkZXJzLCB2aWRlbyBnYW1lIGNvbnNvbGVzLCBzbWFydHdhdGNoZXMsIGV0Yy4gVGhlIGJpZ2dlc3Qgc3VjY2VzcyBvZiBMaW51eCBpcyBBbmRyb2lkKG9wZXJhdGluZyBzeXN0ZW0pIGl0IGlzIGJhc2VkIG9uIHRoZSBMaW51eCBrZXJuZWwgdGhhdCBpcyBydW5uaW5nIG9uIHNtYXJ0cGhvbmVzIGFuZCB0YWJsZXRzLiBEdWUgdG8gYW5kcm9pZCBMaW51eCBoYXMgdGhlIGxhcmdlc3QgaW5zdGFsbGVkIGJhc2Ugb2YgYWxsIGdlbmVyYWwtcHVycG9zZSBvcGVyYXRpbmcgc3lzdGVtcy4gTGludXggaXMgZ2VuZXJhbGx5IHBhY2thZ2VkIGluIGEgTGludXggZGlzdHJpYnV0aW9uLiBMaW51eCBpcyBhcm91bmQgdXMgc2luY2UgdGhlIG1pZC05MHMuIEl0IGNhbiBiZSB1c2VkIGZyb20gd3Jpc3R3YXRjaGVzIHRvIHN1cGVyY29tcHV0ZXJzLiBJdCBpcyBldmVyeXdoZXJlIGluIG91ciBwaG9uZXMsIGxhcHRvcHMsIFBDcywgY2FycyBhbmQgZXZlbiBpbiByZWZyaWdlcmF0b3JzLiBJdCBpcyB2ZXJ5IG11Y2ggZmFtb3VzIGFtb25nIGRldmVsb3BlcnMgYW5kIG5vcm1hbCBjb21wdXRlciB1c2Vycy4KCgojIyAyLiBXaGF0IGlzIGxpbnV4IGJhc2gKClRoZSBMaW51eCBCYXNoIGlzIGFsc28ga25vd24gYXMgJ0JvdXJuZS1hZ2FpbiBTaGVsbC4nIEl0IGlzIGEgY29tbWFuZCBsYW5ndWFnZSBpbnRlcnByZXRlciBmb3IgdGhlIExpbnV4IGJhc2VkIHN5c3RlbS4gSXQgaXMgYSByZXBsYWNlbWVudCBvZiBCb3VybmUgc2hlbGwgKHNoKS4gSXQgd2FzIGRldmVsb3BlZCB1bmRlciB0aGUgR05VIFByb2plY3QgYW5kIHdyaXR0ZW4gYnkgQnJpYW4gRm94LiBOb3dhZGF5cywgQmFzaCBpcyB0aGUgZGVmYXVsdCB1c2VyIHNoZWxsIG9mIG1vc3Qgb2YgdGhlIExpbnV4IGRpc3RyaWJ1dGlvbnMuCgohWzE2MTg4NTgxNjFfYmFzaC1tYXN0ZXJ5LXRoZS1jb21wbGV0ZS1ndWlkZS10by1iYXNoLXNoZWxsLXNjcmlwdGluZy5qcGddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMzAxNjk4NjY5LzA2R1pFWFp4aS5qcGcgYWxpZ249ImxlZnQiKQoKVGhlIExpbnV4L1VuaXggc2hlbGwgYWxsb3dzIHVzIHRvIGludGVyYWN0IHdpdGggdGhlIExpbnV4IHN5c3RlbSB0aHJvdWdoIHRoZSBjb21tYW5kcy4gSXQgbGV0IHVzIGludm9rZSBhbiBleGVjdXRhYmxlIGZpbGUgdG8gY3JlYXRlIGEgcnVubmluZyBwcm9jZXNzLiBNb3Jlb3ZlciwgaXQgYWxzbyBhbGxvd3MgdXMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgTGludXggZmlsZSBzeXN0ZW0uIEl0IGlzIGRlc2lnbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCB3ZSBjYW4gcGVyZm9ybSBhbGwgdGhlIExpbnV4IG9wZXJhdGlvbnMgdGhyb3VnaCBCYXNoLgoKVGhlIEJhc2ggaXMgYSBjb21tYW5kIGxhbmd1YWdlIGludGVycHJldGVyIGFzIHdlbGwgYXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZS4gSXQgc3VwcG9ydHMgdmFyaWFibGVzLCBmdW5jdGlvbnMsIGFuZCBmbG93IGNvbnRyb2wsIGxpa2Ugb3RoZXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBJdCBjYW4gYWxzbyByZWFkIGFuZCBleGVjdXRlIHRoZSBjb21tYW5kcyBmcm9tIGEgZmlsZSwgd2hpY2ggaXMgY2FsbGVkIGEgc2hlbGwgc2NyaXB0LgoKIyMgMy4gV2hhdCBpcyBsaW51eCB0ZXJtaW5hbAoKTGludXggT1MsIHdoZW4gd2UgY2xpY2sgdG8gb3BlbiB0aGUgaWNvbiBoYXZpbmcgdGhlIG5hbWUg4oCcVGVybWluYWzigJ0sIGEgd2luZG93IGlzIG9wZW5lZCwgc28gaW4gc2ltcGxlIHRlcm1zIHRoYXQgcmVjdGFuZ3VsYXIgZnJhbWUgb3Igd2luZG93IGlzIGNhbGxlZCB0ZXJtaW5hbC4gV2l0aCB0aGUgaW52ZW50aW9uIG9mIG1vZGVybiBjb21wdXRlcnMsIHdlIGhhdmUgdGhpcyBhcHBsaWNhdGlvbiBuYW1lZCDigJxUZXJtaW5hbOKAnSwgd2hpY2ggd2UgY2FuIHNpbXBseSBvcGVuIHdpdGggYSBjbGljayBidXQgZHVyaW5nIHRoZSA4MHMsIGl0IHVzZWQgdG8gYmUga25vd24gYXMg4oCcVGVybWluYWwgRW11bGF0b3Jz4oCdIHdoaWNoIHdhcyBub3QgYSBzb2Z0d2FyZSBwcm9ncmFtIGJ1dCBoYXJkd2FyZSwgYSBub3JtYWwgSW5wdXQtT3V0cHV0IERldmljZSBjb25zaXN0aW5nIG9mIGEga2V5Ym9hcmQgYW5kIGEgbW9uaXRvci4gTm93IHRoZSBjb25mdXNpb24gYXJpc2VzIHdlbGwgdGhpcyBpcyB3aGF0IGEgY29tcHV0ZXIgaXMhISBCdXQgTm8sIHRoZSBwdXJwb3NlIG9mIGEgdGVybWluYWwgaXMgbm90IHRvIHByb2Nlc3MgaW5mb3JtYXRpb24gKGxpa2UgYSB0eXBpY2FsIGNvbXB1dGVyKSBidXQgdG8gc2VuZCBjb21tYW5kcyB0byBhbm90aGVyIHN5c3RlbS4gVGhlIHRlcm1pbmFsIGlzIGEgcHJvZ3JhbSB0aGF0IHByb3ZpZGVzIHRoZSB1c2VyIHdpdGggYSBzaW1wbGUgY29tbWFuZC1saW5lIGludGVyZmFjZSBhbmQgcGVyZm9ybXMgdGhlIGZvbGxvd2luZyAyIHRhc2tzOgoKVGFrZXMgaW5wdXQgZnJvbSB0aGUgdXNlciBpbiB0aGUgZm9ybSBvZiBjb21tYW5kcwpEaXNwbGF5cyBvdXRwdXQgb24gdGhlIHNjcmVlbgoKIVtTY3JlZW5zaG90IGZyb20gMjAyMi0wOC0yMiAwOF80OV8xNy5wbmddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMzAxODQ3MzczL2gwZDlnMV84Wi5wbmcgYWxpZ249ImxlZnQiKQoKIyMgNC4gU3RydWN0dXJlIG9mIExpbnV4IGthcm5lbAoKIVthcmNoaXRlY3R1cmUtb2YtbGludXgucG5nXShodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY2MjMwMTQ1OTExNC91d1Q4VnNsUEgucG5nIGFsaWduPSJsZWZ0IikKCi0gKipLZXJuZWwqKjogS2VybmVsIGlzIHRoZSBjb3JlIG9mIHRoZSBMaW51eCBiYXNlZCBvcGVyYXRpbmcgc3lzdGVtIGJhc2ljYWxseSBrYXJuZWwgaXMgdGhlIGhlYXJ0IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtLiBJdCB2aXJ0dWFsaXplcyB0aGUgY29tbW9uIGhhcmR3YXJlIHJlc291cmNlcyBvZiB0aGUgY29tcHV0ZXIgdG8gcHJvdmlkZSBlYWNoIHByb2Nlc3Mgd2l0aCBpdHMgdmlydHVhbCByZXNvdXJjZXMuIERpZmZlcmVudCB0eXBlcyBvZiB0aGUga2VybmVsIGFyZTogCi0gTW9ub2xpdGhpYyBLZXJuZWwKLSBIeWJyaWQga2VybmVscwotIEV4byBrZXJuZWxzCi0gTWljcm8ga2VybmVscwoKLSAqKlN5c3RlbSBMaWJyYXJ5Kio6IFRoaXMgSXMgdGhlIHNwZWNpYWwgdHlwZXMgb2YgZnVuY3Rpb25zIHRoYXQgYXJlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtLgoKLSAqKlNoZWxsKio6IEl0IGlzIGFuIGludGVyZmFjZSB0byB0aGUga2VybmVsIHdoaWNoIGhpZGVzIHRoZSBjb21wbGV4aXR5IG9mIHRoZSBrZXJuZWzigJlzIGZ1bmN0aW9ucyBmcm9tIHRoZSB1c2Vycy4gSXQgdGFrZXMgY29tbWFuZHMgZnJvbSB0aGUgdXNlciBhbmQgZXhlY3V0ZXMgdGhlIGtlcm5lbOKAmXMgZnVuY3Rpb25zLgoKLSAqKkhhcmR3YXJlIExheWVyKio6IFRoaXMgbGF5ZXIgY29uc2lzdHMgYWxsIHBlcmlwaGVyYWwgZGV2aWNlcyBsaWtlIFJBTS8gSERELyBDUFUgZXRjLgoKLSAqKlN5c3RlbSBVdGlsaXR5Kio6IEl0IHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXRpZXMgb2YgYW4gb3BlcmF0aW5nIHN5c3RlbSB0byB0aGUgdXNlci4KCgojIyA1LiBXaHkgbGludXggdXNlIGZvciBzZWN1cml0eSBhZG1pbmlzdHJhdGlvbiBwdXJwb3NlIAoKIVs3Mjg0MDYtNjM2NjM5ODA5MzQ4NzA5NjU1LTE2eDkuanBnXShodHRwczovL2Nkbi5oYXNobm9kZS5jb20vcmVzL2hhc2hub2RlL2ltYWdlL3VwbG9hZC92MTY2MjI5OTEyOTE5Ni84X2JXamg2eGouanBnIGFsaWduPSJsZWZ0IikKCkluIGNhc2Ugb2Ygd2luZG93cyBvciBvdGhlciBvcGVyYXRpbmcgc3lzdGVtIHVzZXIgY2FuIGVhc2lseSBhY2Nlc3MgYWxsIHRoZSBzdG9yYWdlIGZpbGVzIGFuZCBpbmZvcm1hdGlvbiBidXQgaW4gY2FzZSBvZiBsaW51eCBpdCBpcyBjYW4ncyBwb3NzaWJsZSB0byBhY2Nlc3MgZmlsZXMgb3IgaW5mb3JtYXRpb24gd2l0aG91dCBwZXJtaXNzaW9uLiBBZG1pbiBjYW4gZWFzaWx5IHJlc3RyaWN0IGFueSBmaWxlIGZvciBleGFtcGxlIHJlYWQgcGVybWlzc2lvbiAsIHdyaXRlIHBlcm1pc3Npb24gJiBleGVjdXRlIHBlcm1pc3Npb24gc28gdGhhdCBhbnlvbmUgY2FuJ3QgYWNjZXNzIGZpbGUgd2l0aG91dCBiZWluZyBhIHBhc3N3b3JkLiBJdCBwcm92aWRlIGhpZ2ggc2VjdXJpdHkgdG8gYWxsIHRoZSBzeXN0ZW0gaW4gZWFjaCBsZXZlbCB2dWxuZXJhYmlsaXR5LiAKCiMjIDYuIFdoYXQgaXMgbGludXggZGlzdHJpYnV0aW9uIAoKIVswMDAwMDAwMDAwMC5QTkddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMzc2NjgzNDc4L3hmdEdadTVJeS5QTkcgYWxpZ249ImxlZnQiKQoKVGhlcmUgYXJlIG9uIGFuIGF2ZXJhZ2Ugc2l4IGh1bmRyZWQgTGludXggZGlzdHJpYnV0b3JzIHByb3ZpZGluZyBkaWZmZXJlbnQgZmVhdHVyZXMuIEhlcmUsIHdlJ2xsIGRpc2N1c3MgYWJvdXQgc29tZSBvZiB0aGUgcG9wdWxhciBMaW51eCBkaXN0cmlidXRpb24gIHRvZGF5LiBCdXQgTGludXggaXMgZGlmZmVyZW50IGZyb20gdGhlbS4gRGlmZmVyZW50IHBhcnRzIG9mIExpbnV4IGFyZSBkZXZlbG9wZWQgYnkgZGlmZmVyZW50IG9yZ2FuaXphdGlvbnMuCgpEaWZmZXJlbnQgcGFydHMgaW5jbHVkZSBrZXJuZWwsIHNoZWxsIHV0aWxpdGllcywgWCBzZXJ2ZXIsIHN5c3RlbSBlbnZpcm9ubWVudCwgZ3JhcGhpY2FsIHByb2dyYW1zLCBldGMuIElmIHlvdSB3YW50IHlvdSBjYW4gYWNjZXNzIHRoZSBjb2RlcyBvZiBhbGwgdGhlc2UgcGFydHMgYW5kIGFzc2VtYmxlIHRoZW0geW91cnNlbGYuIEJ1dCBpdHMgbm90IGFuIGVhc3kgdGFzayBzZWVraW5nIGEgbG90IG9mIHRpbWUgYW5kIGFsbCB0aGUgcGFydHMgaGFzIHRvIGJlIGFzc2VtYmxlZCBjb3JyZWN0bHkgaW4gb3JkZXIgdG8gd29yayBwcm9wZXJseS4KCkZyb20gaGVyZSBvbiBkaXN0cmlidXRpb24gY29tZXMgaW50byB0aGUgcGljdHVyZS4gVGhleSBhc3NlbWJsZSBhbGwgdGhlc2UgcGFydHMgZm9yIHVzIGFuZCBnaXZlIHVzIGEgY29tcGlsZWQgb3BlcmF0aW5nIHN5c3RlbSBvZiBMaW51eCB0byBpbnN0YWxsIGFuZCB1c2UuCgotICAqKlVidW50dSoqOgoKIVt1YnVudHUtbG9nb18wLmpwZ10oaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2NjIzNzc0MDA3MzIvSmpWd1FWSlp4LmpwZyBhbGlnbj0ibGVmdCIpCgpJdCBjYW1lIGludG8gZXhpc3RlbmNlIGluIDIwMDQgYnkgQ2Fub25pY2FsIGFuZCBxdWlja2x5IGJlY2FtZSBwb3B1bGFyLiBDYW5vbmljYWwgd2FudHMgVWJ1bnR1IHRvIGJlIHVzZWQgYXMgZWFzeSBncmFwaGljYWwgTGludXggZGVza3RvcCB3aXRob3V0IHRoZSB1c2Ugb2YgY29tbWFuZCBsaW5lLiBJdCBpcyB0aGUgbW9zdCB3ZWxsIGtub3duIExpbnV4IGRpc3RyaWJ1dGlvbi4gVWJ1bnR1IGlzIGEgbmV4dCB2ZXJzaW9uIG9mIERlYmlhbiBhbmQgZWFzeSB0byB1c2UgZm9yIG5ld2JpZXMuIEl0IGNvbWVzIHdpdGggYSBsb3RzIG9mIHByZS1pbnN0YWxsZWQgYXBwcyBhbmQgZWFzeSB0byB1c2UgcmVwb3NpdG9yaWVzIGxpYnJhcmllcy4KCkVhcmxpZXIsIFVidW50dSB1c2VzIEdOT01FMiBkZXNrdG9wIGVudmlyb25tZW50IGJ1dCBub3cgaXQgaGFzIGRldmVsb3BlZCBpdHMgb3duIHVuaXR5IGRlc2t0b3AgZW52aXJvbm1lbnQuIEl0IHJlbGVhc2VzIGV2ZXJ5IHNpeCBtb250aHMgYW5kIGN1cnJlbnRseSB3b3JraW5nIHRvIGV4cGFuZCB0byBydW4gb24gdGFibGV0cyBhbmQgc21hcnRwaG9uZXMuCgotICAqKkxpbnV4IE1pbnQqKjoKCiFbTGludXhfTWludF9sb2dvX3dpdGhvdXRfd29yZG1hcmsuc3ZnLnBuZ10oaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2NjIzNzc0MjU5NjIvY2J6clpjRVpjLnBuZyBhbGlnbj0ibGVmdCIpCgpNaW50IGlzIGJhc2VkIG9uIFVidW50dSBhbmQgdXNlcyBpdHMgcmVwb3NpdG9yeSBzb2Z0d2FyZSBzbyBzb21lIHBhY2thZ2VzIGFyZSBjb21tb24gaW4gYm90aC4KCkVhcmxpZXIgaXQgd2FzIGFuIGFsdGVybmF0aXZlIG9mIFVidW50dSBiZWNhdXNlIG1lZGlhIGNvZGVjcyBhbmQgcHJvcHJpZXRhcnkgc29mdHdhcmUgYXJlIGluY2x1ZGVkIGluIG1pbnQgYnV0IHdhcyBhYnNlbnQgaW4gVWJ1bnR1LiBCdXQgbm93IGl0IGhhcyBpdHMgb3duIHBvcHVsYXJpdHkgYW5kIGl0IHVzZXMgY2lubmFtb24gYW5kIG1hdGUgZGVza3RvcCBpbnN0ZWFkIG9mIFVidW50dSdzIHVuaXR5IGRlc2t0b3AgZW52aXJvbm1lbnQuCgotICAqKkRlYmlhbioqOgoKIVtEZWJpYW4tT3BlbkxvZ28uc3ZnLnBuZ10oaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2NjIzNzc0NDA4MzMvUjVmQlJ2QTcxLnBuZyBhbGlnbj0ibGVmdCIpCgpEZWJpYW4gaGFzIGl0cyBleGlzdGVuY2Ugc2luY2UgMTk5MyBhbmQgcmVsZWFzZXMgaXRzIHZlcnNpb25zIG11Y2ggc2xvd2x5IHRoZW4gVWJ1bnR1IGFuZCBtaW50LgoKVGhpcyBtYWtlcyBpdCBvbmUgb2YgdGhlIG1vc3Qgc3RhYmxlIExpbnV4IGRpc3RyaWJ1dG9yLgoKVWJ1bnR1IGlzIGJhc2VkIG9uIERlYmlhbiBhbmQgd2FzIGZvdW5kZWQgdG8gaW1wcm92ZSB0aGUgY29yZSBiaXRzIG9mIERlYmlhbiBtb3JlIHF1aWNrbHkgYW5kIG1ha2UgaXQgbW9yZSB1c2VyIGZyaWVuZGx5LiBFdmVyeSByZWxlYXNlIG5hbWUgb2YgRGViaWFuIGlzIGJhc2VkIG9uIHRoZSBuYW1lIG9mIHRoZSBtb3ZpZSBUb3kgU3RvcnkuCgoKLSAgKipSZWQgSGF0IEVudGVycHJpc2UgLyBDZW50T1MqKjoKCiFbMDAwMDAwMDAwMDAwMDAwMDAwMC5QTkddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMzc3NDc0Njg3LzFEbUlnZjhyMC5QTkcgYWxpZ249ImxlZnQiKQoKUmVkIGhhdCBpcyBhIGNvbW1lcmNpYWwgTGludXggZGlzdHJpYnV0b3IuIFRoZXJlIHByb2R1Y3RzIGFyZSByZWQgaGF0IGVudGVycHJpc2UgTGludXggKFJIRUwpIGFuZCBGZWRvcmEgd2hpY2ggYXJlIGZyZWVseSBhdmFpbGFibGUuIFJIRUwgaXMgd2VsbCB0ZXN0ZWQgYmVmb3JlIHJlbGVhc2UgYW5kIHN1cHBvcnRlZCB0aWxsIHNldmVuIHllYXJzIGFmdGVyIHRoZSByZWxlYXNlLCB3aGVyZWFzLCBmZWRvcmEgcHJvdmlkZXMgZmFzdGVyIHVwZGF0ZSBhbmQgd2l0aG91dCBhbnkgc3VwcG9ydC4KClJlZCBoYXQgdXNlcyB0cmFkZW1hcmsgbGF3IHRvIHByZXZlbnQgdGhlaXIgc29mdHdhcmUgZnJvbSBiZWluZyByZWRpc3RyaWJ1dGVkLiBDZW50T1MgaXMgYSBjb21tdW5pdHkgcHJvamVjdCB0aGF0IHVzZXMgcmVkIGhhdCBlbnRlcnByaXNlIExpbnV4IGNvZGUgYnV0IHJlbW92ZXMgYWxsIGl0cyB0cmFkZW1hcmsgYW5kIG1ha2UgaXQgZnJlZWx5IGF2YWlsYWJsZS4gSW4gb3RoZXIgd29yZHMsIGl0IGlzIGEgZnJlZSB2ZXJzaW9uIG9mIFJIRUwgYW5kIHByb3ZpZGUgYSBzdGFibGUgcGxhdGZvcm0gZm9yIGEgbG9uZyB0aW1lLgoKLSAgKipGZWRvcmEqKjoKCiFbRmVkb3JhX2ljb25fKDIwMjEpLnN2Zy5wbmddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMzc3NDkzMzIzL3YxQlNhUE1oWi5wbmcgYWxpZ249ImxlZnQiKQoKSXQgaXMgYSBwcm9qZWN0IHRoYXQgbWFpbmx5IGZvY3VzZXMgb24gZnJlZSBzb2Z0d2FyZSBhbmQgcHJvdmlkZXMgbGF0ZXN0IHZlcnNpb24gb2Ygc29mdHdhcmUuIEl0IGRvZXNuJ3QgbWFrZSBpdHMgb3duIGRlc2t0b3AgZW52aXJvbm1lbnQgYnV0IHVzZWQgJ3Vwc3RyZWFtJyBzb2Z0d2FyZS4gQnkgZGVmYXVsdCBpdCBoYXMgR05PTUUzIGRlc2t0b3AgZW52aXJvbm1lbnQuIEl0IGlzIGxlc3Mgc3RhYmxlIGJ1dCBwcm92aWRlcyB0aGUgbGF0ZXN0IHN0dWZmLgoKCgojIyA3LiBJcyBMaW51eCBvcGVuIHNvdXJjZSDwn5mECgoKIVtsaW51eC5wbmddKGh0dHBzOi8vY2RuLmhhc2hub2RlLmNvbS9yZXMvaGFzaG5vZGUvaW1hZ2UvdXBsb2FkL3YxNjYyMjk4NjI2OTQ0L08tazBVNGFJdi5wbmcgYWxpZ249ImxlZnQiKQoKTGludXggaXMgYSBmcmVlLCBvcGVuIHNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtLCByZWxlYXNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkuIEFueW9uZSBjYW4gcnVuLCBzdHVkeSwgbW9kaWZ5LCBhbmQgcmVkaXN0cmlidXRlIHRoZSBzb3VyY2UgY29kZSwgb3IgZXZlbiBzZWxsIGNvcGllcyBvZiB0aGVpciBtb2RpZmllZCBjb2RlLCBhcyBsb25nIGFzIHRoZXkgZG8gc28gdW5kZXIgdGhlIHNhbWUgbGljZW5zZS4KCkxpbnV4IGhhcyBiZWNvbWUgdGhlIGxhcmdlc3Qgb3BlbiBzb3VyY2VzIHNvZnR3YXJlIHByb2plY3QgaW4gdGhlIHdvcmxkLiBQcm9mZXNzaW9uYWwgYW5kIGhvYmJ5aXN0IHByb2dyYW1tZXJzIGFuZCBkZXZlbG9wZXJzIGZyb20gYXJvdW5kIHRoZSB3b3JsZCBjb250cmlidXRlIHRvIHRoZSBMaW51eCBrZXJuZWwsIGFkZGluZyBmZWF0dXJlcywgZmluZGluZyBhbmQgZml4aW5nIGJ1Z3MgYW5kIHNlY3VyaXR5IGZsYXdzLCBsaXZlIHBhdGNoaW5nLCBhbmQgcHJvdmlkaW5nIG5ldyBpZGVhc+KAlGFsbCB3aGlsZSBzaGFyaW5nIHRoZWlyIGNvbnRyaWJ1dGlvbnMgYmFjayB0byB0aGUgY29tbXVuaXR5LgoKIyMgOC4gQWR2YW50YWdlcyBvZiB1c2luZyBsaW51eCBPUwoKLSBUaGUgc29mdHdhcmUgdXBkYXRlcyBpbiBMaW51eCBhcmUgZWFzeSBhbmQgZnJlcXVlbnQuCgotIFZhcmlvdXMgTGludXggZGlzdHJpYnV0aW9ucyBhcmUgYXZhaWxhYmxlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhlbSBhY2NvcmRpbmcgdG8geW91ciByZXF1aXJlbWVudHMgb3IgYWNjb3JkaW5nIHRvIHlvdXIgdGFzdGUuCgotIExpbnV4IGlzIGZyZWVseSBhdmFpbGFibGUgdG8gdXNlIG9uIHRoZSBpbnRlcm5ldC4KCi0gSXQgaGFzIGxhcmdlIGNvbW11bml0eSBzdXBwb3J0LgoKLSBJdCBwcm92aWRlcyBoaWdoIHN0YWJpbGl0eS4gSXQgcmFyZWx5IHNsb3dzIGRvd24gb3IgZnJlZXplcyBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byByZWJvb3QgaXQgYWZ0ZXIgYSBzaG9ydCB0aW1lLgoKLSBJdCBtYWludGFpbiB0aGUgcHJpdmFjeSBvZiB0aGUgdXNlci4KCi0gVGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBMaW51eCBzeXN0ZW0gaXMgbXVjaCBoaWdoZXIgdGhhbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcy4gSXQgYWxsb3dzIGEgbGFyZ2UgbnVtYmVyIG9mIHBlb3BsZSB0byB3b3JrIGF0IHRoZSBzYW1lIHRpbWUgYW5kIGl0IGhhbmRsZXMgdGhlbSBlZmZpY2llbnRseS4KCi0gSXQgaXMgbmV0d29yayBmcmllbmRseS4KCgojIyAgOS4gUmVmZXJlbmNlcwoK8J+aqSBodHRwczovL3lvdXR1LmJlL2l3b2xQZjZrTi1rCgrwn5qpIGh0dHBzOi8veW91dHUuYmUvN3FkNXNxYXpEN2sKCvCfmqkgaHR0cHM6Ly9rdWJlc2ltcGxpZnkuY29tL2Vzc2VudGlhbC1saW51eC1jb21tYW5kcy1mb3ItZGV2b3BzCgrwn5qpIGh0dHBzOi8va3ViZXNpbXBsaWZ5LmNvbS9saW51eC1ib290LXByb2Nlc3Mtc2ltcGxpZmllZAoK8J+aqSBodHRwczovL2Jsb2cuY29tbWNsYXNzcm9vbS5vcmcvYmFzaWMtbGludXgtY29tbWFuZHMtcGFydC0xCgrwn5qpIGh0dHBzOi8vbWFuaW5la2thbGFwdWRpLmNvbS9wZXJtaXNzaW9ucy1pbi1saW51eAoKVGhhdCdzIGFsbCBmb3IgdGhpcyBibG9nLCBJIGhvcGUgeW91IHdpbGwgbGVhcm4gc29tZXRoaW5nIG5ldy4gQW5kIGZlZWwgZnJlZSB0byBzaGFyZSB5b3VyIHRob3VnaHRzIGFuZCBmZWVkYmFjaywgVGhhbmtzIGZvciByZWFkaW5nLgoKRmVlbCBmcmVlIHRvIHJlYWNoIG91dCBtZSDwn5GACgpbVHdpdHRlcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9BRElUWUE5MDU0NjE3MCkg8J+WsQoKW0xpbmtlZEluXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vYWRpdHlhLWRhcy03YjIyNzYyMDIpIPCflrEKCltHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9BRElUWUFEQVMxOTk5KSDwn5ax