VGl0bGU6IFNjcmF0Y2ggVGhlb3J5CkVwaXNvZGU6ICJXaGVyZSBEaWQgQmVlcHnigJlzIE1pc3NpbmcgRmFtaWx5IE1lbWJlciBHbz8gVW5yYXZlbGluZyB0aGUgTXlzdGVyeSBvZiB0aGUgQmVlcGxpbiEiCgpJTlQuIEEgUExBWUZVTCBWSVJUVUFMIFNUVURJTyBXSVRIIEJPTEQgQ09MT1JTLCBSRVRSTyBDT01QVVRFUiBHUkFQSElDUywgQU5EIEFOSU1BVEVEIEVMRU1FTlRTIERBTkNJTkcgQVJPVU5ELgpGVVJZIE5OTSwgQSBZRUxMT1cgU1BIRVJFIFdJVEggQ0FUIEVBUlMgQU5EIEEgQ0FUIFRBSUwgKENPU1RVTUUpLCBTSVRTIEFUIEEgREVTSyBXSVRIIEEgQ09NUFVURVIgU0NSRUVOIFNIT1dJTkcgQkVFUFkgQU5EIEEgRkFNSUxZIFBIT1RPIFdJVEggQSBMQVJHRSBHQVAgSU4gVEhFIE1JRERMRS4KQkVFUFksIEEgU01BTEwsIFlFTExPVyBESUdJVEFMIENIQVJBQ1RFUiwgQk9VTkNFUyBFWENJVEVETFkgTkVYVCBUTyBUSEUgRU1QVFkgU1BBQ0UgSU4gVEhFIEZBTUlMWSBQSE9UTy4KCkZVUlkgTk5NICh3aXRoIGVudGh1c2lhc20pCkhleSB0aGVyZSwgU2NyYXRjaGVycyEgSXTigJlzIHlvdXIgcGFsIEZ1cnkgTk5NLCBhbmQgSeKAmW0gam9pbmVkIG9uY2UgYWdhaW4gYnkgbXkgY2hhdHR5IGJ1ZGR5LCBCZWVweSEKCkJFRVBZIChib3VuY2luZyB1cCBhbmQgZG93bikKSGVsbG8sIGZyaWVuZHMhIFJlYWR5IHRvIGZpbmQgbXkgbWlzc2luZyBmYW1pbHkgbWVtYmVyIQoKRlVSWSBOTk0gKGdlc3R1cmluZyBkcmFtYXRpY2FsbHkpClRvZGF5LCB3ZeKAmXJlIGRpdmluZyBpbnRvIHRoZSBwaXhlbGF0ZWQgY2hhb3Mgb2YgdGhlIFd1YmJveCBWaXJ1cyBBUkchIE91ciBtaXNzaW9uPyBUbyB1bmNvdmVyIHRoZSB3aGVyZWFib3V0cyBvZiBCZWVweeKAmXMgbWlzc2luZyBmYW1pbHkgbWVtYmVy4oCUdGhlIEJlZXBsaW4hIFRoZSByb3VuZGVzdCwgY3V0ZXN0IGxpdHRsZSBidWRkeSBpbiB0aGUgYmVlIGNsYW4hCgpDVVQgVE8gQSBDT01QVVRFUiBTQ1JFRU4gV0lUSCBBTklNQVRJT04gU0hPV0lORyBCRUVQWSdTIEZBTUlMWSBQSE9UTyBFWENFUFQgRk9SIE9ORSBFTVBUWSBTUEFDRS4KCkZVUlkgTk5NIChwb2ludGluZykKTm93IGxvb2sgYXQgdGhpcyBmYW1pbHkgcGhvdG8hIFRoYXQgbXlzdGVyaW91cyBCZWVwbGluIGNvdWxkIGJlIEplcnB5LCBDZXJweSwgb3IgZXZlbiBCZWVwb24hIFdoYXQgaGFwcGVuZWQgdG8gb3VyIGRlbGlnaHRmdWwgZnJpZW5kLCBhbmQgd2h5IGlzIGhlIG1pc3Npbmc/CgpORVcgTk5NIChzdWRkZW5seSBhcHBlYXJpbmcsIGFybXMgY3Jvc3NlZCkKT2ggcGxlYXNlLCB5b3UgcmVhbGx5IHRoaW5rIHlvdSBjYW4gZmlndXJlIHRoaXMgb3V0PyBZb3UgdHdvIGxvb2sgbGlrZSBhIGdsaXRjaCBpbiB0aGUgbWF0cml4IQoKRlVSWSBOTk0gKHR1cm5pbmcsIHN1cnByaXNlZCkKTmV3IE5OTSEgV2UncmUgdHJ5aW5nIHRvIHNvbHZlIGEgc2VyaW91cyBteXN0ZXJ5IGhlcmUhCgpORVcgTk5NIChzbWlya2luZykKU2VyaW91cz8gSXQgbG9va3MgbW9yZSBsaWtlIGEgc2lsbHkgZ2FtZSBvZiBoaWRlLWFuZC1zZWVrLiBEbyB5b3UgZXZlbiBrbm93IHdoYXQgeW91J3JlIGRvaW5nLCBvciBhcmUgeW91IGp1c3QgbWFraW5nIGl0IHVwIGFzIHlvdSBnbz8gWW91IGRvbuKAmXQgZXZlbiBrbm93IHdoYXQgIkJlZXB5IiBtZWFucywgZG8geW91PwoKQkVFUFkgKGRlZmVuc2l2ZWx5KQpJ4oCZbSBub3Qgc2lsbHkhIEFuZCBvZiBjb3Vyc2UgSeKAmW0gQmVlcHkhCgpORVcgTk5NIChzY3JhdGNoaW5nIGhpcyBoZWFkKQpCZWVweT8gSXMgdGhhdCBsaWtlIOKAnGJlZXAgYm9vcOKAnT8gU291bmRzIGxpa2UgYSByb2JvdCBtaXN1bmRlcnN0YW5kaW5nIGhpcyBvd24gbmFtZSEKCkZVUlkgTk5NIChkZXRlcm1pbmVkKQpMZXTigJlzIGdldCBiYWNrIG9uIHRyYWNrISBUaGUgUmFyZSBXdWJib3ggdW5sZWFzaGVkIHRoZSBXdWJib3ggVmlydXPigJRjb3VsZCBoZSBiZSBiZWhpbmQgdGhlIEJlZXBsaW4ncyBkaXNhcHBlYXJhbmNlPwoKTkVXIE5OTSAoaW50ZXJydXB0aW5nIGFnYWluKQpWaXJhbCBjaGFvcz8gTW9yZSBsaWtlIGEgZHJhbWEgY2x1YiBtZWV0aW5nISBZb3UgZ3V5cyByZWFsbHkgYXJlIGdyYXNwaW5nIGF0IHN0cmF3cy4gVGhpcyBoYXMg4oCcc3R1cGlk4oCdIHdyaXR0ZW4gYWxsIG92ZXIgaXQhCgpGVVJZIE5OTSAocGxheWZ1bGx5IGdyaW5uaW5nKQpZb3Uga25vdywgTmV3IE5OTSwgaXTigJlzIGZ1bm55IHRoYXQgeW91IGtlZXAgcG9raW5nIGZ1biBhdCB1cy4gQWZ0ZXIgYWxsLCB3ZSBtYXkgYmUgZGlmZmVyZW50LCBidXQgd2XigJlyZSBraW5kIG9mIGxpa2UgYnJvdGhlcnMgaW4gdGhpcyBtYWRjYXAgZmFtaWx5IQoKTkVXIE5OTSAocm9sbGluZyBoaXMgZXllcykKQnJvdGhlcnM/IE1vcmUgbGlrZSBkaXN0YW50IGNvdXNpbnMgd2hvIGNhbuKAmXQgc3RhbmQgZWFjaCBvdGhlciEgR29vZCBsdWNrIG9uIHlvdXIgd2lsZCBnb29zZSBjaGFzZSwgYnJvIQoKQ1VUIFRPIEEgREFSSywgU1VTUEVOU0VGVUwgQ0xJUCBPRiBSQVJFIFdVQkJPWCBMQVVHSElORyBNQU5JQ0FMTFkuIEEgQ1JFRVBZIFNPVU5EVFJBQ0sgUExBWVMuCgpGVVJZIE5OTQpMZXTigJlzIHJld2luZCB0byBDaGFwdGVyIDEhIFRoYXQgbWFsZXZvbGVudCBSYXJlIFd1YmJveOKAlHdlJ3JlIGRldGVybWluZWQgdG8gZmlndXJlIG91dCBoaXMgbW90aXZlcy4KCkJFRVBZIChncm93aW5nIGZyYW50aWMpCk5vdCBteSBmYW1pbHkhCgpGVVJZIE5OTSAodHJ5aW5nIHRvIGNhbG0gaGltLCBnbGFyaW5nIGF0IE5ldyBOTk0pCkhvbGQgb24sIEJlZXB5ISBXZeKAmXZlIHNlZW4gYmV0cmF5YWwgdW5mb2xkIGluIGxhdGVyIGNoYXB0ZXJzIGFzIHdlbGwhCgpORVcgTk5NIChyb2xsaW5nIGhpcyBleWVzKQpZZWFoLCBiZXRyYXlhbCwgYmxhaCBibGFoIGJsYWguIFlvdeKAmXJlIGp1c3Qgc3RyaW5naW5nIHdvcmRzIHRvZ2V0aGVyLCBob3Bpbmcgc29tZXRoaW5nIHN0aWNrcyEgWW91IHR3byByZWFsbHkgYXJlIGEgcGFpciBvZiBjbHVlbGVzcyB3b25kZXJzLCBhcmVuJ3QgeW91PwoKQ1VUIFRPIEEgRkxBU0hCQUNLIE9GIENIQVBURVIgNC41IFdIRVJFIE1FSUJLSU4gR0VUUyBUUkFQUEVEIElOIFRIRSBCQUNLUk9PTVMgQU5EIEJVQkJPQyBJUyBTSE9XTiBMVVJFRCBCWSBDQU5EWS4KCkZVUlkgTk5NIChuYXJyYXRpbmcpCkluIHRob3NlIHNoYWRvd3kgYmFja3Jvb21zLCBNZWVia2luIGZhY2VkIGJldHJheWFsIGJ5I\