5.5 KiB
IyBQcmVzZW50YXRpb24gSWRlYXMgU2NyYXRjaHBhZAoKUmF3IGlkZWFzIGFuZCBzY2VuYXJpb3MgZm9yIGZ1dHVyZSBBSSBwcmVzZW50YXRpb25zLiBDYXB0dXJlIG5vdywgcmVmaW5lIGxhdGVyLgoKLS0tCgojIyBQcmVzZW50YXRpb24gIzE6IE1DUCBpbiBQcmFjdGljZSAoT3BlblNoaWZ0L0dpdE9wcykKCioqQXVkaWVuY2U6KiogSW50ZXJuYWwgQXh3YXkgdGVhbSAoc21hbGwsIHJlcG9ydHMgdG8gQ29uYW4pCioqVG9uZToqKiBTZXJpb3VzIGNvbnRlbnQsIFNpbXBzb25zIGh1bW9yLCByZWxhdGFibGUgZnJ1c3RyYXRpb24g4oaSIHBheW9mZiBhcmMKCiMjIyBDb3JlIFRoZXNpcwpUaGUgdmFsdWUgb2YgTUNQIGlzbid0ICJBSSBjYW4gcnVuIGt1YmVjdGwiIOKAlCBpdCdzICoqZmxpcHBpbmcgdGhlIGRpc2NvdmVyeSBsb29wKiouCgotICoqV2l0aG91dCBNQ1A6KiogSHVtYW4gd29ya3MgKmZvciogdGhlIEFJIChjb3B5LXBhc3RlIGVycm9ycywgcnVuIGNvbW1hbmRzLCBwcm92aWRlIGNvbnRleHQsIGJlIHRoZSBtaWRkbGV3YXJlKQotICoqV2l0aCBNQ1A6KiogQUkgd29ya3MgKmZvciBhbmQgd2l0aCogdGhlIGh1bWFuCgojIyMgTmFycmF0aXZlIEFyYwoKMS4gKipXaGF0IGlzIE1DUD8qKiDigJQgT3BlbiBzdGFuZGFyZCwgQW50aHJvcGljIDIwMjQsIGdpdmVzIHRvb2xzIHRvIEFJCjIuICoqV2h5IE1DUD8gKFdpdGhvdXQpKiog4oCUIEdyYW5kcGEgU2ltcHNvbiB3YWxrcyBpbiwgc2VlcyBHUFQsIHdhbGtzIG91dAogICAtICpQaXRjaDoqIENvbXBsZXggcHJvYmxlbXMgd2l0aG91dCB0b29sLWJlYXJpbmcgQUkgPSBmcnVzdHJhdGluZywgdGltZS1jb25zdW1pbmcsIHVwc2lkZS1kb3duLiBQZW9wbGUgImJvdW5jZSBvZmYiIEFJIGZvciByZWFsIHdvcmsuCjMuICoqV2h5IE1DUD8gKFdpdGgpKiog4oCUIFNldHVwIGZvciB0aGUgcGF5b2ZmCjQuICoqVG9vbHMgZm9yIHRoZSBkZW1vKiog4oCUIG9wZW5zaGlmdC1tY3AsIGdpdGVhLW1jcCwgYXJnb2NkLW1jcAo1LiAqKlByb21wdCBFbmdpbmVlcmluZyoqIOKAlCAiSW50ZW50IHZzLiBJbnN0cnVjdGlvbiIgLyAiQW1iaWd1aXR5IGlzIHRoZSBlbmVteSBvZiBhdXRvbWF0aW9uLiBJZiB5b3UgZG9uJ3QgZGVmaW5lICdzYWZlJ+KApiB0aGUgQUkgd2lsbC4iCjYuICoqREVNTyoqIOKAlCBUaHJlZSBzY2VuYXJpb3MsIHByb2dyZXNzaXZlbHkgaW1wcmVzc2l2ZToKICAgLSAqKlNjZW5hcmlvIDE6KiogIlJ1biBhIGhlYWx0aGNoZWNrIG9mIG15IGNsdXN0ZXIiCiAgICAgLSBBSSBleGFtaW5lcyBtdWx0aXBsZSByZXNvdXJjZXMKICAgICAtIEtleTogcHJvZHVjZXMgKipJTlNJR0hUKiosIG5vdCBqdXN0IGRyeSBpbmZvcm1hdGlvbgogICAtICoqU2NlbmFyaW8gMjoqKiAiSXMgbXkgTkFTIHNsb3dlciB0aGFuIGl0IHNob3VsZCBiZT8iCiAgICAgLSBBSSBsYXVuY2hlcyBlcGhlbWVyYWwgdGVzdCBwb2QgKHBlcm1pdHRlZCB2aWEgc3lzdGVtIHByb21wdCkKICAgICAtIFJlYXNvbnMgYWdhaW5zdCBoYXJkd2FyZSBleHBlY3RhdGlvbnMgKDItYmF5IDU0MDBSUE0sIDFHYiBuZXR3b3JrKQogICAtICoqU2NlbmFyaW8gMzoqKiAiTG9jayBkb3duIHNlY3VyaXR5IGluIHRoaXMgbmFtZXNwYWNlIgogICAgIC0gQUkgaW52ZXN0aWdhdGVzIGN1cnJlbnQgcG9zdHVyZQogICAgIC0gUGxhbnMgcGF0aCB0byBwcml2aWxlZ2VkLXYyCjcuICoqU3VtbWFyeSoqIOKAlCAqKHRvIGJlIGRyYWZ0ZWQpKgogICAtIExhbmQgdGhlIGxvb3AtZmxpcCBpbnNpZ2h0CiAgIC0gIldoYXQgeW91IGRpZG4ndCBzZWUiIOKAlCBhbGwgdGhlIGNvbW1hbmRzLCBlcnJvcnMsIGl0ZXJhdGlvbnMgaGFuZGxlZCBzaWxlbnRseQo4LiAqKkNsb3NlcioqIOKAlCBIb21lciBzcGlubmluZyBpbiBjaGFpciAoY2FsbGJhY2spCiAgIC0gIlRha2luZyB1cyBvdXQgb2YgdGhlIGRpc2NvdmVyeSBsb29wIGxlYXZlcyB1cyBmcmVlIHRvIGJlIHByb2R1Y3RpdmUgZWxzZXdoZXJlIgoKIyMjIERlbW8gVGVjaG5pcXVlCkR1cmluZyBkZW1vOiAqKmFjdHVhbGx5IGRvIG90aGVyIHdvcmsqKiB3aGlsZSBBSSBydW5zLiBNYWtlcyB0aGUgImZyZWVzIHlvdSB1cCIgcG9pbnQgY29uY3JldGUg4oCUIGF1ZGllbmNlIHdhdGNoZXMgQUkgd29yaywgd2F0Y2hlcyBwcmVzZW50ZXIgd29yaywgcmVhbGl6ZXMgbmVpdGhlciBuZWVkZWQgdGhlIG90aGVyLgoKIyMjIEtleSBNb21lbnRzCi0gIkhvbHkgc2hpdCwgaXQganVzdCBmaWd1cmVkIGl0IG91dCIg4oCUIGlmIHByZXNlbnRlciBoYWQgdGhlc2UgbW9tZW50cyBidWlsZGluZyB0aGUgZGVtbywgYXVkaWVuY2Ugd2lsbCB0b28KLSBUcmFuc2l0aW9uIGZyb20gInRlY2ggZGVtbyIgdG8gIkkgd2FudCB0aGlzIgoKLS0tCgojIyBQcmVzZW50YXRpb24gIzI6IElkZWFzIChUQkQpCgoqKkNvbnRleHQ6KiogQXh3YXkgaGVyaXRhZ2Ug4oCUIFNvcHJhIEdyb3VwIOKGkiBTb3ByYSBTdGVyaWEuIEVudGVycHJpc2Ugc29mdHdhcmUsIEFQSSBtYW5hZ2VtZW50LCBnb3Zlcm5hbmNlLiBBdWRpZW5jZSBjYXJlcyBhYm91dCBzZWN1cml0eSwgY29tcGxpYW5jZSwgImRvbid0IGxldCB0aGUgQUkgcm0gLXJmLiIKCiMjIyBPcHRpb24gQTogU2VjdXJpdHkgLyBBSSBHYXRld2F5Ci0gVGFrZSB0aGUgc2VjdXJpdHkgbGluZSBmdXJ0aGVyIHRoYW4gc3lzdGVtIHByb21wdHMKLSBTaG93IGhvdyBhbiAqKkFJIEdhdGV3YXkqKiBzb2x2ZXMgcmVtYWluaW5nIGNvbmNlcm5zOgogIC0gUmF0ZSBsaW1pdGluZwogIC0gQWN0aW9uIGFsbG93bGlzdHMKICAtIEF1ZGl0IHRyYWlscwogIC0gUG9saWN5IGVuZm9yY2VtZW50Ci0gTmFycmF0aXZlOiAiWW91ciBlbnRodXNpYXN0aWMgQUkgY29sbGVhZ3VlIG5lZWRzIGd1YXJkcmFpbHMgaW4gZW50ZXJwcmlzZSIKCiMjIyBPcHRpb24gQjogSHlwZXItQWdlbnRpYyBGaXJzdCwgVGhlbiBHb3Zlcm5hbmNlCi0gR28gZnVsbCBhZ2VudGljIOKAlCBzaG93IHRoZSBwb3dlciAoYnJvd3NlciBjb250cm9sLCBjcm9zcy1wbGF0Zm9ybSBub2RlcywgY29tcG91bmQgdG9vbCB1c2UpCi0gKlRoZW4qIHBpdm90OiAiQW5kIHRoaXMgaXMgaG93IHlvdSBrZWVwIHlvdXIgZW50aHVzaWFzdGljIGNvbGxlYWd1ZSBmcm9tIGRvaW5nIHNvbWV0aGluZyB5b3UgZGlkbid0IHdhbnQiCi0gQUkgR2F0ZXdheSBhcyB0aGUgYW5zd2VyIHRvIHRoZSAid2FpdCwgYnV0IHdoYXQgaWYuLi4iIGNvbmNlcm5zIHRoZSBkZW1vIGp1c3QgcmFpc2VkCgojIyMgUG90ZW50aWFsIEJlYXRzCi0gU2hvdyB0aGUgQXBwbGUgTm90ZXMvUmVtaW5kZXJzIGNyb3NzLXBsYXRmb3JtIGRlbW8gKGNvbnRhaW5lciDihpIgTWFjIG5vZGUg4oaSIEFwcGxlU2NyaXB0KQotIEJyb3dzZXIgYXV0b21hdGlvbgotIE11bHRpLXN0ZXAgcmVhc29uaW5nIHdpdGggcmVhbCBjb25zZXF1ZW5jZXMKLSBUaGVuOiBnb3Zlcm5hbmNlIGxheWVyLCBhdWRpdCwgcG9saWN5LCBlbnRlcnByaXNlIGNvbnRyb2xzCgotLS0KCiMjIExvb3NlIElkZWFzIChDYXB0dXJlIGFzIHRoZXkgY29tZSkKCiMjIyBDcm9zcy1QbGF0Zm9ybSBBdXRvbWF0aW9uIERlbW8gKEFwcGxlIE5vdGVzL1JlbWluZGVycykKKipBbHJlYWR5IGRvY3VtZW50ZWQgYWJvdmUg4oCUIHVzYWJsZSBmb3IgUHJlc2VudGF0aW9uICMyICJoeXBlci1hZ2VudGljIiBzZWN0aW9uKioKCi0gQUkgaW4gc2VjdXJlIGNvbnRhaW5lciByZWFjaGVzIG91dCB0byBNYWMgbm9kZQotIE9yaWdpbmFsIHRvb2wgKGBtZW1vYCBDTEkpIHRvbyBpbnRlcmFjdGl2ZQotIEFJIGFkYXB0czogZGlzY292ZXJzIEFwcGxlU2NyaXB0IGFzIG5hdGl2ZSBhbHRlcm5hdGl2ZQotIENyZWF0ZXMgbm90ZXMvcmVtaW5kZXJzIHZpYSBgb3Nhc2NyaXB0YAotICJGaWd1cmVzIGl0IG91dCBvbiBpdHMgb3duIiBtb21lbnQKCiMjIyBNZXRhLURlbW86IFRoZSBTZXNzaW9uIEl0c2VsZgpUaGUgY29udmVyc2F0aW9uIHRoYXQgbGVkIHRvIHRoaXMgc2NyYXRjaHBhZCBpcyBpdHNlbGYgZGVtby13b3J0aHk6Ci0gQ2FzdWFsIGV4cGVyaW1lbnQg4oaSIGRpc2NvdmVyeQotIFByZXNlbnRlciBtZW50aW9ucyAibWlnaHQgdXNlIHRoaXMgZm9yIGEgZGVtbyIKLSBBSSBvZmZlcnMgdG8gY2FwdHVyZSBpdCAobm90IHJlcXVlc3RlZCkKLSBXcml0ZXMgc3RydWN0dXJlZCBkb2MgdG8gdGhlIHJpZ2h0IHJlcG8KLSBUaGF0J3Mgd29ya2luZyAqd2l0aCogc29tZW9uZSwgbm90IGNvbW1hbmRpbmcgYSB0b29sCgotLS0KCipBZGQgaWRlYXMgYmVsb3cgYXMgdGhleSBlbWVyZ2UqCg==