From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1555 invoked by alias); 6 Sep 2011 15:37:52 -0000 Received: (qmail 1458 invoked by uid 22791); 6 Sep 2011 15:37:51 -0000 X-SWARE-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_05,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from ausxippc101.us.dell.com (HELO ausxippc101.us.dell.com) (143.166.85.207) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 06 Sep 2011 15:37:28 +0000 X-Loopcount0: from 10.175.216.251 From: To: Date: Tue, 06 Sep 2011 15:42:00 -0000 Subject: RE: Doc: make python function/method descriptions look as in Python Message-ID: <09787EF419216C41A903FD14EE5506DD01534916A6@AUSX7MCPC103.AMER.DELL.COM> References: <09787EF419216C41A903FD14EE5506DD015343BFAE@AUSX7MCPC103.AMER.DELL.COM> <837h5p2a6g.fsf@gnu.org> <09787EF419216C41A903FD14EE5506DD01534911A3@AUSX7MCPC103.AMER.DELL.COM> In-Reply-To: Content-Type: multipart/mixed; boundary="_002_09787EF419216C41A903FD14EE5506DD01534916A6AUSX7MCPC103A_" MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-09/txt/msg00090.txt.bz2 --_002_09787EF419216C41A903FD14EE5506DD01534916A6AUSX7MCPC103A_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 252 Here is an updated version. This one replaces defmethod by defun and defiv= ar by defvar, with the class name explicit on the symbol as is the Python d= ocumentation convention. I'm sending the diff as an attachment, hope that = works right. paul --_002_09787EF419216C41A903FD14EE5506DD01534916A6AUSX7MCPC103A_ Content-Type: application/octet-stream; name="gdb.texinfo.diff" Content-Description: gdb.texinfo.diff Content-Disposition: attachment; filename="gdb.texinfo.diff"; size=67509; creation-date="Tue, 06 Sep 2011 15:37:24 GMT"; modification-date="Tue, 06 Sep 2011 15:34:37 GMT" Content-Transfer-Encoding: base64 Content-length: 91513 SW5kZXg6IGdkYi50ZXhpbmZvCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhpbmZvLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjg1NwpkaWZmIC11IC1yMS44NTcgZ2RiLnRl eGluZm8KLS0tIGdkYi50ZXhpbmZvCTI1IEF1ZyAyMDExIDE3OjU5OjQ5IC0w MDAwCTEuODU3CisrKyBnZGIudGV4aW5mbwk2IFNlcCAyMDExIDE1OjMzOjE4 IC0wMDAwCkBAIC0yMTAwMCwxMiArMjEwMDAsMTIgQEAKIHVzZSBpbiBhbGwg c2NyaXB0cyBldmFsdWF0ZWQgYnkgdGhlIEBjb2Rle3B5dGhvbn0gY29tbWFu ZC4KIAogQGZpbmRleCBnZGIuUFlUSE9ORElSCi1AZGVmdmFyIFBZVEhPTkRJ UgorQGRlZnZhciBnZGIuUFlUSE9ORElSCiBBIHN0cmluZyBjb250YWluaW5n IHRoZSBweXRob24gZGlyZWN0b3J5IChAcHhyZWZ7UHl0aG9ufSkuCiBAZW5k IGRlZnZhcgogCiBAZmluZGV4IGdkYi5leGVjdXRlCi1AZGVmdW4gZXhlY3V0 ZSBjb21tYW5kIFtmcm9tX3R0eV0gW3RvX3N0cmluZ10KK0BkZWZ1biBnZGIu ZXhlY3V0ZSAoY29tbWFuZCBAcntbfSwgZnJvbV90dHkgQHJ7W30sIHRvX3N0 cmluZ0Bye119QHJ7XX0pCiBFdmFsdWF0ZSBAdmFye2NvbW1hbmR9LCBhIHN0 cmluZywgYXMgYSBAdmFsdWV7R0RCTn0gQ0xJIGNvbW1hbmQuCiBJZiBhIEdE QiBleGNlcHRpb24gaGFwcGVucyB3aGlsZSBAdmFye2NvbW1hbmR9IHJ1bnMs IGl0IGlzCiB0cmFuc2xhdGVkIGFzIGRlc2NyaWJlZCBpbiBAcmVme0V4Y2Vw dGlvbiBIYW5kbGluZywsRXhjZXB0aW9uIEhhbmRsaW5nfS4KQEAgLTIxMDI0 LDEzICsyMTAyNCwxMyBAQAogQGVuZCBkZWZ1bgogCiBAZmluZGV4IGdkYi5i cmVha3BvaW50cwotQGRlZnVuIGJyZWFrcG9pbnRzCitAZGVmdW4gZ2RiLmJy ZWFrcG9pbnRzICgpCiBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBv ZiBAdmFsdWV7R0RCTn0ncyBicmVha3BvaW50cy4KIEB4cmVme0JyZWFrcG9p bnRzIEluIFB5dGhvbn0sIGZvciBtb3JlIGluZm9ybWF0aW9uLgogQGVuZCBk ZWZ1bgogCiBAZmluZGV4IGdkYi5wYXJhbWV0ZXIKLUBkZWZ1biBwYXJhbWV0 ZXIgcGFyYW1ldGVyCitAZGVmdW4gZ2RiLnBhcmFtZXRlciAocGFyYW1ldGVy KQogUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0 ZXIuICBAdmFye3BhcmFtZXRlcn0gaXMgYQogc3RyaW5nIG5hbWluZyB0aGUg cGFyYW1ldGVyIHRvIGxvb2sgdXA7IEB2YXJ7cGFyYW1ldGVyfSBtYXkgY29u dGFpbgogc3BhY2VzIGlmIHRoZSBwYXJhbWV0ZXIgaGFzIGEgbXVsdGktcGFy dCBuYW1lLiAgRm9yIGV4YW1wbGUsCkBAIC0yMTA0Myw3ICsyMTA0Myw3IEBA CiBAZW5kIGRlZnVuCiAKIEBmaW5kZXggZ2RiLmhpc3RvcnkKLUBkZWZ1biBo aXN0b3J5IG51bWJlcgorQGRlZnVuIGdkYi5oaXN0b3J5IChudW1iZXIpCiBS ZXR1cm4gYSB2YWx1ZSBmcm9tIEB2YWx1ZXtHREJOfSdzIHZhbHVlIGhpc3Rv cnkgKEBweHJlZntWYWx1ZQogSGlzdG9yeX0pLiAgQHZhcntudW1iZXJ9IGlu ZGljYXRlcyB3aGljaCBoaXN0b3J5IGVsZW1lbnQgdG8gcmV0dXJuLgogSWYg QHZhcntudW1iZXJ9IGlzIG5lZ2F0aXZlLCB0aGVuIEB2YWx1ZXtHREJOfSB3 aWxsIHRha2UgaXRzIGFic29sdXRlIHZhbHVlCkBAIC0yMTA1OCw3ICsyMTA1 OCw3IEBACiBAZW5kIGRlZnVuCiAKIEBmaW5kZXggZ2RiLnBhcnNlX2FuZF9l dmFsCi1AZGVmdW4gcGFyc2VfYW5kX2V2YWwgZXhwcmVzc2lvbgorQGRlZnVu IGdkYi5wYXJzZV9hbmRfZXZhbCAoZXhwcmVzc2lvbikKIFBhcnNlIEB2YXJ7 ZXhwcmVzc2lvbn0gYXMgYW4gZXhwcmVzc2lvbiBpbiB0aGUgY3VycmVudCBs YW5ndWFnZSwKIGV2YWx1YXRlIGl0LCBhbmQgcmV0dXJuIHRoZSByZXN1bHQg YXMgYSBAY29kZXtnZGIuVmFsdWV9LgogQHZhcntleHByZXNzaW9ufSBtdXN0 IGJlIGEgc3RyaW5nLgpAQCAtMjEwNzEsNyArMjEwNzEsNyBAQAogQGVuZCBk ZWZ1bgogCiBAZmluZGV4IGdkYi5wb3N0X2V2ZW50Ci1AZGVmdW4gcG9zdF9l dmVudCBldmVudAorQGRlZnVuIGdkYi5wb3N0X2V2ZW50IChldmVudCkKIFB1 dCBAdmFye2V2ZW50fSwgYSBjYWxsYWJsZSBvYmplY3QgdGFraW5nIG5vIGFy Z3VtZW50cywgaW50bwogQHZhbHVle0dEQk59J3MgaW50ZXJuYWwgZXZlbnQg cXVldWUuICBUaGlzIGNhbGxhYmxlIHdpbGwgYmUgaW52b2tlZCBhdAogc29t ZSBsYXRlciBwb2ludCwgZHVyaW5nIEB2YWx1ZXtHREJOfSdzIGV2ZW50IHBy b2Nlc3NpbmcuICBFdmVudHMKQEAgLTIxMTEwLDcgKzIxMTEwLDcgQEAKIEBl bmQgZGVmdW4KIAogQGZpbmRleCBnZGIud3JpdGUgCi1AZGVmdW4gd3JpdGUg c3RyaW5nIEBye1t9c3RyZWFte119IAorQGRlZnVuIGdkYi53cml0ZSAoc3Ry aW5nIEBye1t9LCBzdHJlYW17XX0pCiBQcmludCBhIHN0cmluZyB0byBAdmFs dWV7R0RCTn0ncyBwYWdpbmF0ZWQgb3V0cHV0IHN0cmVhbS4gIFRoZQogb3B0 aW9uYWwgQHZhcntzdHJlYW19IGRldGVybWluZXMgdGhlIHN0cmVhbSB0byBw cmludCB0by4gIFRoZSBkZWZhdWx0CiBzdHJlYW0gaXMgQHZhbHVle0dEQk59 J3Mgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbS4gIFBvc3NpYmxlIHN0cmVhbQpA QCAtMjExMTksMTcgKzIxMTE5LDE3IEBACiBAdGFibGUgQGNvZGUKIEBmaW5k ZXggU1RET1VUCiBAZmluZGV4IGdkYi5TVERPVVQKLUBpdGVtIFNURE9VVAor QGl0ZW0gZ2RiLlNURE9VVAogQHZhbHVle0dEQk59J3Mgc3RhbmRhcmQgb3V0 cHV0IHN0cmVhbS4KIAogQGZpbmRleCBTVERFUlIKIEBmaW5kZXggZ2RiLlNU REVSUgotQGl0ZW0gU1RERVJSCitAaXRlbSBnZGIuU1RERVJSCiBAdmFsdWV7 R0RCTn0ncyBzdGFuZGFyZCBlcnJvciBzdHJlYW0uCiAKIEBmaW5kZXggU1RE TE9HCiBAZmluZGV4IGdkYi5TVERMT0cKLUBpdGVtIFNURExPRworQGl0ZW0g Z2RiLlNURExPRwogQHZhbHVle0dEQk59J3MgbG9nIHN0cmVhbSAoQHB4cmVm e0xvZ2dpbmcgT3V0cHV0fSkuCiBAZW5kIHRhYmxlCiAKQEAgLTIxMTM5LDcg KzIxMTM5LDcgQEAKIEBlbmQgZGVmdW4KIAogQGZpbmRleCBnZGIuZmx1c2gK LUBkZWZ1biBmbHVzaAorQGRlZnVuIGdkYi5mbHVzaCAoKQogRmx1c2ggdGhl IGJ1ZmZlciBvZiBhIEB2YWx1ZXtHREJOfSBwYWdpbmF0ZWQgc3RyZWFtIHNv IHRoYXQgdGhlCiBjb250ZW50cyBhcmUgZGlzcGxheWVkIGltbWVkaWF0ZWx5 LiAgQHZhbHVle0dEQk59IHdpbGwgZmx1c2ggdGhlCiBjb250ZW50cyBvZiBh IHN0cmVhbSBhdXRvbWF0aWNhbGx5IHdoZW4gaXQgZW5jb3VudGVycyBhIG5l d2xpbmUgaW4gdGhlCkBAIC0yMTE1MCwxNyArMjExNTAsMTcgQEAKIEB0YWJs ZSBAY29kZQogQGZpbmRleCBTVERPVVQKIEBmaW5kZXggZ2RiLlNURE9VVAot QGl0ZW0gU1RET1VUCitAaXRlbSBnZGIuU1RET1VUCiBAdmFsdWV7R0RCTn0n cyBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgogCiBAZmluZGV4IFNUREVSUgog QGZpbmRleCBnZGIuU1RERVJSCi1AaXRlbSBTVERFUlIKK0BpdGVtIGdkYi5T VERFUlIKIEB2YWx1ZXtHREJOfSdzIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4K IAogQGZpbmRleCBTVERMT0cKIEBmaW5kZXggZ2RiLlNURExPRwotQGl0ZW0g U1RETE9HCitAaXRlbSBnZGIuU1RETE9HCiBAdmFsdWV7R0RCTn0ncyBsb2cg c3RyZWFtIChAcHhyZWZ7TG9nZ2luZyBPdXRwdXR9KS4KIAogQGVuZCB0YWJs ZQpAQCAtMjExNzAsMTQgKzIxMTcwLDE0IEBACiBAZW5kIGRlZnVuCiAKIEBm aW5kZXggZ2RiLnRhcmdldF9jaGFyc2V0Ci1AZGVmdW4gdGFyZ2V0X2NoYXJz ZXQKK0BkZWZ1biBnZGIudGFyZ2V0X2NoYXJzZXQgKCkKIFJldHVybiB0aGUg bmFtZSBvZiB0aGUgY3VycmVudCB0YXJnZXQgY2hhcmFjdGVyIHNldCAoQHB4 cmVme0NoYXJhY3RlcgogU2V0c30pLiAgVGhpcyBkaWZmZXJzIGZyb20gQGNv ZGV7Z2RiLnBhcmFtZXRlcigndGFyZ2V0LWNoYXJzZXQnKX0gaW4KIHRoYXQg QHNhbXB7YXV0b30gaXMgbmV2ZXIgcmV0dXJuZWQuCiBAZW5kIGRlZnVuCiAK IEBmaW5kZXggZ2RiLnRhcmdldF93aWRlX2NoYXJzZXQKLUBkZWZ1biB0YXJn ZXRfd2lkZV9jaGFyc2V0CitAZGVmdW4gZ2RiLnRhcmdldF93aWRlX2NoYXJz ZXQgKCkKIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCB0YXJnZXQg d2lkZSBjaGFyYWN0ZXIgc2V0CiAoQHB4cmVme0NoYXJhY3RlciBTZXRzfSku ICBUaGlzIGRpZmZlcnMgZnJvbQogQGNvZGV7Z2RiLnBhcmFtZXRlcigndGFy Z2V0LXdpZGUtY2hhcnNldCcpfSBpbiB0aGF0IEBzYW1we2F1dG99IGlzCkBA IC0yMTE4NSwxMyArMjExODUsMTMgQEAKIEBlbmQgZGVmdW4KIAogQGZpbmRl eCBnZGIuc29saWJfbmFtZQotQGRlZnVuIHNvbGliX25hbWUgYWRkcmVzcwor QGRlZnVuIGdkYi5zb2xpYl9uYW1lIChhZGRyZXNzKQogUmV0dXJuIHRoZSBu YW1lIG9mIHRoZSBzaGFyZWQgbGlicmFyeSBob2xkaW5nIHRoZSBnaXZlbiBA dmFye2FkZHJlc3N9CiBhcyBhIHN0cmluZywgb3IgQGNvZGV7Tm9uZX0uCiBA ZW5kIGRlZnVuCiAKIEBmaW5kZXggZ2RiLmRlY29kZV9saW5lIAotQGRlZnVu IGRlY29kZV9saW5lIEBye1t9ZXhwcmVzc2lvbkBye119CitAZGVmdW4gZ2Ri LmRlY29kZV9saW5lIEBye1t9ZXhwcmVzc2lvbkBye119CiBSZXR1cm4gbG9j YXRpb25zIG9mIHRoZSBsaW5lIHNwZWNpZmllZCBieSBAdmFye2V4cHJlc3Np b259LCBvciBvZiB0aGUKIGN1cnJlbnQgbGluZSBpZiBubyBhcmd1bWVudCB3 YXMgZ2l2ZW4uICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBQeXRob24KIHR1 cGxlIGNvbnRhaW5pbmcgdHdvIGVsZW1lbnRzLiAgVGhlIGZpcnN0IGVsZW1l bnQgY29udGFpbnMgYSBzdHJpbmcKQEAgLTIxMjA0LDggKzIxMjA0LDggQEAK IEBjb2Rle2JyZWFrfSBvciBAY29kZXtlZGl0fSBjb21tYW5kcyBkbyAoQHB4 cmVme1NwZWNpZnkgTG9jYXRpb259KS4KIEBlbmQgZGVmdW4KIAotQGRlZm9w IE9wZXJhdGlvbiB7QHZhbHVle0dEQk59fSBwcm9tcHRfaG9vayBjdXJyZW50 X3Byb21wdAotQGFuY2hvcntwcm9tcHRfaG9va30KK0BkZWZ1biBnZGIucHJv bXB0X2hvb2sgKGN1cnJlbnRfcHJvbXB0KQorQGFuY2hvcntnZGIucHJvbXB0 X2hvb2t9CiAKIElmIEB2YXJ7cHJvbXB0X2hvb2t9IGlzIGNhbGxhYmxlLCBA dmFsdWV7R0RCTn0gd2lsbCBjYWxsIHRoZSBtZXRob2QKIGFzc2lnbmVkIHRv IHRoaXMgb3BlcmF0aW9uIGJlZm9yZSBhIHByb21wdCBpcyBkaXNwbGF5ZWQg YnkKQEAgLTIxMjIwLDcgKzIxMjIwLDcgQEAKIFNvbWUgcHJvbXB0cyBjYW5u b3QgYmUgc3Vic3RpdHV0ZWQgaW4gQHZhbHVle0dEQk59LiAgU2Vjb25kYXJ5 IHByb21wdHMKIHN1Y2ggYXMgdGhvc2UgdXNlZCBieSByZWFkbGluZSBmb3Ig Y29tbWFuZCBpbnB1dCwgYW5kIGFubm90YXRpb24KIHJlbGF0ZWQgcHJvbXB0 cyBhcmUgcHJvaGliaXRlZCBmcm9tIGJlaW5nIGNoYW5nZWQuCi1AZW5kIGRl Zm9wCitAZW5kIGRlZnVuCiAKIEBub2RlIEV4Y2VwdGlvbiBIYW5kbGluZwog QHN1YnN1YnNlY3Rpb24gRXhjZXB0aW9uIEhhbmRsaW5nCkBAIC0yMTM0Niwy NCArMjEzNDYsMjQgQEAKIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUg cHJvdmlkZWQ6CiAKIEB0YWJsZSBAY29kZQotQGRlZml2YXIgVmFsdWUgYWRk cmVzcworQGRlZnZhciBWYWx1ZS5hZGRyZXNzCiBJZiB0aGlzIG9iamVjdCBp cyBhZGRyZXNzYWJsZSwgdGhpcyByZWFkLW9ubHkgYXR0cmlidXRlIGhvbGRz IGEKIEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUg YWRkcmVzcy4gIE90aGVyd2lzZSwKIHRoaXMgYXR0cmlidXRlIGhvbGRzIEBj b2Rle05vbmV9LgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCiBAY2lu ZGV4IG9wdGltaXplZCBvdXQgdmFsdWUgaW4gUHl0aG9uCi1AZGVmaXZhciBW YWx1ZSBpc19vcHRpbWl6ZWRfb3V0CitAZGVmdmFyIFZhbHVlLmlzX29wdGlt aXplZF9vdXQKIFRoaXMgcmVhZC1vbmx5IGJvb2xlYW4gYXR0cmlidXRlIGlz IHRydWUgaWYgdGhlIGNvbXBpbGVyIG9wdGltaXplZCBvdXQKIHRoaXMgdmFs dWUsIHRodXMgaXQgaXMgbm90IGF2YWlsYWJsZSBmb3IgZmV0Y2hpbmcgZnJv bSB0aGUgaW5mZXJpb3IuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAK LUBkZWZpdmFyIFZhbHVlIHR5cGUKK0BkZWZ2YXIgVmFsdWUudHlwZQogVGhl IHR5cGUgb2YgdGhpcyBAY29kZXtnZGIuVmFsdWV9LiAgVGhlIHZhbHVlIG9m IHRoaXMgYXR0cmlidXRlIGlzIGEKIEBjb2Rle2dkYi5UeXBlfSBvYmplY3Qg KEBweHJlZntUeXBlcyBJbiBQeXRob259KS4KLUBlbmQgZGVmaXZhcgorQGVu ZCBkZWZ2YXIKIAotQGRlZml2YXIgVmFsdWUgZHluYW1pY190eXBlCitAZGVm dmFyIFZhbHVlLmR5bmFtaWNfdHlwZQogVGhlIGR5bmFtaWMgdHlwZSBvZiB0 aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGlzIHVzZXMgQ0B0eysrfSBydW4t dGltZQogdHlwZSBpbmZvcm1hdGlvbiAoQGFjcm9ueW17UlRUSX0pIHRvIGRl dGVybWluZSB0aGUgZHluYW1pYyB0eXBlIG9mIHRoZQogdmFsdWUuICBJZiB0 aGlzIHZhbHVlIGlzIG9mIGNsYXNzIHR5cGUsIGl0IHdpbGwgcmV0dXJuIHRo ZSBjbGFzcyBpbgpAQCAtMjEzNzcsMTMgKzIxMzc3LDEzIEBACiB0aGF0IGlu Y2x1ZGVzIEBhY3Jvbnlte1JUVEl9IGZvciB0aGUgb2JqZWN0IGluIHF1ZXN0 aW9uLiAgT3RoZXJ3aXNlLAogaXQgd2lsbCBqdXN0IHJldHVybiB0aGUgc3Rh dGljIHR5cGUgb2YgdGhlIHZhbHVlIGFzIGluIEBrYmR7cHR5cGUgZm9vfQog KEBweHJlZntTeW1ib2xzLCBwdHlwZX0pLgotQGVuZCBkZWZpdmFyCitAZW5k IGRlZnZhcgogQGVuZCB0YWJsZQogCiBUaGUgZm9sbG93aW5nIG1ldGhvZHMg YXJlIHByb3ZpZGVkOgogCiBAdGFibGUgQGNvZGUKLUBkZWZtZXRob2QgVmFs dWUgX19pbml0X18gQHZhcnt2YWx9CitAZGVmdW4gVmFsdWUuX19pbml0X18g KEB2YXJ7dmFsfSkKIE1hbnkgUHl0aG9uIHZhbHVlcyBjYW4gYmUgY29udmVy dGVkIGRpcmVjdGx5IHRvIGEgQGNvZGV7Z2RiLlZhbHVlfSB2aWEKIHRoaXMg b2JqZWN0IGluaXRpYWxpemVyLiAgU3BlY2lmaWNhbGx5OgogCkBAIC0yMTQx NiwxNiArMjE0MTYsMTYgQEAKIFB5dGhvbn0pLCB0aGVuIHRoZSBsYXp5IHN0 cmluZydzIEBjb2Rle3ZhbHVlfSBtZXRob2QgaXMgY2FsbGVkLCBhbmQKIGl0 cyByZXN1bHQgaXMgdXNlZC4KIEBlbmQgdGFibGUKLUBlbmQgZGVmbWV0aG9k CitAZW5kIGRlZnVuCiAKLUBkZWZtZXRob2QgVmFsdWUgY2FzdCB0eXBlCitA ZGVmdW4gVmFsdWUuY2FzdCAodHlwZSkKIFJldHVybiBhIG5ldyBpbnN0YW5j ZSBvZiBAY29kZXtnZGIuVmFsdWV9IHRoYXQgaXMgdGhlIHJlc3VsdCBvZgog Y2FzdGluZyB0aGlzIGluc3RhbmNlIHRvIHRoZSB0eXBlIGRlc2NyaWJlZCBi eSBAdmFye3R5cGV9LCB3aGljaCBtdXN0CiBiZSBhIEBjb2Rle2dkYi5UeXBl fSBvYmplY3QuICBJZiB0aGUgY2FzdCBjYW5ub3QgYmUgcGVyZm9ybWVkIGZv ciBzb21lCiByZWFzb24sIHRoaXMgbWV0aG9kIHRocm93cyBhbiBleGNlcHRp b24uCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9k IFZhbHVlIGRlcmVmZXJlbmNlCitAZGVmdW4gVmFsdWUuZGVyZWZlcmVuY2Ug KCkKIEZvciBwb2ludGVyIGRhdGEgdHlwZXMsIHRoaXMgbWV0aG9kIHJldHVy bnMgYSBuZXcgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QKIHdob3NlIGNvbnRl bnRzIGlzIHRoZSBvYmplY3QgcG9pbnRlZCB0byBieSB0aGUgcG9pbnRlci4g IEZvciBleGFtcGxlLCBpZgogQGNvZGV7Zm9vfSBpcyBhIEMgcG9pbnRlciB0 byBhbiBAY29kZXtpbnR9LCBkZWNsYXJlZCBpbiB5b3VyIEMgcHJvZ3JhbSBh cwpAQCAtMjE0NDQsMTkgKzIxNDQ0LDE5IEBACiAKIFRoZSByZXN1bHQgQGNv ZGV7YmFyfSB3aWxsIGJlIGEgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QgaG9s ZGluZyB0aGUKIHZhbHVlIHBvaW50ZWQgdG8gYnkgQGNvZGV7Zm9vfS4KLUBl bmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAKLUBkZWZtZXRob2QgVmFsdWUg ZHluYW1pY19jYXN0IHR5cGUKK0BkZWZ1biBWYWx1ZS5keW5hbWljX2Nhc3Qg KHR5cGUpCiBMaWtlIEBjb2Rle1ZhbHVlLmNhc3R9LCBidXQgd29ya3MgYXMg aWYgdGhlIENAdHsrK30gQGNvZGV7ZHluYW1pY19jYXN0fQogb3BlcmF0b3Ig d2VyZSB1c2VkLiAgQ29uc3VsdCBhIENAdHsrK30gcmVmZXJlbmNlIGZvciBk ZXRhaWxzLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1l dGhvZCBWYWx1ZSByZWludGVycHJldF9jYXN0IHR5cGUKK0BkZWZ1biBWYWx1 ZS5yZWludGVycHJldF9jYXN0ICh0eXBlKQogTGlrZSBAY29kZXtWYWx1ZS5j YXN0fSwgYnV0IHdvcmtzIGFzIGlmIHRoZSBDQHR7Kyt9IEBjb2Rle3JlaW50 ZXJwcmV0X2Nhc3R9CiBvcGVyYXRvciB3ZXJlIHVzZWQuICBDb25zdWx0IGEg Q0B0eysrfSByZWZlcmVuY2UgZm9yIGRldGFpbHMuCi1AZW5kIGRlZm1ldGhv ZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIFZhbHVlIHN0cmluZyBAcntb fWVuY29kaW5nQHJ7XX0gQHJ7W31lcnJvcnNAcntdfSBAcntbfWxlbmd0aEBy e119CitAZGVmdW4gVmFsdWUuc3RyaW5nIChAcntbfWVuY29kaW5nQHJ7W30s IGVycm9yc0Bye1t9LCBsZW5ndGhAcntdfUBye119QHJ7XX0pCiBJZiB0aGlz IEBjb2Rle2dkYi5WYWx1ZX0gcmVwcmVzZW50cyBhIHN0cmluZywgdGhlbiB0 aGlzIG1ldGhvZAogY29udmVydHMgdGhlIGNvbnRlbnRzIHRvIGEgUHl0aG9u IHN0cmluZy4gIE90aGVyd2lzZSwgdGhpcyBtZXRob2Qgd2lsbAogdGhyb3cg YW4gZXhjZXB0aW9uLgpAQCAtMjE0ODYsOSArMjE0ODYsOSBAQAogCiBJZiB0 aGUgb3B0aW9uYWwgQHZhcntsZW5ndGh9IGFyZ3VtZW50IGlzIGdpdmVuLCB0 aGUgc3RyaW5nIHdpbGwgYmUKIGZldGNoZWQgYW5kIGNvbnZlcnRlZCB0byB0 aGUgZ2l2ZW4gbGVuZ3RoLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4K IAotQGRlZm1ldGhvZCBWYWx1ZSBsYXp5X3N0cmluZyBAcntbfWVuY29kaW5n QHJ7XX0gQHJ7W31sZW5ndGhAcntdfQorQGRlZnVuIFZhbHVlLmxhenlfc3Ry aW5nIChAcntbfWVuY29kaW5nIEBye1t9LCBsZW5ndGhAcntdfUBye119KQog SWYgdGhpcyBAY29kZXtnZGIuVmFsdWV9IHJlcHJlc2VudHMgYSBzdHJpbmcs IHRoZW4gdGhpcyBtZXRob2QKIGNvbnZlcnRzIHRoZSBjb250ZW50cyB0byBh IEBjb2Rle2dkYi5MYXp5U3RyaW5nfSAoQHB4cmVme0xhenkgU3RyaW5ncwog SW4gUHl0aG9ufSkuICBPdGhlcndpc2UsIHRoaXMgbWV0aG9kIHdpbGwgdGhy b3cgYW4gZXhjZXB0aW9uLgpAQCAtMjE1MTAsNyArMjE1MTAsNyBAQAogZmV0 Y2hlZCBhbmQgZW5jb2RlZCB0byB0aGUgbGVuZ3RoIG9mIGNoYXJhY3RlcnMg c3BlY2lmaWVkLiAgSWYKIHRoZSBAdmFye2xlbmd0aH0gYXJndW1lbnQgaXMg bm90IHByb3ZpZGVkLCB0aGUgc3RyaW5nIHdpbGwgYmUgZmV0Y2hlZAogYW5k IGVuY29kZWQgdW50aWwgYSBudWxsIG9mIGFwcHJvcHJpYXRlIHdpZHRoIGlz IGZvdW5kLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIEBlbmQgdGFi bGUKIAogQG5vZGUgVHlwZXMgSW4gUHl0aG9uCkBAIC0yMTUyNiw3ICsyMTUy Niw3IEBACiBtb2R1bGU6CiAKIEBmaW5kZXggZ2RiLmxvb2t1cF90eXBlCi1A ZGVmdW4gbG9va3VwX3R5cGUgbmFtZSBbYmxvY2tdCitAZGVmdW4gZ2RiLmxv b2t1cF90eXBlIChuYW1lIEBye1t9LCBibG9ja0Bye119KQogVGhpcyBmdW5j dGlvbiBsb29rcyB1cCBhIHR5cGUgYnkgbmFtZS4gIEB2YXJ7bmFtZX0gaXMg dGhlIG5hbWUgb2YgdGhlCiB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJl IGEgc3RyaW5nLgogCkBAIC0yMTU0MCwyOSArMjE1NDAsMjkgQEAKIEFuIGlu c3RhbmNlIG9mIEBjb2Rle1R5cGV9IGhhcyB0aGUgZm9sbG93aW5nIGF0dHJp YnV0ZXM6CiAKIEB0YWJsZSBAY29kZQotQGRlZml2YXIgVHlwZSBjb2RlCitA ZGVmdmFyIFR5cGUuY29kZQogVGhlIHR5cGUgY29kZSBmb3IgdGhpcyB0eXBl LiAgVGhlIHR5cGUgY29kZSB3aWxsIGJlIG9uZSBvZiB0aGUKIEBjb2Rle1RZ UEVfQ09ERV99IGNvbnN0YW50cyBkZWZpbmVkIGJlbG93LgotQGVuZCBkZWZp dmFyCitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBUeXBlIHNpemVvZgorQGRl ZnZhciBUeXBlLnNpemVvZgogVGhlIHNpemUgb2YgdGhpcyB0eXBlLCBpbiB0 YXJnZXQgQGNvZGV7Y2hhcn0gdW5pdHMuICBVc3VhbGx5LCBhCiB0YXJnZXQn cyBAY29kZXtjaGFyfSB0eXBlIHdpbGwgYmUgYW4gOC1iaXQgYnl0ZS4gIEhv d2V2ZXIsIG9uIHNvbWUKIHVudXN1YWwgcGxhdGZvcm1zLCB0aGlzIHR5cGUg bWF5IGhhdmUgYSBkaWZmZXJlbnQgc2l6ZS4KLUBlbmQgZGVmaXZhcgorQGVu ZCBkZWZ2YXIKIAotQGRlZml2YXIgVHlwZSB0YWcKK0BkZWZ2YXIgVHlwZS50 YWcKIFRoZSB0YWcgbmFtZSBmb3IgdGhpcyB0eXBlLiAgVGhlIHRhZyBuYW1l IGlzIHRoZSBuYW1lIGFmdGVyCiBAY29kZXtzdHJ1Y3R9LCBAY29kZXt1bmlv bn0sIG9yIEBjb2Rle2VudW19IGluIEMgYW5kIENAdHsrK307IG5vdCBhbGwK IGxhbmd1YWdlcyBoYXZlIHRoaXMgY29uY2VwdC4gIElmIHRoaXMgdHlwZSBo YXMgbm8gdGFnIG5hbWUsIHRoZW4KIEBjb2Rle05vbmV9IGlzIHJldHVybmVk LgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQogCiBU aGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIHByb3ZpZGVkOgogCiBAdGFibGUg QGNvZGUKLUBkZWZtZXRob2QgVHlwZSBmaWVsZHMKK0BkZWZ1biBUeXBlLmZp ZWxkcyAoKQogRm9yIHN0cnVjdHVyZSBhbmQgdW5pb24gdHlwZXMsIHRoaXMg bWV0aG9kIHJldHVybnMgdGhlIGZpZWxkcy4gIFJhbmdlCiB0eXBlcyBoYXZl IHR3byBmaWVsZHMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcy4g IEVudW0gdHlwZXMKIGhhdmUgb25lIGZpZWxkIHBlciBlbnVtIGNvbnN0YW50 LiAgRnVuY3Rpb24gYW5kIG1ldGhvZCB0eXBlcyBoYXZlIG9uZQpAQCAtMjE2 MDEsNTYgKzIxNjAxLDU2IEBACiBUaGUgdHlwZSBvZiB0aGUgZmllbGQuICBU aGlzIGlzIHVzdWFsbHkgYW4gaW5zdGFuY2Ugb2YgQGNvZGV7VHlwZX0sCiBi dXQgaXQgY2FuIGJlIEBjb2Rle05vbmV9IGluIHNvbWUgc2l0dWF0aW9ucy4K IEBlbmQgdGFibGUKLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAKLUBk ZWZtZXRob2QgVHlwZSBhcnJheSBAdmFye24xfSBAcntbfUB2YXJ7bjJ9QHJ7 XX0KK0BkZWZ1biBUeXBlLmFycmF5IChAdmFye24xfSBAcntbfSwgQHZhcntu Mn1AcntdfSkKIFJldHVybiBhIG5ldyBAY29kZXtnZGIuVHlwZX0gb2JqZWN0 IHdoaWNoIHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgdGhpcwogdHlwZS4gIElm IG9uZSBhcmd1bWVudCBpcyBnaXZlbiwgaXQgaXMgdGhlIGluY2x1c2l2ZSB1 cHBlciBib3VuZCBvZgogdGhlIGFycmF5OyBpbiB0aGlzIGNhc2UgdGhlIGxv d2VyIGJvdW5kIGlzIHplcm8uICBJZiB0d28gYXJndW1lbnRzIGFyZQogZ2l2 ZW4sIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgbG93ZXIgYm91bmQgb2Yg dGhlIGFycmF5LCBhbmQgdGhlCiBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIHVw cGVyIGJvdW5kIG9mIHRoZSBhcnJheS4gIEFuIGFycmF5J3MgbGVuZ3RoCiBt dXN0IG5vdCBiZSBuZWdhdGl2ZSwgYnV0IHRoZSBib3VuZHMgY2FuIGJlLgot QGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBUeXBl IGNvbnN0CitAZGVmdW4gVHlwZS5jb25zdCAoKQogUmV0dXJuIGEgbmV3IEBj b2Rle2dkYi5UeXBlfSBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyBhCiBAY29k ZXtjb25zdH0tcXVhbGlmaWVkIHZhcmlhbnQgb2YgdGhpcyB0eXBlLgotQGVu ZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBUeXBlIHZv bGF0aWxlCitAZGVmdW4gVHlwZS52b2xhdGlsZSAoKQogUmV0dXJuIGEgbmV3 IEBjb2Rle2dkYi5UeXBlfSBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyBhCiBA Y29kZXt2b2xhdGlsZX0tcXVhbGlmaWVkIHZhcmlhbnQgb2YgdGhpcyB0eXBl LgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBU eXBlIHVucXVhbGlmaWVkCitAZGVmdW4gVHlwZS51bnF1YWxpZmllZCAoKQog UmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSBvYmplY3Qgd2hpY2ggcmVw cmVzZW50cyBhbiB1bnF1YWxpZmllZAogdmFyaWFudCBvZiB0aGlzIHR5cGUu ICBUaGF0IGlzLCB0aGUgcmVzdWx0IGlzIG5laXRoZXIgQGNvZGV7Y29uc3R9 IG5vcgogQGNvZGV7dm9sYXRpbGV9LgotQGVuZCBkZWZtZXRob2QKK0BlbmQg ZGVmdW4KIAotQGRlZm1ldGhvZCBUeXBlIHJhbmdlCitAZGVmdW4gVHlwZS5y YW5nZSAoKQogUmV0dXJuIGEgUHl0aG9uIEBjb2Rle1R1cGxlfSBvYmplY3Qg dGhhdCBjb250YWlucyB0d28gZWxlbWVudHM6IHRoZQogbG93IGJvdW5kIG9m IHRoZSBhcmd1bWVudCB0eXBlIGFuZCB0aGUgaGlnaCBib3VuZCBvZiB0aGF0 IHR5cGUuICBJZgogdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHJhbmdlLCBA dmFsdWV7R0RCTn0gd2lsbCByYWlzZSBhCiBAY29kZXtnZGIuZXJyb3J9IGV4 Y2VwdGlvbiAoQHB4cmVme0V4Y2VwdGlvbiBIYW5kbGluZ30pLgotQGVuZCBk ZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBUeXBlIHJlZmVy ZW5jZQorQGRlZnVuIFR5cGUucmVmZXJlbmNlICgpCiBSZXR1cm4gYSBuZXcg QGNvZGV7Z2RiLlR5cGV9IG9iamVjdCB3aGljaCByZXByZXNlbnRzIGEgcmVm ZXJlbmNlIHRvIHRoaXMKIHR5cGUuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBk ZWZ1bgogCi1AZGVmbWV0aG9kIFR5cGUgcG9pbnRlcgorQGRlZnVuIFR5cGUu cG9pbnRlciAoKQogUmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSBvYmpl Y3Qgd2hpY2ggcmVwcmVzZW50cyBhIHBvaW50ZXIgdG8gdGhpcwogdHlwZS4K LUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAKLUBkZWZtZXRob2QgVHlw ZSBzdHJpcF90eXBlZGVmcworQGRlZnVuIFR5cGUuc3RyaXBfdHlwZWRlZnMg KCkKIFJldHVybiBhIG5ldyBAY29kZXtnZGIuVHlwZX0gdGhhdCByZXByZXNl bnRzIHRoZSByZWFsIHR5cGUsCiBhZnRlciByZW1vdmluZyBhbGwgbGF5ZXJz IG9mIHR5cGVkZWZzLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAot QGRlZm1ldGhvZCBUeXBlIHRhcmdldAorQGRlZnVuIFR5cGUudGFyZ2V0ICgp CiBSZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IG9iamVjdCB3aGljaCBy ZXByZXNlbnRzIHRoZSB0YXJnZXQgdHlwZQogb2YgdGhpcyB0eXBlLgogCkBA IC0yMTY2Myw5ICsyMTY2Myw5IEBACiAKIElmIHRoZSB0eXBlIGRvZXMgbm90 IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KIGV4 Y2VwdGlvbi4KLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAKLUBkZWZt ZXRob2QgVHlwZSB0ZW1wbGF0ZV9hcmd1bWVudCBuIFtibG9ja10KK0BkZWZ1 biBUeXBlLnRlbXBsYXRlX2FyZ3VtZW50IChuIEBye1t9LCBibG9ja0Bye119 KQogSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgYW4gaW5zdGFudGlhdGlv biBvZiBhIHRlbXBsYXRlLCB0aGlzIHdpbGwKIHJldHVybiBhIG5ldyBAY29k ZXtnZGIuVHlwZX0gd2hpY2ggcmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUK IEB2YXJ7bn10aCB0ZW1wbGF0ZSBhcmd1bWVudC4KQEAgLTIxNjc1LDcgKzIx Njc1LDcgQEAKIAogSWYgQHZhcntibG9ja30gaXMgZ2l2ZW4sIHRoZW4gQHZh cntuYW1lfSBpcyBsb29rZWQgdXAgaW4gdGhhdCBzY29wZS4KIE90aGVyd2lz ZSwgaXQgaXMgc2VhcmNoZWQgZm9yIGdsb2JhbGx5LgotQGVuZCBkZWZtZXRo b2QKK0BlbmQgZGVmdW4KIEBlbmQgdGFibGUKIAogCkBAIC0yMTY4NiwxMzMg KzIxNjg2LDEzMyBAQAogQHRhYmxlIEBjb2RlCiBAZmluZGV4IFRZUEVfQ09E RV9QVFIKIEBmaW5kZXggZ2RiLlRZUEVfQ09ERV9QVFIKLUBpdGVtIFRZUEVf Q09ERV9QVFIKK0BpdGVtIGdkYi5UWVBFX0NPREVfUFRSCiBUaGUgdHlwZSBp cyBhIHBvaW50ZXIuCiAKIEBmaW5kZXggVFlQRV9DT0RFX0FSUkFZCiBAZmlu ZGV4IGdkYi5UWVBFX0NPREVfQVJSQVkKLUBpdGVtIFRZUEVfQ09ERV9BUlJB WQorQGl0ZW0gZ2RiLlRZUEVfQ09ERV9BUlJBWQogVGhlIHR5cGUgaXMgYW4g YXJyYXkuCiAKIEBmaW5kZXggVFlQRV9DT0RFX1NUUlVDVAogQGZpbmRleCBn ZGIuVFlQRV9DT0RFX1NUUlVDVAotQGl0ZW0gVFlQRV9DT0RFX1NUUlVDVAor QGl0ZW0gZ2RiLlRZUEVfQ09ERV9TVFJVQ1QKIFRoZSB0eXBlIGlzIGEgc3Ry dWN0dXJlLgogCiBAZmluZGV4IFRZUEVfQ09ERV9VTklPTgogQGZpbmRleCBn ZGIuVFlQRV9DT0RFX1VOSU9OCi1AaXRlbSBUWVBFX0NPREVfVU5JT04KK0Bp dGVtIGdkYi5UWVBFX0NPREVfVU5JT04KIFRoZSB0eXBlIGlzIGEgdW5pb24u CiAKIEBmaW5kZXggVFlQRV9DT0RFX0VOVU0KIEBmaW5kZXggZ2RiLlRZUEVf Q09ERV9FTlVNCi1AaXRlbSBUWVBFX0NPREVfRU5VTQorQGl0ZW0gZ2RiLlRZ UEVfQ09ERV9FTlVNCiBUaGUgdHlwZSBpcyBhbiBlbnVtLgogCiBAZmluZGV4 IFRZUEVfQ09ERV9GTEFHUwogQGZpbmRleCBnZGIuVFlQRV9DT0RFX0ZMQUdT Ci1AaXRlbSBUWVBFX0NPREVfRkxBR1MKK0BpdGVtIGdkYi5UWVBFX0NPREVf RkxBR1MKIEEgYml0IGZsYWdzIHR5cGUsIHVzZWQgZm9yIHRoaW5ncyBzdWNo IGFzIHN0YXR1cyByZWdpc3RlcnMuCiAKIEBmaW5kZXggVFlQRV9DT0RFX0ZV TkMKIEBmaW5kZXggZ2RiLlRZUEVfQ09ERV9GVU5DCi1AaXRlbSBUWVBFX0NP REVfRlVOQworQGl0ZW0gZ2RiLlRZUEVfQ09ERV9GVU5DCiBUaGUgdHlwZSBp cyBhIGZ1bmN0aW9uLgogCiBAZmluZGV4IFRZUEVfQ09ERV9JTlQKIEBmaW5k ZXggZ2RiLlRZUEVfQ09ERV9JTlQKLUBpdGVtIFRZUEVfQ09ERV9JTlQKK0Bp dGVtIGdkYi5UWVBFX0NPREVfSU5UCiBUaGUgdHlwZSBpcyBhbiBpbnRlZ2Vy IHR5cGUuCiAKIEBmaW5kZXggVFlQRV9DT0RFX0ZMVAogQGZpbmRleCBnZGIu VFlQRV9DT0RFX0ZMVAotQGl0ZW0gVFlQRV9DT0RFX0ZMVAorQGl0ZW0gZ2Ri LlRZUEVfQ09ERV9GTFQKIEEgZmxvYXRpbmcgcG9pbnQgdHlwZS4KIAogQGZp bmRleCBUWVBFX0NPREVfVk9JRAogQGZpbmRleCBnZGIuVFlQRV9DT0RFX1ZP SUQKLUBpdGVtIFRZUEVfQ09ERV9WT0lECitAaXRlbSBnZGIuVFlQRV9DT0RF X1ZPSUQKIFRoZSBzcGVjaWFsIHR5cGUgQGNvZGV7dm9pZH0uCiAKIEBmaW5k ZXggVFlQRV9DT0RFX1NFVAogQGZpbmRleCBnZGIuVFlQRV9DT0RFX1NFVAot QGl0ZW0gVFlQRV9DT0RFX1NFVAorQGl0ZW0gZ2RiLlRZUEVfQ09ERV9TRVQK IEEgUGFzY2FsIHNldCB0eXBlLgogCiBAZmluZGV4IFRZUEVfQ09ERV9SQU5H RQogQGZpbmRleCBnZGIuVFlQRV9DT0RFX1JBTkdFCi1AaXRlbSBUWVBFX0NP REVfUkFOR0UKK0BpdGVtIGdkYi5UWVBFX0NPREVfUkFOR0UKIEEgcmFuZ2Ug dHlwZSwgdGhhdCBpcywgYW4gaW50ZWdlciB0eXBlIHdpdGggYm91bmRzLgog CiBAZmluZGV4IFRZUEVfQ09ERV9TVFJJTkcKIEBmaW5kZXggZ2RiLlRZUEVf Q09ERV9TVFJJTkcKLUBpdGVtIFRZUEVfQ09ERV9TVFJJTkcKK0BpdGVtIGdk Yi5UWVBFX0NPREVfU1RSSU5HCiBBIHN0cmluZyB0eXBlLiAgTm90ZSB0aGF0 IHRoaXMgaXMgb25seSB1c2VkIGZvciBjZXJ0YWluIGxhbmd1YWdlcyB3aXRo CiBsYW5ndWFnZS1kZWZpbmVkIHN0cmluZyB0eXBlczsgQyBzdHJpbmdzIGFy ZSBub3QgcmVwcmVzZW50ZWQgdGhpcyB3YXkuCiAKIEBmaW5kZXggVFlQRV9D T0RFX0JJVFNUUklORwogQGZpbmRleCBnZGIuVFlQRV9DT0RFX0JJVFNUUklO RwotQGl0ZW0gVFlQRV9DT0RFX0JJVFNUUklORworQGl0ZW0gZ2RiLlRZUEVf Q09ERV9CSVRTVFJJTkcKIEEgc3RyaW5nIG9mIGJpdHMuCiAKIEBmaW5kZXgg VFlQRV9DT0RFX0VSUk9SCiBAZmluZGV4IGdkYi5UWVBFX0NPREVfRVJST1IK LUBpdGVtIFRZUEVfQ09ERV9FUlJPUgorQGl0ZW0gZ2RiLlRZUEVfQ09ERV9F UlJPUgogQW4gdW5rbm93biBvciBlcnJvbmVvdXMgdHlwZS4KIAogQGZpbmRl eCBUWVBFX0NPREVfTUVUSE9ECiBAZmluZGV4IGdkYi5UWVBFX0NPREVfTUVU SE9ECi1AaXRlbSBUWVBFX0NPREVfTUVUSE9ECitAaXRlbSBnZGIuVFlQRV9D T0RFX01FVEhPRAogQSBtZXRob2QgdHlwZSwgYXMgZm91bmQgaW4gQ0B0eysr fSBvciBKYXZhLgogCiBAZmluZGV4IFRZUEVfQ09ERV9NRVRIT0RQVFIKIEBm aW5kZXggZ2RiLlRZUEVfQ09ERV9NRVRIT0RQVFIKLUBpdGVtIFRZUEVfQ09E RV9NRVRIT0RQVFIKK0BpdGVtIGdkYi5UWVBFX0NPREVfTUVUSE9EUFRSCiBB IHBvaW50ZXItdG8tbWVtYmVyLWZ1bmN0aW9uLgogCiBAZmluZGV4IFRZUEVf Q09ERV9NRU1CRVJQVFIKIEBmaW5kZXggZ2RiLlRZUEVfQ09ERV9NRU1CRVJQ VFIKLUBpdGVtIFRZUEVfQ09ERV9NRU1CRVJQVFIKK0BpdGVtIGdkYi5UWVBF X0NPREVfTUVNQkVSUFRSCiBBIHBvaW50ZXItdG8tbWVtYmVyLgogCiBAZmlu ZGV4IFRZUEVfQ09ERV9SRUYKIEBmaW5kZXggZ2RiLlRZUEVfQ09ERV9SRUYK LUBpdGVtIFRZUEVfQ09ERV9SRUYKK0BpdGVtIGdkYi5UWVBFX0NPREVfUkVG CiBBIHJlZmVyZW5jZSB0eXBlLgogCiBAZmluZGV4IFRZUEVfQ09ERV9DSEFS CiBAZmluZGV4IGdkYi5UWVBFX0NPREVfQ0hBUgotQGl0ZW0gVFlQRV9DT0RF X0NIQVIKK0BpdGVtIGdkYi5UWVBFX0NPREVfQ0hBUgogQSBjaGFyYWN0ZXIg dHlwZS4KIAogQGZpbmRleCBUWVBFX0NPREVfQk9PTAogQGZpbmRleCBnZGIu VFlQRV9DT0RFX0JPT0wKLUBpdGVtIFRZUEVfQ09ERV9CT09MCitAaXRlbSBn ZGIuVFlQRV9DT0RFX0JPT0wKIEEgYm9vbGVhbiB0eXBlLgogCiBAZmluZGV4 IFRZUEVfQ09ERV9DT01QTEVYCiBAZmluZGV4IGdkYi5UWVBFX0NPREVfQ09N UExFWAotQGl0ZW0gVFlQRV9DT0RFX0NPTVBMRVgKK0BpdGVtIGdkYi5UWVBF X0NPREVfQ09NUExFWAogQSBjb21wbGV4IGZsb2F0IHR5cGUuCiAKIEBmaW5k ZXggVFlQRV9DT0RFX1RZUEVERUYKIEBmaW5kZXggZ2RiLlRZUEVfQ09ERV9U WVBFREVGCi1AaXRlbSBUWVBFX0NPREVfVFlQRURFRgorQGl0ZW0gZ2RiLlRZ UEVfQ09ERV9UWVBFREVGCiBBIHR5cGVkZWYgdG8gc29tZSBvdGhlciB0eXBl LgogCiBAZmluZGV4IFRZUEVfQ09ERV9OQU1FU1BBQ0UKIEBmaW5kZXggZ2Ri LlRZUEVfQ09ERV9OQU1FU1BBQ0UKLUBpdGVtIFRZUEVfQ09ERV9OQU1FU1BB Q0UKK0BpdGVtIGdkYi5UWVBFX0NPREVfTkFNRVNQQUNFCiBBIENAdHsrK30g bmFtZXNwYWNlLgogCiBAZmluZGV4IFRZUEVfQ09ERV9ERUNGTE9BVAogQGZp bmRleCBnZGIuVFlQRV9DT0RFX0RFQ0ZMT0FUCi1AaXRlbSBUWVBFX0NPREVf REVDRkxPQVQKK0BpdGVtIGdkYi5UWVBFX0NPREVfREVDRkxPQVQKIEEgZGVj aW1hbCBmbG9hdGluZyBwb2ludCB0eXBlLgogCiBAZmluZGV4IFRZUEVfQ09E RV9JTlRFUk5BTF9GVU5DVElPTgogQGZpbmRleCBnZGIuVFlQRV9DT0RFX0lO VEVSTkFMX0ZVTkNUSU9OCi1AaXRlbSBUWVBFX0NPREVfSU5URVJOQUxfRlVO Q1RJT04KK0BpdGVtIGdkYi5UWVBFX0NPREVfSU5URVJOQUxfRlVOQ1RJT04K IEEgZnVuY3Rpb24gaW50ZXJuYWwgdG8gQHZhbHVle0dEQk59LiAgVGhpcyBp cyB0aGUgdHlwZSB1c2VkIHRvIHJlcHJlc2VudAogY29udmVuaWVuY2UgZnVu Y3Rpb25zLgogQGVuZCB0YWJsZQpAQCAtMjE4MjgsNyArMjE4MjgsNyBAQAog QSBwcmV0dHktcHJpbnRlciBpcyBqdXN0IGFuIG9iamVjdCB0aGF0IGhvbGRz IGEgdmFsdWUgYW5kIGltcGxlbWVudHMgYQogc3BlY2lmaWMgaW50ZXJmYWNl LCBkZWZpbmVkIGhlcmUuCiAKLUBkZWZvcCBPcGVyYXRpb24ge3ByZXR0eSBw cmludGVyfSBjaGlsZHJlbiAoc2VsZikKK0BkZWZ1biBwcmV0dHlfcHJpbnRl ci5jaGlsZHJlbiAoc2VsZikKIEB2YWx1ZXtHREJOfSB3aWxsIGNhbGwgdGhp cyBtZXRob2Qgb24gYSBwcmV0dHktcHJpbnRlciB0byBjb21wdXRlIHRoZQog Y2hpbGRyZW4gb2YgdGhlIHByZXR0eS1wcmludGVyJ3MgdmFsdWUuCiAKQEAg LTIxODQwLDkgKzIxODQwLDkgQEAKIAogVGhpcyBtZXRob2QgaXMgb3B0aW9u YWwuICBJZiBpdCBkb2VzIG5vdCBleGlzdCwgQHZhbHVle0dEQk59IHdpbGwg YWN0CiBhcyB0aG91Z2ggdGhlIHZhbHVlIGhhcyBubyBjaGlsZHJlbi4KLUBl bmQgZGVmb3AKK0BlbmQgZGVmdW4KIAotQGRlZm9wIE9wZXJhdGlvbiB7cHJl dHR5IHByaW50ZXJ9IGRpc3BsYXlfaGludCAoc2VsZikKK0BkZWZ1biBwcmV0 dHlfcHJpbnRlci5kaXNwbGF5X2hpbnQgKHNlbGYpCiBUaGUgQ0xJIG1heSBj YWxsIHRoaXMgbWV0aG9kIGFuZCB1c2UgaXRzIHJlc3VsdCB0byBjaGFuZ2Ug dGhlCiBmb3JtYXR0aW5nIG9mIGEgdmFsdWUuICBUaGUgcmVzdWx0IHdpbGwg YWxzbyBiZSBzdXBwbGllZCB0byBhbiBNSQogY29uc3VtZXIgYXMgYSBAc2Ft cHtkaXNwbGF5aGludH0gYXR0cmlidXRlIG9mIHRoZSB2YXJpYWJsZSBiZWlu ZwpAQCAtMjE4NzIsOSArMjE4NzIsOSBAQAogYWRkaW5nIHF1b3RhdGlvbiBt YXJrcywgcG9zc2libHkgZXNjYXBpbmcgc29tZSBjaGFyYWN0ZXJzLCByZXNw ZWN0aW5nCiBAY29kZXtzZXQgcHJpbnQgZWxlbWVudHN9LCBhbmQgdGhlIGxp a2UuCiBAZW5kIHRhYmxlCi1AZW5kIGRlZm9wCitAZW5kIGRlZnVuCiAKLUBk ZWZvcCBPcGVyYXRpb24ge3ByZXR0eSBwcmludGVyfSB0b19zdHJpbmcgKHNl bGYpCitAZGVmdW4gcHJldHR5X3ByaW50ZXIudG9fc3RyaW5nIChzZWxmKQog QHZhbHVle0dEQk59IHdpbGwgY2FsbCB0aGlzIG1ldGhvZCB0byBkaXNwbGF5 IHRoZSBzdHJpbmcKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBwYXNz ZWQgdG8gdGhlIG9iamVjdCdzIGNvbnN0cnVjdG9yLgogCkBAIC0yMTkwMiwx MyArMjE5MDIsMTMgQEAKIGFyZSBwZWZvcm1lZCBpbiB0aGlzIG1ldGhvZCBh bmQgbm90aGluZyBpcyBwcmludGVkLgogCiBJZiB0aGUgcmVzdWx0IGlzIG5v dCBvbmUgb2YgdGhlc2UgdHlwZXMsIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQu Ci1AZW5kIGRlZm9wCitAZW5kIGRlZnVuCiAKIEB2YWx1ZXtHREJOfSBwcm92 aWRlcyBhIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAg dGhlCiBkZWZhdWx0IHByZXR0eS1wcmludGVyIGZvciBhIEBjb2Rle2dkYi5W YWx1ZX06CiAKIEBmaW5kZXggZ2RiLmRlZmF1bHRfdmlzdWFsaXplcgotQGRl ZnVuIGRlZmF1bHRfdmlzdWFsaXplciB2YWx1ZQorQGRlZnVuIGdkYi5kZWZh dWx0X3Zpc3VhbGl6ZXIgKHZhbHVlKQogVGhpcyBmdW5jdGlvbiB0YWtlcyBh IEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0IGFzIGFuIGFyZ3VtZW50LiAgSWYg YQogcHJldHR5LXByaW50ZXIgZm9yIHRoaXMgdmFsdWUgZXhpc3RzLCB0aGVu IGl0IGlzIHJldHVybmVkLiAgSWYgbm8gc3VjaAogcHJpbnRlciBleGlzdHMs IHRoZW4gdGhpcyByZXR1cm5zIEBjb2Rle05vbmV9LgpAQCAtMjIxNDIsNjQg KzIyMTQyLDY0IEBACiBUaGUgZm9sbG93aW5nIGluZmVyaW9yLXJlbGF0ZWQg ZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUgaW4gdGhlIEBjb2Rle2dkYn0KIG1v ZHVsZToKIAotQGRlZnVuIGluZmVyaW9ycworQGRlZnVuIGdkYi5pbmZlcmlv cnMgKCkKIFJldHVybiBhIHR1cGxlIGNvbnRhaW5pbmcgYWxsIGluZmVyaW9y IG9iamVjdHMuCiBAZW5kIGRlZnVuCiAKIEEgQGNvZGV7Z2RiLkluZmVyaW9y fSBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKIAogQHRh YmxlIEBjb2RlCi1AZGVmaXZhciBJbmZlcmlvciBudW0KK0BkZWZ2YXIgSW5m ZXJpb3IubnVtCiBJRCBvZiBpbmZlcmlvciwgYXMgYXNzaWduZWQgYnkgR0RC LgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBJbmZl cmlvciBwaWQKK0BkZWZ2YXIgSW5mZXJpb3IucGlkCiBQcm9jZXNzIElEIG9m IHRoZSBpbmZlcmlvciwgYXMgYXNzaWduZWQgYnkgdGhlIHVuZGVybHlpbmcg b3BlcmF0aW5nCiBzeXN0ZW0uCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFy CiAKLUBkZWZpdmFyIEluZmVyaW9yIHdhc19hdHRhY2hlZAorQGRlZnZhciBJ bmZlcmlvci53YXNfYXR0YWNoZWQKIEJvb2xlYW4gc2lnbmFsaW5nIHdoZXRo ZXIgdGhlIGluZmVyaW9yIHdhcyBjcmVhdGVkIHVzaW5nIGBhdHRhY2gnLCBv cgogc3RhcnRlZCBieSBAdmFsdWV7R0RCTn0gaXRzZWxmLgotQGVuZCBkZWZp dmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQogCiBBIEBjb2Rle2dkYi5J bmZlcmlvcn0gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAK IEB0YWJsZSBAY29kZQotQGRlZm1ldGhvZCBJbmZlcmlvciBpc192YWxpZAor QGRlZnVuIEluZmVyaW9yLmlzX3ZhbGlkICgpCiBSZXR1cm5zIEBjb2Rle1Ry dWV9IGlmIHRoZSBAY29kZXtnZGIuSW5mZXJpb3J9IG9iamVjdCBpcyB2YWxp ZCwKIEBjb2Rle0ZhbHNlfSBpZiBub3QuICBBIEBjb2Rle2dkYi5JbmZlcmlv cn0gb2JqZWN0IHdpbGwgYmVjb21lIGludmFsaWQKIGlmIHRoZSBpbmZlcmlv ciBubyBsb25nZXIgZXhpc3RzIHdpdGhpbiBAdmFsdWV7R0RCTn0uICBBbGwg b3RoZXIKIEBjb2Rle2dkYi5JbmZlcmlvcn0gbWV0aG9kcyB3aWxsIHRocm93 IGFuIGV4Y2VwdGlvbiBpZiBpdCBpcyBpbnZhbGlkCiBhdCB0aGUgdGltZSB0 aGUgbWV0aG9kIGlzIGNhbGxlZC4KLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRl ZnVuCiAKLUBkZWZtZXRob2QgSW5mZXJpb3IgdGhyZWFkcworQGRlZnVuIElu ZmVyaW9yLnRocmVhZHMgKCkKIFRoaXMgbWV0aG9kIHJldHVybnMgYSB0dXBs ZSBob2xkaW5nIGFsbCB0aGUgdGhyZWFkcyB3aGljaCBhcmUgdmFsaWQKIHdo ZW4gaXQgaXMgY2FsbGVkLiAgSWYgdGhlcmUgYXJlIG5vIHZhbGlkIHRocmVh ZHMsIHRoZSBtZXRob2Qgd2lsbAogcmV0dXJuIGFuIGVtcHR5IHR1cGxlLgot QGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAogQGZpbmRleCBnZGIucmVh ZF9tZW1vcnkKLUBkZWZtZXRob2QgSW5mZXJpb3IgcmVhZF9tZW1vcnkgYWRk cmVzcyBsZW5ndGgKK0BkZWZ1biBJbmZlcmlvci5yZWFkX21lbW9yeSAoYWRk cmVzcywgbGVuZ3RoKQogUmVhZCBAdmFye2xlbmd0aH0gYnl0ZXMgb2YgbWVt b3J5IGZyb20gdGhlIGluZmVyaW9yLCBzdGFydGluZyBhdAogQHZhcnthZGRy ZXNzfS4gIFJldHVybnMgYSBidWZmZXIgb2JqZWN0LCB3aGljaCBiZWhhdmVz IG11Y2ggbGlrZSBhbiBhcnJheQogb3IgYSBzdHJpbmcuICBJdCBjYW4gYmUg bW9kaWZpZWQgYW5kIGdpdmVuIHRvIHRoZSBAY29kZXtnZGIud3JpdGVfbWVt b3J5fQogZnVuY3Rpb24uCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgog CiBAZmluZGV4IGdkYi53cml0ZV9tZW1vcnkKLUBkZWZtZXRob2QgSW5mZXJp b3Igd3JpdGVfbWVtb3J5IGFkZHJlc3MgYnVmZmVyIEBye1t9bGVuZ3RoQHJ7 XX0KK0BkZWZ1biBJbmZlcmlvci53cml0ZV9tZW1vcnkgKGFkZHJlc3MsIGJ1 ZmZlciBAcntbfSwgbGVuZ3RoQHJ7XX0pCiBXcml0ZSB0aGUgY29udGVudHMg b2YgQHZhcntidWZmZXJ9IHRvIHRoZSBpbmZlcmlvciwgc3RhcnRpbmcgYXQK IEB2YXJ7YWRkcmVzc30uICBUaGUgQHZhcntidWZmZXJ9IHBhcmFtZXRlciBt dXN0IGJlIGEgUHl0aG9uIG9iamVjdAogd2hpY2ggc3VwcG9ydHMgdGhlIGJ1 ZmZlciBwcm90b2NvbCwgaS5lLiwgYSBzdHJpbmcsIGFuIGFycmF5IG9yIHRo ZQogb2JqZWN0IHJldHVybmVkIGZyb20gQGNvZGV7Z2RiLnJlYWRfbWVtb3J5 fS4gIElmIGdpdmVuLCBAdmFye2xlbmd0aH0KIGRldGVybWluZXMgdGhlIG51 bWJlciBvZiBieXRlcyBmcm9tIEB2YXJ7YnVmZmVyfSB0byBiZSB3cml0dGVu LgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAogQGZpbmRleCBnZGIu c2VhcmNoX21lbW9yeQotQGRlZm1ldGhvZCBJbmZlcmlvciBzZWFyY2hfbWVt b3J5IGFkZHJlc3MgbGVuZ3RoIHBhdHRlcm4KK0BkZWZ1biBJbmZlcmlvci5z ZWFyY2hfbWVtb3J5IChhZGRyZXNzLCBsZW5ndGgsIHBhdHRlcm4pCiBTZWFy Y2ggYSByZWdpb24gb2YgdGhlIGluZmVyaW9yIG1lbW9yeSBzdGFydGluZyBh dCBAdmFye2FkZHJlc3N9IHdpdGgKIHRoZSBnaXZlbiBAdmFye2xlbmd0aH0g dXNpbmcgdGhlIHNlYXJjaCBwYXR0ZXJuIHN1cHBsaWVkIGluCiBAdmFye3Bh dHRlcm59LiAgVGhlIEB2YXJ7cGF0dGVybn0gcGFyYW1ldGVyIG11c3QgYmUg YSBQeXRob24gb2JqZWN0CkBAIC0yMjIwNyw3ICsyMjIwNyw3IEBACiBvYmpl Y3QgcmV0dXJuZWQgZnJvbSBAY29kZXtnZGIucmVhZF9tZW1vcnl9LiAgUmV0 dXJucyBhIFB5dGhvbiBAY29kZXtMb25nfQogY29udGFpbmluZyB0aGUgYWRk cmVzcyB3aGVyZSB0aGUgcGF0dGVybiB3YXMgZm91bmQsIG9yIEBjb2Rle05v bmV9IGlmCiB0aGUgcGF0dGVybiBjb3VsZCBub3QgYmUgZm91bmQuCi1AZW5k IGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogQGVuZCB0YWJsZQogCiBAbm9kZSBF dmVudHMgSW4gUHl0aG9uCkBAIC0yMjIyOCwxNSArMjIyMjgsMTUgQEAKIHBy b3ZpZGVzIG1ldGhvZHMgdG8gcmVnaXN0ZXIgYW5kIHVucmVnaXN0ZXIgZXZl bnQgaGFuZGxlcnM6CiAKIEB0YWJsZSBAY29kZQotQGRlZm1ldGhvZCBFdmVu dFJlZ2lzdHJ5IGNvbm5lY3Qgb2JqZWN0CitAZGVmdW4gRXZlbnRSZWdpc3Ry eS5jb25uZWN0IChvYmplY3QpCiBBZGQgdGhlIGdpdmVuIGNhbGxhYmxlIEB2 YXJ7b2JqZWN0fSB0byB0aGUgcmVnaXN0cnkuICBUaGlzIG9iamVjdCB3aWxs IGJlCiBjYWxsZWQgd2hlbiBhbiBldmVudCBjb3JyZXNwb25kaW5nIHRvIHRo aXMgcmVnaXN0cnkgb2NjdXJzLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVm dW4KIAotQGRlZm1ldGhvZCBFdmVudFJlZ2lzdHJ5IGRpc2Nvbm5lY3Qgb2Jq ZWN0CitAZGVmdW4gRXZlbnRSZWdpc3RyeS5kaXNjb25uZWN0IChvYmplY3Qp CiBSZW1vdmUgdGhlIGdpdmVuIEB2YXJ7b2JqZWN0fSBmcm9tIHRoZSByZWdp c3RyeS4gIE9uY2UgcmVtb3ZlZCwgdGhlIG9iamVjdAogd2lsbCBubyBsb25n ZXIgcmVjZWl2ZSBub3RpZmljYXRpb25zIG9mIGV2ZW50cy4KLUBlbmQgZGVm bWV0aG9kCitAZW5kIGRlZnVuCiBAZW5kIHRhYmxlCiAKIEhlcmUgaXMgYW4g ZXhhbXBsZToKQEAgLTIyMjcyLDEwICsyMjI3MiwxMCBAQAogQGNvZGV7Z2Ri LkNvbnRpbnVlRXZlbnR9LgogCiBAdGFibGUgQGNvZGUKLUBkZWZpdmFyIFRo cmVhZEV2ZW50IGluZmVyaW9yX3RocmVhZAorQGRlZnZhciBUaHJlYWRFdmVu dC5pbmZlcmlvcl90aHJlYWQKIEluIG5vbi1zdG9wIG1vZGUgdGhpcyBhdHRy aWJ1dGUgd2lsbCBiZSBzZXQgdG8gdGhlIHNwZWNpZmljIHRocmVhZCB3aGlj aCB3YXMKIGludm9sdmVkIGluIHRoZSBlbWl0dGVkIGV2ZW50LiBPdGhlcndp c2UsIGl0IHdpbGwgYmUgc2V0IHRvIEBjb2Rle05vbmV9LgotQGVuZCBkZWZp dmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQogCiBFbWl0cyBAY29kZXtn ZGIuQ29udGludWVFdmVudH0gd2hpY2ggZXh0ZW5kcyBAY29kZXtnZGIuVGhy ZWFkRXZlbnR9LgpAQCAtMjIyODksOSArMjIyODksOSBAQAogd2lsbCBleGlz dCBvbmx5IGluIHRoZSBjYXNlIHRoYXQgdGhlIGluZmVyaW9yIGV4aXRlZCB3 aXRoIHNvbWUKIHN0YXR1cy4KIEB0YWJsZSBAY29kZQotQGRlZml2YXIgRXhp dGVkRXZlbnQgZXhpdF9jb2RlCitAZGVmdmFyIEV4aXRlZEV2ZW50LmV4aXRf Y29kZQogQW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIGV4aXQgY29kZSB3 aGljaCB0aGUgaW5mZXJpb3IgaGFzIHJldHVybmVkLgotQGVuZCBkZWZpdmFy CitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQogCiBAaXRlbSBldmVudHMuc3Rv cApAQCAtMjIzMDgsMTEgKzIyMzA4LDExIEBACiBzaWduYWwuICBAY29kZXtn ZGIuU2lnbmFsRXZlbnR9IGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6 CiAKIEB0YWJsZSBAY29kZQotQGRlZml2YXIgU2lnbmFsRXZlbnQgc3RvcF9z aWduYWwKK0BkZWZ2YXIgU2lnbmFsRXZlbnQuc3RvcF9zaWduYWwKIEEgc3Ry aW5nIHJlcHJlc2VudGluZyB0aGUgc2lnbmFsIHJlY2VpdmVkIGJ5IHRoZSBp bmZlcmlvci4gIEEgbGlzdCBvZiBwb3NzaWJsZQogc2lnbmFsIHZhbHVlcyBj YW4gYmUgb2J0YWluZWQgYnkgcnVubmluZyB0aGUgY29tbWFuZCBAY29kZXtp bmZvIHNpZ25hbHN9IGluCiB0aGUgQHZhbHVle0dEQk59IGNvbW1hbmQgcHJv bXB0LgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQog CiBBbHNvIGVtaXRzICBAY29kZXtnZGIuQnJlYWtwb2ludEV2ZW50fSB3aGlj aCBleHRlbmRzIEBjb2Rle2dkYi5TdG9wRXZlbnR9LgpAQCAtMjIzMjEsMTAg KzIyMzIxLDEwIEBACiBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgog CiBAdGFibGUgQGNvZGUKLUBkZWZpdmFyIEJyZWFrcG9pbnRFdmVudCBicmVh a3BvaW50CitAZGVmdmFyIEJyZWFrcG9pbnRFdmVudC5icmVha3BvaW50CiBB IHJlZmVyZW5jZSB0byB0aGUgYnJlYWtwb2ludCB0aGF0IHdhcyBoaXQgb2Yg dHlwZSBAY29kZXtnZGIuQnJlYWtwb2ludH0uCiBAeHJlZntCcmVha3BvaW50 cyBJbiBQeXRob259LCBmb3IgZGV0YWlscyBvZiB0aGUgQGNvZGV7Z2RiLkJy ZWFrcG9pbnR9IG9iamVjdC4KLUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIK IEBlbmQgdGFibGUKIAogQGVuZCB0YWJsZQpAQCAtMjIzNDEsNyArMjIzNDEs NyBAQAogbW9kdWxlOgogCiBAZmluZGV4IGdkYi5zZWxlY3RlZF90aHJlYWQK LUBkZWZ1biBzZWxlY3RlZF90aHJlYWQKK0BkZWZ1biBnZGIuc2VsZWN0ZWRf dGhyZWFkICgpCiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHRocmVhZCBv YmplY3QgZm9yIHRoZSBzZWxlY3RlZCB0aHJlYWQuICBJZiB0aGVyZQogaXMg bm8gc2VsZWN0ZWQgdGhyZWFkLCB0aGlzIHdpbGwgcmV0dXJuIEBjb2Rle05v bmV9LgogQGVuZCBkZWZ1bgpAQCAtMjIzNDksNyArMjIzNDksNyBAQAogQSBA Y29kZXtnZGIuSW5mZXJpb3JUaHJlYWR9IG9iamVjdCBoYXMgdGhlIGZvbGxv d2luZyBhdHRyaWJ1dGVzOgogCiBAdGFibGUgQGNvZGUKLUBkZWZpdmFyIElu ZmVyaW9yVGhyZWFkIG5hbWUKK0BkZWZ2YXIgSW5mZXJpb3JUaHJlYWQubmFt ZQogVGhlIG5hbWUgb2YgdGhlIHRocmVhZC4gIElmIHRoZSB1c2VyIHNwZWNp ZmllZCBhIG5hbWUgdXNpbmcKIEBjb2Rle3RocmVhZCBuYW1lfSwgdGhlbiB0 aGlzIHJldHVybnMgdGhhdCBuYW1lLiAgT3RoZXJ3aXNlLCBpZiBhbgogT1Mt c3VwcGxpZWQgbmFtZSBpcyBhdmFpbGFibGUsIHRoZW4gaXQgaXMgcmV0dXJu ZWQuICBPdGhlcndpc2UsIHRoaXMKQEAgLTIyMzU4LDQ4ICsyMjM1OCw0OCBA QAogVGhpcyBhdHRyaWJ1dGUgY2FuIGJlIGFzc2lnbmVkIHRvLiAgVGhlIG5l dyB2YWx1ZSBtdXN0IGJlIGEgc3RyaW5nCiBvYmplY3QsIHdoaWNoIHNldHMg dGhlIG5ldyBuYW1lLCBvciBAY29kZXtOb25lfSwgd2hpY2ggcmVtb3ZlcyBh bnkKIHVzZXItc3BlY2lmaWVkIHRocmVhZCBuYW1lLgotQGVuZCBkZWZpdmFy CitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBJbmZlcmlvclRocmVhZCBudW0K K0BkZWZ2YXIgSW5mZXJpb3JUaHJlYWQubnVtCiBJRCBvZiB0aGUgdGhyZWFk LCBhcyBhc3NpZ25lZCBieSBHREIuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVm dmFyCiAKLUBkZWZpdmFyIEluZmVyaW9yVGhyZWFkIHB0aWQKK0BkZWZ2YXIg SW5mZXJpb3JUaHJlYWQucHRpZAogSUQgb2YgdGhlIHRocmVhZCwgYXMgYXNz aWduZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICBUaGlzIGF0dHJpYnV0 ZSBpcyBhCiB0dXBsZSBjb250YWluaW5nIHRocmVlIGludGVnZXJzLiAgVGhl IGZpcnN0IGlzIHRoZSBQcm9jZXNzIElEIChQSUQpOyB0aGUgc2Vjb25kCiBp cyB0aGUgTGlnaHR3ZWlnaHQgUHJvY2VzcyBJRCAoTFdQSUQpLCBhbmQgdGhl IHRoaXJkIGlzIHRoZSBUaHJlYWQgSUQgKFRJRCkuCiBFaXRoZXIgdGhlIExX UElEIG9yIFRJRCBtYXkgYmUgMCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhl IG9wZXJhdGluZyBzeXN0ZW0KIGRvZXMgbm90ICB1c2UgdGhhdCBpZGVudGlm aWVyLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQog CiBBIEBjb2Rle2dkYi5JbmZlcmlvclRocmVhZH0gb2JqZWN0IGhhcyB0aGUg Zm9sbG93aW5nIG1ldGhvZHM6CiAKIEB0YWJsZSBAY29kZQotQGRlZm1ldGhv ZCBJbmZlcmlvclRocmVhZCBpc192YWxpZAorQGRlZnVuIEluZmVyaW9yVGhy ZWFkLmlzX3ZhbGlkICgpCiBSZXR1cm5zIEBjb2Rle1RydWV9IGlmIHRoZSBA Y29kZXtnZGIuSW5mZXJpb3JUaHJlYWR9IG9iamVjdCBpcyB2YWxpZCwKIEBj b2Rle0ZhbHNlfSBpZiBub3QuICBBIEBjb2Rle2dkYi5JbmZlcmlvclRocmVh ZH0gb2JqZWN0IHdpbGwgYmVjb21lCiBpbnZhbGlkIGlmIHRoZSB0aHJlYWQg ZXhpdHMsIG9yIHRoZSBpbmZlcmlvciB0aGF0IHRoZSB0aHJlYWQgYmVsb25n cwogaXMgZGVsZXRlZC4gIEFsbCBvdGhlciBAY29kZXtnZGIuSW5mZXJpb3JU aHJlYWR9IG1ldGhvZHMgd2lsbCB0aHJvdyBhbgogZXhjZXB0aW9uIGlmIGl0 IGlzIGludmFsaWQgYXQgdGhlIHRpbWUgdGhlIG1ldGhvZCBpcyBjYWxsZWQu Ci1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIElu ZmVyaW9yVGhyZWFkIHN3aXRjaAorQGRlZnVuIEluZmVyaW9yVGhyZWFkLnN3 aXRjaCAoKQogVGhpcyBjaGFuZ2VzIEB2YWx1ZXtHREJOfSdzIGN1cnJlbnRs eSBzZWxlY3RlZCB0aHJlYWQgdG8gdGhlIG9uZSByZXByZXNlbnRlZAogYnkg dGhpcyBvYmplY3QuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1A ZGVmbWV0aG9kIEluZmVyaW9yVGhyZWFkIGlzX3N0b3BwZWQKK0BkZWZ1biBJ bmZlcmlvclRocmVhZC5pc19zdG9wcGVkICgpCiBSZXR1cm4gYSBCb29sZWFu IGluZGljYXRpbmcgd2hldGhlciB0aGUgdGhyZWFkIGlzIHN0b3BwZWQuCi1A ZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEluZmVy aW9yVGhyZWFkIGlzX3J1bm5pbmcKK0BkZWZ1biBJbmZlcmlvclRocmVhZC5p c19ydW5uaW5nICgpCiBSZXR1cm4gYSBCb29sZWFuIGluZGljYXRpbmcgd2hl dGhlciB0aGUgdGhyZWFkIGlzIHJ1bm5pbmcuCi1AZW5kIGRlZm1ldGhvZAor QGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEluZmVyaW9yVGhyZWFkIGlzX2V4 aXRlZAorQGRlZnVuIEluZmVyaW9yVGhyZWFkLmlzX2V4aXRlZCAoKQogUmV0 dXJuIGEgQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRocmVhZCBp cyBleGl0ZWQuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogQGVuZCB0 YWJsZQogCiBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KQEAgLTIyNDExLDcg KzIyNDExLDcgQEAKIGNvbW1hbmQgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4g aW5zdGFuY2Ugb2YgdGhlIEBjb2Rle2dkYi5Db21tYW5kfQogY2xhc3MsIG1v c3QgY29tbW9ubHkgdXNpbmcgYSBzdWJjbGFzcy4KIAotQGRlZm1ldGhvZCBD b21tYW5kIF9faW5pdF9fIG5hbWUgQHZhcntjb21tYW5kX2NsYXNzfSBAcntb fUB2YXJ7Y29tcGxldGVyX2NsYXNzfUBye119IEBye1t9QHZhcntwcmVmaXh9 QHJ7XX0KK0BkZWZ1biBDb21tYW5kLl9faW5pdF9fIChuYW1lLCBAdmFye2Nv bW1hbmRfY2xhc3N9IEBye1t9LCB2YXJ7Y29tcGxldGVyX2NsYXNzfSBAcntb fSwgdmFye3ByZWZpeH1AcntdfUBye119KQogVGhlIG9iamVjdCBpbml0aWFs aXplciBmb3IgQGNvZGV7Q29tbWFuZH0gcmVnaXN0ZXJzIHRoZSBuZXcgY29t bWFuZAogd2l0aCBAdmFsdWV7R0RCTn0uICBUaGlzIGluaXRpYWxpemVyIGlz IG5vcm1hbGx5IGludm9rZWQgZnJvbSB0aGUKIHN1YmNsYXNzJyBvd24gQGNv ZGV7X19pbml0X199IG1ldGhvZC4KQEAgLTIyNDQyLDE3ICsyMjQ0MiwxNyBA QAogZG9jdW1lbnRhdGlvbiBzdHJpbmcgZm9yIHRoZSBjb21tYW5kJ3MgY2xh c3MsIGlmIHRoZXJlIGlzIG9uZS4gIElmIG5vCiBkb2N1bWVudGF0aW9uIHN0 cmluZyBpcyBwcm92aWRlZCwgdGhlIGRlZmF1bHQgdmFsdWUgYGBUaGlzIGNv bW1hbmQgaXMKIG5vdCBkb2N1bWVudGVkLicnIGlzIHVzZWQuCi1AZW5kIGRl Zm1ldGhvZAorQGVuZCBkZWZ1bgogCiBAY2luZGV4IGRvbid0IHJlcGVhdCBQ eXRob24gY29tbWFuZAotQGRlZm1ldGhvZCBDb21tYW5kIGRvbnRfcmVwZWF0 CitAZGVmdW4gQ29tbWFuZC5kb250X3JlcGVhdCAoKQogQnkgZGVmYXVsdCwg YSBAdmFsdWV7R0RCTn0gY29tbWFuZCBpcyByZXBlYXRlZCB3aGVuIHRoZSB1 c2VyIGVudGVycyBhCiBibGFuayBsaW5lIGF0IHRoZSBjb21tYW5kIHByb21w dC4gIEEgY29tbWFuZCBjYW4gc3VwcHJlc3MgdGhpcwogYmVoYXZpb3IgYnkg aW52b2tpbmcgdGhlIEBjb2Rle2RvbnRfcmVwZWF0fSBtZXRob2QuICBUaGlz IGlzIHNpbWlsYXIKIHRvIHRoZSB1c2VyIGNvbW1hbmQgQGNvZGV7ZG9udC1y ZXBlYXR9LCBzZWUgQHJlZntEZWZpbmUsIGRvbnQtcmVwZWF0fS4KLUBlbmQg ZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAKLUBkZWZtZXRob2QgQ29tbWFuZCBp bnZva2UgYXJndW1lbnQgZnJvbV90dHkKK0BkZWZ1biBDb21tYW5kLmludm9r ZSAoYXJndW1lbnQsIGZyb21fdHR5KQogVGhpcyBtZXRob2QgaXMgY2FsbGVk IGJ5IEB2YWx1ZXtHREJOfSB3aGVuIHRoaXMgY29tbWFuZCBpcyBpbnZva2Vk LgogCiBAdmFye2FyZ3VtZW50fSBpcyBhIHN0cmluZy4gIEl0IGlzIHRoZSBh cmd1bWVudCB0byB0aGUgY29tbWFuZCwgYWZ0ZXIKQEAgLTIyNDc4LDEwICsy MjQ3OCwxMCBAQAogWycxJywgJzIgIjMnLCAnNCAiNScsICI2ICc3Il0KIEBl bmQgc21hbGxleGFtcGxlCiAKLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVu CiAKIEBjaW5kZXggY29tcGxldGlvbiBvZiBQeXRob24gY29tbWFuZHMKLUBk ZWZtZXRob2QgQ29tbWFuZCBjb21wbGV0ZSB0ZXh0IHdvcmQKK0BkZWZ1biBD b21tYW5kLmNvbXBsZXRlICh0ZXh0LCB3b3JkKQogVGhpcyBtZXRob2QgaXMg Y2FsbGVkIGJ5IEB2YWx1ZXtHREJOfSB3aGVuIHRoZSB1c2VyIGF0dGVtcHRz CiBjb21wbGV0aW9uIG9uIHRoaXMgY29tbWFuZC4gIEFsbCBmb3JtcyBvZiBj b21wbGV0aW9uIGFyZSBoYW5kbGVkIGJ5CiB0aGlzIG1ldGhvZCwgdGhhdCBp cywgdGhlIEBrZXl7VEFCfSBhbmQgQGtleXtNLT99IGtleSBiaW5kaW5ncwpA QCAtMjI1MTIsNyArMjI1MTIsNyBAQAogQWxsIG90aGVyIHJlc3VsdHMgYXJl IHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXJlIHdlcmUgbm8gYXZhaWxhYmxlCiBj b21wbGV0aW9ucy4KIEBlbmQgaXRlbWl6ZQotQGVuZCBkZWZtZXRob2QKK0Bl bmQgZGVmdW4KIAogV2hlbiBhIG5ldyBjb21tYW5kIGlzIHJlZ2lzdGVyZWQs IGl0IG11c3QgYmUgZGVjbGFyZWQgYXMgYSBtZW1iZXIgb2YKIHNvbWUgZ2Vu ZXJhbCBjbGFzcyBvZiBjb21tYW5kcy4gIFRoaXMgaXMgdXNlZCB0byBjbGFz c2lmeSB0b3AtbGV2ZWwKQEAgLTIyNTI0LDEzICsyMjUyNCwxMyBAQAogQHRh YmxlIEBjb2RlCiBAZmluZGV4IENPTU1BTkRfTk9ORQogQGZpbmRleCBnZGIu Q09NTUFORF9OT05FCi1AaXRlbSBDT01NQU5EX05PTkUKK0BpdGVtIGdkYi5D T01NQU5EX05PTkUKIFRoZSBjb21tYW5kIGRvZXMgbm90IGJlbG9uZyB0byBh bnkgcGFydGljdWxhciBjbGFzcy4gIEEgY29tbWFuZCBpbgogdGhpcyBjYXRl Z29yeSB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgaW4gYW55IG9mIHRoZSBoZWxw IGNhdGVnb3JpZXMuCiAKIEBmaW5kZXggQ09NTUFORF9SVU5OSU5HCiBAZmlu ZGV4IGdkYi5DT01NQU5EX1JVTk5JTkcKLUBpdGVtIENPTU1BTkRfUlVOTklO RworQGl0ZW0gZ2RiLkNPTU1BTkRfUlVOTklORwogVGhlIGNvbW1hbmQgaXMg cmVsYXRlZCB0byBydW5uaW5nIHRoZSBpbmZlcmlvci4gIEZvciBleGFtcGxl LAogQGNvZGV7c3RhcnR9LCBAY29kZXtzdGVwfSwgYW5kIEBjb2Rle2NvbnRp bnVlfSBhcmUgaW4gdGhpcyBjYXRlZ29yeS4KIFR5cGUgQGtiZHtoZWxwIHJ1 bm5pbmd9IGF0IHRoZSBAdmFsdWV7R0RCTn0gcHJvbXB0IHRvIHNlZSBhIGxp c3Qgb2YKQEAgLTIyNTM4LDcgKzIyNTM4LDcgQEAKIAogQGZpbmRleCBDT01N QU5EX0RBVEEKIEBmaW5kZXggZ2RiLkNPTU1BTkRfREFUQQotQGl0ZW0gQ09N TUFORF9EQVRBCitAaXRlbSBnZGIuQ09NTUFORF9EQVRBCiBUaGUgY29tbWFu ZCBpcyByZWxhdGVkIHRvIGRhdGEgb3IgdmFyaWFibGVzLiAgRm9yIGV4YW1w bGUsCiBAY29kZXtjYWxsfSwgQGNvZGV7ZmluZH0sIGFuZCBAY29kZXtwcmlu dH0gYXJlIGluIHRoaXMgY2F0ZWdvcnkuICBUeXBlCiBAa2Jke2hlbHAgZGF0 YX0gYXQgdGhlIEB2YWx1ZXtHREJOfSBwcm9tcHQgdG8gc2VlIGEgbGlzdCBv ZiBjb21tYW5kcwpAQCAtMjI1NDYsNyArMjI1NDYsNyBAQAogCiBAZmluZGV4 IENPTU1BTkRfU1RBQ0sKIEBmaW5kZXggZ2RiLkNPTU1BTkRfU1RBQ0sKLUBp dGVtIENPTU1BTkRfU1RBQ0sKK0BpdGVtIGdkYi5DT01NQU5EX1NUQUNLCiBU aGUgY29tbWFuZCBoYXMgdG8gZG8gd2l0aCBtYW5pcHVsYXRpb24gb2YgdGhl IHN0YWNrLiAgRm9yIGV4YW1wbGUsCiBAY29kZXtiYWNrdHJhY2V9LCBAY29k ZXtmcmFtZX0sIGFuZCBAY29kZXtyZXR1cm59IGFyZSBpbiB0aGlzCiBjYXRl Z29yeS4gIFR5cGUgQGtiZHtoZWxwIHN0YWNrfSBhdCB0aGUgQHZhbHVle0dE Qk59IHByb21wdCB0byBzZWUgYQpAQCAtMjI1NTQsNyArMjI1NTQsNyBAQAog CiBAZmluZGV4IENPTU1BTkRfRklMRVMKIEBmaW5kZXggZ2RiLkNPTU1BTkRf RklMRVMKLUBpdGVtIENPTU1BTkRfRklMRVMKK0BpdGVtIGdkYi5DT01NQU5E X0ZJTEVTCiBUaGlzIGNsYXNzIGlzIHVzZWQgZm9yIGZpbGUtcmVsYXRlZCBj b21tYW5kcy4gIEZvciBleGFtcGxlLAogQGNvZGV7ZmlsZX0sIEBjb2Rle2xp c3R9IGFuZCBAY29kZXtzZWN0aW9ufSBhcmUgaW4gdGhpcyBjYXRlZ29yeS4K IFR5cGUgQGtiZHtoZWxwIGZpbGVzfSBhdCB0aGUgQHZhbHVle0dEQk59IHBy b21wdCB0byBzZWUgYSBsaXN0IG9mCkBAIC0yMjU2Miw3ICsyMjU2Miw3IEBA CiAKIEBmaW5kZXggQ09NTUFORF9TVVBQT1JUCiBAZmluZGV4IGdkYi5DT01N QU5EX1NVUFBPUlQKLUBpdGVtIENPTU1BTkRfU1VQUE9SVAorQGl0ZW0gZ2Ri LkNPTU1BTkRfU1VQUE9SVAogVGhpcyBzaG91bGQgYmUgdXNlZCBmb3IgYGBz dXBwb3J0IGZhY2lsaXRpZXMnJywgZ2VuZXJhbGx5IG1lYW5pbmcKIHRoaW5n cyB0aGF0IGFyZSB1c2VmdWwgdG8gdGhlIHVzZXIgd2hlbiBpbnRlcmFjdGlu ZyB3aXRoIEB2YWx1ZXtHREJOfSwKIGJ1dCBub3QgcmVsYXRlZCB0byB0aGUg c3RhdGUgb2YgdGhlIGluZmVyaW9yLiAgRm9yIGV4YW1wbGUsCkBAIC0yMjU3 Miw3ICsyMjU3Miw3IEBACiAKIEBmaW5kZXggQ09NTUFORF9TVEFUVVMKIEBm aW5kZXggZ2RiLkNPTU1BTkRfU1RBVFVTCi1AaXRlbSBDT01NQU5EX1NUQVRV UworQGl0ZW0gZ2RiLkNPTU1BTkRfU1RBVFVTCiBUaGUgY29tbWFuZCBpcyBh biBAc2FtcHtpbmZvfS1yZWxhdGVkIGNvbW1hbmQsIHRoYXQgaXMsIHJlbGF0 ZWQgdG8gdGhlCiBzdGF0ZSBvZiBAdmFsdWV7R0RCTn0gaXRzZWxmLiAgRm9y IGV4YW1wbGUsIEBjb2Rle2luZm99LCBAY29kZXttYWNyb30sCiBhbmQgQGNv ZGV7c2hvd30gYXJlIGluIHRoaXMgY2F0ZWdvcnkuICBUeXBlIEBrYmR7aGVs cCBzdGF0dXN9IGF0IHRoZQpAQCAtMjI1ODAsNyArMjI1ODAsNyBAQAogCiBA ZmluZGV4IENPTU1BTkRfQlJFQUtQT0lOVFMKIEBmaW5kZXggZ2RiLkNPTU1B TkRfQlJFQUtQT0lOVFMKLUBpdGVtIENPTU1BTkRfQlJFQUtQT0lOVFMKK0Bp dGVtIGdkYi5DT01NQU5EX0JSRUFLUE9JTlRTCiBUaGUgY29tbWFuZCBoYXMg dG8gZG8gd2l0aCBicmVha3BvaW50cy4gIEZvciBleGFtcGxlLCBAY29kZXti cmVha30sCiBAY29kZXtjbGVhcn0sIGFuZCBAY29kZXtkZWxldGV9IGFyZSBp biB0aGlzIGNhdGVnb3J5LiAgVHlwZSBAa2Jke2hlbHAKIGJyZWFrcG9pbnRz fSBhdCB0aGUgQHZhbHVle0dEQk59IHByb21wdCB0byBzZWUgYSBsaXN0IG9m IGNvbW1hbmRzIGluCkBAIC0yMjU4OCw3ICsyMjU4OCw3IEBACiAKIEBmaW5k ZXggQ09NTUFORF9UUkFDRVBPSU5UUwogQGZpbmRleCBnZGIuQ09NTUFORF9U UkFDRVBPSU5UUwotQGl0ZW0gQ09NTUFORF9UUkFDRVBPSU5UUworQGl0ZW0g Z2RiLkNPTU1BTkRfVFJBQ0VQT0lOVFMKIFRoZSBjb21tYW5kIGhhcyB0byBk byB3aXRoIHRyYWNlcG9pbnRzLiAgRm9yIGV4YW1wbGUsIEBjb2Rle3RyYWNl fSwKIEBjb2Rle2FjdGlvbnN9LCBhbmQgQGNvZGV7dGZpbmR9IGFyZSBpbiB0 aGlzIGNhdGVnb3J5LiAgVHlwZQogQGtiZHtoZWxwIHRyYWNlcG9pbnRzfSBh dCB0aGUgQHZhbHVle0dEQk59IHByb21wdCB0byBzZWUgYSBsaXN0IG9mCkBA IC0yMjU5Niw3ICsyMjU5Niw3IEBACiAKIEBmaW5kZXggQ09NTUFORF9PQlND VVJFCiBAZmluZGV4IGdkYi5DT01NQU5EX09CU0NVUkUKLUBpdGVtIENPTU1B TkRfT0JTQ1VSRQorQGl0ZW0gZ2RiLkNPTU1BTkRfT0JTQ1VSRQogVGhlIGNv bW1hbmQgaXMgb25seSB1c2VkIGluIHVudXN1YWwgY2lyY3Vtc3RhbmNlcywg b3IgaXMgbm90IG9mCiBnZW5lcmFsIGludGVyZXN0IHRvIHVzZXJzLiAgRm9y IGV4YW1wbGUsIEBjb2Rle2NoZWNrcG9pbnR9LAogQGNvZGV7Zm9ya30sIGFu ZCBAY29kZXtzdG9wfSBhcmUgaW4gdGhpcyBjYXRlZ29yeS4gIFR5cGUgQGti ZHtoZWxwCkBAIC0yMjYwNSw3ICsyMjYwNSw3IEBACiAKIEBmaW5kZXggQ09N TUFORF9NQUlOVEVOQU5DRQogQGZpbmRleCBnZGIuQ09NTUFORF9NQUlOVEVO QU5DRQotQGl0ZW0gQ09NTUFORF9NQUlOVEVOQU5DRQorQGl0ZW0gZ2RiLkNP TU1BTkRfTUFJTlRFTkFOQ0UKIFRoZSBjb21tYW5kIGlzIG9ubHkgdXNlZnVs IHRvIEB2YWx1ZXtHREJOfSBtYWludGFpbmVycy4gIFRoZQogQGNvZGV7bWFp bnRlbmFuY2V9IGFuZCBAY29kZXtmbHVzaHJlZ3N9IGNvbW1hbmRzIGFyZSBp biB0aGlzIGNhdGVnb3J5LgogVHlwZSBAa2Jke2hlbHAgaW50ZXJuYWxzfSBh dCB0aGUgQHZhbHVle0dEQk59IHByb21wdCB0byBzZWUgYSBsaXN0IG9mCkBA IC0yMjYyMCwyOSArMjI2MjAsMjkgQEAKIEB0YWJsZSBAY29kZQogQGZpbmRl eCBDT01QTEVURV9OT05FCiBAZmluZGV4IGdkYi5DT01QTEVURV9OT05FCi1A aXRlbSBDT01QTEVURV9OT05FCitAaXRlbSBnZGIuQ09NUExFVEVfTk9ORQog VGhpcyBjb25zdGFudCBtZWFucyB0aGF0IG5vIGNvbXBsZXRpb24gc2hvdWxk IGJlIGRvbmUuCiAKIEBmaW5kZXggQ09NUExFVEVfRklMRU5BTUUKIEBmaW5k ZXggZ2RiLkNPTVBMRVRFX0ZJTEVOQU1FCi1AaXRlbSBDT01QTEVURV9GSUxF TkFNRQorQGl0ZW0gZ2RiLkNPTVBMRVRFX0ZJTEVOQU1FCiBUaGlzIGNvbnN0 YW50IG1lYW5zIHRoYXQgZmlsZW5hbWUgY29tcGxldGlvbiBzaG91bGQgYmUg cGVyZm9ybWVkLgogCiBAZmluZGV4IENPTVBMRVRFX0xPQ0FUSU9OCiBAZmlu ZGV4IGdkYi5DT01QTEVURV9MT0NBVElPTgotQGl0ZW0gQ09NUExFVEVfTE9D QVRJT04KK0BpdGVtIGdkYi5DT01QTEVURV9MT0NBVElPTgogVGhpcyBjb25z dGFudCBtZWFucyB0aGF0IGxvY2F0aW9uIGNvbXBsZXRpb24gc2hvdWxkIGJl IGRvbmUuCiBAeHJlZntTcGVjaWZ5IExvY2F0aW9ufS4KIAogQGZpbmRleCBD T01QTEVURV9DT01NQU5ECiBAZmluZGV4IGdkYi5DT01QTEVURV9DT01NQU5E Ci1AaXRlbSBDT01QTEVURV9DT01NQU5ECitAaXRlbSBnZGIuQ09NUExFVEVf Q09NTUFORAogVGhpcyBjb25zdGFudCBtZWFucyB0aGF0IGNvbXBsZXRpb24g c2hvdWxkIGV4YW1pbmUgQHZhbHVle0dEQk59CiBjb21tYW5kIG5hbWVzLgog CiBAZmluZGV4IENPTVBMRVRFX1NZTUJPTAogQGZpbmRleCBnZGIuQ09NUExF VEVfU1lNQk9MCi1AaXRlbSBDT01QTEVURV9TWU1CT0wKK0BpdGVtIGdkYi5D T01QTEVURV9TWU1CT0wKIFRoaXMgY29uc3RhbnQgbWVhbnMgdGhhdCBjb21w bGV0aW9uIHNob3VsZCBiZSBkb25lIHVzaW5nIHN5bWJvbCBuYW1lcwogYXMg dGhlIHNvdXJjZS4KIEBlbmQgdGFibGUKQEAgLTIyNjg4LDcgKzIyNjg4LDcg QEAKIGJlaGF2aW9yIGluIEB2YWx1ZXtHREJOfS4gIFNpbWlsYXJseSwgeW91 IGNhbiBkZWZpbmUgcGFyYW1ldGVycyB0aGF0CiBjYW4gYmUgdXNlZCB0byBp bmZsdWVuY2UgYmVoYXZpb3IgaW4gY3VzdG9tIFB5dGhvbiBzY3JpcHRzIGFu ZCBjb21tYW5kcy4KIAotQGRlZm1ldGhvZCBQYXJhbWV0ZXIgX19pbml0X18g bmFtZSBAdmFye2NvbW1hbmQtY2xhc3N9IEB2YXJ7cGFyYW1ldGVyLWNsYXNz fSBAcntbfUB2YXJ7ZW51bS1zZXF1ZW5jZX1AcntdfQorQGRlZnVuIFBhcmFt ZXRlci5fX2luaXRfXyAobmFtZSwgQHZhcntjb21tYW5kLWNsYXNzfSwgQHZh cntwYXJhbWV0ZXItY2xhc3N9IEBye1t9LCBAdmFye2VudW0tc2VxdWVuY2V9 QHJ7XX0pCiBUaGUgb2JqZWN0IGluaXRpYWxpemVyIGZvciBAY29kZXtQYXJh bWV0ZXJ9IHJlZ2lzdGVycyB0aGUgbmV3CiBwYXJhbWV0ZXIgd2l0aCBAdmFs dWV7R0RCTn0uICBUaGlzIGluaXRpYWxpemVyIGlzIG5vcm1hbGx5IGludm9r ZWQKIGZyb20gdGhlIHN1YmNsYXNzJyBvd24gQGNvZGV7X19pbml0X199IG1l dGhvZC4KQEAgLTIyNzIzLDQ0ICsyMjcyMyw0NCBAQAogVGhlIGhlbHAgdGV4 dCBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgaXMgdGFrZW4gZnJvbSB0aGUgUHl0 aG9uCiBkb2N1bWVudGF0aW9uIHN0cmluZyBmb3IgdGhlIHBhcmFtZXRlcidz IGNsYXNzLCBpZiB0aGVyZSBpcyBvbmUuICBJZgogdGhlcmUgaXMgbm8gZG9j dW1lbnRhdGlvbiBzdHJpbmcsIGEgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLgot QGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZml2YXIgUGFyYW1l dGVyIHNldF9kb2MKK0BkZWZ2YXIgUGFyYW1ldGVyLnNldF9kb2MKIElmIHRo aXMgYXR0cmlidXRlIGV4aXN0cywgYW5kIGlzIGEgc3RyaW5nLCB0aGVuIGl0 cyB2YWx1ZSBpcyB1c2VkIGFzCiB0aGUgaGVscCB0ZXh0IGZvciB0aGlzIHBh cmFtZXRlcidzIEBjb2Rle3NldH0gY29tbWFuZC4gIFRoZSB2YWx1ZSBpcwog ZXhhbWluZWQgd2hlbiBAY29kZXtQYXJhbWV0ZXIuX19pbml0X199IGlzIGlu dm9rZWQ7IHN1YnNlcXVlbnQgY2hhbmdlcwogaGF2ZSBubyBlZmZlY3QuCi1A ZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIFBhcmFtZXRl ciBzaG93X2RvYworQGRlZnZhciBQYXJhbWV0ZXIuc2hvd19kb2MKIElmIHRo aXMgYXR0cmlidXRlIGV4aXN0cywgYW5kIGlzIGEgc3RyaW5nLCB0aGVuIGl0 cyB2YWx1ZSBpcyB1c2VkIGFzCiB0aGUgaGVscCB0ZXh0IGZvciB0aGlzIHBh cmFtZXRlcidzIEBjb2Rle3Nob3d9IGNvbW1hbmQuICBUaGUgdmFsdWUgaXMK IGV4YW1pbmVkIHdoZW4gQGNvZGV7UGFyYW1ldGVyLl9faW5pdF9ffSBpcyBp bnZva2VkOyBzdWJzZXF1ZW50IGNoYW5nZXMKIGhhdmUgbm8gZWZmZWN0Lgot QGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBQYXJhbWV0 ZXIgdmFsdWUKK0BkZWZ2YXIgUGFyYW1ldGVyLnZhbHVlCiBUaGUgQGNvZGV7 dmFsdWV9IGF0dHJpYnV0ZSBob2xkcyB0aGUgdW5kZXJseWluZyB2YWx1ZSBv ZiB0aGUKIHBhcmFtZXRlci4gIEl0IGNhbiBiZSByZWFkIGFuZCBhc3NpZ25l ZCB0byBqdXN0IGFzIGFueSBvdGhlcgogYXR0cmlidXRlLiAgQHZhbHVle0dE Qk59IGRvZXMgdmFsaWRhdGlvbiB3aGVuIGFzc2lnbm1lbnRzIGFyZSBtYWRl LgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCiBUaGVyZSBhcmUgdHdv IG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYW55CiBA Y29kZXtQYXJhbWV0ZXJ9IGNsYXNzLiAgVGhlc2UgYXJlOgogCi1AZGVmb3Ag T3BlcmF0aW9uIHtwYXJhbWV0ZXJ9IGdldF9zZXRfc3RyaW5nIHNlbGYKK0Bk ZWZ1biBQYXJhbWV0ZXIuZ2V0X3NldF9zdHJpbmcgKHNlbGYpCiBAdmFsdWV7 R0RCTn0gd2lsbCBjYWxsIHRoaXMgbWV0aG9kIHdoZW4gYSBAdmFye3BhcmFt ZXRlcn0ncyB2YWx1ZSBoYXMKIGJlZW4gY2hhbmdlZCB2aWEgdGhlIEBjb2Rl e3NldH0gQVBJIChmb3IgZXhhbXBsZSwgQGtiZHtzZXQgZm9vIG9mZn0pLgog VGhlIEBjb2Rle3ZhbHVlfSBhdHRyaWJ1dGUgaGFzIGFscmVhZHkgYmVlbiBw b3B1bGF0ZWQgd2l0aCB0aGUgbmV3CiB2YWx1ZSBhbmQgbWF5IGJlIHVzZWQg aW4gb3V0cHV0LiAgVGhpcyBtZXRob2QgbXVzdCByZXR1cm4gYSBzdHJpbmcu Ci1AZW5kIGRlZm9wCitAZW5kIGRlZnVuCiAKLUBkZWZvcCBPcGVyYXRpb24g e3BhcmFtZXRlcn0gZ2V0X3Nob3dfc3RyaW5nIHNlbGYgc3ZhbHVlCitAZGVm dW4gUGFyYW1ldGVyLmdldF9zaG93X3N0cmluZyAoc2VsZiwgc3ZhbHVlKQog QHZhbHVle0dEQk59IHdpbGwgY2FsbCB0aGlzIG1ldGhvZCB3aGVuIGEgQHZh cntwYXJhbWV0ZXJ9J3MKIEBjb2Rle3Nob3d9IEFQSSBoYXMgYmVlbiBpbnZv a2VkIChmb3IgZXhhbXBsZSwgQGtiZHtzaG93IGZvb30pLiAgVGhlCiBhcmd1 bWVudCBAY29kZXtzdmFsdWV9IHJlY2VpdmVzIHRoZSBzdHJpbmcgcmVwcmVz ZW50YXRpb24gb2YgdGhlCiBjdXJyZW50IHZhbHVlLiAgVGhpcyBtZXRob2Qg bXVzdCByZXR1cm4gYSBzdHJpbmcuCi1AZW5kIGRlZm9wCitAZW5kIGRlZnVu CiAKIFdoZW4gYSBuZXcgcGFyYW1ldGVyIGlzIGRlZmluZWQsIGl0cyB0eXBl IG11c3QgYmUgc3BlY2lmaWVkLiAgVGhlCiBhdmFpbGFibGUgdHlwZXMgYXJl IHJlcHJlc2VudGVkIGJ5IGNvbnN0YW50cyBkZWZpbmVkIGluIHRoZSBAY29k ZXtnZGJ9CkBAIC0yMjc2OSwzMiArMjI3NjksMzIgQEAKIEB0YWJsZSBAY29k ZQogQGZpbmRleCBQQVJBTV9CT09MRUFOCiBAZmluZGV4IGdkYi5QQVJBTV9C T09MRUFOCi1AaXRlbSBQQVJBTV9CT09MRUFOCitAaXRlbSBnZGIuUEFSQU1f Qk9PTEVBTgogVGhlIHZhbHVlIGlzIGEgcGxhaW4gYm9vbGVhbi4gIFRoZSBQ eXRob24gYm9vbGVhbiB2YWx1ZXMsIEBjb2Rle1RydWV9CiBhbmQgQGNvZGV7 RmFsc2V9IGFyZSB0aGUgb25seSB2YWxpZCB2YWx1ZXMuCiAKIEBmaW5kZXgg UEFSQU1fQVVUT19CT09MRUFOCiBAZmluZGV4IGdkYi5QQVJBTV9BVVRPX0JP T0xFQU4KLUBpdGVtIFBBUkFNX0FVVE9fQk9PTEVBTgorQGl0ZW0gZ2RiLlBB UkFNX0FVVE9fQk9PTEVBTgogVGhlIHZhbHVlIGhhcyB0aHJlZSBwb3NzaWJs ZSBzdGF0ZXM6IHRydWUsIGZhbHNlLCBhbmQgQHNhbXB7YXV0b30uICBJbgog UHl0aG9uLCB0cnVlIGFuZCBmYWxzZSBhcmUgcmVwcmVzZW50ZWQgdXNpbmcg Ym9vbGVhbiBjb25zdGFudHMsIGFuZAogQHNhbXB7YXV0b30gaXMgcmVwcmVz ZW50ZWQgdXNpbmcgQGNvZGV7Tm9uZX0uCiAKIEBmaW5kZXggUEFSQU1fVUlO VEVHRVIKIEBmaW5kZXggZ2RiLlBBUkFNX1VJTlRFR0VSCi1AaXRlbSBQQVJB TV9VSU5URUdFUgorQGl0ZW0gZ2RiLlBBUkFNX1VJTlRFR0VSCiBUaGUgdmFs dWUgaXMgYW4gdW5zaWduZWQgaW50ZWdlci4gIFRoZSB2YWx1ZSBvZiAwIHNo b3VsZCBiZQogaW50ZXJwcmV0ZWQgdG8gbWVhbiBgYHVubGltaXRlZCcnLgog CiBAZmluZGV4IFBBUkFNX0lOVEVHRVIKIEBmaW5kZXggZ2RiLlBBUkFNX0lO VEVHRVIKLUBpdGVtIFBBUkFNX0lOVEVHRVIKK0BpdGVtIGdkYi5QQVJBTV9J TlRFR0VSCiBUaGUgdmFsdWUgaXMgYSBzaWduZWQgaW50ZWdlci4gIFRoZSB2 YWx1ZSBvZiAwIHNob3VsZCBiZSBpbnRlcnByZXRlZAogdG8gbWVhbiBgYHVu bGltaXRlZCcnLgogCiBAZmluZGV4IFBBUkFNX1NUUklORwogQGZpbmRleCBn ZGIuUEFSQU1fU1RSSU5HCi1AaXRlbSBQQVJBTV9TVFJJTkcKK0BpdGVtIGdk Yi5QQVJBTV9TVFJJTkcKIFRoZSB2YWx1ZSBpcyBhIHN0cmluZy4gIFdoZW4g dGhlIHVzZXIgbW9kaWZpZXMgdGhlIHN0cmluZywgYW55IGVzY2FwZQogc2Vx dWVuY2VzLCBzdWNoIGFzIEBzYW1we1x0fSwgQHNhbXB7XGZ9LCBhbmQgb2N0 YWwgZXNjYXBlcywgYXJlCiB0cmFuc2xhdGVkIGludG8gY29ycmVzcG9uZGlu ZyBjaGFyYWN0ZXJzIGFuZCBlbmNvZGVkIGludG8gdGhlIGN1cnJlbnQKQEAg LTIyODAyLDMwICsyMjgwMiwzMCBAQAogCiBAZmluZGV4IFBBUkFNX1NUUklO R19OT0VTQ0FQRQogQGZpbmRleCBnZGIuUEFSQU1fU1RSSU5HX05PRVNDQVBF Ci1AaXRlbSBQQVJBTV9TVFJJTkdfTk9FU0NBUEUKK0BpdGVtIGdkYi5QQVJB TV9TVFJJTkdfTk9FU0NBUEUKIFRoZSB2YWx1ZSBpcyBhIHN0cmluZy4gIFdo ZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIHN0cmluZywgZXNjYXBlcyBhcmUK IHBhc3NlZCB0aHJvdWdoIHVudHJhbnNsYXRlZC4KIAogQGZpbmRleCBQQVJB TV9PUFRJT05BTF9GSUxFTkFNRQogQGZpbmRleCBnZGIuUEFSQU1fT1BUSU9O QUxfRklMRU5BTUUKLUBpdGVtIFBBUkFNX09QVElPTkFMX0ZJTEVOQU1FCitA aXRlbSBnZGIuUEFSQU1fT1BUSU9OQUxfRklMRU5BTUUKIFRoZSB2YWx1ZSBp cyBhIGVpdGhlciBhIGZpbGVuYW1lIChhIHN0cmluZyksIG9yIEBjb2Rle05v bmV9LgogCiBAZmluZGV4IFBBUkFNX0ZJTEVOQU1FCiBAZmluZGV4IGdkYi5Q QVJBTV9GSUxFTkFNRQotQGl0ZW0gUEFSQU1fRklMRU5BTUUKK0BpdGVtIGdk Yi5QQVJBTV9GSUxFTkFNRQogVGhlIHZhbHVlIGlzIGEgZmlsZW5hbWUuICBU aGlzIGlzIGp1c3QgbGlrZQogQGNvZGV7UEFSQU1fU1RSSU5HX05PRVNDQVBF fSwgYnV0IHVzZXMgZmlsZSBuYW1lcyBmb3IgY29tcGxldGlvbi4KIAogQGZp bmRleCBQQVJBTV9aSU5URUdFUgogQGZpbmRleCBnZGIuUEFSQU1fWklOVEVH RVIKLUBpdGVtIFBBUkFNX1pJTlRFR0VSCitAaXRlbSBnZGIuUEFSQU1fWklO VEVHRVIKIFRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyLiAgVGhpcyBpcyBsaWtl IEBjb2Rle1BBUkFNX0lOVEVHRVJ9LCBleGNlcHQgMAogaXMgaW50ZXJwcmV0 ZWQgYXMgaXRzZWxmLgogCiBAZmluZGV4IFBBUkFNX0VOVU0KIEBmaW5kZXgg Z2RiLlBBUkFNX0VOVU0KLUBpdGVtIFBBUkFNX0VOVU0KK0BpdGVtIGdkYi5Q QVJBTV9FTlVNCiBUaGUgdmFsdWUgaXMgYSBzdHJpbmcsIHdoaWNoIG11c3Qg YmUgb25lIG9mIGEgY29sbGVjdGlvbiBzdHJpbmcKIGNvbnN0YW50cyBwcm92 aWRlZCB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgY3JlYXRlZC4KIEBlbmQgdGFi bGUKQEAgLTIyODQyLDcgKzIyODQyLDcgQEAKIGluIFB5dGhvbi4gIEEgY29u dmVuaWVuY2UgZnVuY3Rpb24gaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdWJjbGFz cyBvZiB0aGUKIGNsYXNzIEBjb2Rle2dkYi5GdW5jdGlvbn0uCiAKLUBkZWZt ZXRob2QgRnVuY3Rpb24gX19pbml0X18gbmFtZQorQGRlZnVuIEZ1bmN0aW9u Ll9faW5pdF9fIChuYW1lKQogVGhlIGluaXRpYWxpemVyIGZvciBAY29kZXtG dW5jdGlvbn0gcmVnaXN0ZXJzIHRoZSBuZXcgZnVuY3Rpb24gd2l0aAogQHZh bHVle0dEQk59LiAgVGhlIGFyZ3VtZW50IEB2YXJ7bmFtZX0gaXMgdGhlIG5h bWUgb2YgdGhlIGZ1bmN0aW9uLAogYSBzdHJpbmcuICBUaGUgZnVuY3Rpb24g d2lsbCBiZSB2aXNpYmxlIHRvIHRoZSB1c2VyIGFzIGEgY29udmVuaWVuY2UK QEAgLTIyODUxLDkgKzIyODUxLDkgQEAKIAogVGhlIGRvY3VtZW50YXRpb24g Zm9yIHRoZSBuZXcgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSB0aGUgZG9jdW1l bnRhdGlvbgogc3RyaW5nIGZvciB0aGUgbmV3IGNsYXNzLgotQGVuZCBkZWZt ZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBGdW5jdGlvbiBpbnZv a2UgQHZhcnsqYXJnc30KK0BkZWZ1biBGdW5jdGlvbi5pbnZva2UgKEB2YXJ7 KmFyZ3N9KQogV2hlbiBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGlzIGV2YWx1 YXRlZCwgaXRzIGFyZ3VtZW50cyBhcmUgY29udmVydGVkCiB0byBpbnN0YW5j ZXMgb2YgQGNvZGV7Z2RiLlZhbHVlfSwgYW5kIHRoZW4gdGhlIGZ1bmN0aW9u J3MKIEBjb2Rle2ludm9rZX0gbWV0aG9kIGlzIGNhbGxlZC4gIE5vdGUgdGhh dCBAdmFsdWV7R0RCTn0gZG9lcyBub3QKQEAgLTIyODY1LDcgKzIyODY1LDcg QEAKIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgaXMgdXNlZCBh cyBpdHMgdmFsdWUgaW4gdGhlIGVuY2xvc2luZwogZXhwcmVzc2lvbi4gIElm IGFuIG9yZGluYXJ5IFB5dGhvbiB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgaXMg Y29udmVydGVkCiB0byBhIEBjb2Rle2dkYi5WYWx1ZX0gZm9sbG93aW5nIHRo ZSB1c3VhbCBydWxlcy4KLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiAK IFRoZSBmb2xsb3dpbmcgY29kZSBzbmlwcGV0IHNob3dzIGhvdyBhIHRyaXZp YWwgY29udmVuaWVuY2UgZnVuY3Rpb24gY2FuCiBiZSBpbXBsZW1lbnRlZCBp biBQeXRob246CkBAIC0yMjkwNiwzMSArMjI5MDYsMzEgQEAKIEBjb2Rle2dk Yn0gbW9kdWxlOgogCiBAZmluZGV4IGdkYi5jdXJyZW50X3Byb2dzcGFjZQot QGRlZnVuIGN1cnJlbnRfcHJvZ3NwYWNlCitAZGVmdW4gZ2RiLmN1cnJlbnRf cHJvZ3NwYWNlICgpCiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHByb2dy YW0gc3BhY2Ugb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpbmZlcmlvci4K IEB4cmVme0luZmVyaW9ycyBhbmQgUHJvZ3JhbXN9LgogQGVuZCBkZWZ1bgog CiBAZmluZGV4IGdkYi5wcm9nc3BhY2VzCi1AZGVmdW4gcHJvZ3NwYWNlcwor QGRlZnVuIGdkYi5wcm9nc3BhY2VzICgpCiBSZXR1cm4gYSBzZXF1ZW5jZSBv ZiBhbGwgdGhlIHByb2dzcGFjZXMgY3VycmVudGx5IGtub3duIHRvIEB2YWx1 ZXtHREJOfS4KIEBlbmQgZGVmdW4KIAogRWFjaCBwcm9nc3BhY2UgaXMgcmVw cmVzZW50ZWQgYnkgYW4gaW5zdGFuY2Ugb2YgdGhlIEBjb2Rle2dkYi5Qcm9n c3BhY2V9CiBjbGFzcy4KIAotQGRlZml2YXIgUHJvZ3NwYWNlIGZpbGVuYW1l CitAZGVmdmFyIFByb2dzcGFjZS5maWxlbmFtZQogVGhlIGZpbGUgbmFtZSBv ZiB0aGUgcHJvZ3NwYWNlIGFzIGEgc3RyaW5nLgotQGVuZCBkZWZpdmFyCitA ZW5kIGRlZnZhcgogCi1AZGVmaXZhciBQcm9nc3BhY2UgcHJldHR5X3ByaW50 ZXJzCitAZGVmdmFyIFByb2dzcGFjZS5wcmV0dHlfcHJpbnRlcnMKIFRoZSBA Y29kZXtwcmV0dHlfcHJpbnRlcnN9IGF0dHJpYnV0ZSBpcyBhIGxpc3Qgb2Yg ZnVuY3Rpb25zLiAgSXQgaXMKIHVzZWQgdG8gbG9vayB1cCBwcmV0dHktcHJp bnRlcnMuICBBIEBjb2Rle1ZhbHVlfSBpcyBwYXNzZWQgdG8gZWFjaAogZnVu Y3Rpb24gaW4gb3JkZXI7IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIEBjb2Rl e05vbmV9LCB0aGVuIHRoZQogc2VhcmNoIGNvbnRpbnVlcy4gIE90aGVyd2lz ZSwgdGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgYW4gb2JqZWN0CiB3aGlj aCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUuICBAeHJlZntQcmV0dHkg UHJpbnRpbmcgQVBJfSwgZm9yIG1vcmUKIGluZm9ybWF0aW9uLgotQGVuZCBk ZWZpdmFyCitAZW5kIGRlZnZhcgogCiBAbm9kZSBPYmpmaWxlcyBJbiBQeXRo b24KIEBzdWJzdWJzZWN0aW9uIE9iamZpbGVzIEluIFB5dGhvbgpAQCAtMjI5 NDgsNyArMjI5NDgsNyBAQAogQGNvZGV7Z2RifSBtb2R1bGU6CiAKIEBmaW5k ZXggZ2RiLmN1cnJlbnRfb2JqZmlsZQotQGRlZnVuIGN1cnJlbnRfb2JqZmls ZQorQGRlZnVuIGdkYi5jdXJyZW50X29iamZpbGUgKCkKIFdoZW4gYXV0by1s b2FkaW5nIGEgUHl0aG9uIHNjcmlwdCAoQHB4cmVme0F1dG8tbG9hZGluZ30p LCBAdmFsdWV7R0RCTn0KIHNldHMgdGhlIGBgY3VycmVudCBvYmpmaWxlJycg dG8gdGhlIGNvcnJlc3BvbmRpbmcgb2JqZmlsZS4gIFRoaXMKIGZ1bmN0aW9u IHJldHVybnMgdGhlIGN1cnJlbnQgb2JqZmlsZS4gIElmIHRoZXJlIGlzIG5v IGN1cnJlbnQgb2JqZmlsZSwKQEAgLTIyOTU2LDcgKzIyOTU2LDcgQEAKIEBl bmQgZGVmdW4KIAogQGZpbmRleCBnZGIub2JqZmlsZXMKLUBkZWZ1biBvYmpm aWxlcworQGRlZnVuIGdkYi5vYmpmaWxlcyAoKQogUmV0dXJuIGEgc2VxdWVu Y2Ugb2YgYWxsIHRoZSBvYmpmaWxlcyBjdXJyZW50IGtub3duIHRvIEB2YWx1 ZXtHREJOfS4KIEB4cmVme09iamZpbGVzIEluIFB5dGhvbn0uCiBAZW5kIGRl ZnVuCkBAIC0yMjk2NCwyOCArMjI5NjQsMjggQEAKIEVhY2ggb2JqZmlsZSBp cyByZXByZXNlbnRlZCBieSBhbiBpbnN0YW5jZSBvZiB0aGUgQGNvZGV7Z2Ri Lk9iamZpbGV9CiBjbGFzcy4KIAotQGRlZml2YXIgT2JqZmlsZSBmaWxlbmFt ZQorQGRlZnZhciBPYmpmaWxlLmZpbGVuYW1lCiBUaGUgZmlsZSBuYW1lIG9m IHRoZSBvYmpmaWxlIGFzIGEgc3RyaW5nLgotQGVuZCBkZWZpdmFyCitAZW5k IGRlZnZhcgogCi1AZGVmaXZhciBPYmpmaWxlIHByZXR0eV9wcmludGVycwor QGRlZnZhciBPYmpmaWxlLnByZXR0eV9wcmludGVycwogVGhlIEBjb2Rle3By ZXR0eV9wcmludGVyc30gYXR0cmlidXRlIGlzIGEgbGlzdCBvZiBmdW5jdGlv bnMuICBJdCBpcwogdXNlZCB0byBsb29rIHVwIHByZXR0eS1wcmludGVycy4g IEEgQGNvZGV7VmFsdWV9IGlzIHBhc3NlZCB0byBlYWNoCiBmdW5jdGlvbiBp biBvcmRlcjsgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgQGNvZGV7Tm9uZX0s IHRoZW4gdGhlCiBzZWFyY2ggY29udGludWVzLiAgT3RoZXJ3aXNlLCB0aGUg cmV0dXJuIHZhbHVlIHNob3VsZCBiZSBhbiBvYmplY3QKIHdoaWNoIGlzIHVz ZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGlu ZyBBUEl9LCBmb3IgbW9yZQogaW5mb3JtYXRpb24uCi1AZW5kIGRlZml2YXIK K0BlbmQgZGVmdmFyCiAKIEEgQGNvZGV7Z2RiLk9iamZpbGV9IG9iamVjdCBo YXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgogCi1AZGVmbWV0aG9kIE9iamZp bGUgaXNfdmFsaWQKK0BkZWZ1biBPYmpmaWxlLmlzX3ZhbGlkICgpCiBSZXR1 cm5zIEBjb2Rle1RydWV9IGlmIHRoZSBAY29kZXtnZGIuT2JqZmlsZX0gb2Jq ZWN0IGlzIHZhbGlkLAogQGNvZGV7RmFsc2V9IGlmIG5vdC4gIEEgQGNvZGV7 Z2RiLk9iamZpbGV9IG9iamVjdCBjYW4gYmVjb21lIGludmFsaWQKIGlmIHRo ZSBvYmplY3QgZmlsZSBpdCByZWZlcnMgdG8gaXMgbm90IGxvYWRlZCBpbiBA dmFsdWV7R0RCTn0gYW55CiBsb25nZXIuICBBbGwgb3RoZXIgQGNvZGV7Z2Ri Lk9iamZpbGV9IG1ldGhvZHMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24KIGlm IGl0IGlzIGludmFsaWQgYXQgdGhlIHRpbWUgdGhlIG1ldGhvZCBpcyBjYWxs ZWQuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCiBAbm9kZSBGcmFt ZXMgSW4gUHl0aG9uCiBAc3Vic3Vic2VjdGlvbiBBY2Nlc3NpbmcgaW5mZXJp b3Igc3RhY2sgZnJhbWVzIGZyb20gUHl0aG9uLgpAQCAtMjMwMDksMTYgKzIz MDA5LDE2IEBACiBUaGUgZm9sbG93aW5nIGZyYW1lLXJlbGF0ZWQgZnVuY3Rp b25zIGFyZSBhdmFpbGFibGUgaW4gdGhlIEBjb2Rle2dkYn0gbW9kdWxlOgog CiBAZmluZGV4IGdkYi5zZWxlY3RlZF9mcmFtZQotQGRlZnVuIHNlbGVjdGVk X2ZyYW1lCitAZGVmdW4gZ2RiLnNlbGVjdGVkX2ZyYW1lICgpCiBSZXR1cm4g dGhlIHNlbGVjdGVkIGZyYW1lIG9iamVjdC4gIChAcHhyZWZ7U2VsZWN0aW9u LCxTZWxlY3RpbmcgYSBGcmFtZX0pLgogQGVuZCBkZWZ1bgogCiBAZmluZGV4 IGdkYi5uZXdlc3RfZnJhbWUKLUBkZWZ1biBuZXdlc3RfZnJhbWUKK0BkZWZ1 biBnZGIubmV3ZXN0X2ZyYW1lICgpCiBSZXR1cm4gdGhlIG5ld2VzdCBmcmFt ZSBvYmplY3QgZm9yIHRoZSBzZWxlY3RlZCB0aHJlYWQuCiBAZW5kIGRlZnVu CiAKLUBkZWZ1biBmcmFtZV9zdG9wX3JlYXNvbl9zdHJpbmcgcmVhc29uCitA ZGVmdW4gZ2RiLmZyYW1lX3N0b3BfcmVhc29uX3N0cmluZyAocmVhc29uKQog UmV0dXJuIGEgc3RyaW5nIGV4cGxhaW5pbmcgdGhlIHJlYXNvbiB3aHkgQHZh bHVle0dEQk59IHN0b3BwZWQgdW53aW5kaW5nCiBmcmFtZXMsIGFzIGV4cHJl c3NlZCBieSB0aGUgZ2l2ZW4gQHZhcntyZWFzb259IGNvZGUgKGFuIGludGVn ZXIsIHNlZSB0aGUKIEBjb2Rle3Vud2luZF9zdG9wX3JlYXNvbn0gbWV0aG9k IGZ1cnRoZXIgZG93biBpbiB0aGlzIHNlY3Rpb24pLgpAQCAtMjMwMjcsMTkg KzIzMDI3LDE5IEBACiBBIEBjb2Rle2dkYi5GcmFtZX0gb2JqZWN0IGhhcyB0 aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKIEB0YWJsZSBAY29kZQotQGRlZm1l dGhvZCBGcmFtZSBpc192YWxpZAorQGRlZnVuIEZyYW1lLmlzX3ZhbGlkICgp CiBSZXR1cm5zIHRydWUgaWYgdGhlIEBjb2Rle2dkYi5GcmFtZX0gb2JqZWN0 IGlzIHZhbGlkLCBmYWxzZSBpZiBub3QuCiBBIGZyYW1lIG9iamVjdCBjYW4g YmVjb21lIGludmFsaWQgaWYgdGhlIGZyYW1lIGl0IHJlZmVycyB0byBkb2Vz bid0CiBleGlzdCBhbnltb3JlIGluIHRoZSBpbmZlcmlvci4gIEFsbCBAY29k ZXtnZGIuRnJhbWV9IG1ldGhvZHMgd2lsbCB0aHJvdwogYW4gZXhjZXB0aW9u IGlmIGl0IGlzIGludmFsaWQgYXQgdGhlIHRpbWUgdGhlIG1ldGhvZCBpcyBj YWxsZWQuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0 aG9kIEZyYW1lIG5hbWUKK0BkZWZ1biBGcmFtZS5uYW1lICgpCiBSZXR1cm5z IHRoZSBmdW5jdGlvbiBuYW1lIG9mIHRoZSBmcmFtZSwgb3IgQGNvZGV7Tm9u ZX0gaWYgaXQgY2FuJ3QgYmUKIG9idGFpbmVkLgotQGVuZCBkZWZtZXRob2QK K0BlbmQgZGVmdW4KIAotQGRlZm1ldGhvZCBGcmFtZSB0eXBlCitAZGVmdW4g RnJhbWUudHlwZSAoKQogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgZnJhbWUu ICBUaGUgdmFsdWUgY2FuIGJlIG9uZSBvZjoKIEB0YWJsZSBAY29kZQogQGl0 ZW0gZ2RiLk5PUk1BTF9GUkFNRQpAQCAtMjMwNjQsNTQgKzIzMDY0LDU0IEBA CiBUaGlzIGlzIGxpa2UgQGNvZGV7Z2RiLk5PUk1BTF9GUkFNRX0sIGJ1dCBp dCBpcyBvbmx5IHVzZWQgZm9yIHRoZQogbmV3ZXN0IGZyYW1lLgogQGVuZCB0 YWJsZQotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhv ZCBGcmFtZSB1bndpbmRfc3RvcF9yZWFzb24KK0BkZWZ1biBGcmFtZS51bndp bmRfc3RvcF9yZWFzb24gKCkKIFJldHVybiBhbiBpbnRlZ2VyIHJlcHJlc2Vu dGluZyB0aGUgcmVhc29uIHdoeSBpdCdzIG5vdCBwb3NzaWJsZSB0byBmaW5k CiBtb3JlIGZyYW1lcyB0b3dhcmQgdGhlIG91dGVybW9zdCBmcmFtZS4gIFVz ZQogQGNvZGV7Z2RiLmZyYW1lX3N0b3BfcmVhc29uX3N0cmluZ30gdG8gY29u dmVydCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhpcwogZnVuY3Rpb24gdG8g YSBzdHJpbmcuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVm bWV0aG9kIEZyYW1lIHBjCitAZGVmdW4gRnJhbWUucGMgKCkKIFJldHVybnMg dGhlIGZyYW1lJ3MgcmVzdW1lIGFkZHJlc3MuCi1AZW5kIGRlZm1ldGhvZAor QGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEZyYW1lIGJsb2NrCitAZGVmdW4g RnJhbWUuYmxvY2sgKCkKIFJldHVybiB0aGUgZnJhbWUncyBjb2RlIGJsb2Nr LiAgQHhyZWZ7QmxvY2tzIEluIFB5dGhvbn0uCi1AZW5kIGRlZm1ldGhvZAor QGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEZyYW1lIGZ1bmN0aW9uCitAZGVm dW4gRnJhbWUuZnVuY3Rpb24gKCkKIFJldHVybiB0aGUgc3ltYm9sIGZvciB0 aGUgZnVuY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGlzIGZyYW1lLgogQHhy ZWZ7U3ltYm9scyBJbiBQeXRob259LgotQGVuZCBkZWZtZXRob2QKK0BlbmQg ZGVmdW4KIAotQGRlZm1ldGhvZCBGcmFtZSBvbGRlcgorQGRlZnVuIEZyYW1l Lm9sZGVyICgpCiBSZXR1cm4gdGhlIGZyYW1lIHRoYXQgY2FsbGVkIHRoaXMg ZnJhbWUuCi1AZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0 aG9kIEZyYW1lIG5ld2VyCitAZGVmdW4gRnJhbWUubmV3ZXIgKCkKIFJldHVy biB0aGUgZnJhbWUgY2FsbGVkIGJ5IHRoaXMgZnJhbWUuCi1AZW5kIGRlZm1l dGhvZAorQGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEZyYW1lIGZpbmRfc2Fs CitAZGVmdW4gRnJhbWUuZmluZF9zYWwgKCkKIFJldHVybiB0aGUgZnJhbWUn cyBzeW10YWIgYW5kIGxpbmUgb2JqZWN0LgogQHhyZWZ7U3ltYm9sIFRhYmxl cyBJbiBQeXRob259LgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAot QGRlZm1ldGhvZCBGcmFtZSByZWFkX3ZhciB2YXJpYWJsZSBAcntbfWJsb2Nr QHJ7XX0KK0BkZWZ1biBGcmFtZS5yZWFkX3ZhciAodmFyaWFibGUgQHJ7W30s IGJsb2NrQHJ7XX0pCiBSZXR1cm4gdGhlIHZhbHVlIG9mIEB2YXJ7dmFyaWFi bGV9IGluIHRoaXMgZnJhbWUuICBJZiB0aGUgb3B0aW9uYWwKIGFyZ3VtZW50 IEB2YXJ7YmxvY2t9IGlzIHByb3ZpZGVkLCBzZWFyY2ggZm9yIHRoZSB2YXJp YWJsZSBmcm9tIHRoYXQKIGJsb2NrOyBvdGhlcndpc2Ugc3RhcnQgYXQgdGhl IGZyYW1lJ3MgY3VycmVudCBibG9jayAod2hpY2ggaXMKIGRldGVybWluZWQg YnkgdGhlIGZyYW1lJ3MgY3VycmVudCBwcm9ncmFtIGNvdW50ZXIpLiAgQHZh cnt2YXJpYWJsZX0KIG11c3QgYmUgYSBzdHJpbmcgb3IgYSBAY29kZXtnZGIu U3ltYm9sfSBvYmplY3QuICBAdmFye2Jsb2NrfSBtdXN0IGJlIGEKIEBjb2Rl e2dkYi5CbG9ja30gb2JqZWN0LgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVm dW4KIAotQGRlZm1ldGhvZCBGcmFtZSBzZWxlY3QKK0BkZWZ1biBGcmFtZS5z ZWxlY3QgKCkKIFNldCB0aGlzIGZyYW1lIHRvIGJlIHRoZSBzZWxlY3RlZCBm cmFtZS4gIEB4cmVme1N0YWNrLCAsRXhhbWluaW5nIHRoZQogU3RhY2t9Lgot QGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIEBlbmQgdGFibGUKIAogQG5v ZGUgQmxvY2tzIEluIFB5dGhvbgpAQCAtMjMxMzIsNyArMjMxMzIsNyBAQAog bW9kdWxlOgogCiBAZmluZGV4IGdkYi5ibG9ja19mb3JfcGMKLUBkZWZ1biBi bG9ja19mb3JfcGMgcGMKK0BkZWZ1biBnZGIuYmxvY2tfZm9yX3BjIChwYykK IFJldHVybiB0aGUgQGNvZGV7Z2RiLkJsb2NrfSBjb250YWluaW5nIHRoZSBn aXZlbiBAdmFye3BjfSB2YWx1ZS4gIElmIHRoZQogYmxvY2sgY2Fubm90IGJl IGZvdW5kIGZvciB0aGUgQHZhcntwY30gdmFsdWUgc3BlY2lmaWVkLCB0aGUg ZnVuY3Rpb24KIHdpbGwgcmV0dXJuIEBjb2Rle05vbmV9LgpAQCAtMjMxNDEs NyArMjMxNDEsNyBAQAogQSBAY29kZXtnZGIuQmxvY2t9IG9iamVjdCBoYXMg dGhlIGZvbGxvd2luZyBtZXRob2RzOgogCiBAdGFibGUgQGNvZGUKLUBkZWZt ZXRob2QgQmxvY2sgaXNfdmFsaWQKK0BkZWZ1biBCbG9jay5pc192YWxpZCAo KQogUmV0dXJucyBAY29kZXtUcnVlfSBpZiB0aGUgQGNvZGV7Z2RiLkJsb2Nr fSBvYmplY3QgaXMgdmFsaWQsCiBAY29kZXtGYWxzZX0gaWYgbm90LiAgQSBi bG9jayBvYmplY3QgY2FuIGJlY29tZSBpbnZhbGlkIGlmIHRoZSBibG9jayBp dAogcmVmZXJzIHRvIGRvZXNuJ3QgZXhpc3QgYW55bW9yZSBpbiB0aGUgaW5m ZXJpb3IuICBBbGwgb3RoZXIKQEAgLTIzMTQ5LDMwICsyMzE0OSwzMCBAQAog dGhlIHRpbWUgdGhlIG1ldGhvZCBpcyBjYWxsZWQuICBUaGlzIG1ldGhvZCBp cyBhbHNvIG1hZGUgYXZhaWxhYmxlIHRvCiB0aGUgUHl0aG9uIGl0ZXJhdG9y IG9iamVjdCB0aGF0IEBjb2Rle2dkYi5CbG9ja30gcHJvdmlkZXMgaW4gYW4g aXRlcmF0aW9uCiBjb250ZXh0IGFuZCB2aWEgdGhlIFB5dGhvbiBAY29kZXtp dGVyfSBidWlsdC1pbiBmdW5jdGlvbi4KLUBlbmQgZGVmbWV0aG9kCitAZW5k IGRlZnVuCiBAZW5kIHRhYmxlCiAKIEEgQGNvZGV7Z2RiLkJsb2NrfSBvYmpl Y3QgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKIAogQHRhYmxlIEBj b2RlCi1AZGVmaXZhciBCbG9jayBzdGFydAorQGRlZnZhciBCbG9jay5zdGFy dAogVGhlIHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIGJsb2NrLiAgVGhpcyBhdHRy aWJ1dGUgaXMgbm90IHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRl ZnZhcgogCi1AZGVmaXZhciBCbG9jayBlbmQKK0BkZWZ2YXIgQmxvY2suZW5k CiBUaGUgZW5kIGFkZHJlc3Mgb2YgdGhlIGJsb2NrLiAgVGhpcyBhdHRyaWJ1 dGUgaXMgbm90IHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZh cgogCi1AZGVmaXZhciBCbG9jayBmdW5jdGlvbgorQGRlZnZhciBCbG9jay5m dW5jdGlvbgogVGhlIG5hbWUgb2YgdGhlIGJsb2NrIHJlcHJlc2VudGVkIGFz IGEgQGNvZGV7Z2RiLlN5bWJvbH0uICBJZiB0aGUKIGJsb2NrIGlzIG5vdCBu YW1lZCwgdGhlbiB0aGlzIGF0dHJpYnV0ZSBob2xkcyBAY29kZXtOb25lfS4g IFRoaXMKIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2 YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIEJsb2NrIHN1cGVyYmxvY2sK K0BkZWZ2YXIgQmxvY2suc3VwZXJibG9jawogVGhlIGJsb2NrIGNvbnRhaW5p bmcgdGhpcyBibG9jay4gIElmIHRoaXMgcGFyZW50IGJsb2NrIGRvZXMgbm90 IGV4aXN0LAogdGhpcyBhdHRyaWJ1dGUgaG9sZHMgQGNvZGV7Tm9uZX0uICBU aGlzIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2YXIK K0BlbmQgZGVmdmFyCiBAZW5kIHRhYmxlCiAKIEBub2RlIFN5bWJvbHMgSW4g UHl0aG9uCkBAIC0yMzE5MCw3ICsyMzE5MCw3IEBACiBtb2R1bGU6CiAKIEBm aW5kZXggZ2RiLmxvb2t1cF9zeW1ib2wKLUBkZWZ1biBsb29rdXBfc3ltYm9s IG5hbWUgQHJ7W31ibG9ja0Bye119IEBye1t9ZG9tYWluQHJ7XX0KK0BkZWZ1 biBnZGIubG9va3VwX3N5bWJvbCAobmFtZSBAcntbfSwgYmxvY2sgQHJ7W30s IGRvbWFpbkBye119QHJ7XX0pCiBUaGlzIGZ1bmN0aW9uIHNlYXJjaGVzIGZv ciBhIHN5bWJvbCBieSBuYW1lLiAgVGhlIHNlYXJjaCBzY29wZSBjYW4gYmUK IHJlc3RyaWN0ZWQgdG8gdGhlIHBhcmFtZXRlcnMgZGVmaW5lZCBpbiB0aGUg b3B0aW9uYWwgZG9tYWluIGFuZCBibG9jawogYXJndW1lbnRzLgpAQCAtMjMy MTQsNyArMjMyMTQsNyBAQAogQGVuZCBkZWZ1bgogCiBAZmluZGV4IGdkYi5s b29rdXBfZ2xvYmFsX3N5bWJvbAotQGRlZnVuIGxvb2t1cF9nbG9iYWxfc3lt Ym9sIG5hbWUgQHJ7W31kb21haW5AcntdfQorQGRlZnVuIGdkYi5sb29rdXBf Z2xvYmFsX3N5bWJvbCAobmFtZSBAcntbfSwgZG9tYWluQHJ7XX0pCiBUaGlz IGZ1bmN0aW9uIHNlYXJjaGVzIGZvciBhIGdsb2JhbCBzeW1ib2wgYnkgbmFt ZS4KIFRoZSBzZWFyY2ggc2NvcGUgY2FuIGJlIHJlc3RyaWN0ZWQgdG8gYnkg dGhlIGRvbWFpbiBhcmd1bWVudC4KIApAQCAtMjMyMzAsNjYgKzIzMjMwLDY2 IEBACiBBIEBjb2Rle2dkYi5TeW1ib2x9IG9iamVjdCBoYXMgdGhlIGZvbGxv d2luZyBhdHRyaWJ1dGVzOgogCiBAdGFibGUgQGNvZGUKLUBkZWZpdmFyIFN5 bWJvbCB0eXBlCitAZGVmdmFyIFN5bWJvbC50eXBlCiBUaGUgdHlwZSBvZiB0 aGUgc3ltYm9sIG9yIEBjb2Rle05vbmV9IGlmIG5vIHR5cGUgaXMgcmVjb3Jk ZWQuCiBUaGlzIGF0dHJpYnV0ZSBpcyByZXByZXNlbnRlZCBhcyBhIEBjb2Rl e2dkYi5UeXBlfSBvYmplY3QuCiBAeHJlZntUeXBlcyBJbiBQeXRob259LiAg VGhpcyBhdHRyaWJ1dGUgaXMgbm90IHdyaXRhYmxlLgotQGVuZCBkZWZpdmFy CitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBTeW1ib2wgc3ltdGFiCitAZGVm dmFyIFN5bWJvbC5zeW10YWIKIFRoZSBzeW1ib2wgdGFibGUgaW4gd2hpY2gg dGhlIHN5bWJvbCBhcHBlYXJzLiAgVGhpcyBhdHRyaWJ1dGUgaXMKIHJlcHJl c2VudGVkIGFzIGEgQGNvZGV7Z2RiLlN5bXRhYn0gb2JqZWN0LiAgQHhyZWZ7 U3ltYm9sIFRhYmxlcyBJbgogUHl0aG9ufS4gIFRoaXMgYXR0cmlidXRlIGlz IG5vdCB3cml0YWJsZS4KLUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIKIAot QGRlZml2YXIgU3ltYm9sIG5hbWUKK0BkZWZ2YXIgU3ltYm9sLm5hbWUKIFRo ZSBuYW1lIG9mIHRoZSBzeW1ib2wgYXMgYSBzdHJpbmcuICBUaGlzIGF0dHJp YnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVm dmFyCiAKLUBkZWZpdmFyIFN5bWJvbCBsaW5rYWdlX25hbWUKK0BkZWZ2YXIg U3ltYm9sLmxpbmthZ2VfbmFtZQogVGhlIG5hbWUgb2YgdGhlIHN5bWJvbCwg YXMgdXNlZCBieSB0aGUgbGlua2VyIChpLmUuLCBtYXkgYmUgbWFuZ2xlZCku CiBUaGlzIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2 YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIFN5bWJvbCBwcmludF9uYW1l CitAZGVmdmFyIFN5bWJvbC5wcmludF9uYW1lCiBUaGUgbmFtZSBvZiB0aGUg c3ltYm9sIGluIGEgZm9ybSBzdWl0YWJsZSBmb3Igb3V0cHV0LiAgVGhpcyBp cyBlaXRoZXIKIEBjb2Rle25hbWV9IG9yIEBjb2Rle2xpbmthZ2VfbmFtZX0s IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyCiBhc2tlZCBAdmFsdWV7 R0RCTn0gdG8gZGlzcGxheSBkZW1hbmdsZWQgb3IgbWFuZ2xlZCBuYW1lcy4K LUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIKIAotQGRlZml2YXIgU3ltYm9s IGFkZHJfY2xhc3MKK0BkZWZ2YXIgU3ltYm9sLmFkZHJfY2xhc3MKIFRoZSBh ZGRyZXNzIGNsYXNzIG9mIHRoZSBzeW1ib2wuICBUaGlzIGNsYXNzaWZpZXMg aG93IHRvIGZpbmQgdGhlIHZhbHVlCiBvZiBhIHN5bWJvbC4gIEVhY2ggYWRk cmVzcyBjbGFzcyBpcyBhIGNvbnN0YW50IGRlZmluZWQgaW4gdGhlCiBAY29k ZXtnZGJ9IG1vZHVsZSBhbmQgZGVzY3JpYmVkIGxhdGVyIGluIHRoaXMgY2hh cHRlci4KLUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIKIAotQGRlZml2YXIg U3ltYm9sIGlzX2FyZ3VtZW50CitAZGVmdmFyIFN5bWJvbC5pc19hcmd1bWVu dAogQGNvZGV7VHJ1ZX0gaWYgdGhlIHN5bWJvbCBpcyBhbiBhcmd1bWVudCBv ZiBhIGZ1bmN0aW9uLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCi1A ZGVmaXZhciBTeW1ib2wgaXNfY29uc3RhbnQKK0BkZWZ2YXIgU3ltYm9sLmlz X2NvbnN0YW50CiBAY29kZXtUcnVlfSBpZiB0aGUgc3ltYm9sIGlzIGEgY29u c3RhbnQuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFy IFN5bWJvbCBpc19mdW5jdGlvbgorQGRlZnZhciBTeW1ib2wuaXNfZnVuY3Rp b24KIEBjb2Rle1RydWV9IGlmIHRoZSBzeW1ib2wgaXMgYSBmdW5jdGlvbiBv ciBhIG1ldGhvZC4KLUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIKIAotQGRl Zml2YXIgU3ltYm9sIGlzX3ZhcmlhYmxlCitAZGVmdmFyIFN5bWJvbC5pc192 YXJpYWJsZQogQGNvZGV7VHJ1ZX0gaWYgdGhlIHN5bWJvbCBpcyBhIHZhcmlh YmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogQGVuZCB0YWJsZQog CiBBIEBjb2Rle2dkYi5TeW1ib2x9IG9iamVjdCBoYXMgdGhlIGZvbGxvd2lu ZyBtZXRob2RzOgogCiBAdGFibGUgQGNvZGUKLUBkZWZtZXRob2QgU3ltYm9s IGlzX3ZhbGlkCitAZGVmdW4gU3ltYm9sLmlzX3ZhbGlkICgpCiBSZXR1cm5z IEBjb2Rle1RydWV9IGlmIHRoZSBAY29kZXtnZGIuU3ltYm9sfSBvYmplY3Qg aXMgdmFsaWQsCiBAY29kZXtGYWxzZX0gaWYgbm90LiAgQSBAY29kZXtnZGIu U3ltYm9sfSBvYmplY3QgY2FuIGJlY29tZSBpbnZhbGlkIGlmCiB0aGUgc3lt Ym9sIGl0IHJlZmVycyB0byBkb2VzIG5vdCBleGlzdCBpbiBAdmFsdWV7R0RC Tn0gYW55IGxvbmdlci4KIEFsbCBvdGhlciBAY29kZXtnZGIuU3ltYm9sfSBt ZXRob2RzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGl0IGlzCiBpbnZh bGlkIGF0IHRoZSB0aW1lIHRoZSBtZXRob2QgaXMgY2FsbGVkLgotQGVuZCBk ZWZtZXRob2QKK0BlbmQgZGVmdW4KIEBlbmQgdGFibGUKIAogVGhlIGF2YWls YWJsZSBkb21haW4gY2F0ZWdvcmllcyBpbiBAY29kZXtnZGIuU3ltYm9sfSBh cmUgcmVwcmVzZW50ZWQKQEAgLTIzMjk4LDM1ICsyMzI5OCwzNSBAQAogQHRh YmxlIEBjb2RlCiBAZmluZGV4IFNZTUJPTF9VTkRFRl9ET01BSU4KIEBmaW5k ZXggZ2RiLlNZTUJPTF9VTkRFRl9ET01BSU4KLUBpdGVtIFNZTUJPTF9VTkRF Rl9ET01BSU4KK0BpdGVtIGdkYi5TWU1CT0xfVU5ERUZfRE9NQUlOCiBUaGlz IGlzIHVzZWQgd2hlbiBhIGRvbWFpbiBoYXMgbm90IGJlZW4gZGlzY292ZXJl ZCBvciBub25lIG9mIHRoZQogZm9sbG93aW5nIGRvbWFpbnMgYXBwbHkuICBU aGlzIHVzdWFsbHkgaW5kaWNhdGVzIGFuIGVycm9yIGVpdGhlcgogaW4gdGhl IHN5bWJvbCBpbmZvcm1hdGlvbiBvciBpbiBAdmFsdWV7R0RCTn0ncyBoYW5k bGluZyBvZiBzeW1ib2xzLgogQGZpbmRleCBTWU1CT0xfVkFSX0RPTUFJTgog QGZpbmRleCBnZGIuU1lNQk9MX1ZBUl9ET01BSU4KLUBpdGVtIFNZTUJPTF9W QVJfRE9NQUlOCitAaXRlbSBnZGIuU1lNQk9MX1ZBUl9ET01BSU4KIFRoaXMg ZG9tYWluIGNvbnRhaW5zIHZhcmlhYmxlcywgZnVuY3Rpb24gbmFtZXMsIHR5 cGVkZWYgbmFtZXMgYW5kIGVudW0KIHR5cGUgdmFsdWVzLgogQGZpbmRleCBT WU1CT0xfU1RSVUNUX0RPTUFJTgogQGZpbmRleCBnZGIuU1lNQk9MX1NUUlVD VF9ET01BSU4KLUBpdGVtIFNZTUJPTF9TVFJVQ1RfRE9NQUlOCitAaXRlbSBn ZGIuU1lNQk9MX1NUUlVDVF9ET01BSU4KIFRoaXMgZG9tYWluIGhvbGRzIHN0 cnVjdCwgdW5pb24gYW5kIGVudW0gdHlwZSBuYW1lcy4KIEBmaW5kZXggU1lN Qk9MX0xBQkVMX0RPTUFJTgogQGZpbmRleCBnZGIuU1lNQk9MX0xBQkVMX0RP TUFJTgotQGl0ZW0gU1lNQk9MX0xBQkVMX0RPTUFJTgorQGl0ZW0gZ2RiLlNZ TUJPTF9MQUJFTF9ET01BSU4KIFRoaXMgZG9tYWluIGNvbnRhaW5zIG5hbWVz IG9mIGxhYmVscyAoZm9yIGdvdG9zKS4KIEBmaW5kZXggU1lNQk9MX1ZBUklB QkxFU19ET01BSU4KIEBmaW5kZXggZ2RiLlNZTUJPTF9WQVJJQUJMRVNfRE9N QUlOCi1AaXRlbSBTWU1CT0xfVkFSSUFCTEVTX0RPTUFJTgorQGl0ZW0gZ2Ri LlNZTUJPTF9WQVJJQUJMRVNfRE9NQUlOCiBUaGlzIGRvbWFpbiBob2xkcyBh IHN1YnNldCBvZiB0aGUgQGNvZGV7U1lNQk9MU19WQVJfRE9NQUlOfTsgaXQK IGNvbnRhaW5zIGV2ZXJ5dGhpbmcgbWludXMgZnVuY3Rpb25zIGFuZCB0eXBl cy4KIEBmaW5kZXggU1lNQk9MX0ZVTkNUSU9OU19ET01BSU4KIEBmaW5kZXgg Z2RiLlNZTUJPTF9GVU5DVElPTlNfRE9NQUlOCi1AaXRlbSBTWU1CT0xfRlVO Q1RJT05fRE9NQUlOCitAaXRlbSBnZGIuU1lNQk9MX0ZVTkNUSU9OX0RPTUFJ TgogVGhpcyBkb21haW4gY29udGFpbnMgYWxsIGZ1bmN0aW9ucy4KIEBmaW5k ZXggU1lNQk9MX1RZUEVTX0RPTUFJTgogQGZpbmRleCBnZGIuU1lNQk9MX1RZ UEVTX0RPTUFJTgotQGl0ZW0gU1lNQk9MX1RZUEVTX0RPTUFJTgorQGl0ZW0g Z2RiLlNZTUJPTF9UWVBFU19ET01BSU4KIFRoaXMgZG9tYWluIGNvbnRhaW5z IGFsbCB0eXBlcy4KIEBlbmQgdGFibGUKIApAQCAtMjMzMzYsNjggKzIzMzM2 LDY4IEBACiBAdGFibGUgQGNvZGUKIEBmaW5kZXggU1lNQk9MX0xPQ19VTkRF RgogQGZpbmRleCBnZGIuU1lNQk9MX0xPQ19VTkRFRgotQGl0ZW0gU1lNQk9M X0xPQ19VTkRFRgorQGl0ZW0gZ2RiLlNZTUJPTF9MT0NfVU5ERUYKIElmIHRo aXMgaXMgcmV0dXJuZWQgYnkgYWRkcmVzcyBjbGFzcywgaXQgaW5kaWNhdGVz IGFuIGVycm9yIGVpdGhlciBpbgogdGhlIHN5bWJvbCBpbmZvcm1hdGlvbiBv ciBpbiBAdmFsdWV7R0RCTn0ncyBoYW5kbGluZyBvZiBzeW1ib2xzLgogQGZp bmRleCBTWU1CT0xfTE9DX0NPTlNUCiBAZmluZGV4IGdkYi5TWU1CT0xfTE9D X0NPTlNUCi1AaXRlbSBTWU1CT0xfTE9DX0NPTlNUCitAaXRlbSBnZGIuU1lN Qk9MX0xPQ19DT05TVAogVmFsdWUgaXMgY29uc3RhbnQgaW50LgogQGZpbmRl eCBTWU1CT0xfTE9DX1NUQVRJQwogQGZpbmRleCBnZGIuU1lNQk9MX0xPQ19T VEFUSUMKLUBpdGVtIFNZTUJPTF9MT0NfU1RBVElDCitAaXRlbSBnZGIuU1lN Qk9MX0xPQ19TVEFUSUMKIFZhbHVlIGlzIGF0IGEgZml4ZWQgYWRkcmVzcy4K IEBmaW5kZXggU1lNQk9MX0xPQ19SRUdJU1RFUgogQGZpbmRleCBnZGIuU1lN Qk9MX0xPQ19SRUdJU1RFUgotQGl0ZW0gU1lNQk9MX0xPQ19SRUdJU1RFUgor QGl0ZW0gZ2RiLlNZTUJPTF9MT0NfUkVHSVNURVIKIFZhbHVlIGlzIGluIGEg cmVnaXN0ZXIuCiBAZmluZGV4IFNZTUJPTF9MT0NfQVJHCiBAZmluZGV4IGdk Yi5TWU1CT0xfTE9DX0FSRwotQGl0ZW0gU1lNQk9MX0xPQ19BUkcKK0BpdGVt IGdkYi5TWU1CT0xfTE9DX0FSRwogVmFsdWUgaXMgYW4gYXJndW1lbnQuICBU aGlzIHZhbHVlIGlzIGF0IHRoZSBvZmZzZXQgc3RvcmVkIHdpdGhpbiB0aGUK IHN5bWJvbCBpbnNpZGUgdGhlIGZyYW1lJ3MgYXJndW1lbnQgbGlzdC4KIEBm aW5kZXggU1lNQk9MX0xPQ19SRUZfQVJHCiBAZmluZGV4IGdkYi5TWU1CT0xf TE9DX1JFRl9BUkcKLUBpdGVtIFNZTUJPTF9MT0NfUkVGX0FSRworQGl0ZW0g Z2RiLlNZTUJPTF9MT0NfUkVGX0FSRwogVmFsdWUgYWRkcmVzcyBpcyBzdG9y ZWQgaW4gdGhlIGZyYW1lJ3MgYXJndW1lbnQgbGlzdC4gIEp1c3QgbGlrZQog QGNvZGV7TE9DX0FSR30gZXhjZXB0IHRoYXQgdGhlIHZhbHVlJ3MgYWRkcmVz cyBpcyBzdG9yZWQgYXQgdGhlCiBvZmZzZXQsIG5vdCB0aGUgdmFsdWUgaXRz ZWxmLgogQGZpbmRleCBTWU1CT0xfTE9DX1JFR1BBUk1fQUREUgogQGZpbmRl eCBnZGIuU1lNQk9MX0xPQ19SRUdQQVJNX0FERFIKLUBpdGVtIFNZTUJPTF9M T0NfUkVHUEFSTV9BRERSCitAaXRlbSBnZGIuU1lNQk9MX0xPQ19SRUdQQVJN X0FERFIKIFZhbHVlIGlzIGEgc3BlY2lmaWVkIHJlZ2lzdGVyLiAgSnVzdCBs aWtlIEBjb2Rle0xPQ19SRUdJU1RFUn0gZXhjZXB0CiB0aGUgcmVnaXN0ZXIg aG9sZHMgdGhlIGFkZHJlc3Mgb2YgdGhlIGFyZ3VtZW50IGluc3RlYWQgb2Yg dGhlIGFyZ3VtZW50CiBpdHNlbGYuCiBAZmluZGV4IFNZTUJPTF9MT0NfTE9D QUwKIEBmaW5kZXggZ2RiLlNZTUJPTF9MT0NfTE9DQUwKLUBpdGVtIFNZTUJP TF9MT0NfTE9DQUwKK0BpdGVtIGdkYi5TWU1CT0xfTE9DX0xPQ0FMCiBWYWx1 ZSBpcyBhIGxvY2FsIHZhcmlhYmxlLgogQGZpbmRleCBTWU1CT0xfTE9DX1RZ UEVERUYKIEBmaW5kZXggZ2RiLlNZTUJPTF9MT0NfVFlQRURFRgotQGl0ZW0g U1lNQk9MX0xPQ19UWVBFREVGCitAaXRlbSBnZGIuU1lNQk9MX0xPQ19UWVBF REVGCiBWYWx1ZSBub3QgdXNlZC4gIFN5bWJvbHMgaW4gdGhlIGRvbWFpbiBA Y29kZXtTWU1CT0xfU1RSVUNUX0RPTUFJTn0gYWxsCiBoYXZlIHRoaXMgY2xh c3MuCiBAZmluZGV4IFNZTUJPTF9MT0NfQkxPQ0sKIEBmaW5kZXggZ2RiLlNZ TUJPTF9MT0NfQkxPQ0sKLUBpdGVtIFNZTUJPTF9MT0NfQkxPQ0sKK0BpdGVt IGdkYi5TWU1CT0xfTE9DX0JMT0NLCiBWYWx1ZSBpcyBhIGJsb2NrLgogQGZp bmRleCBTWU1CT0xfTE9DX0NPTlNUX0JZVEVTCiBAZmluZGV4IGdkYi5TWU1C T0xfTE9DX0NPTlNUX0JZVEVTCi1AaXRlbSBTWU1CT0xfTE9DX0NPTlNUX0JZ VEVTCitAaXRlbSBnZGIuU1lNQk9MX0xPQ19DT05TVF9CWVRFUwogVmFsdWUg aXMgYSBieXRlLXNlcXVlbmNlLgogQGZpbmRleCBTWU1CT0xfTE9DX1VOUkVT T0xWRUQKIEBmaW5kZXggZ2RiLlNZTUJPTF9MT0NfVU5SRVNPTFZFRAotQGl0 ZW0gU1lNQk9MX0xPQ19VTlJFU09MVkVECitAaXRlbSBnZGIuU1lNQk9MX0xP Q19VTlJFU09MVkVECiBWYWx1ZSBpcyBhdCBhIGZpeGVkIGFkZHJlc3MsIGJ1 dCB0aGUgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUgaGFzIHRvIGJlCiBkZXRl cm1pbmVkIGZyb20gdGhlIG1pbmltYWwgc3ltYm9sIHRhYmxlIHdoZW5ldmVy IHRoZSB2YXJpYWJsZSBpcwogcmVmZXJlbmNlZC4KIEBmaW5kZXggU1lNQk9M X0xPQ19PUFRJTUlaRURfT1VUCiBAZmluZGV4IGdkYi5TWU1CT0xfTE9DX09Q VElNSVpFRF9PVVQKLUBpdGVtIFNZTUJPTF9MT0NfT1BUSU1JWkVEX09VVAor QGl0ZW0gZ2RiLlNZTUJPTF9MT0NfT1BUSU1JWkVEX09VVAogVGhlIHZhbHVl IGRvZXMgbm90IGFjdHVhbGx5IGV4aXN0IGluIHRoZSBwcm9ncmFtLgogQGZp bmRleCBTWU1CT0xfTE9DX0NPTVBVVEVECiBAZmluZGV4IGdkYi5TWU1CT0xf TE9DX0NPTVBVVEVECi1AaXRlbSBTWU1CT0xfTE9DX0NPTVBVVEVECitAaXRl bSBnZGIuU1lNQk9MX0xPQ19DT01QVVRFRAogVGhlIHZhbHVlJ3MgYWRkcmVz cyBpcyBhIGNvbXB1dGVkIGxvY2F0aW9uLgogQGVuZCB0YWJsZQogCkBAIC0y MzQyMCw2MiArMjM0MjAsNjIgQEAKIEEgQGNvZGV7Z2RiLlN5bXRhYl9hbmRf bGluZX0gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CiAK IEB0YWJsZSBAY29kZQotQGRlZml2YXIgU3ltdGFiX2FuZF9saW5lIHN5bXRh YgorQGRlZnZhciBTeW10YWJfYW5kX2xpbmUuc3ltdGFiCiBUaGUgc3ltYm9s IHRhYmxlIG9iamVjdCAoQGNvZGV7Z2RiLlN5bXRhYn0pIGZvciB0aGlzIGZy YW1lLgogVGhpcyBhdHRyaWJ1dGUgaXMgbm90IHdyaXRhYmxlLgotQGVuZCBk ZWZpdmFyCitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBTeW10YWJfYW5kX2xp bmUgcGMKK0BkZWZ2YXIgU3ltdGFiX2FuZF9saW5lLnBjCiBJbmRpY2F0ZXMg dGhlIGN1cnJlbnQgcHJvZ3JhbSBjb3VudGVyIGFkZHJlc3MuICBUaGlzIGF0 dHJpYnV0ZSBpcyBub3QKIHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5k IGRlZnZhcgogCi1AZGVmaXZhciBTeW10YWJfYW5kX2xpbmUgbGluZQorQGRl ZnZhciBTeW10YWJfYW5kX2xpbmUubGluZQogSW5kaWNhdGVzIHRoZSBjdXJy ZW50IGxpbmUgbnVtYmVyIGZvciB0aGlzIG9iamVjdC4gIFRoaXMKIGF0dHJp YnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVm dmFyCiBAZW5kIHRhYmxlCiAKIEEgQGNvZGV7Z2RiLlN5bXRhYl9hbmRfbGlu ZX0gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKIEB0YWJs ZSBAY29kZQotQGRlZm1ldGhvZCBTeW10YWJfYW5kX2xpbmUgaXNfdmFsaWQK K0BkZWZ1biBTeW10YWJfYW5kX2xpbmUuaXNfdmFsaWQgKCkKIFJldHVybnMg QGNvZGV7VHJ1ZX0gaWYgdGhlIEBjb2Rle2dkYi5TeW10YWJfYW5kX2xpbmV9 IG9iamVjdCBpcyB2YWxpZCwKIEBjb2Rle0ZhbHNlfSBpZiBub3QuICBBIEBj b2Rle2dkYi5TeW10YWJfYW5kX2xpbmV9IG9iamVjdCBjYW4gYmVjb21lCiBp bnZhbGlkIGlmIHRoZSBTeW1ib2wgdGFibGUgYW5kIGxpbmUgb2JqZWN0IGl0 IHJlZmVycyB0byBkb2VzIG5vdAogZXhpc3QgaW4gQHZhbHVle0dEQk59IGFu eSBsb25nZXIuICBBbGwgb3RoZXIKIEBjb2Rle2dkYi5TeW10YWJfYW5kX2xp bmV9IG1ldGhvZHMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgaXQgaXMK IGludmFsaWQgYXQgdGhlIHRpbWUgdGhlIG1ldGhvZCBpcyBjYWxsZWQuCi1A ZW5kIGRlZm1ldGhvZAorQGVuZCBkZWZ1bgogQGVuZCB0YWJsZQogCiBBIEBj b2Rle2dkYi5TeW10YWJ9IG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBhdHRy aWJ1dGVzOgogCiBAdGFibGUgQGNvZGUKLUBkZWZpdmFyIFN5bXRhYiBmaWxl bmFtZQorQGRlZnZhciBTeW10YWIuZmlsZW5hbWUKIFRoZSBzeW1ib2wgdGFi bGUncyBzb3VyY2UgZmlsZW5hbWUuICBUaGlzIGF0dHJpYnV0ZSBpcyBub3Qg d3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZp dmFyIFN5bXRhYiBvYmpmaWxlCitAZGVmdmFyIFN5bXRhYi5vYmpmaWxlCiBU aGUgc3ltYm9sIHRhYmxlJ3MgYmFja2luZyBvYmplY3QgZmlsZS4gIEB4cmVm e09iamZpbGVzIEluIFB5dGhvbn0uCiBUaGlzIGF0dHJpYnV0ZSBpcyBub3Qg d3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiBAZW5kIHRh YmxlCiAKIEEgQGNvZGV7Z2RiLlN5bXRhYn0gb2JqZWN0IGhhcyB0aGUgZm9s bG93aW5nIG1ldGhvZHM6CiAKIEB0YWJsZSBAY29kZQotQGRlZm1ldGhvZCBT eW10YWIgaXNfdmFsaWQKK0BkZWZ1biBTeW10YWIuaXNfdmFsaWQgKCkKIFJl dHVybnMgQGNvZGV7VHJ1ZX0gaWYgdGhlIEBjb2Rle2dkYi5TeW10YWJ9IG9i amVjdCBpcyB2YWxpZCwKIEBjb2Rle0ZhbHNlfSBpZiBub3QuICBBIEBjb2Rl e2dkYi5TeW10YWJ9IG9iamVjdCBjYW4gYmVjb21lIGludmFsaWQgaWYKIHRo ZSBzeW1ib2wgdGFibGUgaXQgcmVmZXJzIHRvIGRvZXMgbm90IGV4aXN0IGlu IEB2YWx1ZXtHREJOfSBhbnkKIGxvbmdlci4gIEFsbCBvdGhlciBAY29kZXtn ZGIuU3ltdGFifSBtZXRob2RzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uCiBp ZiBpdCBpcyBpbnZhbGlkIGF0IHRoZSB0aW1lIHRoZSBtZXRob2QgaXMgY2Fs bGVkLgotQGVuZCBkZWZtZXRob2QKK0BlbmQgZGVmdW4KIAotQGRlZm1ldGhv ZCBTeW10YWIgZnVsbG5hbWUKK0BkZWZ1biBTeW10YWIuZnVsbG5hbWUgKCkK IFJldHVybiB0aGUgc3ltYm9sIHRhYmxlJ3Mgc291cmNlIGFic29sdXRlIGZp bGUgbmFtZS4KLUBlbmQgZGVmbWV0aG9kCitAZW5kIGRlZnVuCiBAZW5kIHRh YmxlCiAKIEBub2RlIEJyZWFrcG9pbnRzIEluIFB5dGhvbgpAQCAtMjM0ODcs MjUgKzIzNDg3LDI1IEBACiBQeXRob24gY29kZSBjYW4gbWFuaXB1bGF0ZSBi cmVha3BvaW50cyB2aWEgdGhlIEBjb2Rle2dkYi5CcmVha3BvaW50fQogY2xh c3MuCiAKLUBkZWZtZXRob2QgQnJlYWtwb2ludCBfX2luaXRfXyBzcGVjIEBy e1t9dHlwZUBye119IEBye1t9d3BfY2xhc3NAcntdfSBAcntbfWludGVybmFs QHJ7XX0KK0BkZWZ1biBCcmVha3BvaW50Ll9faW5pdF9fIChzcGVjIEBye1t9 LCB0eXBlIEBye1t9LCB3cF9jbGFzcyBAcntbfSxpbnRlcm5hbEBye119QHJ7 XX1AcntdfSkKIENyZWF0ZSBhIG5ldyBicmVha3BvaW50LiAgQHZhcntzcGVj fSBpcyBhIHN0cmluZyBuYW1pbmcgdGhlCiBsb2NhdGlvbiBvZiB0aGUgYnJl YWtwb2ludCwgb3IgYW4gZXhwcmVzc2lvbiB0aGF0IGRlZmluZXMgYQogd2F0 Y2hwb2ludC4gIFRoZSBjb250ZW50cyBjYW4gYmUgYW55IGxvY2F0aW9uIHJl Y29nbml6ZWQgYnkgdGhlCiBAY29kZXticmVha30gY29tbWFuZCwgb3IgaW4g dGhlIGNhc2Ugb2YgYSB3YXRjaHBvaW50LCBieSB0aGUgQGNvZGV7d2F0Y2h9 CiBjb21tYW5kLiAgVGhlIG9wdGlvbmFsIEB2YXJ7dHlwZX0gZGVub3RlcyB0 aGUgYnJlYWtwb2ludCB0byBjcmVhdGUKIGZyb20gdGhlIHR5cGVzIGRlZmlu ZWQgbGF0ZXIgaW4gdGhpcyBjaGFwdGVyLiAgVGhpcyBhcmd1bWVudCBjYW4g YmUKLWVpdGhlcjogQGNvZGV7QlBfQlJFQUtQT0lOVH0gb3IgQGNvZGV7QlBf V0FUQ0hQT0lOVH0uICBAdmFye3R5cGV9Ci1kZWZhdWx0cyB0byBAY29kZXtC UF9CUkVBS1BPSU5UfS4gIFRoZSBvcHRpb25hbCBAdmFye2ludGVybmFsfSBh cmd1bWVudAorZWl0aGVyOiBAY29kZXtnZGIuQlBfQlJFQUtQT0lOVH0gb3Ig QGNvZGV7Z2RiLkJQX1dBVENIUE9JTlR9LiAgQHZhcnt0eXBlfQorZGVmYXVs dHMgdG8gQGNvZGV7Z2RiLkJQX0JSRUFLUE9JTlR9LiAgVGhlIG9wdGlvbmFs IEB2YXJ7aW50ZXJuYWx9IGFyZ3VtZW50CiBhbGxvd3MgdGhlIGJyZWFrcG9p bnQgdG8gYmVjb21lIGludmlzaWJsZSB0byB0aGUgdXNlci4gIFRoZSBicmVh a3BvaW50CiB3aWxsIG5laXRoZXIgYmUgcmVwb3J0ZWQgd2hlbiBjcmVhdGVk LCBub3Igd2lsbCBpdCBiZSBsaXN0ZWQgaW4gdGhlCiBvdXRwdXQgZnJvbSBA Y29kZXtpbmZvIGJyZWFrcG9pbnRzfSAoYnV0IHdpbGwgYmUgbGlzdGVkIHdp dGggdGhlCiBAY29kZXttYWludCBpbmZvIGJyZWFrcG9pbnRzfSBjb21tYW5k KS4gIFRoZSBvcHRpb25hbCBAdmFye3dwX2NsYXNzfQogYXJndW1lbnQgZGVm aW5lcyB0aGUgY2xhc3Mgb2Ygd2F0Y2hwb2ludCB0byBjcmVhdGUsIGlmIEB2 YXJ7dHlwZX0gaXMKLUBjb2Rle0JQX1dBVENIUE9JTlR9LiAgSWYgYSB3YXRj aHBvaW50IGNsYXNzIGlzIG5vdCBwcm92aWRlZCwgaXQgaXMKLWFzc3VtZWQg dG8gYmUgYSBAdmFye1dQX1dSSVRFfSBjbGFzcy4KLUBlbmQgZGVmbWV0aG9k CitAY29kZXtnZGIuQlBfV0FUQ0hQT0lOVH0uICBJZiBhIHdhdGNocG9pbnQg Y2xhc3MgaXMgbm90IHByb3ZpZGVkLCBpdCBpcworYXNzdW1lZCB0byBiZSBh IEBjb2Rle2dkYi5XUF9XUklURX0gY2xhc3MuCitAZW5kIGRlZnVuCiAKLUBk ZWZvcCBPcGVyYXRpb24ge2dkYi5CcmVha3BvaW50fSBzdG9wIChzZWxmKQor QGRlZnVuIEJyZWFrcG9pbnQuc3RvcCAoc2VsZikKIFRoZSBAY29kZXtnZGIu QnJlYWtwb2ludH0gY2xhc3MgY2FuIGJlIHN1Yi1jbGFzc2VkIGFuZCwgaW4K IHBhcnRpY3VsYXIsIHlvdSBtYXkgY2hvb3NlIHRvIGltcGxlbWVudCB0aGUg QGNvZGV7c3RvcH0gbWV0aG9kLgogSWYgdGhpcyBtZXRob2QgaXMgZGVmaW5l ZCBhcyBhIHN1Yi1jbGFzcyBvZiBAY29kZXtnZGIuQnJlYWtwb2ludH0sCkBA IC0yMzUzMSw3ICsyMzUzMSw3IEBACiAgICAgICAgICAgcmV0dXJuIFRydWUK ICAgICAgICAgcmV0dXJuIEZhbHNlCiBAZW5kIHNtYWxsZXhhbXBsZQotQGVu ZCBkZWZvcAorQGVuZCBkZWZ1bgogCiBUaGUgYXZhaWxhYmxlIHdhdGNocG9p bnQgdHlwZXMgcmVwcmVzZW50ZWQgYnkgY29uc3RhbnRzIGFyZSBkZWZpbmVk IGluIHRoZQogQGNvZGV7Z2RifSBtb2R1bGU6CkBAIC0yMzUzOSw4MyArMjM1 MzksODMgQEAKIEB0YWJsZSBAY29kZQogQGZpbmRleCBXUF9SRUFECiBAZmlu ZGV4IGdkYi5XUF9SRUFECi1AaXRlbSBXUF9SRUFECitAaXRlbSBnZGIuV1Bf UkVBRAogUmVhZCBvbmx5IHdhdGNocG9pbnQuCiAKIEBmaW5kZXggV1BfV1JJ VEUKIEBmaW5kZXggZ2RiLldQX1dSSVRFCi1AaXRlbSBXUF9XUklURQorQGl0 ZW0gZ2RiLldQX1dSSVRFCiBXcml0ZSBvbmx5IHdhdGNocG9pbnQuCiAKIEBm aW5kZXggV1BfQUNDRVNTCiBAZmluZGV4IGdkYi5XUF9BQ0NFU1MKLUBpdGVt IFdQX0FDQ0VTUworQGl0ZW0gZ2RiLldQX0FDQ0VTUwogUmVhZC9Xcml0ZSB3 YXRjaHBvaW50LgogQGVuZCB0YWJsZQogCi1AZGVmbWV0aG9kIEJyZWFrcG9p bnQgaXNfdmFsaWQKK0BkZWZ1biBCcmVha3BvaW50LmlzX3ZhbGlkICgpCiBS ZXR1cm4gQGNvZGV7VHJ1ZX0gaWYgdGhpcyBAY29kZXtCcmVha3BvaW50fSBv YmplY3QgaXMgdmFsaWQsCiBAY29kZXtGYWxzZX0gb3RoZXJ3aXNlLiAgQSBA Y29kZXtCcmVha3BvaW50fSBvYmplY3QgY2FuIGJlY29tZSBpbnZhbGlkCiBp ZiB0aGUgdXNlciBkZWxldGVzIHRoZSBicmVha3BvaW50LiAgSW4gdGhpcyBj YXNlLCB0aGUgb2JqZWN0IHN0aWxsCiBleGlzdHMsIGJ1dCB0aGUgdW5kZXJs eWluZyBicmVha3BvaW50IGRvZXMgbm90LiAgSW4gdGhlIGNhc2VzIG9mCiB3 YXRjaHBvaW50IHNjb3BlLCB0aGUgd2F0Y2hwb2ludCByZW1haW5zIHZhbGlk IGV2ZW4gaWYgZXhlY3V0aW9uIG9mIHRoZQogaW5mZXJpb3IgbGVhdmVzIHRo ZSBzY29wZSBvZiB0aGF0IHdhdGNocG9pbnQuCi1AZW5kIGRlZm1ldGhvZAor QGVuZCBkZWZ1bgogCi1AZGVmbWV0aG9kIEJyZWFrcG9pbnQgZGVsZXRlCitA ZGVmdW4gQnJlYWtwb2ludC5kZWxldGUKIFBlcm1hbmVudGx5IGRlbGV0ZXMg dGhlIEB2YWx1ZXtHREJOfSBicmVha3BvaW50LiAgVGhpcyBhbHNvCiBpbnZh bGlkYXRlcyB0aGUgUHl0aG9uIEBjb2Rle0JyZWFrcG9pbnR9IG9iamVjdC4g IEFueSBmdXJ0aGVyIGFjY2VzcwogdG8gdGhpcyBvYmplY3QncyBhdHRyaWJ1 dGVzIG9yIG1ldGhvZHMgd2lsbCByYWlzZSBhbiBlcnJvci4KLUBlbmQgZGVm bWV0aG9kCitAZW5kIGRlZnVuCiAKLUBkZWZpdmFyIEJyZWFrcG9pbnQgZW5h YmxlZAorQGRlZnZhciBCcmVha3BvaW50LmVuYWJsZWQKIFRoaXMgYXR0cmli dXRlIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBicmVha3BvaW50IGlzIGVuYWJs ZWQsIGFuZAogQGNvZGV7RmFsc2V9IG90aGVyd2lzZS4gIFRoaXMgYXR0cmli dXRlIGlzIHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgog Ci1AZGVmaXZhciBCcmVha3BvaW50IHNpbGVudAorQGRlZnZhciBCcmVha3Bv aW50LnNpbGVudAogVGhpcyBhdHRyaWJ1dGUgaXMgQGNvZGV7VHJ1ZX0gaWYg dGhlIGJyZWFrcG9pbnQgaXMgc2lsZW50LCBhbmQKIEBjb2Rle0ZhbHNlfSBv dGhlcndpc2UuICBUaGlzIGF0dHJpYnV0ZSBpcyB3cml0YWJsZS4KIAogTm90 ZSB0aGF0IGEgYnJlYWtwb2ludCBjYW4gYWxzbyBiZSBzaWxlbnQgaWYgaXQg aGFzIGNvbW1hbmRzIGFuZCB0aGUKIGZpcnN0IGNvbW1hbmQgaXMgQGNvZGV7 c2lsZW50fS4gIFRoaXMgaXMgbm90IHJlcG9ydGVkIGJ5IHRoZQogQGNvZGV7 c2lsZW50fSBhdHRyaWJ1dGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFy CiAKLUBkZWZpdmFyIEJyZWFrcG9pbnQgdGhyZWFkCitAZGVmdmFyIEJyZWFr cG9pbnQudGhyZWFkCiBJZiB0aGUgYnJlYWtwb2ludCBpcyB0aHJlYWQtc3Bl Y2lmaWMsIHRoaXMgYXR0cmlidXRlIGhvbGRzIHRoZSB0aHJlYWQKIGlkLiAg SWYgdGhlIGJyZWFrcG9pbnQgaXMgbm90IHRocmVhZC1zcGVjaWZpYywgdGhp cyBhdHRyaWJ1dGUgaXMKIEBjb2Rle05vbmV9LiAgVGhpcyBhdHRyaWJ1dGUg aXMgd3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBk ZWZpdmFyIEJyZWFrcG9pbnQgdGFzaworQGRlZnZhciBCcmVha3BvaW50LnRh c2sKIElmIHRoZSBicmVha3BvaW50IGlzIEFkYSB0YXNrLXNwZWNpZmljLCB0 aGlzIGF0dHJpYnV0ZSBob2xkcyB0aGUgQWRhIHRhc2sKIGlkLiAgSWYgdGhl IGJyZWFrcG9pbnQgaXMgbm90IHRhc2stc3BlY2lmaWMgKG9yIHRoZSB1bmRl cmx5aW5nCiBsYW5ndWFnZSBpcyBub3QgQWRhKSwgdGhpcyBhdHRyaWJ1dGUg aXMgQGNvZGV7Tm9uZX0uICBUaGlzIGF0dHJpYnV0ZQogaXMgd3JpdGFibGUu Ci1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIEJyZWFr cG9pbnQgaWdub3JlX2NvdW50CitAZGVmdmFyIEJyZWFrcG9pbnQuaWdub3Jl X2NvdW50CiBUaGlzIGF0dHJpYnV0ZSBob2xkcyB0aGUgaWdub3JlIGNvdW50 IGZvciB0aGUgYnJlYWtwb2ludCwgYW4gaW50ZWdlci4KIFRoaXMgYXR0cmli dXRlIGlzIHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgog Ci1AZGVmaXZhciBCcmVha3BvaW50IG51bWJlcgorQGRlZnZhciBCcmVha3Bv aW50Lm51bWJlcgogVGhpcyBhdHRyaWJ1dGUgaG9sZHMgdGhlIGJyZWFrcG9p bnQncyBudW1iZXIgLS0tIHRoZSBpZGVudGlmaWVyIHVzZWQgYnkKIHRoZSB1 c2VyIHRvIG1hbmlwdWxhdGUgdGhlIGJyZWFrcG9pbnQuICBUaGlzIGF0dHJp YnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2YXIKK0BlbmQgZGVm dmFyCiAKLUBkZWZpdmFyIEJyZWFrcG9pbnQgdHlwZQorQGRlZnZhciBCcmVh a3BvaW50LnR5cGUKIFRoaXMgYXR0cmlidXRlIGhvbGRzIHRoZSBicmVha3Bv aW50J3MgdHlwZSAtLS0gdGhlIGlkZW50aWZpZXIgdXNlZCB0bwogZGV0ZXJt aW5lIHRoZSBhY3R1YWwgYnJlYWtwb2ludCB0eXBlIG9yIHVzZS1jYXNlLiAg VGhpcyBhdHRyaWJ1dGUgaXMgbm90CiB3cml0YWJsZS4KLUBlbmQgZGVmaXZh cgorQGVuZCBkZWZ2YXIKIAotQGRlZml2YXIgQnJlYWtwb2ludCB2aXNpYmxl CitAZGVmdmFyIEJyZWFrcG9pbnQudmlzaWJsZQogVGhpcyBhdHRyaWJ1dGUg dGVsbHMgd2hldGhlciB0aGUgYnJlYWtwb2ludCBpcyB2aXNpYmxlIHRvIHRo ZSB1c2VyCiB3aGVuIHNldCwgb3Igd2hlbiB0aGUgQHNhbXB7aW5mbyBicmVh a3BvaW50c30gY29tbWFuZCBpcyBydW4uICBUaGlzCiBhdHRyaWJ1dGUgaXMg bm90IHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCiBU aGUgYXZhaWxhYmxlIHR5cGVzIGFyZSByZXByZXNlbnRlZCBieSBjb25zdGFu dHMgZGVmaW5lZCBpbiB0aGUgQGNvZGV7Z2RifQogbW9kdWxlOgpAQCAtMjM2 MjMsNjEgKzIzNjIzLDYxIEBACiBAdGFibGUgQGNvZGUKIEBmaW5kZXggQlBf QlJFQUtQT0lOVAogQGZpbmRleCBnZGIuQlBfQlJFQUtQT0lOVAotQGl0ZW0g QlBfQlJFQUtQT0lOVAorQGl0ZW0gZ2RiLkJQX0JSRUFLUE9JTlQKIE5vcm1h bCBjb2RlIGJyZWFrcG9pbnQuCiAKIEBmaW5kZXggQlBfV0FUQ0hQT0lOVAog QGZpbmRleCBnZGIuQlBfV0FUQ0hQT0lOVAotQGl0ZW0gQlBfV0FUQ0hQT0lO VAorQGl0ZW0gZ2RiLkJQX1dBVENIUE9JTlQKIFdhdGNocG9pbnQgYnJlYWtw b2ludC4KIAogQGZpbmRleCBCUF9IQVJEV0FSRV9XQVRDSFBPSU5UCiBAZmlu ZGV4IGdkYi5CUF9IQVJEV0FSRV9XQVRDSFBPSU5UCi1AaXRlbSBCUF9IQVJE V0FSRV9XQVRDSFBPSU5UCitAaXRlbSBnZGIuQlBfSEFSRFdBUkVfV0FUQ0hQ T0lOVAogSGFyZHdhcmUgYXNzaXN0ZWQgd2F0Y2hwb2ludC4KIAogQGZpbmRl eCBCUF9SRUFEX1dBVENIUE9JTlQKIEBmaW5kZXggZ2RiLkJQX1JFQURfV0FU Q0hQT0lOVAotQGl0ZW0gQlBfUkVBRF9XQVRDSFBPSU5UCitAaXRlbSBnZGIu QlBfUkVBRF9XQVRDSFBPSU5UCiBIYXJkd2FyZSBhc3Npc3RlZCByZWFkIHdh dGNocG9pbnQuCiAKIEBmaW5kZXggQlBfQUNDRVNTX1dBVENIUE9JTlQKIEBm aW5kZXggZ2RiLkJQX0FDQ0VTU19XQVRDSFBPSU5UCi1AaXRlbSBCUF9BQ0NF U1NfV0FUQ0hQT0lOVAorQGl0ZW0gZ2RiLkJQX0FDQ0VTU19XQVRDSFBPSU5U CiBIYXJkd2FyZSBhc3Npc3RlZCBhY2Nlc3Mgd2F0Y2hwb2ludC4KIEBlbmQg dGFibGUKIAotQGRlZml2YXIgQnJlYWtwb2ludCBoaXRfY291bnQKK0BkZWZ2 YXIgQnJlYWtwb2ludC5oaXRfY291bnQKIFRoaXMgYXR0cmlidXRlIGhvbGRz IHRoZSBoaXQgY291bnQgZm9yIHRoZSBicmVha3BvaW50LCBhbiBpbnRlZ2Vy LgogVGhpcyBhdHRyaWJ1dGUgaXMgd3JpdGFibGUsIGJ1dCBjdXJyZW50bHkg aXQgY2FuIG9ubHkgYmUgc2V0IHRvIHplcm8uCi1AZW5kIGRlZml2YXIKK0Bl bmQgZGVmdmFyCiAKLUBkZWZpdmFyIEJyZWFrcG9pbnQgbG9jYXRpb24KK0Bk ZWZ2YXIgQnJlYWtwb2ludC5sb2NhdGlvbgogVGhpcyBhdHRyaWJ1dGUgaG9s ZHMgdGhlIGxvY2F0aW9uIG9mIHRoZSBicmVha3BvaW50LCBhcyBzcGVjaWZp ZWQgYnkKIHRoZSB1c2VyLiAgSXQgaXMgYSBzdHJpbmcuICBJZiB0aGUgYnJl YWtwb2ludCBkb2VzIG5vdCBoYXZlIGEgbG9jYXRpb24KICh0aGF0IGlzLCBp dCBpcyBhIHdhdGNocG9pbnQpIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBpcyBA Y29kZXtOb25lfS4gIFRoaXMKIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUu Ci1AZW5kIGRlZml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIEJyZWFr cG9pbnQgZXhwcmVzc2lvbgorQGRlZnZhciBCcmVha3BvaW50LmV4cHJlc3Np b24KIFRoaXMgYXR0cmlidXRlIGhvbGRzIGEgYnJlYWtwb2ludCBleHByZXNz aW9uLCBhcyBzcGVjaWZpZWQgYnkKIHRoZSB1c2VyLiAgSXQgaXMgYSBzdHJp bmcuICBJZiB0aGUgYnJlYWtwb2ludCBkb2VzIG5vdCBoYXZlIGFuCiBleHBy ZXNzaW9uICh0aGUgYnJlYWtwb2ludCBpcyBub3QgYSB3YXRjaHBvaW50KSB0 aGUgYXR0cmlidXRlJ3MgdmFsdWUKIGlzIEBjb2Rle05vbmV9LiAgVGhpcyBh dHRyaWJ1dGUgaXMgbm90IHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5k IGRlZnZhcgogCi1AZGVmaXZhciBCcmVha3BvaW50IGNvbmRpdGlvbgorQGRl ZnZhciBCcmVha3BvaW50LmNvbmRpdGlvbgogVGhpcyBhdHRyaWJ1dGUgaG9s ZHMgdGhlIGNvbmRpdGlvbiBvZiB0aGUgYnJlYWtwb2ludCwgYXMgc3BlY2lm aWVkIGJ5CiB0aGUgdXNlci4gIEl0IGlzIGEgc3RyaW5nLiAgSWYgdGhlcmUg aXMgbm8gY29uZGl0aW9uLCB0aGlzIGF0dHJpYnV0ZSdzCiB2YWx1ZSBpcyBA Y29kZXtOb25lfS4gIFRoaXMgYXR0cmlidXRlIGlzIHdyaXRhYmxlLgotQGVu ZCBkZWZpdmFyCitAZW5kIGRlZnZhcgogCi1AZGVmaXZhciBCcmVha3BvaW50 IGNvbW1hbmRzCitAZGVmdmFyIEJyZWFrcG9pbnQuY29tbWFuZHMKIFRoaXMg YXR0cmlidXRlIGhvbGRzIHRoZSBjb21tYW5kcyBhdHRhY2hlZCB0byB0aGUg YnJlYWtwb2ludC4gIElmCiB0aGVyZSBhcmUgY29tbWFuZHMsIHRoaXMgYXR0 cmlidXRlJ3MgdmFsdWUgaXMgYSBzdHJpbmcgaG9sZGluZyBhbGwgdGhlCiBj b21tYW5kcywgc2VwYXJhdGVkIGJ5IG5ld2xpbmVzLiAgSWYgdGhlcmUgYXJl IG5vIGNvbW1hbmRzLCB0aGlzCiBhdHRyaWJ1dGUgaXMgQGNvZGV7Tm9uZX0u ICBUaGlzIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRlZml2 YXIKK0BlbmQgZGVmdmFyCiAKIEBub2RlIExhenkgU3RyaW5ncyBJbiBQeXRo b24KIEBzdWJzdWJzZWN0aW9uIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiBs YXp5IHN0cmluZ3MuCkBAIC0yMzcwMCwzOSArMjM3MDAsMzkgQEAKIAogQSBA Y29kZXtnZGIuTGF6eVN0cmluZ30gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5n IGZ1bmN0aW9uczoKIAotQGRlZm1ldGhvZCBMYXp5U3RyaW5nIHZhbHVlCitA ZGVmdW4gTGF6eVN0cmluZy52YWx1ZSAoKQogQ29udmVydCB0aGUgQGNvZGV7 Z2RiLkxhenlTdHJpbmd9IHRvIGEgQGNvZGV7Z2RiLlZhbHVlfS4gIFRoaXMg dmFsdWUKIHdpbGwgcG9pbnQgdG8gdGhlIHN0cmluZyBpbiBtZW1vcnksIGJ1 dCB3aWxsIGxvc2UgYWxsIHRoZSBkZWxheWVkCiByZXRyaWV2YWwsIGVuY29k aW5nIGFuZCBoYW5kbGluZyB0aGF0IEB2YWx1ZXtHREJOfSBhcHBsaWVzIHRv IGEKIEBjb2Rle2dkYi5MYXp5U3RyaW5nfS4KLUBlbmQgZGVmbWV0aG9kCitA ZW5kIGRlZnVuCiAKLUBkZWZpdmFyIExhenlTdHJpbmcgYWRkcmVzcworQGRl ZnZhciBMYXp5U3RyaW5nLmFkZHJlc3MKIFRoaXMgYXR0cmlidXRlIGhvbGRz IHRoZSBhZGRyZXNzIG9mIHRoZSBzdHJpbmcuICBUaGlzIGF0dHJpYnV0ZSBp cyBub3QKIHdyaXRhYmxlLgotQGVuZCBkZWZpdmFyCitAZW5kIGRlZnZhcgog Ci1AZGVmaXZhciBMYXp5U3RyaW5nIGxlbmd0aAorQGRlZnZhciBMYXp5U3Ry aW5nLmxlbmd0aAogVGhpcyBhdHRyaWJ1dGUgaG9sZHMgdGhlIGxlbmd0aCBv ZiB0aGUgc3RyaW5nIGluIGNoYXJhY3RlcnMuICBJZiB0aGUKIGxlbmd0aCBp cyAtMSwgdGhlbiB0aGUgc3RyaW5nIHdpbGwgYmUgZmV0Y2hlZCBhbmQgZW5j b2RlZCB1cCB0byB0aGUKIGZpcnN0IG51bGwgb2YgYXBwcm9wcmlhdGUgd2lk dGguICBUaGlzIGF0dHJpYnV0ZSBpcyBub3Qgd3JpdGFibGUuCi1AZW5kIGRl Zml2YXIKK0BlbmQgZGVmdmFyCiAKLUBkZWZpdmFyIExhenlTdHJpbmcgZW5j b2RpbmcKK0BkZWZ2YXIgTGF6eVN0cmluZy5lbmNvZGluZwogVGhpcyBhdHRy aWJ1dGUgaG9sZHMgdGhlIGVuY29kaW5nIHRoYXQgd2lsbCBiZSBhcHBsaWVk IHRvIHRoZSBzdHJpbmcKIHdoZW4gdGhlIHN0cmluZyBpcyBwcmludGVkIGJ5 IEB2YWx1ZXtHREJOfS4gIElmIHRoZSBlbmNvZGluZyBpcyBub3QKIHNldCwg b3IgY29udGFpbnMgYW4gZW1wdHkgc3RyaW5nLCAgdGhlbiBAdmFsdWV7R0RC Tn0gd2lsbCBzZWxlY3QgdGhlCiBtb3N0IGFwcHJvcHJpYXRlIGVuY29kaW5n IHdoZW4gdGhlIHN0cmluZyBpcyBwcmludGVkLiAgVGhpcyBhdHRyaWJ1dGUK IGlzIG5vdCB3cml0YWJsZS4KLUBlbmQgZGVmaXZhcgorQGVuZCBkZWZ2YXIK IAotQGRlZml2YXIgTGF6eVN0cmluZyB0eXBlCitAZGVmdmFyIExhenlTdHJp bmcudHlwZQogVGhpcyBhdHRyaWJ1dGUgaG9sZHMgdGhlIHR5cGUgdGhhdCBp cyByZXByZXNlbnRlZCBieSB0aGUgbGF6eSBzdHJpbmcncwogdHlwZS4gIEZv ciBhIGxhenkgc3RyaW5nIHRoaXMgd2lsbCBhbHdheXMgYmUgYSBwb2ludGVy IHR5cGUuICBUbwogcmVzb2x2ZSB0aGlzIHRvIHRoZSBsYXp5IHN0cmluZydz IGNoYXJhY3RlciB0eXBlLCB1c2UgdGhlIHR5cGUncwogQGNvZGV7dGFyZ2V0 fSBtZXRob2QuICBAeHJlZntUeXBlcyBJbiBQeXRob259LiAgVGhpcyBhdHRy aWJ1dGUgaXMgbm90CiB3cml0YWJsZS4KLUBlbmQgZGVmaXZhcgorQGVuZCBk ZWZ2YXIKIAogQG5vZGUgQXV0by1sb2FkaW5nCiBAc3Vic2VjdGlvbiBBdXRv LWxvYWRpbmcK --_002_09787EF419216C41A903FD14EE5506DD01534916A6AUSX7MCPC103A_--