From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f120.i.mail.ru (f120.i.mail.ru [94.100.187.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 2D58346970E for ; Fri, 24 Jan 2020 20:37:46 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Fri, 24 Jan 2020 20:37:44 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1579887464.335069064@f120.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--b78597BD0d869694C35B51955aF0b7Df1579887464" In-Reply-To: <20191217232635.hln5hjeeqbq2iquz@tkn_work_nb> References: <20191107103642.42377-1-maria.khaydich@tarantool.org> <1575061766.543705524@f389.i.mail.ru> <20191217232635.hln5hjeeqbq2iquz@tkn_work_nb> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_lua=3A_msgpackffi_consi?= =?utf-8?q?ders_msgpack=2Ecfg_options_now?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxleGFuZGVyIFR1cmVua28=?= Cc: tarantool-patches@dev.tarantool.org ----ALT--b78597BD0d869694C35B51955aF0b7Df1579887464 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rIHlvdSBmb3IgdGhlIHJldmlldyEgQWxsIGRvbmUgbm93OgrCoApNc2dwYWNrLmNmZyBy ZWNvbmZpZ3VyYXRpb24gZGlkIG5vdCBhZmZlY3QgZmZpIG1vZHVsZSBiZWhhdmlvci4gVGhpcwpw YXRjaCBmaXhlcyBpdCBmb3IgYWxsIHRoZSBvcHRpb25zIHRoYXQgd2VyZSBub3QgeWV0IGNvdmVy ZWQgZWxzZXdoZXJlOgplbmNvZGVfc3BhcnNlX2NvbnZlcnQsIGVuY29kZV9zcGFyc2VfcmF0aW8s IGVuY29kZV9zcGFyc2Vfc2FmZSwKZW5jb2RlX2ludmFsaWRfbnVtYmVycyAmIGRlY29kZV9pbnZh bGlkX251bWJlcnMsCmVuY29kZV9sb2FkX21ldGF0YWJsZXMgJiBkZWNvZGVfc2F2ZV9tZXRhdGFi bGVzLAplbmNvZGVfdXNlX3Rvc3RyaW5nLCBlbmNvZGVfaW52YWxpZF9hc19uaWwuCk1vc3Qgb2Yg Y29tbW9uIHNlcmlhbGl6ZXJzJyB0ZXN0IHdlcmUgbm90IGFwcGxpY2FibGUgdG8gbXNncGFja2Zm aSBzaW5jZQppdCBoYXMgbm8gY2ZnIGZpZWxkIG9mIGl0cyBvd24uIFRoaXMgaXNzdWUgd2FzIGFs c28gc29sdmVkLgpDbG9zZXMgIzQ0OTkKLS0tCklzc3VlOgpodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNDQ5OQpCcmFuY2g6Cmh0dHBzOi8vZ2l0aHViLmNvbS90 YXJhbnRvb2wvdGFyYW50b29sL2NvbXBhcmUvZWxqYXNobS9naC00NDk5LW1zZ3BhY2tmZmktaWdu b3Jlcy1tc2dwYWNrLmNmZy1vcHRpb25zCsKgc3JjL2x1YS9tc2dwYWNrLmMgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqB8IMKgMSAtCsKgc3JjL2x1YS9tc2dwYWNrLmggwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqB8IMKgMiArLQrCoHNyYy9sdWEvbXNncGFja2ZmaS5sdWEgwqAgwqAg wqAgwqAgwqAgwqAgwqAgfCA3MCArKysrKysrKysrKysrKysrKysrLS0tLQrCoHNyYy9sdWEvdXRp bHMuaCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAyICstCsKgdGVzdC9hcHAt dGFwL2x1YS9zZXJpYWxpemVyX3Rlc3QubHVhIHwgwqA3ICsrLQrCoHRlc3QvYXBwLXRhcC9tc2dw YWNrZmZpLnRlc3QubHVhIMKgIMKgIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrLQrC oDYgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQpkaWZm IC0tZ2l0IGEvc3JjL2x1YS9tc2dwYWNrLmggYi9zcmMvbHVhL21zZ3BhY2suaAppbmRleCBkMGFk ZTMwM2YuLjFlNjBmMGE1ZCAxMDA2NDQKLS0tIGEvc3JjL2x1YS9tc2dwYWNrLmgKKysrIGIvc3Jj L2x1YS9tc2dwYWNrLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IG1wc3RyZWFtOwrCoC8qKgrC oCAqIERlZmF1bHQgaW5zdGFuY2Ugb2YgbXNncGFjayBzZXJpYWxpemVyIChtc2dwYWNrID0gcmVx dWlyZSgnbXNncGFjaycpKS4KwqAgKiBUaGlzIGluc3RhbmNlIGlzIHVzZWQgYnkgYWxsIGJveCdz IEx1YS9DIEFQSSBiaW5kaW5ncyAoZS5nLiBzcGFjZTpyZXBsYWNlKCkpLgotICogQWxsIGNoYW5n ZXMgbWFkZSBieSBtc2dwYWNrLmNmZ3t9IGZ1bmN0aW9uIGFyZSBhbHNvIGFmZmVjdCBib3gncyBi aW5kaW5ncworICogQWxsIGNoYW5nZXMgbWFkZSBieSBtc2dwYWNrLmNmZ3t9IGZ1bmN0aW9uIGFs c28gYWZmZWN0IGJveCdzIGJpbmRpbmdzCsKgICogKHRoaXMgaXMgYSBmZWF0dXJlKS4KwqAgKi8K wqBleHRlcm4gc3RydWN0IGx1YUxfc2VyaWFsaXplciAqbHVhTF9tc2dwYWNrX2RlZmF1bHQ7CmRp ZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9tc2dwYWNrZmZpLmx1 YQppbmRleCBmNzc1ZjJkNDEuLjE1OWE2NTJiOSAxMDA2NDQKLS0tIGEvc3JjL2x1YS9tc2dwYWNr ZmZpLmx1YQorKysgYi9zcmMvbHVhL21zZ3BhY2tmZmkubHVhCkBAIC0yMDYsNiArMjA2LDEwIEBA IGxvY2FsIGZ1bmN0aW9uIGVuY29kZV9uaWwoYnVmKQrCoCDCoCDCoHBbMF0gPSAweGMwCsKgZW5k CsKgCitsb2NhbCBpbmYgPSAxLzAKK2xvY2FsIG1pbmYgPSAtMS8wCitsb2NhbCBuYW4gPSAwLzAK KwrCoGxvY2FsIGZ1bmN0aW9uIGVuY29kZV9yKGJ1Ziwgb2JqLCBsZXZlbCkKwqA6OnJlc3RhcnQ6 OgrCoCDCoCDCoGlmIHR5cGUob2JqKSA9PSAibnVtYmVyIiB0aGVuCkBAIC0yMTMsNiArMjE3LDE0 IEBAIGxvY2FsIGZ1bmN0aW9uIGVuY29kZV9yKGJ1Ziwgb2JqLCBsZXZlbCkKwqAgwqAgwqAgwqAg wqBpZiBvYmogJSAxID09IDAgYW5kIG9iaiA+IC0xZTYzIGFuZCBvYmogPCAxZTY0IHRoZW4KwqAg wqAgwqAgwqAgwqAgwqAgwqBlbmNvZGVfaW50KGJ1Ziwgb2JqKQrCoCDCoCDCoCDCoCDCoGVsc2UK KyDCoCDCoCDCoCDCoCDCoCDCoGlmIChvYmogPT0gaW5mIG9yIG9iaiA9PSBtaW5mIG9yIHRvc3Ry aW5nKG9iaikgPT0gIm5hbiIpIGFuZAorIMKgIMKgIMKgIMKgIMKgIMKgbm90IG1zZ3BhY2suY2Zn LmVuY29kZV9pbnZhbGlkX251bWJlcnMgdGhlbgorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYg bXNncGFjay5jZmcuZW5jb2RlX2ludmFsaWRfYXNfbmlsIHRoZW4KKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoGVuY29kZV9uaWwoYnVmKQorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZWxz ZQorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZXJyb3IoIkludmFsaWQgbnVtYmVycyBl bmNvZGluZyBpcyBtYW51YWxseSBwcm9oaWJpdGVkIikKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oGVuZAorIMKgIMKgIMKgIMKgIMKgIMKgZW5kCsKgIMKgIMKgIMKgIMKgIMKgIMKgZW5jb2RlX2Rv dWJsZShidWYsIG9iaikKwqAgwqAgwqAgwqAgwqBlbmQKwqAgwqAgwqBlbHNlaWYgdHlwZShvYmop ID09ICJzdHJpbmciIHRoZW4KQEAgLTIyNywyOCArMjM5LDQ2IEBAIGxvY2FsIGZ1bmN0aW9uIGVu Y29kZV9yKGJ1Ziwgb2JqLCBsZXZlbCkKwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4KwqAgwqAg wqAgwqAgwqBlbmQKwqAgwqAgwqAgwqAgwqBsb2NhbCBzZXJpYWxpemUgPSBuaWwKLSDCoCDCoCDC oCDCoGxvY2FsIG10ID0gZ2V0bWV0YXRhYmxlKG9iaikKLSDCoCDCoCDCoCDCoGlmIG10IH49IG5p bCB0aGVuCi0gwqAgwqAgwqAgwqAgwqAgwqBzZXJpYWxpemUgPSBtdC5fX3NlcmlhbGl6ZQorIMKg IMKgIMKgIMKgaWYgbXNncGFjay5jZmcuZW5jb2RlX2xvYWRfbWV0YXRhYmxlcyB0aGVuCisgwqAg wqAgwqAgwqAgwqAgwqBsb2NhbCBtdCA9IGdldG1ldGF0YWJsZShvYmopCisgwqAgwqAgwqAgwqAg wqAgwqBpZiBtdCB+PSBuaWwgdGhlbgorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgc2VyaWFsaXpl ID0gbXQuX19zZXJpYWxpemUKKyDCoCDCoCDCoCDCoCDCoCDCoGVuZArCoCDCoCDCoCDCoCDCoGVu ZArCoCDCoCDCoCDCoCDCoC0tIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGFycmF5IGFuZCBtYXAg ZWxlbWVudHMgaW4gdGhlIHRhYmxlCsKgIMKgIMKgIMKgIMKgLS0gVE9ETzogcGFpcnMoKSBhYm9y dHMgSklUCi0gwqAgwqAgwqAgwqBsb2NhbCBhcnJheV9jb3VudCwgbWFwX2NvdW50ID0gMCwgMAot IMKgIMKgIMKgIMKgZm9yIGtleSBpbiBwYWlycyhvYmopIGRvCi0gwqAgwqAgwqAgwqAgwqAgwqBp ZiB0eXBlKGtleSkgPT0gJ251bWJlcicgYW5kIGtleSA+PSAxIGFuZAotIMKgIMKgIMKgIMKgIMKg IMKgIMKgIGtleSA9PSBtYXRoLmZsb29yKGtleSkgYW5kIGtleSA9PSBhcnJheV9jb3VudCArIDEg dGhlbgorIMKgIMKgIMKgIMKgbG9jYWwgYXJyYXlfY291bnQsIG1hcF9jb3VudCwgbWF4X2lkeCA9 IDAsIDAsIDAKKyDCoCDCoCDCoCDCoGZvciBrZXksIGVsIGluIHBhaXJzKG9iaikgZG8KKyDCoCDC oCDCoCDCoCDCoCDCoGlmIHR5cGUoa2V5KSA9PSAnbnVtYmVyJyBhbmQga2V5ID49IDEgYW5kwqAK KyDCoCDCoCDCoCDCoCDCoCDCoGtleSA9PSBtYXRoLmZsb29yKGtleSkgdGhlbgrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoGFycmF5X2NvdW50ID0gYXJyYXlfY291bnQgKyAxCisgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBpZiBrZXkgPiBtYXhfaWR4IHRoZW4KKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoG1heF9pZHggPSBrZXkKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGVuZArCoCDC oCDCoCDCoCDCoCDCoCDCoGVsc2UKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBtYXBfY291bnQg PSBtYXBfY291bnQgKyAxCsKgIMKgIMKgIMKgIMKgIMKgIMKgZW5kCsKgIMKgIMKgIMKgIMKgZW5k Ci0gwqAgwqAgwqAgwqBpZiAoc2VyaWFsaXplID09IG5pbCBhbmQgbWFwX2NvdW50ID09IDApIG9y IHNlcmlhbGl6ZSA9PSAnYXJyYXknIG9yCi0gwqAgwqAgwqAgwqAgwqAgwqBzZXJpYWxpemUgPT0g J3NlcScgb3Igc2VyaWFsaXplID09ICdzZXF1ZW5jZScgdGhlbgorIMKgIMKgIMKgIMKgLS0gZXhj ZXNzaXZlbHkgc3BhcnNlIHRhYmxlcyBzaG91bGQgYmUgZW5jb2RlZCBhcyBtYXBzCisgwqAgwqAg wqAgwqBsb2NhbCBpc19leGNlc3NpdmVseV9zcGFyc2UgPSBmYWxzZQorIMKgIMKgIMKgIMKgaWYg bXNncGFjay5jZmcuZW5jb2RlX3NwYXJzZV9yYXRpbyBhbmQKKyDCoCDCoCDCoCDCoCDCoCDCoG1h eF9pZHggPiBtc2dwYWNrLmNmZy5lbmNvZGVfc3BhcnNlX3NhZmUgYW5kCisgwqAgwqAgwqAgwqAg wqAgwqBtYXhfaWR4ID4gYXJyYXlfY291bnQgKiBtc2dwYWNrLmNmZy5lbmNvZGVfc3BhcnNlX3Jh dGlvIHRoZW4KKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIG5vdCBtc2dwYWNrLmNmZy5lbmNv ZGVfc3BhcnNlX2NvbnZlcnQgdGhlbgorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZXJy b3Ioc3RyaW5nLmZvcm1hdCgiQ2FuXCd0IGVuY29kZSBleGNlc3NpdmVseSAiLi4KKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCJzcGFyc2UgdGFibGVzIHdoZW4gZW5jb2RlX3NwYXJzZV9j b252ZXJ0ICIuLgorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgImNvbmZpZ3VyYXRpb24g b3B0aW9uIGlzIHNldCB0byBmYWxzZSIpKQorIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZW5kCisg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpc19leGNlc3NpdmVseV9zcGFyc2UgPSB0cnVlCisgwqAg wqAgwqAgwqBlbmQKKyDCoCDCoCDCoCDCoGlmIChub3QgaXNfZXhjZXNzaXZlbHlfc3BhcnNlKSBh bmQgKCBzZXJpYWxpemUgPT0gJ2FycmF5JyBvcgorIMKgIMKgIMKgIMKgIMKgIMKgc2VyaWFsaXpl ID09ICdzZXEnIG9yIHNlcmlhbGl6ZSA9PSAnc2VxdWVuY2UnIG9yCisgwqAgwqAgwqAgwqAgwqAg wqAoc2VyaWFsaXplID09IG5pbCBhbmQgbWFwX2NvdW50ID09IDApICkgdGhlbgrCoCDCoCDCoCDC oCDCoCDCoCDCoGVuY29kZV9hcnJheShidWYsIGFycmF5X2NvdW50KQrCoCDCoCDCoCDCoCDCoCDC oCDCoGZvciBpPTEsYXJyYXlfY291bnQsMSBkbwrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGVu Y29kZV9yKGJ1Ziwgb2JqW2ldLCBsZXZlbCArIDEpCsKgIMKgIMKgIMKgIMKgIMKgIMKgZW5kCi0g wqAgwqAgwqAgwqBlbHNlaWYgKHNlcmlhbGl6ZSA9PSBuaWwgYW5kIG1hcF9jb3VudCA+IDApIG9y CisgwqAgwqAgwqAgwqBlbHNlaWYgc2VyaWFsaXplID09IG5pbCBvciBpc19leGNlc3NpdmVseV9z cGFyc2Ugb3IKwqAgwqAgwqAgwqAgwqAgwqAgwqBzZXJpYWxpemUgPT0gJ21hcCcgb3Igc2VyaWFs aXplID09ICdtYXBwaW5nJyB0aGVuCsKgIMKgIMKgIMKgIMKgIMKgIMKgZW5jb2RlX21hcChidWYs IGFycmF5X2NvdW50ICsgbWFwX2NvdW50KQrCoCDCoCDCoCDCoCDCoCDCoCDCoGZvciBrZXksIHZh bCBpbiBwYWlycyhvYmopIGRvCkBAIC0yNzgsNyArMzA4LDE4IEBAIGxvY2FsIGZ1bmN0aW9uIGVu Y29kZV9yKGJ1Ziwgb2JqLCBsZXZlbCkKwqAgwqAgwqAgwqAgwqAgwqAgwqBlcnJvcigiY2FuIG5v dCBlbmNvZGUgRkZJIHR5cGU6ICciLi5mZmkudHlwZW9mKG9iaikuLiInIikKwqAgwqAgwqAgwqAg wqBlbmQKwqAgwqAgwqBlbHNlCi0gwqAgwqAgwqAgwqBlcnJvcigiY2FuIG5vdCBlbmNvZGUgTHVh IHR5cGU6ICciLi50eXBlKG9iaikuLiInIikKKyDCoCDCoCDCoCDCoGlmIG1zZ3BhY2suY2ZnLmVu Y29kZV91c2VfdG9zdHJpbmcgdGhlbgorIMKgIMKgIMKgIMKgIMKgIMKgb2JqID0gdG9zdHJpbmco b2JqKQorIMKgIMKgIMKgIMKgIMKgIMKgaWYgb2JqIHRoZW4KKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoGVuY29kZV9zdHIoYnVmLCBvYmopCisgwqAgwqAgwqAgwqAgwqAgwqBlbHNlCisgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBlcnJvcigiY2FuIG5vdCBlbmNvZGUgTHVhIHR5cGU6ICciLi50eXBl KG9iaikuLiInIikKKyDCoCDCoCDCoCDCoCDCoCDCoGVuZAorIMKgIMKgIMKgIMKgZWxzZWlmIG1z Z3BhY2suY2ZnLmVuY29kZV9pbnZhbGlkX2FzX25pbCB0aGVuCisgwqAgwqAgwqAgwqAgwqAgwqBl bmNvZGVfbmlsKGJ1ZikKKyDCoCDCoCDCoCDCoGVsc2UKKyDCoCDCoCDCoCDCoCDCoCDCoGVycm9y KCJjYW4gbm90IGVuY29kZSBMdWEgdHlwZTogJyIuLnR5cGUob2JqKS4uIiciKQorIMKgIMKgIMKg IMKgZW5kCsKgIMKgIMKgZW5kCsKgZW5kCsKgCkBAIC00NTMsNyArNDk0LDEyIEBAIGVuZArCoArC oGxvY2FsIGZ1bmN0aW9uIGRlY29kZV9kb3VibGUoZGF0YSkKwqAgwqAgwqBkYXRhWzBdID0gZGF0 YVswXSAtIDEgLS0gbXBfZGVjb2RlX2RvdWJsZSBuZWVkIHR5cGUgY29kZQotIMKgIMKgcmV0dXJu IHRvbnVtYmVyKGJ1aWx0aW4ubXBfZGVjb2RlX2RvdWJsZShkYXRhKSkKKyDCoCDCoGxvY2FsIHJl cyA9IHRvbnVtYmVyKGJ1aWx0aW4ubXBfZGVjb2RlX2RvdWJsZShkYXRhKSkKKyDCoCDCoGlmIChy ZXMgPT0gaW5mIG9yIHJlcyA9PSBtaW5mIG9yIHRvc3RyaW5nKHJlcykgPT0gIm5hbiIpIGFuZAor IMKgIMKgbm90IG1zZ3BhY2suY2ZnLmRlY29kZV9pbnZhbGlkX251bWJlcnMgdGhlbgorIMKgIMKg IMKgIMKgZXJyb3IoIkludmFsaWQgbnVtYmVycyBkZWNvZGluZyBpcyBtYW51YWxseSBwcm9oaWJp dGVkIikKKyDCoCDCoGVuZAorIMKgIMKgcmV0dXJuIHJlcwrCoGVuZArCoArCoGxvY2FsIGZ1bmN0 aW9uIGRlY29kZV9zdHIoZGF0YSwgc2l6ZSkKZGlmZiAtLWdpdCBhL3NyYy9sdWEvdXRpbHMuaCBi L3NyYy9sdWEvdXRpbHMuaAppbmRleCAwYjM2NzI3NjkuLmZlZDgzY2Y4ZCAxMDA2NDQKLS0tIGEv c3JjL2x1YS91dGlscy5oCisrKyBiL3NyYy9sdWEvdXRpbHMuaApAQCAtMTgzLDcgKzE4Myw3IEBA IHN0cnVjdCBsdWFMX3NlcmlhbGl6ZXIgewrCoMKgwqAgwqAgKiDCoCsgbWFwIC0gYXQgbGVhc3Qg b25lIHRhYmxlIGluZGV4IGlzIG5vdCB1bnNpZ25lZCBpbnRlZ2VyLgrCoMKgwqAgwqAgKiDCoCsg cmVndWxhciBhcnJheSAtIGFsbCBhcnJheSBpbmRleGVzIGFyZSBhdmFpbGFibGUuCsKgwqDCoCDC oCAqIMKgKyBzcGFyc2UgYXJyYXkgLSBhdCBsZWFzdCBvbmUgYXJyYXkgaW5kZXggaXMgbWlzc2lu Zy4KLcKgwqAgwqAgKiDCoCsgZXhjZXNzaXZlbHkgc3BhcnNlIGFycmF0IC0gdGhlIG51bWJlciBv ZiB2YWx1ZXMgbWlzc2luZworwqDCoCDCoCAqIMKgKyBleGNlc3NpdmVseSBzcGFyc2UgYXJyYXkg LSB0aGUgbnVtYmVyIG9mIHZhbHVlcyBtaXNzaW5nCsKgwqDCoCDCoCAqIGV4Y2VlZHMgdGhlIGNv bmZpZ3VyZWQgcmF0aW8uCsKgwqDCoCDCoCAqCsKgwqDCoCDCoCAqIEFuIGFycmF5IGlzIGV4Y2Vz c2l2ZWx5IHNwYXJzZSB3aGVuICoqYWxsKiogdGhlIGZvbGxvd2luZwpkaWZmIC0tZ2l0IGEvdGVz dC9hcHAtdGFwL2x1YS9zZXJpYWxpemVyX3Rlc3QubHVhIGIvdGVzdC9hcHAtdGFwL2x1YS9zZXJp YWxpemVyX3Rlc3QubHVhCmluZGV4IDQ3ZWRhYzYyMS4uODYwZjRkY2ViIDEwMDY0NAotLS0gYS90 ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWEKKysrIGIvdGVzdC9hcHAtdGFwL2x1 YS9zZXJpYWxpemVyX3Rlc3QubHVhCkBAIC0xNTAsNyArMTUwLDcgQEAgbG9jYWwgZnVuY3Rpb24g dGVzdF9zaWduZWQodGVzdCwgcykKwqBlbmQKwqAKwqBsb2NhbCBmdW5jdGlvbiB0ZXN0X2RvdWJs ZSh0ZXN0LCBzKQotIMKgIMKgdGVzdDpwbGFuKHMuY2ZnIGFuZCAxNSBvciA5KQorIMKgIMKgdGVz dDpwbGFuKHMuY2ZnIGFuZCAxOCBvciA5KQrCoCDCoCDCoHJ0KHRlc3QsIHMsIC0xLjEpCsKgCsKg IMKgIMKgcnQodGVzdCwgcywgMy4xNDE1OTI2NTM1ODk4KQpAQCAtMTcyLDIzICsxNzIsMjggQEAg bG9jYWwgZnVuY3Rpb24gdGVzdF9kb3VibGUodGVzdCwgcykKwqAgwqAgwqAtLQrCoCDCoCDCoGxv Y2FsIG5hbiA9IDAvMArCoCDCoCDCoGxvY2FsIGluZiA9IDEvMAorIMKgIMKgbG9jYWwgbWluZiA9 IC0xLzAKwqAKwqAgwqAgwqBsb2NhbCBzcyA9IHMubmV3KCkKwqAgwqAgwqBzcy5jZmd7ZW5jb2Rl X2ludmFsaWRfbnVtYmVycyA9IGZhbHNlfQrCoCDCoCDCoHRlc3Q6b2sobm90IHBjYWxsKHNzLmVu Y29kZSwgbmFuKSwgImVuY29kZSBleGNlcHRpb24gb24gbmFuIikKwqAgwqAgwqB0ZXN0Om9rKG5v dCBwY2FsbChzcy5lbmNvZGUsIGluZiksICJlbmNvZGUgZXhjZXB0aW9uIG9uIGluZiIpCisgwqAg wqB0ZXN0Om9rKG5vdCBwY2FsbChzcy5lbmNvZGUsIG1pbmYpLCAiZW5jb2RlIGV4Y2VwdGlvbiBv biBtaW5mIikKwqAKwqAgwqAgwqBzcy5jZmd7ZW5jb2RlX2ludmFsaWRfbnVtYmVycyA9IHRydWV9 CsKgIMKgIMKgbG9jYWwgeG5hbiA9IHNzLmVuY29kZShuYW4pCsKgIMKgIMKgbG9jYWwgeGluZiA9 IHNzLmVuY29kZShpbmYpCisgwqAgwqBsb2NhbCB4bWluZiA9IHNzLmVuY29kZShtaW5mKQrCoArC oCDCoCDCoHNzLmNmZ3tkZWNvZGVfaW52YWxpZF9udW1iZXJzID0gZmFsc2V9CsKgIMKgIMKgdGVz dDpvayhub3QgcGNhbGwoc3MuZGVjb2RlLCB4bmFuKSwgImRlY29kZSBleGNlcHRpb24gb24gbmFu IikKwqAgwqAgwqB0ZXN0Om9rKG5vdCBwY2FsbChzcy5kZWNvZGUsIHhpbmYpLCAiZGVjb2RlIGV4 Y2VwdGlvbiBvbiBpbmYiKQorIMKgIMKgdGVzdDpvayhub3QgcGNhbGwoc3MuZGVjb2RlLCB4bWlu ZiksICJkZWNvZGUgZXhjZXB0aW9uIG9uIG1pbmYiKQrCoArCoCDCoCDCoHNzLmNmZ3tkZWNvZGVf aW52YWxpZF9udW1iZXJzID0gdHJ1ZX0KwqAgwqAgwqBydCh0ZXN0LCBzLCBuYW4pCsKgIMKgIMKg cnQodGVzdCwgcywgaW5mKQorIMKgIMKgcnQodGVzdCwgcywgbWluZikKwqAKwqAgwqAgwqBzcyA9 IG5pbArCoGVuZApkaWZmIC0tZ2l0IGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEg Yi90ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YQppbmRleCA5OTQ0MDJkMTUuLjYzMDQ1 NTlmMCAxMDA3NTUKLS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKKysrIGIv dGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKQEAgLTUsNiArNSw3IEBAIHBhY2thZ2Uu cGF0aCA9ICJsdWEvPy5sdWE7Ii4ucGFja2FnZS5wYXRoCsKgbG9jYWwgdGFwID0gcmVxdWlyZSgn dGFwJykKwqBsb2NhbCBjb21tb24gPSByZXF1aXJlKCdzZXJpYWxpemVyX3Rlc3QnKQrCoGxvY2Fs IGZmaSA9IHJlcXVpcmUoJ2ZmaScpCitsb2NhbCBtc2dwYWNrID0gcmVxdWlyZSgnbXNncGFjaycp CsKgCsKgbG9jYWwgZnVuY3Rpb24gaXNfbWFwKHMpCsKgIMKgIMKgbG9jYWwgYiA9IHN0cmluZy5i eXRlKHN0cmluZy5zdWIocywgMSwgMSkpCkBAIC0zNiw2ICszNyw4NiBAQCBsb2NhbCBmdW5jdGlv biB0ZXN0X29mZnNldHModGVzdCwgcykKwqAgwqAgwqB0ZXN0Om9rKG5vdCBwY2FsbChzLmRlY29k ZSwgZHVtcCwgb2Zmc2V0KSwgImludmFsaWQgb2Zmc2V0IikKwqBlbmQKwqAKK2xvY2FsIGZ1bmN0 aW9uIHRlc3RfY29uZmlncyh0ZXN0LCBzKQorIMKgIMKgdGVzdDpwbGFuKDI2KQorIMKgIMKgLS0K KyDCoCDCoC0tIGdoLTQ0OTk6IGZmaSBtb2R1bGUgc2hvdWxkIGNvbnNpZGVyIG1zZ3BhY2suY2Zn IG9wdGlvbnMKKyDCoCDCoC0tCisKKyDCoCDCoC0tIG9ubHkgZXhjZXNzaXZlbHkgc3BhcnNlIGFy cmF5cyBzaG91bGQgYmUgZW5jb2RlZCBhcyBtYXBzLAorIMKgIMKgLS0gaS5lLiBlbmNvZGVfc3Bh cnNlX3JhdGlvID4gMCAmJiBtYXhfaWR4ID4gZW5jb2RlX3NwYXJzZV9zYWZlCisgwqAgwqAtLSAm JiBtYXhfaWR4ID4gbnVtKGVsZW1lbnRzKSAqIGVuY29kZV9zcGFyc2VfcmF0aW8KKyDCoCDCoHRl c3Q6b2soaXNfYXJyYXkocy5lbmNvZGUoeyBbMV0gPSAxLCBbM10gPSAzLCBbNF0gPSAzIH0pKSwK KyDCoCDCoCDCoCDCoCJub3QgZXhjZXNzaXZlbHkgc3BhcnNlIikKKyDCoCDCoHRlc3Q6b2soaXNf YXJyYXkocy5lbmNvZGUoeyBbMV0gPSAxLCBbMl0gPSAyLCBbM10gPSAzLCBbNF0gPSA0LCBbNV0g PSA1LAorIMKgIMKgIMKgIMKgWzExXSA9IDYgfSkpLCAic3RpbGwgbm90IGV4Y2Vzc2l2ZWx5IHNw YXJzZSIpCisgwqAgwqB0ZXN0Om9rKGlzX21hcChzLmVuY29kZSh7IFsxXSA9IDEsIFsyXSA9IDIs IFsxMDBdID0gMyB9KSksCisgwqAgwqAgwqAgwqAiaXMgZXhjZXNzaXZlbHkgc3BhcnNlIikKKwor IMKgIMKgbXNncGFjay5jZmcoe2VuY29kZV9zcGFyc2VfY29udmVydCA9IGZhbHNlfSkKKyDCoCDC oGxvY2FsIG9rLCBfID0gcGNhbGwocy5lbmNvZGUoKSwgeyBbMV0gPSAxLCBbMl0gPSAyLCBbMTAw XSA9IDMgfSkKKyDCoCDCoHRlc3Q6b2sobm90IG9rLCAiY29udmVyc2lvbiBvZiBzcGFyc2UgdGFi bGVzIGlzIG1hbnVhbGx5IHByb2hpYml0ZWQiKQorCisgwqAgwqAtLSB0ZXN0aW5nIChlbi9kZSlj b2Rpbmcgb2YgaW52YWxpZCBudW1iZXJzCisgwqAgwqBsb2NhbCBpbmYgPSAxLzAKKyDCoCDCoGxv Y2FsIG1pbmYgPSAtMS8wCisgwqAgwqBsb2NhbCBuYW4gPSAwLzAKKworIMKgIMKgdGVzdDpvayhz LmRlY29kZShzLmVuY29kZShpbmYpKSwgImRlY29kZSAmIGVuY29kZSBmb3IgaW5mIikKKyDCoCDC oHRlc3Q6b2socy5kZWNvZGUocy5lbmNvZGUobWluZikpLCAiZGVjb2RlICYgZW5jb2RlIGZvciBt aW5mIikKKyDCoCDCoHRlc3Q6b2socy5kZWNvZGUocy5lbmNvZGUobmFuKSksICJkZWNvZGUgJiBl bmNvZGUgZm9yIG5hbiIpCisKKyDCoCDCoG1zZ3BhY2suY2ZnKHtlbmNvZGVfaW52YWxpZF9udW1i ZXJzID0gZmFsc2V9KQorIMKgIMKgdGVzdDpvayhub3QgcGNhbGwocy5lbmNvZGUsIGluZiksICJw cm9oaWJpdGVkIGVuY29kZSBmb3IgaW5mIikKKyDCoCDCoHRlc3Q6b2sobm90IHBjYWxsKHMuZW5j b2RlLCBtaW5mKSwgInByb2hpYml0ZWQgZW5jb2RlIGZvciBtaW5mIikKKyDCoCDCoHRlc3Q6b2so bm90IHBjYWxsKHMuZW5jb2RlLCBuYW4pLCAicHJvaGliaXRlZCBlbmNvZGUgZm9yIG5hbiIpCisK KyDCoCDCoG1zZ3BhY2suY2ZnKHtkZWNvZGVfaW52YWxpZF9udW1iZXJzID0gZmFsc2V9KQorIMKg IMKgdGVzdDpvayhub3QgcGNhbGwocy5kZWNvZGUsIGluZiksICJwcm9oaWJpdGVkIGRlY29kZSBm b3IgaW5mIikKKyDCoCDCoHRlc3Q6b2sobm90IHBjYWxsKHMuZGVjb2RlLCBtaW5mKSwgInByb2hp Yml0ZWQgZGVjb2RlIGZvciBtaW5mIikKKyDCoCDCoHRlc3Q6b2sobm90IHBjYWxsKHMuZGVjb2Rl LCBuYW4pLCAicHJvaGliaXRlZCBkZWNvZGUgZm9yIG5hbiIpCisKKyDCoCDCoC0tIGludmFsaWQg bnVtYmVycyBjYW4gYWxzbyBiZSBlbmNvZGVkIGFzIG5pbCB2YWx1ZXMKKyDCoCDCoG1zZ3BhY2su Y2ZnKHtkZWNvZGVfaW52YWxpZF9udW1iZXJzID0gdHJ1ZSwgZW5jb2RlX2ludmFsaWRfYXNfbmls ID0gdHJ1ZX0pCisgwqAgwqB0ZXN0OmlzKHMuZGVjb2RlKHMuZW5jb2RlKGluZikpLCBuaWwsICJp bnZhbGlkX2FzX25pbCBmb3IgaW5mIikKKyDCoCDCoHRlc3Q6aXMocy5kZWNvZGUocy5lbmNvZGUo bWluZikpLCBuaWwsICJpbnZhbGlkX2FzX25pbCBmb3IgbWluZiIpCisgwqAgwqB0ZXN0OmlzKHMu ZGVjb2RlKHMuZW5jb2RlKG5hbikpLCBuaWwsICJpbnZhbGlkX2FzX25pbCBmb3IgbmFuIikKKwor IMKgIMKgLS0gd2hldGhlciBfX3NlcmlhbGl6ZSBtZXRhLXZhbHVlIGNoZWNraW5nIGlzIGVuYWJs ZWQKKyDCoCDCoGxvY2FsIGFyciA9IHNldG1ldGF0YWJsZSh7MSwgMiwgMywgazEgPSAndjEnLCBr MiA9ICd2MicsIDQsIDV9LAorIMKgIMKgIMKgIMKgeyBfX3NlcmlhbGl6ZSA9ICdzZXEnfSkKKyDC oCDCoGxvY2FsIG1hcCA9IHNldG1ldGF0YWJsZSh7MSwgMiwgMywgNCwgNX0sIHsgX19zZXJpYWxp emUgPSAnbWFwJ30pCisgwqAgwqBsb2NhbCBvYmogPSBzZXRtZXRhdGFibGUoe30sIHsKKyDCoCDC oCDCoCDCoF9fc2VyaWFsaXplID0gZnVuY3Rpb24oeCkgcmV0dXJuICdzZXJpYWxpemUnIGVuZAor IMKgIMKgfSkKKworIMKgIMKgLS0gdGVzdGluZyBlbmNvZGUgbWV0YXRhYmxlcworIMKgIMKgbXNn cGFjay5jZmd7ZW5jb2RlX2xvYWRfbWV0YXRhYmxlcyA9IGZhbHNlfQorIMKgIMKgdGVzdDpvayhp c19tYXAocy5lbmNvZGUoYXJyKSksICJhcnJheSBpZ25vcmUgX19zZXJpYWxpemUiKQorIMKgIMKg dGVzdDpvayhpc19hcnJheShzLmVuY29kZShtYXApKSwgIm1hcCBpZ25vcmUgX19zZXJpYWxpemUi KQorIMKgIMKgdGVzdDpvayhpc19hcnJheShzLmVuY29kZShvYmopKSwgIm9iamVjdCBpZ25vcmUg X19zZXJpYWxpemUiKQorCisgwqAgwqBtc2dwYWNrLmNmZ3tlbmNvZGVfbG9hZF9tZXRhdGFibGVz ID0gdHJ1ZX0KKyDCoCDCoHRlc3Q6b2soaXNfYXJyYXkocy5lbmNvZGUoYXJyKSksICJhcnJheSBs b2FkIF9fc2VyaWFsaXplIikKKyDCoCDCoHRlc3Q6b2soaXNfbWFwKHMuZW5jb2RlKG1hcCkpLCAi bWFwIGxvYWQgX19zZXJpYWxpemUiKQorIMKgIMKgdGVzdDppcyhzLmRlY29kZShzLmVuY29kZShv YmopKSwgInNlcmlhbGl6ZSIsICJvYmplY3QgbG9hZCBfX3NlcmlhbGl6ZSIpCisKKyDCoCDCoC0t IHRlc3RpbmcgZGVjb2RlIG1ldGF0YWJsZXMKKyDCoCDCoG1zZ3BhY2suY2Zne2RlY29kZV9zYXZl X21ldGF0YWJsZXMgPSBmYWxzZX0KKyDCoCDCoHRlc3Q6aXNuaWwoZ2V0bWV0YXRhYmxlKHMuZGVj b2RlKHMuZW5jb2RlKGFycikpKSwgImFycmF5IF9fc2VyaWFsaXplIikKKyDCoCDCoHRlc3Q6aXNu aWwoZ2V0bWV0YXRhYmxlKHMuZGVjb2RlKHMuZW5jb2RlKG1hcCkpKSwgIm1hcCBfX3NlcmlhbGl6 ZSIpCisKKyDCoCDCoG1zZ3BhY2suY2Zne2RlY29kZV9zYXZlX21ldGF0YWJsZXMgPSB0cnVlfQor IMKgIMKgdGVzdDppcyhnZXRtZXRhdGFibGUocy5kZWNvZGUocy5lbmNvZGUoYXJyKSkpLl9fc2Vy aWFsaXplLCAic2VxIiwKKyDCoCDCoCDCoCDCoCJhcnJheSBzYXZlIF9fc2VyaWFsaXplIikKKyDC oCDCoHRlc3Q6aXMoZ2V0bWV0YXRhYmxlKHMuZGVjb2RlKHMuZW5jb2RlKG1hcCkpKS5fX3Nlcmlh bGl6ZSwgIm1hcCIsCisgwqAgwqAgwqAgwqAibWFwIHNhdmUgX19zZXJpYWxpemUiKQorCisgwqAg wqAtLSBhcHBseWluZyBkZWZhdWx0IGNvbmZpZ3MKKyDCoCDCoG1zZ3BhY2suY2ZnKHtlbmNvZGVf c3BhcnNlX2NvbnZlcnQgPSB0cnVlLCBlbmNvZGVfaW52YWxpZF9udW1iZXJzID0gdHJ1ZSwKKyDC oCDCoGVuY29kZV9pbnZhbGlkX2FzX25pbCA9IGZhbHNlfSkKK2VuZAorCsKgbG9jYWwgZnVuY3Rp b24gdGVzdF9vdGhlcih0ZXN0LCBzKQrCoCDCoCDCoHRlc3Q6cGxhbigyNCkKwqAgwqAgwqBsb2Nh bCBidWYgPSBzdHJpbmcuY2hhcigweDkzLCAweDZlLCAweGNiLCAweDQyLCAweDJiLCAweGVkLCAw eDMwLCAweDQ3LApAQCAtODIsNyArMTYzLDYgQEAgbG9jYWwgZnVuY3Rpb24gdGVzdF9vdGhlcih0 ZXN0LCBzKQrCoCDCoCDCoCDCoCDCoHdoaWxlIHQgfj0gbmlsIGRvIGxldmVsID0gbGV2ZWwgKyAx IHQgPSB0WzFdIGVuZArCoCDCoCDCoCDCoCDCoHJldHVybiBsZXZlbArCoCDCoCDCoGVuZAotIMKg IMKgbG9jYWwgbXNncGFjayA9IHJlcXVpcmUoJ21zZ3BhY2snKQrCoCDCoCDCoGxvY2FsIGRlZXBf YXNfbmlsID0gbXNncGFjay5jZmcuZW5jb2RlX2RlZXBfYXNfbmlsCsKgIMKgIMKgbXNncGFjay5j Zmcoe2VuY29kZV9kZWVwX2FzX25pbCA9IHRydWV9KQrCoCDCoCDCoGxvY2FsIG1heF9kZXB0aCA9 IG1zZ3BhY2suY2ZnLmVuY29kZV9tYXhfZGVwdGgKQEAgLTExOCw3ICsxOTgsNyBAQCBlbmQKwqAK wqB0YXAudGVzdCgibXNncGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpCsKgIMKgIMKgbG9jYWwgc2Vy aWFsaXplciA9IHJlcXVpcmUoJ21zZ3BhY2tmZmknKQotIMKgIMKgdGVzdDpwbGFuKDExKQorIMKg IMKgdGVzdDpwbGFuKDEyKQrCoCDCoCDCoHRlc3Q6dGVzdCgidW5zaWduZWQiLCBjb21tb24udGVz dF91bnNpZ25lZCwgc2VyaWFsaXplcikKwqAgwqAgwqB0ZXN0OnRlc3QoInNpZ25lZCIsIGNvbW1v bi50ZXN0X3NpZ25lZCwgc2VyaWFsaXplcikKwqAgwqAgwqB0ZXN0OnRlc3QoImRvdWJsZSIsIGNv bW1vbi50ZXN0X2RvdWJsZSwgc2VyaWFsaXplcikKQEAgLTEzMCw2ICsyMTAsNyBAQCB0YXAudGVz dCgibXNncGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpCsKgIMKgIMKgLS0gdWRhdGEvY2RhdGEgaG9v a3MgYXJlIG5vdCBpbXBsZW1lbnRlZArCoCDCoCDCoC0tdGVzdDp0ZXN0KCJ1Y2RhdGEiLCBjb21t b24udGVzdF91Y2RhdGEsIHNlcmlhbGl6ZXIpCsKgIMKgIMKgdGVzdDp0ZXN0KCJvZmZzZXRzIiwg dGVzdF9vZmZzZXRzLCBzZXJpYWxpemVyKQorIMKgIMKgdGVzdDp0ZXN0KCJjb25maWdzIiwgdGVz dF9jb25maWdzLCBzZXJpYWxpemVyKQrCoCDCoCDCoHRlc3Q6dGVzdCgib3RoZXIiLCB0ZXN0X290 aGVyLCBzZXJpYWxpemVyKQrCoCDCoCDCoHRlc3Q6dGVzdCgiZGVjb2RlX2J1ZmZlciIsIGNvbW1v bi50ZXN0X2RlY29kZV9idWZmZXIsIHNlcmlhbGl6ZXIpCsKgZW5kKQpkaWZmIC0tZ2l0IGEvc3Jj L2x1YS9tc2dwYWNrLmMgYi9zcmMvbHVhL21zZ3BhY2suYwppbmRleCBlZGJjMTViNzIuLjEzM2Iy YjUyNyAxMDA2NDQKLS0tIGEvc3JjL2x1YS9tc2dwYWNrLmMKKysrIGIvc3JjL2x1YS9tc2dwYWNr LmMKQEAgLTk1LDcgKzk1LDYgQEAgbHVhbXBfZGVjb2RlX2V4dGVuc2lvbl9kZWZhdWx0KHN0cnVj dCBsdWFfU3RhdGUgKkwsIGNvbnN0IGNoYXIgKipkYXRhKQrCoMKgwqAgwqDCoMKgIMKgIMKgICh1 bnNpZ25lZCBjaGFyKSAqKmRhdGEpOwrCoH0KwqAKLQrCoHZvaWQKwqBsdWFtcF9zZXRfZGVjb2Rl X2V4dGVuc2lvbihsdWFtcF9kZWNvZGVfZXh0ZW5zaW9uX2YgaGFuZGxlcikKwqB7Ci0twqAKMi4y NC4wCj7CoAo+Pgo+PtCh0YDQtdC00LAsIDE4INC00LXQutCw0LHRgNGPIDIwMTksIDI6MjYgKzAz OjAwINC+0YIgQWxleGFuZGVyIFR1cmVua28gPGFsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5v cmc+Ogo+PsKgCj4+U29ycnkgYWdhaW4gZm9yIHRoZSBsYXRlIHJlcGx5Lgo+Pgo+Pj4gPsKgSSB0 aGluayB3ZSBhbHNvIHNob3VsZCBpbXBsZW1lbnQgZW5jb2RlX3NwYXJzZV8qIG9wdGlvbnMgdG8K Pj4+ID4gYmXCoGNvbXBhdGlibGUgd2l0aCBtc2dwYWNrIG1vZHVsZS4KPj4+Cj4+PiBDb3VsZCB5 b3UgcGxlYXNlwqBleHBsYWluIGhvdyBkbyB5b3UgcHJvcG9zZSB0byBpbXBsZW1lbnQgdGhlbT8g SXQKPj4+IHNlZW1zwqB0byBtZSB0aGUgcHVycG9zZSBvZiB0aG9zZSBjb25maWdzIGlzIHRvIGhh bmRsZSBleGNlc3NpdmVseQo+Pj4gc3BhcnNlIGFycmF5cyBhcyBtYXBzIChhcyBzdGF0ZWQgaW7C oHNyYy9sdWEvdXRpbHMuaCkuIFdoaWNoIGRvZXMgbm90Cj4+PiBzZWVtIHJlbGV2YW50IHRvIGx1 YSBtb2R1bGUgd2hlcmUgdGhlIG9ubHkgY29udGFpbmVyIHR5cGUgaXMgdGFibGUuCj4+PiBXaGF0 IGRvIEkgbWlzcyBoZXJlP8KgCj4+Cj4+SXQgaXMgYWJvdXQgZW5jb2RpbmcsIG5vdCBkZWNvZGlu ZzogZW5jb2RlIGEgTHVhIHRhYmxlIHdpdGggbnVtZXJpYyBrZXlzCj4+YXMgTVBfQVJSQVksIE1Q X01BUCBvciBnaXZlIGFuIGVycm9yLiBJdCBzZWVtcyB0aGF0IG5vdGhpbmcgcHJldmVudCB1cwo+ PmZyb20gaW1wbGVtZW50aW5nIHRoaXMgbG9naWMgb24gTHVhLgo+Pgo+Pj4gU3ViamVjdDogW1BB VENIIDEvMl0gTXNncGFja2ZmaSBjb25zaWRlcnMgbXNncGFjay5jZmcgb3B0aW9ucyBub3cKPj4+ IE1zZ3BhY2suY2ZnIG9wdGlvbnMgY2hhbmdlcyBkaWQgbm90IGFmZmVjdCBtc2dwYWNrZmZpIHNl cmlhbGl6ZXIgc3RhdGUuCj4+PiBUaGlzIHBhdGNoIGZpeGVzIGl0IGZvciBvcHRpb25zIGVuY29k ZV9sb2FkX21ldGF0YWJsZXMsIGRlY29kZV8gYW5kCj4+PiBlbmNvZGVfaW52YWxpZF9udW1iZXJz LCBlbmNvZGVfdXNlX3Rvc3RyaW5nIGFuZCBlbmNvZGVfaW52YWxpZF9hc19uaWwuCj4+PiBDbG9z ZXMgIzQ0OTkKPj4+IC0tLQo+Pj4gSXNzdWU6Cj4+PiAgaHR0cHM6Ly9naXRodWIuY29tL3RhcmFu dG9vbC90YXJhbnRvb2wvaXNzdWVzLzQ0OTkKPj4+IEJyYW5jaDoKPj4+ICBodHRwczovL2dpdGh1 Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2VsamFzaG0vZ2gtNDQ5OS1tc2dwYWNr ZmZpLWlnbm9yZXMtbXNncGFjay5jZmctb3B0aW9ucwo+Pgo+Pj4gQEAgLTI2MSw2ICsyNjMsMTkg QEAgbG9jYWwgZnVuY3Rpb24gZW5jb2RlX3IoYnVmLCBvYmosIGxldmVsKQo+Pj4gwqAgwqAgwqAg wqAgwqBlbHNlCj4+PiDCoCDCoCDCoCDCoCDCoCDCoCDCoGVycm9yKCJJbnZhbGlkIF9fc2VyaWFs aXplIHZhbHVlIikKPj4+IMKgIMKgIMKgIMKgIMKgZW5kCj4+PiArIMKgIMKgZWxzZWlmIHR5cGUo b2JqKSA9PSBtYXRoLmh1Z2Ugb3IgdHlwZShvYmopID09IC1tYXRoLmh1Z2Ugb3LCoAo+Pj4gKyDC oCDCoCDCoCDCoHR5cGUob2JqKSA9PSBtYXRoLm5hbiB0aGVuCj4+PiArIMKgIMKgIMKgIMKgaWYg bXNncGFjay5jZmcuZW5jb2RlX2ludmFsaWRfbnVtYmVycyB0aGVuCj4+PiArIMKgIMKgIMKgIMKg IMKgIMKgaWYgb2JqID09IG1hdGguaHVnZSB0aGVuCj4+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgb2JqID0gMS8wCj4+PiArIMKgIMKgIMKgIMKgIMKgIMKgZWxzZWlmIG9iaiA9PSAtbWF0aC5o dWdlIHRoZW4KPj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBvYmogPSAtMS8wCj4+PiArIMKg IMKgIMKgIMKgIMKgIMKgZWxzZQo+Pj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoG9iaiA9IDAv MAo+Pj4gKyDCoCDCoCDCoCDCoCDCoCDCoGVuZAo+Pj4gKyDCoCDCoCDCoCDCoGVsc2UKPj4+ICsg wqAgwqAgwqAgwqAgwqAgwqBlbmNvZGVfbmlsKGJ1ZikKPj4+ICsgwqAgwqAgwqAgwqBlbmQKPj4K Pj5JIHdvdWxkIHNhdmUgMS8wLCAtMS8wLCAwLzAgYXMgbW9kdWxlIGxvY2FsIHZhcmlhYmxlcyBm b3IgcmVhZGFiaWxpdHksCj4+bGlrZSBhcyBpdCBpcyBkb25lIGluIHRlc3RfZG91YmxlKCkuCj4+ Cj4+SSBhbHNvIGZvdW5kIHRoYXQgbWF0aC5odWdlIGlzIDEvMCAoaW5mKSBhbmQgdGhlcmUgaXMg bm8gbWF0aC5uYW4gKGl0Cj4+anVzdCBuaWwpLgo+Pgo+Pj4gQEAgLTU2Miw2ICs1ODksMTUgQEAg ZGVjb2RlX3IgPSBmdW5jdGlvbihkYXRhKQo+Pj4gwqAgwqAgwqBlbHNlaWYgYyA+PSAweGUwIHRo ZW4KPj4+IMKgIMKgIMKgIMKgIMKgcmV0dXJuIHRvbnVtYmVyKGZmaS5jYXN0KCdzaWduZWQgY2hh cicsYykpIC0tIG5lZ2ZpeGludAo+Pj4gwqAgwqAgwqBlbHNlaWYgYyA9PSAweGMwIHRoZW4KPj4+ ICsgwqAgwqAgwqAgwqBpZiBtc2dwYWNrLmNmZy5kZWNvZGVfaW52YWxpZF9udW1iZXJzIHRoZW4K Pj4+ICsgwqAgwqAgwqAgwqAgwqAgwqBpZiBjID09IDAvMCB0aGVuCj4+PiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgcmV0dXJuIG1hdGgubmFuCj4+PiArIMKgIMKgIMKgIMKgIMKgIMKgZWxzZWlm IGMgPT0gMS8wIHRoZW4KPj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gbWF0aC5o dWdlCj4+PiArIMKgIMKgIMKgIMKgIMKgIMKgZWxzZWlmIGMgPT0gLTEvMCB0aGVuCj4+PiArIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgcmV0dXJuIC1tYXRoLmh1Z2UKPj4+ICsgwqAgwqAgwqAgwqAg wqAgwqBlbmQKPj4+ICsgwqAgwqAgwqAgwqBlbmQKPj4KPj5TYW1lIGFzIGFib3ZlLgo+Pgo+Pj4g QEAgLTYyOCw2ICs2NjQsOCBAQCByZXR1cm4gewo+Pj4gwqAgwqAgwqBvbl9lbmNvZGUgPSBvbl9l bmNvZGU7Cj4+PiDCoCDCoCDCoGRlY29kZV91bmNoZWNrZWQgPSBkZWNvZGVfdW5jaGVja2VkOwo+ Pj4gwqAgwqAgwqBkZWNvZGUgPSBkZWNvZGVfdW5jaGVja2VkOyAtLSBqdXN0IGZvciB0ZXN0cwo+ Pj4gKyDCoCDCoGNmZyA9IG1zZ3BhY2suY2ZnOwo+Pj4gKyDCoCDCoG5ldyA9IG1zZ3BhY2submV3 OyAtLSBmb3Igc2VyaWFsaXplciB0ZXN0cyB0byB3b3JrIHByb3Blcmx5Cj4+Cj4+U28gdGhleSds bCB0ZXN0IG1zZ3BhY2ssIG5vdCBtc2dwYWNrZmZpLiAKPsKgCj7CoAo+LS0KPk1hcmlhIEtoYXlk aWNoCj7CoA== ----ALT--b78597BD0d869694C35B51955aF0b7Df1579887464 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+VGhhbmsgeW91IGZvciB0aGUgcmV2aWV3ISBBbGwgZG9uZSBub3c6 PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2Pk1zZ3BhY2suY2ZnIHJlY29uZmlndXJhdGlvbiBk aWQgbm90IGFmZmVjdCBmZmkgbW9kdWxlIGJlaGF2aW9yLiBUaGlzPGJyPnBhdGNoIGZpeGVzIGl0 IGZvciBhbGwgdGhlIG9wdGlvbnMgdGhhdCB3ZXJlIG5vdCB5ZXQgY292ZXJlZCBlbHNld2hlcmU6 PGJyPmVuY29kZV9zcGFyc2VfY29udmVydCwgZW5jb2RlX3NwYXJzZV9yYXRpbywgZW5jb2RlX3Nw YXJzZV9zYWZlLDxicj5lbmNvZGVfaW52YWxpZF9udW1iZXJzICZhbXA7IGRlY29kZV9pbnZhbGlk X251bWJlcnMsPGJyPmVuY29kZV9sb2FkX21ldGF0YWJsZXMgJmFtcDsgZGVjb2RlX3NhdmVfbWV0 YXRhYmxlcyw8YnI+ZW5jb2RlX3VzZV90b3N0cmluZywgZW5jb2RlX2ludmFsaWRfYXNfbmlsLjwv ZGl2PjxkaXY+TW9zdCBvZiBjb21tb24gc2VyaWFsaXplcnMnIHRlc3Qgd2VyZSBub3QgYXBwbGlj YWJsZSB0byBtc2dwYWNrZmZpIHNpbmNlPGJyPml0IGhhcyBubyBjZmcgZmllbGQgb2YgaXRzIG93 bi4gVGhpcyBpc3N1ZSB3YXMgYWxzbyBzb2x2ZWQuPC9kaXY+PGRpdj5DbG9zZXMgIzQ0OTk8YnI+ LS0tPGJyPklzc3VlOjxicj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9p c3N1ZXMvNDQ5OTxicj5CcmFuY2g6PGJyPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL2NvbXBhcmUvZWxqYXNobS9naC00NDk5LW1zZ3BhY2tmZmktaWdub3Jlcy1tc2dwYWNr LmNmZy1vcHRpb25zPC9kaXY+PGRpdj4mbmJzcDtzcmMvbHVhL21zZ3BhY2suYyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDt8ICZuYnNwOzEgLTxicj4mbmJzcDtzcmMvbHVhL21zZ3BhY2suaCAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt8ICZu YnNwOzIgKy08YnI+Jm5ic3A7c3JjL2x1YS9tc2dwYWNrZmZpLmx1YSAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCA3MCArKysrKysrKysrKysrKysrKysr LS0tLTxicj4mbmJzcDtzcmMvbHVhL3V0aWxzLmggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgJm5ic3A7 MiArLTxicj4mbmJzcDt0ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWEgfCAmbmJz cDs3ICsrLTxicj4mbmJzcDt0ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YSAmbmJzcDsg Jm5ic3A7IHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrLTxicj4mbmJzcDs2IGZpbGVz IGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSk8L2Rpdj48ZGl2PmRp ZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2suaCBiL3NyYy9sdWEvbXNncGFjay5oPGJyPmluZGV4 IGQwYWRlMzAzZi4uMWU2MGYwYTVkIDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL21zZ3BhY2suaDxi cj4rKysgYi9zcmMvbHVhL21zZ3BhY2suaDxicj5AQCAtNDcsNyArNDcsNyBAQCBzdHJ1Y3QgbXBz dHJlYW07PGJyPiZuYnNwOy8qKjxicj4mbmJzcDsgKiBEZWZhdWx0IGluc3RhbmNlIG9mIG1zZ3Bh Y2sgc2VyaWFsaXplciAobXNncGFjayA9IHJlcXVpcmUoJ21zZ3BhY2snKSkuPGJyPiZuYnNwOyAq IFRoaXMgaW5zdGFuY2UgaXMgdXNlZCBieSBhbGwgYm94J3MgTHVhL0MgQVBJIGJpbmRpbmdzIChl LmcuIHNwYWNlOnJlcGxhY2UoKSkuPGJyPi0gKiBBbGwgY2hhbmdlcyBtYWRlIGJ5IG1zZ3BhY2su Y2Zne30gZnVuY3Rpb24gYXJlIGFsc28gYWZmZWN0IGJveCdzIGJpbmRpbmdzPGJyPisgKiBBbGwg Y2hhbmdlcyBtYWRlIGJ5IG1zZ3BhY2suY2Zne30gZnVuY3Rpb24gYWxzbyBhZmZlY3QgYm94J3Mg YmluZGluZ3M8YnI+Jm5ic3A7ICogKHRoaXMgaXMgYSBmZWF0dXJlKS48YnI+Jm5ic3A7ICovPGJy PiZuYnNwO2V4dGVybiBzdHJ1Y3QgbHVhTF9zZXJpYWxpemVyICpsdWFMX21zZ3BhY2tfZGVmYXVs dDs8YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvbXNncGFja2ZmaS5sdWEgYi9zcmMvbHVhL21zZ3Bh Y2tmZmkubHVhPGJyPmluZGV4IGY3NzVmMmQ0MS4uMTU5YTY1MmI5IDEwMDY0NDxicj4tLS0gYS9z cmMvbHVhL21zZ3BhY2tmZmkubHVhPGJyPisrKyBiL3NyYy9sdWEvbXNncGFja2ZmaS5sdWE8YnI+ QEAgLTIwNiw2ICsyMDYsMTAgQEAgbG9jYWwgZnVuY3Rpb24gZW5jb2RlX25pbChidWYpPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7cFswXSA9IDB4YzA8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4r bG9jYWwgaW5mID0gMS8wPGJyPitsb2NhbCBtaW5mID0gLTEvMDxicj4rbG9jYWwgbmFuID0gMC8w PGJyPis8YnI+Jm5ic3A7bG9jYWwgZnVuY3Rpb24gZW5jb2RlX3IoYnVmLCBvYmosIGxldmVsKTxi cj4mbmJzcDs6OnJlc3RhcnQ6Ojxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2lmIHR5cGUob2JqKSA9 PSAibnVtYmVyIiB0aGVuPGJyPkBAIC0yMTMsNiArMjE3LDE0IEBAIGxvY2FsIGZ1bmN0aW9uIGVu Y29kZV9yKGJ1Ziwgb2JqLCBsZXZlbCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2lmIG9iaiAlIDEgPT0gMCBhbmQgb2JqICZndDsgLTFlNjMgYW5kIG9iaiAmbHQ7IDFlNjQg dGhlbjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtl bmNvZGVfaW50KGJ1Ziwgb2JqKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZWxzZTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKG9i aiA9PSBpbmYgb3Igb2JqID09IG1pbmYgb3IgdG9zdHJpbmcob2JqKSA9PSAibmFuIikgYW5kPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtub3QgbXNncGFjay5j ZmcuZW5jb2RlX2ludmFsaWRfbnVtYmVycyB0aGVuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIG1zZ3BhY2suY2ZnLmVuY29kZV9p bnZhbGlkX2FzX25pbCB0aGVuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5jb2RlX25pbChidWYpPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vs c2U8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtlcnJvcigiSW52YWxpZCBudW1iZXJzIGVuY29kaW5nIGlzIG1h bnVhbGx5IHByb2hpYml0ZWQiKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2VuZDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtlbmNvZGVfZG91YmxlKGJ1Ziwgb2JqKTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ZW5kPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZWxzZWlmIHR5cGUo b2JqKSA9PSAic3RyaW5nIiB0aGVuPGJyPkBAIC0yMjcsMjggKzIzOSw0NiBAQCBsb2NhbCBmdW5j dGlvbiBlbmNvZGVfcihidWYsIG9iaiwgbGV2ZWwpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ZW5kPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsb2Nh bCBzZXJpYWxpemUgPSBuaWw8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsb2NhbCBt dCA9IGdldG1ldGF0YWJsZShvYmopPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYg bXQgfj0gbmlsIHRoZW48YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3NlcmlhbGl6ZSA9IG10Ll9fc2VyaWFsaXplPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYgbXNncGFjay5jZmcuZW5jb2RlX2xvYWRfbWV0YXRhYmxlcyB0aGVuPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsb2NhbCBtdCA9IGdldG1ldGF0 YWJsZShvYmopPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp ZiBtdCB+PSBuaWwgdGhlbjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtzZXJpYWxpemUgPSBtdC5fX3NlcmlhbGl6ZTxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5kPGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOy0tIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGFycmF5IGFuZCBtYXAgZWxlbWVudHMgaW4g dGhlIHRhYmxlPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstLSBUT0RPOiBw YWlycygpIGFib3J0cyBKSVQ8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsb2NhbCBh cnJheV9jb3VudCwgbWFwX2NvdW50ID0gMCwgMDxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2ZvciBrZXkgaW4gcGFpcnMob2JqKSBkbzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7aWYgdHlwZShrZXkpID09ICdudW1iZXInIGFuZCBrZXkgJmd0Oz0g MSBhbmQ8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsga2V5ID09IG1hdGguZmxvb3Ioa2V5KSBhbmQga2V5ID09IGFycmF5X2NvdW50ICsgMSB0aGVu PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bG9jYWwgYXJyYXlfY291bnQsIG1hcF9j b3VudCwgbWF4X2lkeCA9IDAsIDAsIDA8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtm b3Iga2V5LCBlbCBpbiBwYWlycyhvYmopIGRvPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiB0eXBlKGtleSkgPT0gJ251bWJlcicgYW5kIGtleSAmZ3Q7PSAx IGFuZCZuYnNwOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 a2V5ID09IG1hdGguZmxvb3Ioa2V5KSB0aGVuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YXJyYXlfY291bnQgPSBhcnJheV9j b3VudCArIDE8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7aWYga2V5ICZndDsgbWF4X2lkeCB0aGVuPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bWF4 X2lkeCA9IGtleTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtlbmQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ZWxzZTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO21hcF9jb3VudCA9IG1hcF9jb3VudCArIDE8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5kPGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtpZiAoc2VyaWFsaXplID09IG5pbCBhbmQgbWFwX2NvdW50ID09IDApIG9yIHNlcmlh bGl6ZSA9PSAnYXJyYXknIG9yPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtzZXJpYWxpemUgPT0gJ3NlcScgb3Igc2VyaWFsaXplID09ICdzZXF1ZW5jZScgdGhl bjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0tIGV4Y2Vzc2l2ZWx5IHNwYXJzZSB0 YWJsZXMgc2hvdWxkIGJlIGVuY29kZWQgYXMgbWFwczxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2xvY2FsIGlzX2V4Y2Vzc2l2ZWx5X3NwYXJzZSA9IGZhbHNlPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7aWYgbXNncGFjay5jZmcuZW5jb2RlX3NwYXJzZV9yYXRpbyBhbmQ8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO21heF9pZHggJmd0 OyBtc2dwYWNrLmNmZy5lbmNvZGVfc3BhcnNlX3NhZmUgYW5kPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDttYXhfaWR4ICZndDsgYXJyYXlfY291bnQgKiBtc2dw YWNrLmNmZy5lbmNvZGVfc3BhcnNlX3JhdGlvIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgbm90IG1zZ3BhY2suY2ZnLmVu Y29kZV9zcGFyc2VfY29udmVydCB0aGVuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXJyb3Ioc3RyaW5nLmZv cm1hdCgiQ2FuXCd0IGVuY29kZSBleGNlc3NpdmVseSAiLi48YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsic3Bh cnNlIHRhYmxlcyB3aGVuIGVuY29kZV9zcGFyc2VfY29udmVydCAiLi48YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsiY29uZmlndXJhdGlvbiBvcHRpb24gaXMgc2V0IHRvIGZhbHNlIikpPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuZDxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpc19l eGNlc3NpdmVseV9zcGFyc2UgPSB0cnVlPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZW5kPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKG5vdCBpc19leGNlc3NpdmVs eV9zcGFyc2UpIGFuZCAoIHNlcmlhbGl6ZSA9PSAnYXJyYXknIG9yPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzZXJpYWxpemUgPT0gJ3NlcScgb3Igc2VyaWFs aXplID09ICdzZXF1ZW5jZScgb3I8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyhzZXJpYWxpemUgPT0gbmlsIGFuZCBtYXBfY291bnQgPT0gMCkgKSB0aGVuPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuY29kZV9h cnJheShidWYsIGFycmF5X2NvdW50KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtmb3IgaT0xLGFycmF5X2NvdW50LDEgZG88YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmNvZGVf cihidWYsIG9ialtpXSwgbGV2ZWwgKyAxKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtl bHNlaWYgKHNlcmlhbGl6ZSA9PSBuaWwgYW5kIG1hcF9jb3VudCAmZ3Q7IDApIG9yPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZWxzZWlmIHNlcmlhbGl6ZSA9PSBuaWwgb3IgaXNfZXhj ZXNzaXZlbHlfc3BhcnNlIG9yPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO3NlcmlhbGl6ZSA9PSAnbWFwJyBvciBzZXJpYWxpemUgPT0gJ21hcHBpbmcn IHRoZW48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZW5jb2RlX21hcChidWYsIGFycmF5X2NvdW50ICsgbWFwX2NvdW50KTxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmb3Iga2V5LCB2YWwgaW4gcGFpcnMo b2JqKSBkbzxicj5AQCAtMjc4LDcgKzMwOCwxOCBAQCBsb2NhbCBmdW5jdGlvbiBlbmNvZGVfcihi dWYsIG9iaiwgbGV2ZWwpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2Vycm9yKCJjYW4gbm90IGVuY29kZSBGRkkgdHlwZTogJyIuLmZmaS50eXBlb2Yo b2JqKS4uIiciKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5kPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ZWxzZTxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vy cm9yKCJjYW4gbm90IGVuY29kZSBMdWEgdHlwZTogJyIuLnR5cGUob2JqKS4uIiciKTxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIG1zZ3BhY2suY2ZnLmVuY29kZV91c2VfdG9zdHJp bmcgdGhlbjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7b2Jq ID0gdG9zdHJpbmcob2JqKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYgb2JqIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5jb2RlX3N0cihidWYsIG9iaik8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXJyb3IoImNhbiBub3QgZW5j b2RlIEx1YSB0eXBlOiAnIi4udHlwZShvYmopLi4iJyIpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtlbHNlaWYgbXNncGFjay5jZmcuZW5jb2RlX2ludmFsaWRfYXNfbmlsIHRoZW48YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuY29kZV9uaWwoYnVmKTxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vycm9yKCJjYW4gbm90IGVuY29kZSBMdWEgdHlwZTogJyIu LnR5cGUob2JqKS4uIiciKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuZDxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO2VuZDxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPkBAIC00NTMs NyArNDk0LDEyIEBAIGVuZDxicj4mbmJzcDs8YnI+Jm5ic3A7bG9jYWwgZnVuY3Rpb24gZGVjb2Rl X2RvdWJsZShkYXRhKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2RhdGFbMF0gPSBkYXRhWzBdIC0g MSAtLSBtcF9kZWNvZGVfZG91YmxlIG5lZWQgdHlwZSBjb2RlPGJyPi0gJm5ic3A7ICZuYnNwO3Jl dHVybiB0b251bWJlcihidWlsdGluLm1wX2RlY29kZV9kb3VibGUoZGF0YSkpPGJyPisgJm5ic3A7 ICZuYnNwO2xvY2FsIHJlcyA9IHRvbnVtYmVyKGJ1aWx0aW4ubXBfZGVjb2RlX2RvdWJsZShkYXRh KSk8YnI+KyAmbmJzcDsgJm5ic3A7aWYgKHJlcyA9PSBpbmYgb3IgcmVzID09IG1pbmYgb3IgdG9z dHJpbmcocmVzKSA9PSAibmFuIikgYW5kPGJyPisgJm5ic3A7ICZuYnNwO25vdCBtc2dwYWNrLmNm Zy5kZWNvZGVfaW52YWxpZF9udW1iZXJzIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtlcnJvcigiSW52YWxpZCBudW1iZXJzIGRlY29kaW5nIGlzIG1hbnVhbGx5IHByb2hpYml0 ZWQiKTxicj4rICZuYnNwOyAmbmJzcDtlbmQ8YnI+KyAmbmJzcDsgJm5ic3A7cmV0dXJuIHJlczxi cj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPiZuYnNwO2xvY2FsIGZ1bmN0aW9uIGRlY29kZV9zdHIo ZGF0YSwgc2l6ZSk8YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvdXRpbHMuaCBiL3NyYy9sdWEvdXRp bHMuaDxicj5pbmRleCAwYjM2NzI3NjkuLmZlZDgzY2Y4ZCAxMDA2NDQ8YnI+LS0tIGEvc3JjL2x1 YS91dGlscy5oPGJyPisrKyBiL3NyYy9sdWEvdXRpbHMuaDxicj5AQCAtMTgzLDcgKzE4Myw3IEBA IHN0cnVjdCBsdWFMX3NlcmlhbGl6ZXIgezxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICog Jm5ic3A7KyBtYXAgLSBhdCBsZWFzdCBvbmUgdGFibGUgaW5kZXggaXMgbm90IHVuc2lnbmVkIGlu dGVnZXIuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgKiAmbmJzcDsrIHJlZ3VsYXIgYXJy YXkgLSBhbGwgYXJyYXkgaW5kZXhlcyBhcmUgYXZhaWxhYmxlLjxicj4mbmJzcDsmbmJzcDsmbmJz cDsgJm5ic3A7ICogJm5ic3A7KyBzcGFyc2UgYXJyYXkgLSBhdCBsZWFzdCBvbmUgYXJyYXkgaW5k ZXggaXMgbWlzc2luZy48YnI+LSZuYnNwOyZuYnNwOyAmbmJzcDsgKiAmbmJzcDsrIGV4Y2Vzc2l2 ZWx5IHNwYXJzZSBhcnJhdCAtIHRoZSBudW1iZXIgb2YgdmFsdWVzIG1pc3Npbmc8YnI+KyZuYnNw OyZuYnNwOyAmbmJzcDsgKiAmbmJzcDsrIGV4Y2Vzc2l2ZWx5IHNwYXJzZSBhcnJheSAtIHRoZSBu dW1iZXIgb2YgdmFsdWVzIG1pc3Npbmc8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAqIGV4 Y2VlZHMgdGhlIGNvbmZpZ3VyZWQgcmF0aW8uPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg Kjxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICogQW4gYXJyYXkgaXMgZXhjZXNzaXZlbHkg c3BhcnNlIHdoZW4gKiphbGwqKiB0aGUgZm9sbG93aW5nPGJyPmRpZmYgLS1naXQgYS90ZXN0L2Fw cC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWEgYi90ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6 ZXJfdGVzdC5sdWE8YnI+aW5kZXggNDdlZGFjNjIxLi44NjBmNGRjZWIgMTAwNjQ0PGJyPi0tLSBh L3Rlc3QvYXBwLXRhcC9sdWEvc2VyaWFsaXplcl90ZXN0Lmx1YTxicj4rKysgYi90ZXN0L2FwcC10 YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWE8YnI+QEAgLTE1MCw3ICsxNTAsNyBAQCBsb2NhbCBm dW5jdGlvbiB0ZXN0X3NpZ25lZCh0ZXN0LCBzKTxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPiZu YnNwO2xvY2FsIGZ1bmN0aW9uIHRlc3RfZG91YmxlKHRlc3QsIHMpPGJyPi0gJm5ic3A7ICZuYnNw O3Rlc3Q6cGxhbihzLmNmZyBhbmQgMTUgb3IgOSk8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpwbGFu KHMuY2ZnIGFuZCAxOCBvciA5KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3J0KHRlc3QsIHMsIC0x LjEpPGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3J0KHRlc3QsIHMsIDMuMTQxNTky NjUzNTg5OCk8YnI+QEAgLTE3MiwyMyArMTcyLDI4IEBAIGxvY2FsIGZ1bmN0aW9uIHRlc3RfZG91 YmxlKHRlc3QsIHMpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7LS08YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDtsb2NhbCBuYW4gPSAwLzA8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtsb2NhbCBpbmYgPSAx LzA8YnI+KyAmbmJzcDsgJm5ic3A7bG9jYWwgbWluZiA9IC0xLzA8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7bG9jYWwgc3MgPSBzLm5ldygpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 c3MuY2Zne2VuY29kZV9pbnZhbGlkX251bWJlcnMgPSBmYWxzZX08YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDt0ZXN0Om9rKG5vdCBwY2FsbChzcy5lbmNvZGUsIG5hbiksICJlbmNvZGUgZXhjZXB0aW9u IG9uIG5hbiIpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dGVzdDpvayhub3QgcGNhbGwoc3MuZW5j b2RlLCBpbmYpLCAiZW5jb2RlIGV4Y2VwdGlvbiBvbiBpbmYiKTxicj4rICZuYnNwOyAmbmJzcDt0 ZXN0Om9rKG5vdCBwY2FsbChzcy5lbmNvZGUsIG1pbmYpLCAiZW5jb2RlIGV4Y2VwdGlvbiBvbiBt aW5mIik8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3MuY2Zne2VuY29kZV9pbnZh bGlkX251bWJlcnMgPSB0cnVlfTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2FsIHhuYW4gPSBz cy5lbmNvZGUobmFuKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2FsIHhpbmYgPSBzcy5lbmNv ZGUoaW5mKTxicj4rICZuYnNwOyAmbmJzcDtsb2NhbCB4bWluZiA9IHNzLmVuY29kZShtaW5mKTxi cj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtzcy5jZmd7ZGVjb2RlX2ludmFsaWRfbnVt YmVycyA9IGZhbHNlfTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3Rlc3Q6b2sobm90IHBjYWxsKHNz LmRlY29kZSwgeG5hbiksICJkZWNvZGUgZXhjZXB0aW9uIG9uIG5hbiIpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7dGVzdDpvayhub3QgcGNhbGwoc3MuZGVjb2RlLCB4aW5mKSwgImRlY29kZSBleGNl cHRpb24gb24gaW5mIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpvayhub3QgcGNhbGwoc3MuZGVj b2RlLCB4bWluZiksICJkZWNvZGUgZXhjZXB0aW9uIG9uIG1pbmYiKTxicj4mbmJzcDs8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDtzcy5jZmd7ZGVjb2RlX2ludmFsaWRfbnVtYmVycyA9IHRydWV9PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7cnQodGVzdCwgcywgbmFuKTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwO3J0KHRlc3QsIHMsIGluZik8YnI+KyAmbmJzcDsgJm5ic3A7cnQodGVzdCwgcywgbWluZik8 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3MgPSBuaWw8YnI+Jm5ic3A7ZW5kPGJy PmRpZmYgLS1naXQgYS90ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YSBiL3Rlc3QvYXBw LXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhPGJyPmluZGV4IDk5NDQwMmQxNS4uNjMwNDU1OWYwIDEw MDc1NTxicj4tLS0gYS90ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YTxicj4rKysgYi90 ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YTxicj5AQCAtNSw2ICs1LDcgQEAgcGFja2Fn ZS5wYXRoID0gImx1YS8/Lmx1YTsiLi5wYWNrYWdlLnBhdGg8YnI+Jm5ic3A7bG9jYWwgdGFwID0g cmVxdWlyZSgndGFwJyk8YnI+Jm5ic3A7bG9jYWwgY29tbW9uID0gcmVxdWlyZSgnc2VyaWFsaXpl cl90ZXN0Jyk8YnI+Jm5ic3A7bG9jYWwgZmZpID0gcmVxdWlyZSgnZmZpJyk8YnI+K2xvY2FsIG1z Z3BhY2sgPSByZXF1aXJlKCdtc2dwYWNrJyk8YnI+Jm5ic3A7PGJyPiZuYnNwO2xvY2FsIGZ1bmN0 aW9uIGlzX21hcChzKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2FsIGIgPSBzdHJpbmcuYnl0 ZShzdHJpbmcuc3ViKHMsIDEsIDEpKTxicj5AQCAtMzYsNiArMzcsODYgQEAgbG9jYWwgZnVuY3Rp b24gdGVzdF9vZmZzZXRzKHRlc3QsIHMpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dGVzdDpvayhu b3QgcGNhbGwocy5kZWNvZGUsIGR1bXAsIG9mZnNldCksICJpbnZhbGlkIG9mZnNldCIpPGJyPiZu YnNwO2VuZDxicj4mbmJzcDs8YnI+K2xvY2FsIGZ1bmN0aW9uIHRlc3RfY29uZmlncyh0ZXN0LCBz KTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0OnBsYW4oMjYpPGJyPisgJm5ic3A7ICZuYnNwOy0tPGJy PisgJm5ic3A7ICZuYnNwOy0tIGdoLTQ0OTk6IGZmaSBtb2R1bGUgc2hvdWxkIGNvbnNpZGVyIG1z Z3BhY2suY2ZnIG9wdGlvbnM8YnI+KyAmbmJzcDsgJm5ic3A7LS08YnI+Kzxicj4rICZuYnNwOyAm bmJzcDstLSBvbmx5IGV4Y2Vzc2l2ZWx5IHNwYXJzZSBhcnJheXMgc2hvdWxkIGJlIGVuY29kZWQg YXMgbWFwcyw8YnI+KyAmbmJzcDsgJm5ic3A7LS0gaS5lLiBlbmNvZGVfc3BhcnNlX3JhdGlvICZn dDsgMCAmYW1wOyZhbXA7IG1heF9pZHggJmd0OyBlbmNvZGVfc3BhcnNlX3NhZmU8YnI+KyAmbmJz cDsgJm5ic3A7LS0gJmFtcDsmYW1wOyBtYXhfaWR4ICZndDsgbnVtKGVsZW1lbnRzKSAqIGVuY29k ZV9zcGFyc2VfcmF0aW88YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpvayhpc19hcnJheShzLmVuY29k ZSh7IFsxXSA9IDEsIFszXSA9IDMsIFs0XSA9IDMgfSkpLDxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyJub3QgZXhjZXNzaXZlbHkgc3BhcnNlIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVz dDpvayhpc19hcnJheShzLmVuY29kZSh7IFsxXSA9IDEsIFsyXSA9IDIsIFszXSA9IDMsIFs0XSA9 IDQsIFs1XSA9IDUsPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzExXSA9IDYgfSkp LCAic3RpbGwgbm90IGV4Y2Vzc2l2ZWx5IHNwYXJzZSIpPGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6 b2soaXNfbWFwKHMuZW5jb2RlKHsgWzFdID0gMSwgWzJdID0gMiwgWzEwMF0gPSAzIH0pKSw8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsiaXMgZXhjZXNzaXZlbHkgc3BhcnNlIik8YnI+ Kzxicj4rICZuYnNwOyAmbmJzcDttc2dwYWNrLmNmZyh7ZW5jb2RlX3NwYXJzZV9jb252ZXJ0ID0g ZmFsc2V9KTxicj4rICZuYnNwOyAmbmJzcDtsb2NhbCBvaywgXyA9IHBjYWxsKHMuZW5jb2RlKCks IHsgWzFdID0gMSwgWzJdID0gMiwgWzEwMF0gPSAzIH0pPGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6 b2sobm90IG9rLCAiY29udmVyc2lvbiBvZiBzcGFyc2UgdGFibGVzIGlzIG1hbnVhbGx5IHByb2hp Yml0ZWQiKTxicj4rPGJyPisgJm5ic3A7ICZuYnNwOy0tIHRlc3RpbmcgKGVuL2RlKWNvZGluZyBv ZiBpbnZhbGlkIG51bWJlcnM8YnI+KyAmbmJzcDsgJm5ic3A7bG9jYWwgaW5mID0gMS8wPGJyPisg Jm5ic3A7ICZuYnNwO2xvY2FsIG1pbmYgPSAtMS8wPGJyPisgJm5ic3A7ICZuYnNwO2xvY2FsIG5h biA9IDAvMDxicj4rPGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6b2socy5kZWNvZGUocy5lbmNvZGUo aW5mKSksICJkZWNvZGUgJmFtcDsgZW5jb2RlIGZvciBpbmYiKTxicj4rICZuYnNwOyAmbmJzcDt0 ZXN0Om9rKHMuZGVjb2RlKHMuZW5jb2RlKG1pbmYpKSwgImRlY29kZSAmYW1wOyBlbmNvZGUgZm9y IG1pbmYiKTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0Om9rKHMuZGVjb2RlKHMuZW5jb2RlKG5hbikp LCAiZGVjb2RlICZhbXA7IGVuY29kZSBmb3IgbmFuIik8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDtt c2dwYWNrLmNmZyh7ZW5jb2RlX2ludmFsaWRfbnVtYmVycyA9IGZhbHNlfSk8YnI+KyAmbmJzcDsg Jm5ic3A7dGVzdDpvayhub3QgcGNhbGwocy5lbmNvZGUsIGluZiksICJwcm9oaWJpdGVkIGVuY29k ZSBmb3IgaW5mIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpvayhub3QgcGNhbGwocy5lbmNvZGUs IG1pbmYpLCAicHJvaGliaXRlZCBlbmNvZGUgZm9yIG1pbmYiKTxicj4rICZuYnNwOyAmbmJzcDt0 ZXN0Om9rKG5vdCBwY2FsbChzLmVuY29kZSwgbmFuKSwgInByb2hpYml0ZWQgZW5jb2RlIGZvciBu YW4iKTxicj4rPGJyPisgJm5ic3A7ICZuYnNwO21zZ3BhY2suY2ZnKHtkZWNvZGVfaW52YWxpZF9u dW1iZXJzID0gZmFsc2V9KTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0Om9rKG5vdCBwY2FsbChzLmRl Y29kZSwgaW5mKSwgInByb2hpYml0ZWQgZGVjb2RlIGZvciBpbmYiKTxicj4rICZuYnNwOyAmbmJz cDt0ZXN0Om9rKG5vdCBwY2FsbChzLmRlY29kZSwgbWluZiksICJwcm9oaWJpdGVkIGRlY29kZSBm b3IgbWluZiIpPGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6b2sobm90IHBjYWxsKHMuZGVjb2RlLCBu YW4pLCAicHJvaGliaXRlZCBkZWNvZGUgZm9yIG5hbiIpPGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7 LS0gaW52YWxpZCBudW1iZXJzIGNhbiBhbHNvIGJlIGVuY29kZWQgYXMgbmlsIHZhbHVlczxicj4r ICZuYnNwOyAmbmJzcDttc2dwYWNrLmNmZyh7ZGVjb2RlX2ludmFsaWRfbnVtYmVycyA9IHRydWUs IGVuY29kZV9pbnZhbGlkX2FzX25pbCA9IHRydWV9KTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0Omlz KHMuZGVjb2RlKHMuZW5jb2RlKGluZikpLCBuaWwsICJpbnZhbGlkX2FzX25pbCBmb3IgaW5mIik8 YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDppcyhzLmRlY29kZShzLmVuY29kZShtaW5mKSksIG5pbCwg ImludmFsaWRfYXNfbmlsIGZvciBtaW5mIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDppcyhzLmRl Y29kZShzLmVuY29kZShuYW4pKSwgbmlsLCAiaW52YWxpZF9hc19uaWwgZm9yIG5hbiIpPGJyPis8 YnI+KyAmbmJzcDsgJm5ic3A7LS0gd2hldGhlciBfX3NlcmlhbGl6ZSBtZXRhLXZhbHVlIGNoZWNr aW5nIGlzIGVuYWJsZWQ8YnI+KyAmbmJzcDsgJm5ic3A7bG9jYWwgYXJyID0gc2V0bWV0YXRhYmxl KHsxLCAyLCAzLCBrMSA9ICd2MScsIGsyID0gJ3YyJywgNCwgNX0sPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7eyBfX3NlcmlhbGl6ZSA9ICdzZXEnfSk8YnI+KyAmbmJzcDsgJm5ic3A7 bG9jYWwgbWFwID0gc2V0bWV0YXRhYmxlKHsxLCAyLCAzLCA0LCA1fSwgeyBfX3NlcmlhbGl6ZSA9 ICdtYXAnfSk8YnI+KyAmbmJzcDsgJm5ic3A7bG9jYWwgb2JqID0gc2V0bWV0YXRhYmxlKHt9LCB7 PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7X19zZXJpYWxpemUgPSBmdW5jdGlvbih4 KSByZXR1cm4gJ3NlcmlhbGl6ZScgZW5kPGJyPisgJm5ic3A7ICZuYnNwO30pPGJyPis8YnI+KyAm bmJzcDsgJm5ic3A7LS0gdGVzdGluZyBlbmNvZGUgbWV0YXRhYmxlczxicj4rICZuYnNwOyAmbmJz cDttc2dwYWNrLmNmZ3tlbmNvZGVfbG9hZF9tZXRhdGFibGVzID0gZmFsc2V9PGJyPisgJm5ic3A7 ICZuYnNwO3Rlc3Q6b2soaXNfbWFwKHMuZW5jb2RlKGFycikpLCAiYXJyYXkgaWdub3JlIF9fc2Vy aWFsaXplIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpvayhpc19hcnJheShzLmVuY29kZShtYXAp KSwgIm1hcCBpZ25vcmUgX19zZXJpYWxpemUiKTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0Om9rKGlz X2FycmF5KHMuZW5jb2RlKG9iaikpLCAib2JqZWN0IGlnbm9yZSBfX3NlcmlhbGl6ZSIpPGJyPis8 YnI+KyAmbmJzcDsgJm5ic3A7bXNncGFjay5jZmd7ZW5jb2RlX2xvYWRfbWV0YXRhYmxlcyA9IHRy dWV9PGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6b2soaXNfYXJyYXkocy5lbmNvZGUoYXJyKSksICJh cnJheSBsb2FkIF9fc2VyaWFsaXplIik8YnI+KyAmbmJzcDsgJm5ic3A7dGVzdDpvayhpc19tYXAo cy5lbmNvZGUobWFwKSksICJtYXAgbG9hZCBfX3NlcmlhbGl6ZSIpPGJyPisgJm5ic3A7ICZuYnNw O3Rlc3Q6aXMocy5kZWNvZGUocy5lbmNvZGUob2JqKSksICJzZXJpYWxpemUiLCAib2JqZWN0IGxv YWQgX19zZXJpYWxpemUiKTxicj4rPGJyPisgJm5ic3A7ICZuYnNwOy0tIHRlc3RpbmcgZGVjb2Rl IG1ldGF0YWJsZXM8YnI+KyAmbmJzcDsgJm5ic3A7bXNncGFjay5jZmd7ZGVjb2RlX3NhdmVfbWV0 YXRhYmxlcyA9IGZhbHNlfTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0OmlzbmlsKGdldG1ldGF0YWJs ZShzLmRlY29kZShzLmVuY29kZShhcnIpKSksICJhcnJheSBfX3NlcmlhbGl6ZSIpPGJyPisgJm5i c3A7ICZuYnNwO3Rlc3Q6aXNuaWwoZ2V0bWV0YXRhYmxlKHMuZGVjb2RlKHMuZW5jb2RlKG1hcCkp KSwgIm1hcCBfX3NlcmlhbGl6ZSIpPGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7bXNncGFjay5jZmd7 ZGVjb2RlX3NhdmVfbWV0YXRhYmxlcyA9IHRydWV9PGJyPisgJm5ic3A7ICZuYnNwO3Rlc3Q6aXMo Z2V0bWV0YXRhYmxlKHMuZGVjb2RlKHMuZW5jb2RlKGFycikpKS5fX3NlcmlhbGl6ZSwgInNlcSIs PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ImFycmF5IHNhdmUgX19zZXJpYWxpemUi KTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0OmlzKGdldG1ldGF0YWJsZShzLmRlY29kZShzLmVuY29k ZShtYXApKSkuX19zZXJpYWxpemUsICJtYXAiLDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyJtYXAgc2F2ZSBfX3NlcmlhbGl6ZSIpPGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7LS0gYXBw bHlpbmcgZGVmYXVsdCBjb25maWdzPGJyPisgJm5ic3A7ICZuYnNwO21zZ3BhY2suY2ZnKHtlbmNv ZGVfc3BhcnNlX2NvbnZlcnQgPSB0cnVlLCBlbmNvZGVfaW52YWxpZF9udW1iZXJzID0gdHJ1ZSw8 YnI+KyAmbmJzcDsgJm5ic3A7ZW5jb2RlX2ludmFsaWRfYXNfbmlsID0gZmFsc2V9KTxicj4rZW5k PGJyPis8YnI+Jm5ic3A7bG9jYWwgZnVuY3Rpb24gdGVzdF9vdGhlcih0ZXN0LCBzKTxicj4mbmJz cDsgJm5ic3A7ICZuYnNwO3Rlc3Q6cGxhbigyNCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtsb2Nh bCBidWYgPSBzdHJpbmcuY2hhcigweDkzLCAweDZlLCAweGNiLCAweDQyLCAweDJiLCAweGVkLCAw eDMwLCAweDQ3LDxicj5AQCAtODIsNyArMTYzLDYgQEAgbG9jYWwgZnVuY3Rpb24gdGVzdF9vdGhl cih0ZXN0LCBzKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7d2hpbGUgdCB+ PSBuaWwgZG8gbGV2ZWwgPSBsZXZlbCArIDEgdCA9IHRbMV0gZW5kPGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gbGV2ZWw8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtl bmQ8YnI+LSAmbmJzcDsgJm5ic3A7bG9jYWwgbXNncGFjayA9IHJlcXVpcmUoJ21zZ3BhY2snKTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2FsIGRlZXBfYXNfbmlsID0gbXNncGFjay5jZmcuZW5j b2RlX2RlZXBfYXNfbmlsPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7bXNncGFjay5jZmcoe2VuY29k ZV9kZWVwX2FzX25pbCA9IHRydWV9KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2xvY2FsIG1heF9k ZXB0aCA9IG1zZ3BhY2suY2ZnLmVuY29kZV9tYXhfZGVwdGg8YnI+QEAgLTExOCw3ICsxOTgsNyBA QCBlbmQ8YnI+Jm5ic3A7PGJyPiZuYnNwO3RhcC50ZXN0KCJtc2dwYWNrZmZpIiwgZnVuY3Rpb24o dGVzdCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtsb2NhbCBzZXJpYWxpemVyID0gcmVxdWlyZSgn bXNncGFja2ZmaScpPGJyPi0gJm5ic3A7ICZuYnNwO3Rlc3Q6cGxhbigxMSk8YnI+KyAmbmJzcDsg Jm5ic3A7dGVzdDpwbGFuKDEyKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3Rlc3Q6dGVzdCgidW5z aWduZWQiLCBjb21tb24udGVzdF91bnNpZ25lZCwgc2VyaWFsaXplcik8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt0ZXN0OnRlc3QoInNpZ25lZCIsIGNvbW1vbi50ZXN0X3NpZ25lZCwgc2VyaWFsaXpl cik8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt0ZXN0OnRlc3QoImRvdWJsZSIsIGNvbW1vbi50ZXN0 X2RvdWJsZSwgc2VyaWFsaXplcik8YnI+QEAgLTEzMCw2ICsyMTAsNyBAQCB0YXAudGVzdCgibXNn cGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7LS0gdWRhdGEv Y2RhdGEgaG9va3MgYXJlIG5vdCBpbXBsZW1lbnRlZDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOy0t dGVzdDp0ZXN0KCJ1Y2RhdGEiLCBjb21tb24udGVzdF91Y2RhdGEsIHNlcmlhbGl6ZXIpPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7dGVzdDp0ZXN0KCJvZmZzZXRzIiwgdGVzdF9vZmZzZXRzLCBzZXJp YWxpemVyKTxicj4rICZuYnNwOyAmbmJzcDt0ZXN0OnRlc3QoImNvbmZpZ3MiLCB0ZXN0X2NvbmZp Z3MsIHNlcmlhbGl6ZXIpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dGVzdDp0ZXN0KCJvdGhlciIs IHRlc3Rfb3RoZXIsIHNlcmlhbGl6ZXIpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dGVzdDp0ZXN0 KCJkZWNvZGVfYnVmZmVyIiwgY29tbW9uLnRlc3RfZGVjb2RlX2J1ZmZlciwgc2VyaWFsaXplcik8 YnI+Jm5ic3A7ZW5kKTxicj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9tc2dwYWNrLmMgYi9zcmMvbHVh L21zZ3BhY2suYzxicj5pbmRleCBlZGJjMTViNzIuLjEzM2IyYjUyNyAxMDA2NDQ8YnI+LS0tIGEv c3JjL2x1YS9tc2dwYWNrLmM8YnI+KysrIGIvc3JjL2x1YS9tc2dwYWNrLmM8YnI+QEAgLTk1LDcg Kzk1LDYgQEAgbHVhbXBfZGVjb2RlX2V4dGVuc2lvbl9kZWZhdWx0KHN0cnVjdCBsdWFfU3RhdGUg KkwsIGNvbnN0IGNoYXIgKipkYXRhKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7 Jm5ic3A7ICZuYnNwOyAmbmJzcDsgKHVuc2lnbmVkIGNoYXIpICoqZGF0YSk7PGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPi08YnI+Jm5ic3A7dm9pZDxicj4mbmJzcDtsdWFtcF9zZXRfZGVjb2RlX2V4 dGVuc2lvbihsdWFtcF9kZWNvZGVfZXh0ZW5zaW9uX2YgaGFuZGxlcik8YnI+Jm5ic3A7ezxicj4t LSZuYnNwOzxicj4yLjI0LjA8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4 IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PiZu YnNwOzxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFy Z2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGJyPtCh0YDQtdC00LAsIDE4INC0 0LXQutCw0LHRgNGPIDIwMTksIDI6MjYgKzAzOjAwINC+0YIgQWxleGFuZGVyIFR1cmVua28gJmx0 O2FsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmcmZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIi PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PHN0eWxlIHR5cGU9InRleHQv Y3NzIj48L3N0eWxlPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTU3NjYyNTE5ODAwMTA0MjY1MzFfQk9E WSI+U29ycnkgYWdhaW4gZm9yIHRoZSBsYXRlIHJlcGx5Ljxicj48YnI+Jmd0OyAmZ3Q7Jm5ic3A7 SSB0aGluayB3ZSBhbHNvIHNob3VsZCBpbXBsZW1lbnQgZW5jb2RlX3NwYXJzZV8qIG9wdGlvbnMg dG88YnI+Jmd0OyAmZ3Q7IGJlJm5ic3A7Y29tcGF0aWJsZSB3aXRoIG1zZ3BhY2sgbW9kdWxlLjxi cj4mZ3Q7PGJyPiZndDsgQ291bGQgeW91IHBsZWFzZSZuYnNwO2V4cGxhaW4gaG93IGRvIHlvdSBw cm9wb3NlIHRvIGltcGxlbWVudCB0aGVtPyBJdDxicj4mZ3Q7IHNlZW1zJm5ic3A7dG8gbWUgdGhl IHB1cnBvc2Ugb2YgdGhvc2UgY29uZmlncyBpcyB0byBoYW5kbGUgZXhjZXNzaXZlbHk8YnI+Jmd0 OyBzcGFyc2UgYXJyYXlzIGFzIG1hcHMgKGFzIHN0YXRlZCBpbiZuYnNwO3NyYy9sdWEvdXRpbHMu aCkuIFdoaWNoIGRvZXMgbm90PGJyPiZndDsgc2VlbSByZWxldmFudCB0byBsdWEgbW9kdWxlIHdo ZXJlIHRoZSBvbmx5IGNvbnRhaW5lciB0eXBlIGlzIHRhYmxlLjxicj4mZ3Q7IFdoYXQgZG8gSSBt aXNzIGhlcmU/Jm5ic3A7PGJyPjxicj5JdCBpcyBhYm91dCBlbmNvZGluZywgbm90IGRlY29kaW5n OiBlbmNvZGUgYSBMdWEgdGFibGUgd2l0aCBudW1lcmljIGtleXM8YnI+YXMgTVBfQVJSQVksIE1Q X01BUCBvciBnaXZlIGFuIGVycm9yLiBJdCBzZWVtcyB0aGF0IG5vdGhpbmcgcHJldmVudCB1czxi cj5mcm9tIGltcGxlbWVudGluZyB0aGlzIGxvZ2ljIG9uIEx1YS48YnI+PGJyPiZndDsgU3ViamVj dDogW1BBVENIIDEvMl0gTXNncGFja2ZmaSBjb25zaWRlcnMgbXNncGFjay5jZmcgb3B0aW9ucyBu b3c8YnI+Jmd0OyBNc2dwYWNrLmNmZyBvcHRpb25zIGNoYW5nZXMgZGlkIG5vdCBhZmZlY3QgbXNn cGFja2ZmaSBzZXJpYWxpemVyIHN0YXRlLjxicj4mZ3Q7IFRoaXMgcGF0Y2ggZml4ZXMgaXQgZm9y IG9wdGlvbnMgZW5jb2RlX2xvYWRfbWV0YXRhYmxlcywgZGVjb2RlXyBhbmQ8YnI+Jmd0OyBlbmNv ZGVfaW52YWxpZF9udW1iZXJzLCBlbmNvZGVfdXNlX3Rvc3RyaW5nIGFuZCBlbmNvZGVfaW52YWxp ZF9hc19uaWwuPGJyPiZndDsgQ2xvc2VzICM0NDk5PGJyPiZndDsgLS0tPGJyPiZndDsgSXNzdWU6 PGJyPiZndDsgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wv aXNzdWVzLzQ0OTkiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29s L3RhcmFudG9vbC9pc3N1ZXMvNDQ5OTwvYT48YnI+Jmd0OyBCcmFuY2g6PGJyPiZndDsgPGEgaHJl Zj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9lbGphc2ht L2doLTQ0OTktbXNncGFja2ZmaS1pZ25vcmVzLW1zZ3BhY2suY2ZnLW9wdGlvbnMiIHRhcmdldD0i X2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2Vs amFzaG0vZ2gtNDQ5OS1tc2dwYWNrZmZpLWlnbm9yZXMtbXNncGFjay5jZmctb3B0aW9uczwvYT48 YnI+PGJyPiZndDsgQEAgLTI2MSw2ICsyNjMsMTkgQEAgbG9jYWwgZnVuY3Rpb24gZW5jb2RlX3Io YnVmLCBvYmosIGxldmVsKTxicj4mZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtlbHNlPGJyPiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZXJyb3IoIkludmFsaWQgX19zZXJpYWxpemUgdmFsdWUiKTxicj4mZ3Q7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbmQ8YnI+Jmd0OyArICZuYnNwOyAmbmJzcDtlbHNl aWYgdHlwZShvYmopID09IG1hdGguaHVnZSBvciB0eXBlKG9iaikgPT0gLW1hdGguaHVnZSBvciZu YnNwOzxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dHlwZShvYmopID09IG1h dGgubmFuIHRoZW48YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIG1zZ3Bh Y2suY2ZnLmVuY29kZV9pbnZhbGlkX251bWJlcnMgdGhlbjxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiBvYmogPT0gbWF0aC5odWdlIHRoZW48YnI+ Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtvYmogPSAxLzA8YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ZWxzZWlmIG9iaiA9PSAtbWF0aC5odWdlIHRoZW48YnI+Jmd0OyArICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtvYmogPSAtMS8w PGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8 YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtvYmogPSAwLzA8YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ZW5kPGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbHNl PGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuY29k ZV9uaWwoYnVmKTxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZW5kPGJyPjxi cj5JIHdvdWxkIHNhdmUgMS8wLCAtMS8wLCAwLzAgYXMgbW9kdWxlIGxvY2FsIHZhcmlhYmxlcyBm b3IgcmVhZGFiaWxpdHksPGJyPmxpa2UgYXMgaXQgaXMgZG9uZSBpbiB0ZXN0X2RvdWJsZSgpLjxi cj48YnI+SSBhbHNvIGZvdW5kIHRoYXQgbWF0aC5odWdlIGlzIDEvMCAoaW5mKSBhbmQgdGhlcmUg aXMgbm8gbWF0aC5uYW4gKGl0PGJyPmp1c3QgbmlsKS48YnI+PGJyPiZndDsgQEAgLTU2Miw2ICs1 ODksMTUgQEAgZGVjb2RlX3IgPSBmdW5jdGlvbihkYXRhKTxicj4mZ3Q7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZWxzZWlmIGMgJmd0Oz0gMHhlMCB0aGVuPGJyPiZndDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3JldHVybiB0b251bWJlcihmZmkuY2FzdCgnc2lnbmVkIGNoYXInLGMp KSAtLSBuZWdmaXhpbnQ8YnI+Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2VpZiBjID09IDB4 YzAgdGhlbjxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgbXNncGFjay5j ZmcuZGVjb2RlX2ludmFsaWRfbnVtYmVycyB0aGVuPGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIGMgPT0gMC8wIHRoZW48YnI+Jmd0OyArICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4g bWF0aC5uYW48YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZWxzZWlmIGMgPT0gMS8wIHRoZW48YnI+Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gbWF0aC5odWdlPGJyPiZndDsg KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2VpZiBjID09IC0x LzAgdGhlbjxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3JldHVybiAtbWF0aC5odWdlPGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2VuZDxicj4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ZW5kPGJyPjxicj5TYW1lIGFzIGFib3ZlLjxicj48YnI+Jmd0OyBAQCAtNjI4 LDYgKzY2NCw4IEBAIHJldHVybiB7PGJyPiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtvbl9lbmNv ZGUgPSBvbl9lbmNvZGU7PGJyPiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtkZWNvZGVfdW5jaGVj a2VkID0gZGVjb2RlX3VuY2hlY2tlZDs8YnI+Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2RlY29k ZSA9IGRlY29kZV91bmNoZWNrZWQ7IC0tIGp1c3QgZm9yIHRlc3RzPGJyPiZndDsgKyAmbmJzcDsg Jm5ic3A7Y2ZnID0gbXNncGFjay5jZmc7PGJyPiZndDsgKyAmbmJzcDsgJm5ic3A7bmV3ID0gbXNn cGFjay5uZXc7IC0tIGZvciBzZXJpYWxpemVyIHRlc3RzIHRvIHdvcmsgcHJvcGVybHk8YnI+PGJy PlNvIHRoZXknbGwgdGVzdCBtc2dwYWNrLCBub3QgbXNncGFja2ZmaS48L2Rpdj48L2Rpdj48L2Rp dj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Jm5ic3A7PGRpdj4mbmJzcDs8L2Rpdj48ZGl2IGRh dGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdl dD0iY29udGVudCI+PGRpdj4tLTxicj5NYXJpYSBLaGF5ZGljaDwvZGl2PjwvZGl2PjwvZGl2Pjxk aXY+Jm5ic3A7PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvQk9EWT48L0hUTUw+Cg== ----ALT--b78597BD0d869694C35B51955aF0b7Df1579887464--