ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggNDNmNzIxOS4uZDE3NjRhZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRmViIDE0CisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03MjYsNyArNzI2LDcgQEAKIAkJICAgZWZmZWN0aXZlIGJ1ZmZlciBudW1iZXIgKGZvciAiOnIgZmlsZSIgaXQgaXMgdGhlIGN1cnJlbnQKIAkJICAgYnVmZmVyLCB0aGUgZmlsZSBiZWluZyByZWFkIGlzIG5vdCBpbiBhIGJ1ZmZlcikuCiAJPGFtYXRjaD4gICB3aGVuIGV4ZWN1dGluZyBhdXRvY29tbWFuZHMsIGlzIHJlcGxhY2VkIHdpdGggdGhlIG1hdGNoIGZvcgotCQkgICB3aGljaCB0aGlzIGF1dG9jb21tYW5kIHdhcyBleGVjdXRlZC4gIEl0IGRpZmZlcnMgZm9ybQorCQkgICB3aGljaCB0aGlzIGF1dG9jb21tYW5kIHdhcyBleGVjdXRlZC4gIEl0IGRpZmZlcnMgZnJvbQogCQkgICA8YWZpbGU+IG9ubHkgd2hlbiB0aGUgZmlsZSBuYW1lIGlzbid0IHVzZWQgdG8gbWF0Y2ggd2l0aAogCQkgICAoZm9yIEZpbGVUeXBlIGFuZCBTeW50YXggZXZlbnRzKS4KIAk8c2ZpbGU+ICAgIHdoZW4gZXhlY3V0aW5nIGEgIjpzb3VyY2UiIGNvbW1hbmQsIGlzIHJlcGxhY2VkIHdpdGggdGhlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcGVsbC50eHQgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKaW5kZXggNWZjMWRkOC4uNzk3ODJjOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3BlbGwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1bCAwNAorKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTc5LDIwICs3OSwyMCBAQAogCiAJCQkJCQkJKjpzcGUqICo6c3BlbGxnb29kKgogOltjb3VudF1zcGVbbGxnb29kXSB7d29yZH0KLQkJCUFkZCBbd29yZH0gYXMgYSBnb29kIHdvcmQgdG8gJ3NwZWxsZmlsZScsIGxpa2Ugd2l0aAorCQkJQWRkIHt3b3JkfSBhcyBhIGdvb2Qgd29yZCB0byAnc3BlbGxmaWxlJywgbGlrZSB3aXRoCiAJCQkiemciLiAgV2l0aG91dCBjb3VudCB0aGUgZmlyc3QgbmFtZSBpcyB1c2VkLCB3aXRoIGEKIAkJCWNvdW50IG9mIHR3byB0aGUgc2Vjb25kIGVudHJ5LCBldGMuCiAKLTpzcGVbbGxnb29kXSEge3dvcmR9CUFkZCBbd29yZH0gYXMgYSBnb29kIHdvcmQgdG8gdGhlIGludGVybmFsIHdvcmQgbGlzdCwKKzpzcGVbbGxnb29kXSEge3dvcmR9CUFkZCB7d29yZH0gYXMgYSBnb29kIHdvcmQgdG8gdGhlIGludGVybmFsIHdvcmQgbGlzdCwKIAkJCWxpa2Ugd2l0aCAiekciLgogCiAJCQkJCQkJKjpzcGVsbHcqICo6c3BlbGx3cm9uZyoKIDpbY291bnRdc3BlbGx3W3JvbmddIHt3b3JkfQotCQkJQWRkIFt3b3JkfSBhcyBhIHdyb25nIChiYWQpIHdvcmQgdG8gJ3NwZWxsZmlsZScsIGFzCisJCQlBZGQge3dvcmR9IGFzIGEgd3JvbmcgKGJhZCkgd29yZCB0byAnc3BlbGxmaWxlJywgYXMKIAkJCXdpdGggInp3Ii4gIFdpdGhvdXQgY291bnQgdGhlIGZpcnN0IG5hbWUgaXMgdXNlZCwgd2l0aAogCQkJYSBjb3VudCBvZiB0d28gdGhlIHNlY29uZCBlbnRyeSwgZXRjLgogCi06c3BlbGx3W3JvbmddISB7d29yZH0JQWRkIFt3b3JkfSBhcyBhIHdyb25nIChiYWQpIHdvcmQgdG8gdGhlIGludGVybmFsIHdvcmQKKzpzcGVsbHdbcm9uZ10hIHt3b3JkfQlBZGQge3dvcmR9IGFzIGEgd3JvbmcgKGJhZCkgd29yZCB0byB0aGUgaW50ZXJuYWwgd29yZAogCQkJbGlzdC4KIAogQWZ0ZXIgYWRkaW5nIGEgd29yZCB0byAnc3BlbGxmaWxlJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kcyBpdHMgYXNzb2NpYXRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dCBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKaW5kZXggMjY2MDQzMi4uODI3MjU0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dAorKysgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1biAwMworKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1bCAwNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zOTA3LDYgKzM5MDcsOSBAQAogCQkJCQkJCSpobC1TcGVsbEJhZCoKIFNwZWxsQmFkCVdvcmQgdGhhdCBpcyBub3QgcmVjb2duaXplZCBieSB0aGUgc3BlbGxjaGVja2VyLiB8c3BlbGx8CiAJCVRoaXMgd2lsbCBiZSBjb21iaW5lZCB3aXRoIHRoZSBoaWdobGlnaHRpbmcgdXNlZCBvdGhlcndpc2UuCisJCQkJCQkJKmhsLVNwZWxsQ2FwKgorU3BlbGxDYXAJV29yZCB0aGF0IHNob3VsZCBzdGFydCB3aXRoIGEgY2FwaXRhbC4gfHNwZWxsfAorCQlUaGlzIHdpbGwgYmUgY29tYmluZWQgd2l0aCB0aGUgaGlnaGxpZ2h0aW5nIHVzZWQgb3RoZXJ3aXNlLgogCQkJCQkJCSpobC1TcGVsbExvY2FsKgogU3BlbGxMb2NhbAlXb3JkIHRoYXQgaXMgcmVjb2duaXplZCBieSB0aGUgc3BlbGxjaGVja2VyIGFzIG9uZSB0aGF0IGlzCiAJCXVzZWQgaW4gYW5vdGhlciByZWdpb24uIHxzcGVsbHwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IGYyMzFkZWIuLmI3ZjhhYTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNTE0OCw2ICs1MTQ4LDcgQEAKIGhlYnJldy50eHQJaGVicmV3LnR4dAkvKmhlYnJldy50eHQqCiBoZWxwCXZhcmlvdXMudHh0CS8qaGVscCoKIGhlbHAtY29udGV4dAloZWxwLnR4dAkvKmhlbHAtY29udGV4dCoKK2hlbHAtdGFncwl0YWdzCTEKIGhlbHAtdHJhbnNsYXRlZAl2YXJpb3VzLnR4dAkvKmhlbHAtdHJhbnNsYXRlZCoKIGhlbHAteHRlcm0td2luZG93CXZhcmlvdXMudHh0CS8qaGVscC14dGVybS13aW5kb3cqCiBoZWxwLnR4dAloZWxwLnR4dAkvKmhlbHAudHh0KgpAQCAtNTIwNyw2ICs1MjA4LDcgQEAKIGhsLVNpZ25Db2x1bW4Jc3ludGF4LnR4dAkvKmhsLVNpZ25Db2x1bW4qCiBobC1TcGVjaWFsS2V5CXN5bnRheC50eHQJLypobC1TcGVjaWFsS2V5KgogaGwtU3BlbGxCYWQJc3ludGF4LnR4dAkvKmhsLVNwZWxsQmFkKgoraGwtU3BlbGxDYXAJc3ludGF4LnR4dAkvKmhsLVNwZWxsQ2FwKgogaGwtU3BlbGxMb2NhbAlzeW50YXgudHh0CS8qaGwtU3BlbGxMb2NhbCoKIGhsLVNwZWxsUmFyZQlzeW50YXgudHh0CS8qaGwtU3BlbGxSYXJlKgogaGwtU3RhdHVzTGluZQlzeW50YXgudHh0CS8qaGwtU3RhdHVzTGluZSoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggMGRjOTUyZS4uZDI5MGVlYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA0CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vQXBwZW5kTWF0Y2hHcm91cC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL0FwcGVuZE1hdGNoR3JvdXAudmltCmluZGV4IGRhNzk5NGUuLjM0ZTgwYjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vQXBwZW5kTWF0Y2hHcm91cC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9BcHBlbmRNYXRjaEdyb3VwLnZpbQpAQCAtMSwxMjUgKzEsMTI1IEBACi0iIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZSB1dGlsaXR5DQotIiBMYW5ndWFnZTogICAgKiAodmFyaW91cykNCi0iIE1haW50YWluZXI6ICBEYXZlIFNpbHZpYSA8ZHNpbHZpYUBtY2hzaS5jb20+DQotIiBEYXRlOiAgICAgICAgNi8zMC8yMDA0DQotDQotIiBUaGUgc3RhcnQgb2YgbWF0Y2ggKGI6U09NKSBkZWZhdWx0IGlzOg0KLSIgICAgICAgJ1w8Jw0KLSIgVGhlIGVuZCBvZiBtYXRjaCAoYjpFT00pIGRlZmF1bHQgaXM6DQotIiAgICAgICAnXD4nDQotIg0KLSIgSWYgeW91IHdhbnQgdG8gdXNlIHNvbWUgb3RoZXIgc3RhcnQvZW5kIG9mIG1hdGNoLCBqdXN0IGFzc2lnbiB0aGUNCi0iIHZhbHVlIHRvIHRoZSBiOlNPTXxFT00gdmFyaWFibGUgaW4geW91ciBmaWxldHlwZSBzY3JpcHQuDQotIg0KLSIgU0VFOiA6aCBwYXR0ZXJuLnR4dA0KLSIgICAgICA6aCBwYXR0ZXJuLXNlYXJjaGVzDQotIiAgICAgIDpoIHJlZ3VsYXItZXhwcmVzc2lvbg0KLSIgICAgICA6aCBtYXRjaGl0DQotDQotbGV0IHM6bXlOYW1lPWV4cGFuZCgiPHNmaWxlPjp0IikNCi0NCi0iIG1hdGNoaXQudmltIG5vdCBsb2FkZWQgLS0gZG9uJ3QgZG8gYW55dGluZw0KLWlmICFleGlzdHMoImxvYWRlZF9tYXRjaGl0IikNCi0JZWNob21zZyBzOm15TmFtZS4iOiBtYXRjaGl0LnZpbSBub3QgbG9hZGVkIC0tIGZpbmlzaGluZyB3aXRob3V0IGxvYWRpbmciDQotCWZpbmlzaA0KLWVuZGlmDQotDQotIiBhbHJlYWR5IGJlZW4gaGVyZSAtLSBkb24ndCByZWRlZmluZQ0KLWlmIGV4aXN0cygiKkFwcGVuZE1hdGNoR3JvdXAiKQ0KLQlmaW5pc2gNCi1lbmRpZg0KLQ0KLSIgRnVuY3Rpb24gVG8gQnVpbGQgYjptYXRjaF93b3Jkcw0KLSIgVGhlIGZvbGxvd2luZyBmdW5jdGlvbiwgJ0FwcGVuZE1hdGNoR3JvdXAnLCBoZWxwcyB0byBpbmNyZWFzZQ0KLSIgcmVhZGFiaWxpdHkgb2YgeW91ciBmaWxldHlwZSBzY3JpcHQgaWYgeW91IGNob29zZSB0byB1c2UgbWF0Y2hpdC4NCi0iIEl0IGFsc28gcHJlY2x1ZGVzIG1hbnkgY29uc3RydWN0aW9uIGVycm9ycywgcmVkdWNpbmcgdGhlDQotIiBjb25zdHJ1Y3Rpb24gdG8gc2ltcGx5IGludm9raW5nIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBtYXRjaCB3b3Jkcy4NCi0iIEFzIGFuIGV4YW1wbGUsIGxldCdzIHRha2UgdGhlIHViaXF1aXRvdXMgaWYvdGhlbi9lbHNlL2VuZGlmIHR5cGUNCi0iIG9mIGNvbnN0cnVjdC4gIFRoaXMgaXMgaG93IHRoZSBlbnRyeSBpbiB5b3VyIGZpbGV0eXBlIHNjcmlwdCB3b3VsZCBsb29rLg0KLSINCi0iICAgICAiIHNvdXJjZSB0aGUgQXBwZW5kTWF0Y2hHcm91cCBmdW5jdGlvbiBmaWxlDQotIiAgICAgcnVudGltZSBmdHBsdWdpbi9BcHBlbmRNYXRjaEdyb3VwLnZpbQ0KLSINCi0iICAgICAiIGZpbGwgYjptYXRjaF93b3Jkcw0KLSIgICAgIGNhbGwgQXBwZW5kTWF0Y2hHcm91cCgnaWYsdGhlbixlbHNlLGVuZGlmJykNCi0iDQotIiBBbmQgdGhlIGI6bWF0Y2hfd29yZHMgY29uc3RydWN0ZWQgd291bGQgbG9vayBsaWtlOg0KLSINCi0iICAgICBcPGlmXD46XDx0aGVuXD46XDxlbHNlXD46XDxlbmRpZlw+DQotIiANCi0iIFVzZSBvZiBBcHBlbmRNYXRjaEdyb3VwIG1ha2VzIHlvdXIgZmlsZXR5cGUgc2NyaXB0IGlzIGEgbGl0dGxlDQotIiBsZXNzIGJ1c3kgYW5kIGEgbG90IG1vcmUgcmVhZGFibGUuICBBZGRpdGlvbmFsbHksIGl0DQotIiBjaGVja3MgdGhyZWUgY3JpdGljYWwgdGhpbmdzOg0KLSINCi0iICAgICAgMSkgIERvIHlvdSBoYXZlIGF0IGxlYXN0IDIgZW50cmllcyBpbiB5b3VyIG1hdGNoIGdyb3VwLg0KLSINCi0iICAgICAgMikgIERvZXMgdGhlIGJ1ZmZlciB2YXJpYWJsZSAnYjptYXRjaF93b3JkcycgZXhpc3Q/ICBpZiBub3QsIGNyZWF0ZSBpdC4NCi0iDQotIiAgICAgIDMpICBJZiB0aGUgYnVmZmVyIHZhcmlhYmxlICdiOm1hdGNoX3dvcmRzJyBkb2VzIGV4aXN0LCBpcyB0aGUgbGFzdA0KLSIgICAgICAgICAgY2hhcmFjdGVyIGEgJywnPyAgSWYgbm90LCBhZGQgaXQgYmVmb3JlIGFwcGVuZGluZy4NCi0iIA0KLSIgWW91IHNob3VsZCBub3cgYmUgYWJsZSB0byBtYXRjaCAnaWYvdGhlbi9lbHNlL2VuZGlmJyBpbiBzdWNjZXNzaW9uDQotIiBpbiB5b3VyIHNvdXJjZSBmaWxlLCBpbiBqdXN0IGFib3V0IGFueSBjb25zdHJ1Y3Rpb24geW91IG1heSBoYXZlDQotIiBjaG9zZW4gZm9yIHRoZW0uDQotIg0KLSIgVG8gYWRkIGFub3RoZXIgZ3JvdXAsIHNpbXBseSBjYWxsICdBcHBlbmRNYXRjaEdyb3VwIGFnYWluLiAgRS5HLjoNCi0iDQotIiAgICAgIGNhbGwgQXBwZW5kTWF0Y2hHcm91cCgnd2hpbGUsZG8sZW5kd2hpbGUnKQ0KLQ0KLWZ1bmN0aW9uIEFwcGVuZE1hdGNoR3JvdXAobXdvcmRMaXN0KQ0KLQlsZXQgTGlzdD1hOm13b3JkTGlzdA0KLQlsZXQgQ29tbWE9bWF0Y2goTGlzdCwnLCcpDQotCWlmIENvbW1hID09IC0xIHx8IENvbW1hID09IHN0cmxlbihMaXN0KS0xDQotCQllY2hvZXJyICJNdXN0IHN1cHBseSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGF0IGxlYXN0IDIgZW50cmllcy4iDQotCQllY2hvZXJyICJTdXBwbGllZCBsaXN0OiA8Ii5MaXN0LiI+Ig0KLQkJcmV0dXJuDQotCWVuZGlmDQotCWxldCBsaXN0RW50cnlCZWdpbj0wDQotCWxldCBsaXN0RW50cnlFbmQ9Q29tbWENCi0JbGV0IGxpc3RFbnRyeT1zdHJwYXJ0KExpc3QsbGlzdEVudHJ5QmVnaW4sbGlzdEVudHJ5RW5kLWxpc3RFbnRyeUJlZ2luKQ0KLQlsZXQgTGlzdD1zdHJwYXJ0KExpc3QsQ29tbWErMSkNCi0JbGV0IENvbW1hPW1hdGNoKExpc3QsJywnKQ0KLQkiIGlmIGxpc3RFbnRyeSBpcyBhbGwgc3BhY2VzIHx8IExpc3QgaXMgZW1wdHkgfHwgTGlzdCBpcyBhbGwgc3BhY2VzDQotCWlmIChtYXRjaChsaXN0RW50cnksJ1xzXCsnKSA9PSAwICYmIG1hdGNoKGxpc3RFbnRyeSwnXFNcKycpID09IC0xKQ0KLQkJCVwgfHwgTGlzdCA9PSAnJyB8fCAobWF0Y2goTGlzdCwnXHNcKycpID09IDAgJiYgbWF0Y2goTGlzdCwnXFNcKycpID09IC0xKQ0KLQkJZWNob2VyciAiQ2FuJ3QgdXNlIGFsbCBzcGFjZXMgZm9yIGFuIGVudHJ5IDwiLmxpc3RFbnRyeS4iPiINCi0JCWVjaG9lcnIgIlJlbWFpbmluZyBzdXBwbGllZCBsaXN0OiA8Ii5MaXN0LiI+Ig0KLQkJcmV0dXJuDQotCWVuZGlmDQotDQotCWlmICFleGlzdHMoImI6U09NIikNCi0JCWxldCBiOlNPTT0nXDwnDQotCWVuZGlmDQotCWlmICFleGlzdHMoImI6RU9NIikNCi0JCWxldCBiOkVPTT0nXD4nDQotCWVuZGlmDQotCWlmICFleGlzdHMoImI6bWF0Y2hfd29yZHMiKQ0KLQkJbGV0IGI6bWF0Y2hfd29yZHM9JycNCi0JZW5kaWYNCi0JaWYgYjptYXRjaF93b3JkcyAhPSAnJyAmJiBtYXRjaChiOm1hdGNoX3dvcmRzLCcsJCcpID09IC0xDQotCQlsZXQgYjptYXRjaF93b3Jkcz1iOm1hdGNoX3dvcmRzLicsJw0KLQllbmRpZg0KLQkiIG9rYXksIGFsbCBzZXQgYWRkIGZpcnN0IGVudHJ5IGluIHRoaXMgbGlzdA0KLQlsZXQgYjptYXRjaF93b3Jkcz1iOm1hdGNoX3dvcmRzLmI6U09NLmxpc3RFbnRyeS5iOkVPTS4nOicNCi0Jd2hpbGUgQ29tbWEgIT0gLTENCi0JCWxldCBsaXN0RW50cnlFbmQ9Q29tbWENCi0JCWxldCBsaXN0RW50cnk9c3RycGFydChMaXN0LGxpc3RFbnRyeUJlZ2luLGxpc3RFbnRyeUVuZC1saXN0RW50cnlCZWdpbikNCi0JCWxldCBMaXN0PXN0cnBhcnQoTGlzdCxDb21tYSsxKQ0KLQkJbGV0IENvbW1hPW1hdGNoKExpc3QsJywnKQ0KLQkJIiBpZiBsaXN0RW50cnkgaXMgYWxsIHNwYWNlcw0KLQkJaWYgbWF0Y2gobGlzdEVudHJ5LCdcc1wrJykgPT0gMCAmJiBtYXRjaChsaXN0RW50cnksJ1xTXCsnKSA9PSAtMQ0KLQkJCWVjaG9lcnIgIkNhbid0IHVzZSBhbGwgc3BhY2VzIGZvciBhbiBlbnRyeSA8Ii5saXN0RW50cnkuIj4gLSBza2lwcGluZyINCi0JCQllY2hvZXJyICJSZW1haW5pbmcgc3VwcGxpZWQgbGlzdDogPCIuTGlzdC4iPiINCi0JCQljb250aW51ZQ0KLQkJZW5kaWYNCi0JCWxldCBiOm1hdGNoX3dvcmRzPWI6bWF0Y2hfd29yZHMuYjpTT00ubGlzdEVudHJ5LmI6RU9NLic6Jw0KLQllbmR3aGlsZQ0KLQlsZXQgbGlzdEVudHJ5PUxpc3QNCi0JbGV0IGI6bWF0Y2hfd29yZHM9YjptYXRjaF93b3Jkcy5iOlNPTS5saXN0RW50cnkuYjpFT00NCi1lbmRmdW5jdGlvbg0KLQ0KLSIgVE9ETzogIFdyaXRlIGEgd3JhcHBlciB0byBoYW5kbGUgbXVsdGlwbGUgZ3JvdXBzIGluIG9uZSBmdW5jdGlvbiBjYWxsLg0KLSIgICAgICAgIERvbid0IHNlZSBhIGxvdCBvZiB1dGlsaXR5IGluIHRoaXMgYXMgaXQgd291bGQgdW5kb3VidGVkbHkgd2FycmFudA0KLSIgICAgICAgIGNvbnRpbnVhdGlvbiBsaW5lcyBpbiB0aGUgZmlsZXR5cGUgc2NyaXB0IGFuZCBpdCB3b3VsZCBiZSBhIHRvc3MNCi0iICAgICAgICB1cCBhcyB0byB3aGljaCBpcyBtb3JlIHJlYWRhYmxlOiBpbmRpdmlkdWFsIGNhbGxzIG9uZSB0byBhIGxpbmUgb3INCi0iICAgICAgICBhIHNpbmdsZSBjYWxsIHdpdGggY29udGludWF0aW9uIGxpbmVzLiAgSSB2b3RlIGZvciB0aGUgZm9ybWVyLg0KKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlIHV0aWxpdHkKKyIgTGFuZ3VhZ2U6ICAgICogKHZhcmlvdXMpCisiIE1haW50YWluZXI6ICBEYXZlIFNpbHZpYSA8ZHNpbHZpYUBtY2hzaS5jb20+CisiIERhdGU6ICAgICAgICA2LzMwLzIwMDQKKworIiBUaGUgc3RhcnQgb2YgbWF0Y2ggKGI6U09NKSBkZWZhdWx0IGlzOgorIiAgICAgICAnXDwnCisiIFRoZSBlbmQgb2YgbWF0Y2ggKGI6RU9NKSBkZWZhdWx0IGlzOgorIiAgICAgICAnXD4nCisiCisiIElmIHlvdSB3YW50IHRvIHVzZSBzb21lIG90aGVyIHN0YXJ0L2VuZCBvZiBtYXRjaCwganVzdCBhc3NpZ24gdGhlCisiIHZhbHVlIHRvIHRoZSBiOlNPTXxFT00gdmFyaWFibGUgaW4geW91ciBmaWxldHlwZSBzY3JpcHQuCisiCisiIFNFRTogOmggcGF0dGVybi50eHQKKyIgICAgICA6aCBwYXR0ZXJuLXNlYXJjaGVzCisiICAgICAgOmggcmVndWxhci1leHByZXNzaW9uCisiICAgICAgOmggbWF0Y2hpdAorCitsZXQgczpteU5hbWU9ZXhwYW5kKCI8c2ZpbGU+OnQiKQorCisiIG1hdGNoaXQudmltIG5vdCBsb2FkZWQgLS0gZG9uJ3QgZG8gYW55dGluZworaWYgIWV4aXN0cygibG9hZGVkX21hdGNoaXQiKQorCWVjaG9tc2cgczpteU5hbWUuIjogbWF0Y2hpdC52aW0gbm90IGxvYWRlZCAtLSBmaW5pc2hpbmcgd2l0aG91dCBsb2FkaW5nIgorCWZpbmlzaAorZW5kaWYKKworIiBhbHJlYWR5IGJlZW4gaGVyZSAtLSBkb24ndCByZWRlZmluZQoraWYgZXhpc3RzKCIqQXBwZW5kTWF0Y2hHcm91cCIpCisJZmluaXNoCitlbmRpZgorCisiIEZ1bmN0aW9uIFRvIEJ1aWxkIGI6bWF0Y2hfd29yZHMKKyIgVGhlIGZvbGxvd2luZyBmdW5jdGlvbiwgJ0FwcGVuZE1hdGNoR3JvdXAnLCBoZWxwcyB0byBpbmNyZWFzZQorIiByZWFkYWJpbGl0eSBvZiB5b3VyIGZpbGV0eXBlIHNjcmlwdCBpZiB5b3UgY2hvb3NlIHRvIHVzZSBtYXRjaGl0LgorIiBJdCBhbHNvIHByZWNsdWRlcyBtYW55IGNvbnN0cnVjdGlvbiBlcnJvcnMsIHJlZHVjaW5nIHRoZQorIiBjb25zdHJ1Y3Rpb24gdG8gc2ltcGx5IGludm9raW5nIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBtYXRjaCB3b3Jkcy4KKyIgQXMgYW4gZXhhbXBsZSwgbGV0J3MgdGFrZSB0aGUgdWJpcXVpdG91cyBpZi90aGVuL2Vsc2UvZW5kaWYgdHlwZQorIiBvZiBjb25zdHJ1Y3QuICBUaGlzIGlzIGhvdyB0aGUgZW50cnkgaW4geW91ciBmaWxldHlwZSBzY3JpcHQgd291bGQgbG9vay4KKyIKKyIgICAgICIgc291cmNlIHRoZSBBcHBlbmRNYXRjaEdyb3VwIGZ1bmN0aW9uIGZpbGUKKyIgICAgIHJ1bnRpbWUgZnRwbHVnaW4vQXBwZW5kTWF0Y2hHcm91cC52aW0KKyIKKyIgICAgICIgZmlsbCBiOm1hdGNoX3dvcmRzCisiICAgICBjYWxsIEFwcGVuZE1hdGNoR3JvdXAoJ2lmLHRoZW4sZWxzZSxlbmRpZicpCisiCisiIEFuZCB0aGUgYjptYXRjaF93b3JkcyBjb25zdHJ1Y3RlZCB3b3VsZCBsb29rIGxpa2U6CisiCisiICAgICBcPGlmXD46XDx0aGVuXD46XDxlbHNlXD46XDxlbmRpZlw+CisiIAorIiBVc2Ugb2YgQXBwZW5kTWF0Y2hHcm91cCBtYWtlcyB5b3VyIGZpbGV0eXBlIHNjcmlwdCBpcyBhIGxpdHRsZQorIiBsZXNzIGJ1c3kgYW5kIGEgbG90IG1vcmUgcmVhZGFibGUuICBBZGRpdGlvbmFsbHksIGl0CisiIGNoZWNrcyB0aHJlZSBjcml0aWNhbCB0aGluZ3M6CisiCisiICAgICAgMSkgIERvIHlvdSBoYXZlIGF0IGxlYXN0IDIgZW50cmllcyBpbiB5b3VyIG1hdGNoIGdyb3VwLgorIgorIiAgICAgIDIpICBEb2VzIHRoZSBidWZmZXIgdmFyaWFibGUgJ2I6bWF0Y2hfd29yZHMnIGV4aXN0PyAgaWYgbm90LCBjcmVhdGUgaXQuCisiCisiICAgICAgMykgIElmIHRoZSBidWZmZXIgdmFyaWFibGUgJ2I6bWF0Y2hfd29yZHMnIGRvZXMgZXhpc3QsIGlzIHRoZSBsYXN0CisiICAgICAgICAgIGNoYXJhY3RlciBhICcsJz8gIElmIG5vdCwgYWRkIGl0IGJlZm9yZSBhcHBlbmRpbmcuCisiIAorIiBZb3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIG1hdGNoICdpZi90aGVuL2Vsc2UvZW5kaWYnIGluIHN1Y2Nlc3Npb24KKyIgaW4geW91ciBzb3VyY2UgZmlsZSwgaW4ganVzdCBhYm91dCBhbnkgY29uc3RydWN0aW9uIHlvdSBtYXkgaGF2ZQorIiBjaG9zZW4gZm9yIHRoZW0uCisiCisiIFRvIGFkZCBhbm90aGVyIGdyb3VwLCBzaW1wbHkgY2FsbCAnQXBwZW5kTWF0Y2hHcm91cCBhZ2Fpbi4gIEUuRy46CisiCisiICAgICAgY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCd3aGlsZSxkbyxlbmR3aGlsZScpCisKK2Z1bmN0aW9uIEFwcGVuZE1hdGNoR3JvdXAobXdvcmRMaXN0KQorCWxldCBMaXN0PWE6bXdvcmRMaXN0CisJbGV0IENvbW1hPW1hdGNoKExpc3QsJywnKQorCWlmIENvbW1hID09IC0xIHx8IENvbW1hID09IHN0cmxlbihMaXN0KS0xCisJCWVjaG9lcnIgIk11c3Qgc3VwcGx5IGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYXQgbGVhc3QgMiBlbnRyaWVzLiIKKwkJZWNob2VyciAiU3VwcGxpZWQgbGlzdDogPCIuTGlzdC4iPiIKKwkJcmV0dXJuCisJZW5kaWYKKwlsZXQgbGlzdEVudHJ5QmVnaW49MAorCWxldCBsaXN0RW50cnlFbmQ9Q29tbWEKKwlsZXQgbGlzdEVudHJ5PXN0cnBhcnQoTGlzdCxsaXN0RW50cnlCZWdpbixsaXN0RW50cnlFbmQtbGlzdEVudHJ5QmVnaW4pCisJbGV0IExpc3Q9c3RycGFydChMaXN0LENvbW1hKzEpCisJbGV0IENvbW1hPW1hdGNoKExpc3QsJywnKQorCSIgaWYgbGlzdEVudHJ5IGlzIGFsbCBzcGFjZXMgfHwgTGlzdCBpcyBlbXB0eSB8fCBMaXN0IGlzIGFsbCBzcGFjZXMKKwlpZiAobWF0Y2gobGlzdEVudHJ5LCdcc1wrJykgPT0gMCAmJiBtYXRjaChsaXN0RW50cnksJ1xTXCsnKSA9PSAtMSkKKwkJCVwgfHwgTGlzdCA9PSAnJyB8fCAobWF0Y2goTGlzdCwnXHNcKycpID09IDAgJiYgbWF0Y2goTGlzdCwnXFNcKycpID09IC0xKQorCQllY2hvZXJyICJDYW4ndCB1c2UgYWxsIHNwYWNlcyBmb3IgYW4gZW50cnkgPCIubGlzdEVudHJ5LiI+IgorCQllY2hvZXJyICJSZW1haW5pbmcgc3VwcGxpZWQgbGlzdDogPCIuTGlzdC4iPiIKKwkJcmV0dXJuCisJZW5kaWYKKworCWlmICFleGlzdHMoImI6U09NIikKKwkJbGV0IGI6U09NPSdcPCcKKwllbmRpZgorCWlmICFleGlzdHMoImI6RU9NIikKKwkJbGV0IGI6RU9NPSdcPicKKwllbmRpZgorCWlmICFleGlzdHMoImI6bWF0Y2hfd29yZHMiKQorCQlsZXQgYjptYXRjaF93b3Jkcz0nJworCWVuZGlmCisJaWYgYjptYXRjaF93b3JkcyAhPSAnJyAmJiBtYXRjaChiOm1hdGNoX3dvcmRzLCcsJCcpID09IC0xCisJCWxldCBiOm1hdGNoX3dvcmRzPWI6bWF0Y2hfd29yZHMuJywnCisJZW5kaWYKKwkiIG9rYXksIGFsbCBzZXQgYWRkIGZpcnN0IGVudHJ5IGluIHRoaXMgbGlzdAorCWxldCBiOm1hdGNoX3dvcmRzPWI6bWF0Y2hfd29yZHMuYjpTT00ubGlzdEVudHJ5LmI6RU9NLic6JworCXdoaWxlIENvbW1hICE9IC0xCisJCWxldCBsaXN0RW50cnlFbmQ9Q29tbWEKKwkJbGV0IGxpc3RFbnRyeT1zdHJwYXJ0KExpc3QsbGlzdEVudHJ5QmVnaW4sbGlzdEVudHJ5RW5kLWxpc3RFbnRyeUJlZ2luKQorCQlsZXQgTGlzdD1zdHJwYXJ0KExpc3QsQ29tbWErMSkKKwkJbGV0IENvbW1hPW1hdGNoKExpc3QsJywnKQorCQkiIGlmIGxpc3RFbnRyeSBpcyBhbGwgc3BhY2VzCisJCWlmIG1hdGNoKGxpc3RFbnRyeSwnXHNcKycpID09IDAgJiYgbWF0Y2gobGlzdEVudHJ5LCdcU1wrJykgPT0gLTEKKwkJCWVjaG9lcnIgIkNhbid0IHVzZSBhbGwgc3BhY2VzIGZvciBhbiBlbnRyeSA8Ii5saXN0RW50cnkuIj4gLSBza2lwcGluZyIKKwkJCWVjaG9lcnIgIlJlbWFpbmluZyBzdXBwbGllZCBsaXN0OiA8Ii5MaXN0LiI+IgorCQkJY29udGludWUKKwkJZW5kaWYKKwkJbGV0IGI6bWF0Y2hfd29yZHM9YjptYXRjaF93b3Jkcy5iOlNPTS5saXN0RW50cnkuYjpFT00uJzonCisJZW5kd2hpbGUKKwlsZXQgbGlzdEVudHJ5PUxpc3QKKwlsZXQgYjptYXRjaF93b3Jkcz1iOm1hdGNoX3dvcmRzLmI6U09NLmxpc3RFbnRyeS5iOkVPTQorZW5kZnVuY3Rpb24KKworIiBUT0RPOiAgV3JpdGUgYSB3cmFwcGVyIHRvIGhhbmRsZSBtdWx0aXBsZSBncm91cHMgaW4gb25lIGZ1bmN0aW9uIGNhbGwuCisiICAgICAgICBEb24ndCBzZWUgYSBsb3Qgb2YgdXRpbGl0eSBpbiB0aGlzIGFzIGl0IHdvdWxkIHVuZG91YnRlZGx5IHdhcnJhbnQKKyIgICAgICAgIGNvbnRpbnVhdGlvbiBsaW5lcyBpbiB0aGUgZmlsZXR5cGUgc2NyaXB0IGFuZCBpdCB3b3VsZCBiZSBhIHRvc3MKKyIgICAgICAgIHVwIGFzIHRvIHdoaWNoIGlzIG1vcmUgcmVhZGFibGU6IGluZGl2aWR1YWwgY2FsbHMgb25lIHRvIGEgbGluZSBvcgorIiAgICAgICAgYSBzaW5nbGUgY2FsbCB3aXRoIGNvbnRpbnVhdGlvbiBsaW5lcy4gIEkgdm90ZSBmb3IgdGhlIGZvcm1lci4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vbXVwYWQudmltIGIvcnVudGltZS9mdHBsdWdpbi9tdXBhZC52aW0KaW5kZXggNzkxYjk5YS4uZWYzYTRmZSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9tdXBhZC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9tdXBhZC52aW0KQEAgLTEsMzAgKzEsMzAgQEAKLSIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlDQotIiBMYW5ndWFnZTogICAgTXVQQUQgc291cmNlIGZpbGVzDQotIiBNYWludGFpbmVyOiAgRGF2ZSBTaWx2aWEgPGRzaWx2aWFAbWNoc2kuY29tPg0KLSIgRmlsZW5hbWVzOiAgICoubXUNCi0iIERhdGU6ICAgICAgICA2LzMwLzIwMDQNCi0NCi1pZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZg0KLWxldCBiOmRpZF9mdHBsdWdpbiA9IDENCi0NCi0iIENoYW5nZSB0aGUgOmJyb3dzZSBlIGZpbHRlciB0byBwcmltYXJpbHkgc2hvdyBNdVBBRCBzb3VyY2UgZmlsZXMuDQotaWYgaGFzKCJndWlfd2luMzIiKQ0KLSAgbGV0ICBiOmJyb3dzZWZpbHRlcj0NCi0JCVwgIk11UEFEIHNvdXJjZSAoKi5tdSlcdCoubXVcbiIgLg0KLQkJXAkiQWxsIEZpbGVzICgqLiopXHQqLipcbiINCi1lbmRpZg0KLQ0KLSIgbWF0Y2hpdC52aW0gbm90IGxvYWRlZCAtLSBkb24ndCBkbyBhbnl0aW5nIGJlbG93DQotaWYgIWV4aXN0cygibG9hZGVkX21hdGNoaXQiKQ0KLQkiIGVjaG9tc2cgIm1hdGNoaXQudmltIG5vdCBsb2FkZWQgLS0gZmluaXNoaW5nIg0KLQlmaW5pc2gNCi1lbmRpZg0KLQ0KLSIgc291cmNlIHRoZSBBcHBlbmRNYXRjaEdyb3VwIGZ1bmN0aW9uIGZpbGUNCi1ydW50aW1lIGZ0cGx1Z2luL0FwcGVuZE1hdGNoR3JvdXAudmltDQotDQotIiBmaWxsIGI6bWF0Y2hfd29yZHMgZm9yIE11UEFEDQotY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdkb21haW4sZW5kX2RvbWFpbicpDQotY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdwcm9jLGJlZ2luLGVuZF9wcm9jJykNCi1jYWxsIEFwcGVuZE1hdGNoR3JvdXAoJ2lmLHRoZW4sZWxpZixlbHNlLGVuZF9pZicpDQotY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdcJShmb3JcfHdoaWxlXHxyZXBlYXRcfGNhc2VcKSxvZixkbyxicmVhayxuZXh0LHVudGlsLFwlKGVuZF9mb3JcfGVuZF93aGlsZVx8ZW5kX3JlcGVhdFx8ZW5kX2Nhc2VcKScpDQorIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKKyIgTGFuZ3VhZ2U6ICAgIE11UEFEIHNvdXJjZSBmaWxlcworIiBNYWludGFpbmVyOiAgRGF2ZSBTaWx2aWEgPGRzaWx2aWFAbWNoc2kuY29tPgorIiBGaWxlbmFtZXM6ICAgKi5tdQorIiBEYXRlOiAgICAgICAgNi8zMC8yMDA0CisKK2lmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKKyIgQ2hhbmdlIHRoZSA6YnJvd3NlIGUgZmlsdGVyIHRvIHByaW1hcmlseSBzaG93IE11UEFEIHNvdXJjZSBmaWxlcy4KK2lmIGhhcygiZ3VpX3dpbjMyIikKKyAgbGV0ICBiOmJyb3dzZWZpbHRlcj0KKwkJXCAiTXVQQUQgc291cmNlICgqLm11KVx0Ki5tdVxuIiAuCisJCVwJIkFsbCBGaWxlcyAoKi4qKVx0Ki4qXG4iCitlbmRpZgorCisiIG1hdGNoaXQudmltIG5vdCBsb2FkZWQgLS0gZG9uJ3QgZG8gYW55dGluZyBiZWxvdworaWYgIWV4aXN0cygibG9hZGVkX21hdGNoaXQiKQorCSIgZWNob21zZyAibWF0Y2hpdC52aW0gbm90IGxvYWRlZCAtLSBmaW5pc2hpbmciCisJZmluaXNoCitlbmRpZgorCisiIHNvdXJjZSB0aGUgQXBwZW5kTWF0Y2hHcm91cCBmdW5jdGlvbiBmaWxlCitydW50aW1lIGZ0cGx1Z2luL0FwcGVuZE1hdGNoR3JvdXAudmltCisKKyIgZmlsbCBiOm1hdGNoX3dvcmRzIGZvciBNdVBBRAorY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdkb21haW4sZW5kX2RvbWFpbicpCitjYWxsIEFwcGVuZE1hdGNoR3JvdXAoJ3Byb2MsYmVnaW4sZW5kX3Byb2MnKQorY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdpZix0aGVuLGVsaWYsZWxzZSxlbmRfaWYnKQorY2FsbCBBcHBlbmRNYXRjaEdyb3VwKCdcJShmb3JcfHdoaWxlXHxyZXBlYXRcfGNhc2VcKSxvZixkbyxicmVhayxuZXh0LHVudGlsLFwlKGVuZF9mb3JcfGVuZF93aGlsZVx8ZW5kX3JlcGVhdFx8ZW5kX2Nhc2VcKScpCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9wYXNjYWwudmltIGIvcnVudGltZS9pbmRlbnQvcGFzY2FsLnZpbQppbmRleCA3MDg1Mjg3Li5iMWE2NTJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9wYXNjYWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L3Bhc2NhbC52aW0KQEAgLTEsMTczICsxLDE3MyBAQAotIiBWaW0gaW5kZW50IGZpbGUNCi0iIExhbmd1YWdlOiAgICBQYXNjYWwNCi0iIE1haW50YWluZXI6ICBOZWlsIENhcnRlciA8bi5jYXJ0ZXJAc3dhbnNlYS5hYy51az4NCi0iIENyZWF0ZWQ6ICAgICAyMDA0IEp1bCAxMw0KLSIgTGFzdCBDaGFuZ2U6IDIwMDUgSnVuIDE1DQotDQotDQotaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQ0KLQlmaW5pc2gNCi1lbmRpZg0KLWxldCBiOmRpZF9pbmRlbnQgPSAxDQotDQotc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRQYXNjYWxJbmRlbnQodjpsbnVtKQ0KLXNldGxvY2FsIGluZGVudGtleXMmDQotc2V0bG9jYWwgaW5kZW50a2V5cys9PWVuZDssPT1jb25zdCw9PXR5cGUsPT12YXIsPT1iZWdpbiw9PXJlcGVhdCw9PXVudGlsLD09Zm9yDQotc2V0bG9jYWwgaW5kZW50a2V5cys9PXByb2dyYW0sPT1mdW5jdGlvbiw9PXByb2NlZHVyZSw9PW9iamVjdCw9PXByaXZhdGUNCi1zZXRsb2NhbCBpbmRlbnRrZXlzKz09cmVjb3JkLD09aWYsPT1lbHNlLD09Y2FzZQ0KLQ0KLWlmIGV4aXN0cygiKkdldFBhc2NhbEluZGVudCIpDQotCWZpbmlzaA0KLWVuZGlmDQotDQotDQotZnVuY3Rpb24hIHM6R2V0UHJldk5vbkNvbW1lbnRMaW5lTnVtKCBsaW5lX251bSApDQotDQotCSIgU2tpcCBsaW5lcyBzdGFydGluZyB3aXRoIGEgY29tbWVudA0KLQlsZXQgU0tJUF9MSU5FUyA9ICdeXHMqXChcKChcKlwpXHxcKFwqXCBcKVx8XChcKilcKVx8e1x8fVwpJw0KLQ0KLQlsZXQgbmxpbmUgPSBhOmxpbmVfbnVtDQotCXdoaWxlIG5saW5lID4gMA0KLQkJbGV0IG5saW5lID0gcHJldm5vbmJsYW5rKG5saW5lLTEpDQotCQlpZiBnZXRsaW5lKG5saW5lKSAhfj8gU0tJUF9MSU5FUw0KLQkJCWJyZWFrDQotCQllbmRpZg0KLQllbmR3aGlsZQ0KLQ0KLQlyZXR1cm4gbmxpbmUNCi1lbmRmdW5jdGlvbg0KLQ0KLQ0KLWZ1bmN0aW9uISBHZXRQYXNjYWxJbmRlbnQoIGxpbmVfbnVtICkNCi0JIiBMaW5lIDAgYWx3YXlzIGdvZXMgYXQgY29sdW1uIDANCi0JaWYgYTpsaW5lX251bSA9PSAwDQotCQlyZXR1cm4gMA0KLQllbmRpZg0KLQ0KLQlsZXQgdGhpc19jb2RlbGluZSA9IGdldGxpbmUoIGE6bGluZV9udW0gKQ0KLQ0KLQkiIElmIGluIHRoZSBtaWRkbGUgb2YgYSB0aHJlZS1wYXJ0IGNvbW1lbnQNCi0JaWYgdGhpc19jb2RlbGluZSA9fiAnXlxzKlwqJw0KLQkJcmV0dXJuIGluZGVudCggYTpsaW5lX251bSApDQotCWVuZGlmDQotDQotCWxldCBwcmV2X2NvZGVsaW5lX251bSA9IHM6R2V0UHJldk5vbkNvbW1lbnRMaW5lTnVtKCBhOmxpbmVfbnVtICkNCi0JbGV0IHByZXZfY29kZWxpbmUgPSBnZXRsaW5lKCBwcmV2X2NvZGVsaW5lX251bSApDQotCWxldCBpbmRudCA9IGluZGVudCggcHJldl9jb2RlbGluZV9udW0gKQ0KLQ0KLQkiIENvbXBpbGVyIGRpcmVjdGl2ZXMgc2hvdWxkIGFsd2F5cyBnbyBpbiBjb2x1bW4gemVyby4NCi0JaWYgdGhpc19jb2RlbGluZSA9fiAnXlxzKntcKFwkSUZERUZcfFwkRUxTRVx8XCRFTkRJRlwpJw0KLQkJcmV0dXJuIDANCi0JZW5kaWYNCi0NCi0JIiBUaGVzZSBpdGVtcyBoYXZlIG5vdGhpbmcgYmVmb3JlIG9yIGFmdGVyIChub3QgZXZlbiBhIGNvbW1lbnQpLCBhbmQNCi0JIiBnbyBvbiBjb2x1bW4gMC4gTWFrZSBzdXJlIHRoYXQgdGhlIF5ccyogaXMgZm9sbG93ZWQgYnkgXCggdG8gbWFrZQ0KLQkiIE9ScyB3b3JrIHByb3Blcmx5LCBhbmQgbm90IGluY2x1ZGUgdGhlIHN0YXJ0IG9mIGxpbmUgKHRoaXMgbXVzdA0KLQkiIGFsd2F5cyBhcHBlYXIpLg0KLQkiIFRoZSBicmFja2V0ZWQgZXhwcmVzc2lvbiB3aXRoIHRoZSB1bmRlcmxpbmUgaXMgYSByb3V0aW5lDQotCSIgc2VwYXJhdG9yLiBUaGlzIGlzIG9uZSBjYXNlIHdoZXJlIHdlIGRvIGluZGVudCBjb21tZW50IGxpbmVzLg0KLQlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXCgoXCpcIF9cK1wgXCopXHxcPFwoY29uc3RcfHZhclwpXD5cKSQnDQotCQlyZXR1cm4gMA0KLQllbmRpZg0KLQ0KLQkiIFRoZXNlIGl0ZW1zIG1heSBoYXZlIHRleHQgYWZ0ZXIgdGhlbSwgYW5kIGdvIG9uIGNvbHVtbiAwIChpbiBtb3N0DQotCSIgY2FzZXMpLiBUaGUgcHJvYmxlbSBpcyB0aGF0ICJmdW5jdGlvbiIgYW5kICJwcm9jZWR1cmUiIGtleXdvcmRzDQotCSIgc2hvdWxkIGJlIGluZGVudGVkIGlmIHdpdGhpbiBhIGNsYXNzIGRlY2xhcmF0aW9uLg0KLQlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKHByb2dyYW1cfHR5cGVcfHVzZXNcfHByb2NlZHVyZVx8ZnVuY3Rpb25cKVw+Jw0KLQkJcmV0dXJuIDANCi0JZW5kaWYNCi0NCi0JIiBCRUdJTg0KLQkiIElmIHRoZSBiZWdpbiBkb2VzIG5vdCBjb21lIGFmdGVyICJpZiIsICJmb3IiLCBvciAiZWxzZSIsIHRoZW4gaXQNCi0JIiBnb2VzIGluIGNvbHVtbiAwDQotCWlmIHRoaXNfY29kZWxpbmUgPX4gJ15ccypiZWdpblw+JyAmJiBwcmV2X2NvZGVsaW5lICF+ICdeXHMqXDxcKGlmXHxmb3JcfGVsc2VcKVw+Jw0KLQkJcmV0dXJuIDANCi0JZW5kaWYNCi0NCi0JIiBUaGVzZSBrZXl3b3JkcyBhcmUgaW5kZW50ZWQgb25jZSBvbmx5Lg0KLQlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKHByaXZhdGVcKVw+Jw0KLQkJcmV0dXJuICZzaGlmdHdpZHRoDQotCWVuZGlmDQotDQotCSIgSWYgdGhlIFBSRVZJT1VTIExJTkUgY29udGFpbmVkIHRoZXNlIGl0ZW1zLCB0aGUgY3VycmVudCBsaW5lIGlzDQotCSIgYWx3YXlzIGluZGVudGVkIG9uY2UuDQotCWlmIHByZXZfY29kZWxpbmUgPX4gJ15ccypcPFwodHlwZVx8dXNlc1wpXD4nDQotCQlyZXR1cm4gJnNoaWZ0d2lkdGgNCi0JZW5kaWYNCi0NCi0JIiBUaGVzZSBrZXl3b3JkcyBhcmUgaW5kZW50ZWQgb25jZSBvbmx5LiBQb3NzaWJseSBzdXJyb3VuZGVkIGJ5DQotCSIgb3RoZXIgY2hhcnMuDQotCWlmIHRoaXNfY29kZWxpbmUgPX4gJ14uXCtcPFwob2JqZWN0XHxyZWNvcmRcKVw+Jw0KLQkJcmV0dXJuICZzaGlmdHdpZHRoDQotCWVuZGlmDQotDQotCSIgSWYgdGhlIHByZXZpb3VzIGxpbmUgd2FzIGluZGVudGluZy4uLg0KLQlpZiBwcmV2X2NvZGVsaW5lID1+ICdeXHMqXDxcKGZvclx8aWZcfGNhc2VcfGVsc2VcfGVuZFwgZWxzZVwpXD4nDQotCQkiIHRoZW4gaW5kZW50Lg0KLQkJbGV0IGluZG50ID0gaW5kbnQgKyAmc2hpZnR3aWR0aA0KLQkJIiBCVVQuLi4gaWYgdGhpcyBpcyB0aGUgc3RhcnQgb2YgYSBtdWx0aXN0YXRlbWVudCBibG9jayB0aGVuIHdlDQotCQkiIG5lZWQgdG8gYWxpZ24gdGhlIGJlZ2luIHdpdGggdGhlIHByZXZpb3VzIGxpbmUuDQotCQlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqYmVnaW5cPicNCi0JCQlyZXR1cm4gaW5kbnQgLSAmc2hpZnR3aWR0aA0KLQkJZW5kaWYNCi0NCi0JCSIgV2UgYWxzbyBuZWVkIHRvIGtlZXAgdGhlIGluZGVudGF0aW9uIGxldmVsIGNvbnN0YW50IGlmIHRoZQ0KLQkJIiB3aG9sZSBpZi10aGVuIHN0YXRlbWVudCB3YXMgb24gb25lIGxpbmUuDQotCQlpZiBwcmV2X2NvZGVsaW5lID1+ICdcPHRoZW5cPi5cKycNCi0JCQlsZXQgaW5kbnQgPSBpbmRudCAtICZzaGlmdHdpZHRoDQotCQllbmRpZg0KLQllbmRpZg0KLQ0KLQkiIFBSRVZJT1VTLUxJTkUgQkVHSU4NCi0JIiBJZiB0aGUgcHJldmlvdXMgbGluZSB3YXMgYW4gaW5kZW50aW5nIGtleXdvcmQgdGhlbiBpbmRlbnQgb25jZS4uLg0KLQlpZiBwcmV2X2NvZGVsaW5lID1+ICdeXHMqXDxcKGNvbnN0XHx2YXJcfGJlZ2luXHxyZXBlYXRcfHByaXZhdGVcKVw+Jw0KLQkJIiBCdXQgb25seSBpZiB0aGlzIGlzIGFub3RoZXIgdmFyIGluIGEgbGlzdC4NCi0JCWlmIHRoaXNfY29kZWxpbmUgIX4gJ15ccyp2YXJcPicNCi0JCQlyZXR1cm4gaW5kbnQgKyAmc2hpZnR3aWR0aA0KLQkJZW5kaWYNCi0JZW5kaWYNCi0NCi0JIiBQUkVWSU9VUy1MSU5FIEJFR0lODQotCSIgSW5kZW50IGNvZGUgYWZ0ZXIgYSBjYXNlIHN0YXRlbWVudCBiZWdpbg0KLQlpZiBwcmV2X2NvZGVsaW5lID1+ICdcOlwgYmVnaW5cPicNCi0JCXJldHVybiBpbmRudCArICZzaGlmdHdpZHRoDQotCWVuZGlmDQotDQotCSIgVGhlc2Ugd29yZHMgbWF5IGhhdmUgdGV4dCBiZWZvcmUgdGhlbSBvbiB0aGUgbGluZSAoaGVuY2UgdGhlIC4qKQ0KLQkiIGJ1dCBhcmUgZm9sbG93ZWQgYnkgbm90aGluZy4gQWx3YXlzIGluZGVudCBvbmNlIG9ubHkuDQotCWlmIHByZXZfY29kZWxpbmUgPX4gJ15cKC4qXHxccypcKVw8XChvYmplY3RcfHJlY29yZFwpXD4kJw0KLQkJcmV0dXJuIGluZG50ICsgJnNoaWZ0d2lkdGgNCi0JZW5kaWYNCi0NCi0JIiBJZiB3ZSBqdXN0IGNsb3NlZCBhIGJyYWNrZXQgdGhhdCBzdGFydGVkIG9uIGEgcHJldmlvdXMgbGluZSwgdGhlbg0KLQkiIHVuaW5kZW50LiBCdXQgZG9uJ3QgcmV0dXJuIHlldCAtLSB3ZSBuZWVkIHRvIGNoZWNrIGZvciBmdXJ0aGVyDQotCSIgdW5pbmRlbnRhdGlvbiAoZm9yIGVuZC91bnRpbC9lbHNlKQ0KLQlpZiBwcmV2X2NvZGVsaW5lID1+ICdeW14oXSpbXipdKScNCi0JCWxldCBpbmRudCA9IGluZG50IC0gJnNoaWZ0d2lkdGgNCi0JZW5kaWYNCi0NCi0JIiBBdCB0aGUgZW5kIG9mIGEgYmxvY2ssIHdlIGhhdmUgdG8gdW5pbmRlbnQgYm90aCB0aGUgY3VycmVudCBsaW5lDQotCSIgKHRoZSAiZW5kIiBmb3IgaW5zdGFuY2UpIGFuZCB0aGUgbmV3bHktY3JlYXRlZCBsaW5lLg0KLQlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKGVuZFx8dW50aWxcfGVsc2VcKVw+Jw0KLQkJcmV0dXJuIGluZG50IC0gJnNoaWZ0d2lkdGgNCi0JZW5kaWYNCi0NCi0JIiBJZiB3ZSBoYXZlIG9wZW5lZCBhIGJyYWNrZXQgYW5kIGl0IGNvbnRpbnVlcyBvdmVyIG9uZSBsaW5lLA0KLQkiIHRoZW4gaW5kZW50IG9uY2UuDQotCSINCi0JIiBSRSA9IGFuIG9wZW5pbmcgYnJhY2tldCBmb2xsb3dlZCBieSBhbnkgYW1vdW50IG9mIGFueXRoaW5nIG90aGVyDQotCSIgdGhhbiBhIGNsb3NpbmcgYnJhY2tldCBhbmQgdGhlbiB0aGUgZW5kLW9mLWxpbmUuDQotCSINCi0JIiBJZiB3ZSBkaWRuJ3QgaW5jbHVkZSB0aGUgZW5kIG9mIGxpbmUsIHRoaXMgUkUgd291bGQgbWF0Y2ggZXZlbg0KLQkiIGNsb3NlZCBicmFja2V0cywgc2luY2UgaXQgd291bGQgbWF0Y2ggZXZlcnl0aGluZyB1cCB0byB0aGUgY2xvc2luZw0KLQkiIGJyYWNrZXQuDQotCSINCi0JIiBUaGlzIHRlc3QgaXNuJ3QgY2xldmVyIGVub3VnaCB0byBoYW5kbGUgYnJhY2tldHMgaW5zaWRlIHN0cmluZ3Mgb3INCi0JIiBjb21tZW50cy4NCi0JaWYgcHJldl9jb2RlbGluZSA9fiAnKFteKl1cPVteKV0qJCcNCi0JCXJldHVybiBpbmRudCArICZzaGlmdHdpZHRoDQotCWVuZGlmDQotDQotCXJldHVybiBpbmRudA0KLWVuZGZ1bmN0aW9uDQotDQorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgIFBhc2NhbAorIiBNYWludGFpbmVyOiAgTmVpbCBDYXJ0ZXIgPG4uY2FydGVyQHN3YW5zZWEuYWMudWs+CisiIENyZWF0ZWQ6ICAgICAyMDA0IEp1bCAxMworIiBMYXN0IENoYW5nZTogMjAwNSBKdWwgMDUKKworCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisJZmluaXNoCitlbmRpZgorbGV0IGI6ZGlkX2luZGVudCA9IDEKKworc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRQYXNjYWxJbmRlbnQodjpsbnVtKQorc2V0bG9jYWwgaW5kZW50a2V5cyYKK3NldGxvY2FsIGluZGVudGtleXMrPT1lbmQ7LD09Y29uc3QsPT10eXBlLD09dmFyLD09YmVnaW4sPT1yZXBlYXQsPT11bnRpbCw9PWZvcgorc2V0bG9jYWwgaW5kZW50a2V5cys9PXByb2dyYW0sPT1mdW5jdGlvbiw9PXByb2NlZHVyZSw9PW9iamVjdCw9PXByaXZhdGUKK3NldGxvY2FsIGluZGVudGtleXMrPT1yZWNvcmQsPT1pZiw9PWVsc2UsPT1jYXNlCisKK2lmIGV4aXN0cygiKkdldFBhc2NhbEluZGVudCIpCisJZmluaXNoCitlbmRpZgorCisKK2Z1bmN0aW9uISBzOkdldFByZXZOb25Db21tZW50TGluZU51bSggbGluZV9udW0gKQorCisJIiBTa2lwIGxpbmVzIHN0YXJ0aW5nIHdpdGggYSBjb21tZW50CisJbGV0IFNLSVBfTElORVMgPSAnXlxzKlwoXCgoXCpcKVx8XChcKlwgXClcfFwoXCopXClcfHtcfH1cKScKKworCWxldCBubGluZSA9IGE6bGluZV9udW0KKwl3aGlsZSBubGluZSA+IDAKKwkJbGV0IG5saW5lID0gcHJldm5vbmJsYW5rKG5saW5lLTEpCisJCWlmIGdldGxpbmUobmxpbmUpICF+PyBTS0lQX0xJTkVTCisJCQlicmVhaworCQllbmRpZgorCWVuZHdoaWxlCisKKwlyZXR1cm4gbmxpbmUKK2VuZGZ1bmN0aW9uCisKKworZnVuY3Rpb24hIEdldFBhc2NhbEluZGVudCggbGluZV9udW0gKQorCSIgTGluZSAwIGFsd2F5cyBnb2VzIGF0IGNvbHVtbiAwCisJaWYgYTpsaW5lX251bSA9PSAwCisJCXJldHVybiAwCisJZW5kaWYKKworCWxldCB0aGlzX2NvZGVsaW5lID0gZ2V0bGluZSggYTpsaW5lX251bSApCisKKwkiIElmIGluIHRoZSBtaWRkbGUgb2YgYSB0aHJlZS1wYXJ0IGNvbW1lbnQKKwlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXConCisJCXJldHVybiBpbmRlbnQoIGE6bGluZV9udW0gKQorCWVuZGlmCisKKwlsZXQgcHJldl9jb2RlbGluZV9udW0gPSBzOkdldFByZXZOb25Db21tZW50TGluZU51bSggYTpsaW5lX251bSApCisJbGV0IHByZXZfY29kZWxpbmUgPSBnZXRsaW5lKCBwcmV2X2NvZGVsaW5lX251bSApCisJbGV0IGluZG50ID0gaW5kZW50KCBwcmV2X2NvZGVsaW5lX251bSApCisKKwkiIENvbXBpbGVyIGRpcmVjdGl2ZXMgc2hvdWxkIGFsd2F5cyBnbyBpbiBjb2x1bW4gemVyby4KKwlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqe1woXCRJRkRFRlx8XCRFTFNFXHxcJEVORElGXCknCisJCXJldHVybiAwCisJZW5kaWYKKworCSIgVGhlc2UgaXRlbXMgaGF2ZSBub3RoaW5nIGJlZm9yZSBvciBhZnRlciAobm90IGV2ZW4gYSBjb21tZW50KSwgYW5kCisJIiBnbyBvbiBjb2x1bW4gMC4gTWFrZSBzdXJlIHRoYXQgdGhlIF5ccyogaXMgZm9sbG93ZWQgYnkgXCggdG8gbWFrZQorCSIgT1JzIHdvcmsgcHJvcGVybHksIGFuZCBub3QgaW5jbHVkZSB0aGUgc3RhcnQgb2YgbGluZSAodGhpcyBtdXN0CisJIiBhbHdheXMgYXBwZWFyKS4KKwkiIFRoZSBicmFja2V0ZWQgZXhwcmVzc2lvbiB3aXRoIHRoZSB1bmRlcmxpbmUgaXMgYSByb3V0aW5lCisJIiBzZXBhcmF0b3IuIFRoaXMgaXMgb25lIGNhc2Ugd2hlcmUgd2UgZG8gaW5kZW50IGNvbW1lbnQgbGluZXMuCisJaWYgdGhpc19jb2RlbGluZSA9fiAnXlxzKlwoKFwqXCBfXCtcIFwqKVx8XDxcKGNvbnN0XHx2YXJcKVw+XCkkJworCQlyZXR1cm4gMAorCWVuZGlmCisKKwkiIFRoZXNlIGl0ZW1zIG1heSBoYXZlIHRleHQgYWZ0ZXIgdGhlbSwgYW5kIGdvIG9uIGNvbHVtbiAwIChpbiBtb3N0CisJIiBjYXNlcykuIFRoZSBwcm9ibGVtIGlzIHRoYXQgImZ1bmN0aW9uIiBhbmQgInByb2NlZHVyZSIga2V5d29yZHMKKwkiIHNob3VsZCBiZSBpbmRlbnRlZCBpZiB3aXRoaW4gYSBjbGFzcyBkZWNsYXJhdGlvbi4KKwlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKHByb2dyYW1cfHR5cGVcfHVzZXNcfHByb2NlZHVyZVx8ZnVuY3Rpb25cKVw+JworCQlyZXR1cm4gMAorCWVuZGlmCisKKwkiIEJFR0lOCisJIiBJZiB0aGUgYmVnaW4gZG9lcyBub3QgY29tZSBhZnRlciAiaWYiLCAiZm9yIiwgb3IgImVsc2UiLCB0aGVuIGl0CisJIiBnb2VzIGluIGNvbHVtbiAwCisJaWYgdGhpc19jb2RlbGluZSA9fiAnXlxzKmJlZ2luXD4nICYmIHByZXZfY29kZWxpbmUgIX4gJ15ccypcPFwoaWZcfGZvclx8ZWxzZVwpXD4nCisJCXJldHVybiAwCisJZW5kaWYKKworCSIgVGhlc2Uga2V5d29yZHMgYXJlIGluZGVudGVkIG9uY2Ugb25seS4KKwlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKHByaXZhdGVcKVw+JworCQlyZXR1cm4gJnNoaWZ0d2lkdGgKKwllbmRpZgorCisJIiBJZiB0aGUgUFJFVklPVVMgTElORSBjb250YWluZWQgdGhlc2UgaXRlbXMsIHRoZSBjdXJyZW50IGxpbmUgaXMKKwkiIGFsd2F5cyBpbmRlbnRlZCBvbmNlLgorCWlmIHByZXZfY29kZWxpbmUgPX4gJ15ccypcPFwodHlwZVx8dXNlc1wpXD4nCisJCXJldHVybiAmc2hpZnR3aWR0aAorCWVuZGlmCisKKwkiIFRoZXNlIGtleXdvcmRzIGFyZSBpbmRlbnRlZCBvbmNlIG9ubHkuIFBvc3NpYmx5IHN1cnJvdW5kZWQgYnkKKwkiIG90aGVyIGNoYXJzLgorCWlmIHRoaXNfY29kZWxpbmUgPX4gJ14uXCtcPFwob2JqZWN0XHxyZWNvcmRcKVw+JworCQlyZXR1cm4gJnNoaWZ0d2lkdGgKKwllbmRpZgorCisJIiBJZiB0aGUgcHJldmlvdXMgbGluZSB3YXMgaW5kZW50aW5nLi4uCisJaWYgcHJldl9jb2RlbGluZSA9fiAnXlxzKlw8XChmb3JcfGlmXHxjYXNlXHxlbHNlXHxlbmRcIGVsc2VcKVw+JworCQkiIHRoZW4gaW5kZW50LgorCQlsZXQgaW5kbnQgPSBpbmRudCArICZzaGlmdHdpZHRoCisJCSIgQlVULi4uIGlmIHRoaXMgaXMgdGhlIHN0YXJ0IG9mIGEgbXVsdGlzdGF0ZW1lbnQgYmxvY2sgdGhlbiB3ZQorCQkiIG5lZWQgdG8gYWxpZ24gdGhlIGJlZ2luIHdpdGggdGhlIHByZXZpb3VzIGxpbmUuCisJCWlmIHRoaXNfY29kZWxpbmUgPX4gJ15ccypiZWdpblw+JworCQkJcmV0dXJuIGluZG50IC0gJnNoaWZ0d2lkdGgKKwkJZW5kaWYKKworCQkiIFdlIGFsc28gbmVlZCB0byBrZWVwIHRoZSBpbmRlbnRhdGlvbiBsZXZlbCBjb25zdGFudCBpZiB0aGUKKwkJIiB3aG9sZSBpZi10aGVuIHN0YXRlbWVudCB3YXMgb24gb25lIGxpbmUuCisJCWlmIHByZXZfY29kZWxpbmUgPX4gJ1w8dGhlblw+LlwrJworCQkJbGV0IGluZG50ID0gaW5kbnQgLSAmc2hpZnR3aWR0aAorCQllbmRpZgorCWVuZGlmCisKKwkiIFBSRVZJT1VTLUxJTkUgQkVHSU4KKwkiIElmIHRoZSBwcmV2aW91cyBsaW5lIHdhcyBhbiBpbmRlbnRpbmcga2V5d29yZCB0aGVuIGluZGVudCBvbmNlLi4uCisJaWYgcHJldl9jb2RlbGluZSA9fiAnXlxzKlw8XChjb25zdFx8dmFyXHxiZWdpblx8cmVwZWF0XHxwcml2YXRlXClcPicKKwkJIiBCdXQgb25seSBpZiB0aGlzIGlzIGFub3RoZXIgdmFyIGluIGEgbGlzdC4KKwkJaWYgdGhpc19jb2RlbGluZSAhfiAnXlxzKnZhclw+JworCQkJcmV0dXJuIGluZG50ICsgJnNoaWZ0d2lkdGgKKwkJZW5kaWYKKwllbmRpZgorCisJIiBQUkVWSU9VUy1MSU5FIEJFR0lOCisJIiBJbmRlbnQgY29kZSBhZnRlciBhIGNhc2Ugc3RhdGVtZW50IGJlZ2luCisJaWYgcHJldl9jb2RlbGluZSA9fiAnXDpcIGJlZ2luXD4nCisJCXJldHVybiBpbmRudCArICZzaGlmdHdpZHRoCisJZW5kaWYKKworCSIgVGhlc2Ugd29yZHMgbWF5IGhhdmUgdGV4dCBiZWZvcmUgdGhlbSBvbiB0aGUgbGluZSAoaGVuY2UgdGhlIC4qKQorCSIgYnV0IGFyZSBmb2xsb3dlZCBieSBub3RoaW5nLiBBbHdheXMgaW5kZW50IG9uY2Ugb25seS4KKwlpZiBwcmV2X2NvZGVsaW5lID1+ICdeXCguKlx8XHMqXClcPFwob2JqZWN0XHxyZWNvcmRcKVw+JCcKKwkJcmV0dXJuIGluZG50ICsgJnNoaWZ0d2lkdGgKKwllbmRpZgorCisJIiBJZiB3ZSBqdXN0IGNsb3NlZCBhIGJyYWNrZXQgdGhhdCBzdGFydGVkIG9uIGEgcHJldmlvdXMgbGluZSwgdGhlbgorCSIgdW5pbmRlbnQuIEJ1dCBkb24ndCByZXR1cm4geWV0IC0tIHdlIG5lZWQgdG8gY2hlY2sgZm9yIGZ1cnRoZXIKKwkiIHVuaW5kZW50YXRpb24gKGZvciBlbmQvdW50aWwvZWxzZSkKKwlpZiBwcmV2X2NvZGVsaW5lID1+ICdeW14oXSpbXipdKScKKwkJbGV0IGluZG50ID0gaW5kbnQgLSAmc2hpZnR3aWR0aAorCWVuZGlmCisKKwkiIEF0IHRoZSBlbmQgb2YgYSBibG9jaywgd2UgaGF2ZSB0byB1bmluZGVudCBib3RoIHRoZSBjdXJyZW50IGxpbmUKKwkiICh0aGUgImVuZCIgZm9yIGluc3RhbmNlKSBhbmQgdGhlIG5ld2x5LWNyZWF0ZWQgbGluZS4KKwlpZiB0aGlzX2NvZGVsaW5lID1+ICdeXHMqXDxcKGVuZFx8dW50aWxcfGVsc2VcKVw+JworCQlyZXR1cm4gaW5kbnQgLSAmc2hpZnR3aWR0aAorCWVuZGlmCisKKwkiIElmIHdlIGhhdmUgb3BlbmVkIGEgYnJhY2tldCBhbmQgaXQgY29udGludWVzIG92ZXIgb25lIGxpbmUsCisJIiB0aGVuIGluZGVudCBvbmNlLgorCSIKKwkiIFJFID0gYW4gb3BlbmluZyBicmFja2V0IGZvbGxvd2VkIGJ5IGFueSBhbW91bnQgb2YgYW55dGhpbmcgb3RoZXIKKwkiIHRoYW4gYSBjbG9zaW5nIGJyYWNrZXQgYW5kIHRoZW4gdGhlIGVuZC1vZi1saW5lLgorCSIKKwkiIElmIHdlIGRpZG4ndCBpbmNsdWRlIHRoZSBlbmQgb2YgbGluZSwgdGhpcyBSRSB3b3VsZCBtYXRjaCBldmVuCisJIiBjbG9zZWQgYnJhY2tldHMsIHNpbmNlIGl0IHdvdWxkIG1hdGNoIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGNsb3NpbmcKKwkiIGJyYWNrZXQuCisJIgorCSIgVGhpcyB0ZXN0IGlzbid0IGNsZXZlciBlbm91Z2ggdG8gaGFuZGxlIGJyYWNrZXRzIGluc2lkZSBzdHJpbmdzIG9yCisJIiBjb21tZW50cy4KKwlpZiBwcmV2X2NvZGVsaW5lID1+ICcoW14qXVw9W14pXSokJworCQlyZXR1cm4gaW5kbnQgKyAmc2hpZnR3aWR0aAorCWVuZGlmCisKKwlyZXR1cm4gaW5kbnQKK2VuZGZ1bmN0aW9uCisKZGlmZiAtLWdpdCBhL3J1bnRpbWUva2V5bWFwL2NhbmZyLXdpbi52aW0gYi9ydW50aW1lL2tleW1hcC9jYW5mci13aW4udmltCmluZGV4IDdhNDA1YmYuLjE5MDdmYzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUva2V5bWFwL2NhbmZyLXdpbi52aW0KKysrIGIvcnVudGltZS9rZXltYXAvY2FuZnItd2luLnZpbQpAQCAtMSw5MSArMSw5MSBAQAotIiBWaW0gS2V5bWFwIGZpbGUgZm9yIHRoZSBub3JtYWxpemVkIENhbmFkaWFuIG11bHRpbGluZ3VhbCBrZXlib2FyZA0KLSIgQ0FOL0NTQSBaMjQzLjIwMC05MiB1c2luZyB0aGUgbGF0aW4xIGVuY29kaW5nLg0KLSIgVGhpcyBtYXBwaW5nIGlzIGxpbWl0ZWQgaW4gc2NvcGUsIGFzIGl0IGFzc3VtZXMgdGhhdCB0aGUgQWx0R3INCi0iIGtleSB3b3JrcyBhcyBpdCB0eXBpY2FsbHkgZG9lcyBpbiBhIFdpbmRvd3Mgc3lzdGVtIHdpdGggYSBtdWx0aWxpbmd1YWwNCi0iIEVuZ2xpc2gga2V5Ym9hcmQuICBJdCBwcm9iYWJseSB3b24ndCB3b3JrIHdpdGggdGhlIFVTIGtleWJvYXJkIG9uIFVTDQotIiBFbmdsaXNoIHZlcnNpb25zIG9mIFdpbmRvd3MsIGJlY2F1c2UgdGhvc2UgZG9uJ3QgcHJvdmlkZSB0aGUgQWx0R3Iga2V5cy4NCi0iIFRoZSBtYXBwaW5nIHdhcyB0ZXN0ZWQgd2l0aCBXaW4yayBhbmQgV2luWFAuDQotDQotIiBNYWludGFpbmVyOiBFcmljIEpvYW5pcyA8am9hbmlzQGNzLnRvcm9udG8uZWR1Pg0KLSIgTGFzdCBDaGFuZ2U6IDIwMDQgSmFuIDEzDQotDQotIiAyMDAzIERlYyAwNA0KLSIgSW5pdGlhbCBSZXZpc2lvbg0KLQ0KLSIgMjAwNCBKYW4gMTMNCi0iIEFkZGVkIHRoZSB1cHBlciBjYXNlIGFjY2VudGVkIGNoYXJhY3RlcnMsIGZvcmdvdHRlbiBpbiB0aGUgaW5pdGlhbCB2ZXJzaW9uLg0KLQ0KLSIgQWxsIGNoYXJhY3RlcnMgYXJlIGdpdmVuIGxpdGVyYWxseSwgY29udmVyc2lvbiB0byBhbm90aGVyIGVuY29kaW5nIChlLmcuLA0KLSIgVVRGLTgpIHNob3VsZCB3b3JrLg0KLXNjcmlwdGVuY29kaW5nIGxhdGluMQ0KLQ0KLSIgVXNlIHRoaXMgc2hvcnQgbmFtZSBpbiB0aGUgc3RhdHVzIGxpbmUuDQotbGV0IGI6a2V5bWFwX25hbWUgPSAiY2FuZnIiDQotDQotbG9hZGtleW1hcA0KLTwJJw0KLT4JIg0KLS8J6Q0KLT8JyQ0KLScJ6A0KLVwiCcgNCi1cXAngDQotfAnADQotW2EJ4g0KLVtlCeoNCi1baQnuDQotW28J9A0KLVt1CfsNCi1bQQnCDQotW0UJyg0KLVtJCc4NCi1bTwnUDQotW1UJ2w0KLVtbCV4NCi17YQnkDQote2UJ6w0KLXtpCe8NCi17bwn2DQote3UJ/A0KLXt5Cf8NCi17QQnEDQote0UJyw0KLXtJCc8NCi17TwnWDQote1UJ3A0KLV0J5w0KLX0Jxw0KLWAJLw0KLX4JXFwNCi1eCT8NCi36CasNCi34CbsNCi2sCTwNCi2uCT4NCi27CbANCi3bYQngDQot22UJ6A0KLdtpCewNCi3bbwnyDQot23UJ+Q0KLdtBCcANCi3bRQnIDQot20kJzA0KLdtPCdINCi3bVQnZDQot29sJYA0KLd1hCeMNCi3dbwn1DQot3W4J8Q0KLd1zCd8NCi3dQQnDDQot3U8J1Q0KLd1OCdENCi3dUwnfDQot3d0Jfg0KLeAJfA0KLbcJew0KLbgJfQ0KLbkJWw0KLbAJXQ0KLb0JrA0KKyIgVmltIEtleW1hcCBmaWxlIGZvciB0aGUgbm9ybWFsaXplZCBDYW5hZGlhbiBtdWx0aWxpbmd1YWwga2V5Ym9hcmQKKyIgQ0FOL0NTQSBaMjQzLjIwMC05MiB1c2luZyB0aGUgbGF0aW4xIGVuY29kaW5nLgorIiBUaGlzIG1hcHBpbmcgaXMgbGltaXRlZCBpbiBzY29wZSwgYXMgaXQgYXNzdW1lcyB0aGF0IHRoZSBBbHRHcgorIiBrZXkgd29ya3MgYXMgaXQgdHlwaWNhbGx5IGRvZXMgaW4gYSBXaW5kb3dzIHN5c3RlbSB3aXRoIGEgbXVsdGlsaW5ndWFsCisiIEVuZ2xpc2gga2V5Ym9hcmQuICBJdCBwcm9iYWJseSB3b24ndCB3b3JrIHdpdGggdGhlIFVTIGtleWJvYXJkIG9uIFVTCisiIEVuZ2xpc2ggdmVyc2lvbnMgb2YgV2luZG93cywgYmVjYXVzZSB0aG9zZSBkb24ndCBwcm92aWRlIHRoZSBBbHRHciBrZXlzLgorIiBUaGUgbWFwcGluZyB3YXMgdGVzdGVkIHdpdGggV2luMmsgYW5kIFdpblhQLgorCisiIE1haW50YWluZXI6IEVyaWMgSm9hbmlzIDxqb2FuaXNAY3MudG9yb250by5lZHU+CisiIExhc3QgQ2hhbmdlOiAyMDA0IEphbiAxMworCisiIDIwMDMgRGVjIDA0CisiIEluaXRpYWwgUmV2aXNpb24KKworIiAyMDA0IEphbiAxMworIiBBZGRlZCB0aGUgdXBwZXIgY2FzZSBhY2NlbnRlZCBjaGFyYWN0ZXJzLCBmb3Jnb3R0ZW4gaW4gdGhlIGluaXRpYWwgdmVyc2lvbi4KKworIiBBbGwgY2hhcmFjdGVycyBhcmUgZ2l2ZW4gbGl0ZXJhbGx5LCBjb252ZXJzaW9uIHRvIGFub3RoZXIgZW5jb2RpbmcgKGUuZy4sCisiIFVURi04KSBzaG91bGQgd29yay4KK3NjcmlwdGVuY29kaW5nIGxhdGluMQorCisiIFVzZSB0aGlzIHNob3J0IG5hbWUgaW4gdGhlIHN0YXR1cyBsaW5lLgorbGV0IGI6a2V5bWFwX25hbWUgPSAiY2FuZnIiCisKK2xvYWRrZXltYXAKKzwJJworPgkiCisvCekKKz8JyQorJwnoCitcIgnICitcXAngCit8CcAKK1thCeIKK1tlCeoKK1tpCe4KK1tvCfQKK1t1CfsKK1tBCcIKK1tFCcoKK1tJCc4KK1tPCdQKK1tVCdsKK1tbCV4KK3thCeQKK3tlCesKK3tpCe8KK3tvCfYKK3t1CfwKK3t5Cf8KK3tBCcQKK3tFCcsKK3tJCc8KK3tPCdYKK3tVCdwKK10J5worfQnHCitgCS8KK34JXFwKK14JPwor+gmrCiv4CbsKK6wJPAorrgk+Ciu7CbAKK9thCeAKK9tlCegKK9tpCewKK9tvCfIKK9t1CfkKK9tBCcAKK9tFCcgKK9tJCcwKK9tPCdIKK9tVCdkKK9vbCWAKK91hCeMKK91vCfUKK91uCfEKK91zCd8KK91BCcMKK91PCdUKK91OCdEKK91TCd8KK93dCX4KK+AJfAortwl7Ciu4CX0KK7kJWworsAldCiu9CawKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvUkVBRE1FLnR4dCBiL3J1bnRpbWUvc3BlbGwvUkVBRE1FLnR4dAppbmRleCA4ZWE1MjcyLi40NGRlZGI3IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL1JFQURNRS50eHQKKysrIGIvcnVudGltZS9zcGVsbC9SRUFETUUudHh0CkBAIC0yLDcgKzIsNyBAQAogdGhlbS4gIFNlZSAiOmhlbHAgc3BlbGwiIGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiAKLUNvcHlyaWdodAorQ09QWVJJR0hUCiAKIFRoZSBmaWxlcyB1c2VkIGFzIGlucHV0IGZvciB0aGUgc3BlbGwgZmlsZXMgY29tZSBmcm9tIHRoZSBPcGVuT2ZmaWNlLm9yZyBzcGVsbAogZmlsZXMuICBNb3N0IG9mIHRoZW0gZ28gdW5kZXIgdGhlIExHUEwgb3IgYSBzaW1pbGFyIGxpY2Vuc2UuCkBAIC0xMCwzICsxMCw3OCBAQAogQ29weXJpZ2h0IG5vdGljZXMgZm9yIHNwZWNpZmljIGxhbmd1YWdlcyBhcmUgaW4gUkVBRE1FXz8/LnR4dC4gIE5vdGUgdGhhdCB0aGUKIGZpbGVzIGZvciBkaWZmZXJlbnQgcmVnaW9ucyBhcmUgbWVyZ2VkLCBib3RoIHRvIHNhdmUgc3BhY2UgYW5kIHRvIG1ha2UgaXQKIHBvc3NpYmxlIHRvIGhpZ2hsaWdodCB3b3JkcyBmb3IgYW5vdGhlciByZWdpb24gZGlmZmVyZW50IGZyb20gYmFkIHdvcmRzLgorCisKK0dFTkVSQVRJTkcgLlNQTCBGSUxFUworCitUaGlzIGludm9sdmVzIGRvd25sb2FkaW5nIHRoZSBmaWxlcyBmcm9tIHRoZSBPcGVuT2ZmaWNlLm9yZyBzZXJ2ZXIsIGFwcGx5aW5nIGEKK3BhdGNoIGFuZCBydW5uaW5nIFZpbSB0byBnZW5lcmF0ZSB0aGUgLnNwbCBmaWxlLiAgVG8gZG8gdGhpcyBhbGwgaW4gb25lIGdvIHVzZQordGhlIEFhcCBwcm9ncmFtICh3d3cuYS1hLXAub3JnKS4gIEl0J3Mgc2ltcGxlIHRvIGluc3RhbGwsIGl0IG9ubHkgcmVxdWlyZXMKK1B5dGhvbi4KKworWW91IGNhbiBhbHNvIGRvIGl0IG1hbnVhbGx5OgorMS4gRmV0Y2ggdGhlIHJpZ2h0IHNwZWxsIGZpbGUgZnJvbToKKyAgIGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCisKKzIuIFVuemlwIHRoZSBhcmNoaXZlOgorCXVuemlwIExMX1JSLnppcAorCiszLiBBcHBseSB0aGUgcGF0Y2g6CisJcGF0Y2ggPCBMTF9SUi5kaWZmCisKKzQuIElmIHRoZSBsYW5ndWFnZSBoYXMgbXVsdGlwbGUgcmVnaW9ucyBkbyB0aGUgYWJvdmUgZm9yIGVhY2ggcmVnaW9uLiAgRS5nLiwKKyAgIGZvciBFbmdsaXNoIHRoZXJlIGFyZSBmaXZlIHJlZ2lvbnM6IFVTLCBDQSwgQVUsIE5aIGFuZCBHQi4KKworNS4gUnVuIFZpbSBhbmQgZXhlY3V0ZSAiOm1rc3BlbGwiLiAgTWFrZSBzdXJlIHlvdSBkbyB0aGlzIHdpdGggdGhlIGNvcnJlY3QKKyAgIGxvY2FsZSwgdGhhdCBpbmZsdWVuY2VzIHRoZSB1cHBlci9sb3dlciBjYXNlIGxldHRlcnMgYW5kIHdvcmQgY2hhcmFjdGVycy4KKyAgIE9uIFVuaXggaXQncyBzb21ldGhpbmcgbGlrZToKKyAgIAllbnYgTEFORz1lbl9VUy5VVEYtOCB2aW0KKwlta3NwZWxsISBlbiBlbl9VUyBlbl9BVSBlbl9DQSBlbl9HQiBlbl9OWgorCis2LiBSZXBlYXQgc3RlcCA1IGZvciBvdGhlciBsb2NhbGVzLiAgRm9yIEVuZ2xpc2ggeW91IGNvdWxkIGdlbmVyYXRlIGEgc3BlbGwKKyAgIGZpbGUgZm9yIGxhdGluMSwgdXRmLTggYW5kIEFTQ0lJLiAgQVNDSUkgb25seSBtYWtlcyBzZW5zZSBmb3IgbGFuZ3VhZ2VzCisgICB0aGF0IGhhdmUgdmVyeSBmZXcgd29yZHMgd2l0aCBub24tQVNDSUkgbGV0dGVycy4KKworTm93IHlvdSB1bmRlcnN0YW5kIHdoeSBJIHByZWZlciB1c2luZyB0aGUgQWFwIHJlY2lwZSA6LSkuCisKKworTUFJTlRBSU5JTkcgQSBMQU5HVUFHRQorCitFdmVyeSBsYW5ndWFnZSBzaG91bGQgaGF2ZSBhIG1haW50YWluZXIuICBIaXMgdGFza3MgYXJlIHRvIHRyYWNrIHRoZSBjaGFuZ2VzCitpbiB0aGUgT3Blbk9mZmljZS5vcmcgc3BlbGwgZmlsZXMgYW5kIG1ha2UgdXBkYXRlZCBwYXRjaGVzLiAgV29yZHMgdGhhdAoraGF2ZW4ndCBiZWVuIGFkZGVkL3JlbW92ZWQgZnJvbSB0aGUgT3Blbk9mZmljZSBsaXN0cyBjYW4gYWxzbyBiZSBoYW5kbGVkIGJ5Cit0aGUgcGF0Y2hlcy4KKworSXQgaXMgaW1wb3J0YW50IHRvIGtlZXAgdGhlIHZlcnNpb24gb2YgdGhlIC5kaWMgYW5kIC5hZmYgZmlsZXMgdGhhdCB5b3UKK3N0YXJ0ZWQgd2l0aC4gIFdoZW4gT3Blbk9mZmljZSBicmluZ3Mgb3V0IG5ldyB2ZXJzaW9ucyBvZiB0aGVzZSBmaWxlcyB5b3UgY2FuCitmaW5kIG91dCB3aGF0IGNoYW5nZWQgYW5kIHRha2Ugb3ZlciB0aGVzZSBjaGFuZ2VzIGluIHlvdXIgcGF0Y2guICBXaGVuIHRoZXJlCithcmUgdmVyeSBtYW55IGNoYW5nZXMgeW91IGNhbiBkbyBpdCB0aGUgb3RoZXIgd2F5IGFyb3VuZDogcmUtYXBwbHkgdGhlIGNoYW5nZXMKK2ZvciBWaW0gdG8gdGhlIG5ldyB2ZXJzaW9ucyBvZiB0aGUgLmRpYyBhbmQgLmFmZiBmaWxlcy4KKworVGhpcyBwcm9jZWR1cmUgc2hvdWxkIHdvcmsgd2VsbDoKKworMS4gT2J0YWluIHRoZSB6aXAgYXJjaGl2ZSB3aXRoIHRoZSAuYWZmIGFuZCAuZGljIGZpbGVzLiAgVW5wYWNrIGl0IGFzCisgICBleHBsYWluZWQgYWJvdmUgYW5kIGNvcHkgKGRvbid0IHJlbmFtZSEpIHRoZSAuYWZmIGFuZCAuZGljIGZpbGVzIHRvCisgICAub3JpZy5hZmYgYW5kIC5vcmlnLmRpYy4gIFVzaW5nIHRoZSBBYXAgcmVjaXBlIHNob3VsZCB3b3JrLCBpdCB3aWxsIG1ha2UKKyAgIHRoZSBjb3BpZXMgZm9yIHlvdS4KKworMi4gVHdlYWsgdGhlIC5hZmYgYW5kIC5kaWMgZmlsZXMgdG8gZ2VuZXJhdGUgdGhlIHBlcmZlY3QgLnNwbCBmaWxlLiAgRG9uJ3QKKyAgIGNoYW5nZSB0b28gbXVjaCwgdGhlIE9wZW5PZmZpY2UgcGVvcGxlIGFyZSBub3Qgc3R1cGlkLiAgSG93ZXZlciwgeW91IG1heQorICAgd2FudCB0byByZW1vdmUgb2J2aW91cyBtaXN0YWtlcy4gIEFuZCByZW1vdmUgc2luZ2xlLWxldHRlciB3b3JkcyB0aGF0CisgICBhcmVuJ3QgcmVhbGx5IHdvcmRzLCB0aGV5IG1lc3MgdXAgdGhlIHN1Z2dlc3Rpb25zIChFbmdsaXNoIGhhcyB0aGlzCisgICBwcm9ibGVtKS4KKworMy4gTWFrZSB0aGUgZGlmZiBmaWxlLiAgImFhcCBkaWZmIiB3aWxsIGRvIHRoaXMgZm9yIHlvdS4gIElmIGEgZGlmZiB3b3VsZCBiZQorICAgdG9vIGJpZyB5b3UgbWlnaHQgY29uc2lkZXIgd3JpdGluZyBhIFZpbSBzY3JpcHQgdG8gZG8gc3lzdGVtYXRpYyBjaGFuZ2VzLgorICAgRG8gY2hlY2sgdGhhdCBzb21lb25lIGVsc2UgY2FuIHJlcHJvZHVjZSBidWlsZGluZyB0aGUgc3BlbGwgZmlsZS4gIFNlbmQgdGhlCisgICByZXN1bHQgdG8gQnJhbSBmb3IgaW5jbHVzaW9uIGluIHRoZSBkaXN0cmlidXRpb24uICBCcmFtIHdpbGwgZ2VuZXJhdGUgdGhlCisgICAuc3BsIGZpbGUgYW5kIHVwbG9hZCBpdCB0byB0aGUgZnRwIHNlcnZlciAoaWYgaGUgY2FuJ3QgZ2VuZXJhdGUgaXQgeW91IHdpbGwKKyAgIGhhdmUgdG8gc2VuZCBoaW0gdGhlIC5zcGwgZmlsZSB0b28pLgorCis0LiBXaGVuIE9wZW5PZmZpY2UgbWFrZXMgYSBuZXcgemlwIGZpbGUgYXZhaWxhYmxlIHlvdSBuZWVkIHRvIHVwZGF0ZSB0aGUKKyAgIHBhdGNoLiAgImFhcCBjaGVjayIgc2hvdWxkIGRvIG1vc3Qgb2YgdGhlIHdvcmsgZm9yIHlvdTogaWYgdGhlcmUgYXJlCisgICBjaGFuZ2VzIHRoZSAubmV3LmRpYyBhbmQgLm5ldy5hZmYgZmlsZXMgd2lsbCBhcHBlYXIuICBZb3UgY2FuIG5vdyBmaWd1cmUKKyAgIG91dCB0aGUgZGlmZmVyZW5jZXMgd2l0aCAub3JpZy5kaWMgYW5kIC5vcmlnLmFmZiwgYWRqdXN0IHRoZSAuZGljIGFuZCAuYWZmCisgICBmaWxlcyBhbmQgZmluYWxseSBtb3ZlIHRoZSAubmV3LmRpYyB0byAub3JpZy5kaWMgYW5kIC5uZXcuYWZmIHRvIC5vcmlnLmFmZi4KKworNS4gUmVwZWF0IHN0ZXAgNC4gcmVndWxhcmx5LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAppbmRleCAxYjUxOTIxLi4wNDVlMDdiIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKaW5kZXggYjc1OWQyZi4uZjkyYmEwMSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbCBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCmluZGV4IDQyMGQzYWYuLjgzYWVhOGQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaGUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2hlL21haW4uYWFwCmluZGV4IDQxM2M1ZTIuLjlhZGIxMDkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvaGUvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9oZS9tYWluLmFhcApAQCAtOSwxMiArOSwxNiBAQAogU1BFTExESVIgPSAuLgogRklMRVMgICAgPSBoZV9JTC5hZmYgaGVfSUwuZGljCiAKLWFsbDogJChTUEVMTERJUikvaGUudXRmLTguc3BsIC4uL1JFQURNRV9oZS50eHQKK2FsbDogJChTUEVMTERJUikvaGUudXRmLTguc3BsICQoU1BFTExESVIpL2hlLmlzby04ODU5LTguc3BsIC4uL1JFQURNRV9oZS50eHQKIAogJChTUEVMTERJUikvaGUudXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiAgICAgICAgIDpzeXMgZW52IExBTkc9aGVfSUwuVVRGLTgKIAkJJChWSU0pIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9oZSBoZV9JTCIgLWMgcQogCiskKFNQRUxMRElSKS9oZS5pc28tODg1OS04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorICAgICAgICA6c3lzICQoVklNKSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS04IgorICAgICAgICAgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2hlIGhlX0lMIiAtYyBxCisKIC4uL1JFQURNRV9oZS50eHQgOiBSRUFETUVfaGVfSUwudHh0CiAgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAogCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9odG1sLnZpbSBiL3J1bnRpbWUvc3ludGF4L2h0bWwudmltCmluZGV4IDc3MmJhYmUuLjYxYmM2YzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2h0bWwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2h0bWwudmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZToJSFRNTAogIiBNYWludGFpbmVyOglDbGF1ZGlvIEZsZWluZXIgPGNsYXVkaW9AZmxlaW5lci5jb20+CiAiIFVSTDoJCWh0dHA6Ly93d3cuZmxlaW5lci5jb20vdmltL3N5bnRheC9odG1sLnZpbQotIiBMYXN0IENoYW5nZTogIDIwMDQgTWF5IDE2CisiIExhc3QgQ2hhbmdlOiAgMjAwNSBKdWwgMDUKIAogIiBQbGVhc2UgY2hlY2sgOmhlbHAgaHRtbC52aW0gZm9yIHNvbWUgY29tbWVudHMgYW5kIGEgZGVzY3JpcHRpb24gb2YgdGhlIG9wdGlvbnMKIApAQCAtMzUsOCArMzUsOCBAQAogc3luIHJlZ2lvbiAgaHRtbFN0cmluZyAgIGNvbnRhaW5lZCBzdGFydD0rIisgZW5kPSsiKyBjb250YWlucz1odG1sU3BlY2lhbENoYXIsamF2YVNjcmlwdEV4cHJlc3Npb24sQGh0bWxQcmVwcm9jCiBzeW4gcmVnaW9uICBodG1sU3RyaW5nICAgY29udGFpbmVkIHN0YXJ0PSsnKyBlbmQ9KycrIGNvbnRhaW5zPWh0bWxTcGVjaWFsQ2hhcixqYXZhU2NyaXB0RXhwcmVzc2lvbixAaHRtbFByZXByb2MKIHN5biBtYXRjaCAgIGh0bWxWYWx1ZSAgICBjb250YWluZWQgIj1bXHQgXSpbXiciIFx0Pl1bXiBcdD5dKiJocz1zKzEgICBjb250YWlucz1qYXZhU2NyaXB0RXhwcmVzc2lvbixAaHRtbFByZXByb2MKLXN5biByZWdpb24gIGh0bWxFbmRUYWcJCSAgIHN0YXJ0PSs8LysJICAgZW5kPSs+KyBjb250YWlucz1odG1sVGFnTixodG1sVGFnRXJyb3IKLXN5biByZWdpb24gIGh0bWxUYWcJCSAgIHN0YXJ0PSs8W14vXSsgICBlbmQ9Kz4rIGNvbnRhaW5zPWh0bWxUYWdOLGh0bWxTdHJpbmcsaHRtbEFyZyxodG1sVmFsdWUsaHRtbFRhZ0Vycm9yLGh0bWxFdmVudCxodG1sQ3NzRGVmaW5pdGlvbixAaHRtbFByZXByb2MsQGh0bWxBcmdDbHVzdGVyCitzeW4gcmVnaW9uICBodG1sRW5kVGFnCQkgICBzdGFydD0rPC8rCSAgIGVuZD0rPisgY29udGFpbnM9aHRtbFRhZ04saHRtbFRhZ0Vycm9yLEBOb1NwZWxsCitzeW4gcmVnaW9uICBodG1sVGFnCQkgICBzdGFydD0rPFteL10rICAgZW5kPSs+KyBjb250YWlucz1odG1sVGFnTixodG1sU3RyaW5nLGh0bWxBcmcsaHRtbFZhbHVlLGh0bWxUYWdFcnJvcixodG1sRXZlbnQsaHRtbENzc0RlZmluaXRpb24sQGh0bWxQcmVwcm9jLEBodG1sQXJnQ2x1c3RlcixATm9TcGVsbAogc3luIG1hdGNoICAgaHRtbFRhZ04gICAgIGNvbnRhaW5lZCArPFxzKlstYS16QS1aMC05XVwrK2hzPXMrMSBjb250YWlucz1odG1sVGFnTmFtZSxodG1sU3BlY2lhbFRhZ05hbWUsQGh0bWxUYWdOYW1lQ2x1c3Rlcgogc3luIG1hdGNoICAgaHRtbFRhZ04gICAgIGNvbnRhaW5lZCArPC9ccypbLWEtekEtWjAtOV1cKytocz1zKzIgY29udGFpbnM9aHRtbFRhZ05hbWUsaHRtbFNwZWNpYWxUYWdOYW1lLEBodG1sVGFnTmFtZUNsdXN0ZXIKIHN5biBtYXRjaCAgIGh0bWxUYWdFcnJvciBjb250YWluZWQgIltePl08Im1zPXMrMQpAQCAtMTE2LDcgKzExNiw3IEBACiAKIGlmICFleGlzdHMoImh0bWxfbm9fcmVuZGVyaW5nIikKICAgIiByZW5kZXJpbmcKLSAgc3luIGNsdXN0ZXIgaHRtbFRvcCBjb250YWlucz1AU3BlbGwsaHRtbFRhZyxodG1sRW5kVGFnLGh0bWxTcGVjaWFsQ2hhcixodG1sUHJlUHJvYyxodG1sQ29tbWVudCxodG1sTGluayxqYXZhU2NyaXB0LEBodG1sUHJlcHJvYworICBzeW4gY2x1c3RlciBodG1sVG9wIGNvbnRhaW5zPWh0bWxUYWcsaHRtbEVuZFRhZyxodG1sU3BlY2lhbENoYXIsaHRtbFByZVByb2MsaHRtbENvbW1lbnQsaHRtbExpbmssamF2YVNjcmlwdCxAaHRtbFByZXByb2MKIAogICBzeW4gcmVnaW9uIGh0bWxCb2xkIHN0YXJ0PSI8Ylw+IiBlbmQ9IjwvYj4ibWU9ZS00IGNvbnRhaW5zPUBodG1sVG9wLGh0bWxCb2xkVW5kZXJsaW5lLGh0bWxCb2xkSXRhbGljCiAgIHN5biByZWdpb24gaHRtbEJvbGQgc3RhcnQ9IjxzdHJvbmdcPiIgZW5kPSI8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBodG1sVG9wLGh0bWxCb2xkVW5kZXJsaW5lLGh0bWxCb2xkSXRhbGljCkBAIC0xNDYsNyArMTQ2LDcgQEAKICAgc3luIHJlZ2lvbiBodG1sSXRhbGljVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IjxiXD4iIGVuZD0iPC9iPiJtZT1lLTQgY29udGFpbnM9QGh0bWxUb3AKICAgc3luIHJlZ2lvbiBodG1sSXRhbGljVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IjxzdHJvbmdcPiIgZW5kPSI8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBodG1sVG9wCiAKLSAgc3luIHJlZ2lvbiBodG1sTGluayBzdGFydD0iPGFcPlxfW14+XSpcPGhyZWZcPiIgZW5kPSI8L2E+Im1lPWUtNCBjb250YWlucz1AU3BlbGwsaHRtbFRhZyxodG1sRW5kVGFnLGh0bWxTcGVjaWFsQ2hhcixodG1sUHJlUHJvYyxodG1sQ29tbWVudCxqYXZhU2NyaXB0LEBodG1sUHJlcHJvYworICBzeW4gcmVnaW9uIGh0bWxMaW5rIHN0YXJ0PSI8YVw+XF9bXj5dKlw8aHJlZlw+IiBlbmQ9IjwvYT4ibWU9ZS00IGNvbnRhaW5zPWh0bWxUYWcsaHRtbEVuZFRhZyxodG1sU3BlY2lhbENoYXIsaHRtbFByZVByb2MsaHRtbENvbW1lbnQsamF2YVNjcmlwdCxAaHRtbFByZXByb2MKICAgc3luIHJlZ2lvbiBodG1sSDEgc3RhcnQ9IjxoMVw+IiBlbmQ9IjwvaDE+Im1lPWUtNSBjb250YWlucz1AaHRtbFRvcAogICBzeW4gcmVnaW9uIGh0bWxIMiBzdGFydD0iPGgyXD4iIGVuZD0iPC9oMj4ibWU9ZS01IGNvbnRhaW5zPUBodG1sVG9wCiAgIHN5biByZWdpb24gaHRtbEgzIHN0YXJ0PSI8aDNcPiIgZW5kPSI8L2gzPiJtZT1lLTUgY29udGFpbnM9QGh0bWxUb3AKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L211cGFkLnZpbSBiL3J1bnRpbWUvc3ludGF4L211cGFkLnZpbQppbmRleCA4NmUwMzIwLi4xMDlmODgwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tdXBhZC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbXVwYWQudmltCkBAIC0xLDI5NSArMSwyOTUgQEAKLSIgVmltIHN5bnRheCBmaWxlDQotIiBMYW5ndWFnZTogICAgTXVQQUQgc291cmNlDQotIiBNYWludGFpbmVyOiAgRGF2ZSBTaWx2aWEgPGRzaWx2aWFAbWNoc2kuY29tPg0KLSIgRmlsZW5hbWVzOiAgICoubXUNCi0iIERhdGU6ICAgICAgICA2LzMwLzIwMDQNCi0NCi0NCi0iIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcw0KLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQNCi1pZiB2ZXJzaW9uIDwgNjAwDQotICBzeW50YXggY2xlYXINCi1lbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikNCi0gIGZpbmlzaA0KLWVuZGlmDQotDQotIiBTZXQgZGVmYXVsdCBoaWdobGlnaHRpbmcgdG8gV2luMmsNCi1pZiAhZXhpc3RzKCJtdXBhZF9jbWRleHR2ZXJzaW9uIikNCi0gIGxldCBtdXBhZF9jbWRleHR2ZXJzaW9uID0gMg0KLWVuZGlmDQotDQotc3luIGNhc2UgbWF0Y2gNCi0NCi1zeW4gbWF0Y2ggbXVwYWRDb21tZW50CSIvL1xwKiQiDQotc3luIHJlZ2lvbiBtdXBhZENvbW1lbnQJc3RhcnQ9Ii9cKiIJZW5kPSJcKi8iDQotDQotc3luIHJlZ2lvbiBtdXBhZFN0cmluZwlzdGFydD0iXCIiCXNraXA9L1xcIi8JZW5kPSJcIiINCi0NCi1zeW4gbWF0Y2ggbXVwYWRPcGVyYXRvcgkJIihcfClcfDo9XHw6Olx8Olx8OyINCi0iIGJvb2xlYW4NCi1zeW4ga2V5d29yZCBtdXBhZE9wZXJhdG9yCWFuZAlvcglub3QJeG9yDQotc3luIG1hdGNoIG11cGFkT3BlcmF0b3IJCSI9PT5cfFw8PVw+Ig0KLQ0KLSIgSW5mb3JtYXRpb25hbA0KLXN5biBrZXl3b3JkIG11cGFkU3BlY2lhbAkJRklMRVBBVEgJTk9URUJPT0tGSUxFCU5PVEVCT09LUEFUSA0KLSIgU2V0LWFibGUsIGUuZy4sIERJR0lUUzo9MTANCi1zeW4ga2V5d29yZCBtdXBhZFNwZWNpYWwJCURJR0lUUwkJSElTVE9SWQkJTEVWRUwNCi1zeW4ga2V5d29yZCBtdXBhZFNwZWNpYWwJCU1BWExFVkVMCU1BWERFUFRICU9SREVSDQotc3luIGtleXdvcmQgbXVwYWRTcGVjaWFsCQlURVhUV0lEVEgNCi0iIFNldC1hYmxlLCBlLmcuLCBQUkVUVFlQUklOVDo9VFJVRQ0KLXN5biBrZXl3b3JkIG11cGFkU3BlY2lhbAkJUFJFVFRZUFJJTlQNCi0iIFNldC1hYmxlLCBlLmcuLCBMSUJQQVRIOj0iQzpcXE11UEFEIFByb1xcbXlsaWJkaXIiIG9yIExJQlBBVEg6PSIvdXNyL011UEFEIFByby9teWxpYmRpciINCi1zeW4ga2V5d29yZCBtdXBhZFNwZWNpYWwJCUxJQlBBVEgJCVBBQ0tBR0VQQVRIDQotc3luIGtleXdvcmQgbXVwYWRTcGVjaWFsCQlSRUFEUEFUSAlURVNUUEFUSAlXUklURVBBVEgNCi0iIFN5bWJvbHMgYW5kIENvbnN0YW50cw0KLXN5biBrZXl3b3JkIG11cGFkRGVmaW5lCQlGQUlMCQlOSUwNCi1zeW4ga2V5d29yZCBtdXBhZERlZmluZQkJVFJVRQkJRkFMU0UJCVVOS05PV04NCi1zeW4ga2V5d29yZCBtdXBhZERlZmluZQkJY29tcGxleEluZmluaXR5CQlpbmZpbml0eQ0KLXN5biBrZXl3b3JkIG11cGFkRGVmaW5lCQlDXwlDQVRBTEFOCUUJRVVMRVIJSQlQSQlRXwlSXw0KLXN5biBrZXl3b3JkIG11cGFkRGVmaW5lCQlSRF9JTkYJUkRfTklORgl1bmRlZmluZWQJdW5pdAl1bml2ZXJzZQlaXw0KLSIgcHJpbnQoKSBkaXJlY3RpdmVzDQotc3luIGtleXdvcmQgbXVwYWREZWZpbmUJCVVucXVvdGVkCU5vTkwJS2VlcE9yZGVyCVR5cGVzZXQNCi0iIGRvbWFpbiBzcGVjaWZpY3MNCi1zeW4ga2V5d29yZCBtdXBhZFN0YXRlbWVudAlkb21haW4JYmVnaW4JZW5kX2RvbWFpbgllbmQNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJaW5oZXJpdHMJY2F0ZWdvcnkJYXhpb20JaW5mbwlkb2MgaW50ZXJmYWNlDQotIiBiYXNpYyBwcm9ncmFtbWluZyBzdGF0ZW1lbnRzDQotc3luIGtleXdvcmQgbXVwYWRTdGF0ZW1lbnQJcHJvYwliZWdpbgllbmRfcHJvYwkNCi1zeW4ga2V5d29yZCBtdXBhZFVuZGVybGluZWQJbmFtZQlsb2NhbAlvcHRpb24Jc2F2ZQ0KLXN5biBrZXl3b3JkIG11cGFkQ29uZGl0aW9uYWwJaWYJdGhlbgllbGlmCWVsc2UJZW5kX2lmDQotc3luIGtleXdvcmQgbXVwYWRDb25kaXRpb25hbAljYXNlCW9mCWRvCWJyZWFrCWVuZF9jYXNlDQotc3luIGtleXdvcmQgbXVwYWRSZXBlYXQJCWZvcglkbwluZXh0CWJyZWFrCWVuZF9mb3INCi1zeW4ga2V5d29yZCBtdXBhZFJlcGVhdAkJd2hpbGUJZG8JbmV4dCBicmVhayBlbmRfd2hpbGUNCi1zeW4ga2V5d29yZCBtdXBhZFJlcGVhdAkJcmVwZWF0CW5leHQgYnJlYWsgdW50aWwJZW5kX3JlcGVhdA0KLSIgZG9tYWluIHBhY2thZ2VzL2xpYnJhcmllcw0KLXN5biBrZXl3b3JkIG11cGFkVHlwZQkJCWRldG9vbHMJaW1wb3J0CWxpbmFsZwludW1lcmljCW51bWxpYglwbG90CXBvbHlsaWINCi1zeW4gbWF0Y2ggbXVwYWRUeXBlCQkJCSdcPERPTV9cdypcPicNCi0NCi0ic3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgljb250YWlucw0KLSIgRnVuY3Rpb25zIGRlYWxpbmcgd2l0aCBwcmltZSBudW1iZXJzDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwaGkJaW52cGhpCW1lcnNlbm5lCW5leHRwcmltZQludW1wcmltZWRpdmlzb3JzDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwb2xsYXJkCXByZXZwcmltZQlwcmltZWRpdmlzb3JzDQotIiBGdW5jdGlvbnMgb3BlcmF0aW5nIG9uIExpc3RzLCBNYXRyaWNlcywgU2V0cywgLi4uDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglhcnJheQlfaW5kZXgNCi0iIEV2YWx1YXRpb24NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWZsb2F0IGNvbnRhaW5zDQotIiBzdGRsaWINCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCV9leHByc2VxCV9pbnZlcnQJX2xhenlfYW5kCV9sYXp5X29yCV9uZWdhdGUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCV9zdG10c2VxCV9pbnZlcnQJaW50ZXJzZWN0CW1pbnVzCQl1bmlvbg0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JQ2kJRAlFaQlPCVJlCUltCVJvb3RPZglTaQ0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JU2ltcGxpZnkNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWFicwlhaXJ5QWkJYWlyeUJpCWFsaWFzCXVuYWxpYXMJYW5hbWVzCWFwcGVuZA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYXJjc2luCWFyY2NvcwlhcmN0YW4JYXJjY3NjCWFyY3NlYwlhcmNjb3QNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWFyY3NpbmgJYXJjY29zaAlhcmN0YW5oCWFyY2NzY2gJYXJjc2VjaAlhcmNjb3RoDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglhcmcJYXJncwlhcnJheQlhc3NlcnQJYXNzaWduCWFzc2lnbkVsZW1lbnRzDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglhc3N1bWUJYXNzdW1pbmcJYXN5bXB0CWJlcm5vdWxsaQ0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYmVzc2VsSQliZXNzZWxKCWJlc3NlbEsJYmVzc2VsWQliZXRhCWJpbm9taWFsCWJvb2wNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWJ5dGVzCWNhcmQNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWNlaWwJZmxvb3IJcm91bmQJdHJ1bmMNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWNvZWZmCWNvZXJjZQljb2xsZWN0CWNvbWJpbmUJY29weUNsb3N1cmUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWNvbmp1Z2F0ZQljb250ZW50CWNvbnRleHQJY29udGZyYWMNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWRlYnVnCWRlZ3JlZQlkZWdyZWV2ZWMJZGVsZXRlCV9kZWxldGUJZGVub20NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWRlbnNlbWF0cml4CWRpZmYJZGlsb2cJZGlyYWMJZGlzY29udAlkaXYJX2Rpdg0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZGl2aWRlCWRvbXR5cGUJZG9wcmludAllcmYJZXJmYwllcnJvcglldmFsCWV2YWxhc3NpZ24NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWV2YWxwCWV4cAlleHBhbmQJZXhwb3J0CXVuZXhwb3J0CWV4cG9zZQlleHByDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglleHByMnRleHQJZXh0ZXJuYWwJZXh0bm9wcwlleHRvcAlleHRzdWJzb3ANCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWZhY3QJZmFjdDIJZmFjdG9yCWZjbG9zZQlmaW5wdXQJZm5hbWUJZm9wZW4JZnByaW50DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglmcmVhZAlmdGV4dGlucHV0CXJlYWRiaXRtYXAJcmVhZGRhdGEJcGF0aG5hbWUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXByb3RvY29sCXJlYWQJcmVhZGJ5dGVzCXdyaXRlCXdyaXRlYnl0ZXMNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWZsb2F0CWZyYWMJZnJhbWUJX2ZyYW1lCWZyYW5kb20JZnJlZXplCXVuZnJlZXplDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglmdW5jZW52CWdhbW1hCWdjZAlnY2RleAlnZW5pZGVudAlnZW5wb2x5DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglnZXRwaWQJZ2V0cHJvcAlncm91bmQJaGFzCWhhc3R5cGUJaGVhdmlzaWRlCWhlbHANCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWhpc3RvcnkJaG9sZAlodWxsCWh5cGVyZ2VvbQlpY29udGVudAlpZA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JaWZhY3RvcglpZ2FtbWEJaWdjZAlpZ2NkZXgJaWxjbQlpbglfaW4NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWluZGV0cwlpbmRleHZhbAlpbmZvCWlucHV0CWludAlpbnQydGV4dA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JaW50ZXJwb2xhdGUJaW50ZXJ2YWwJaXJyZWR1Y2libGUJaXMNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWlzcHJpbWUJaXNxcnQJaXN6ZXJvCWl0aHByaW1lCWt1bW1lclUJbGFtYmVydFcNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWxhc3QJbGFzdGVycm9yCWxjbQlsY29lZmYJbGRlZ3JlZQlsZW5ndGgNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWxldmVsCWxocwlyaHMJbGltaXQJbGluc29sdmUJbGxsaW50DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglsbW9ub21pYWwJbG4JbG9hZG1vZAlsb2FkcHJvYwlsb2cJbHRlcm0NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW1hdGNoCW1hcAltYXBjb2VmZnMJbWFwcmF0CW1hdHJpeAltYXgJbWluDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgltb2QJbW9kcAltb2RzCW1vbm9taWFscwltdWx0Y29lZmZzCW5ldw0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JbmV3RG9tYWluCV9uZXh0CW5leHRwcmltZQlub3BzDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglub3JtCW5vcm1hbAludGVybXMJbnRoY29lZmYJbnRobW9ub21pYWwJbnRodGVybQ0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JbnVsbAludW1lcglvZGUJb3AJb3BlcmF0b3IJcGFja2FnZQ0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcGFkZQlwYXJ0ZnJhYwlwYXRjaGxldmVsCXBkaXZpZGUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXBpZWNld2lzZQlwbG90CXBsb3RmdW5jMmQJcGxvdGZ1bmMzZA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcG9seQlwb2x5Mmxpc3QJcG9seWxvZwlwb3dlcm1vZAlwcmludA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcHJvZHVjdAlwcm90ZWN0CXBzaQlxdWl0CV9xdWl0CXJhZHNpbXAJcmFuZG9tCXJhdGlvbmFsaXplDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglyZWMJcmVjdGZvcm0JcmVnaXN0ZXIJcmVzZXQJcmV0dXJuCXJldmVydA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcmV3cml0ZQlzZWxlY3QJc2VyaWVzCXNldHVzZXJpbmZvCXNoYXJlCXNpZ24Jc2lnbkltDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglzaW1wbGlmeQkNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXNpbgljb3MJdGFuCWNzYwlzZWMJY290DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglzaW5oCWNvc2gJdGFuaAljc2NoCXNlY2gJY290aA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc2xvdAlzb2x2ZQkNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXBkZXNvbHZlCW1hdGxpbnNvbHZlCW1hdGxpbnNvbHZlTFUJdG9lcGxpdHpTb2x2ZQ0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JdmFuZGVybW9uZGVTb2x2ZQlmc29sdmUJb2Rlc29sdmUJb2Rlc29sdmUyDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwb2x5cm9vdHMJcG9seXN5c3Jvb3RzCW9kZXNvbHZlR2VvbWV0cmljDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglyZWFscm9vdAlyZWFscm9vdHMJbXJvb3RzCWxpbmNvbmdydWVuY2UNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW1zcXJ0cw0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc29ydAlzcGxpdAlzcXJ0CXN0cm1hdGNoCXN0cnByaW50DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglzdWJzCXN1YnNldAlzdWJzZXgJc3Vic29wCXN1YnN0cmluZwlzdW0NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXN1cmQJc3lzbmFtZQlzeXNvcmRlcglzeXN0ZW0JdGFibGUJdGF5bG9yCXRibDJ0ZXh0DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgl0Y29lZmYJdGVzdGFyZ3MJdGVzdGVxCXRlc3R0eXBlCXRleHQyZXhwcg0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JdGV4dDJpbnQJdGV4dDJsaXN0CXRleHQydGJsCXJ0aW1lCXRpbWUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXRyYXBlcnJvcgl0eXBlCXVuYXNzdW1lCXVuaXQJdW5pdmVyc2UNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXVubG9hZG1vZAl1bnByb3RlY3QJdXNlcmluZm8JdmFsCXZlcnNpb24NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXdhcm5pbmcJd2hpdHRha2VyTQl3aGl0dGFrZXJXCXpldGEJemlwDQotDQotIiBncmFwaGljcyAgcGxvdDo6DQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglnZXREZWZhdWx0CXNldERlZmF1bHQJY29weQltb2RpZnkJQXJjMmQJQXJyb3cyZA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JQXJyb3czZAlCYXJzMmQJQmFyczNkCUJveAlCb3hwbG90CUNpcmNsZTJkCUNpcmNsZTNkDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglDb25lCUNvbmZvcm1hbAlDdXJ2ZTJkCUN1cnZlM2QJQ3lsaW5kZXIJQ3lsaW5kcmljYWwNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCURlbnNpdHkJRWxsaXBzZTJkCUZ1bmN0aW9uMmQJRnVuY3Rpb24zZAlIYXRjaA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JSGlzdG9ncmFtMmQJSE9yYml0YWwJSW1wbGljaXQyZAlJbXBsaWNpdDNkDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglJbmVxdWFsaXR5CUl0ZXJhdGlvbglMaW5lMmQJTGluZTNkCUxzeXMJTWF0cml4cGxvdA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JTXVQQURDdWJlCU9kZTJkCU9kZTNkCVBhcmFsbGVsb2dyYW0yZAlQYXJhbGxlbG9ncmFtM2QNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCVBpZWNoYXJ0MmQJUGllY2hhcnQzZAlQb2ludDJkCVBvaW50M2QJUG9sYXINCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCVBvbHlnb24yZAlQb2x5Z29uM2QJUmFzdGVyCVJlY3RhbmdsZQlTcGhlcmUNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUVsbGlwc29pZAlTcGhlcmljYWwJU3VtCVN1cmZhY2UJU3VyZmFjZVNldA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JU3VyZmFjZVNUTAlUZXRyYWhlZHJvbglIZXhhaGVkcm9uCU9jdGFoZWRyb24NCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCURvZGVjYWhlZHJvbglJY29zYWhlZHJvbglUZXh0MmQJVGV4dDNkCVR1YmUJVHVydGxlDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglWZWN0b3JGaWVsZDJkCVhSb3RhdGUJWlJvdGF0ZQlDYW52YXMJQ29vcmRpbmF0ZVN5c3RlbTJkDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglDb29yZGluYXRlU3lzdGVtM2QJR3JvdXAyZAlHcm91cDNkCVNjZW5lMmQJU2NlbmUzZAlDbGlwcGluZ0JveA0KLXN5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JUm90YXRlMmQJUm90YXRlM2QJU2NhbGUyZAlTY2FsZTNkCVRyYW5zZm9ybTJkDQotc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglUcmFuc2Zvcm0zZAlUcmFuc2xhdGUyZAlUcmFuc2xhdGUzZAlBbWJpZW50TGlnaHQNCi1zeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUNhbWVyYQlEaXN0YW50TGlnaHQJUG9pbnRMaWdodAlTcG90TGlnaHQNCi0NCi0iIGdyYXBoaWNzIEF0dHJpYnV0ZXMNCi0iIGdyYXBoaWNzICBPdXRwdXQgQXR0cmlidXRlcw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglPdXRwdXRGaWxlCU91dHB1dE9wdGlvbnMNCi0iIGdyYXBoaWNzICBEZWZpbmluZyBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUFuZ2xlCUFuZ2xlUmFuZ2UJQW5nbGVCZWdpbglBbmdsZUVuZA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBcmVhCUF4aXMJQXhpc1gJQXhpc1kJQXhpc1oJQmFzZQlUb3ANCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQmFzZVgJVG9wWAlCYXNlWQlUb3BZCUJhc2VaCVRvcFoNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQmFzZVJhZGl1cwlUb3BSYWRpdXMJQ2VsbHMNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQ2VudGVyCUNlbnRlclgJQ2VudGVyWQlDZW50ZXJaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUNsb3NlZAlDb2xvckRhdGEJQ29tbWFuZExpc3QJQ29udG91cnMJQ29vcmRpbmF0ZVR5cGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJRGF0YQlEZW5zaXR5RGF0YQlEZW5zaXR5RnVuY3Rpb24JRnJvbQlUbw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGcm9tWAlUb1gJRnJvbVkJVG9ZCUZyb21aCVRvWg0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGdW5jdGlvbglGdW5jdGlvblgJRnVuY3Rpb25ZCUZ1bmN0aW9uWg0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGdW5jdGlvbjEJRnVuY3Rpb24yCUJhc2VsaW5lDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUdlbmVyYXRpb25zCVJvdGF0aW9uQW5nbGUJSXRlcmF0aW9uUnVsZXMJU3RhcnRSdWxlIFN0ZXBMZW5ndGgNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVHVydGxlUnVsZXMJR3JvdW5kCUhlaWdodHMJTW92ZXMJSW5lcXVhbGl0aWVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUlucHV0RmlsZQlJdGVyYXRpb25zCVN0YXJ0aW5nUG9pbnQNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTGluZUNvbG9yRnVuY3Rpb24JRmlsbENvbG9yRnVuY3Rpb24NCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTWF0cml4MmQJTWF0cml4M2QNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTWVzaExpc3QJTWVzaExpc3RUeXBlCU1lc2hMaXN0Tm9ybWFscw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglNYWduZXRpY1F1YW50dW1OdW1iZXIJTW9tZW50dW1RdWFudHVtTnVtYmVyCVByaW5jaXBhbFF1YW50dW1OdW1iZXINCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTmFtZQlOb3JtYWwJTm9ybWFsWAlOb3JtYWxZCU5vcm1hbFoNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJUGFyYW1ldGVyTmFtZQlQYXJhbWV0ZXJCZWdpbglQYXJhbWV0ZXJFbmQJUGFyYW1ldGVyUmFuZ2UNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJUG9pbnRzMmQJUG9pbnRzM2QJUmFkaXVzCVJhZGl1c0Z1bmN0aW9uDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVBvc2l0aW9uCVBvc2l0aW9uWAlQb3NpdGlvblkJUG9zaXRpb25aDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVNjYWxlCVNjYWxlWAlTY2FsZVkJU2NhbGVaIFNoaWZ0CVNoaWZ0WAlTaGlmdFkJU2hpZnRaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVNlbWlBeGVzCVNlbWlBeGlzWAlTZW1pQXhpc1kJU2VtaUF4aXNaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRhbmdlbnQxCVRhbmdlbnQxWAlUYW5nZW50MVkJVGFuZ2VudDFaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRhbmdlbnQyCVRhbmdlbnQyWAlUYW5nZW50MlkJVGFuZ2VudDJaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRleHQJVGV4dE9yaWVudGF0aW9uCVRleHRSb3RhdGlvbg0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglVTmFtZQlVUmFuZ2UJVU1pbglVTWF4CVZOYW1lCVZSYW5nZQlWTWluCVZNYXgNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWE5hbWUJWFJhbmdlCVhNaW4JWE1heAlZTmFtZQlZUmFuZ2UJWU1pbglZTWF4DQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVpOYW1lCVpSYW5nZQlaTWluCVpNYXgJVmlld2luZ0JveA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWaWV3aW5nQm94WE1pbglWaWV3aW5nQm94WE1heAlWaWV3aW5nQm94WFJhbmdlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVZpZXdpbmdCb3hZTWluCVZpZXdpbmdCb3hZTWF4CVZpZXdpbmdCb3hZUmFuZ2UNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVmlld2luZ0JveFpNaW4JVmlld2luZ0JveFpNYXgJVmlld2luZ0JveFpSYW5nZQ0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWaXNpYmxlDQotIiBncmFwaGljcyAgQXhpcyBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUF4ZXMJQXhlc0luRnJvbnQJQXhlc0xpbmVDb2xvcglBeGVzTGluZVdpZHRoDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUF4ZXNPcmlnaW4JQXhlc09yaWdpblgJQXhlc09yaWdpblkJQXhlc09yaWdpbloNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlc1RpcHMJQXhlc1RpdGxlQWxpZ25tZW50DQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUF4ZXNUaXRsZUFsaWdubWVudFgJQXhlc1RpdGxlQWxpZ25tZW50WQlBeGVzVGl0bGVBbGlnbm1lbnRaDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUF4ZXNUaXRsZXMJWEF4aXNUaXRsZQlZQXhpc1RpdGxlCVpBeGlzVGl0bGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlc1Zpc2libGUJWEF4aXNWaXNpYmxlCVlBeGlzVmlzaWJsZQlaQXhpc1Zpc2libGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWUF4aXNUaXRsZU9yaWVudGF0aW9uDQotIiBncmFwaGljcyAgVGljayBNYXJrcyBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzQW5jaG9yCVhUaWNrc0FuY2hvcglZVGlja3NBbmNob3IJWlRpY2tzQW5jaG9yDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzQXQJWFRpY2tzQXQJWVRpY2tzQXQJWlRpY2tzQXQNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGlja3NCZXR3ZWVuCVhUaWNrc0JldHdlZW4JWVRpY2tzQmV0d2VlbglaVGlja3NCZXR3ZWVuDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzRGlzdGFuY2UJWFRpY2tzRGlzdGFuY2UJWVRpY2tzRGlzdGFuY2UJWlRpY2tzRGlzdGFuY2UNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGlja3NOdW1iZXIJWFRpY2tzTnVtYmVyCVlUaWNrc051bWJlcglaVGlja3NOdW1iZXINCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGlja3NWaXNpYmxlCVhUaWNrc1Zpc2libGUJWVRpY2tzVmlzaWJsZQlaVGlja3NWaXNpYmxlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzTGVuZ3RoCVRpY2tzTGFiZWxTdHlsZQ0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglYVGlja3NMYWJlbFN0eWxlCVlUaWNrc0xhYmVsU3R5bGUJWlRpY2tzTGFiZWxTdHlsZQ0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglUaWNrc0xhYmVsc1Zpc2libGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWFRpY2tzTGFiZWxzVmlzaWJsZQlZVGlja3NMYWJlbHNWaXNpYmxlCVpUaWNrc0xhYmVsc1Zpc2libGUNCi0iIGdyYXBoaWNzICBHcmlkIExpbmVzIEF0dHJpYnV0ZXMNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJR3JpZEluRnJvbnQJR3JpZExpbmVDb2xvcglTdWJncmlkTGluZUNvbG9yDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUdyaWRMaW5lU3R5bGUJU3ViZ3JpZExpbmVTdHlsZSBHcmlkTGluZVdpZHRoCVN1YmdyaWRMaW5lV2lkdGgNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJR3JpZFZpc2libGUJWEdyaWRWaXNpYmxlCVlHcmlkVmlzaWJsZQlaR3JpZFZpc2libGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJU3ViZ3JpZFZpc2libGUJWFN1YmdyaWRWaXNpYmxlCVlTdWJncmlkVmlzaWJsZQlaU3ViZ3JpZFZpc2libGUNCi0iIGdyYXBoaWNzICBBbmltYXRpb24gQXR0cmlidXRlcw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGcmFtZXMJVGltZVJhbmdlCVRpbWVCZWdpbglUaW1lRW5kDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVZpc2libGVBZnRlcglWaXNpYmxlQmVmb3JlCVZpc2libGVGcm9tVG8NCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVmlzaWJsZUFmdGVyRW5kCVZpc2libGVCZWZvcmVCZWdpbg0KLSIgZ3JhcGhpY3MgIEFubm90YXRpb24gQXR0cmlidXRlcw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGb290ZXIJSGVhZGVyCUZvb3RlckFsaWdubWVudAlIZWFkZXJBbGlnbm1lbnQNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJSG9yaXpvbnRhbEFsaWdubWVudAlUaXRsZUFsaWdubWVudAlWZXJ0aWNhbEFsaWdubWVudA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglMZWdlbmQJTGVnZW5kRW50cnkJTGVnZW5kVGV4dA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglMZWdlbmRBbGlnbm1lbnQJTGVnZW5kUGxhY2VtZW50CUxlZ2VuZFZpc2libGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGl0bGUJVGl0bGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpdGxlUG9zaXRpb24JVGl0bGVQb3NpdGlvblgJVGl0bGVQb3NpdGlvblkJVGl0bGVQb3NpdGlvbloNCi0iIGdyYXBoaWNzICBMYXlvdXQgQXR0cmlidXRlcw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCb3R0b20JTGVmdAlIZWlnaHQJV2lkdGgJTGF5b3V0CVJvd3MJQ29sdW1ucw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglNYXJnaW4JQm90dG9tTWFyZ2luCVRvcE1hcmdpbglMZWZ0TWFyZ2luCVJpZ2h0TWFyZ2luDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU91dHB1dFVuaXRzCVNwYWNpbmcNCi0iIGdyYXBoaWNzICBDYWxjdWxhdGlvbiBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUFkYXB0aXZlTWVzaAlEaXNjb250aW51aXR5U2VhcmNoCU1lc2gJU3ViTWVzaA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglVTWVzaAlVU3ViTWVzaAlWTWVzaAlWU3ViTWVzaA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglYTWVzaAlYU3ViTWVzaAlZTWVzaAlZU3ViTWVzaAlabWVzaA0KLSIgZ3JhcGhpY3MgIENhbWVyYSBhbmQgTGlnaHRzIEF0dHJpYnV0ZXMNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQ2FtZXJhQ29vcmRpbmF0ZXMJQ2FtZXJhRGlyZWN0aW9uDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUNhbWVyYURpcmVjdGlvblgJQ2FtZXJhRGlyZWN0aW9uWQlDYW1lcmFEaXJlY3Rpb25aDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZvY2FsUG9pbnQJRm9jYWxQb2ludFgJRm9jYWxQb2ludFkJRm9jYWxQb2ludFoNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTGlnaHRDb2xvcglMaWdodGluZwlMaWdodEludGVuc2l0eQlPcnRob2dvbmFsUHJvamVjdGlvbg0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglTcG90QW5nbGUJVmlld2luZ0FuZ2xlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRhcmdldAlUYXJnZXRYCVRhcmdldFkJVGFyZ2V0Wg0KLSIgZ3JhcGhpY3MgIFByZXNlbnRhdGlvbiBTdHlsZSBhbmQgRm9udHMgQXR0cmlidXRlcw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBcnJvd0xlbmd0aA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBeGVzVGl0bGVGb250CUZvb3RlckZvbnQJSGVhZGVyRm9udAlMZWdlbmRGb250DQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRleHRGb250CVRpY2tzTGFiZWxGb250CVRpdGxlRm9udA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCYWNrZ3JvdW5kQ29sb3IJQmFja2dyb3VuZENvbG9yMglCYWNrZ3JvdW5kU3R5bGUNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQmFja2dyb3VuZFRyYW5zcGFyZW50CUJpbGxib2FyZGluZwlCb3JkZXJDb2xvcglCb3JkZXJXaWR0aA0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCb3hDZW50ZXJzCUJveFdpZHRocwlEcmF3TW9kZSBHYXAJWEdhcAlZR2FwDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU5vdGNoZWQJTm90Y2hXaWR0aAlTY2FsaW5nCVlYUmF0aW8JWlhSYXRpbw0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWZXJ0aWNhbEFzeW1wdG90ZXNWaXNpYmxlCVZlcnRpY2FsQXN5bXB0b3Rlc1N0eWxlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVZlcnRpY2FsQXN5bXB0b3Rlc0NvbG9yCVZlcnRpY2FsQXN5bXB0b3Rlc1dpZHRoDQotIiBncmFwaGljcyAgTGluZSBTdHlsZSBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUxpbmVDb2xvcglMaW5lQ29sb3IyCUxpbmVDb2xvclR5cGUJTGluZVN0eWxlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUxpbmVzVmlzaWJsZQlVTGluZXNWaXNpYmxlCVZMaW5lc1Zpc2libGUJWExpbmVzVmlzaWJsZQ0KLXN5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglZTGluZXNWaXNpYmxlCUxpbmVXaWR0aAlNZXNoVmlzaWJsZQ0KLSIgZ3JhcGhpY3MgIFBvaW50IFN0eWxlIEF0dHJpYnV0ZXMNCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJUG9pbnRDb2xvcglQb2ludFNpemUJUG9pbnRTdHlsZQlQb2ludHNWaXNpYmxlDQotIiBncmFwaGljcyAgU3VyZmFjZSBTdHlsZSBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUJhclN0eWxlCVNoYWRvd3MJQ29sb3IJQ29sb3JzCUZpbGxDb2xvcglGaWxsQ29sb3IyDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZpbGxDb2xvclRydWUJRmlsbENvbG9yRmFsc2UJRmlsbENvbG9yVW5rbm93bglGaWxsQ29sb3JUeXBlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZpbGxlZAlGaWxsUGF0dGVybglGaWxsUGF0dGVybnMJRmlsbFN0eWxlDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUludGVycG9sYXRpb25TdHlsZQlTaGFkaW5nCVVzZU5vcm1hbHMNCi0iIGdyYXBoaWNzICBBcnJvdyBTdHlsZSBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpcEFuZ2xlCVRpcExlbmd0aAlUaXBTdHlsZQlUdWJlRGlhbWV0ZXINCi1zeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVHVidWxhcg0KLSIgZ3JhcGhpY3MgIG1ldGEtZG9jdW1lbnRhdGlvbiBBdHRyaWJ1dGVzDQotc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCW9iamVjdEdyb3Vwc0xpc3RlZAkNCi0NCi1pZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfbXVwYWRfc3ludGF4X2luaXRzIikNCi0gIGlmIHZlcnNpb24gPCA1MDgNCi0gICAgbGV0IGRpZF9tdXBhZF9zeW50YXhfaW5pdHMgPSAxDQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+DQotICBlbHNlDQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPg0KLSAgZW5kaWYNCi0NCi0gIEhpTGluayBtdXBhZENvbW1lbnQJCUNvbW1lbnQNCi0gIEhpTGluayBtdXBhZFN0cmluZwkJU3RyaW5nDQotICBIaUxpbmsgbXVwYWRPcGVyYXRvcgkJT3BlcmF0b3INCi0gIEhpTGluayBtdXBhZFNwZWNpYWwJCVNwZWNpYWwNCi0gIEhpTGluayBtdXBhZFN0YXRlbWVudAkJU3RhdGVtZW50DQotICBIaUxpbmsgbXVwYWRVbmRlcmxpbmVkCVVuZGVybGluZWQNCi0gIEhpTGluayBtdXBhZENvbmRpdGlvbmFsCUNvbmRpdGlvbmFsDQotICBIaUxpbmsgbXVwYWRSZXBlYXQJCVJlcGVhdA0KLSAgSGlMaW5rIG11cGFkRnVuY3Rpb24JCUZ1bmN0aW9uDQotICBIaUxpbmsgbXVwYWRUeXBlCQlUeXBlDQotICBIaUxpbmsgbXVwYWREZWZpbmUJCURlZmluZQ0KLSAgSGlMaW5rIG11cGFkSWRlbnRpZmllcglJZGVudGlmaWVyDQotDQotICBkZWxjb21tYW5kIEhpTGluaw0KLWVuZGlmDQotDQotIiBUT0RPICBNb3JlIGNvbXByZWhlbnNpdmUgbGlzdGluZy4NCisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZTogICAgTXVQQUQgc291cmNlCisiIE1haW50YWluZXI6ICBEYXZlIFNpbHZpYSA8ZHNpbHZpYUBtY2hzaS5jb20+CisiIEZpbGVuYW1lczogICAqLm11CisiIERhdGU6ICAgICAgICA2LzMwLzIwMDQKKworCisiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcworIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAoraWYgdmVyc2lvbiA8IDYwMAorICBzeW50YXggY2xlYXIKK2Vsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICBmaW5pc2gKK2VuZGlmCisKKyIgU2V0IGRlZmF1bHQgaGlnaGxpZ2h0aW5nIHRvIFdpbjJrCitpZiAhZXhpc3RzKCJtdXBhZF9jbWRleHR2ZXJzaW9uIikKKyAgbGV0IG11cGFkX2NtZGV4dHZlcnNpb24gPSAyCitlbmRpZgorCitzeW4gY2FzZSBtYXRjaAorCitzeW4gbWF0Y2ggbXVwYWRDb21tZW50CSIvL1xwKiQiCitzeW4gcmVnaW9uIG11cGFkQ29tbWVudAlzdGFydD0iL1wqIgllbmQ9IlwqLyIKKworc3luIHJlZ2lvbiBtdXBhZFN0cmluZwlzdGFydD0iXCIiCXNraXA9L1xcIi8JZW5kPSJcIiIKKworc3luIG1hdGNoIG11cGFkT3BlcmF0b3IJCSIoXHwpXHw6PVx8OjpcfDpcfDsiCisiIGJvb2xlYW4KK3N5biBrZXl3b3JkIG11cGFkT3BlcmF0b3IJYW5kCW9yCW5vdAl4b3IKK3N5biBtYXRjaCBtdXBhZE9wZXJhdG9yCQkiPT0+XHxcPD1cPiIKKworIiBJbmZvcm1hdGlvbmFsCitzeW4ga2V5d29yZCBtdXBhZFNwZWNpYWwJCUZJTEVQQVRICU5PVEVCT09LRklMRQlOT1RFQk9PS1BBVEgKKyIgU2V0LWFibGUsIGUuZy4sIERJR0lUUzo9MTAKK3N5biBrZXl3b3JkIG11cGFkU3BlY2lhbAkJRElHSVRTCQlISVNUT1JZCQlMRVZFTAorc3luIGtleXdvcmQgbXVwYWRTcGVjaWFsCQlNQVhMRVZFTAlNQVhERVBUSAlPUkRFUgorc3luIGtleXdvcmQgbXVwYWRTcGVjaWFsCQlURVhUV0lEVEgKKyIgU2V0LWFibGUsIGUuZy4sIFBSRVRUWVBSSU5UOj1UUlVFCitzeW4ga2V5d29yZCBtdXBhZFNwZWNpYWwJCVBSRVRUWVBSSU5UCisiIFNldC1hYmxlLCBlLmcuLCBMSUJQQVRIOj0iQzpcXE11UEFEIFByb1xcbXlsaWJkaXIiIG9yIExJQlBBVEg6PSIvdXNyL011UEFEIFByby9teWxpYmRpciIKK3N5biBrZXl3b3JkIG11cGFkU3BlY2lhbAkJTElCUEFUSAkJUEFDS0FHRVBBVEgKK3N5biBrZXl3b3JkIG11cGFkU3BlY2lhbAkJUkVBRFBBVEgJVEVTVFBBVEgJV1JJVEVQQVRICisiIFN5bWJvbHMgYW5kIENvbnN0YW50cworc3luIGtleXdvcmQgbXVwYWREZWZpbmUJCUZBSUwJCU5JTAorc3luIGtleXdvcmQgbXVwYWREZWZpbmUJCVRSVUUJCUZBTFNFCQlVTktOT1dOCitzeW4ga2V5d29yZCBtdXBhZERlZmluZQkJY29tcGxleEluZmluaXR5CQlpbmZpbml0eQorc3luIGtleXdvcmQgbXVwYWREZWZpbmUJCUNfCUNBVEFMQU4JRQlFVUxFUglJCVBJCVFfCVJfCitzeW4ga2V5d29yZCBtdXBhZERlZmluZQkJUkRfSU5GCVJEX05JTkYJdW5kZWZpbmVkCXVuaXQJdW5pdmVyc2UJWl8KKyIgcHJpbnQoKSBkaXJlY3RpdmVzCitzeW4ga2V5d29yZCBtdXBhZERlZmluZQkJVW5xdW90ZWQJTm9OTAlLZWVwT3JkZXIJVHlwZXNldAorIiBkb21haW4gc3BlY2lmaWNzCitzeW4ga2V5d29yZCBtdXBhZFN0YXRlbWVudAlkb21haW4JYmVnaW4JZW5kX2RvbWFpbgllbmQKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglpbmhlcml0cwljYXRlZ29yeQlheGlvbQlpbmZvCWRvYyBpbnRlcmZhY2UKKyIgYmFzaWMgcHJvZ3JhbW1pbmcgc3RhdGVtZW50cworc3luIGtleXdvcmQgbXVwYWRTdGF0ZW1lbnQJcHJvYwliZWdpbgllbmRfcHJvYworc3luIGtleXdvcmQgbXVwYWRVbmRlcmxpbmVkCW5hbWUJbG9jYWwJb3B0aW9uCXNhdmUKK3N5biBrZXl3b3JkIG11cGFkQ29uZGl0aW9uYWwJaWYJdGhlbgllbGlmCWVsc2UJZW5kX2lmCitzeW4ga2V5d29yZCBtdXBhZENvbmRpdGlvbmFsCWNhc2UJb2YJZG8JYnJlYWsJZW5kX2Nhc2UKK3N5biBrZXl3b3JkIG11cGFkUmVwZWF0CQlmb3IJZG8JbmV4dAlicmVhawllbmRfZm9yCitzeW4ga2V5d29yZCBtdXBhZFJlcGVhdAkJd2hpbGUJZG8JbmV4dCBicmVhayBlbmRfd2hpbGUKK3N5biBrZXl3b3JkIG11cGFkUmVwZWF0CQlyZXBlYXQJbmV4dCBicmVhayB1bnRpbAllbmRfcmVwZWF0CisiIGRvbWFpbiBwYWNrYWdlcy9saWJyYXJpZXMKK3N5biBrZXl3b3JkIG11cGFkVHlwZQkJCWRldG9vbHMJaW1wb3J0CWxpbmFsZwludW1lcmljCW51bWxpYglwbG90CXBvbHlsaWIKK3N5biBtYXRjaCBtdXBhZFR5cGUJCQkJJ1w8RE9NX1x3Klw+JworCisic3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgljb250YWlucworIiBGdW5jdGlvbnMgZGVhbGluZyB3aXRoIHByaW1lIG51bWJlcnMKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcGhpCWludnBoaQltZXJzZW5uZQluZXh0cHJpbWUJbnVtcHJpbWVkaXZpc29ycworc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwb2xsYXJkCXByZXZwcmltZQlwcmltZWRpdmlzb3JzCisiIEZ1bmN0aW9ucyBvcGVyYXRpbmcgb24gTGlzdHMsIE1hdHJpY2VzLCBTZXRzLCAuLi4KK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYXJyYXkJX2luZGV4CisiIEV2YWx1YXRpb24KK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZmxvYXQgY29udGFpbnMKKyIgc3RkbGliCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCV9leHByc2VxCV9pbnZlcnQJX2xhenlfYW5kCV9sYXp5X29yCV9uZWdhdGUKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JX3N0bXRzZXEJX2ludmVydAlpbnRlcnNlY3QJbWludXMJCXVuaW9uCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUNpCUQJRWkJTwlSZQlJbQlSb290T2YJU2kKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JU2ltcGxpZnkKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYWJzCWFpcnlBaQlhaXJ5QmkJYWxpYXMJdW5hbGlhcwlhbmFtZXMJYXBwZW5kCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWFyY3NpbglhcmNjb3MJYXJjdGFuCWFyY2NzYwlhcmNzZWMJYXJjY290CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWFyY3NpbmgJYXJjY29zaAlhcmN0YW5oCWFyY2NzY2gJYXJjc2VjaAlhcmNjb3RoCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWFyZwlhcmdzCWFycmF5CWFzc2VydAlhc3NpZ24JYXNzaWduRWxlbWVudHMKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYXNzdW1lCWFzc3VtaW5nCWFzeW1wdAliZXJub3VsbGkKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYmVzc2VsSQliZXNzZWxKCWJlc3NlbEsJYmVzc2VsWQliZXRhCWJpbm9taWFsCWJvb2wKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JYnl0ZXMJY2FyZAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgljZWlsCWZsb29yCXJvdW5kCXRydW5jCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWNvZWZmCWNvZXJjZQljb2xsZWN0CWNvbWJpbmUJY29weUNsb3N1cmUKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JY29uanVnYXRlCWNvbnRlbnQJY29udGV4dAljb250ZnJhYworc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglkZWJ1ZwlkZWdyZWUJZGVncmVldmVjCWRlbGV0ZQlfZGVsZXRlCWRlbm9tCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWRlbnNlbWF0cml4CWRpZmYJZGlsb2cJZGlyYWMJZGlzY29udAlkaXYJX2Rpdgorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglkaXZpZGUJZG9tdHlwZQlkb3ByaW50CWVyZgllcmZjCWVycm9yCWV2YWwJZXZhbGFzc2lnbgorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglldmFscAlleHAJZXhwYW5kCWV4cG9ydAl1bmV4cG9ydAlleHBvc2UJZXhwcgorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglleHByMnRleHQJZXh0ZXJuYWwJZXh0bm9wcwlleHRvcAlleHRzdWJzb3AKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZmFjdAlmYWN0MglmYWN0b3IJZmNsb3NlCWZpbnB1dAlmbmFtZQlmb3BlbglmcHJpbnQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZnJlYWQJZnRleHRpbnB1dAlyZWFkYml0bWFwCXJlYWRkYXRhCXBhdGhuYW1lCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXByb3RvY29sCXJlYWQJcmVhZGJ5dGVzCXdyaXRlCXdyaXRlYnl0ZXMKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZmxvYXQJZnJhYwlmcmFtZQlfZnJhbWUJZnJhbmRvbQlmcmVlemUJdW5mcmVlemUKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZnVuY2VudglnYW1tYQlnY2QJZ2NkZXgJZ2VuaWRlbnQJZ2VucG9seQorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglnZXRwaWQJZ2V0cHJvcAlncm91bmQJaGFzCWhhc3R5cGUJaGVhdmlzaWRlCWhlbHAKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JaGlzdG9yeQlob2xkCWh1bGwJaHlwZXJnZW9tCWljb250ZW50CWlkCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWlmYWN0b3IJaWdhbW1hCWlnY2QJaWdjZGV4CWlsY20JaW4JX2luCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWluZGV0cwlpbmRleHZhbAlpbmZvCWlucHV0CWludAlpbnQydGV4dAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglpbnRlcnBvbGF0ZQlpbnRlcnZhbAlpcnJlZHVjaWJsZQlpcworc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglpc3ByaW1lCWlzcXJ0CWlzemVybwlpdGhwcmltZQlrdW1tZXJVCWxhbWJlcnRXCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCWxhc3QJbGFzdGVycm9yCWxjbQlsY29lZmYJbGRlZ3JlZQlsZW5ndGgKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JbGV2ZWwJbGhzCXJocwlsaW1pdAlsaW5zb2x2ZQlsbGxpbnQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JbG1vbm9taWFsCWxuCWxvYWRtb2QJbG9hZHByb2MJbG9nCWx0ZXJtCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW1hdGNoCW1hcAltYXBjb2VmZnMJbWFwcmF0CW1hdHJpeAltYXgJbWluCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW1vZAltb2RwCW1vZHMJbW9ub21pYWxzCW11bHRjb2VmZnMJbmV3CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW5ld0RvbWFpbglfbmV4dAluZXh0cHJpbWUJbm9wcworc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglub3JtCW5vcm1hbAludGVybXMJbnRoY29lZmYJbnRobW9ub21pYWwJbnRodGVybQorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgludWxsCW51bWVyCW9kZQlvcAlvcGVyYXRvcglwYWNrYWdlCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXBhZGUJcGFydGZyYWMJcGF0Y2hsZXZlbAlwZGl2aWRlCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXBpZWNld2lzZQlwbG90CXBsb3RmdW5jMmQJcGxvdGZ1bmMzZAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwb2x5CXBvbHkybGlzdAlwb2x5bG9nCXBvd2VybW9kCXByaW50CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXByb2R1Y3QJcHJvdGVjdAlwc2kJcXVpdAlfcXVpdAlyYWRzaW1wCXJhbmRvbQlyYXRpb25hbGl6ZQorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglyZWMJcmVjdGZvcm0JcmVnaXN0ZXIJcmVzZXQJcmV0dXJuCXJldmVydAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglyZXdyaXRlCXNlbGVjdAlzZXJpZXMJc2V0dXNlcmluZm8Jc2hhcmUJc2lnbglzaWduSW0KK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc2ltcGxpZnkKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc2luCWNvcwl0YW4JY3NjCXNlYwljb3QKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc2luaAljb3NoCXRhbmgJY3NjaAlzZWNoCWNvdGgKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc2xvdAlzb2x2ZQorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglwZGVzb2x2ZQltYXRsaW5zb2x2ZQltYXRsaW5zb2x2ZUxVCXRvZXBsaXR6U29sdmUKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JdmFuZGVybW9uZGVTb2x2ZQlmc29sdmUJb2Rlc29sdmUJb2Rlc29sdmUyCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXBvbHlyb290cwlwb2x5c3lzcm9vdHMJb2Rlc29sdmVHZW9tZXRyaWMKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JcmVhbHJvb3QJcmVhbHJvb3RzCW1yb290cwlsaW5jb25ncnVlbmNlCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCW1zcXJ0cworc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglzb3J0CXNwbGl0CXNxcnQJc3RybWF0Y2gJc3RycHJpbnQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24Jc3VicwlzdWJzZXQJc3Vic2V4CXN1YnNvcAlzdWJzdHJpbmcJc3VtCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXN1cmQJc3lzbmFtZQlzeXNvcmRlcglzeXN0ZW0JdGFibGUJdGF5bG9yCXRibDJ0ZXh0CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXRjb2VmZgl0ZXN0YXJncwl0ZXN0ZXEJdGVzdHR5cGUJdGV4dDJleHByCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXRleHQyaW50CXRleHQybGlzdAl0ZXh0MnRibAlydGltZQl0aW1lCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCXRyYXBlcnJvcgl0eXBlCXVuYXNzdW1lCXVuaXQJdW5pdmVyc2UKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JdW5sb2FkbW9kCXVucHJvdGVjdAl1c2VyaW5mbwl2YWwJdmVyc2lvbgorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbgl3YXJuaW5nCXdoaXR0YWtlck0Jd2hpdHRha2VyVwl6ZXRhCXppcAorCisiIGdyYXBoaWNzICBwbG90OjoKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JZ2V0RGVmYXVsdAlzZXREZWZhdWx0CWNvcHkJbW9kaWZ5CUFyYzJkCUFycm93MmQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JQXJyb3czZAlCYXJzMmQJQmFyczNkCUJveAlCb3hwbG90CUNpcmNsZTJkCUNpcmNsZTNkCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUNvbmUJQ29uZm9ybWFsCUN1cnZlMmQJQ3VydmUzZAlDeWxpbmRlcglDeWxpbmRyaWNhbAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglEZW5zaXR5CUVsbGlwc2UyZAlGdW5jdGlvbjJkCUZ1bmN0aW9uM2QJSGF0Y2gKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JSGlzdG9ncmFtMmQJSE9yYml0YWwJSW1wbGljaXQyZAlJbXBsaWNpdDNkCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUluZXF1YWxpdHkJSXRlcmF0aW9uCUxpbmUyZAlMaW5lM2QJTHN5cwlNYXRyaXhwbG90CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCU11UEFEQ3ViZQlPZGUyZAlPZGUzZAlQYXJhbGxlbG9ncmFtMmQJUGFyYWxsZWxvZ3JhbTNkCitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCVBpZWNoYXJ0MmQJUGllY2hhcnQzZAlQb2ludDJkCVBvaW50M2QJUG9sYXIKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JUG9seWdvbjJkCVBvbHlnb24zZAlSYXN0ZXIJUmVjdGFuZ2xlCVNwaGVyZQorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglFbGxpcHNvaWQJU3BoZXJpY2FsCVN1bQlTdXJmYWNlCVN1cmZhY2VTZXQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JU3VyZmFjZVNUTAlUZXRyYWhlZHJvbglIZXhhaGVkcm9uCU9jdGFoZWRyb24KK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JRG9kZWNhaGVkcm9uCUljb3NhaGVkcm9uCVRleHQyZAlUZXh0M2QJVHViZQlUdXJ0bGUKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JVmVjdG9yRmllbGQyZAlYUm90YXRlCVpSb3RhdGUJQ2FudmFzCUNvb3JkaW5hdGVTeXN0ZW0yZAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglDb29yZGluYXRlU3lzdGVtM2QJR3JvdXAyZAlHcm91cDNkCVNjZW5lMmQJU2NlbmUzZAlDbGlwcGluZ0JveAorc3luIGtleXdvcmQgbXVwYWRGdW5jdGlvbglSb3RhdGUyZAlSb3RhdGUzZAlTY2FsZTJkCVNjYWxlM2QJVHJhbnNmb3JtMmQKK3N5biBrZXl3b3JkIG11cGFkRnVuY3Rpb24JVHJhbnNmb3JtM2QJVHJhbnNsYXRlMmQJVHJhbnNsYXRlM2QJQW1iaWVudExpZ2h0CitzeW4ga2V5d29yZCBtdXBhZEZ1bmN0aW9uCUNhbWVyYQlEaXN0YW50TGlnaHQJUG9pbnRMaWdodAlTcG90TGlnaHQKKworIiBncmFwaGljcyBBdHRyaWJ1dGVzCisiIGdyYXBoaWNzICBPdXRwdXQgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU91dHB1dEZpbGUJT3V0cHV0T3B0aW9ucworIiBncmFwaGljcyAgRGVmaW5pbmcgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUFuZ2xlCUFuZ2xlUmFuZ2UJQW5nbGVCZWdpbglBbmdsZUVuZAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUFyZWEJQXhpcwlBeGlzWAlBeGlzWQlBeGlzWglCYXNlCVRvcAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUJhc2VYCVRvcFgJQmFzZVkJVG9wWQlCYXNlWglUb3BaCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQmFzZVJhZGl1cwlUb3BSYWRpdXMJQ2VsbHMKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglDZW50ZXIJQ2VudGVyWAlDZW50ZXJZCUNlbnRlcloKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglDbG9zZWQJQ29sb3JEYXRhCUNvbW1hbmRMaXN0CUNvbnRvdXJzCUNvb3JkaW5hdGVUeXBlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJRGF0YQlEZW5zaXR5RGF0YQlEZW5zaXR5RnVuY3Rpb24JRnJvbQlUbworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZyb21YCVRvWAlGcm9tWQlUb1kJRnJvbVoJVG9aCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJRnVuY3Rpb24JRnVuY3Rpb25YCUZ1bmN0aW9uWQlGdW5jdGlvbloKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGdW5jdGlvbjEJRnVuY3Rpb24yCUJhc2VsaW5lCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJR2VuZXJhdGlvbnMJUm90YXRpb25BbmdsZQlJdGVyYXRpb25SdWxlcwlTdGFydFJ1bGUgU3RlcExlbmd0aAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVR1cnRsZVJ1bGVzCUdyb3VuZAlIZWlnaHRzCU1vdmVzCUluZXF1YWxpdGllcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUlucHV0RmlsZQlJdGVyYXRpb25zCVN0YXJ0aW5nUG9pbnQKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglMaW5lQ29sb3JGdW5jdGlvbglGaWxsQ29sb3JGdW5jdGlvbgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU1hdHJpeDJkCU1hdHJpeDNkCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTWVzaExpc3QJTWVzaExpc3RUeXBlCU1lc2hMaXN0Tm9ybWFscworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU1hZ25ldGljUXVhbnR1bU51bWJlcglNb21lbnR1bVF1YW50dW1OdW1iZXIJUHJpbmNpcGFsUXVhbnR1bU51bWJlcgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU5hbWUJTm9ybWFsCU5vcm1hbFgJTm9ybWFsWQlOb3JtYWxaCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJUGFyYW1ldGVyTmFtZQlQYXJhbWV0ZXJCZWdpbglQYXJhbWV0ZXJFbmQJUGFyYW1ldGVyUmFuZ2UKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglQb2ludHMyZAlQb2ludHMzZAlSYWRpdXMJUmFkaXVzRnVuY3Rpb24KK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglQb3NpdGlvbglQb3NpdGlvblgJUG9zaXRpb25ZCVBvc2l0aW9uWgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVNjYWxlCVNjYWxlWAlTY2FsZVkJU2NhbGVaIFNoaWZ0CVNoaWZ0WAlTaGlmdFkJU2hpZnRaCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJU2VtaUF4ZXMJU2VtaUF4aXNYCVNlbWlBeGlzWQlTZW1pQXhpc1oKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglUYW5nZW50MQlUYW5nZW50MVgJVGFuZ2VudDFZCVRhbmdlbnQxWgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRhbmdlbnQyCVRhbmdlbnQyWAlUYW5nZW50MlkJVGFuZ2VudDJaCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGV4dAlUZXh0T3JpZW50YXRpb24JVGV4dFJvdGF0aW9uCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVU5hbWUJVVJhbmdlCVVNaW4JVU1heAlWTmFtZQlWUmFuZ2UJVk1pbglWTWF4CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWE5hbWUJWFJhbmdlCVhNaW4JWE1heAlZTmFtZQlZUmFuZ2UJWU1pbglZTWF4CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWk5hbWUJWlJhbmdlCVpNaW4JWk1heAlWaWV3aW5nQm94CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVmlld2luZ0JveFhNaW4JVmlld2luZ0JveFhNYXgJVmlld2luZ0JveFhSYW5nZQorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVZpZXdpbmdCb3hZTWluCVZpZXdpbmdCb3hZTWF4CVZpZXdpbmdCb3hZUmFuZ2UKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWaWV3aW5nQm94Wk1pbglWaWV3aW5nQm94Wk1heAlWaWV3aW5nQm94WlJhbmdlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVmlzaWJsZQorIiBncmFwaGljcyAgQXhpcyBBdHRyaWJ1dGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlcwlBeGVzSW5Gcm9udAlBeGVzTGluZUNvbG9yCUF4ZXNMaW5lV2lkdGgKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBeGVzT3JpZ2luCUF4ZXNPcmlnaW5YCUF4ZXNPcmlnaW5ZCUF4ZXNPcmlnaW5aCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlc1RpcHMJQXhlc1RpdGxlQWxpZ25tZW50CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlc1RpdGxlQWxpZ25tZW50WAlBeGVzVGl0bGVBbGlnbm1lbnRZCUF4ZXNUaXRsZUFsaWdubWVudFoKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBeGVzVGl0bGVzCVhBeGlzVGl0bGUJWUF4aXNUaXRsZQlaQXhpc1RpdGxlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQXhlc1Zpc2libGUJWEF4aXNWaXNpYmxlCVlBeGlzVmlzaWJsZQlaQXhpc1Zpc2libGUKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglZQXhpc1RpdGxlT3JpZW50YXRpb24KKyIgZ3JhcGhpY3MgIFRpY2sgTWFya3MgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzQW5jaG9yCVhUaWNrc0FuY2hvcglZVGlja3NBbmNob3IJWlRpY2tzQW5jaG9yCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGlja3NBdAlYVGlja3NBdAlZVGlja3NBdAlaVGlja3NBdAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzQmV0d2VlbglYVGlja3NCZXR3ZWVuCVlUaWNrc0JldHdlZW4JWlRpY2tzQmV0d2Vlbgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzRGlzdGFuY2UJWFRpY2tzRGlzdGFuY2UJWVRpY2tzRGlzdGFuY2UJWlRpY2tzRGlzdGFuY2UKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglUaWNrc051bWJlcglYVGlja3NOdW1iZXIJWVRpY2tzTnVtYmVyCVpUaWNrc051bWJlcgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzVmlzaWJsZQlYVGlja3NWaXNpYmxlCVlUaWNrc1Zpc2libGUJWlRpY2tzVmlzaWJsZQorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpY2tzTGVuZ3RoCVRpY2tzTGFiZWxTdHlsZQorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVhUaWNrc0xhYmVsU3R5bGUJWVRpY2tzTGFiZWxTdHlsZQlaVGlja3NMYWJlbFN0eWxlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGlja3NMYWJlbHNWaXNpYmxlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJWFRpY2tzTGFiZWxzVmlzaWJsZQlZVGlja3NMYWJlbHNWaXNpYmxlCVpUaWNrc0xhYmVsc1Zpc2libGUKKyIgZ3JhcGhpY3MgIEdyaWQgTGluZXMgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUdyaWRJbkZyb250CUdyaWRMaW5lQ29sb3IJU3ViZ3JpZExpbmVDb2xvcgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUdyaWRMaW5lU3R5bGUJU3ViZ3JpZExpbmVTdHlsZSBHcmlkTGluZVdpZHRoCVN1YmdyaWRMaW5lV2lkdGgKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglHcmlkVmlzaWJsZQlYR3JpZFZpc2libGUJWUdyaWRWaXNpYmxlCVpHcmlkVmlzaWJsZQorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVN1YmdyaWRWaXNpYmxlCVhTdWJncmlkVmlzaWJsZQlZU3ViZ3JpZFZpc2libGUJWlN1YmdyaWRWaXNpYmxlCisiIGdyYXBoaWNzICBBbmltYXRpb24gQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZyYW1lcwlUaW1lUmFuZ2UJVGltZUJlZ2luCVRpbWVFbmQKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWaXNpYmxlQWZ0ZXIJVmlzaWJsZUJlZm9yZQlWaXNpYmxlRnJvbVRvCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVmlzaWJsZUFmdGVyRW5kCVZpc2libGVCZWZvcmVCZWdpbgorIiBncmFwaGljcyAgQW5ub3RhdGlvbiBBdHRyaWJ1dGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJRm9vdGVyCUhlYWRlcglGb290ZXJBbGlnbm1lbnQJSGVhZGVyQWxpZ25tZW50CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJSG9yaXpvbnRhbEFsaWdubWVudAlUaXRsZUFsaWdubWVudAlWZXJ0aWNhbEFsaWdubWVudAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUxlZ2VuZAlMZWdlbmRFbnRyeQlMZWdlbmRUZXh0CitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTGVnZW5kQWxpZ25tZW50CUxlZ2VuZFBsYWNlbWVudAlMZWdlbmRWaXNpYmxlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGl0bGUJVGl0bGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGl0bGVQb3NpdGlvbglUaXRsZVBvc2l0aW9uWAlUaXRsZVBvc2l0aW9uWQlUaXRsZVBvc2l0aW9uWgorIiBncmFwaGljcyAgTGF5b3V0IEF0dHJpYnV0ZXMKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCb3R0b20JTGVmdAlIZWlnaHQJV2lkdGgJTGF5b3V0CVJvd3MJQ29sdW1ucworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU1hcmdpbglCb3R0b21NYXJnaW4JVG9wTWFyZ2luCUxlZnRNYXJnaW4JUmlnaHRNYXJnaW4KK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglPdXRwdXRVbml0cwlTcGFjaW5nCisiIGdyYXBoaWNzICBDYWxjdWxhdGlvbiBBdHRyaWJ1dGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQWRhcHRpdmVNZXNoCURpc2NvbnRpbnVpdHlTZWFyY2gJTWVzaAlTdWJNZXNoCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVU1lc2gJVVN1Yk1lc2gJVk1lc2gJVlN1Yk1lc2gKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglYTWVzaAlYU3ViTWVzaAlZTWVzaAlZU3ViTWVzaAlabWVzaAorIiBncmFwaGljcyAgQ2FtZXJhIGFuZCBMaWdodHMgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUNhbWVyYUNvb3JkaW5hdGVzCUNhbWVyYURpcmVjdGlvbgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUNhbWVyYURpcmVjdGlvblgJQ2FtZXJhRGlyZWN0aW9uWQlDYW1lcmFEaXJlY3Rpb25aCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJRm9jYWxQb2ludAlGb2NhbFBvaW50WAlGb2NhbFBvaW50WQlGb2NhbFBvaW50Wgorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUxpZ2h0Q29sb3IJTGlnaHRpbmcJTGlnaHRJbnRlbnNpdHkJT3J0aG9nb25hbFByb2plY3Rpb24KK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglTcG90QW5nbGUJVmlld2luZ0FuZ2xlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJVGFyZ2V0CVRhcmdldFgJVGFyZ2V0WQlUYXJnZXRaCisiIGdyYXBoaWNzICBQcmVzZW50YXRpb24gU3R5bGUgYW5kIEZvbnRzIEF0dHJpYnV0ZXMKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglBcnJvd0xlbmd0aAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUF4ZXNUaXRsZUZvbnQJRm9vdGVyRm9udAlIZWFkZXJGb250CUxlZ2VuZEZvbnQKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglUZXh0Rm9udAlUaWNrc0xhYmVsRm9udAlUaXRsZUZvbnQKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCYWNrZ3JvdW5kQ29sb3IJQmFja2dyb3VuZENvbG9yMglCYWNrZ3JvdW5kU3R5bGUKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglCYWNrZ3JvdW5kVHJhbnNwYXJlbnQJQmlsbGJvYXJkaW5nCUJvcmRlckNvbG9yCUJvcmRlcldpZHRoCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQm94Q2VudGVycwlCb3hXaWR0aHMJRHJhd01vZGUgR2FwCVhHYXAJWUdhcAorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCU5vdGNoZWQJTm90Y2hXaWR0aAlTY2FsaW5nCVlYUmF0aW8JWlhSYXRpbworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVZlcnRpY2FsQXN5bXB0b3Rlc1Zpc2libGUJVmVydGljYWxBc3ltcHRvdGVzU3R5bGUKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglWZXJ0aWNhbEFzeW1wdG90ZXNDb2xvcglWZXJ0aWNhbEFzeW1wdG90ZXNXaWR0aAorIiBncmFwaGljcyAgTGluZSBTdHlsZSBBdHRyaWJ1dGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJTGluZUNvbG9yCUxpbmVDb2xvcjIJTGluZUNvbG9yVHlwZQlMaW5lU3R5bGUKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglMaW5lc1Zpc2libGUJVUxpbmVzVmlzaWJsZQlWTGluZXNWaXNpYmxlCVhMaW5lc1Zpc2libGUKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglZTGluZXNWaXNpYmxlCUxpbmVXaWR0aAlNZXNoVmlzaWJsZQorIiBncmFwaGljcyAgUG9pbnQgU3R5bGUgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVBvaW50Q29sb3IJUG9pbnRTaXplCVBvaW50U3R5bGUJUG9pbnRzVmlzaWJsZQorIiBncmFwaGljcyAgU3VyZmFjZSBTdHlsZSBBdHRyaWJ1dGVzCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJQmFyU3R5bGUJU2hhZG93cwlDb2xvcglDb2xvcnMJRmlsbENvbG9yCUZpbGxDb2xvcjIKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglGaWxsQ29sb3JUcnVlCUZpbGxDb2xvckZhbHNlCUZpbGxDb2xvclVua25vd24JRmlsbENvbG9yVHlwZQorc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCUZpbGxlZAlGaWxsUGF0dGVybglGaWxsUGF0dGVybnMJRmlsbFN0eWxlCitzeW4ga2V5d29yZCBtdXBhZElkZW50aWZpZXIJSW50ZXJwb2xhdGlvblN0eWxlCVNoYWRpbmcJVXNlTm9ybWFscworIiBncmFwaGljcyAgQXJyb3cgU3R5bGUgQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCVRpcEFuZ2xlCVRpcExlbmd0aAlUaXBTdHlsZQlUdWJlRGlhbWV0ZXIKK3N5biBrZXl3b3JkIG11cGFkSWRlbnRpZmllcglUdWJ1bGFyCisiIGdyYXBoaWNzICBtZXRhLWRvY3VtZW50YXRpb24gQXR0cmlidXRlcworc3luIGtleXdvcmQgbXVwYWRJZGVudGlmaWVyCW9iamVjdEdyb3Vwc0xpc3RlZAorCitpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfbXVwYWRfc3ludGF4X2luaXRzIikKKyAgaWYgdmVyc2lvbiA8IDUwOAorICAgIGxldCBkaWRfbXVwYWRfc3ludGF4X2luaXRzID0gMQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CisgIGVsc2UKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KKyAgZW5kaWYKKworICBIaUxpbmsgbXVwYWRDb21tZW50CQlDb21tZW50CisgIEhpTGluayBtdXBhZFN0cmluZwkJU3RyaW5nCisgIEhpTGluayBtdXBhZE9wZXJhdG9yCQlPcGVyYXRvcgorICBIaUxpbmsgbXVwYWRTcGVjaWFsCQlTcGVjaWFsCisgIEhpTGluayBtdXBhZFN0YXRlbWVudAkJU3RhdGVtZW50CisgIEhpTGluayBtdXBhZFVuZGVybGluZWQJVW5kZXJsaW5lZAorICBIaUxpbmsgbXVwYWRDb25kaXRpb25hbAlDb25kaXRpb25hbAorICBIaUxpbmsgbXVwYWRSZXBlYXQJCVJlcGVhdAorICBIaUxpbmsgbXVwYWRGdW5jdGlvbgkJRnVuY3Rpb24KKyAgSGlMaW5rIG11cGFkVHlwZQkJVHlwZQorICBIaUxpbmsgbXVwYWREZWZpbmUJCURlZmluZQorICBIaUxpbmsgbXVwYWRJZGVudGlmaWVyCUlkZW50aWZpZXIKKworICBkZWxjb21tYW5kIEhpTGluaworZW5kaWYKKworIiBUT0RPICBNb3JlIGNvbXByZWhlbnNpdmUgbGlzdGluZy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0gYi9ydW50aW1lL3N5bnRheC92aW0udmltCmluZGV4IGQyOWQ1Y2UuLmI4OTMzYWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdmltLnZpbQpAQCAtNTUsNyArNTUsNyBAQAogc3luIGNhc2UgbWF0Y2gKIAogIiBGdW5jdGlvbiBOYW1lcyB7e3syCi1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWRkIGFwcGVuZCBhcmdjIGFyZ2lkeCBhcmd2IGJyb3dzZSBicm93c2VkaXIgYnVmZXhpc3RzIGJ1Zmxpc3RlZCBidWZsb2FkZWQgYnVmbmFtZSBidWZuciBidWZ3aW5uciBieXRlMmxpbmUgYnl0ZWlkeCBjYWxsIGNoYXIybnIgY2luZGVudCBjb2wgY29uZmlybSBjb3B5IGNvdW50IGNzY29wZV9jb25uZWN0aW9uIGN1cnNvciBkZWVwY29weSBkZWxldGUgZGlkX2ZpbGV0eXBlIGRpZmZfZmlsbGVyIGRpZmZfaGxJRCBlbXB0eSBlcnJvcmxpc3QgZXNjYXBlIGV2YWwgZXZlbnRoYW5kbGVyIGV4ZWN1dGFibGUgZXhpc3RzIGV4cGFuZCBleHByOCBleHRlbmQgZmlsZXJlYWRhYmxlIGZpbGV3cml0YWJsZSBmaWx0ZXIgZmluZGRpciBmaW5kZmlsZSBmbmFtZW1vZGlmeSBmb2xkY2xvc2VkIGZvbGRjbG9zZWRlbmQgZm9sZGxldmVsIGZvbGR0ZXh0IGZvbGR0ZXh0cmVzdWx0IGZvcmVncm91bmQgZnVuY3Rpb24gZ2V0IGdldGJ1ZnZhciBnZXRjaGFyIGdldGNoYXJtb2QgZ2V0Y21kbGluZSBnZXRjbWRwb3MgZ2V0Y3dkIGdldGZvbnRuYW1lIGdldGZwZXJtIGdldGZzaXplIGdldGZ0aW1lIGdldGZ0eXBlIGdldGxpbmUgZ2V0cmVnIGdldHJlZ3R5cGUgZ2V0d2lucG9zeCBnZXR3aW5wb3N5IGdldHdpbnZhciBnbG9iIGdsb2JwYXRoIGhhcyBoYXNfa2V5IGhhc21hcHRvIGhpc3RhZGQgaGlzdGRlbCBoaXN0Z2V0IGhpc3RuciBobGV4aXN0cyBobElEIGhvc3RuYW1lIGljb252IGluZGVudCBpbmRleCBpbnB1dCBpbnB1dGRpYWxvZyBpbnB1dHJlc3RvcmUgaW5wdXRzYXZlIGlucHV0c2VjcmV0IGluc2VydCBpc2RpcmVjdG9yeSBpc2xvY2tlZCBpdGVtcyBqb2luIGtleXMgbGVuIGxpYmNhbGwgbGliY2FsbG5yIGxpbmUgbGluZTJieXRlIGxpc3BpbmRlbnQgbG9jYWx0aW1lIG1hcCBtYXBhcmcgbWFwY2hlY2sgbWF0Y2ggbWF0Y2hlbmQgbWF0Y2hsaXN0IG1hdGNoc3RyIG1heCBtaW4gbWtkaXIgbW9kZSBuZXh0bm9uYmxhbmsgbnIyY2hhciBwcmV2bm9uYmxhbmsgcmFuZ2UgcmVhZGZpbGUgcmVtb3RlX2V4cHIgcmVtb3RlX2ZvcmVncm91bmQgcmVtb3RlX3BlZWsgcmVtb3RlX3JlYWQgcmVtb3RlX3NlbmQgcmVtb3ZlIHJlbmFtZSByZXBlYXQgcmVzb2x2ZSByZXZlcnNlIHNlYXJjaCBzZWFyY2hwYWlyIHNlcnZlcjJjbGllbnQgc2VydmVybGlzdCBzZXRidWZ2YXIgc2V0Y21kcG9zIHNldGxpbmUgc2V0cmVnIHNldHdpbnZhciBzaW1wbGlmeSBzb3J0IHNwbGl0IHN0cmZ0aW1lIHN0cmlkeCBzdHJpbmcgc3RybGVuIHN0cnBhcnQgc3RycmlkeCBzdHJ0cmFucyBzdWJtYXRjaCBzdWJzdGl0dXRlIHN5bklEIHN5bklEYXR0ciBzeW5JRHRyYW5zIHN5c3RlbSB0YWdsaXN0IHRlbXBuYW1lIHRvbG93ZXIgdG91cHBlciB0ciB0eXBlIHZhbHVlcyB2aXJ0Y29sIHZpc3VhbG1vZGUgd2luYnVmbnIgd2luY29sIHdpbmhlaWdodCB3aW5saW5lIHdpbm5yIHdpbnJlc3RjbWQgd2lud2lkdGggd3JpdGVmaWxlIAorc3luIGtleXdvcmQgdmltRnVuY05hbWUgY29udGFpbmVkCWFkZCBhcHBlbmQgYXJnYyBhcmdpZHggYXJndiBicm93c2UgYnJvd3NlZGlyIGJ1ZmV4aXN0cyBidWZsaXN0ZWQgYnVmbG9hZGVkIGJ1Zm5hbWUgYnVmbnIgYnVmd2lubnIgYnl0ZTJsaW5lIGJ5dGVpZHggY2FsbCBjaGFyMm5yIGNpbmRlbnQgY29sIGNvbmZpcm0gY29weSBjb3VudCBjc2NvcGVfY29ubmVjdGlvbiBjdXJzb3IgZGVlcGNvcHkgZGVsZXRlIGRpZF9maWxldHlwZSBkaWZmX2ZpbGxlciBkaWZmX2hsSUQgZW1wdHkgZXJyb3JsaXN0IGVzY2FwZSBldmFsIGV2ZW50aGFuZGxlciBleGVjdXRhYmxlIGV4aXN0cyBleHBhbmQgZXhwcjggZXh0ZW5kIGZpbGVyZWFkYWJsZSBmaWxld3JpdGFibGUgZmlsdGVyIGZpbmRkaXIgZmluZGZpbGUgZm5hbWVtb2RpZnkgZm9sZGNsb3NlZCBmb2xkY2xvc2VkZW5kIGZvbGRsZXZlbCBmb2xkdGV4dCBmb2xkdGV4dHJlc3VsdCBmb3JlZ3JvdW5kIGZ1bmN0aW9uIGdldCBnZXRidWZ2YXIgZ2V0Y2hhciBnZXRjaGFybW9kIGdldGNtZGxpbmUgZ2V0Y21kcG9zIGdldGN3ZCBnZXRmb250bmFtZSBnZXRmcGVybSBnZXRmc2l6ZSBnZXRmdGltZSBnZXRmdHlwZSBnZXRsaW5lIGdldHJlZyBnZXRyZWd0eXBlIGdldHdpbnBvc3ggZ2V0d2lucG9zeSBnZXR3aW52YXIgZ2xvYiBnbG9icGF0aCBoYXMgaGFzX2tleSBoYXNtYXB0byBoaXN0YWRkIGhpc3RkZWwgaGlzdGdldCBoaXN0bnIgaGxleGlzdHMgaGxJRCBob3N0bmFtZSBpY29udiBpbmRlbnQgaW5kZXggaW5wdXQgaW5wdXRkaWFsb2cgaW5wdXRyZXN0b3JlIGlucHV0c2F2ZSBpbnB1dHNlY3JldCBpbnNlcnQgaXNkaXJlY3RvcnkgaXNsb2NrZWQgaXRlbXMgam9pbiBrZXlzIGxlbiBsaWJjYWxsIGxpYmNhbGxuciBsaW5lIGxpbmUyYnl0ZSBsaXNwaW5kZW50IGxvY2FsdGltZSBtYXAgbWFwYXJnIG1hcGNoZWNrIG1hdGNoIG1hdGNoZW5kIG1hdGNobGlzdCBtYXRjaHN0ciBtYXggbWluIG1rZGlyIG1vZGUgbmV4dG5vbmJsYW5rIG5yMmNoYXIgcHJldm5vbmJsYW5rIHJhbmdlIHJlYWRmaWxlIHJlbW90ZV9leHByIHJlbW90ZV9mb3JlZ3JvdW5kIHJlbW90ZV9wZWVrIHJlbW90ZV9yZWFkIHJlbW90ZV9zZW5kIHJlbW92ZSByZW5hbWUgcmVwZWF0IHJlc29sdmUgcmV2ZXJzZSBzZWFyY2ggc2VhcmNocGFpciBzZXJ2ZXIyY2xpZW50IHNlcnZlcmxpc3Qgc2V0YnVmdmFyIHNldGNtZHBvcyBzZXRsaW5lIHNldHJlZyBzZXR3aW52YXIgc2ltcGxpZnkgc29ydCBzcGxpdCBzdHJmdGltZSBzdHJpZHggc3RyaW5nIHN0cmxlbiBzdHJwYXJ0IHN0cnJpZHggc3RydHJhbnMgc3VibWF0Y2ggc3Vic3RpdHV0ZSBzeW5JRCBzeW5JRGF0dHIgc3luSUR0cmFucyBzeXN0ZW0gdGFnbGlzdCB0ZW1wbmFtZSB0b2xvd2VyIHRvdXBwZXIgdHIgdHlwZSB2YWx1ZXMgdmlydGNvbCB2aXN1YWxtb2RlIHdpbmJ1Zm5yIHdpbmNvbCB3aW5oZWlnaHQgd2lubGluZSB3aW5uciB3aW5yZXN0Y21kIHdpbndpZHRoIHdyaXRlZmlsZSBzb3VuZGZvbGQgc3BlbGxzdWdnZXN0IHNwZWxsYmFkd29yZAogCiAiLS0tIHN5bnRheCBhYm92ZSBnZW5lcmF0ZWQgYnkgbWt2aW12aW0gLS0tCiAiIFNwZWNpYWwgVmltIEhpZ2hsaWdodGluZyAobm90IGF1dG9tYXRpYykge3t7MQo=