LSotIHRleHQgLSotICRJZDogUkVBRE1FLmFycmF5cnVuLHYgMS4yIDIwMTEvMDYvMjggMTE6MjE6MjcgYmhtIEV4cCAkCgpPdmVydmlldwo9PT09PT09PQoKQXJyYXlydW4gaXMgYW4gYXR0ZW1wdCB0byBzaW11bGF0ZSBhcnJheWpvYnMgYXMgZm91bmQgaW4gU0dFIGFuZCBQQlMuICBJdAp3b3JrcyB2ZXJ5IHNpbWlsYXJseSB0byBtcGlydW46CgogICBhcnJheXJ1biBbLXJdIHRhc2tpZHMgW3NiYXRjaCBhcmd1bWVudHNdIFlvdXJDb21tYW5kIFthcmd1bWVudHNdCgpJbiBwcmluY2lwbGUsIGFycmF5cnVuIGRvZXMgCgogICBUQVNLX0lEPWlkIHNiYXRjaCBbc2JhdGNoIGFyZ3VtZW50c10gWW91ckNvbW1hbmQgW2FyZ3VtZW50c10KCmZvciBlYWNoIGlkIGluIHRoZSAndGFza2lkcycgc3BlY2lmaWNhdGlvbi4gICd0YXNraWRzJyBpcyBhIGNvbW1hIHNlcGFyYXRlZApsaXN0IG9mIGludGVnZXJzLCByYW5nZXMgb2YgaW50ZWdlcnMgKGZpcnN0LWxhc3QpIG9yIHJhbmdlcyB3aXRoIHN0ZXAgc2l6ZQooZmlyc3QtbGFzdDpzdGVwKS4gIElmIC1yIGlzIHNwZWNpZmllZCwgYXJyYXlydW4gd2lsbCByZXN0YXJ0IGEgam9iIHRoYXQgaGFzCmZhaWxlZC4gIFRvIGF2b2lkIGVuZGxlc3MgbG9vcHMsIGEgam9iIGlzIG9ubHkgcmVzdGFydGVkIG9uY2UsIGFuZCBhIG1heGltdW0Kb2YgMTAgKGNvbmZpZ3VyYWJsZSkgam9icyB3aWxsIGJlIHJlc3RhcnRlZC4KClRoZSBpZGVhIGlzIHRvIHN1Ym1pdCBhIG1hc3RlciBqb2IgdGhhdCBjYWxscyBhcnJheXJ1biB0byBzdGFydCB0aGUgam9icywKZm9yIGluc3RhbmNlCgogICAkIGNhdCB3b3JrZXJTY3JpcHQKICAgIyEvYmluL3NoCiAgICNTQkFUQ0ggLS1hY2NvdW50PVlvdXJQcm9qZWN0CiAgICNTQkFUQ0ggLS10aW1lPTE6MDowCiAgICNTQkFUQ0ggLS1tZW0tcGVyLWNwdT0xRwoKICAgREFUQVNFVD1kYXRhc2V0LiRUQVNLX0lECiAgIE9VVEZJTEU9cmVzdWx0LiRUQVNLX0lECiAgIGNkICRTQ1JBVENICiAgIFlvdXJQcm9ncmFtICREQVRBU0VUID4gJE9VVEZJTEUKICAgIyBlbmQgb2Ygd29ya2VyU2NyaXB0CgogICAkIGNhdCBzdWJtaXRTY3JpcHQKICAgIyEvYmluL3NoCiAgICNTQkFUQ0ggLS1hY2NvdW50PVlvdXJQcm9qZWN0CiAgICNTQkFUQ0ggLS10aW1lPTUwOjA6MAogICAjU0JBVENIIC0tbWVtLXBlci1jcHU9MTAwTQoKICAgYXJyYXlydW4gMS0yMDAgd29ya2VyU2NyaXB0CiAgICMgZW5kIG9mIHN1Ym1pdFNjcmlwdAoKICAgJCBzYmF0Y2ggc3VibWl0U2NyaXB0CgpUaGUgLS10aW1lIHNwZWNpZmljYXRpb24gaW4gdGhlIG1hc3RlciBzY3JpcHQgbXVzdCBiZSBsb25nIGVub3VnaCBmb3IgYWxsCmpvYnMgdG8gZmluaXNoLgoKQWx0ZXJuYXRpdmVseSwgYXJyYXlydW4gY2FuIGJlIHJ1biBvbiB0aGUgY29tbWFuZCBsaW5lIG9mIGEgbG9naW4gb3IgbWFzdGVyCm5vZGUuCgpJZiB0aGUgbWFzdGVyIGpvYiBpcyBjYW5jZWxsZWQsIG9yIHRoZSBhcnJheXJ1biBwcm9jZXNzIGlzIGtpbGxlZCwgaXQgdHJpZXMKdG8gc2NhbmNlbCBhbGwgcnVubmluZyBvciBwZW5kaW5nIGpvYnMgYmVmb3JlIGl0IGV4aXRzLgoKQXJyYXlydW4gdHJpZXMgbm90IHRvIGZsb29kIHRoZSBxdWV1ZSB3aXRoIGpvYnMuICBJdCB3b3JrcyBieSBzdWJtaXR0aW5nIGEKbGltaXRlZCBudW1iZXIgb2Ygam9icywgc2xlZXBpbmcgYSB3aGlsZSwgY2hlY2tpbmcgdGhlIHN0YXR1cyBvZiBpdHMgam9icywKYW5kIGl0ZXJhdGluZywgdW50aWwgYWxsIGpvYnMgaGF2ZSBmaW5pc2hlZC4gIEFsbCBsaW1pdHMgYW5kIHRpbWVzIGFyZQpjb25maWd1cmFibGUgKHNlZSBiZWxvdykuICBJdCBhbHNvIHRyaWVzIHRvIGhhbmRsZSBhbGwgZXJyb3JzIGluIGEgZ3JhY2VmdWwKbWFubmVyLgoKCkluc3RhbGxhdGlvbiBhbmQgY29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClRoZXJlIGFyZSB0d28gZmlsZXMsIGFycmF5cnVuICh0byBiZSBjYWxsZWQgYnkgdXNlcnMpIGFuZCBhcnJheXJ1bl93b3JrZXIKKGV4ZWMnZWQgb3Igc3J1bidlZCBieSBhcnJheXJ1biwgdG8gbWFrZSBzY2FuY2VsIHdvcmspLgoKYXJyYXlydW4gc2hvdWxkIGJlIHBsYWNlZCBzb21ld2hlcmUgb24gdGhlICRQQVRILiAgYXJyYXlydW5fd29ya2VyIGNhbiBiZQpwbGFjZSBhbnl3aGVyZS4gIEJvdGggZmlsZXMgc2hvdWxkIGJlIGFjY2Vzc2libGUgZnJvbSBhbGwgbm9kZXMuCgpUaGVyZSBhcmUgcXVpdGUgYSBmZXcgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMsIHNvIGFycmF5cnVuIGNhbiBiZSB0dW5lZCB0bwp3b3JrIHVuZGVyIGRpZmZlcmVudCBwb2xpY2llcyBhbmQgd29yayBsb2Fkcy4KCkNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGluIGFycmF5cnVuOgoKLSBXT1JLRVI6IHRoZSBsb2NhdGlvbiBvZiBhcnJheXJ1bl93b3JrZXIKCkNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGluIGFycmF5cnVuX3dvcmtlcjoKCi0gJG1heEpvYnM6ICAgICAgICAgIFRoZSBtYXhpbWFsIG51bWJlciBvZiBqb2JzIGFycmF5cnVuIHdpbGwgYWxsb3cgaW4gdGhlCgkJICAgICBxdWV1ZSBhdCBhbnkgdGltZQotICRtYXhJZGxlSm9iczoJICAgICBUaGUgbWF4aW1hbCBudW1iZXIgb2YgX3BlbmRpbmdfIGpvYnMgYXJyYXlydW4gd2lsbCBhbGxvdwoJCSAgICAgaW4gdGhlIHF1ZXVlIGF0IGFueSB0aW1lCi0gJG1heEJ1cnN0OgkgICAgIFRoZSBtYXhpbWFsIG51bWJlciBvZiBqb2JzIHN1Ym1pdHRlZCBhdCBhIHRpbWUKLSAkcG9sbFNlY29uZHM6CSAgICAgSG93IG1hbnkgc2Vjb25kcyB0byBzbGVlcCBiZXR3ZWVuIGVhY2ggaXRlcmF0aW9uCi0gJG1heEZhaWxzOgkgICAgIFRoZSBtYXhpbWFsIG51bWJlciBvZiBlcnJvcnMgdG8gYWNjZXB0IHdoZW4gc3VibWl0dGluZyBhCgkJICAgICBqb2IKLSAkcmV0cnlTbGVlcDoJICAgICBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gc2xlZXAgYmV0d2VlbiBlYWNoIHJldHJ5IHdoZW4KCQkgICAgIHN1Ym1pdHRpbmcgYSBqb2IKLSAkZG91YmxlQ2hlY2tTbGVlcDogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHNsZWVwIGFmdGVyIGEgZmFpbGVkIHNiYXRjaAoJCSAgICAgYmVmb3JlIHJ1bm51bmcgc3F1ZXVlIHRvIGRvdWJsZSBjaGVjayB3aGV0aGVyIHRoZSBqb2IKCQkgICAgIHdhcyBzdWJtaXR0ZWQgb3Igbm90LgotICRtYXhSZXN0YXJ0czoJICAgICBUaGUgbWF4aW1hbCBudW1iZXIgb2YgcmVzdGFydHMgYWxsIGluIGFsbAotICRzYmF0Y2g6CSAgICAgVGhlIGZ1bGwgcGF0aCBvZiB0aGUgc2JhdGNoIGNvbW1hbmQgdG8gdXNlCgoKTm90ZXMgYW5kIGNhdmVhdHMKPT09PT09PT09PT09PT09PT0KCkFycmF5cnVuIGlzIGFuIGF0dGVtcHQgdG8gc2ltdWxhdGUgYXJyYXkgam9icy4gIEFzIHN1Y2gsIGl0IGlzIG5vdApwZXJmZWN0IG9yIGZvb2xwcm9vZi4gIEhlcmUgYXJlIGEgY291cGxlIG9mIGNhdmVhdHMuCgotIFNvbWV0aW1lcywgYXJyYXlydW4gZmFpbHMgdG8gc2NhbmNlbCBhbGwgam9icyB3aGVuIGl0IGlzIGl0c2VsZiBjYW5jZWxsZWQKCi0gV2hlbiBhcnJheXJ1biBpcyBydW4gYXMgYSBtYXN0ZXIgam9iLCBpdCBjb25zdW1lcyBvbmUgQ1BVIGZvciB0aGUgd2hvbGUKICBkdXJhdGlvbiBvZiB0aGUgam9iLiAgQWxzbywgdGhlIC0tdGltZSBsaW1pdCBtdXN0IGJlIGxvbmcgZW5vdWdoLiAgVGhpcyBjYW4KICBiZSBhdm9pZGVkIGJ5IHJ1bm5pbmcgYXJyYXlydW4gaW50ZXJhY3RpdmVseSBvbiBhIG1hc3Rlci9sb2dpbiBub2RlIChpbgogIHdoaWNoIGNhc2UgcnVubmluZyBpdCB1bmRlciBzY3JlZW4gaXMgcHJvYmFibHkgYSBnb29kIGlkZWEpLgoKLSBBcnJheXJ1biBkb2VzIChjdXJyZW50bHkpIG5vdCBjaGVja3BvaW50LCBzbyBpZiBhbiBhcnJheXJ1biBpcyByZXN0YXJ0ZWQsCiAgaXQgc3RhcnRzIGZyb20gc2NyYXRjaCB3aXRoIHRoZSBmaXJzdCB0YXNraWQuCgpXZSB3ZWxjb21lIGFueSBzdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnRzIG9yIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSEKCgpDb3B5cmlnaHQKPT09PT09PT09CgpDb3B5cmlnaHQgMjAwOSwyMDEwLDIwMTEgQmr4cm4tSGVsZ2UgTWV2aWsgPGIuaC5tZXZpa0B1c2l0LnVpby5ubz4KClRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCnB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgoKVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGZvciBtb3JlIGRldGFpbHMuCgpBIGNvcHkgb2YgdGhlIEdQTCB2LiAyIHRleHQgaXMgYXZhaWxhYmxlIGhlcmU6Cmh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9vbGQtbGljZW5zZXMvZ3BsLTIuMC50eHQK