SSd2ZSBiZWVuIGZvbGxvd2luZyB0aGUgRWFydGhyYWNlIHZlc3NlbCdzIHByb2dyZXNzIGFzIGl0 IGF0dGVtcHRlZCB0byBicmVhayAKdGhlIHJvdW5kIHRoZSB3b3JsZCBwb3dlcmVkIHZlc3NlbCBj aXJjdW1uYXZpZ2F0aW9uIGF0dGVtcHQuCgpBZnRlciBtYW55IHByb2JsZW1zIHRoZXkgaGF2ZSBm aW5hbGx5IGdpdmVuIHVwIGFzIHRoZSB0aW1lIHJlcXVpcmVkIHRvIApyZXBhaXIgdGhlIGxhdGVz dCBkYW1hZ2UgbWVhbnMgdGhhdCBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gYnJlYWsgdGhlIApy ZWNvcmQuCgoKICAgICAgICBSdXNzZWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KCgoKLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLSAKRnJvbTogRGV2YW5uIFlhdGEK VG86IGFwcHRlY2hAcGFyYWRpc2UubmV0Lm56ClNlbnQ6IEZyaWRheSwgSnVuZSAwMSwgMjAwNyAy OjEzIFBNClN1YmplY3Q6IEVhcnRocmFjZSBGb3JjZWQgdG8gQWJhbmRvbiBSZWNvcmQgQXR0ZW1w dAoKClByZXNzIFJlbGVhc2UKCkltbWVkaWF0ZSBSZWxlYXNlCgpFYXJ0aHJhY2UgRm9yY2VkIHRv IEFiYW5kb24gUmVjb3JkIEF0dGVtcHQKCuKAnFdlIGdhdmUgaXQgb3VyIGJlc3Qgc2hvdOKAnQpF YXJ0aHJhY2Ugd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0byBicmVhayB0aGUgcmVjb3JkLAp0aGUg ZGVjaXNpb24gaGFzIGJlZW4gbWFkZSB0byBhYmFuZG9uIHRoZSByYWNlLgoKTWFsYWdhLCBTcGFp biDigJMgMzEgTWF5IDIwMDcg4oCTIE9uIFdlZG5lc2RheSBNYXkgMzAsIDIwMDcgdGhlIEVhcnRo cmFjZSAKcG93ZXJib2F0IHdhcyBmb3JjZWQgdG8gYWJhbmRvbiBpdHMgd29ybGQgcmVjb3JkIGF0 dGVtcHQgdG8gY2lyY3VtbmF2aWdhdGUgCnRoZSBnbG9iZS4gVGhlIEVhcnRocmFjZSB2ZXNzZWwg YW5kIGNyZXcgYXJlIGluIE1hbGFnYSwgU3BhaW4uCgpUaGUgRWFydGhyYWNlIGJvYXQgc3VmZmVy ZWQgc3RydWN0dXJhbCBkYW1hZ2UgdG8gaXRzIG1haW4gaHVsbCBkdXJpbmcgaXRzIApjcm9zc2lu ZyBvZiB0aGUgTWVkaXRlcnJhbmVhbiBTZWEuIER1cmluZyB0aGlzIGNyb3NzaW5nIHNoZSBlbmNv dW50ZXJlZCBhIAp2aWNpb3VzIHN0b3JtIG9uIHJvdXRlIGZyb20gUG9ydCBTYWlkLCBFZ3lwdCB0 byBNYWxhZ2EsIFNwYWluLiBUaGlzIHdhcyB0aGUgCnRoaXJkIHNldmVyZSB3ZWF0aGVyIHN5c3Rl bSB0aGF0IEVhcnRocmFjZSBoYWQgZW5kdW5yZWQgaW4gMyB3ZWVrcywgdGhlIApvdGhlciB0d28g YmVpbmcgYSBtb25zb29uIG9mZiB0aGUgc291dGhlcm4gY29hc3Qgb2YgSW5kaWEgYW5kIDUwIGtu b3QgaGVhZCAKd2luZHMgZW5jb3VudGVyZWQgdHJhdmVsaW5nIHVwIHRoZSBSZWQgU2VhLiBJdCBh cHBlYXJzIHRoZXNlIHNldmVyZSAKY29uZGl0aW9ucywgY29sbGVjdGl2ZWx5LCBoYXZlIHRha2Vu IHRoZWlyIHRvbGwgb24gdGhlIEVhcnRocmFjZSBib2F0LgoKUHJpb3IgdG8gRWFydGhyYWNlIGFy cml2aW5nIGluIE1hbGFnYSwgdGhlIGNyZXcgbm90aWNlZCB0aGUgYm9hdCB3YXMgdGFraW5nIApv biB3YXRlciBpbiB0aGUgZm9yd2FyZCBzZWN0aW9uIG9mIHRoZSBtYWluIGh1bGwuIFVwb24gaW52 ZXN0aWdhdGlvbiwgYSAybSAKY3JhY2sgd2FzIGZvdW5kIGluIHRoZSBmbG9vciBvZiB0aGUgaHVs bC4gV2hpbGUgaW4gTWFsYWdhIHRoZSBjcmV3IG1hZGUgYW4gCmluaXRpYWwgcmVwYWlyLCBhbmQg aXQgd2FzIHRob3VnaHQgdG8gYmUgc3VmZmljaWVudCB0byBmaW5pc2ggdGhlIHJhY2U7IApob3dl dmVyLCBzaG9ydGx5IGFmdGVyIHRoZSBib2F0IGxlZnQgZm9yIHRoZSBDYW5hcnkgSXNsYW5kcyB0 aGUgY3JldyAKY29uY2x1ZGVkIHRoYXQgdGhlIHJlcGFpciB3b3VsZCBub3QgaG9sZCBhbmQgc28g dGhlIGRlY2lzaW9uIHdhcyBtYWRlIHRvIApyZXR1cm4gdG8gTWFsYWdhIHRvIHVuZGVyZ28gbW9y ZSBzdWJzdGFudGl2ZSByZXBhaXJzLiBHaXZlbiB0aGUgdGltZSB0aGF0IGl0IAp3aWxsIHRha2Ug dG8gcHJvcGVybHkgcmVwYWlyIHRoZSBodWxsLCBFYXJ0aHJhY2Ugd2lsbCBubyBsb25nZXIgYmUg YWJsZSB0byAKYnJlYWsgdGhlIHJlY29yZCwgYW5kIHNvIHRoZSBkZWNpc2lvbiBoYXMgYmVlbiBt YWRlIHRvIGFiYW5kb24gdGhlIHJhY2UuCgpFYXJ0aHJhY2Ugc2tpcHBlciBQZXRlIEJldGh1bmUg c2FpZCDigJwgVGhlIHdob2xlIHRlYW0gaXMgcHJldHR5IGRldmFzdGF0ZWQgCnJpZ2h0IG5vdy4g V2UgaGF2ZSBhbGwgcHV0IHNvIG11Y2ggdGltZSwgbW9uZXksIGFuZCBlZmZvcnQgaW50byB0aGlz IHJlY29yZCAKYXR0ZW1wdDsgaXQgaXMgcHJldHR5IHVwc2V0dGluZyB0byBoYXZlIHRvIGFiYW5k b24gdGhlIHJhY2UuIFdlIGNhbiBhbGwgZmVlbCAKcHJvdWQgb2Ygd2hhdCB3ZSBoYXZlIGFjaGll dmVkIHdpdGggdGhlIGxpbWl0ZWQgcmVzb3VyY2VzIHdlIGhhZCwgYW5kIHdlIGRvIAp0YWtlIHNv bWUgaGVhcnQgZnJvbSB0aGF04oCdCgpCZXRodW5lIHdlbnQgb24gdG8gc2hvdCDigJxXZSBnYXZl IGl0IG91ciBiZXN0IHNob3Qu4oCdIOKAnFRoZSBFYXJ0aHJhY2UgcHJvamVjdCAKd2FzIGNyZWF0 ZWQgdG8gcHJvbW90ZSB0aGUgYXdhcmVuZXNzIGFuZCB1c2Ugb2YgYWx0ZXJuYXRpdmUgZnVlbHMg c3VjaCBhcyAKYmlvZGllc2VsLiBBbmQgd2hpbHN0IGl0IGlzIGRpc2FwcG9pbnRpbmcgdG8gbWlz cyBvdXQgb24gdGhlIHdvcmxkIHJlY29yZCwgCndlIGhhdmUgY2VydGFpbmx5IHN1Y2NlZWRlZCBp biBvdXIgb3ZlcmFsbCBhaW0gb2YgcHJvbW90aW5nIGJpb2RpZXNlbCwgYW5kIAp3ZSB3aWxsIGNv bnRpbnVlIHRvIGJ1aWxkIG9uIHRoaXMgc3VjY2VzcyBkdXJpbmcgb3VyIHVwY29taW5nIEV1cm9w ZWFuIApwcm9tb3Rpb25hbCB0b3Vy4oCdCgpCZXRodW5lIGhhcyBub3QgcnVsZWQgb3V0IGhhdmlu ZyBhbm90aGVyIGNyYWNrIGF0IHRoZSByZWNvcmQgc29tZXRpbWUgaW4gdGhlIApmdXR1cmUsIHBl cmhhcHMgYXMgZWFybHkgYXMgTWFyY2ggMjAwOC4KCkJldGh1bmUgc2FpZCDigJxPdXIgZm9jdXMg cmlnaHQgbm93IGlzIHRvIHJlcGFpciB0aGUgYm9hdCBhbmQgY29tZSB0byB0ZXJtcyAKd2l0aCB3 aGF0IGhhcyBoYXBwZW5lZC4gQWZ0ZXIgdGhhdCB3ZSBwbGFuIHRvIHRha2UgdGhlIGJvYXQgdXAg dG8gVmFsZW5jaWEgCnRvIG9mZmVyIG91ciBzdXBwb3J0IHRvIHRoZSBOZXcgWmVhbGFuZCBBbWVy aWNhJ3MgQ3VwIGNhbXBhaWduIGJlZm9yZSAKZW1iYXJraW5nIG9uIG91ciBFdXJvcGVhbiBwcm9t b3Rpb25hbCB0b3Vy4oCdCgpUaGUgRWFydGhyYWNlIGJvYXQgd2FzIGF0dGVtcHRpbmcgdG8gYnJl YWsgdGhlIHdvcmxkIHJlY29yZCBmb3IgYSBwb3dlcmJvYXQgCnRvIGNpcmN1bW5hdmlnYXRlIHRo ZSBnbG9iZSwgYW5kIHdhcyBkb2luZyB0aGlzIHVzaW5nIGJpb2RpZXNlbCBmdWVsIOKAkyBhIApm dWVsIHNvdXJjZWQgZnJvbSB2ZWdldGFibGUgb2lscy4KCkVhcnRocmFjZSBiZWdhbiBpdHMgcmVj b3JkIGF0dGVtcHQgb24gQXByaWwgNyBmcm9tIFNhbiBEaWVnbywgQ2FsaWZvcm5pYSBhbmQgCmhh ZCB0byBmaW5pc2ggaW4gU2FuIERpZWdvIG9uIG9yIGJlZm9yZSAyMSBKdW5lIHRvIGJyZWFrIHRo ZSByZWNvcmQgb2YgNzUgCmRheXMg4oCTIHNldCBieSB0aGUgQnJpdGlzaCBib2F0IENhYmxlICYg V2lyZWxlc3MgaW4gMTk5OC4KCkZvciBpbnRlcnZpZXdzIHdpdGggdGhlIFNraXBwZXIsIFBldGUg QmV0aHVuZQpwaG9uZSArMzUzIDg2MjQ2MzI3My4KCkZvciBoaSByZXMgbWVkaWEgaW1hZ2VzIHNl ZSBodHRwOi8vd3d3LmVhcnRocmFjZS5uZXQvaW5kZXgucGhwP3NlY3Rpb249NDgKCkZvciBwcmVz cyByZWxlYXNlIGFyY2hpdmUgc2VlIGh0dHA6Ly93d3cuZWFydGhyYWNlLm5ldC9pbmRleC5waHA/ c2VjdGlvbj00NgogCi0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29tIFBJQy9TWCBGQVEgJiBsaXN0 IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21h aWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK