Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fZanS-0001HG-KV for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Jul 2018 11:45:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fZanQ-0004y4-Q5 for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Jul 2018 11:45:36 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fZanP-0004xx-Od for pgsql-hackers@lists.postgresql.org; Sun, 01 Jul 2018 11:45:36 +0000 Received: from forward3j.cmail.yandex.net ([5.255.227.21]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fZanH-0006xp-Tu for pgsql-hackers@postgresql.org; Sun, 01 Jul 2018 11:45:34 +0000 Received: from mxback20j.mail.yandex.net (mxback20j.mail.yandex.net [IPv6:2a02:6b8:0:1619::114]) by forward3j.cmail.yandex.net (Yandex) with ESMTP id 32CD420EE0 for ; Sun, 1 Jul 2018 14:45:23 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback20j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id ycY4K452h3-jMreD0SU; Sun, 01 Jul 2018 14:45:22 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zsrv.org; s=mail; t=1530445522; bh=Um8zjmHbKiPWo2lLoPvxZfrJUAVZdEROy0zvCrJloWY=; h=From:To:In-Reply-To:References:Subject:Date:Message-Id; b=V47016ZUut+7W0SRqNxWQW5tjxWxEF64FfQBCeAIfKFMpiI8qnffynpfresqzCYkH 9Dhb4KVet0oWC3Rl5aOpzV/Z6pXg0tkMBqw+K1Y4ShhbSJaJoL9LRc4AOvrhMA80IQ 3JGA2+rpdxpqxD4SuIsPjl+ulHzmAhqJ3TUe/ugg= Authentication-Results: mxback20j.mail.yandex.net; dkim=pass header.i=@zsrv.org Received: by web17o.yandex.ru with HTTP; Sun, 01 Jul 2018 14:45:22 +0300 From: Sergei Kornilov To: PostgreSQL mailing lists In-Reply-To: <594281529606887@web2j.yandex.ru> References: <607741529606767@web3g.yandex.ru> <594281529606887@web2j.yandex.ru> Subject: Re: Continue work on changes to recovery.conf API MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 01 Jul 2018 14:45:22 +0300 Message-Id: <3595211530445522@web17o.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.359522.web17o.yandex.ru" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk ------==--bound.359522.web17o.yandex.ru Content-Transfer-Encoding: 7bit Content-Type: text/plain Hello Commitfest 2018-09 is now open and, as planned, i create one entry: https://commitfest.postgresql.org/19/1711/ Also i attach new version due merge conflict with HEAD. regards, Sergei ------==--bound.359522.web17o.yandex.ru Content-Disposition: attachment; filename="new_recovery_api_v2.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="new_recovery_api_v2.patch" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhbmRieS9wZ19zdGFuZGJ5LmMgYi9jb250cmliL3Bn X3N0YW5kYnkvcGdfc3RhbmRieS5jCmluZGV4IGNiNzg1OTcuLjMzMzAxNjIgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcGdfc3RhbmRieS9wZ19zdGFuZGJ5LmMKKysrIGIvY29udHJpYi9wZ19zdGFuZGJ5 L3BnX3N0YW5kYnkuYwpAQCAtNjIyLDcgKzYyMiw3IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKCIg IC13IE1BWFdBSVRUSU1FICAgICBtYXggc2Vjb25kcyB0byB3YWl0IGZvciBhIGZpbGUgKDA9bm8g bGltaXQpIChkZWZhdWx0PTApXG4iKTsKIAlwcmludGYoIiAgLT8sIC0taGVscCAgICAgICAgIHNo b3cgdGhpcyBoZWxwLCB0aGVuIGV4aXRcbiIpOwogCXByaW50ZigiXG4iCi0JCSAgICJNYWluIGlu dGVuZGVkIHVzZSBhcyByZXN0b3JlX2NvbW1hbmQgaW4gcmVjb3ZlcnkuY29uZjpcbiIKKwkJICAg Ik1haW4gaW50ZW5kZWQgdXNlIGFzIHJlc3RvcmVfY29tbWFuZCBpbiBwb3N0Z3Jlc3FsLmNvbmY6 XG4iCiAJCSAgICIgIHJlc3RvcmVfY29tbWFuZCA9ICdwZ19zdGFuZGJ5IFtPUFRJT05dLi4uIEFS Q0hJVkVMT0NBVElPTiAlJWYgJSVwICUlcidcbiIKIAkJICAgImUuZy5cbiIKIAkJICAgIiAgcmVz dG9yZV9jb21tYW5kID0gJ3BnX3N0YW5kYnkgL21udC9zZXJ2ZXIvYXJjaGl2ZXJkaXIgJSVmICUl cCAlJXInXG4iKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbCBiL2RvYy9z cmMvc2dtbC9iYWNrdXAuc2dtbAppbmRleCAzZmE1ZWZkLi43ODBmNDBkIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvYmFja3VwLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2JhY2t1cC5zZ21sCkBA IC0xMjIwLDcgKzEyMjAsNyBAQCBTRUxFQ1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgIDwvbGlzdGl0 ZW0+CiAgICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+Ci0gICAgIENyZWF0ZSBhIHJlY292ZXJ5IGNv bW1hbmQgZmlsZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBjbHVz dGVyCisgICAgIENyZWF0ZSBhIGZpbGUgPGZpbGVuYW1lPnJlY292ZXJ5LnNpZ25hbDwvZmlsZW5h bWU+IGluIHRoZSBjbHVzdGVyCiAgICAgIGRhdGEgZGlyZWN0b3J5IChzZWUgPHhyZWYgbGlua2Vu ZD0icmVjb3ZlcnktY29uZmlnIi8+KS4gWW91IG1pZ2h0CiAgICAgIGFsc28gd2FudCB0byB0ZW1w b3JhcmlseSBtb2RpZnkgPGZpbGVuYW1lPnBnX2hiYS5jb25mPC9maWxlbmFtZT4gdG8gcHJldmVu dAogICAgICBvcmRpbmFyeSB1c2VycyBmcm9tIGNvbm5lY3RpbmcgdW50aWwgeW91IGFyZSBzdXJl IHRoZSByZWNvdmVyeSB3YXMgc3VjY2Vzc2Z1bC4KQEAgLTEyMzIsMTAgKzEyMzIsOSBAQCBTRUxF Q1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgICAgcHJvY2VlZCB0byByZWFkIHRocm91Z2ggdGhlIGFy Y2hpdmVkIFdBTCBmaWxlcyBpdCBuZWVkcy4gIFNob3VsZCB0aGUKICAgICAgcmVjb3ZlcnkgYmUg dGVybWluYXRlZCBiZWNhdXNlIG9mIGFuIGV4dGVybmFsIGVycm9yLCB0aGUgc2VydmVyIGNhbgog ICAgICBzaW1wbHkgYmUgcmVzdGFydGVkIGFuZCBpdCB3aWxsIGNvbnRpbnVlIHJlY292ZXJ5LiAg VXBvbiBjb21wbGV0aW9uCi0gICAgIG9mIHRoZSByZWNvdmVyeSBwcm9jZXNzLCB0aGUgc2VydmVy IHdpbGwgcmVuYW1lCi0gICAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gdG8g PGZpbGVuYW1lPnJlY292ZXJ5LmRvbmU8L2ZpbGVuYW1lPiAodG8gcHJldmVudAotICAgICBhY2Np ZGVudGFsbHkgcmUtZW50ZXJpbmcgcmVjb3ZlcnkgbW9kZSBsYXRlcikgYW5kIHRoZW4KLSAgICAg Y29tbWVuY2Ugbm9ybWFsIGRhdGFiYXNlIG9wZXJhdGlvbnMuCisgICAgIG9mIHRoZSByZWNvdmVy eSBwcm9jZXNzLCB0aGUgc2VydmVyIHdpbGwgcmVtb3ZlCisgICAgIDxmaWxlbmFtZT5yZWNvdmVy eS5zaWduYWw8L2ZpbGVuYW1lPiAodG8gcHJldmVudCBhY2NpZGVudGFsbHkgcmUtZW50ZXJpbmcK KyAgICAgcmVjb3ZlcnkgbW9kZSBsYXRlcikgYW5kIHRoZW4gY29tbWVuY2Ugbm9ybWFsIGRhdGFi YXNlIG9wZXJhdGlvbnMuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KICAgIDxsaXN0aXRl bT4KQEAgLTEyNDksMTIgKzEyNDgsOCBAQCBTRUxFQ1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgIDwv cGFyYT4KIAogICAgPHBhcmE+Ci0gICAgVGhlIGtleSBwYXJ0IG9mIGFsbCB0aGlzIGlzIHRvIHNl dCB1cCBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0Ci0gICAgZGVzY3JpYmVzIGhv dyB5b3Ugd2FudCB0byByZWNvdmVyIGFuZCBob3cgZmFyIHRoZSByZWNvdmVyeSBzaG91bGQKLSAg ICBydW4uICBZb3UgY2FuIHVzZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZi5zYW1wbGU8L2ZpbGVu YW1lPiAobm9ybWFsbHkKLSAgICBsb2NhdGVkIGluIHRoZSBpbnN0YWxsYXRpb24ncyA8ZmlsZW5h bWU+c2hhcmUvPC9maWxlbmFtZT4gZGlyZWN0b3J5KSBhcyBhCi0gICAgcHJvdG90eXBlLiAgVGhl IG9uZSB0aGluZyB0aGF0IHlvdSBhYnNvbHV0ZWx5IG11c3Qgc3BlY2lmeSBpbgotICAgIDxmaWxl bmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gaXMgdGhlIDx2YXJuYW1lPnJlc3RvcmVfY29t bWFuZDwvdmFybmFtZT4sCisgICAgVGhlIGtleSBwYXJ0IG9mIGFsbCB0aGlzIGlzIHRvIHNldCB1 cCBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uCisgICAgVGhlIG9uZSB0aGluZyB0aGF0IHlvdSBh YnNvbHV0ZWx5IG11c3Qgc3BlY2lmeSBpcyB0aGUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92 YXJuYW1lPiwKICAgICB3aGljaCB0ZWxscyA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IGhvdyB0byByZXRyaWV2ZSBhcmNoaXZlZAogICAgIFdBTCBmaWxlIHNlZ21lbnRzLiAg TGlrZSB0aGUgPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPiwgdGhpcyBpcwogICAg IGEgc2hlbGwgY29tbWFuZCBzdHJpbmcuICBJdCBjYW4gY29udGFpbiA8bGl0ZXJhbD4lZjwvbGl0 ZXJhbD4sIHdoaWNoIGlzCkBAIC0xMzE2LDcgKzEzMTEsNyBAQCByZXN0b3JlX2NvbW1hbmQgPSAn Y3AgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpci8lZiAlcCcKICAgIDxwYXJhPgogICAgIElmIHlvdSB3 YW50IHRvIHJlY292ZXIgdG8gc29tZSBwcmV2aW91cyBwb2ludCBpbiB0aW1lIChzYXksIHJpZ2h0 IGJlZm9yZQogICAgIHRoZSBqdW5pb3IgREJBIGRyb3BwZWQgeW91ciBtYWluIHRyYW5zYWN0aW9u IHRhYmxlKSwganVzdCBzcGVjaWZ5IHRoZQotICAgIHJlcXVpcmVkIDxsaW5rIGxpbmtlbmQ9InJl Y292ZXJ5LXRhcmdldC1zZXR0aW5ncyI+c3RvcHBpbmcgcG9pbnQ8L2xpbms+IGluIDxmaWxlbmFt ZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4uICBZb3UgY2FuIHNwZWNpZnkKKyAgICByZXF1aXJl ZCA8bGluayBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtc2V0dGluZ3MiPnN0b3BwaW5nIHBvaW50 PC9saW5rPi4gIFlvdSBjYW4gc3BlY2lmeQogICAgIHRoZSBzdG9wIHBvaW50LCBrbm93biBhcyB0 aGUgPHF1b3RlPnJlY292ZXJ5IHRhcmdldDwvcXVvdGU+LCBlaXRoZXIgYnkKICAgICBkYXRlL3Rp bWUsIG5hbWVkIHJlc3RvcmUgcG9pbnQgb3IgYnkgY29tcGxldGlvbiBvZiBhIHNwZWNpZmljIHRy YW5zYWN0aW9uCiAgICAgSUQuICBBcyBvZiB0aGlzIHdyaXRpbmcgb25seSB0aGUgZGF0ZS90aW1l IGFuZCBuYW1lZCByZXN0b3JlIHBvaW50IG9wdGlvbnMKQEAgLTE0MTQsOCArMTQwOSw4IEBAIHJl c3RvcmVfY29tbWFuZCA9ICdjcCAvbW50L3NlcnZlci9hcmNoaXZlZGlyLyVmICVwJwogICAgIHRo YXQgd2FzIGN1cnJlbnQgd2hlbiB0aGUgYmFzZSBiYWNrdXAgd2FzIHRha2VuLiAgSWYgeW91IHdp c2ggdG8gcmVjb3ZlcgogICAgIGludG8gc29tZSBjaGlsZCB0aW1lbGluZSAodGhhdCBpcywgeW91 IHdhbnQgdG8gcmV0dXJuIHRvIHNvbWUgc3RhdGUgdGhhdAogICAgIHdhcyBpdHNlbGYgZ2VuZXJh dGVkIGFmdGVyIGEgcmVjb3ZlcnkgYXR0ZW1wdCksIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlCi0g ICAgdGFyZ2V0IHRpbWVsaW5lIElEIGluIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFt ZT4uICBZb3UgY2Fubm90IHJlY292ZXIgaW50bwotICAgIHRpbWVsaW5lcyB0aGF0IGJyYW5jaGVk IG9mZiBlYXJsaWVyIHRoYW4gdGhlIGJhc2UgYmFja3VwLgorICAgIHRhcmdldCB0aW1lbGluZSBJ RCBpbiA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdGltZWxpbmUiLz4uIFlvdQorICAg IGNhbm5vdCByZWNvdmVyIGludG8gdGltZWxpbmVzIHRoYXQgYnJhbmNoZWQgb2ZmIGVhcmxpZXIg dGhhbiB0aGUgYmFzZSBiYWNrdXAuCiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApp bmRleCA1YjkxM2YwLi40N2M0MjBlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0zMTk4LDExICszMTk4LDExIEBA IGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIDx2YXJuYW1lPmFwcGxpY2F0aW9uX25hbWU8 L3Zhcm5hbWU+IHNldHRpbmcgb2YgdGhlIHN0YW5kYnksIGFzIHNldCBpbiB0aGUKICAgICAgICAg c3RhbmRieSdzIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24uICBJbiBjYXNlIG9mIGEgcGh5c2ljYWwg cmVwbGljYXRpb24KICAgICAgICAgc3RhbmRieSwgdGhpcyBzaG91bGQgYmUgc2V0IGluIHRoZSA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPgotICAgICAgICBzZXR0aW5nIGluIDxm aWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT47IHRoZSBkZWZhdWx0Ci0gICAgICAgIGlz IDxsaXRlcmFsPndhbHJlY2VpdmVyPC9saXRlcmFsPi4gIEZvciBsb2dpY2FsIHJlcGxpY2F0aW9u LCB0aGlzIGNhbgotICAgICAgICBiZSBzZXQgaW4gdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24g b2YgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGl0Ci0gICAgICAgIGRlZmF1bHRzIHRvIHRoZSBzdWJz Y3JpcHRpb24gbmFtZS4gIEZvciBvdGhlciByZXBsaWNhdGlvbiBzdHJlYW0KLSAgICAgICAgY29u c3VtZXJzLCBjb25zdWx0IHRoZWlyIGRvY3VtZW50YXRpb24uCisgICAgICAgIHNldHRpbmc7IHRo ZSBkZWZhdWx0IGlzIDxsaXRlcmFsPndhbHJlY2VpdmVyPC9saXRlcmFsPi4KKyAgICAgICAgRm9y IGxvZ2ljYWwgcmVwbGljYXRpb24sIHRoaXMgY2FuIGJlIHNldCBpbiB0aGUgY29ubmVjdGlvbgor ICAgICAgICBpbmZvcm1hdGlvbiBvZiB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgaXQgZGVmYXVsdHMg dG8gdGhlCisgICAgICAgIHN1YnNjcmlwdGlvbiBuYW1lLiAgRm9yIG90aGVyIHJlcGxpY2F0aW9u IHN0cmVhbSBjb25zdW1lcnMsCisgICAgICAgIGNvbnN1bHQgdGhlaXIgZG9jdW1lbnRhdGlvbi4K ICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgcGFyYW1ldGVyIHNw ZWNpZmllcyBhIGxpc3Qgb2Ygc3RhbmRieSBzZXJ2ZXJzIHVzaW5nCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCBlZGM5YmU5 Li5jN2ExZWYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKQEAgLTE4ODU1LDcgKzE4ODU1LDcgQEAgcG9zdGdyZXM9IyBzZWxl Y3QgcGdfc3RhcnRfYmFja3VwKCdsYWJlbF9nb2VzX2hlcmUnKTsKICAgICA8ZnVuY3Rpb24+cGdf Y3JlYXRlX3Jlc3RvcmVfcG9pbnQ8L2Z1bmN0aW9uPiBjcmVhdGVzIGEgbmFtZWQgd3JpdGUtYWhl YWQgbG9nCiAgICAgcmVjb3JkIHRoYXQgY2FuIGJlIHVzZWQgYXMgcmVjb3ZlcnkgdGFyZ2V0LCBh bmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZwogICAgIHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlv bi4gIFRoZSBnaXZlbiBuYW1lIGNhbiB0aGVuIGJlIHVzZWQgd2l0aAotICAgIDx4cmVmIGxpbmtl bmQ9InJlY292ZXJ5LXRhcmdldC1uYW1lIi8+IHRvIHNwZWNpZnkgdGhlIHBvaW50IHVwIHRvIHdo aWNoCisgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXZhbHVlIi8+IHRvIHNwZWNp ZnkgdGhlIHBvaW50IHVwIHRvIHdoaWNoCiAgICAgcmVjb3Zlcnkgd2lsbCBwcm9jZWVkLiAgQXZv aWQgY3JlYXRpbmcgbXVsdGlwbGUgcmVzdG9yZSBwb2ludHMgd2l0aCB0aGUKICAgICBzYW1lIG5h bWUsIHNpbmNlIHJlY292ZXJ5IHdpbGwgc3RvcCBhdCB0aGUgZmlyc3Qgb25lIHdob3NlIG5hbWUg bWF0Y2hlcwogICAgIHRoZSByZWNvdmVyeSB0YXJnZXQuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0 eS5zZ21sCmluZGV4IDkzNGViOTAuLmU5ZThmMjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9o aWdoLWF2YWlsYWJpbGl0eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0 eS5zZ21sCkBAIC02ODYsMTAgKzY4Niw5IEBAIHByb3RvY29sIHRvIG1ha2Ugbm9kZXMgYWdyZWUg b24gYSBzZXJpYWxpemFibGUgdHJhbnNhY3Rpb25hbCBvcmRlci4KIAogICAgPHBhcmE+CiAgICAg VG8gc2V0IHVwIHRoZSBzdGFuZGJ5IHNlcnZlciwgcmVzdG9yZSB0aGUgYmFzZSBiYWNrdXAgdGFr ZW4gZnJvbSBwcmltYXJ5Ci0gICAgc2VydmVyIChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBp dHItcmVjb3ZlcnkiLz4pLiBDcmVhdGUgYSByZWNvdmVyeQotICAgIGNvbW1hbmQgZmlsZSA8Zmls ZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBzdGFuZGJ5J3MgY2x1c3RlciBk YXRhCi0gICAgZGlyZWN0b3J5LCBhbmQgdHVybiBvbiA8dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zh cm5hbWU+LiBTZXQKLSAgICA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IHRvIGEg c2ltcGxlIGNvbW1hbmQgdG8gY29weSBmaWxlcyBmcm9tCisgICAgc2VydmVyIChzZWUgPHhyZWYg bGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLiBDcmVhdGUgYSBmaWxlCisgICAgPGZp bGVuYW1lPnN0YW5kYnkuc2lnbmFsPC9maWxlbmFtZT4gaW4gdGhlIHN0YW5kYnkncyBjbHVzdGVy IGRhdGEKKyAgICBkaXJlY3RvcnkuIFNldCA8eHJlZiBsaW5rZW5kPSJyZXN0b3JlLWNvbW1hbmQi Lz4gdG8gYSBzaW1wbGUgY29tbWFuZCB0byBjb3B5IGZpbGVzIGZyb20KICAgICB0aGUgV0FMIGFy Y2hpdmUuIElmIHlvdSBwbGFuIHRvIGhhdmUgbXVsdGlwbGUgc3RhbmRieSBzZXJ2ZXJzIGZvciBo aWdoCiAgICAgYXZhaWxhYmlsaXR5IHB1cnBvc2VzLCBzZXQgPHZhcm5hbWU+cmVjb3ZlcnlfdGFy Z2V0X3RpbWVsaW5lPC92YXJuYW1lPiB0bwogICAgIDxsaXRlcmFsPmxhdGVzdDwvbGl0ZXJhbD4s IHRvIG1ha2UgdGhlIHN0YW5kYnkgc2VydmVyIGZvbGxvdyB0aGUgdGltZWxpbmUgY2hhbmdlCkBA IC02OTksNyArNjk4LDcgQEAgcHJvdG9jb2wgdG8gbWFrZSBub2RlcyBhZ3JlZSBvbiBhIHNlcmlh bGl6YWJsZSB0cmFuc2FjdGlvbmFsIG9yZGVyLgogICAgPG5vdGU+CiAgICAgIDxwYXJhPgogICAg ICBEbyBub3QgdXNlIHBnX3N0YW5kYnkgb3Igc2ltaWxhciB0b29scyB3aXRoIHRoZSBidWlsdC1p biBzdGFuZGJ5IG1vZGUKLSAgICAgZGVzY3JpYmVkIGhlcmUuIDx2YXJuYW1lPnJlc3RvcmVfY29t bWFuZDwvdmFybmFtZT4gc2hvdWxkIHJldHVybiBpbW1lZGlhdGVseQorICAgICBkZXNjcmliZWQg aGVyZS4gPHhyZWYgbGlua2VuZD0icmVzdG9yZS1jb21tYW5kIi8+IHNob3VsZCByZXR1cm4gaW1t ZWRpYXRlbHkKICAgICAgaWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3Q7IHRoZSBzZXJ2ZXIgd2ls bCByZXRyeSB0aGUgY29tbWFuZCBhZ2FpbiBpZgogICAgICBuZWNlc3NhcnkuIFNlZSA8eHJlZiBs aW5rZW5kPSJsb2ctc2hpcHBpbmctYWx0ZXJuYXRpdmUiLz4KICAgICAgZm9yIHVzaW5nIHRvb2xz IGxpa2UgcGdfc3RhbmRieS4KQEAgLTcwOCwxMSArNzA3LDExIEBAIHByb3RvY29sIHRvIG1ha2Ug bm9kZXMgYWdyZWUgb24gYSBzZXJpYWxpemFibGUgdHJhbnNhY3Rpb25hbCBvcmRlci4KIAogICAg PHBhcmE+CiAgICAgIElmIHlvdSB3YW50IHRvIHVzZSBzdHJlYW1pbmcgcmVwbGljYXRpb24sIGZp bGwgaW4KLSAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gd2l0aCBhIGxp YnBxIGNvbm5lY3Rpb24gc3RyaW5nLCBpbmNsdWRpbmcKKyAgICAgPHhyZWYgbGlua2VuZD0icHJp bWFyeS1jb25uaW5mbyIvPiB3aXRoIGEgbGlicHEgY29ubmVjdGlvbiBzdHJpbmcsIGluY2x1ZGlu ZwogICAgICB0aGUgaG9zdCBuYW1lIChvciBJUCBhZGRyZXNzKSBhbmQgYW55IGFkZGl0aW9uYWwg ZGV0YWlscyBuZWVkZWQgdG8KICAgICAgY29ubmVjdCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuIElm IHRoZSBwcmltYXJ5IG5lZWRzIGEgcGFzc3dvcmQgZm9yCiAgICAgIGF1dGhlbnRpY2F0aW9uLCB0 aGUgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluCi0gICAgIDx2YXJuYW1lPnByaW1h cnlfY29ubmluZm88L3Zhcm5hbWU+IGFzIHdlbGwuCisgICAgIDx4cmVmIGxpbmtlbmQ9InByaW1h cnktY29ubmluZm8iLz4gYXMgd2VsbC4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC03MzUs OSArNzM0LDggQEAgcHJvdG9jb2wgdG8gbWFrZSBub2RlcyBhZ3JlZSBvbiBhIHNlcmlhbGl6YWJs ZSB0cmFuc2FjdGlvbmFsIG9yZGVyLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBBIHNp bXBsZSBleGFtcGxlIG9mIGEgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBpczoK KyAgICBBIHNpbXBsZSBleGFtcGxlIG9mIGNvbmZpZ3VyYXRpb24gaXM6CiA8cHJvZ3JhbWxpc3Rp bmc+Ci1zdGFuZGJ5X21vZGUgPSAnb24nCiBwcmltYXJ5X2Nvbm5pbmZvID0gJ2hvc3Q9MTkyLjE2 OC4xLjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyBwYXNzd29yZD1mb29wYXNzJwogcmVzdG9yZV9jb21t YW5kID0gJ2NwIC9wYXRoL3RvL2FyY2hpdmUvJWYgJXAnCiBhcmNoaXZlX2NsZWFudXBfY29tbWFu ZCA9ICdwZ19hcmNoaXZlY2xlYW51cCAvcGF0aC90by9hcmNoaXZlICVyJwpAQCAtNzkzLDggKzc5 MSw4IEBAIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9wYXRo L3RvL2FyY2hpdmUgJXInCiAgICAgVG8gdXNlIHN0cmVhbWluZyByZXBsaWNhdGlvbiwgc2V0IHVw IGEgZmlsZS1iYXNlZCBsb2ctc2hpcHBpbmcgc3RhbmRieQogICAgIHNlcnZlciBhcyBkZXNjcmli ZWQgaW4gPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+LiBUaGUgc3RlcCB0aGF0CiAgICAg dHVybnMgYSBmaWxlLWJhc2VkIGxvZy1zaGlwcGluZyBzdGFuZGJ5IGludG8gc3RyZWFtaW5nIHJl cGxpY2F0aW9uCi0gICAgc3RhbmRieSBpcyBzZXR0aW5nIDx2YXJuYW1lPnByaW1hcnlfY29ubmlu Zm88L3Zhcm5hbWU+IHNldHRpbmcgaW4gdGhlCi0gICAgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8 L2ZpbGVuYW1lPiBmaWxlIHRvIHBvaW50IHRvIHRoZSBwcmltYXJ5IHNlcnZlci4gU2V0CisgICAg c3RhbmRieSBpcyBzZXR0aW5nIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHNl dHRpbmcKKyAgICB0byBwb2ludCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuIFNldAogICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1saXN0ZW4tYWRkcmVzc2VzIi8+IGFuZCBhdXRoZW50aWNhdGlvbiBvcHRp b25zCiAgICAgKHNlZSA8ZmlsZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPikgb24gdGhlIHBy aW1hcnkgc28gdGhhdCB0aGUgc3RhbmRieSBzZXJ2ZXIKICAgICBjYW4gY29ubmVjdCB0byB0aGUg PGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IHBzZXVkby1kYXRhYmFzZSBvbiB0aGUgcHJp bWFyeQpAQCAtODU0LDE0ICs4NTIsMTQgQEAgaG9zdCAgICByZXBsaWNhdGlvbiAgICAgZm9vICAg ICAgICAgICAgIDE5Mi4xNjguMS4xMDAvMzIgICAgICAgIG1kNQogICAgIDwvcGFyYT4KICAgICA8 cGFyYT4KICAgICAgVGhlIGhvc3QgbmFtZSBhbmQgcG9ydCBudW1iZXIgb2YgdGhlIHByaW1hcnks IGNvbm5lY3Rpb24gdXNlciBuYW1lLAotICAgICBhbmQgcGFzc3dvcmQgYXJlIHNwZWNpZmllZCBp biB0aGUgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBmaWxlLgorICAgICBhbmQg cGFzc3dvcmQgYXJlIHNwZWNpZmllZCBpbiB0aGUgPHhyZWYgbGlua2VuZD0icHJpbWFyeS1jb25u aW5mbyIvPi4KICAgICAgVGhlIHBhc3N3b3JkIGNhbiBhbHNvIGJlIHNldCBpbiB0aGUgPGZpbGVu YW1lPn4vLnBncGFzczwvZmlsZW5hbWU+IGZpbGUgb24gdGhlCiAgICAgIHN0YW5kYnkgKHNwZWNp ZnkgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IGluIHRoZSA8cmVwbGFjZWFibGU+ZGF0 YWJhc2U8L3JlcGxhY2VhYmxlPgogICAgICBmaWVsZCkuCiAgICAgIEZvciBleGFtcGxlLCBpZiB0 aGUgcHJpbWFyeSBpcyBydW5uaW5nIG9uIGhvc3QgSVAgPGxpdGVyYWw+MTkyLjE2OC4xLjUwPC9s aXRlcmFsPiwKICAgICAgcG9ydCA8bGl0ZXJhbD41NDMyPC9saXRlcmFsPiwgdGhlIGFjY291bnQg bmFtZSBmb3IgcmVwbGljYXRpb24gaXMKICAgICAgPGxpdGVyYWw+Zm9vPC9saXRlcmFsPiwgYW5k IHRoZSBwYXNzd29yZCBpcyA8bGl0ZXJhbD5mb29wYXNzPC9saXRlcmFsPiwgdGhlIGFkbWluaXN0 cmF0b3IKLSAgICAgY2FuIGFkZCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdGhlIDxmaWxlbmFtZT5y ZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUKKyAgICAgY2FuIGFkZCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBm aWxlIG9uIHRoZQogICAgICBzdGFuZGJ5OgogCiA8cHJvZ3JhbWxpc3Rpbmc+CkBAIC05NzMsMTAg Kzk3MSw4IEBAIHBvc3RncmVzPSMgU0VMRUNUICogRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsK ICgxIHJvdykKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgIFRvIGNvbmZpZ3VyZSB0aGUgc3RhbmRi eSB0byB1c2UgdGhpcyBzbG90LCA8dmFybmFtZT5wcmltYXJ5X3Nsb3RfbmFtZTwvdmFybmFtZT4K LSAgICAgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIHN0YW5kYnkncyA8ZmlsZW5hbWU+cmVj b3ZlcnkuY29uZjwvZmlsZW5hbWU+LgotICAgICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6Cisg ICAgIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRoZSBzdGFuZGJ5LiBIZXJlIGlzIGEgc2ltcGxl IGV4YW1wbGU6CiA8cHJvZ3JhbWxpc3Rpbmc+Ci1zdGFuZGJ5X21vZGUgPSAnb24nCiBwcmltYXJ5 X2Nvbm5pbmZvID0gJ2hvc3Q9MTkyLjE2OC4xLjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyBwYXNzd29y ZD1mb29wYXNzJwogcHJpbWFyeV9zbG90X25hbWUgPSAnbm9kZV9hX3Nsb3QnCiA8L3Byb2dyYW1s aXN0aW5nPgpAQCAtMTQ3Myw5ICsxNDY5LDkgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9 ICdBTlkgMiAoczEsIHMyLCBzMyknCiAgICA8cGFyYT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVy IG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2VydmVyLAogICAgIHJ1biA8Y29tbWFuZD5wZ19j dGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY3JlYXRlIGEgdHJpZ2dlcgotICAgIGZpbGUgd2l0aCB0 aGUgZmlsZSBuYW1lIGFuZCBwYXRoIHNwZWNpZmllZCBieSB0aGUgPHZhcm5hbWU+dHJpZ2dlcl9m aWxlPC92YXJuYW1lPgotICAgIHNldHRpbmcgaW4gPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2Zp bGVuYW1lPi4gSWYgeW91J3JlIHBsYW5uaW5nIHRvIHVzZQotICAgIDxjb21tYW5kPnBnX2N0bCBw cm9tb3RlPC9jb21tYW5kPiB0byBmYWlsIG92ZXIsIDx2YXJuYW1lPnRyaWdnZXJfZmlsZTwvdmFy bmFtZT4gaXMKKyAgICBmaWxlIHdpdGggdGhlIGZpbGUgbmFtZSBhbmQgcGF0aCBzcGVjaWZpZWQg YnkgdGhlIDx2YXJuYW1lPnByb21vdGVfc2lnbmFsX2ZpbGU8L3Zhcm5hbWU+CisgICAgc2V0dGlu Zy4gSWYgeW91J3JlIHBsYW5uaW5nIHRvIHVzZQorICAgIDxjb21tYW5kPnBnX2N0bCBwcm9tb3Rl PC9jb21tYW5kPiB0byBmYWlsIG92ZXIsIDx2YXJuYW1lPnByb21vdGVfc2lnbmFsX2ZpbGU8L3Zh cm5hbWU+IGlzCiAgICAgbm90IHJlcXVpcmVkLiBJZiB5b3UncmUgc2V0dGluZyB1cCB0aGUgcmVw b3J0aW5nIHNlcnZlcnMgdGhhdCBhcmUKICAgICBvbmx5IHVzZWQgdG8gb2ZmbG9hZCByZWFkLW9u bHkgcXVlcmllcyBmcm9tIHRoZSBwcmltYXJ5LCBub3QgZm9yIGhpZ2gKICAgICBhdmFpbGFiaWxp dHkgcHVycG9zZXMsIHlvdSBkb24ndCBuZWVkIHRvIHByb21vdGUgaXQuCkBAIC0xNDg4LDExICsx NDg0LDggQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICA8cGFyYT4KICAgICBBbiBhbHRlcm5hdGl2ZSB0byB0aGUgYnVpbHQtaW4gc3RhbmRieSBt b2RlIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMKICAgICBzZWN0aW9ucyBpcyB0byB1c2UgYSA8 dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IHRoYXQgcG9sbHMgdGhlIGFyY2hpdmUg bG9jYXRpb24uCi0gICAgVGhpcyB3YXMgdGhlIG9ubHkgb3B0aW9uIGF2YWlsYWJsZSBpbiB2ZXJz aW9ucyA4LjQgYW5kIGJlbG93LiBJbiB0aGlzCi0gICAgc2V0dXAsIHNldCA8dmFybmFtZT5zdGFu ZGJ5X21vZGU8L3Zhcm5hbWU+IG9mZiwgYmVjYXVzZSB5b3UgYXJlIGltcGxlbWVudGluZwotICAg IHRoZSBwb2xsaW5nIHJlcXVpcmVkIGZvciBzdGFuZGJ5IG9wZXJhdGlvbiB5b3Vyc2VsZi4gU2Vl IHRoZQotICAgIDx4cmVmIGxpbmtlbmQ9InBnc3RhbmRieSIvPiBtb2R1bGUgZm9yIGEgcmVmZXJl bmNlCi0gICAgaW1wbGVtZW50YXRpb24gb2YgdGhpcy4KKyAgICBUaGlzIHdhcyB0aGUgb25seSBv cHRpb24gYXZhaWxhYmxlIGluIHZlcnNpb25zIDguNCBhbmQgYmVsb3cuIFNlZSB0aGUKKyAgICA8 eHJlZiBsaW5rZW5kPSJwZ3N0YW5kYnkiLz4gbW9kdWxlIGZvciBhIHJlZmVyZW5jZSBpbXBsZW1l bnRhdGlvbiBvZiB0aGlzLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTE1MTksMTQgKzE1 MTIsMTMgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgVGhlIG1hZ2ljIHRoYXQgbWFrZXMgdGhlIHR3byBsb29zZWx5IGNvdXBsZWQgc2VydmVy cyB3b3JrIHRvZ2V0aGVyIGlzCiAgICAgc2ltcGx5IGEgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5k PC92YXJuYW1lPiB1c2VkIG9uIHRoZSBzdGFuZGJ5IHRoYXQsCiAgICAgd2hlbiBhc2tlZCBmb3Ig dGhlIG5leHQgV0FMIGZpbGUsIHdhaXRzIGZvciBpdCB0byBiZWNvbWUgYXZhaWxhYmxlIGZyb20K LSAgICB0aGUgcHJpbWFyeS4gVGhlIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4g aXMgc3BlY2lmaWVkIGluIHRoZQotICAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFt ZT4gZmlsZSBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIuIE5vcm1hbCByZWNvdmVyeQotICAgIHByb2Nl c3Npbmcgd291bGQgcmVxdWVzdCBhIGZpbGUgZnJvbSB0aGUgV0FMIGFyY2hpdmUsIHJlcG9ydGlu ZyBmYWlsdXJlCi0gICAgaWYgdGhlIGZpbGUgd2FzIHVuYXZhaWxhYmxlLiAgRm9yIHN0YW5kYnkg cHJvY2Vzc2luZyBpdCBpcyBub3JtYWwgZm9yCi0gICAgdGhlIG5leHQgV0FMIGZpbGUgdG8gYmUg dW5hdmFpbGFibGUsIHNvIHRoZSBzdGFuZGJ5IG11c3Qgd2FpdCBmb3IKLSAgICBpdCB0byBhcHBl YXIuIEZvciBmaWxlcyBlbmRpbmcgaW4gCi0gICAgPGxpdGVyYWw+Lmhpc3Rvcnk8L2xpdGVyYWw+ IHRoZXJlIGlzIG5vIG5lZWQgdG8gd2FpdCwgYW5kIGEgbm9uLXplcm8gcmV0dXJuCi0gICAgY29k ZSBtdXN0IGJlIHJldHVybmVkLiBBIHdhaXRpbmcgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92 YXJuYW1lPiBjYW4gYmUKKyAgICB0aGUgcHJpbWFyeS4gTm9ybWFsIHJlY292ZXJ5IHByb2Nlc3Np bmcgd291bGQgcmVxdWVzdCBhIGZpbGUgZnJvbSB0aGUgV0FMCisgICAgYXJjaGl2ZSwgcmVwb3J0 aW5nIGZhaWx1cmUgaWYgdGhlIGZpbGUgd2FzIHVuYXZhaWxhYmxlLiAgRm9yIHN0YW5kYnkKKyAg ICBwcm9jZXNzaW5nIGl0IGlzIG5vcm1hbCBmb3IgdGhlIG5leHQgV0FMIGZpbGUgdG8gYmUgdW5h dmFpbGFibGUsCisgICAgc28gdGhlIHN0YW5kYnkgbXVzdCB3YWl0IGZvciBpdCB0byBhcHBlYXIu IEZvciBmaWxlcyBlbmRpbmcgaW4KKyAgICA8bGl0ZXJhbD4uYmFja3VwPC9saXRlcmFsPiBvciA8 bGl0ZXJhbD4uaGlzdG9yeTwvbGl0ZXJhbD4KKyAgICB0aGVyZSBpcyBubyBuZWVkIHRvIHdhaXQs IGFuZCBhIG5vbi16ZXJvIHJldHVybiBjb2RlIG11c3QgYmUgcmV0dXJuZWQuCisgICAgQSB3YWl0 aW5nIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4gY2FuIGJlCiAgICAgd3JpdHRl biBhcyBhIGN1c3RvbSBzY3JpcHQgdGhhdCBsb29wcyBhZnRlciBwb2xsaW5nIGZvciB0aGUgZXhp c3RlbmNlIG9mCiAgICAgdGhlIG5leHQgV0FMIGZpbGUuIFRoZXJlIG11c3QgYWxzbyBiZSBzb21l IHdheSB0byB0cmlnZ2VyIGZhaWxvdmVyLCB3aGljaAogICAgIHNob3VsZCBpbnRlcnJ1cHQgdGhl IDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4sIGJyZWFrIHRoZSBsb29wIGFuZApA QCAtMTYwOCw5ICsxNjAwLDggQEAgaWYgKCF0cmlnZ2VyZWQpCiAgICAgIDxsaXN0aXRlbT4KICAg ICAgIDxwYXJhPgogICAgICAgIEJlZ2luIHJlY292ZXJ5IG9uIHRoZSBzdGFuZGJ5IHNlcnZlciBm cm9tIHRoZSBsb2NhbCBXQUwKLSAgICAgICBhcmNoaXZlLCB1c2luZyBhIDxmaWxlbmFtZT5yZWNv dmVyeS5jb25mPC9maWxlbmFtZT4gdGhhdCBzcGVjaWZpZXMgYQotICAgICAgIDx2YXJuYW1lPnJl c3RvcmVfY29tbWFuZDwvdmFybmFtZT4gdGhhdCB3YWl0cyBhcyBkZXNjcmliZWQKLSAgICAgICBw cmV2aW91c2x5IChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLgor ICAgICAgIGFyY2hpdmUsIHVzaW5nIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4g dGhhdCB3YWl0cworICAgICAgIGFzIGRlc2NyaWJlZCBwcmV2aW91c2x5IChzZWUgPHhyZWYgbGlu a2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLgogICAgICAgPC9wYXJhPgogICAgICA8L2xp c3RpdGVtPgogICAgIDwvb3JkZXJlZGxpc3Q+CkBAIC0yMTA1LDcgKzIwOTYsNyBAQCBpZiAoIXRy aWdnZXJlZCkKIAogICAgPHBhcmE+CiAgICAgSWYgPHZhcm5hbWU+aG90X3N0YW5kYnk8L3Zhcm5h bWU+IGlzIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBpbiA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25m PC9maWxlbmFtZT4KLSAgICAodGhlIGRlZmF1bHQgdmFsdWUpIGFuZCB0aGVyZSBpcyBhIDxmaWxl bmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4KKyAgICAodGhlIGRlZmF1bHQgdmFsdWUpIGFu ZCB0aGVyZSBpcyBhIDxmaWxlbmFtZT5zdGFuZGJ5LnNpZ25hbDwvZmlsZW5hbWU+CiAgICAgZmls ZSBwcmVzZW50LCB0aGUgc2VydmVyIHdpbGwgcnVuIGluIEhvdCBTdGFuZGJ5IG1vZGUuCiAgICAg SG93ZXZlciwgaXQgbWF5IHRha2Ugc29tZSB0aW1lIGZvciBIb3QgU3RhbmRieSBjb25uZWN0aW9u cyB0byBiZSBhbGxvd2VkLAogICAgIGJlY2F1c2UgdGhlIHNlcnZlciB3aWxsIG5vdCBhY2NlcHQg Y29ubmVjdGlvbnMgdW50aWwgaXQgaGFzIGNvbXBsZXRlZApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3Bnc3RhbmRieS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bnc3RhbmRieS5zZ21sCmluZGV4IDJj YzU4ZmUuLmQ4YWRlZDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wZ3N0YW5kYnkuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGdzdGFuZGJ5LnNnbWwKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgPHBh cmE+CiAgICBUbyBjb25maWd1cmUgYSBzdGFuZGJ5CiAgICBzZXJ2ZXIgdG8gdXNlIDxhcHBsaWNh dGlvbj5wZ19zdGFuZGJ5PC9hcHBsaWNhdGlvbj4sIHB1dCB0aGlzIGludG8gaXRzCi0gICA8Zmls ZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGNvbmZpZ3VyYXRpb24gZmlsZToKKyAgIDxm aWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBjb25maWd1cmF0aW9uIGZpbGU6CiA8 cHJvZ3JhbWxpc3Rpbmc+CiByZXN0b3JlX2NvbW1hbmQgPSAncGdfc3RhbmRieSA8cmVwbGFjZWFi bGU+YXJjaGl2ZURpcjwvcmVwbGFjZWFibGU+ICVmICVwICVyJwogPC9wcm9ncmFtbGlzdGluZz4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWNvdmVyeS1jb25maWcuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWNvdmVyeS1jb25maWcuc2dtbAppbmRleCA5MjgyNWZkLi41Y2RjYTYxIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVjb3ZlcnktY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlY292ZXJ5LWNvbmZpZy5zZ21sCkBAIC0xMSwyMyArMTEsNDQgQEAKIAogICAgPHBhcmE+CiAg ICAgVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyB0aGUgc2V0dGluZ3MgYXZhaWxhYmxlIGluIHRoZQot ICAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5 PnJlY292ZXJ5LmNvbmY8L3ByaW1hcnk+PC9pbmRleHRlcm0+Ci0gICAgZmlsZS4gVGhleSBhcHBs eSBvbmx5IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlCisgICAgPGZpbGVuYW1lPnBvc3RncmVzcWwu Y29uZjwvZmlsZW5hbWU+CisgICAgZmlsZSB0aGF0IGFwcGx5IG9ubHkgZm9yIHRoZSBkdXJhdGlv biBvZiB0aGUKICAgICByZWNvdmVyeS4gIFRoZXkgbXVzdCBiZSByZXNldCBmb3IgYW55IHN1YnNl cXVlbnQgcmVjb3ZlcnkgeW91IHdpc2ggdG8KICAgICBwZXJmb3JtLiAgVGhleSBjYW5ub3QgYmUg Y2hhbmdlZCBvbmNlIHJlY292ZXJ5IGhhcyBiZWd1bi4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+ Ci0gICAgIFNldHRpbmdzIGluIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gYXJl IHNwZWNpZmllZCBpbiB0aGUgZm9ybWF0Ci0gICAgIDxsaXRlcmFsPm5hbWUgPSAndmFsdWUnPC9s aXRlcmFsPi4gT25lIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgcGVyIGxpbmUuCi0gICAgIEhhc2gg bWFya3MgKDxsaXRlcmFsPiM8L2xpdGVyYWw+KSBkZXNpZ25hdGUgdGhlIHJlc3Qgb2YgdGhlCi0g ICAgIGxpbmUgYXMgYSBjb21tZW50LiAgVG8gZW1iZWQgYSBzaW5nbGUgcXVvdGUgaW4gYSBwYXJh bWV0ZXIKLSAgICAgdmFsdWUsIHdyaXRlIHR3byBxdW90ZXMgKDxsaXRlcmFsPicnPC9saXRlcmFs PikuCisgICAgVGhlIGRhdGFiYXNlIHNlcnZlciBjYW4gYWxzbyBiZSBzdGFydGVkIDxsaXRlcmFs PmluIHJlY292ZXJ5PC9saXRlcmFsPiwgYSB0ZXJtIHRoYXQgY292ZXJzCisgICAgdXNpbmcgdGhl IHNlcnZlciBhcyBhIHN0YW5kYnkgb3IgZm9yIGV4ZWN1dGluZyBhIHRhcmdldGVkIHJlY292ZXJ5 LiBUeXBpY2FsbHkKKyAgICBzdGFuZGJ5IG1vZGUgd291bGQgYmUgdXNlZCB0byBwcm92aWRlIGhp Z2ggYXZhaWxhYmlsaXR5IGFuZC9vciByZWFkCisgICAgc2NhbGFiaWxpdHksIHdoZXJlYXMgYSB0 YXJnZXRlZCByZWNvdmVyeSBpcyB1c2VkIHRvIHJlY292ZXIgZnJvbSBkYXRhIGxvc3MuCiAgICA8 L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIEEgc2FtcGxlIGZpbGUsIDxmaWxlbmFtZT5zaGFyZS9y ZWNvdmVyeS5jb25mLnNhbXBsZTwvZmlsZW5hbWU+LAotICAgIGlzIHByb3ZpZGVkIGluIHRoZSBp bnN0YWxsYXRpb24ncyA8ZmlsZW5hbWU+c2hhcmUvPC9maWxlbmFtZT4gZGlyZWN0b3J5LgorICAg ICBUbyBzdGFydCB0aGUgc2VydmVyIGluIHN0YW5kYnkgbW9kZSBjcmVhdGUgZmlsZQorICAgIGNh bGxlZCA8ZmlsZW5hbWU+c3RhbmRieS5zaWduYWw8L2ZpbGVuYW1lPjxpbmRleHRlcm0+PHByaW1h cnk+c3RhbmRieS5zaWduYWw8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgaW4gdGhlIGRhdGEg ZGlyZWN0b3J5LiBUaGUgc2VydmVyIHdpbGwgZW50ZXIgcmVjb3ZlcnkgYW5kCisgICAgd2lsbCBu b3Qgc3RvcCByZWNvdmVyeSB3aGVuIHRoZSBlbmQgb2YgYXJjaGl2ZWQgV0FMIGlzIHJlYWNoZWQs IGJ1dAorICAgIHdpbGwga2VlcCB0cnlpbmcgdG8gY29udGludWUgcmVjb3ZlcnkgYnkgY29ubmVj dGluZyB0byB0aGUgc2VuZGluZyBzZXJ2ZXIgYXMKKyAgICBzcGVjaWZpZWQgYnkgdGhlIDx2YXJu YW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHNldHRpbmcgYW5kL29yIGJ5CisgICAgZmV0 Y2hpbmcgbmV3IFdBTCBzZWdtZW50cyB1c2luZyA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zh cm5hbWU+CisgICAgSW4gdGhpcyBtb2RlIHlvdSBtYXkgdXNlIHBhcmFtZXRlcnMKKyAgICBpbiBi b3RoIDx4cmVmIGxpbmtlbmQ9ImFyY2hpdmUtcmVjb3Zlcnktc2V0dGluZ3MiIC8+IGFuZAorICAg IDx4cmVmIGxpbmtlbmQ9InN0YW5kYnktc2V0dGluZ3MiLz4gc2VjdGlvbnMuIFBhcmFtZXRlcnMg ZnJvbQorICAgIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1zZXR0aW5ncyIvPiB3aWxs IG5vdCBiZSB1c2VkLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUbyBzdGFydCB0aGUg c2VydmVyIGluIHRhcmdldGVkIHJlY292ZXJ5IGNyZWF0ZSBhIGZpbGUgY2FsbGVkCisgICAgPGZp bGVuYW1lPnJlY292ZXJ5LnNpZ25hbDwvZmlsZW5hbWU+PGluZGV4dGVybT48cHJpbWFyeT5yZWNv dmVyeS5zaWduYWw8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgaW4gdGhlIGRhdGEgZGlyZWN0 b3J5LgorICAgIElmIGJvdGggPGZpbGVuYW1lPnN0YW5kYnkuc2lnbmFsPC9maWxlbmFtZT4gYW5k IDxmaWxlbmFtZT5yZWNvdmVyeS5zaWduYWw8L2ZpbGVuYW1lPiBmaWxlcyBhcmUKKyAgICBjcmVh dGVkLCBzdGFuZGJ5IG1vZGUgdGFrZXMgcHJlY2VkZW5jZS4gVGFyZ2V0ZWQgcmVjb3ZlcnkgbW9k ZSB3aWxsIGVuZCB3aGVuCisgICAgZW5kIG9mIGFyY2hpdmVkIFdBTCBpcyByZWFjaGVkLCBvciB3 aGVuIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldDwvdmFybmFtZT4gaXMgcmVhY2hlZC4KKyAgICBJ biB0aGlzIG1vZGUgeW91IG1heSB1c2UgcGFyYW1ldGVycyBmcm9tIGJvdGgKKyAgICA8eHJlZiBs aW5rZW5kPSJhcmNoaXZlLXJlY292ZXJ5LXNldHRpbmdzIi8+IGFuZAorICAgIDx4cmVmIGxpbmtl bmQ9InJlY292ZXJ5LXRhcmdldC1zZXR0aW5ncyIvPiBzZWN0aW9ucy4gUGFyYW1ldGVycyBmcm9t CisgICAgPHhyZWYgbGlua2VuZD0ic3RhbmRieS1zZXR0aW5ncyIvPiB3aWxsIG5vdCBiZSB1c2Vk LgogICAgPC9wYXJhPgogCiAgIDxzZWN0MSBpZD0iYXJjaGl2ZS1yZWNvdmVyeS1zZXR0aW5ncyI+ CkBAIC00NSw3ICs2Niw3IEBACiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoZSBsb2NhbCBzaGVs bCBjb21tYW5kIHRvIGV4ZWN1dGUgdG8gcmV0cmlldmUgYW4gYXJjaGl2ZWQgc2VnbWVudCBvZgog ICAgICAgICB0aGUgV0FMIGZpbGUgc2VyaWVzLiBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBm b3IgYXJjaGl2ZSByZWNvdmVyeSwKLSAgICAgICAgYnV0IG9wdGlvbmFsIGZvciBzdHJlYW1pbmcg cmVwbGljYXRpb24uCisgICAgICAgIGJ1dCBvcHRpb25hbCBmb3Igc3RhbmRieSBtb2RlLgogICAg ICAgICBBbnkgPGxpdGVyYWw+JWY8L2xpdGVyYWw+IGluIHRoZSBzdHJpbmcgaXMKICAgICAgICAg cmVwbGFjZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gcmV0cmlldmUgZnJvbSB0aGUgYXJj aGl2ZSwKICAgICAgICAgYW5kIGFueSA8bGl0ZXJhbD4lcDwvbGl0ZXJhbD4gaXMgcmVwbGFjZWQg YnkgdGhlIGNvcHkgZGVzdGluYXRpb24gcGF0aCBuYW1lCkBAIC0xNTQsOTkgKzE3NSwxMDEgQEAg cmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAi JyAgIyBXaW5kb3dzCiAgICAgPHRpdGxlPlJlY292ZXJ5IFRhcmdldCBTZXR0aW5nczwvdGl0bGU+ CiAKICAgICAgPHBhcmE+Ci0gICAgICBCeSBkZWZhdWx0LCByZWNvdmVyeSB3aWxsIHJlY292ZXIg dG8gdGhlIGVuZCBvZiB0aGUgV0FMIGxvZy4gVGhlCi0gICAgICBmb2xsb3dpbmcgcGFyYW1ldGVy cyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFuIGVhcmxpZXIgc3RvcHBpbmcgcG9pbnQuCi0gICAg ICBBdCBtb3N0IG9uZSBvZiA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXQ8L3Zhcm5hbWU+LAotICAg ICAgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2xzbjwvdmFybmFtZT4sIDx2YXJuYW1lPnJlY292 ZXJ5X3RhcmdldF9uYW1lPC92YXJuYW1lPiwKLSAgICAgIDx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dF90aW1lPC92YXJuYW1lPiwgb3IgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3hpZDwvdmFybmFt ZT4KLSAgICAgIGNhbiBiZSB1c2VkOyBpZiBtb3JlIHRoYW4gb25lIG9mIHRoZXNlIGlzIHNwZWNp ZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbgotICAgICAgZmlsZSwgdGhlIGxhc3QgZW50cnkgd2ls bCBiZSB1c2VkLgorICAgICAgQnkgZGVmYXVsdCwgcmVjb3Zlcnkgd2lsbCBwcm9jZXNzIHRvIHRo ZSBlbmQgb2YgdGhlIFdBTCBsb2cuIEFuIGVhcmxpZXIKKyAgICAgIHN0b3BwaW5nIHBvaW50IG1h eSBiZSBzcGVjaWZpZWQgdXNpbmcgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3R5cGU8L3Zhcm5h bWU+CisgICAgICBhbmQgaW4gbW9zdCBjYXNlcyBhbHNvIDx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dF92YWx1ZTwvdmFybmFtZT4sIHBsdXMgdGhlIG9wdGlvbmFsCisgICAgICBwYXJhbWV0ZXJzIDx2 YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmU8L3Zhcm5hbWU+LAorICAgICAgPHZhcm5h bWU+cmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lPC92YXJuYW1lPiBhbmQgPHZhcm5hbWU+cmVjb3Zl cnlfdGFyZ2V0X2FjdGlvbjwvdmFybmFtZT4uCiAgICAgIDwvcGFyYT4KIAogICAgICA8dmFyaWFi bGVsaXN0PgotICAgICA8dmFybGlzdGVudHJ5IGlkPSJyZWNvdmVyeS10YXJnZXQiIHhyZWZsYWJl bD0icmVjb3ZlcnlfdGFyZ2V0Ij4KLSAgICAgIDx0ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dDwvdmFybmFtZT48bGl0ZXJhbD4gPSAnaW1tZWRpYXRlJzwvbGl0ZXJhbD4KKyAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9InJlY292ZXJ5LXRhcmdldC10eXBlIiB4cmVmbGFiZWw9InJlY292ZXJ5X3Rh cmdldF90eXBlIj4KKyAgICAgICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdHlwZTwv dmFybmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQogICAgICAgPGluZGV4dGVybT4KLSAgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0PC92YXJuYW1lPiByZWNvdmVyeSBwYXJh bWV0ZXI8L3ByaW1hcnk+CisgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dF90eXBlPC92YXJuYW1lPiB0YXJnZXRlZCByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+CiAg ICAgICA8L2luZGV4dGVybT4KICAgICAgIDwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAg ICA8cGFyYT4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgcmVjb3Zlcnkg c2hvdWxkIGVuZCBhcyBzb29uIGFzIGEKLSAgICAgICAgY29uc2lzdGVudCBzdGF0ZSBpcyByZWFj aGVkLCBpLmUuIGFzIGVhcmx5IGFzIHBvc3NpYmxlLiBXaGVuIHJlc3RvcmluZwotICAgICAgICBm cm9tIGFuIG9ubGluZSBiYWNrdXAsIHRoaXMgbWVhbnMgdGhlIHBvaW50IHdoZXJlIHRha2luZyB0 aGUgYmFja3VwCi0gICAgICAgIGVuZGVkLgorICAgICAgICA8dmFybmFtZT5yZWNvdmVyeV90YXJn ZXRfdHlwZTwvdmFybmFtZT4gc3BlY2lmaWVzIHRoZSBzZWFyY2ggY3JpdGVyaWEgdXNlZCBmb3Ig YQorICAgICAgICBhIHRhcmdldGVkIHJlY292ZXJ5LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0 ZXJhbD5ub25lPC9saXRlcmFsPi4gVmFsaWQKKyAgICAgICAgdmFsdWVzIGFyZSA8bGl0ZXJhbD5u b25lPC9saXRlcmFsPiwgPGxpdGVyYWw+aW1tZWRpYXRlPC9saXRlcmFsPiwKKyAgICAgICAgPGxp dGVyYWw+bmFtZTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnRpbWVzdGFtcDwvbGl0ZXJhbD4sCisgICAg ICAgIDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPmxzbjwvbGl0ZXJhbD4uCiAg ICAgICAgPC9wYXJhPgorCiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFRlY2huaWNhbGx5LCB0aGlz IGlzIGEgc3RyaW5nIHBhcmFtZXRlciwgYnV0IDxsaXRlcmFsPidpbW1lZGlhdGUnPC9saXRlcmFs PgotICAgICAgICBpcyBjdXJyZW50bHkgdGhlIG9ubHkgYWxsb3dlZCB2YWx1ZS4KKyAgICAgICAg VGFyZ2V0LXR5cGUgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRoYXQgcmVjb3Zl cnkgd2lsbCBub3Qgc3RvcAorICAgICAgICB1bnRpbCBpdCBydW5zIG91dCBvZiBXQUwsIHdoaWNo IGlzIHRoZSBkZWZhdWx0IHNldHRpbmcuIFdoZW4gbm90IGluIHRhcmdldGVkCisgICAgICAgIHJl Y292ZXJ5IHRoaXMgaXMgdGhlIG9ubHkgbWVhbmluZ2Z1bCBzZXR0aW5nLgogICAgICAgIDwvcGFy YT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDwvdmFybGlzdGVudHJ5PgogCi0gICAgIDx2YXJs aXN0ZW50cnkgaWQ9InJlY292ZXJ5LXRhcmdldC1uYW1lIiB4cmVmbGFiZWw9InJlY292ZXJ5X3Rh cmdldF9uYW1lIj4KLSAgICAgIDx0ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9uYW1lPC92 YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKLSAgICAgIDxpbmRleHRlcm0+Ci0gICAgICAg IDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9uYW1lPC92YXJuYW1lPiByZWNvdmVy eSBwYXJhbWV0ZXI8L3ByaW1hcnk+Ci0gICAgICA8L2luZGV4dGVybT4KLSAgICAgIDwvdGVybT4K LSAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIg c3BlY2lmaWVzIHRoZSBuYW1lZCByZXN0b3JlIHBvaW50IChjcmVhdGVkIHdpdGgKLSAgICAgICAg PGZ1bmN0aW9uPnBnX2NyZWF0ZV9yZXN0b3JlX3BvaW50KCk8L2Z1bmN0aW9uPikgdG8gd2hpY2gg cmVjb3Zlcnkgd2lsbCBwcm9jZWVkLgorICAgICAgICBUYXJnZXQtdHlwZSA8bGl0ZXJhbD5pbW1l ZGlhdGU8L2xpdGVyYWw+IHNwZWNpZmllcyB0aGF0IHJlY292ZXJ5IHNob3VsZCBlbmQgYXMKKyAg ICAgICAgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUgaXMgcmVhY2hlZCwgaS5lLiBhcyBlYXJs eSBhcyBwb3NzaWJsZS4gV2hlbiByZXN0b3JpbmcKKyAgICAgICAgZnJvbSBhbiBvbmxpbmUgYmFj a3VwLCB0aGlzIG1lYW5zIHRoZSBwb2ludCB3aGVyZSB0YWtpbmcgdGhlIGJhY2t1cCBlbmRlZC4K KyAgICAgICAgRm9yIHRoaXMgdGFyZ2V0LXR5cGUsIG5vIGFkZGl0aW9uYWwgdGFyZ2V0LXNwZWNp ZmllcnMgaW5mbHVlbmNlIHRoZSBzdG9wcGluZworICAgICAgICBwb2ludC4KICAgICAgICA8L3Bh cmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KIAotICAgICA8dmFy bGlzdGVudHJ5IGlkPSJyZWNvdmVyeS10YXJnZXQtdGltZSIgeHJlZmxhYmVsPSJyZWNvdmVyeV90 YXJnZXRfdGltZSI+Ci0gICAgICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZTwv dmFybmFtZT4gKDx0eXBlPnRpbWVzdGFtcDwvdHlwZT4pCi0gICAgICA8aW5kZXh0ZXJtPgotICAg ICAgICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZTwvdmFybmFtZT4gcmVj b3ZlcnkgcGFyYW1ldGVyPC9wcmltYXJ5PgotICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICA8L3Rl cm0+Ci0gICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFRoaXMgcGFyYW1l dGVyIHNwZWNpZmllcyB0aGUgdGltZSBzdGFtcCB1cCB0byB3aGljaCByZWNvdmVyeQotICAgICAg ICB3aWxsIHByb2NlZWQuCisgICAgICAgIFRhcmdldC10eXBlIDxsaXRlcmFsPm5hbWU8L2xpdGVy YWw+IHNwZWNpZmllcyB0aGF0IHJlY292ZXJ5IHdpbGwKKyAgICAgICAgcHJvY2VlZCB0byB0aGUg cG9pbnQgc3BlY2lmaWVkIGJ5IDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF92YWx1ZTwvdmFybmFt ZT4KKyAgICAgICAgd2hlbiBpbnRlcnByZXRlZCBhcyB0aGUgbmFtZSBvZiBhIHJlc3RvcmUgcG9p bnQgY3JlYXRlZCB3aXRoCisgICAgICAgIDxmdW5jdGlvbj5wZ19jcmVhdGVfcmVzdG9yZV9wb2lu dCgpPC9mdW5jdGlvbj4uCisgICAgICAgICBUaGUgcHJlY2lzZSBzdG9wcGluZyBwb2ludCBpcyBh bHNvIGluZmx1ZW5jZWQgYnkKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0 LWluY2x1c2l2ZSIvPiBhbmQKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0 LXRpbWVsaW5lIi8+LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBU YXJnZXQtdHlwZSA8bGl0ZXJhbD50aW1lc3RhbXA8L2xpdGVyYWw+IHNwZWNpZmllcyB0aGF0IHJl Y292ZXJ5IHdpbGwKKyAgICAgICAgcHJvY2VlZCB0byB0aGUgcG9pbnQgc3BlY2lmaWVkIGJ5IDx2 YXJuYW1lPnJlY292ZXJ5X3RhcmdldF92YWx1ZTwvdmFybmFtZT4KKyAgICAgICAgd2hlbiBpbnRl cnByZXRlZCBhcyB0aGUgdGltZXN0YW1wIG9mIGEgdHJhbnNhY3Rpb24gY29tbWl0IG9yIGFib3J0 LgogICAgICAgICBUaGUgcHJlY2lzZSBzdG9wcGluZyBwb2ludCBpcyBhbHNvIGluZmx1ZW5jZWQg YnkKLSAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2ZSIvPi4K KyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2ZSIvPiBhbmQK KyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXRpbWVsaW5lIi8+LgogICAg ICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDwvdmFybGlzdGVudHJ5PgogCi0g ICAgIDx2YXJsaXN0ZW50cnkgaWQ9InJlY292ZXJ5LXRhcmdldC14aWQiIHhyZWZsYWJlbD0icmVj b3ZlcnlfdGFyZ2V0X3hpZCI+Ci0gICAgICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRf eGlkPC92YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKLSAgICAgIDxpbmRleHRlcm0+Ci0g ICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF94aWQ8L3Zhcm5hbWU+IHJl Y292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90 ZXJtPgotICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIHBhcmFt ZXRlciBzcGVjaWZpZXMgdGhlIHRyYW5zYWN0aW9uIElEIHVwIHRvIHdoaWNoIHJlY292ZXJ5Ci0g ICAgICAgIHdpbGwgcHJvY2VlZC4gS2VlcCBpbiBtaW5kCisgICAgICAgIFRhcmdldC10eXBlIDxs aXRlcmFsPnhpZDwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRoYXQgcmVjb3Zlcnkgd2lsbAorICAgICAg ICBwcm9jZWVkIHRvIHRoZSBwb2ludCBzcGVjaWZpZWQgYnkgPHZhcm5hbWU+cmVjb3ZlcnlfdGFy Z2V0X3ZhbHVlPC92YXJuYW1lPgorICAgICAgICB3aGVuIGludGVycHJldGVkIGFzIHRoZSB0cmFu c2FjdGlvbiBJRCBvZiBhIHRyYW5zYWN0aW9uIGNvbW1pdCBvciBhYm9ydC4KKyAgICAgICAgS2Vl cCBpbiBtaW5kCiAgICAgICAgIHRoYXQgd2hpbGUgdHJhbnNhY3Rpb24gSURzIGFyZSBhc3NpZ25l ZCBzZXF1ZW50aWFsbHkgYXQgdHJhbnNhY3Rpb24KICAgICAgICAgc3RhcnQsIHRyYW5zYWN0aW9u cyBjYW4gY29tcGxldGUgaW4gYSBkaWZmZXJlbnQgbnVtZXJpYyBvcmRlci4KICAgICAgICAgVGhl IHRyYW5zYWN0aW9ucyB0aGF0IHdpbGwgYmUgcmVjb3ZlcmVkIGFyZSB0aG9zZSB0aGF0IGNvbW1p dHRlZAogICAgICAgICBiZWZvcmUgKGFuZCBvcHRpb25hbGx5IGluY2x1ZGluZykgdGhlIHNwZWNp ZmllZCBvbmUuCiAgICAgICAgIFRoZSBwcmVjaXNlIHN0b3BwaW5nIHBvaW50IGlzIGFsc28gaW5m bHVlbmNlZCBieQotICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtaW5jbHVz aXZlIi8+LgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZl Ii8+IGFuZAorICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdGltZWxpbmUi Lz4uCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRhcmdldC10eXBl IDxsaXRlcmFsPmxzbjwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRoYXQgcmVjb3Zlcnkgd2lsbAorICAg ICAgICBwcm9jZWVkIHRvIHRoZSBwb2ludCBzcGVjaWZpZWQgYnkgPHZhcm5hbWU+cmVjb3Zlcnlf dGFyZ2V0X3ZhbHVlPC92YXJuYW1lPgorICAgICAgICB3aGVuIGludGVycHJldGVkIGFzIHRoZSBM U04gb2YgYW55IFdBTCByZWNvcmQsIHBhcnNlZCB1c2luZyB0aGUgc3lzdGVtCisgICAgICAgIGRh dGEgdHlwZSA8bGluayBsaW5rZW5kPSJkYXRhdHlwZS1wZy1sc24iPjx0eXBlPnBnX2xzbjwvdHlw ZT48L2xpbms+LgorICAgICAgICBUaGUgcHJlY2lzZSBzdG9wcGluZyBwb2ludCBpcyBhbHNvIGlu Zmx1ZW5jZWQgYnkKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1 c2l2ZSIvPiBhbmQKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXRpbWVs aW5lIi8+LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlz dGVudHJ5PgogCi0gICAgIDx2YXJsaXN0ZW50cnkgaWQ9InJlY292ZXJ5LXRhcmdldC1sc24iIHhy ZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X2xzbiI+Ci0gICAgICA8dGVybT48dmFybmFtZT5yZWNv dmVyeV90YXJnZXRfbHNuPC92YXJuYW1lPiAoPHR5cGU+cGdfbHNuPC90eXBlPikKKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0LXZhbHVlIgorICAgICAgICAgICAgICAgICAg IHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1l PnJlY292ZXJ5X3RhcmdldF92YWx1ZTwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90YXJn ZXRfbHNuPC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF92YWx1ZTwvdmFybmFtZT4gdGFyZ2V0ZWQg cmVjb3Zlcnkgc2VhcmNoIHBhcmFtZXRlcjwvcHJpbWFyeT4KICAgICAgIDwvaW5kZXh0ZXJtPgog ICAgICAgPC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBU aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIExTTiBvZiB0aGUgd3JpdGUtYWhlYWQgbG9nIGxv Y2F0aW9uIHVwCi0gICAgICAgIHRvIHdoaWNoIHJlY292ZXJ5IHdpbGwgcHJvY2VlZC4gVGhlIHBy ZWNpc2Ugc3RvcHBpbmcgcG9pbnQgaXMgYWxzbwotICAgICAgICBpbmZsdWVuY2VkIGJ5IDx4cmVm IGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1pbmNsdXNpdmUiLz4uIFRoaXMKLSAgICAgICAgcGFy YW1ldGVyIGlzIHBhcnNlZCB1c2luZyB0aGUgc3lzdGVtIGRhdGEgdHlwZQotICAgICAgICA8bGlu ayBsaW5rZW5kPSJkYXRhdHlwZS1wZy1sc24iPjx0eXBlPnBnX2xzbjwvdHlwZT48L2xpbms+Lgor ICAgICAgICBTcGVjaWZpZXMgdGhlIHN0b3BwaW5nIHBvaW50IGZvciB0YXJnZXRlZCByZWNvdmVy eS4gVGhlIHN0cmluZyB2YWx1ZQorICAgICAgICBpcyBpbnRlcnByZXRlZCBhY2NvcmRpbmcgdG8g c3RyaWN0IHJ1bGVzIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YKKyAgICAgICAgPHZhcm5hbWU+ cmVjb3ZlcnlfdGFyZ2V0X3R5cGU8L3Zhcm5hbWU+LiBBbiBlbXB0eSBzdHJpbmcgbWF5IGJlIGFu CisgICAgICAgIGludmFsaWQgdmFsdWUgaW4gc29tZSBjYXNlcy4KICAgICAgICA8L3BhcmE+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTI3MCw5ICsyOTMsOSBA QCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIl cCInICAjIFdpbmRvd3MKICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gc3RvcCBqdXN0IGFm dGVyIHRoZSBzcGVjaWZpZWQgcmVjb3ZlcnkgdGFyZ2V0CiAgICAgICAgICg8bGl0ZXJhbD50cnVl PC9saXRlcmFsPiksIG9yIGp1c3QgYmVmb3JlIHRoZSByZWNvdmVyeSB0YXJnZXQKICAgICAgICAg KDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPikuCi0gICAgICAgIEFwcGxpZXMgd2hlbiA8eHJlZiBs aW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtbHNuIi8+LAotICAgICAgICA8eHJlZiBsaW5rZW5kPSJy ZWNvdmVyeS10YXJnZXQtdGltZSIvPiwgb3IKLSAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3Zl cnktdGFyZ2V0LXhpZCIvPiBpcyBzcGVjaWZpZWQuCisgICAgICAgIEFwcGxpZXMgd2hlbiA8eHJl ZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdHlwZSIvPiBpcyBzcGVjaWZpZWQKKyAgICAgICAg dG8gPGxpdGVyYWw+bHNuPC9saXRlcmFsPiwgPGxpdGVyYWw+dGltZXN0YW1wPC9saXRlcmFsPiBv cgorICAgICAgICA8bGl0ZXJhbD54aWQ8L2xpdGVyYWw+LgogICAgICAgICBUaGlzIHNldHRpbmcg Y29udHJvbHMgd2hldGhlciB0cmFuc2FjdGlvbnMKICAgICAgICAgaGF2aW5nIGV4YWN0bHkgdGhl IHRhcmdldCBXQUwgbG9jYXRpb24gKExTTiksIGNvbW1pdCB0aW1lLCBvciB0cmFuc2FjdGlvbiBJ RCwgcmVzcGVjdGl2ZWx5LCB3aWxsCiAgICAgICAgIGJlIGluY2x1ZGVkIGluIHRoZSByZWNvdmVy eS4gIERlZmF1bHQgaXMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4uCkBAIC0zMzYsMTEgKzM1OSwx MSBAQCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYi ICIlcCInICAjIFdpbmRvd3MKICAgICAgICAgc2luY2UgdGhlIGxhc3QgY2hlY2twb2ludCBuZXh0 IHRpbWUgaXQgaXMgc3RhcnRlZCkuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgotICAg ICAgICBOb3RlIHRoYXQgYmVjYXVzZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+ IHdpbGwgbm90IGJlIHJlbmFtZWQgd2hlbgotICAgICAgICA8dmFybmFtZT5yZWNvdmVyeV90YXJn ZXRfYWN0aW9uPC92YXJuYW1lPiBpcyBzZXQgdG8gPGxpdGVyYWw+c2h1dGRvd248L2xpdGVyYWw+ LAorICAgICAgICBOb3RlIHRoYXQgYmVjYXVzZSA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFsPC9m aWxlbmFtZT4gd2lsbCBub3QgYmUKKyAgICAgICAgcmVtb3ZlZCB3aGVuIDx2YXJuYW1lPnJlY292 ZXJ5X3RhcmdldF9hY3Rpb248L3Zhcm5hbWU+IGlzIHNldCB0byA8bGl0ZXJhbD5zaHV0ZG93bjwv bGl0ZXJhbD4sCiAgICAgICAgIGFueSBzdWJzZXF1ZW50IHN0YXJ0IHdpbGwgZW5kIHdpdGggaW1t ZWRpYXRlIHNodXRkb3duIHVubGVzcyB0aGUKLSAgICAgICAgY29uZmlndXJhdGlvbiBpcyBjaGFu Z2VkIG9yIHRoZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGZpbGUgaXMKLSAg ICAgICAgcmVtb3ZlZCBtYW51YWxseS4KKyAgICAgICAgY29uZmlndXJhdGlvbiBpcyBjaGFuZ2Vk IG9yIHRoZSA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFsPC9maWxlbmFtZT4KKyAgICAgICAgZmls ZSBpcyByZW1vdmVkIG1hbnVhbGx5LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAg ICAgICAgVGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3QgaWYgbm8gcmVjb3ZlcnkgdGFyZ2V0IGlz IHNldC4KQEAgLTM1OCwyNCArMzgxLDkgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxz ZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgPHRpdGxlPlN0YW5k YnkgU2VydmVyIFNldHRpbmdzPC90aXRsZT4KICAgICAgPHZhcmlhYmxlbGlzdD4KIAotICAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9InN0YW5kYnktbW9kZSIgeHJlZmxhYmVsPSJzdGFuZGJ5X21vZGUi PgotICAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zhcm5hbWU+ICg8dHlwZT5i b29sZWFuPC90eXBlPikKLSAgICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgICA8cHJpbWFyeT48 dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFy eT4KLSAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDwvdGVybT4KLSAgICAgICAgPGxpc3Rp dGVtPgotICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gc3Rh cnQgdGhlIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gc2VydmVyIGFzCi0g ICAgICAgICAgYSBzdGFuZGJ5LiBJZiB0aGlzIHBhcmFtZXRlciBpcyA8bGl0ZXJhbD5vbjwvbGl0 ZXJhbD4sIHRoZSBzZXJ2ZXIgd2lsbAotICAgICAgICAgIG5vdCBzdG9wIHJlY292ZXJ5IHdoZW4g dGhlIGVuZCBvZiBhcmNoaXZlZCBXQUwgaXMgcmVhY2hlZCwgYnV0Ci0gICAgICAgICAgd2lsbCBr ZWVwIHRyeWluZyB0byBjb250aW51ZSByZWNvdmVyeSBieSBmZXRjaGluZyBuZXcgV0FMIHNlZ21l bnRzCi0gICAgICAgICAgdXNpbmcgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPgot ICAgICAgICAgIGFuZC9vciBieSBjb25uZWN0aW5nIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBhcyBz cGVjaWZpZWQgYnkgdGhlCi0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFy bmFtZT4gc2V0dGluZy4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgPC9saXN0aXRlbT4KLSAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgTmV3IHZhbHVlcyBm b3IgdGhvc2UgcGFyYW1ldGVycyBhcmUgY29uc2lkZXJlZCBvbmx5IGF0IHJlc3RhcnQgb2YgdGhl IHNlcnZlcgorICAgICAgIDwvcGFyYT4KICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJwcmltYXJ5 LWNvbm5pbmZvIiB4cmVmbGFiZWw9InByaW1hcnlfY29ubmluZm8iPgogICAgICAgICA8dGVybT48 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikK ICAgICAgICAgPGluZGV4dGVybT4KQEAgLTM4NSw3ICszOTMsNyBAQCByZXN0b3JlX2NvbW1hbmQg PSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIlcCInICAjIFdpbmRvd3MKICAg ICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgU3BlY2lmaWVzIGEg Y29ubmVjdGlvbiBzdHJpbmcgdG8gYmUgdXNlZCBmb3IgdGhlIHN0YW5kYnkgc2VydmVyCi0gICAg ICAgICAgdG8gY29ubmVjdCB3aXRoIHRoZSBwcmltYXJ5LiBUaGlzIHN0cmluZyBpcyBpbiB0aGUg Zm9ybWF0CisgICAgICAgICAgdG8gY29ubmVjdCB3aXRoIGEgc2VuZGluZyBzZXJ2ZXIuIFRoaXMg c3RyaW5nIGlzIGluIHRoZSBmb3JtYXQKICAgICAgICAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlu a2VuZD0ibGlicHEtY29ubnN0cmluZyIvPi4gSWYgYW55IG9wdGlvbiBpcwogICAgICAgICAgIHVu c3BlY2lmaWVkIGluIHRoaXMgc3RyaW5nLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIGVudmlyb25t ZW50CiAgICAgICAgICAgdmFyaWFibGUgKHNlZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1lbnZhcnMi Lz4pIGlzIGNoZWNrZWQuIElmIHRoZQpAQCAtMzk0LDEyICs0MDIsMTIgQEAgcmVzdG9yZV9jb21t YW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dz CiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICBUaGUgY29ubmVj dGlvbiBzdHJpbmcgc2hvdWxkIHNwZWNpZnkgdGhlIGhvc3QgbmFtZSAob3IgYWRkcmVzcykKLSAg ICAgICAgICBvZiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIGFzIHdlbGwgYXMgdGhlIHBvcnQgbnVtYmVy IGlmIGl0IGlzIG5vdAorICAgICAgICAgIG9mIHRoZSBzZW5kaW5nIHNlcnZlciwgYXMgd2VsbCBh cyB0aGUgcG9ydCBudW1iZXIgaWYgaXQgaXMgbm90CiAgICAgICAgICAgdGhlIHNhbWUgYXMgdGhl IHN0YW5kYnkgc2VydmVyJ3MgZGVmYXVsdC4KICAgICAgICAgICBBbHNvIHNwZWNpZnkgYSB1c2Vy IG5hbWUgY29ycmVzcG9uZGluZyB0byBhIHN1aXRhYmx5LXByaXZpbGVnZWQgcm9sZQotICAgICAg ICAgIG9uIHRoZSBwcmltYXJ5IChzZWUKKyAgICAgICAgICBvbiB0aGUgc2VuZGluZyBzZXJ2ZXIg KHNlZQogICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbi1hdXRo ZW50aWNhdGlvbiIvPikuCi0gICAgICAgICAgQSBwYXNzd29yZCBuZWVkcyB0byBiZSBwcm92aWRl ZCB0b28sIGlmIHRoZSBwcmltYXJ5IGRlbWFuZHMgcGFzc3dvcmQKKyAgICAgICAgICBBIHBhc3N3 b3JkIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHRvbywgaWYgdGhlIHNlbmRlciBkZW1hbmRzIHBhc3N3 b3JkCiAgICAgICAgICAgYXV0aGVudGljYXRpb24uICBJdCBjYW4gYmUgcHJvdmlkZWQgaW4gdGhl CiAgICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLCBv ciBpbiBhIHNlcGFyYXRlCiAgICAgICAgICAgPGZpbGVuYW1lPn4vLnBncGFzczwvZmlsZW5hbWU+ IGZpbGUgb24gdGhlIHN0YW5kYnkgc2VydmVyICh1c2UKQEAgLTQxMiw2ICs0MjAsNyBAQCByZXN0 b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIlcCInICAj IFdpbmRvd3MKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InByaW1hcnktc2xvdC1u YW1lIiB4cmVmbGFiZWw9InByaW1hcnlfc2xvdF9uYW1lIj4KICAgICAgICAgPHRlcm0+PHZhcm5h bWU+cHJpbWFyeV9zbG90X25hbWU8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQogICAg ICAgICA8aW5kZXh0ZXJtPgpAQCAtNDIxLDcgKzQzMCw3IEBAIHJlc3RvcmVfY29tbWFuZCA9ICdj b3B5ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAg ICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICBPcHRpb25hbGx5IHNwZWNp ZmllcyBhbiBleGlzdGluZyByZXBsaWNhdGlvbiBzbG90IHRvIGJlIHVzZWQgd2hlbgotICAgICAg ICAgIGNvbm5lY3RpbmcgdG8gdGhlIHByaW1hcnkgdmlhIHN0cmVhbWluZyByZXBsaWNhdGlvbiB0 byBjb250cm9sCisgICAgICAgICAgY29ubmVjdGluZyB0byB0aGUgc2VuZGluZyBzZXJ2ZXIgdmlh IHN0cmVhbWluZyByZXBsaWNhdGlvbiB0byBjb250cm9sCiAgICAgICAgICAgcmVzb3VyY2UgcmVt b3ZhbCBvbiB0aGUgdXBzdHJlYW0gbm9kZQogICAgICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0i c3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzIi8+KS4KICAgICAgICAgICBUaGlzIHNldHRpbmcg aGFzIG5vIGVmZmVjdCBpZiA8dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBpcyBu b3QKQEAgLTQyOSwxMCArNDM4LDExIEBAIHJlc3RvcmVfY29tbWFuZCA9ICdjb3B5ICJDOlxcc2Vy dmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAgICAgPC9wYXJhPgog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgotICAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9InRyaWdnZXItZmlsZSIgeHJlZmxhYmVsPSJ0cmlnZ2VyX2ZpbGUiPgotICAg ICAgICA8dGVybT48dmFybmFtZT50cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8 L3R5cGU+KQorCisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvbW90ZS1zaWduYWwtZmlsZSIg eHJlZmxhYmVsPSJwcm9tb3RlX3NpZ25hbF9maWxlIj4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+ cHJvbW90ZV9zaWduYWxfZmlsZTwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCiAgICAg ICAgIDxpbmRleHRlcm0+Ci0gICAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+dHJpZ2dlcl9maWxl PC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICAgICAgPHByaW1h cnk+PHZhcm5hbWU+cHJvbW90ZV9zaWduYWxfZmlsZTwvdmFybmFtZT4gcmVjb3ZlcnkgcGFyYW1l dGVyPC9wcmltYXJ5PgogICAgICAgICA8L2luZGV4dGVybT4KICAgICAgICAgPC90ZXJtPgogICAg ICAgICA8bGlzdGl0ZW0+CkBAIC00NDAsNyArNDUwLDYgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2Nv cHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgICAg ICAgU3BlY2lmaWVzIGEgdHJpZ2dlciBmaWxlIHdob3NlIHByZXNlbmNlIGVuZHMgcmVjb3Zlcnkg aW4gdGhlCiAgICAgICAgICAgc3RhbmRieS4gIEV2ZW4gaWYgdGhpcyB2YWx1ZSBpcyBub3Qgc2V0 LCB5b3UgY2FuIHN0aWxsIHByb21vdGUKICAgICAgICAgICB0aGUgc3RhbmRieSB1c2luZyA8Y29t bWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4uCi0gICAgICAgICAgVGhpcyBzZXR0aW5nIGhh cyBubyBlZmZlY3QgaWYgPHZhcm5hbWU+c3RhbmRieV9tb2RlPC92YXJuYW1lPiBpcyA8bGl0ZXJh bD5vZmY8L2xpdGVyYWw+LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgog ICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtNDU0LDcgKzQ2Myw3IEBAIHJlc3RvcmVfY29tbWFu ZCA9ICdjb3B5ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwog ICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBCeSBkZWZhdWx0LCBhIHN0 YW5kYnkgc2VydmVyIHJlc3RvcmVzIFdBTCByZWNvcmRzIGZyb20gdGhlCi0gICAgICAgIHByaW1h cnkgYXMgc29vbiBhcyBwb3NzaWJsZS4gSXQgbWF5IGJlIHVzZWZ1bCB0byBoYXZlIGEgdGltZS1k ZWxheWVkCisgICAgICAgIHNlbmRpbmcgc2VydmVyIGFzIHNvb24gYXMgcG9zc2libGUuIEl0IG1h eSBiZSB1c2VmdWwgdG8gaGF2ZSBhIHRpbWUtZGVsYXllZAogICAgICAgICBjb3B5IG9mIHRoZSBk YXRhLCBvZmZlcmluZyBvcHBvcnR1bml0aWVzIHRvIGNvcnJlY3QgZGF0YSBsb3NzIGVycm9ycy4K ICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBkZWxheSByZWNvdmVyeSBieSBh IGZpeGVkIHBlcmlvZCBvZiB0aW1lLAogICAgICAgICBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMg aWYgbm8gdW5pdCBpcyBzcGVjaWZpZWQuICBGb3IgZXhhbXBsZSwgaWYKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19i YXNlYmFja3VwLnNnbWwKaW5kZXggMDVjYWI4Ni4uZWI0NDQ5NiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19i YXNlYmFja3VwLnNnbWwKQEAgLTIxNCwxMCArMjE0LDExIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogICAgICAgPGxpc3RpdGVtPgogCiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFdyaXRlIGEg bWluaW1hbCA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBvdXRwdXQK KyAgICAgICAgQ3JlYXRlIDxmaWxlbmFtZT5zdGFuZGJ5LnNpZ25hbDwvZmlsZW5hbWU+IGFuZCBh cHBlbmQgY29ubmVjdGlvbiBzZXR0aW5ncworICAgICAgICB0byA8ZmlsZW5hbWU+cG9zdGdyZXNx bC5hdXRvLmNvbmY8L2ZpbGVuYW1lPiBpbiB0aGUgb3V0cHV0CiAgICAgICAgIGRpcmVjdG9yeSAo b3IgaW50byB0aGUgYmFzZSBhcmNoaXZlIGZpbGUgd2hlbiB1c2luZyB0YXIgZm9ybWF0KSB0bwog ICAgICAgICBlYXNlIHNldHRpbmcgdXAgYSBzdGFuZGJ5IHNlcnZlci4KLSAgICAgICAgVGhlIDxm aWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gZmlsZSB3aWxsIHJlY29yZCB0aGUgY29u bmVjdGlvbgorICAgICAgICBUaGUgPGZpbGVuYW1lPnBvc3RncmVzcWwuYXV0by5jb25mPC9maWxl bmFtZT4gZmlsZSB3aWxsIHJlY29yZCB0aGUgY29ubmVjdGlvbgogICAgICAgICBzZXR0aW5ncyBh bmQsIGlmIHNwZWNpZmllZCwgdGhlIHJlcGxpY2F0aW9uIHNsb3QKICAgICAgICAgdGhhdCA8YXBw bGljYXRpb24+cGdfYmFzZWJhY2t1cDwvYXBwbGljYXRpb24+IGlzIHVzaW5nLCBzbyB0aGF0IHRo ZQogICAgICAgICBzdHJlYW1pbmcgcmVwbGljYXRpb24gd2lsbCB1c2UgdGhlIHNhbWUgc2V0dGlu Z3MgbGF0ZXIgb24uCkBAIC00NzAsNyArNDcxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9u CiAgICAgICAgIHJlcGxpY2F0aW9uIHNsb3QuICBJZiB0aGUgYmFzZSBiYWNrdXAgaXMgaW50ZW5k ZWQgdG8gYmUgdXNlZCBhcyBhCiAgICAgICAgIHN0cmVhbWluZyByZXBsaWNhdGlvbiBzdGFuZGJ5 IHVzaW5nIHJlcGxpY2F0aW9uIHNsb3RzLCBpdCBzaG91bGQgdGhlbgogICAgICAgICB1c2UgdGhl IHNhbWUgcmVwbGljYXRpb24gc2xvdCBuYW1lCi0gICAgICAgIGluIDxmaWxlbmFtZT5yZWNvdmVy eS5jb25mPC9maWxlbmFtZT4uICBUaGF0IHdheSwgaXQgaXMgZW5zdXJlZCB0aGF0CisgICAgICAg IGluIDx4cmVmIGxpbmtlbmQ9InByaW1hcnktc2xvdC1uYW1lIi8+LiAgVGhhdCB3YXksIGl0IGlz IGVuc3VyZWQgdGhhdAogICAgICAgICB0aGUgc2VydmVyIGRvZXMgbm90IHJlbW92ZSBhbnkgbmVj ZXNzYXJ5IFdBTCBkYXRhIGluIHRoZSB0aW1lIGJldHdlZW4KICAgICAgICAgdGhlIGVuZCBvZiB0 aGUgYmFzZSBiYWNrdXAgYW5kIHRoZSBzdGFydCBvZiBzdHJlYW1pbmcgcmVwbGljYXRpb24uCiAg ICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXdpbmQuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmV3aW5kLnNnbWwKaW5kZXggNTIwZDg0My4uZDE2NGI4 YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXdpbmQuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX3Jld2luZC5zZ21sCkBAIC02OSw3ICs2OSw4IEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgdGFyZ2V0IGNsdXN0ZXIgcmFuIGZvciBhIGxvbmcgdGltZSBhZnRl ciB0aGUgZGl2ZXJnZW5jZSwgdGhlIG9sZCBXQUwKICAgIGZpbGVzIG1pZ2h0IG5vIGxvbmdlciBi ZSBwcmVzZW50LiBJbiB0aGF0IGNhc2UsIHRoZXkgY2FuIGJlIG1hbnVhbGx5CiAgICBjb3BpZWQg ZnJvbSB0aGUgV0FMIGFyY2hpdmUgdG8gdGhlIDxmaWxlbmFtZT5wZ193YWw8L2ZpbGVuYW1lPiBk aXJlY3RvcnksIG9yCi0gICBmZXRjaGVkIG9uIHN0YXJ0dXAgYnkgY29uZmlndXJpbmcgPGZpbGVu YW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPi4gIFRoZSB1c2Ugb2YKKyAgIGZldGNoZWQgb24g c3RhcnR1cCBieSBjb25maWd1cmluZyA8eHJlZiBsaW5rZW5kPSJwcmltYXJ5LWNvbm5pbmZvIi8+ IG9yCisgICA8eHJlZiBsaW5rZW5kPSJyZXN0b3JlLWNvbW1hbmQiLz4uICBUaGUgdXNlIG9mCiAg ICA8YXBwbGljYXRpb24+cGdfcmV3aW5kPC9hcHBsaWNhdGlvbj4gaXMgbm90IGxpbWl0ZWQgdG8g ZmFpbG92ZXIsIGUuZy4gIGEgc3RhbmRieQogICAgc2VydmVyIGNhbiBiZSBwcm9tb3RlZCwgcnVu IHNvbWUgd3JpdGUgdHJhbnNhY3Rpb25zLCBhbmQgdGhlbiByZXdpbmRlZAogICAgdG8gYmVjb21l IGEgc3RhbmRieSBhZ2Fpbi4KQEAgLTgzLDggKzg0LDkgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCiAgICA8YXBwbGljYXRpb24+cGdfcmV3aW5kPC9hcHBsaWNhdGlvbj4gd2FzIHJ1biwgYW5k IHRoZXJlZm9yZSBjb3VsZCBub3QgYmUgY29waWVkIGJ5IHRoZQogICAgPGFwcGxpY2F0aW9uPnBn X3Jld2luZDwvYXBwbGljYXRpb24+IHNlc3Npb24sIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUg d2hlbiB0aGUKICAgIHRhcmdldCBzZXJ2ZXIgaXMgc3RhcnRlZC4gVGhpcyBjYW4gYmUgZG9uZSBi eSBjcmVhdGluZyBhCi0gICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGZpbGUg aW4gdGhlIHRhcmdldCBkYXRhIGRpcmVjdG9yeSB3aXRoIGEKLSAgIHN1aXRhYmxlIDx2YXJuYW1l PnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4uCisgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFs PC9maWxlbmFtZT4gZmlsZSBpbiB0aGUgdGFyZ2V0IGRhdGEgZGlyZWN0b3J5CisgICBhbmQgY29u ZmlndXJpbmcgc3VpdGFibGUgPHhyZWYgbGlua2VuZD0icmVzdG9yZS1jb21tYW5kIi8+CisgICBp biA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4uCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdhcmNoaXZlY2xlYW51cC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9wZ2FyY2hpdmVjbGVhbnVwLnNnbWwKaW5kZXggNDExN2E0My4u NTI2NzRkZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ2FyY2hpdmVjbGVhbnVwLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ2FyY2hpdmVjbGVhbnVwLnNnbWwKQEAgLTM5LDcg KzM5LDcgQEAKICAgPHBhcmE+CiAgICBUbyBjb25maWd1cmUgYSBzdGFuZGJ5CiAgICBzZXJ2ZXIg dG8gdXNlIDxhcHBsaWNhdGlvbj5wZ19hcmNoaXZlY2xlYW51cDwvYXBwbGljYXRpb24+LCBwdXQg dGhpcyBpbnRvIGl0cwotICAgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBjb25m aWd1cmF0aW9uIGZpbGU6CisgICA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4g Y29uZmlndXJhdGlvbiBmaWxlOgogPHByb2dyYW1saXN0aW5nPgogYXJjaGl2ZV9jbGVhbnVwX2Nv bW1hbmQgPSAncGdfYXJjaGl2ZWNsZWFudXAgPHJlcGxhY2VhYmxlPmFyY2hpdmVsb2NhdGlvbjwv cmVwbGFjZWFibGU+ICVyJwogPC9wcm9ncmFtbGlzdGluZz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BndXBncmFkZS5zZ21s CmluZGV4IDZkYWZiNDAuLjY0MzFiMDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1 cGdyYWRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbApAQCAtNDc4 LDcgKzQ3OCw3IEBAIHBnX3VwZ3JhZGUuZXhlCiAgICAgICA8cGFyYT4KICAgICAgICBTYXZlIGFu eSBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlIG9sZCBzdGFuZGJ5cycgY29uZmlndXJhdGlv bgogICAgICAgIGRpcmVjdG9yaWVzIHlvdSBuZWVkIHRvIGtlZXAsIGUuZy4gIDxmaWxlbmFtZT5w b3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiwKLSAgICAgICA8bGl0ZXJhbD5yZWNvdmVyeS5jb25m PC9saXRlcmFsPiwgYmVjYXVzZSB0aGVzZSB3aWxsIGJlIG92ZXJ3cml0dGVuIG9yCisgICAgICAg PGxpdGVyYWw+cGdfaGJhLmNvbmY8L2xpdGVyYWw+LCBiZWNhdXNlIHRoZXNlIHdpbGwgYmUgb3Zl cndyaXR0ZW4gb3IKICAgICAgICByZW1vdmVkIGluIHRoZSBuZXh0IHN0ZXAuCiAgICAgICA8L3Bh cmE+CiAgICAgIDwvc3RlcD4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWxlYXNlLTkuMS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS4xLnNnbWwKaW5kZXggZTZjZTgwMC4uY2Y0MWM3 NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS4xLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlbGVhc2UtOS4xLnNnbWwKQEAgLTk4MTEsNyArOTgxMSw3IEBAIEJyYW5jaDogUkVM OV8wX1NUQUJMRSBbOWQ2YWY3MzY3XSAyMDE1LTA4LTE1IDExOjAyOjM0IC0wNDAwCiAgICAgICAg PHBhcmE+CiAgICAgICAgIFRoZXNlIG5hbWVkIHJlc3RvcmUgcG9pbnRzIGNhbiBiZSBzcGVjaWZp ZWQgYXMgcmVjb3ZlcnkKICAgICAgICAgdGFyZ2V0cyB1c2luZyB0aGUgbmV3IDxmaWxlbmFtZT5y ZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gc2V0dGluZwotICAgICAgICA8bGluayBsaW5rZW5kPSJy ZWNvdmVyeS10YXJnZXQtbmFtZSI+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X25hbWU8L3Zhcm5h bWU+PC9saW5rPi4KKyAgICAgICAgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X25hbWU8L3Zhcm5h bWU+LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWxlYXNlLTkuNC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS40LnNn bWwKaW5kZXggNTdkNTFiNy4uM2NhZWMzYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlbGVh c2UtOS40LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS40LnNnbWwKQEAgLTEwNjM5 LDcgKzEwNjM5LDcgQEAgQnJhbmNoOiBSRUw5XzRfU1RBQkxFIFtjMmIwNmFiMTddIDIwMTUtMDEt MzAgMjI6NDU6NTggLTA1MDAKIAogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAg ICAgICBBZGQgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0Ii8+CisgICAgICAgIEFkZCA8 dmFybmFtZT5yZWNvdmVyeV90YXJnZXQ8L3Zhcm5hbWU+CiAgICAgICAgIG9wdGlvbiA8b3B0aW9u PmltbWVkaWF0ZTwvb3B0aW9uPiB0byBzdG9wIDxsaW5rCiAgICAgICAgIGxpbmtlbmQ9IndhbCI+ PGFjcm9ueW0+V0FMPC9hY3JvbnltPjwvbGluaz4gcmVjb3ZlcnkgYXMgc29vbiBhcyBhCiAgICAg ICAgIGNvbnNpc3RlbnQgc3RhdGUgaXMgcmVhY2hlZCAoTWF1TWF1LCBIZWlra2kgTGlubmFrYW5n YXMpCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVsZWFzZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlbGVhc2Uuc2dtbAppbmRleCAxMWE3ZjE3Li4wMTMzZDg0IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVsZWFzZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWxlYXNlLnNnbWwKQEAgLTUs OCArNSw3IEBAIFR5cGljYWwgbWFya3VwOgogCiAmPD4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSAmIGVzY2FwZXMKIFBvc3RncmVTUUwgICAgICAgICAgICAgICAgICAgICAgPHByb2R1 Y3RuYW1lPgotcG9zdGdyZXNxbC5jb25mLCBwZ19oYmEuY29uZiwKLSAgICAgICAgcmVjb3Zlcnku Y29uZiAgICAgICAgICAgPGZpbGVuYW1lPgorcG9zdGdyZXNxbC5jb25mLCBwZ19oYmEuY29uZiAg ICA8ZmlsZW5hbWU+CiBbQS1aXVtBLVpfIF0rW0EtWl9dICAgICAgICAgICAgIDxjb21tYW5kPiwg PGxpdGVyYWw+LCA8ZW52YXI+LCA8YWNyb255bT4KIFtBLVphLXpfXVtBLVphLXowLTlfXSsoKSAg ICAgICAgPGZ1bmN0aW9uPgogXC1cLT9bQS1aYS16X10rWy1BLVphLXpfXSogICAgICA8b3B0aW9u PiAodXNlIGJhY2tzbGFzaGVzIHRvIGF2b2lkIFNHTUwgbWFya3VwKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCmluZGV4IGRjZmVmMzYuLjk3NDI5MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKQEAgLTgxLDggKzgxLDEwIEBAIGV4dGVybiB1aW50MzIgYm9vdHN0cmFwX2RhdGFfY2hl Y2tzdW1fdmVyc2lvbjsKIC8qIEZpbGUgcGF0aCBuYW1lcyAoYWxsIHJlbGF0aXZlIHRvICRQR0RB VEEpICovCiAjZGVmaW5lIFJFQ09WRVJZX0NPTU1BTkRfRklMRQkicmVjb3ZlcnkuY29uZiIKICNk ZWZpbmUgUkVDT1ZFUllfQ09NTUFORF9ET05FCSJyZWNvdmVyeS5kb25lIgotI2RlZmluZSBQUk9N T1RFX1NJR05BTF9GSUxFCQkicHJvbW90ZSIKLSNkZWZpbmUgRkFMTEJBQ0tfUFJPTU9URV9TSUdO QUxfRklMRSAiZmFsbGJhY2tfcHJvbW90ZSIKKyNkZWZpbmUgUFJPTU9URV9TSUdOQUxfRklMRQkJ InByb21vdGUuc2lnbmFsIgorI2RlZmluZSBGQUxMQkFDS19QUk9NT1RFX1NJR05BTF9GSUxFICJm YWxsYmFja19wcm9tb3RlLnNpZ25hbCIKKyNkZWZpbmUgUkVDT1ZFUllfU0lHTkFMX0ZJTEUJInJl Y292ZXJ5LnNpZ25hbCIKKyNkZWZpbmUgU1RBTkRCWV9TSUdOQUxfRklMRQkJInN0YW5kYnkuc2ln bmFsIgogCiAKIC8qIFVzZXItc2V0dGFibGUgcGFyYW1ldGVycyAqLwpAQCAtMjM2LDcgKzIzOCw3 IEBAIHN0YXRpYyBpbnQJTG9jYWxYTG9nSW5zZXJ0QWxsb3dlZCA9IC0xOwogCiAvKgogICogV2hl biBBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQgaXMgc2V0LCBhcmNoaXZlIHJlY292ZXJ5IHdhcyBy ZXF1ZXN0ZWQsCi0gKiBpZS4gcmVjb3ZlcnkuY29uZiBmaWxlIHdhcyBwcmVzZW50LiBXaGVuIElu QXJjaGl2ZVJlY292ZXJ5IGlzIHNldCwgd2UgYXJlCisgKiBpZS4gc2lnbmFsIGZpbGVzIHdlcmUg cHJlc2VudC4gV2hlbiBJbkFyY2hpdmVSZWNvdmVyeSBpcyBzZXQsIHdlIGFyZQogICogY3VycmVu dGx5IHJlY292ZXJpbmcgdXNpbmcgb2ZmbGluZSBYTE9HIGFyY2hpdmVzLiBUaGVzZSB2YXJpYWJs ZXMgYXJlIG9ubHkKICAqIHZhbGlkIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuCiAgKgpAQCAtMjQ4 LDYgKzI1MCw5IEBAIHN0YXRpYyBpbnQJTG9jYWxYTG9nSW5zZXJ0QWxsb3dlZCA9IC0xOwogYm9v bAkJQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gZmFsc2U7CiBib29sCQlJbkFyY2hpdmVSZWNv dmVyeSA9IGZhbHNlOwogCitzdGF0aWMgYm9vbCBzdGFuZGJ5X3NpZ25hbF9maWxlX2ZvdW5kID0g ZmFsc2U7CitzdGF0aWMgYm9vbCByZWNvdmVyeV9zaWduYWxfZmlsZV9mb3VuZCA9IGZhbHNlOwor CiAvKiBXYXMgdGhlIGxhc3QgeGxvZyBmaWxlIHJlc3RvcmVkIGZyb20gYXJjaGl2ZSwgb3IgbG9j YWw/ICovCiBzdGF0aWMgYm9vbCByZXN0b3JlZEZyb21BcmNoaXZlID0gZmFsc2U7CiAKQEAgLTI1 NSwyOSArMjYwLDM0IEBAIHN0YXRpYyBib29sIHJlc3RvcmVkRnJvbUFyY2hpdmUgPSBmYWxzZTsK IHN0YXRpYyBjaGFyICpyZXBsYXlfaW1hZ2VfbWFza2VkID0gTlVMTDsKIHN0YXRpYyBjaGFyICpt YXN0ZXJfaW1hZ2VfbWFza2VkID0gTlVMTDsKIAotLyogb3B0aW9ucyB0YWtlbiBmcm9tIHJlY292 ZXJ5LmNvbmYgZm9yIGFyY2hpdmUgcmVjb3ZlcnkgKi8KKy8qIG9wdGlvbnMgZm9ybWVybHkgdGFr ZW4gZnJvbSByZWNvdmVyeS5jb25mIGZvciBhcmNoaXZlIHJlY292ZXJ5ICovCiBjaGFyCSAgICpy ZWNvdmVyeVJlc3RvcmVDb21tYW5kID0gTlVMTDsKLXN0YXRpYyBjaGFyICpyZWNvdmVyeUVuZENv bW1hbmQgPSBOVUxMOwotc3RhdGljIGNoYXIgKmFyY2hpdmVDbGVhbnVwQ29tbWFuZCA9IE5VTEw7 Ci1zdGF0aWMgUmVjb3ZlcnlUYXJnZXRUeXBlIHJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFS R0VUX1VOU0VUOwotc3RhdGljIGJvb2wgcmVjb3ZlcnlUYXJnZXRJbmNsdXNpdmUgPSB0cnVlOwot c3RhdGljIFJlY292ZXJ5VGFyZ2V0QWN0aW9uIHJlY292ZXJ5VGFyZ2V0QWN0aW9uID0gUkVDT1ZF UllfVEFSR0VUX0FDVElPTl9QQVVTRTsKLXN0YXRpYyBUcmFuc2FjdGlvbklkIHJlY292ZXJ5VGFy Z2V0WGlkOwotc3RhdGljIFRpbWVzdGFtcFR6IHJlY292ZXJ5VGFyZ2V0VGltZTsKLXN0YXRpYyBj aGFyICpyZWNvdmVyeVRhcmdldE5hbWU7Ci1zdGF0aWMgWExvZ1JlY1B0ciByZWNvdmVyeVRhcmdl dExTTjsKLXN0YXRpYyBpbnQJcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0gMDsKLXN0YXRpYyBU aW1lc3RhbXBUeiByZWNvdmVyeURlbGF5VW50aWxUaW1lOwotCi0vKiBvcHRpb25zIHRha2VuIGZy b20gcmVjb3ZlcnkuY29uZiBmb3IgWExPRyBzdHJlYW1pbmcgKi8KLXN0YXRpYyBib29sIFN0YW5k YnlNb2RlUmVxdWVzdGVkID0gZmFsc2U7Ci1zdGF0aWMgY2hhciAqUHJpbWFyeUNvbm5JbmZvID0g TlVMTDsKLXN0YXRpYyBjaGFyICpQcmltYXJ5U2xvdE5hbWUgPSBOVUxMOwotc3RhdGljIGNoYXIg KlRyaWdnZXJGaWxlID0gTlVMTDsKK2NoYXIJICAgKnJlY292ZXJ5RW5kQ29tbWFuZCA9IE5VTEw7 CitjaGFyCSAgICphcmNoaXZlQ2xlYW51cENvbW1hbmQgPSBOVUxMOworUmVjb3ZlcnlUYXJnZXRU eXBlIHJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOworY2hhcgkgICAqcmVj b3ZlcnlUYXJnZXRUeXBlU3RyaW5nOworY2hhcgkgICAqcmVjb3ZlcnlUYXJnZXRWYWx1ZSA9IE5V TEw7Citib29sCQlyZWNvdmVyeVRhcmdldEluY2x1c2l2ZSA9IHRydWU7CitSZWNvdmVyeVRhcmdl dEFjdGlvbiByZWNvdmVyeVRhcmdldEFjdGlvbiA9IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFV U0U7CitUcmFuc2FjdGlvbklkIHJlY292ZXJ5VGFyZ2V0WGlkOworVGltZXN0YW1wVHogcmVjb3Zl cnlUYXJnZXRUaW1lOworY2hhcgkgICAqcmVjb3ZlcnlUYXJnZXROYW1lOworWExvZ1JlY1B0cgly ZWNvdmVyeVRhcmdldExTTjsKK2ludAkJCXJlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9IDA7CitU aW1lc3RhbXBUeiByZWNvdmVyeURlbGF5VW50aWxUaW1lOworCisvKiBvcHRpb25zIGZvcm1lcmx5 IHRha2VuIGZyb20gcmVjb3ZlcnkuY29uZiBmb3IgWExPRyBzdHJlYW1pbmcgKi8KK2Jvb2wJCVN0 YW5kYnlNb2RlUmVxdWVzdGVkID0gZmFsc2U7CitjaGFyCSAgICpQcmltYXJ5Q29ubkluZm8gPSBO VUxMOworY2hhcgkgICAqUHJpbWFyeVNsb3ROYW1lID0gTlVMTDsKIAogLyogYXJlIHdlIGN1cnJl bnRseSBpbiBzdGFuZGJ5IG1vZGU/ICovCiBib29sCQlTdGFuZGJ5TW9kZSA9IGZhbHNlOwogCitj aGFyCSAgICpQcm9tb3RlU2lnbmFsRmlsZSA9IE5VTEw7CitjaGFyCQlSZWNvdmVyeVNpZ25hbEZp bGVbTUFYUEdQQVRIXTsKK2NoYXIJCVN0YW5kYnlTaWduYWxGaWxlW01BWFBHUEFUSF07CisKIC8q IHdoZXRoZXIgcmVxdWVzdCBmb3IgZmFzdCBwcm9tb3Rpb24gaGFzIGJlZW4gbWFkZSB5ZXQgKi8K IHN0YXRpYyBib29sIGZhc3RfcHJvbW90ZSA9IGZhbHNlOwogCkBAIC0yOTksNyArMzA5LDExIEBA IHN0YXRpYyBib29sIHJlY292ZXJ5U3RvcEFmdGVyOwogICogdGhlIGN1cnJlbnRseS1zY2FubmVk IFdBTCByZWNvcmQgd2FzIGdlbmVyYXRlZCkuICBXZSBhbHNvIG5lZWQgdGhlc2UKICAqIHRpbWVs aW5lIHZhbHVlczoKICAqCi0gKiByZWNvdmVyeVRhcmdldFRMSTogdGhlIGRlc2lyZWQgdGltZWxp bmUgdGhhdCB3ZSB3YW50IHRvIGVuZCBpbi4KKyAqIHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2Fs OiB3aGF0IHRoZSB1c2VyIHJlcXVlc3RlZCwgaWYgYW55CisgKgorICogcmVjb3ZlcnlUYXJnZXRU TElSZXF1ZXN0ZWQ6IG51bWVyaWMgdmFsdWUgb2YgcmVxdWVzdGVkIHRpbWVsaW5lLCBpZiBjb25z dGFudAorICoKKyAqIHJlY292ZXJ5VGFyZ2V0VExJOiB0aGUgY3VycmVudGx5IHVuZGVyc3Rvb2Qg dGFyZ2V0IHRpbWVsaW5lOyBjaGFuZ2VzCiAgKgogICogcmVjb3ZlcnlUYXJnZXRJc0xhdGVzdDog d2FzIHRoZSByZXF1ZXN0ZWQgdGFyZ2V0IHRpbWVsaW5lICdsYXRlc3QnPwogICoKQEAgLTMxNSw3 ICszMjksMTAgQEAgc3RhdGljIGJvb2wgcmVjb3ZlcnlTdG9wQWZ0ZXI7CiAgKiBmaWxlIHdhcyBj cmVhdGVkLikgIER1cmluZyBhIHNlcXVlbnRpYWwgc2NhbiB3ZSBkbyBub3QgYWxsb3cgdGhpcyB2 YWx1ZQogICogdG8gZGVjcmVhc2UuCiAgKi8KLXN0YXRpYyBUaW1lTGluZUlEIHJlY292ZXJ5VGFy Z2V0VExJOworY2hhcgkgICAqcmVjb3ZlcnlUYXJnZXRUTElTdHJpbmcgPSBOVUxMOworUmVjb3Zl cnlUYXJnZXRUaW1lTGluZUdvYWwgcmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPSBSRUNPVkVS WV9UQVJHRVRfVElNRUxJTkVfQ09OVFJPTEZJTEU7CitUaW1lTGluZUlECXJlY292ZXJ5VGFyZ2V0 VExJUmVxdWVzdGVkID0gMDsKK1RpbWVMaW5lSUQJcmVjb3ZlcnlUYXJnZXRUTEkgPSAwOwogc3Rh dGljIGJvb2wgcmVjb3ZlcnlUYXJnZXRJc0xhdGVzdCA9IGZhbHNlOwogc3RhdGljIExpc3QgKmV4 cGVjdGVkVExFczsKIHN0YXRpYyBUaW1lTGluZUlEIGN1ckZpbGVUTEk7CkBAIC02MzEsMTIgKzY0 OCw2IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dDdGxEYXRhCiAJVGltZUxpbmVJRAlQcmV2VGltZUxp bmVJRDsKIAogCS8qCi0JICogYXJjaGl2ZUNsZWFudXBDb21tYW5kIGlzIHJlYWQgZnJvbSByZWNv dmVyeS5jb25mIGJ1dCBuZWVkcyB0byBiZSBpbgotCSAqIHNoYXJlZCBtZW1vcnkgc28gdGhhdCB0 aGUgY2hlY2twb2ludGVyIHByb2Nlc3MgY2FuIGFjY2VzcyBpdC4KLQkgKi8KLQljaGFyCQlhcmNo aXZlQ2xlYW51cENvbW1hbmRbTUFYUEdQQVRIXTsKLQotCS8qCiAJICogU2hhcmVkUmVjb3ZlcnlJ blByb2dyZXNzIGluZGljYXRlcyBpZiB3ZSdyZSBzdGlsbCBpbiBjcmFzaCBvciBhcmNoaXZlCiAJ ICogcmVjb3ZlcnkuICBQcm90ZWN0ZWQgYnkgaW5mb19sY2suCiAJICovCkBAIC04NDYsNyArODU3 LDcgQEAgc3RhdGljIGJvb2wgaG9sZGluZ0FsbExvY2tzID0gZmFsc2U7CiBzdGF0aWMgTWVtb3J5 Q29udGV4dCB3YWxEZWJ1Z0N4dCA9IE5VTEw7CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgcmVhZFJl Y292ZXJ5Q29tbWFuZEZpbGUodm9pZCk7CitzdGF0aWMgdm9pZCByZWFkUmVjb3ZlcnlTaWduYWxG aWxlKHZvaWQpOwogc3RhdGljIHZvaWQgZXhpdEFyY2hpdmVSZWNvdmVyeShUaW1lTGluZUlEIGVu ZFRMSSwgWExvZ1JlY1B0ciBlbmRPZkxvZyk7CiBzdGF0aWMgYm9vbCByZWNvdmVyeVN0b3BzQmVm b3JlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIHN0YXRpYyBib29sIHJlY292ZXJ5U3RvcHNB ZnRlcihYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CkBAIC01MjI5LDI2NCArNTI0MCwxNzUgQEAg c3RyX3RpbWUocGdfdGltZV90IHRub3cpCiAKIC8qCiAgKiBTZWUgaWYgdGhlcmUgaXMgYSByZWNv dmVyeSBjb21tYW5kIGZpbGUgKHJlY292ZXJ5LmNvbmYpLCBhbmQgaWYgc28KLSAqIHJlYWQgaW4g cGFyYW1ldGVycyBmb3IgYXJjaGl2ZSByZWNvdmVyeSBhbmQgWExPRyBzdHJlYW1pbmcuCisgKiB0 aHJvdyBhbiBFUlJPUiBzaW5jZSBhcyBvZiBQRzEyLjAgd2Ugbm8gbG9uZ2VyIHJlY29nbml6ZSB0 aGF0LgogICoKLSAqIFRoZSBmaWxlIGlzIHBhcnNlZCB1c2luZyB0aGUgbWFpbiBjb25maWd1cmF0 aW9uIHBhcnNlci4KKyAqIFNlZSBpZiB0aGVyZSBhcmUgYW55IHJlY292ZXJ5IHNpZ25hbCBmaWxl cyBhbmQgaWYgc28sIHNldCBzdGF0ZSBmb3IKKyAqIHJlY292ZXJ5LgogICovCiBzdGF0aWMgdm9p ZAotcmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUodm9pZCkKK3JlYWRSZWNvdmVyeVNpZ25hbEZpbGUo dm9pZCkKIHsKLQlGSUxFCSAgICpmZDsKLQlUaW1lTGluZUlECXJ0bGkgPSAwOwotCWJvb2wJCXJ0 bGlHaXZlbiA9IGZhbHNlOwotCUNvbmZpZ1ZhcmlhYmxlICppdGVtLAotCQkJICAgKmhlYWQgPSBO VUxMLAotCQkJICAgKnRhaWwgPSBOVUxMOwotCWJvb2wJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uU2V0 ID0gZmFsc2U7CisJc3RydWN0IHN0YXQgc3RhdF9idWY7CiAKKwlpZiAoSXNCb290c3RyYXBQcm9j ZXNzaW5nTW9kZSgpKQorCQlyZXR1cm47CiAKLQlmZCA9IEFsbG9jYXRlRmlsZShSRUNPVkVSWV9D T01NQU5EX0ZJTEUsICJyIik7Ci0JaWYgKGZkID09IE5VTEwpCi0JewotCQlpZiAoZXJybm8gPT0g RU5PRU5UKQotCQkJcmV0dXJuOwkJCQkvKiBub3QgdGhlcmUsIHNvIG5vIGFyY2hpdmUgcmVjb3Zl cnkgKi8KKwkvKgorCSAqIFNldCBwYXRocyBmb3IgbmFtZWQgc2lnbmFsIGZpbGVzCisJICovCisJ c25wcmludGYoU3RhbmRieVNpZ25hbEZpbGUsIE1BWFBHUEFUSCwgIiVzIiwgU1RBTkRCWV9TSUdO QUxfRklMRSk7CisJc25wcmludGYoUmVjb3ZlcnlTaWduYWxGaWxlLCBNQVhQR1BBVEgsICIlcyIs IFJFQ09WRVJZX1NJR05BTF9GSUxFKTsKKworCS8qCisJICogQ2hlY2sgZm9yIG9sZCByZWNvdmVy eSBBUEkgZmlsZTogcmVjb3ZlcnkuY29uZgorCSAqLworCWlmIChzdGF0KFJFQ09WRVJZX0NPTU1B TkRfRklMRSwgJnN0YXRfYnVmKSA9PSAwKQogCQllcmVwb3J0KEZBVEFMLAogCQkJCShlcnJjb2Rl X2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvcGVuIHJlY292ZXJ5 IGNvbW1hbmQgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkgZXJybXNnKCJkZXByZWNhdGVkIEFQSSB1 c2luZyByZWNvdmVyeSBjb21tYW5kIGZpbGUgXCIlc1wiIiwKIAkJCQkJCVJFQ09WRVJZX0NPTU1B TkRfRklMRSkpKTsKLQl9CiAKIAkvKgotCSAqIFNpbmNlIHdlJ3JlIGFza2luZyBQYXJzZUNvbmZp Z0ZwKCkgdG8gcmVwb3J0IGVycm9ycyBhcyBGQVRBTCwgdGhlcmUncwotCSAqIG5vIG5lZWQgdG8g Y2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KKwkgKiBSZW1vdmUgdW51c2VkIC5kb25lIGZpbGUsIGlm IHByZXNlbnQuIElnbm9yZSBpZiBhYnNlbnQuCiAJICovCi0JKHZvaWQpIFBhcnNlQ29uZmlnRnAo ZmQsIFJFQ09WRVJZX0NPTU1BTkRfRklMRSwgMCwgRkFUQUwsICZoZWFkLCAmdGFpbCk7CisJdW5s aW5rKFJFQ09WRVJZX0NPTU1BTkRfRE9ORSk7CiAKLQlGcmVlRmlsZShmZCk7CisJLyoKKwkgKiBD aGVjayBmb3IgcmVjb3Zlcnkgc2lnbmFsIGZpbGVzIGFuZCBpZiBmb3VuZCwgZnN5bmMgdGhlbSBz aW5jZSB0aGV5CisJICogcmVwcmVzZW50IHNlcnZlciBzdGF0ZSBpbmZvcm1hdGlvbi4KKwkgKgor CSAqIElmIHByZXNlbnQsIHN0YW5kYnkgc2lnbmFsIGZpbGUgdGFrZXMgcHJlY2VkZW5jZS4gSWYg bmVpdGhlciBpcyBwcmVzZW50CisJICogdGhlbiB3ZSB3b24ndCBlbnRlciBhcmNoaXZlIHJlY292 ZXJ5LgorCSAqLworCWlmIChzdGF0KFN0YW5kYnlTaWduYWxGaWxlLCAmc3RhdF9idWYpID09IDAp CisJeworCQlpbnQJCQlmZDsKIAotCWZvciAoaXRlbSA9IGhlYWQ7IGl0ZW07IGl0ZW0gPSBpdGVt LT5uZXh0KQorCQlmZCA9IEJhc2ljT3BlbkZpbGVQZXJtKFN0YW5kYnlTaWduYWxGaWxlLCBPX1JE V1IgfCBQR19CSU5BUlkgfCBnZXRfc3luY19iaXQoc3luY19tZXRob2QpLAorCQkJCQkJCSAgIFNf SVJVU1IgfCBTX0lXVVNSKTsKKwkJcGdfZnN5bmMoZmQpOworCQljbG9zZShmZCk7CisJCXN0YW5k Ynlfc2lnbmFsX2ZpbGVfZm91bmQgPSB0cnVlOworCX0KKwllbHNlIGlmIChzdGF0KFJlY292ZXJ5 U2lnbmFsRmlsZSwgJnN0YXRfYnVmKSA9PSAwKQogCXsKLQkJaWYgKHN0cmNtcChpdGVtLT5uYW1l LCAicmVzdG9yZV9jb21tYW5kIikgPT0gMCkKLQkJewotCQkJcmVjb3ZlcnlSZXN0b3JlQ29tbWFu ZCA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJt c2dfaW50ZXJuYWwoInJlc3RvcmVfY29tbWFuZCA9ICclcyciLAotCQkJCQkJCQkJIHJlY292ZXJ5 UmVzdG9yZUNvbW1hbmQpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJy ZWNvdmVyeV9lbmRfY29tbWFuZCIpID09IDApCi0JCXsKLQkJCXJlY292ZXJ5RW5kQ29tbWFuZCA9 IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2df aW50ZXJuYWwoInJlY292ZXJ5X2VuZF9jb21tYW5kID0gJyVzJyIsCi0JCQkJCQkJCQkgcmVjb3Zl cnlFbmRDb21tYW5kKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAiYXJj aGl2ZV9jbGVhbnVwX2NvbW1hbmQiKSA9PSAwKQotCQl7Ci0JCQlhcmNoaXZlQ2xlYW51cENvbW1h bmQgPSBwc3RyZHVwKGl0ZW0tPnZhbHVlKTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJy bXNnX2ludGVybmFsKCJhcmNoaXZlX2NsZWFudXBfY29tbWFuZCA9ICclcyciLAotCQkJCQkJCQkJ IGFyY2hpdmVDbGVhbnVwQ29tbWFuZCkpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+ bmFtZSwgInJlY292ZXJ5X3RhcmdldF9hY3Rpb24iKSA9PSAwKQotCQl7Ci0JCQlpZiAoc3RyY21w KGl0ZW0tPnZhbHVlLCAicGF1c2UiKSA9PSAwKQotCQkJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uID0g UkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVTRTsKLQkJCWVsc2UgaWYgKHN0cmNtcChpdGVtLT52 YWx1ZSwgInByb21vdGUiKSA9PSAwKQotCQkJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uID0gUkVDT1ZF UllfVEFSR0VUX0FDVElPTl9QUk9NT1RFOwotCQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPnZhbHVl LCAic2h1dGRvd24iKSA9PSAwKQotCQkJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uID0gUkVDT1ZFUllf VEFSR0VUX0FDVElPTl9TSFVURE9XTjsKLQkJCWVsc2UKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCQkgZXJy bXNnKCJpbnZhbGlkIHZhbHVlIGZvciByZWNvdmVyeSBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIi LAotCQkJCQkJCQkicmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiIsCi0JCQkJCQkJCWl0ZW0tPnZhbHVl KSwKLQkJCQkJCSBlcnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlIFwicGF1c2VcIiwgXCJwcm9tb3Rl XCIsIGFuZCBcInNodXRkb3duXCIuIikpKTsKKwkJaW50CQkJZmQ7CiAKLQkJCWVyZXBvcnQoREVC VUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfYWN0aW9uID0gJyVz JyIsCi0JCQkJCQkJCQkgaXRlbS0+dmFsdWUpKSk7CisJCWZkID0gQmFzaWNPcGVuRmlsZVBlcm0o UmVjb3ZlcnlTaWduYWxGaWxlLCBPX1JEV1IgfCBQR19CSU5BUlkgfCBnZXRfc3luY19iaXQoc3lu Y19tZXRob2QpLAorCQkJCQkJCSAgIFNfSVJVU1IgfCBTX0lXVVNSKTsKKwkJcGdfZnN5bmMoZmQp OworCQljbG9zZShmZCk7CisJCXJlY292ZXJ5X3NpZ25hbF9maWxlX2ZvdW5kID0gdHJ1ZTsKKwl9 CiAKLQkJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uU2V0ID0gdHJ1ZTsKLQkJfQotCQllbHNlIGlmIChz dHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5X3RhcmdldF90aW1lbGluZSIpID09IDApCi0JCXsK LQkJCXJ0bGlHaXZlbiA9IHRydWU7Ci0JCQlpZiAoc3RyY21wKGl0ZW0tPnZhbHVlLCAibGF0ZXN0 IikgPT0gMCkKLQkJCQlydGxpID0gMDsKLQkJCWVsc2UKLQkJCXsKLQkJCQllcnJubyA9IDA7Ci0J CQkJcnRsaSA9IChUaW1lTGluZUlEKSBzdHJ0b3VsKGl0ZW0tPnZhbHVlLCBOVUxMLCAwKTsKLQkJ CQlpZiAoZXJybm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVSQU5HRSkKLQkJCQkJZXJlcG9ydChG QVRBTCwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK LQkJCQkJCQkgZXJybXNnKCJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUgaXMgbm90IGEgdmFsaWQg bnVtYmVyOiBcIiVzXCIiLAotCQkJCQkJCQkJaXRlbS0+dmFsdWUpKSk7Ci0JCQl9Ci0JCQlpZiAo cnRsaSkKLQkJCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292 ZXJ5X3RhcmdldF90aW1lbGluZSA9ICV1IiwgcnRsaSkpKTsKLQkJCWVsc2UKLQkJCQllcmVwb3J0 KERFQlVHMiwKLQkJCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF90aW1lbGlu ZSA9IGxhdGVzdCIpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNv dmVyeV90YXJnZXRfeGlkIikgPT0gMCkKLQkJewotCQkJZXJybm8gPSAwOwotCQkJcmVjb3ZlcnlU YXJnZXRYaWQgPSAoVHJhbnNhY3Rpb25JZCkgc3RydG91bChpdGVtLT52YWx1ZSwgTlVMTCwgMCk7 Ci0JCQlpZiAoZXJybm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVSQU5HRSkKLQkJCQllcmVwb3J0 KEZBVEFMLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks Ci0JCQkJCQkgZXJybXNnKCJyZWNvdmVyeV90YXJnZXRfeGlkIGlzIG5vdCBhIHZhbGlkIG51bWJl cjogXCIlc1wiIiwKLQkJCQkJCQkJaXRlbS0+dmFsdWUpKSk7Ci0JCQllcmVwb3J0KERFQlVHMiwK LQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X3hpZCA9ICV1IiwKLQkJCQkJ CQkJCSByZWNvdmVyeVRhcmdldFhpZCkpKTsKLQkJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllf VEFSR0VUX1hJRDsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5 X3RhcmdldF90aW1lIikgPT0gMCkKLQkJewotCQkJcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9U QVJHRVRfVElNRTsKLQotCQkJaWYgKHN0cmNtcChpdGVtLT52YWx1ZSwgImVwb2NoIikgPT0gMCB8 fAotCQkJCXN0cmNtcChpdGVtLT52YWx1ZSwgImluZmluaXR5IikgPT0gMCB8fAotCQkJCXN0cmNt cChpdGVtLT52YWx1ZSwgIi1pbmZpbml0eSIpID09IDAgfHwKLQkJCQlzdHJjbXAoaXRlbS0+dmFs dWUsICJub3ciKSA9PSAwIHx8Ci0JCQkJc3RyY21wKGl0ZW0tPnZhbHVlLCAidG9kYXkiKSA9PSAw IHx8Ci0JCQkJc3RyY21wKGl0ZW0tPnZhbHVlLCAidG9tb3Jyb3ciKSA9PSAwIHx8Ci0JCQkJc3Ry Y21wKGl0ZW0tPnZhbHVlLCAieWVzdGVyZGF5IikgPT0gMCkKLQkJCQllcmVwb3J0KEZBVEFMLAot CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCQkg ZXJybXNnKCJyZWNvdmVyeV90YXJnZXRfdGltZSBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXA6IFwi JXNcIiIsCi0JCQkJCQkJCWl0ZW0tPnZhbHVlKSkpOworCVN0YW5kYnlNb2RlUmVxdWVzdGVkID0g ZmFsc2U7CisJQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gZmFsc2U7CisJaWYgKHN0YW5kYnlf c2lnbmFsX2ZpbGVfZm91bmQpCisJeworCQlTdGFuZGJ5TW9kZVJlcXVlc3RlZCA9IHRydWU7CisJ CUFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCA9IHRydWU7CisJfQorCWVsc2UgaWYgKHJlY292ZXJ5 X3NpZ25hbF9maWxlX2ZvdW5kKQorCXsKKwkJU3RhbmRieU1vZGVSZXF1ZXN0ZWQgPSBmYWxzZTsK KwkJQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gdHJ1ZTsKKwl9CisJZWxzZQorCQlyZXR1cm47 CiAKLQkJCS8qCi0JCQkgKiBDb252ZXJ0IHRoZSB0aW1lIHN0cmluZyBnaXZlbiBieSB0aGUgdXNl ciB0byBUaW1lc3RhbXBUeiBmb3JtLgotCQkJICovCi0JCQlyZWNvdmVyeVRhcmdldFRpbWUgPQot CQkJCURhdHVtR2V0VGltZXN0YW1wVHooRGlyZWN0RnVuY3Rpb25DYWxsMyh0aW1lc3RhbXB0el9p biwKLQkJCQkJCQkJCQkJCQkJQ1N0cmluZ0dldERhdHVtKGl0ZW0tPnZhbHVlKSwKLQkJCQkJCQkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKSwKLQkJCQkJCQkJCQkJCQkJSW50MzJH ZXREYXR1bSgtMSkpKTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFs KCJyZWNvdmVyeV90YXJnZXRfdGltZSA9ICclcyciLAotCQkJCQkJCQkJIHRpbWVzdGFtcHR6X3Rv X3N0cihyZWNvdmVyeVRhcmdldFRpbWUpKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVt LT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0X25hbWUiKSA9PSAwKQotCQl7Ci0JCQlyZWNvdmVyeVRh cmdldCA9IFJFQ09WRVJZX1RBUkdFVF9OQU1FOworCS8qCisJICogV2UgZG9uJ3Qgc3VwcG9ydCBz dGFuZGJ5X21vZGUgaW4gc3RhbmRhbG9uZSBiYWNrZW5kczsgdGhhdCByZXF1aXJlcworCSAqIG90 aGVyIHByb2Nlc3NlcyBzdWNoIGFzIHRoZSBXQUwgcmVjZWl2ZXIgdG8gYmUgYWxpdmUuCisJICov CisJaWYgKFN0YW5kYnlNb2RlUmVxdWVzdGVkICYmICFJc1VuZGVyUG9zdG1hc3RlcikKKwkJZXJl cG9ydChGQVRBTCwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJIGVycm1zZygic3RhbmRieSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2luZ2xlLXVz ZXIgc2VydmVycyIpKSk7CiAKLQkJCXJlY292ZXJ5VGFyZ2V0TmFtZSA9IHBzdHJkdXAoaXRlbS0+ dmFsdWUpOwotCQkJaWYgKHN0cmxlbihyZWNvdmVyeVRhcmdldE5hbWUpID49IE1BWEZOQU1FTEVO KQotCQkJCWVyZXBvcnQoRkFUQUwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coInJlY292ZXJ5X3RhcmdldF9uYW1lIGlzIHRv byBsb25nIChtYXhpbXVtICVkIGNoYXJhY3RlcnMpIiwKLQkJCQkJCQkJTUFYRk5BTUVMRU4gLSAx KSkpOworCWxvZ1JlY292ZXJ5UGFyYW1ldGVycygpOworCXZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0 ZXJzKCk7Cit9CiAKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJy ZWNvdmVyeV90YXJnZXRfbmFtZSA9ICclcyciLAotCQkJCQkJCQkJIHJlY292ZXJ5VGFyZ2V0TmFt ZSkpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5X3Rhcmdl dF9sc24iKSA9PSAwKQotCQl7Ci0JCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9M U047Cit2b2lkCitsb2dSZWNvdmVyeVBhcmFtZXRlcnModm9pZCkKK3sKKwlpbnQJCQlub3JtYWxf bG9nX2xldmVsID0gREVCVUcyOwogCi0JCQkvKgotCQkJICogQ29udmVydCB0aGUgTFNOIHN0cmlu ZyBnaXZlbiBieSB0aGUgdXNlciB0byBYTG9nUmVjUHRyIGZvcm0uCi0JCQkgKi8KLQkJCXJlY292 ZXJ5VGFyZ2V0TFNOID0KLQkJCQlEYXR1bUdldExTTihEaXJlY3RGdW5jdGlvbkNhbGwzKHBnX2xz bl9pbiwKLQkJCQkJCQkJCQkJCUNTdHJpbmdHZXREYXR1bShpdGVtLT52YWx1ZSksCi0JCQkJCQkJ CQkJCQlPYmplY3RJZEdldERhdHVtKEludmFsaWRPaWQpLAotCQkJCQkJCQkJCQkJSW50MzJHZXRE YXR1bSgtMSkpKTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJy ZWNvdmVyeV90YXJnZXRfbHNuID0gJyVYLyVYJyIsCi0JCQkJCQkJCQkgKHVpbnQzMikgKHJlY292 ZXJ5VGFyZ2V0TFNOID4+IDMyKSwKLQkJCQkJCQkJCSAodWludDMyKSByZWNvdmVyeVRhcmdldExT TikpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5X3Rhcmdl dCIpID09IDApCi0JCXsKLQkJCWlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJpbW1lZGlhdGUiKSA9 PSAwKQotCQkJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX0lNTUVESUFURTsKLQkJ CWVsc2UKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCQkgZXJybXNnKCJpbnZhbGlkIHZhbHVlIGZvciByZWNv dmVyeSBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIiLAotCQkJCQkJCQkicmVjb3ZlcnlfdGFyZ2V0 IiwKLQkJCQkJCQkJaXRlbS0+dmFsdWUpLAotCQkJCQkJIGVycmhpbnQoIlRoZSBvbmx5IGFsbG93 ZWQgdmFsdWUgaXMgXCJpbW1lZGlhdGVcIi4iKSkpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJ CShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldCA9ICclcyciLAotCQkJCQkJCQkJIGl0 ZW0tPnZhbHVlKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3Zl cnlfdGFyZ2V0X2luY2x1c2l2ZSIpID09IDApCi0JCXsKLQkJCS8qCi0JCQkgKiBkb2VzIG5vdGhp bmcgaWYgYSByZWNvdmVyeV90YXJnZXQgaXMgbm90IGFsc28gc2V0Ci0JCQkgKi8KLQkJCWlmICgh cGFyc2VfYm9vbChpdGVtLT52YWx1ZSwgJnJlY292ZXJ5VGFyZ2V0SW5jbHVzaXZlKSkKLQkJCQll cmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCi0JCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCIlc1wiIHJlcXVpcmVzIGEgQm9vbGVh biB2YWx1ZSIsCi0JCQkJCQkJCSJyZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlIikpKTsKLQkJCWVy ZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfaW5j bHVzaXZlID0gJXMiLAotCQkJCQkJCQkJIGl0ZW0tPnZhbHVlKSkpOwotCQl9Ci0JCWVsc2UgaWYg KHN0cmNtcChpdGVtLT5uYW1lLCAic3RhbmRieV9tb2RlIikgPT0gMCkKLQkJewotCQkJaWYgKCFw YXJzZV9ib29sKGl0ZW0tPnZhbHVlLCAmU3RhbmRieU1vZGVSZXF1ZXN0ZWQpKQotCQkJCWVyZXBv cnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKLQkJCQkJCSBlcnJtc2coInBhcmFtZXRlciBcIiVzXCIgcmVxdWlyZXMgYSBCb29sZWFuIHZh bHVlIiwKLQkJCQkJCQkJInN0YW5kYnlfbW9kZSIpKSk7Ci0JCQllcmVwb3J0KERFQlVHMiwKLQkJ CQkJKGVycm1zZ19pbnRlcm5hbCgic3RhbmRieV9tb2RlID0gJyVzJyIsIGl0ZW0tPnZhbHVlKSkp OwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicHJpbWFyeV9jb25uaW5mbyIp ID09IDApCi0JCXsKLQkJCVByaW1hcnlDb25uSW5mbyA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwot CQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInByaW1hcnlfY29ubmlu Zm8gPSAnJXMnIiwKLQkJCQkJCQkJCSBQcmltYXJ5Q29ubkluZm8pKSk7Ci0JCX0KLQkJZWxzZSBp ZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJwcmltYXJ5X3Nsb3RfbmFtZSIpID09IDApCi0JCXsKLQkJ CVJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFtZShpdGVtLT52YWx1ZSwgRVJST1IpOwotCQkJUHJp bWFyeVNsb3ROYW1lID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwK LQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicHJpbWFyeV9zbG90X25hbWUgPSAnJXMnIiwKLQkJCQkJ CQkJCSBQcmltYXJ5U2xvdE5hbWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5h bWUsICJ0cmlnZ2VyX2ZpbGUiKSA9PSAwKQotCQl7Ci0JCQlUcmlnZ2VyRmlsZSA9IHBzdHJkdXAo aXRlbS0+dmFsdWUpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwo InRyaWdnZXJfZmlsZSA9ICclcyciLAotCQkJCQkJCQkJIFRyaWdnZXJGaWxlKSkpOwotCQl9Ci0J CWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5Iikg PT0gMCkKLQkJewotCQkJY29uc3QgY2hhciAqaGludG1zZzsKKwkvKgorCSAqIExvZyBtZXNzYWdl cyBmb3IgcmVjb3ZlcnkgcGFyYW1ldGVycyBhdCBzZXJ2ZXIgc3RhcnQKKwkgKi8KKwllcmVwb3J0 KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkoZXJybXNnX2ludGVybmFsKCJzdGFuZGJ5X21vZGUgPSAn JXMnIiwgKFN0YW5kYnlNb2RlUmVxdWVzdGVkID8gIm9uIiA6ICJvZmYiKSkpKTsKIAotCQkJaWYg KCFwYXJzZV9pbnQoaXRlbS0+dmFsdWUsICZyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXksIEdVQ19V TklUX01TLAotCQkJCQkJICAgJmhpbnRtc2cpKQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2co InBhcmFtZXRlciBcIiVzXCIgcmVxdWlyZXMgYSB0ZW1wb3JhbCB2YWx1ZSIsCi0JCQkJCQkJCSJy ZWNvdmVyeV9taW5fYXBwbHlfZGVsYXkiKSwKLQkJCQkJCSBoaW50bXNnID8gZXJyaGludCgiJXMi LCBfKGhpbnRtc2cpKSA6IDApKTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2lu dGVybmFsKCJyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXkgPSAnJXMnIiwgaXRlbS0+dmFsdWUpKSk7 Ci0JCX0KKwlpZiAocmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCAhPSBOVUxMKQorCQllcmVwb3J0KG5v cm1hbF9sb2dfbGV2ZWwsCisJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVzdG9yZV9jb21tYW5kID0g JyVzJyIsIHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQpKSk7CisKKwlpZiAocmVjb3ZlcnlFbmRDb21t YW5kICE9IE5VTEwpCisJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkoZXJybXNnX2lu dGVybmFsKCJyZWNvdmVyeV9lbmRfY29tbWFuZCA9ICclcyciLCByZWNvdmVyeUVuZENvbW1hbmQp KSk7CisKKwlpZiAoYXJjaGl2ZUNsZWFudXBDb21tYW5kICE9IE5VTEwpCisJCWVyZXBvcnQobm9y bWFsX2xvZ19sZXZlbCwKKwkJCQkoZXJybXNnX2ludGVybmFsKCJhcmNoaXZlX2NsZWFudXBfY29t bWFuZCA9ICclcyciLCBhcmNoaXZlQ2xlYW51cENvbW1hbmQpKSk7CisKKwlpZiAoUHJpbWFyeUNv bm5JbmZvICE9IE5VTEwpCisJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkoZXJybXNn X2ludGVybmFsKCJwcmltYXJ5X2Nvbm5pbmZvID0gJyVzJyIsIFByaW1hcnlDb25uSW5mbykpKTsK KworCWlmIChQcmltYXJ5U2xvdE5hbWUgIT0gTlVMTCkKKwkJZXJlcG9ydChub3JtYWxfbG9nX2xl dmVsLAorCQkJCShlcnJtc2dfaW50ZXJuYWwoInByaW1hcnlfc2xvdF9uYW1lID0gJyVzJyIsIFBy aW1hcnlTbG90TmFtZSkpKTsKKworCWlmIChyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXkgPiAwKQor CQllcmVwb3J0KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3Zl cnlfbWluX2FwcGx5X2RlbGF5ID0gJyV1JyIsIHJlY292ZXJ5X21pbl9hcHBseV9kZWxheSkpKTsK KworCS8qCisJICogQ2hlY2sgZGV0YWlscyBmb3IgcmVjb3ZlcnkgdGFyZ2V0LCBpZiBhbnkKKwkg Ki8KKwlpZiAocmVjb3ZlcnlUYXJnZXQgPiBSRUNPVkVSWV9UQVJHRVRfVU5TRVQpCisJeworCQll cmVwb3J0KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3Zlcnlf dGFyZ2V0X3R5cGUgPSAnJXMnIiwgUmVjb3ZlcnlUYXJnZXRUZXh0KHJlY292ZXJ5VGFyZ2V0KSkp KTsKKwkJaWYgKHJlY292ZXJ5VGFyZ2V0VmFsdWUgIT0gTlVMTCkKKwkJCWVyZXBvcnQobm9ybWFs X2xvZ19sZXZlbCwKKwkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X3ZhbHVl ID0gJyVzJyIsIHJlY292ZXJ5VGFyZ2V0VmFsdWUpKSk7CisJCWVyZXBvcnQobm9ybWFsX2xvZ19s ZXZlbCwKKwkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlID0g JyVzJyIsIChyZWNvdmVyeVRhcmdldEluY2x1c2l2ZSA/ICJvbiAiIDogIm9mZiIpKSkpOworCisJ CWlmIChyZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCA9PSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJ TkVfQ09OVFJPTEZJTEUpCisJCQllcmVwb3J0KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkJCShlcnJt c2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF90aW1lbGluZSA9ICcldScgKGZyb20gY29udHJv bGZpbGUpIiwKKwkJCQkJCQkJCSByZWNvdmVyeVRhcmdldFRMSSkpKTsKKwkJZWxzZSBpZiAocmVj b3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPT0gUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX0xBVEVT VCkKKwkJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkJKGVycm1zZ19pbnRlcm5hbCgi cmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gJ2xhdGVzdCciKSkpOwogCQllbHNlCi0JCQllcmVw b3J0KEZBVEFMLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKLQkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIHJlY292ZXJ5IHBhcmFtZXRlciBcIiVzXCIi LAotCQkJCQkJCWl0ZW0tPm5hbWUpKSk7CisJCXsKKwkJCUFzc2VydChyZWNvdmVyeVRhcmdldFRp bWVMaW5lR29hbCA9PSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfTlVNRVJJQyk7CisJCQllcmVw b3J0KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3Rh cmdldF90aW1lbGluZSA9ICcldSciLAorCQkJCQkJCQkJIHJlY292ZXJ5VGFyZ2V0VExJUmVxdWVz dGVkKSkpOworCQl9CiAJfQogCisJZXJlcG9ydChub3JtYWxfbG9nX2xldmVsLAorCQkJKGVycm1z Z19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiA9ICclcyciLCBSZWNvdmVyeVRhcmdl dEFjdGlvblRleHQocmVjb3ZlcnlUYXJnZXRBY3Rpb24pKSkpOworfQorCit2b2lkCit2YWxpZGF0 ZVJlY292ZXJ5UGFyYW1ldGVycyh2b2lkKQoreworCWlmICghQXJjaGl2ZVJlY292ZXJ5UmVxdWVz dGVkKQorCQlyZXR1cm47CisKKwlpZiAocmVjb3ZlcnlUYXJnZXQgPiBSRUNPVkVSWV9UQVJHRVRf VU5TRVQgJiYKKwkJcmVjb3ZlcnlUYXJnZXRWYWx1ZSA9PSBOVUxMKQorCQllcmVwb3J0KEZBVEFM LAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBl cnJtc2coIm11c3Qgc3BlY2lmeSByZWNvdmVyeV90YXJnZXRfdmFsdWUgd2hlbiByZWNvdmVyeV90 YXJnZXRfdHlwZSBpcyBzZXQiKSkpOworCiAJLyoKIAkgKiBDaGVjayBmb3IgY29tcHVsc29yeSBw YXJhbWV0ZXJzCiAJICovCkBAIC01NDk0LDggKzU0MTYsNyBAQCByZWFkUmVjb3ZlcnlDb21tYW5k RmlsZSh2b2lkKQogCXsKIAkJaWYgKFByaW1hcnlDb25uSW5mbyA9PSBOVUxMICYmIHJlY292ZXJ5 UmVzdG9yZUNvbW1hbmQgPT0gTlVMTCkKIAkJCWVyZXBvcnQoV0FSTklORywKLQkJCQkJKGVycm1z ZygicmVjb3ZlcnkgY29tbWFuZCBmaWxlIFwiJXNcIiBzcGVjaWZpZWQgbmVpdGhlciBwcmltYXJ5 X2Nvbm5pbmZvIG5vciByZXN0b3JlX2NvbW1hbmQiLAotCQkJCQkJCVJFQ09WRVJZX0NPTU1BTkRf RklMRSksCisJCQkJCShlcnJtc2coInNwZWNpZmllZCBuZWl0aGVyIHByaW1hcnlfY29ubmluZm8g bm9yIHJlc3RvcmVfY29tbWFuZCIpLAogCQkJCQkgZXJyaGludCgiVGhlIGRhdGFiYXNlIHNlcnZl ciB3aWxsIHJlZ3VsYXJseSBwb2xsIHRoZSBwZ193YWwgc3ViZGlyZWN0b3J5IHRvIGNoZWNrIGZv ciBmaWxlcyBwbGFjZWQgdGhlcmUuIikpKTsKIAl9CiAJZWxzZQpAQCAtNTUwMyw4ICs1NDI0LDcg QEAgcmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUodm9pZCkKIAkJaWYgKHJlY292ZXJ5UmVzdG9yZUNv bW1hbmQgPT0gTlVMTCkKIAkJCWVyZXBvcnQoRkFUQUwsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkgZXJybXNnKCJyZWNvdmVyeSBjb21tYW5k IGZpbGUgXCIlc1wiIG11c3Qgc3BlY2lmeSByZXN0b3JlX2NvbW1hbmQgd2hlbiBzdGFuZGJ5IG1v ZGUgaXMgbm90IGVuYWJsZWQiLAotCQkJCQkJCVJFQ09WRVJZX0NPTU1BTkRfRklMRSkpKTsKKwkJ CQkJIGVycm1zZygibXVzdCBzcGVjaWZ5IHJlc3RvcmVfY29tbWFuZCB3aGVuIHN0YW5kYnkgbW9k ZSBpcyBub3QgZW5hYmxlZCIpKSk7CiAJfQogCiAJLyoKQEAgLTU1MTMsNTAgKzU0MzMsNDkgQEAg cmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUodm9pZCkKIAkgKiBob3Rfc3RhbmRieSA9IG9mZiwgd2hp Y2ggd2FzIHN1cnByaXNpbmcgYmVoYXZpb3VyLgogCSAqLwogCWlmIChyZWNvdmVyeVRhcmdldEFj dGlvbiA9PSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BBVVNFICYmCi0JCXJlY292ZXJ5VGFyZ2V0 QWN0aW9uU2V0ICYmCiAJCSFFbmFibGVIb3RTdGFuZGJ5KQogCQlyZWNvdmVyeVRhcmdldEFjdGlv biA9IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fU0hVVERPV047CiAKIAkvKgotCSAqIFdlIGRvbid0 IHN1cHBvcnQgc3RhbmRieV9tb2RlIGluIHN0YW5kYWxvbmUgYmFja2VuZHM7IHRoYXQgcmVxdWly ZXMKLQkgKiBvdGhlciBwcm9jZXNzZXMgc3VjaCBhcyB0aGUgV0FMIHJlY2VpdmVyIHRvIGJlIGFs aXZlLgotCSAqLwotCWlmIChTdGFuZGJ5TW9kZVJlcXVlc3RlZCAmJiAhSXNVbmRlclBvc3RtYXN0 ZXIpCi0JCWVyZXBvcnQoRkFUQUwsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAotCQkJCSBlcnJtc2coInN0YW5kYnkgbW9kZSBpcyBub3Qgc3VwcG9ydGVkIGJ5 IHNpbmdsZS11c2VyIHNlcnZlcnMiKSkpOwotCi0JLyogRW5hYmxlIGZldGNoaW5nIGZyb20gYXJj aGl2ZSByZWNvdmVyeSBhcmVhICovCi0JQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gdHJ1ZTsK LQotCS8qCiAJICogSWYgdXNlciBzcGVjaWZpZWQgcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lLCB2 YWxpZGF0ZSBpdCBvciBjb21wdXRlIHRoZQogCSAqICJsYXRlc3QiIHZhbHVlLiAgV2UgY2FuJ3Qg ZG8gdGhpcyB1bnRpbCBhZnRlciB3ZSd2ZSBnb3R0ZW4gdGhlIHJlc3RvcmUKIAkgKiBjb21tYW5k IGFuZCBzZXQgSW5BcmNoaXZlUmVjb3ZlcnksIGJlY2F1c2Ugd2UgbmVlZCB0byBmZXRjaCB0aW1l bGluZQogCSAqIGhpc3RvcnkgZmlsZXMgZnJvbSB0aGUgYXJjaGl2ZS4KIAkgKi8KLQlpZiAocnRs aUdpdmVuKQorCWlmIChyZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCA9PSBSRUNPVkVSWV9UQVJH RVRfVElNRUxJTkVfTlVNRVJJQykKIAl7Ci0JCWlmIChydGxpKQotCQl7Ci0JCQkvKiBUaW1lbGlu ZSAxIGRvZXMgbm90IGhhdmUgYSBoaXN0b3J5IGZpbGUsIGFsbCBlbHNlIHNob3VsZCAqLwotCQkJ aWYgKHJ0bGkgIT0gMSAmJiAhZXhpc3RzVGltZUxpbmVIaXN0b3J5KHJ0bGkpKQotCQkJCWVyZXBv cnQoRkFUQUwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKLQkJCQkJCSBlcnJtc2coInJlY292ZXJ5IHRhcmdldCB0aW1lbGluZSAldSBkb2VzIG5vdCBl eGlzdCIsCi0JCQkJCQkJCXJ0bGkpKSk7Ci0JCQlyZWNvdmVyeVRhcmdldFRMSSA9IHJ0bGk7Ci0J CQlyZWNvdmVyeVRhcmdldElzTGF0ZXN0ID0gZmFsc2U7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkv KiBXZSBzdGFydCB0aGUgImxhdGVzdCIgc2VhcmNoIGZyb20gcGdfY29udHJvbCdzIHRpbWVsaW5l ICovCi0JCQlyZWNvdmVyeVRhcmdldFRMSSA9IGZpbmROZXdlc3RUaW1lTGluZShyZWNvdmVyeVRh cmdldFRMSSk7Ci0JCQlyZWNvdmVyeVRhcmdldElzTGF0ZXN0ID0gdHJ1ZTsKLQkJfQotCX0KKwkJ VGltZUxpbmVJRAlydGxpID0gcmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQ7CisKKwkJLyogVGlt ZWxpbmUgMSBkb2VzIG5vdCBoYXZlIGEgaGlzdG9yeSBmaWxlLCBhbGwgZWxzZSBzaG91bGQgKi8K KwkJaWYgKHJ0bGkgIT0gMSAmJiAhZXhpc3RzVGltZUxpbmVIaXN0b3J5KHJ0bGkpKQorCQkJZXJl cG9ydChGQVRBTCwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCisJCQkJCSBlcnJtc2coInJlY292ZXJ5IHRhcmdldCB0aW1lbGluZSAldSBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQkJcnRsaSkpKTsKKwkJcmVjb3ZlcnlUYXJnZXRUTEkgPSBydGxpOwogCi0J RnJlZUNvbmZpZ1ZhcmlhYmxlcyhoZWFkKTsKKwkJLyoKKwkJICogVGhlIHVzZXIgaGFzIHJlcXVl c3RlZCBhIHNwZWNpZmljIHRsaS4gVGhpcyBtaWdodCBiZSB0aGUgbGF0ZXN0CisJCSAqIHRpbWVs aW5lIGJ1dCB3ZSBkb24ndCBrbm93IHRoYXQ7IHRoZSBwb2ludCBoZXJlIGlzIHRoYXQgd2UgZG8g bm90CisJCSAqIGFsbG93IHRoZSByZWNvdmVyeVRhcmdldFRMSSB0byBmb2xsb3cgYW55IGNoYW5n ZXMuCisJCSAqLworCQlyZWNvdmVyeVRhcmdldElzTGF0ZXN0ID0gZmFsc2U7CisJfQorCWVsc2Ug aWYgKHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsID09IFJFQ09WRVJZX1RBUkdFVF9USU1FTElO RV9MQVRFU1QpCisJeworCQkvKiBXZSBzdGFydCB0aGUgImxhdGVzdCIgc2VhcmNoIGZyb20gcGdf Y29udHJvbCdzIHRpbWVsaW5lICovCisJCXJlY292ZXJ5VGFyZ2V0VExJID0gZmluZE5ld2VzdFRp bWVMaW5lKHJlY292ZXJ5VGFyZ2V0VExJKTsKKwkJcmVjb3ZlcnlUYXJnZXRJc0xhdGVzdCA9IHRy dWU7CisJfQorCWVsc2UKKwl7CisJCS8qCisJCSAqIGVsc2Ugd2UganVzdCB1c2UgdGhlIHJlY292 ZXJ5VGFyZ2V0VExJIGFzIGFscmVhZHkgcmVhZCBmcm9tCisJCSAqIENvbnRyb2xGaWxlCisJCSAq LworCQlBc3NlcnQocmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPT0gUkVDT1ZFUllfVEFSR0VU X1RJTUVMSU5FX0NPTlRST0xGSUxFKTsKKwkJcmVjb3ZlcnlUYXJnZXRJc0xhdGVzdCA9IGZhbHNl OworCX0KIH0KIAogLyoKQEAgLTU2NTcsMTEgKzU1NzYsMjIgQEAgZXhpdEFyY2hpdmVSZWNvdmVy eShUaW1lTGluZUlEIGVuZFRMSSwgWExvZ1JlY1B0ciBlbmRPZkxvZykKIAl1bmxpbmsocmVjb3Zl cnlQYXRoKTsJCS8qIGlnbm9yZSBhbnkgZXJyb3IgKi8KIAogCS8qCi0JICogUmVuYW1lIHRoZSBj b25maWcgZmlsZSBvdXQgb2YgdGhlIHdheSwgc28gdGhhdCB3ZSBkb24ndCBhY2NpZGVudGFsbHkK KwkgKiBSZW1vdmUgdGhlIHNpZ25hbCBmaWxlcyBvdXQgb2YgdGhlIHdheSwgc28gdGhhdCB3ZSBk b24ndCBhY2NpZGVudGFsbHkKIAkgKiByZS1lbnRlciBhcmNoaXZlIHJlY292ZXJ5IG1vZGUgaW4g YSBzdWJzZXF1ZW50IGNyYXNoLgogCSAqLwotCXVubGluayhSRUNPVkVSWV9DT01NQU5EX0RPTkUp OwotCWR1cmFibGVfcmVuYW1lKFJFQ09WRVJZX0NPTU1BTkRfRklMRSwgUkVDT1ZFUllfQ09NTUFO RF9ET05FLCBGQVRBTCk7CisJaWYgKHN0YW5kYnlfc2lnbmFsX2ZpbGVfZm91bmQgJiYKKwkJZHVy YWJsZV91bmxpbmsoU3RhbmRieVNpZ25hbEZpbGUsIEZBVEFMKSAhPSAwKQorCQllcmVwb3J0KEZB VEFMLAorCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAorCQkJCSBlcnJtc2coImNvdWxk IG5vdCByZW1vdmUgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJCVN0YW5kYnlTaWduYWxGaWxlKSkp OworCisJaWYgKHJlY292ZXJ5X3NpZ25hbF9maWxlX2ZvdW5kICYmCisJCWR1cmFibGVfdW5saW5r KFJlY292ZXJ5U2lnbmFsRmlsZSwgRkFUQUwpICE9IDApCisJCWVyZXBvcnQoRkFUQUwsCisJCQkJ KGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJCQkJIGVycm1zZygiY291bGQgbm90IHJlbW92 ZSBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkJUmVjb3ZlcnlTaWduYWxGaWxlKSkpOwogCiAJZXJl cG9ydChMT0csCiAJCQkoZXJybXNnKCJhcmNoaXZlIHJlY292ZXJ5IGNvbXBsZXRlIikpKTsKQEAg LTYzODcsMTggKzYzMTcsOSBAQCBTdGFydHVwWExPRyh2b2lkKQogCQlyZWNvdmVyeVRhcmdldFRM SSA9IENvbnRyb2xGaWxlLT5jaGVja1BvaW50Q29weS5UaGlzVGltZUxpbmVJRDsKIAogCS8qCi0J ICogQ2hlY2sgZm9yIHJlY292ZXJ5IGNvbnRyb2wgZmlsZSwgYW5kIGlmIHNvIHNldCB1cCBzdGF0 ZSBmb3Igb2ZmbGluZQotCSAqIHJlY292ZXJ5CisJICogQ2hlY2sgZm9yIHNpZ25hbCBmaWxlcywg YW5kIGlmIHNvIHNldCB1cCBzdGF0ZSBmb3Igb2ZmbGluZSByZWNvdmVyeQogCSAqLwotCXJlYWRS ZWNvdmVyeUNvbW1hbmRGaWxlKCk7Ci0KLQkvKgotCSAqIFNhdmUgYXJjaGl2ZV9jbGVhbnVwX2Nv bW1hbmQgaW4gc2hhcmVkIG1lbW9yeSBzbyB0aGF0IG90aGVyIHByb2Nlc3NlcwotCSAqIGNhbiBz ZWUgaXQuCi0JICovCi0Jc3RybGNweShYTG9nQ3RsLT5hcmNoaXZlQ2xlYW51cENvbW1hbmQsCi0J CQlhcmNoaXZlQ2xlYW51cENvbW1hbmQgPyBhcmNoaXZlQ2xlYW51cENvbW1hbmQgOiAiIiwKLQkJ CXNpemVvZihYTG9nQ3RsLT5hcmNoaXZlQ2xlYW51cENvbW1hbmQpKTsKKwlyZWFkUmVjb3ZlcnlT aWduYWxGaWxlKCk7CiAKIAlpZiAoQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkKQogCXsKQEAgLTY1 NzUsNyArNjQ5Niw4IEBAIFN0YXJ0dXBYTE9HKHZvaWQpCiAJCSAqIFRoaXMgY2FuIGhhcHBlbiBm b3IgZXhhbXBsZSBpZiBhIGJhc2UgYmFja3VwIGlzIHRha2VuIGZyb20gYQogCQkgKiBydW5uaW5n IHNlcnZlciB1c2luZyBhbiBhdG9taWMgZmlsZXN5c3RlbSBzbmFwc2hvdCwgd2l0aG91dCBjYWxs aW5nCiAJCSAqIHBnX3N0YXJ0L3N0b3BfYmFja3VwLiBPciBpZiB5b3UganVzdCBraWxsIGEgcnVu bmluZyBtYXN0ZXIgc2VydmVyCi0JCSAqIGFuZCBwdXQgaXQgaW50byBhcmNoaXZlIHJlY292ZXJ5 IGJ5IGNyZWF0aW5nIGEgcmVjb3ZlcnkuY29uZiBmaWxlLgorCQkgKiBhbmQgcHV0IGl0IGludG8g YXJjaGl2ZSByZWNvdmVyeSBieSBjcmVhdGluZyBhIHJlY292ZXJ5IHNpZ25hbAorCQkgKiBmaWxl LgogCQkgKgogCQkgKiBPdXIgc3RyYXRlZ3kgaW4gdGhhdCBjYXNlIGlzIHRvIHBlcmZvcm0gY3Jh c2ggcmVjb3ZlcnkgZmlyc3QsCiAJCSAqIHJlcGxheWluZyBhbGwgdGhlIFdBTCBwcmVzZW50IGlu IHBnX3dhbCwgYW5kIG9ubHkgZW50ZXIgYXJjaGl2ZQpAQCAtNjgwMCw3ICs2NzIyLDcgQEAgU3Rh cnR1cFhMT0codm9pZCkKIAogCS8qCiAJICogQ2hlY2sgd2hldGhlciB3ZSBuZWVkIHRvIGZvcmNl IHJlY292ZXJ5IGZyb20gV0FMLiAgSWYgaXQgYXBwZWFycyB0bwotCSAqIGhhdmUgYmVlbiBhIGNs ZWFuIHNodXRkb3duIGFuZCB3ZSBkaWQgbm90IGhhdmUgYSByZWNvdmVyeS5jb25mIGZpbGUsCisJ ICogaGF2ZSBiZWVuIGEgY2xlYW4gc2h1dGRvd24gYW5kIHdlIGRpZCBub3QgaGF2ZSBhIHJlY292 ZXJ5IHNpZ25hbCBmaWxlLAogCSAqIHRoZW4gYXNzdW1lIG5vIHJlY292ZXJ5IG5lZWRlZC4KIAkg Ki8KIAlpZiAoY2hlY2tQb2ludC5yZWRvIDwgUmVjUHRyKQpAQCAtNjgxNCw3ICs2NzM2LDcgQEAg U3RhcnR1cFhMT0codm9pZCkKIAkJSW5SZWNvdmVyeSA9IHRydWU7CiAJZWxzZSBpZiAoQXJjaGl2 ZVJlY292ZXJ5UmVxdWVzdGVkKQogCXsKLQkJLyogZm9yY2UgcmVjb3ZlcnkgZHVlIHRvIHByZXNl bmNlIG9mIHJlY292ZXJ5LmNvbmYgKi8KKwkJLyogZm9yY2UgcmVjb3ZlcnkgZHVlIHRvIHByZXNl bmNlIG9mIHJlY292ZXJ5IHNpZ25hbCBmaWxlICovCiAJCUluUmVjb3ZlcnkgPSB0cnVlOwogCX0K IApAQCAtNzMxOCw3ICs3MjQwLDYgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJCS8qCiAJCQkgKiBl bmQgb2YgbWFpbiByZWRvIGFwcGx5IGxvb3AKIAkJCSAqLwotCiAJCQlpZiAocmVhY2hlZFN0b3BQ b2ludCkKIAkJCXsKIAkJCQlpZiAoIXJlYWNoZWRDb25zaXN0ZW5jeSkKQEAgLTkzNjksOCArOTI5 MCw4IEBAIENyZWF0ZVJlc3RhcnRQb2ludChpbnQgZmxhZ3MpCiAJLyoKIAkgKiBGaW5hbGx5LCBl eGVjdXRlIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kLCBpZiBhbnkuCiAJICovCi0JaWYgKFhMb2dD dGwtPmFyY2hpdmVDbGVhbnVwQ29tbWFuZFswXSkKLQkJRXhlY3V0ZVJlY292ZXJ5Q29tbWFuZChY TG9nQ3RsLT5hcmNoaXZlQ2xlYW51cENvbW1hbmQsCisJaWYgKGFyY2hpdmVDbGVhbnVwQ29tbWFu ZCkKKwkJRXhlY3V0ZVJlY292ZXJ5Q29tbWFuZChhcmNoaXZlQ2xlYW51cENvbW1hbmQsCiAJCQkJ CQkJICAgImFyY2hpdmVfY2xlYW51cF9jb21tYW5kIiwKIAkJCQkJCQkgICBmYWxzZSk7CiAKQEAg LTExODY3LDcgKzExNzg4LDcgQEAgV2FpdEZvcldBTFRvQmVjb21lQXZhaWxhYmxlKFhMb2dSZWNQ dHIgUmVjUHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJCSAqIHRoYXQgd2hlbiB3ZSBsYXRlciBq dW1wIGJhY2t3YXJkcyB0byBzdGFydCByZWRvIGF0CiAJCQkJCSAqIFJlZG9TdGFydExTTiwgd2Ug d2lsbCBoYXZlIHRoZSBsb2dzIHN0cmVhbWVkIGFscmVhZHkuCiAJCQkJCSAqLwotCQkJCQlpZiAo UHJpbWFyeUNvbm5JbmZvKQorCQkJCQlpZiAoUHJpbWFyeUNvbm5JbmZvICYmIHN0cmNtcChQcmlt YXJ5Q29ubkluZm8sICIiKSAhPSAwKQogCQkJCQl7CiAJCQkJCQlYTG9nUmVjUHRyCXB0cjsKIAkJ CQkJCVRpbWVMaW5lSUQJdGxpOwpAQCAtMTIyMzYsMTQgKzEyMTU3LDE0IEBAIENoZWNrRm9yU3Rh bmRieVRyaWdnZXIodm9pZCkKIAkJcmV0dXJuIHRydWU7CiAJfQogCi0JaWYgKFRyaWdnZXJGaWxl ID09IE5VTEwpCisJaWYgKFByb21vdGVTaWduYWxGaWxlID09IE5VTEwpCiAJCXJldHVybiBmYWxz ZTsKIAotCWlmIChzdGF0KFRyaWdnZXJGaWxlLCAmc3RhdF9idWYpID09IDApCisJaWYgKHN0YXQo UHJvbW90ZVNpZ25hbEZpbGUsICZzdGF0X2J1ZikgPT0gMCkKIAl7CiAJCWVyZXBvcnQoTE9HLAot CQkJCShlcnJtc2coInRyaWdnZXIgZmlsZSBmb3VuZDogJXMiLCBUcmlnZ2VyRmlsZSkpKTsKLQkJ dW5saW5rKFRyaWdnZXJGaWxlKTsKKwkJCQkoZXJybXNnKCJwcm9tb3RlIHNpZ25hbCBmaWxlIGZv dW5kOiAlcyIsIFByb21vdGVTaWduYWxGaWxlKSkpOworCQl1bmxpbmsoUHJvbW90ZVNpZ25hbEZp bGUpOwogCQl0cmlnZ2VyZWQgPSB0cnVlOwogCQlmYXN0X3Byb21vdGUgPSB0cnVlOwogCQlyZXR1 cm4gdHJ1ZTsKQEAgLTEyMjUxLDggKzEyMTcyLDggQEAgQ2hlY2tGb3JTdGFuZGJ5VHJpZ2dlcih2 b2lkKQogCWVsc2UgaWYgKGVycm5vICE9IEVOT0VOVCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgc3RhdCB0 cmlnZ2VyIGZpbGUgXCIlc1wiOiAlbSIsCi0JCQkJCQlUcmlnZ2VyRmlsZSkpKTsKKwkJCQkgZXJy bXNnKCJjb3VsZCBub3Qgc3RhdCBwcm9tb3RlIHNpZ25hbCBmaWxlIFwiJXNcIjogJW0iLAorCQkJ CQkJUHJvbW90ZVNpZ25hbEZpbGUpKSk7CiAKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYwppbmRleCA1YzZkZTQ5Li5kOTM0MGJmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKQEAgLTQxMCw3ICs0MTAsNyBA QCBFeGVjdXRlUmVjb3ZlcnlDb21tYW5kKGNvbnN0IGNoYXIgKmNvbW1hbmQsIGNvbnN0IGNoYXIg KmNvbW1hbmROYW1lLCBib29sIGZhaWxPbgogCiAJCWVyZXBvcnQoKHNpZ25hbGVkICYmIGZhaWxP blNpZ25hbCkgPyBGQVRBTCA6IFdBUk5JTkcsCiAJCS8qLS0tLS0tCi0JCSAgIHRyYW5zbGF0b3I6 IEZpcnN0ICVzIHJlcHJlc2VudHMgYSByZWNvdmVyeS5jb25mIHBhcmFtZXRlciBuYW1lIGxpa2UK KwkJICAgdHJhbnNsYXRvcjogRmlyc3QgJXMgcmVwcmVzZW50cyBhIHBvc3RncmVzcWwuY29uZiBw YXJhbWV0ZXIgbmFtZSBsaWtlCiAJCSAgInJlY292ZXJ5X2VuZF9jb21tYW5kIiwgdGhlIDJuZCBp cyB0aGUgdmFsdWUgb2YgdGhhdCBwYXJhbWV0ZXIsIHRoZQogCQkgIHRoaXJkIGFuIGFscmVhZHkg dHJhbnNsYXRlZCBlcnJvciBtZXNzYWdlLiAqLwogCQkJCShlcnJtc2coIiVzIFwiJXNcIjogJXMi LCBjb21tYW5kTmFtZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMKaW5kZXgg OTczMTc0Mi4uYWZkZDY4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZ2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMK QEAgLTMyMSwxMCArMzIxLDExIEBAIHBnX2NyZWF0ZV9yZXN0b3JlX3BvaW50KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAlyZXN0b3JlX25hbWVfc3RyID0gdGV4dF90b19jc3RyaW5nKHJlc3RvcmVfbmFt ZSk7CiAKLQlpZiAoc3RybGVuKHJlc3RvcmVfbmFtZV9zdHIpID49IE1BWEZOQU1FTEVOKQorCWlm IChzdHJsZW4ocmVzdG9yZV9uYW1lX3N0cikgPj0gTUFYUkVTVE9SRVBPSU5UTkFNRUxFTikKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKLQkJCQkgZXJybXNnKCJ2YWx1ZSB0b28gbG9uZyBmb3IgcmVzdG9yZSBwb2ludCAobWF4 aW11bSAlZCBjaGFyYWN0ZXJzKSIsIE1BWEZOQU1FTEVOIC0gMSkpKTsKKwkJCQkgZXJybXNnKCJ2 YWx1ZSB0b28gbG9uZyBmb3IgcmVzdG9yZSBwb2ludCAobWF4aW11bSAlZCBjaGFyYWN0ZXJzKSIs CisJCQkJCQlNQVhSRVNUT1JFUE9JTlROQU1FTEVOIC0gMSkpKTsKIAogCXJlc3RvcmVwb2ludCA9 IFhMb2dSZXN0b3JlUG9pbnQocmVzdG9yZV9uYW1lX3N0cik7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5z aW9uLmMKaW5kZXggMmU0NTM4MS4uNGNmMzE5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXh0ZW5zaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMK QEAgLTksOCArOSw4IEBACiAgKiBkZXBlbmRlbnQgb2JqZWN0cyBjYW4gYmUgYXNzb2NpYXRlZCB3 aXRoIGl0LiAgQW4gZXh0ZW5zaW9uIGlzIGNyZWF0ZWQgYnkKICAqIHBvcHVsYXRpbmcgdGhlIHBn X2V4dGVuc2lvbiBjYXRhbG9nIGZyb20gYSAiY29udHJvbCIgZmlsZS4KICAqIFRoZSBleHRlbnNp b24gY29udHJvbCBmaWxlIGlzIHBhcnNlZCB3aXRoIHRoZSBzYW1lIHBhcnNlciB3ZSB1c2UgZm9y Ci0gKiBwb3N0Z3Jlc3FsLmNvbmYgYW5kIHJlY292ZXJ5LmNvbmYuICBBbiBleHRlbnNpb24gYWxz byBoYXMgYW4gaW5zdGFsbGF0aW9uCi0gKiBzY3JpcHQgZmlsZSwgY29udGFpbmluZyBTUUwgY29t bWFuZHMgdG8gY3JlYXRlIHRoZSBleHRlbnNpb24ncyBvYmplY3RzLgorICogcG9zdGdyZXNxbC5j b25mLiAgQW4gZXh0ZW5zaW9uIGFsc28gaGFzIGFuIGluc3RhbGxhdGlvbiBzY3JpcHQgZmlsZSwK KyAqIGNvbnRhaW5pbmcgU1FMIGNvbW1hbmRzIHRvIGNyZWF0ZSB0aGUgZXh0ZW5zaW9uJ3Mgb2Jq ZWN0cy4KICAqCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL3N0YXJ0dXAuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv c3RhcnR1cC5jCmluZGV4IDM4MzAwNTIuLmZlYzhiNDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvc3RhcnR1cC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3RhcnR1 cC5jCkBAIC0xNTQsNiArMTU0LDcgQEAgSGFuZGxlU3RhcnR1cFByb2NJbnRlcnJ1cHRzKHZvaWQp CiAJewogCQlnb3RfU0lHSFVQID0gZmFsc2U7CiAJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdI VVApOworCQl2YWxpZGF0ZVJlY292ZXJ5UGFyYW1ldGVycygpOwogCX0KIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWMuYwppbmRleCBiMDVmYjIwLi42YTkxZGIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTMy LDYgKzMyLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUgImFjY2Vz cy90d29waGFzZS5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiYWNjZXNz L3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKQEAgLTgy LDYgKzgzLDcgQEAKICNpbmNsdWRlICJ1dGlscy9ndWNfdGFibGVzLmgiCiAjaW5jbHVkZSAidXRp bHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sb2NhbGUuaCIKKyNpbmNsdWRlICJ1 dGlscy9wZ19sc24uaCIKICNpbmNsdWRlICJ1dGlscy9wbGFuY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9wb3J0YWwuaCIKICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKQEAgLTE5Myw2ICsx OTUsMTUgQEAgc3RhdGljIGJvb2wgY2hlY2tfY2x1c3Rlcl9uYW1lKGNoYXIgKipuZXd2YWwsIHZv aWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7CiBzdGF0aWMgY29uc3QgY2hhciAqc2hvd191 bml4X3NvY2tldF9wZXJtaXNzaW9ucyh2b2lkKTsKIHN0YXRpYyBjb25zdCBjaGFyICpzaG93X2xv Z19maWxlX21vZGUodm9pZCk7CiBzdGF0aWMgY29uc3QgY2hhciAqc2hvd19kYXRhX2RpcmVjdG9y eV9tb2RlKHZvaWQpOworc3RhdGljIGJvb2wgY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0X3R5cGUoY2hh ciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKK3N0YXRpYyB2b2lk IGFzc2lnbl9yZWNvdmVyeV90YXJnZXRfdHlwZShjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4 dHJhKTsKK3N0YXRpYyBib29sIGNoZWNrX3JlY292ZXJ5X3RhcmdldF92YWx1ZShjaGFyICoqbmV3 dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOworc3RhdGljIHZvaWQgYXNzaWdu X3JlY292ZXJ5X3RhcmdldF92YWx1ZShjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsK K3N0YXRpYyBib29sIGNoZWNrX3JlY292ZXJ5X3RhcmdldF90aW1lbGluZShjaGFyICoqbmV3dmFs LCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOworc3RhdGljIHZvaWQgYXNzaWduX3Jl Y292ZXJ5X3RhcmdldF90aW1lbGluZShjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsK K3N0YXRpYyBib29sIGNoZWNrX3JlY292ZXJ5X3RhcmdldF9hY3Rpb24oY2hhciAqKm5ld3ZhbCwg dm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKK3N0YXRpYyB2b2lkIGFzc2lnbl9yZWNv dmVyeV90YXJnZXRfYWN0aW9uKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOworc3Rh dGljIGJvb2wgY2hlY2tfcHJpbWFyeV9zbG90X25hbWUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKIAogLyogUHJpdmF0ZSBmdW5jdGlvbnMgaW4gZ3VjLWZp bGUubCB0aGF0IG5lZWQgdG8gYmUgY2FsbGVkIGZyb20gZ3VjLmMgKi8KIHN0YXRpYyBDb25maWdW YXJpYWJsZSAqUHJvY2Vzc0NvbmZpZ0ZpbGVJbnRlcm5hbChHdWNDb250ZXh0IGNvbnRleHQsCkBA IC00NjgsNiArNDc5LDggQEAgY2hhcgkgICAqSWRlbnRGaWxlTmFtZTsKIGNoYXIJICAgKmV4dGVy bmFsX3BpZF9maWxlOwogCiBjaGFyCSAgICpwZ3N0YXRfdGVtcF9kaXJlY3Rvcnk7CitjaGFyCSAg ICpyZWNvdmVyeV90YXJnZXRfdGltZWxpbmVfc3RyaW5nOworY2hhcgkgICAqcmVjb3ZlcnlfdGFy Z2V0X2FjdGlvbl9zdHJpbmc7CiAKIGNoYXIJICAgKmFwcGxpY2F0aW9uX25hbWU7CiAKQEAgLTYw MSw2ICs2MTQsMTAgQEAgY29uc3QgY2hhciAqY29uc3QgY29uZmlnX2dyb3VwX25hbWVzW10gPQog CWdldHRleHRfbm9vcCgiV3JpdGUtQWhlYWQgTG9nIC8gQ2hlY2twb2ludHMiKSwKIAkvKiBXQUxf QVJDSElWSU5HICovCiAJZ2V0dGV4dF9ub29wKCJXcml0ZS1BaGVhZCBMb2cgLyBBcmNoaXZpbmci KSwKKwkvKiBXQUxfQVJDSElWRV9SRUNPVkVSWSAqLworCWdldHRleHRfbm9vcCgiV3JpdGUtQWhl YWQgTG9nIC8gQXJjaGl2ZSBSZWNvdmVyeSIpLAorCS8qIFdBTF9SRUNPVkVSWV9UQVJHRVQgKi8K KwlnZXR0ZXh0X25vb3AoIldyaXRlLUFoZWFkIExvZyAvIFJlY292ZXJ5IFRhcmdldCIpLAogCS8q IFJFUExJQ0FUSU9OICovCiAJZ2V0dGV4dF9ub29wKCJSZXBsaWNhdGlvbiIpLAogCS8qIFJFUExJ Q0FUSU9OX1NFTkRJTkcgKi8KQEAgLTE2MzIsNiArMTY0OSwxNiBAQCBzdGF0aWMgc3RydWN0IGNv bmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAl9LAogCiAJeworCQl7InJlY292ZXJ5 X3RhcmdldF9pbmNsdXNpdmUiLCBQR0NfUE9TVE1BU1RFUiwgV0FMX1JFQ09WRVJZX1RBUkdFVCwK KwkJCWdldHRleHRfbm9vcCgiU2V0cyB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSB0cmFu c2FjdGlvbiB3aXRoIHJlY292ZXJ5IHRhcmdldC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292 ZXJ5VGFyZ2V0SW5jbHVzaXZlLAorCQl0cnVlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKwor CXsKIAkJeyJob3Rfc3RhbmRieSIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZ LAogCQkJZ2V0dGV4dF9ub29wKCJBbGxvd3MgY29ubmVjdGlvbnMgYW5kIHF1ZXJpZXMgZHVyaW5n IHJlY292ZXJ5LiIpLAogCQkJTlVMTApAQCAtMTk1OSw4ICsxOTg2LDE5IEBAIHN0YXRpYyBzdHJ1 Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAl9LAogCiAJeworCQl7InJlY292 ZXJ5X21pbl9hcHBseV9kZWxheSIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZ LAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBtaW5pbXVtIGRlbGF5IHRvIGFwcGx5IGNoYW5n ZXMgZHVyaW5nIHJlY292ZXJ5LiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX01TCisJCX0sCisJ CSZyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXksCisJCTAsIDAsIElOVF9NQVgsCisJCU5VTEwsIE5V TEwsIE5VTEwKKwl9LAorCisJewogCQl7IndhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwiLCBQ R0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TVEFOREJZLAotCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gV0FMIHJlY2VpdmVyIHN0YXR1cyByZXBvcnRzIHRv IHRoZSBwcmltYXJ5LiIpLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBtYXhpbXVtIGludGVy dmFsIGJldHdlZW4gV0FMIHJlY2VpdmVyIHN0YXR1cyByZXBvcnRzIHRvIHRoZSBzZW5kaW5nIHNl cnZlci4iKSwKIAkJCU5VTEwsCiAJCQlHVUNfVU5JVF9TCiAJCX0sCkBAIC0xOTcxLDcgKzIwMDks NyBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJbnRbXSA9CiAKIAl7 CiAJCXsid2FsX3JlY2VpdmVyX3RpbWVvdXQiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TVEFO REJZLAotCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBtYXhpbXVtIHdhaXQgdGltZSB0byByZWNl aXZlIGRhdGEgZnJvbSB0aGUgcHJpbWFyeS4iKSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUg bWF4aW11bSB3YWl0IHRpbWUgdG8gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHNlbmRpbmcgc2VydmVy LiIpLAogCQkJTlVMTCwKIAkJCUdVQ19VTklUX01TCiAJCX0sCkBAIC0zMjc3LDYgKzMzMTUsMTA3 IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0K IAl9LAogCiAJeworCQl7InJlc3RvcmVfY29tbWFuZCIsIFBHQ19QT1NUTUFTVEVSLCBXQUxfQVJD SElWRV9SRUNPVkVSWSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgc2hlbGwgY29tbWFuZCB0 aGF0IHdpbGwgcmV0cmlldmUgYW4gYXJjaGl2ZWQgV0FMIGZpbGUuIiksCisJCQlOVUxMCisJCX0s CisJCSZyZWNvdmVyeVJlc3RvcmVDb21tYW5kLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAor CX0sCisKKwl7CisJCXsiYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQiLCBQR0NfUE9TVE1BU1RFUiwg V0FMX0FSQ0hJVkVfUkVDT1ZFUlksCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNoZWxsIGNv bW1hbmQgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGF0IGV2ZXJ5IHJlc3RhcnRwb2ludC4iKSwKKwkJ CU5VTEwKKwkJfSwKKwkJJmFyY2hpdmVDbGVhbnVwQ29tbWFuZCwKKwkJIiIsCisJCU5VTEwsIE5V TEwsIE5VTEwKKwl9LAorCisJeworCQl7InJlY292ZXJ5X2VuZF9jb21tYW5kIiwgUEdDX1BPU1RN QVNURVIsIFdBTF9BUkNISVZFX1JFQ09WRVJZLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBz aGVsbCBjb21tYW5kIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBvbmNlIG9ubHkgYXQgdGhlIGVuZCBv ZiByZWNvdmVyeS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5RW5kQ29tbWFuZCwKKwkJ IiIsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJeworCQl7InJlY292ZXJ5X3RhcmdldF90 eXBlIiwgUEdDX1BPU1RNQVNURVIsIFdBTF9SRUNPVkVSWV9UQVJHRVQsCisJCQlnZXR0ZXh0X25v b3AoIlNldHMgdGhlIHR5cGUgb2YgZGVzaXJlZCByZWNvdmVyeSB0YXJnZXQuIiksCisJCQlOVUxM CisJCX0sCisJCSZyZWNvdmVyeVRhcmdldFR5cGVTdHJpbmcsCisJCSIiLAorCQljaGVja19yZWNv dmVyeV90YXJnZXRfdHlwZSwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF90eXBlLCBOVUxMCisJfSwK KworCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfdmFsdWUiLCBQR0NfUE9TVE1BU1RFUiwgV0FMX1JF Q09WRVJZX1RBUkdFVCwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHJl Y292ZXJ5IHRhcmVndCB1cCB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2NlZWQuIiksCisJCQlO VUxMCisJCX0sCisJCSZyZWNvdmVyeVRhcmdldFZhbHVlLAorCQkiIiwKKwkJY2hlY2tfcmVjb3Zl cnlfdGFyZ2V0X3ZhbHVlLCBhc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlLCBOVUxMCisJfSwK KworCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUiLCBQR0NfUE9TVE1BU1RFUiwgV0FM X1JFQ09WRVJZX1RBUkdFVCwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyByZWNvdmVyaW5nIGludG8g YSBwYXJ0aWN1bGFyIHRpbWVsaW5lLiIpLAorCQkJTlVMTAorCQl9LAorCQkmcmVjb3ZlcnlfdGFy Z2V0X3RpbWVsaW5lX3N0cmluZywKKwkJIiIsCisJCWNoZWNrX3JlY292ZXJ5X3RhcmdldF90aW1l bGluZSwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF90aW1lbGluZSwgTlVMTAorCX0sCisKKwl7CisJ CXsicmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiIsIFBHQ19QT1NUTUFTVEVSLCBXQUxfUkVDT1ZFUllf VEFSR0VULAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSB1cG9u IHJlYWNoaW5nIHRoZSByZWNvdmVyeSB0YXJnZXQuIiksCisJCQlOVUxMCisJCX0sCisJCSZyZWNv dmVyeV90YXJnZXRfYWN0aW9uX3N0cmluZywKKwkJIiIsCisJCWNoZWNrX3JlY292ZXJ5X3Rhcmdl dF9hY3Rpb24sIGFzc2lnbl9yZWNvdmVyeV90YXJnZXRfYWN0aW9uLCBOVUxMCisJfSwKKworCXsK KwkJeyJwcm9tb3RlX3NpZ25hbF9maWxlIiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NU QU5EQlksCisJCQlnZXR0ZXh0X25vb3AoIlNwZWNpZmllcyBhIGZpbGVuYW1lIHdob3NlIHByZXNl bmNlIGVuZHMgcmVjb3ZlcnkgaW4gdGhlIHN0YW5kYnkiKSwKKwkJCU5VTEwKKwkJfSwKKwkJJlBy b21vdGVTaWduYWxGaWxlLAorCQlOVUxMLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKworCXsK KwkJeyJwcmltYXJ5X2Nvbm5pbmZvIiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NUQU5E QlksCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIHRvIGJlIHVz ZWQgdG8gY29ubmVjdCB3aXRoIHRoZSBzZW5kaW5nIHNlcnZlci4iKSwKKwkJCU5VTEwsCisJCQlH VUNfU1VQRVJVU0VSX09OTFkKKwkJfSwKKwkJJlByaW1hcnlDb25uSW5mbywKKwkJTlVMTCwKKwkJ TlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsicHJpbWFyeV9zbG90X25hbWUiLCBQR0Nf UE9TVE1BU1RFUiwgUkVQTElDQVRJT05fU1RBTkRCWSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0 aGUgbmFtZSBvZiB0aGUgcmVwbGljYXRpb24gc2xvdCB0byB1c2Ugb24gdGhlIHNlbmRpbmcgc2Vy dmVyLiIpLAorCQkJTlVMTAorCQl9LAorCQkmUHJpbWFyeVNsb3ROYW1lLAorCQkiIiwKKwkJY2hl Y2tfcHJpbWFyeV9zbG90X25hbWUsIE5VTEwsIE5VTEwKKwl9LAorCisJewogCQl7ImNsaWVudF9l bmNvZGluZyIsIFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9MT0NBTEUsCiAJCQlnZXR0ZXh0X25v b3AoIlNldHMgdGhlIGNsaWVudCdzIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcuIiksCiAJCQlOVUxM LApAQCAtMTA3ODQsNCArMTA5MjMsMzAxIEBAIHNob3dfZGF0YV9kaXJlY3RvcnlfbW9kZSh2b2lk KQogCXJldHVybiBidWY7CiB9CiAKK3N0YXRpYyBib29sCitjaGVja19yZWNvdmVyeV90YXJnZXRf dHlwZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCit7CisJ UmVjb3ZlcnlUYXJnZXRUeXBlICpteWV4dHJhOworCVJlY292ZXJ5VGFyZ2V0VHlwZSBydCA9IFJF Q09WRVJZX1RBUkdFVF9VTlNFVDsKKworCWlmIChzdHJjbXAoKm5ld3ZhbCwgInhpZCIpID09IDAp CisJCXJ0ID0gUkVDT1ZFUllfVEFSR0VUX1hJRDsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwg InRpbWVzdGFtcCIpID09IDApCisJCXJ0ID0gUkVDT1ZFUllfVEFSR0VUX1RJTUU7CisJZWxzZSBp ZiAoc3RyY21wKCpuZXd2YWwsICJuYW1lIikgPT0gMCkKKwkJcnQgPSBSRUNPVkVSWV9UQVJHRVRf TkFNRTsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwgImxzbiIpID09IDApCisJCXJ0ID0gUkVD T1ZFUllfVEFSR0VUX0xTTjsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwgImltbWVkaWF0ZSIp ID09IDApCisJCXJ0ID0gUkVDT1ZFUllfVEFSR0VUX0lNTUVESUFURTsKKwllbHNlIGlmIChzdHJj bXAoKm5ld3ZhbCwgIiIpICE9IDApCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJyZWNvdmVy eV90YXJnZXRfdHlwZSBpcyBub3QgdmFsaWQ6IFwiJXNcIiIsICpuZXd2YWwpOworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJbXlleHRyYSA9IChSZWNvdmVyeVRhcmdldFR5cGUgKikgZ3VjX21hbGxv YyhFUlJPUiwgc2l6ZW9mKFJlY292ZXJ5VGFyZ2V0VHlwZSkpOworCSpteWV4dHJhID0gcnQ7CisJ KmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg dm9pZAorYXNzaWduX3JlY292ZXJ5X3RhcmdldF90eXBlKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9p ZCAqZXh0cmEpCit7CisJcmVjb3ZlcnlUYXJnZXQgPSAqKChSZWNvdmVyeVRhcmdldFR5cGUgKikg ZXh0cmEpOworfQorCitzdGF0aWMgYm9vbAorY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlKGNo YXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKK3sKKwlib29sCQl2 YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBWYWx1ZSBtdXN0IGJlIHByZXNlbnQgaW4gc29tZSBj YXNlcywgbXVzdCBub3QgYmUgcHJlc2VudCBpbiBvdGhlcnMKKwkgKi8KKwlpZiAoc3RyY21wKCpu ZXd2YWwsICIiKSA9PSAwKQorCXsKKwkJaWYgKHJlY292ZXJ5VGFyZ2V0ID09IFJFQ09WRVJZX1RB UkdFVF9VTlNFVCB8fAorCQkJcmVjb3ZlcnlUYXJnZXQgPT0gUkVDT1ZFUllfVEFSR0VUX0lNTUVE SUFURSkKKwkJCXZhbGlkID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJaWYgKHJlY292ZXJ5VGFy Z2V0ID09IFJFQ09WRVJZX1RBUkdFVF9VTlNFVCB8fAorCQkJcmVjb3ZlcnlUYXJnZXQgPT0gUkVD T1ZFUllfVEFSR0VUX0lNTUVESUFURSkKKwkJCXZhbGlkID0gZmFsc2U7CisJCWVsc2UKKwkJCXZh bGlkID0gdHJ1ZTsKKwl9CisKKwlpZiAoIXZhbGlkKQorCXsKKwkJR1VDX2NoZWNrX2VycmRldGFp bCgicmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlIGlzIG5vdCB2YWxpZDogXCIlc1wiIiwgKm5ld3ZhbCk7 CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAqIFdlIGFzc3VtZSB0aGF0IHJlY292ZXJ5 X3RhcmdldF90eXBlIGhhcyBhbHJlYWR5IGJlZW4gcGFyc2VkIHNpbmNlIGl0CisJICogc29ydHMg YWxwaGFiZXRpY2FsbHkgYmVmb3JlIHJlY292ZXJ5X3RhcmdldF92YWx1ZS4KKwkgKi8KKwlzd2l0 Y2ggKHJlY292ZXJ5VGFyZ2V0KQorCXsKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ6CisJ CWNhc2UgUkVDT1ZFUllfVEFSR0VUX0lNTUVESUFURToKKwkJCS8qIE5vIHZhbHVlLCBzbyBkbyBu b3RoaW5nICovCisJCQlicmVhazsKKworCQljYXNlIFJFQ09WRVJZX1RBUkdFVF9YSUQ6CisJCQl7 CisJCQkJVHJhbnNhY3Rpb25JZCB4aWQ7CisJCQkJVHJhbnNhY3Rpb25JZCAqbXlleHRyYTsKKwor CQkJCWVycm5vID0gMDsKKwkJCQl4aWQgPSAoVHJhbnNhY3Rpb25JZCkgc3RydG91bCgqbmV3dmFs LCBOVUxMLCAwKTsKKwkJCQlpZiAoZXJybm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVSQU5HRSkK KwkJCQl7CisJCQkJCUdVQ19jaGVja19lcnJkZXRhaWwoInJlY292ZXJ5X3RhcmdldF92YWx1ZSBp cyBub3QgYSB2YWxpZCBudW1iZXI6IFwiJXNcIiIsCisJCQkJCQkJCQkJKm5ld3ZhbCk7CisJCQkJ CXJldHVybiBmYWxzZTsKKwkJCQl9CisKKwkJCQlteWV4dHJhID0gKFRyYW5zYWN0aW9uSWQgKikg Z3VjX21hbGxvYyhFUlJPUiwgc2l6ZW9mKFRyYW5zYWN0aW9uSWQpKTsKKwkJCQkqbXlleHRyYSA9 IHhpZDsKKwkJCQkqZXh0cmEgPSAodm9pZCAqKSBteWV4dHJhOworCQkJfQorCQkJYnJlYWs7CisK KwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfVElNRToKKwkJCXsKKwkJCQlUaW1lc3RhbXBUeiB0aW1l OworCQkJCVRpbWVzdGFtcFR6ICpteWV4dHJhOworCQkJCU1lbW9yeUNvbnRleHQgb2xkY29udGV4 dCA9IEN1cnJlbnRNZW1vcnlDb250ZXh0OworCisJCQkJUEdfVFJZKCk7CisJCQkJeworCQkJCQl0 aW1lID0gRGF0dW1HZXRUaW1lc3RhbXBUeihEaXJlY3RGdW5jdGlvbkNhbGwzKHRpbWVzdGFtcHR6 X2luLAorCQkJCQkJCQkJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bSgqbmV3dmFsKSwKKwkJCQkJ CQkJCQkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKEludmFsaWRPaWQpLAorCQkJCQkJCQkJCQkJ CQkJCSAgIEludDMyR2V0RGF0dW0oLTEpKSk7CisJCQkJfQorCQkJCVBHX0NBVENIKCk7CisJCQkJ eworCQkJCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkJCQkvKiBTYXZlIGVycm9yIGluZm8gKi8K KwkJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCQkJCQllZGF0YSA9IENv cHlFcnJvckRhdGEoKTsKKwkJCQkJRmx1c2hFcnJvclN0YXRlKCk7CisKKwkJCQkJLyogUGFzcyB0 aGUgZXJyb3IgbWVzc2FnZSAqLworCQkJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCIlcyIsIGVkYXRh LT5tZXNzYWdlKTsKKwkJCQkJRnJlZUVycm9yRGF0YShlZGF0YSk7CisJCQkJCXJldHVybiBmYWxz ZTsKKwkJCQl9CisJCQkJUEdfRU5EX1RSWSgpOworCisJCQkJbXlleHRyYSA9IChUaW1lc3RhbXBU eiAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoVGltZXN0YW1wVHopKTsKKwkJCQkqbXlleHRy YSA9IHRpbWU7CisJCQkJKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKwkJCX0KKwkJCWJyZWFr OworCisJCWNhc2UgUkVDT1ZFUllfVEFSR0VUX05BTUU6CisJCQkvKiBVc2UgdGhlIHZhbHVlIG9m IG5ld3ZhbCBkaXJlY3RseSAqLworCQkJaWYgKHN0cmxlbigqbmV3dmFsKSA+IE1BWFJFU1RPUkVQ T0lOVE5BTUVMRU4pCisJCQl7CisJCQkJR1VDX2NoZWNrX2VycmRldGFpbCgicmVjb3ZlcnlfdGFy Z2V0X3ZhbHVlIGlzIHRvbyBsb25nIChtYXhpbXVtICVkIGNoYXJhY3RlcnMpIiwKKwkJCQkJCQkJ CU1BWFJFU1RPUkVQT0lOVE5BTUVMRU4pOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCWJy ZWFrOworCisJCWNhc2UgUkVDT1ZFUllfVEFSR0VUX0xTTjoKKwkJCXsKKwkJCQlYTG9nUmVjUHRy CWxzbjsKKwkJCQlYTG9nUmVjUHRyICpteWV4dHJhOworCQkJCU1lbW9yeUNvbnRleHQgb2xkY29u dGV4dCA9IEN1cnJlbnRNZW1vcnlDb250ZXh0OworCisJCQkJLyoKKwkJCQkgKiBDb252ZXJ0IHRo ZSBMU04gc3RyaW5nIGdpdmVuIGJ5IHRoZSB1c2VyIHRvIFhMb2dSZWNQdHIKKwkJCQkgKiBmb3Jt LgorCQkJCSAqLworCQkJCVBHX1RSWSgpOworCQkJCXsKKwkJCQkJbHNuID0KKwkJCQkJCURhdHVt R2V0TFNOKERpcmVjdEZ1bmN0aW9uQ2FsbDMocGdfbHNuX2luLAorCQkJCQkJCQkJCQkJCQlDU3Ry aW5nR2V0RGF0dW0oKm5ld3ZhbCksCisJCQkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oSW52 YWxpZE9pZCksCisJCQkJCQkJCQkJCQkJCUludDMyR2V0RGF0dW0oLTEpKSk7CisJCQkJfQorCQkJ CVBHX0NBVENIKCk7CisJCQkJeworCQkJCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkJCQkvKiBT YXZlIGVycm9yIGluZm8gKi8KKwkJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQp OworCQkJCQllZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKKwkJCQkJRmx1c2hFcnJvclN0YXRlKCk7 CisKKwkJCQkJLyogUGFzcyB0aGUgZXJyb3IgbWVzc2FnZSAqLworCQkJCQlHVUNfY2hlY2tfZXJy ZGV0YWlsKCIlcyIsIGVkYXRhLT5tZXNzYWdlKTsKKwkJCQkJRnJlZUVycm9yRGF0YShlZGF0YSk7 CisJCQkJCXJldHVybiBmYWxzZTsKKwkJCQl9CisJCQkJUEdfRU5EX1RSWSgpOworCisJCQkJbXll eHRyYSA9IChYTG9nUmVjUHRyICopIGd1Y19tYWxsb2MoRVJST1IsIHNpemVvZihYTG9nUmVjUHRy KSk7CisJCQkJKm15ZXh0cmEgPSBsc247CisJCQkJKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsK KwkJCX0KKwkJCWJyZWFrOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZAor YXNzaWduX3JlY292ZXJ5X3RhcmdldF92YWx1ZShjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4 dHJhKQoreworCXN3aXRjaCAocmVjb3ZlcnlUYXJnZXQpCisJeworCQljYXNlIFJFQ09WRVJZX1RB UkdFVF9VTlNFVDoKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFOgorCQkJYnJlYWs7 CisKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfWElEOgorCQkJcmVjb3ZlcnlUYXJnZXRYaWQgPSAq KChUcmFuc2FjdGlvbklkICopIGV4dHJhKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUkVDT1ZFUllf VEFSR0VUX1RJTUU6CisJCQlyZWNvdmVyeVRhcmdldFRpbWUgPSAqKChUaW1lc3RhbXBUeiAqKSBl eHRyYSk7CisJCQlicmVhazsKKworCQljYXNlIFJFQ09WRVJZX1RBUkdFVF9OQU1FOgorCQkJaWYg KG5ld3ZhbCAmJiAqbmV3dmFsKQorCQkJCXJlY292ZXJ5VGFyZ2V0TmFtZSA9IChjaGFyICopIG5l d3ZhbDsKKwkJCWJyZWFrOworCisJCWNhc2UgUkVDT1ZFUllfVEFSR0VUX0xTTjoKKwkJCXJlY292 ZXJ5VGFyZ2V0TFNOID0gKigoWExvZ1JlY1B0ciAqKSBleHRyYSk7CisJCQlicmVhazsKKwl9Cit9 CisKK3N0YXRpYyBib29sCitjaGVja19yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY2hhciAqKm5l d3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQoreworCVJlY292ZXJ5VGFyZ2V0 VGltZUxpbmVHb2FsIHJ0dGcgPSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfQ09OVFJPTEZJTEU7 CisJUmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgKm15ZXh0cmE7CisKKwlpZiAoc3RyY21wKCpu ZXd2YWwsICJsYXRlc3QiKSA9PSAwKQorCQlydHRnID0gUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5F X0xBVEVTVDsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwgImNvbnRyb2xmaWxlIikgPT0gMCB8 fCBzdHJjbXAoKm5ld3ZhbCwgIiIpID09IDApCisJCXJ0dGcgPSBSRUNPVkVSWV9UQVJHRVRfVElN RUxJTkVfQ09OVFJPTEZJTEU7CisJZWxzZQorCXsKKwkJZXJybm8gPSAwOworCQkvKiBvbmx5IHZh bGlkYXRlIG51bWJlciBoZXJlICovCisJCSh2b2lkKSBzdHJ0b3VsKCpuZXd2YWwsIE5VTEwsIDAp OworCQlpZiAoZXJybm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVSQU5HRSkKKwkJeworCQkJR1VD X2NoZWNrX2VycmRldGFpbCgicmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIGlzIG5vdCBhIHZhbGlk IG51bWJlcjogXCIlc1wiIiwKKwkJCQkJCQkJKm5ld3ZhbCk7CisJCQlyZXR1cm4gZmFsc2U7CisJ CX0KKwkJcnR0ZyA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDOworCX0KKworCW15 ZXh0cmEgPSAoVGltZUxpbmVJRCAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoVGltZUxpbmVJ RCkpOworCSpteWV4dHJhID0gcnR0ZzsKKwkqZXh0cmEgPSAodm9pZCAqKSBteWV4dHJhOworCisJ cmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCithc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3Rp bWVsaW5lKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpCit7CisJcmVjb3ZlcnlUYXJn ZXRUaW1lTGluZUdvYWwgPSAqKChUaW1lTGluZUlEICopIGV4dHJhKTsKKwlpZiAocmVjb3ZlcnlU YXJnZXRUaW1lTGluZUdvYWwgPT0gUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX05VTUVSSUMpCisJ CXJlY292ZXJ5VGFyZ2V0VExJUmVxdWVzdGVkID0gKFRpbWVMaW5lSUQpIHN0cnRvdWwobmV3dmFs LCBOVUxMLCAwKTsKKwllbHNlCisJCXJlY292ZXJ5VGFyZ2V0VExJUmVxdWVzdGVkID0gMDsKK30K Kworc3RhdGljIGJvb2wKK2NoZWNrX3JlY292ZXJ5X3RhcmdldF9hY3Rpb24oY2hhciAqKm5ld3Zh bCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQoreworCVJlY292ZXJ5VGFyZ2V0QWN0 aW9uIHJ0YSA9IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFVU0U7CisJUmVjb3ZlcnlUYXJnZXRB Y3Rpb24gKm15ZXh0cmE7CisKKwlpZiAoc3RyY21wKCpuZXd2YWwsICJwYXVzZSIpID09IDApCisJ CXJ0YSA9IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFVU0U7CisJZWxzZSBpZiAoc3RyY21wKCpu ZXd2YWwsICJwcm9tb3RlIikgPT0gMCkKKwkJcnRhID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9Q Uk9NT1RFOworCWVsc2UgaWYgKHN0cmNtcCgqbmV3dmFsLCAic2h1dGRvd24iKSA9PSAwKQorCQly dGEgPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1NIVVRET1dOOworCWVsc2UgaWYgKHN0cmNtcCgq bmV3dmFsLCAiIikgIT0gMCkKKwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoInJlY292ZXJ5X3Rh cmdldF9hY3Rpb24gaXMgbm90IHZhbGlkOiBcIiVzXCIiLCAqbmV3dmFsKTsKKwkJcmV0dXJuIGZh bHNlOworCX0KKworCW15ZXh0cmEgPSAoUmVjb3ZlcnlUYXJnZXRBY3Rpb24gKikgZ3VjX21hbGxv YyhFUlJPUiwgc2l6ZW9mKFJlY292ZXJ5VGFyZ2V0QWN0aW9uKSk7CisJKm15ZXh0cmEgPSBydGE7 CisJKmV4dHJhID0gKHZvaWQgKikgbXlleHRyYTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0 aWMgdm9pZAorYXNzaWduX3JlY292ZXJ5X3RhcmdldF9hY3Rpb24oY29uc3QgY2hhciAqbmV3dmFs LCB2b2lkICpleHRyYSkKK3sKKwlyZWNvdmVyeVRhcmdldEFjdGlvbiA9ICooKFJlY292ZXJ5VGFy Z2V0QWN0aW9uICopIGV4dHJhKTsKK30KKworc3RhdGljIGJvb2wKK2NoZWNrX3ByaW1hcnlfc2xv dF9uYW1lKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKK3sK KwlpZiAoc3RyY21wKCpuZXd2YWwsICIiKSAhPSAwICYmCisJCSFSZXBsaWNhdGlvblNsb3RWYWxp ZGF0ZU5hbWUoKm5ld3ZhbCwgV0FSTklORykpCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJw cmltYXJ5X3Nsb3RfbmFtZSBpcyBub3QgdmFsaWQ6IFwiJXNcIiIsICpuZXd2YWwpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKICNpbmNsdWRlICJndWMtZmlsZS5j IgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4 IDllMzliYWYuLmI3MzE3ODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKQEAgLTIyNyw2ICsyMjcsMjggQEAKICNhcmNoaXZlX3RpbWVvdXQgPSAw CQkjIGZvcmNlIGEgbG9nZmlsZSBzZWdtZW50IHN3aXRjaCBhZnRlciB0aGlzCiAJCQkJIyBudW1i ZXIgb2Ygc2Vjb25kczsgMCBkaXNhYmxlcwogCisjIC0gQXJjaGl2ZSBSZWNvdmVyeSAtCisjIFRo ZXNlIGFyZSBvbmx5IHVzZWQgaW4gcmVjb3ZlcnkgbW9kZQorCisjcmVzdG9yZV9jb21tYW5kID0g JycJCSMgY29tbWFuZCB0byB1c2UgdG8gcmVzdG9yZSBhbiBhcmNoaXZlZCBsb2dmaWxlIHNlZ21l bnQKKwkJCQkjIHBsYWNlaG9sZGVyczogJXAgPSBwYXRoIG9mIGZpbGUgdG8gcmVzdG9yZQorCQkJ CSMgICAgICAgICAgICAgICAlZiA9IGZpbGUgbmFtZSBvbmx5CisJCQkJIyBlLmcuICdjcCAvbW50 L3NlcnZlci9hcmNoaXZlZGlyLyVmICVwJworI2FyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJycJ IyBjb21tYW5kIHRvIGV4ZWN1dGUgYXQgZXZlcnkgcmVzdGFydHBvaW50CisjcmVjb3ZlcnlfZW5k X2NvbW1hbmQgPSAnJwkjIGNvbW1hbmQgdG8gZXhlY3V0ZSBhdCBjb21wbGV0aW9uIG9mIHJlY292 ZXJ5CisKKyMgLSBSZWNvdmVyeSBUYXJnZXQgLQorCisjIFNldCB0aGVzZSBvbmx5IHdoZW4gcGVy Zm9ybWluZyBhIHRhcmdldGVkIHJlY292ZXJ5CisKKyNyZWNvdmVyeV90YXJnZXRfdHlwZT0nJwkj ICd4aWQnLCAndGltZScsICduYW1lJywgJ2xzbicsCisJCQkJIyBvciAnaW1tZWRpYXRlJworI3Jl Y292ZXJ5X3RhcmdldF92YWx1ZT0nJwkjIHZhbHVlIGludGVycHJldGVkIGFjY29yZGluZyB0byB0 eXBlCisjcmVjb3ZlcnlfdGFyZ2V0X2luY2x1c2l2ZSA9IG9uCisjcmVjb3ZlcnlfdGFyZ2V0X3Rp bWVsaW5lID0gJycJIyB1bnNldCBtZWFucyByZWFkIGZyb20gY29udHJvbGZpbGUgKGRlZmF1bHQp LAorCQkJCSMgb3Igc2V0IHRvICdsYXRlc3QnIG9yIHRpbWVsaW5lIElECisjcmVjb3ZlcnlfdGFy Z2V0X2FjdGlvbiA9ICcnIAkjICdwYXVzZScsICdwcm9tb3RlJywgJ3NodXRkb3duJworCiAKICMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUkVQTElDQVRJT04KQEAgLTI2MCw2ICsyODIsOSBAQAog CiAjIFRoZXNlIHNldHRpbmdzIGFyZSBpZ25vcmVkIG9uIGEgbWFzdGVyIHNlcnZlci4KIAorI3By aW1hcnlfY29ubmluZm8gPSAnJwkJCSMgY29ubmVjdGlvbiBzdHJpbmcgb24gc2VuZGluZyBzZXJ2 ZXIKKyNwcmltYXJ5X3Nsb3RfbmFtZSA9ICcnCQkJIyBjb25uZWN0aW9uIHNsb3Qgb24gc2VuZGlu ZyBzZXJ2ZXIKKyNwcm9tb3RlX3NpZ25hbF9maWxlID0gJycJCSMgZmlsZW5hbWUgd2hvc2UgcHJl c2VuY2UgZW5kcyByZWNvdmVyeQogI2hvdF9zdGFuZGJ5ID0gb24JCQkjICJvZmYiIGRpc2FsbG93 cyBxdWVyaWVzIGR1cmluZyByZWNvdmVyeQogCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFy dCkKICNtYXhfc3RhbmRieV9hcmNoaXZlX2RlbGF5ID0gMzBzCSMgbWF4IGRlbGF5IGJlZm9yZSBj YW5jZWxpbmcgcXVlcmllcwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hcmNoaXZlY2xlYW51cC9w Z19hcmNoaXZlY2xlYW51cC5jIGIvc3JjL2Jpbi9wZ19hcmNoaXZlY2xlYW51cC9wZ19hcmNoaXZl Y2xlYW51cC5jCmluZGV4IGQwMTdmNTcuLjg2NDgxMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf YXJjaGl2ZWNsZWFudXAvcGdfYXJjaGl2ZWNsZWFudXAuYworKysgYi9zcmMvYmluL3BnX2FyY2hp dmVjbGVhbnVwL3BnX2FyY2hpdmVjbGVhbnVwLmMKQEAgLTI2OSw3ICsyNjksNyBAQCB1c2FnZSh2 b2lkKQogCXByaW50ZihfKCIgIC14IEVYVCAgICAgICAgIGNsZWFuIHVwIGZpbGVzIGlmIHRoZXkg aGF2ZSB0aGlzIGV4dGVuc2lvblxuIikpOwogCXByaW50ZihfKCIgIC0/LCAtLWhlbHAgICAgIHNo b3cgdGhpcyBoZWxwLCB0aGVuIGV4aXRcbiIpKTsKIAlwcmludGYoXygiXG4iCi0JCQkgIkZvciB1 c2UgYXMgYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgaW4gcmVjb3ZlcnkuY29uZiB3aGVuIHN0YW5k YnlfbW9kZSA9IG9uOlxuIgorCQkJICJGb3IgdXNlIGFzIGFyY2hpdmVfY2xlYW51cF9jb21tYW5k IGluIHJlY292ZXJ5OlxuIgogCQkJICIgIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJ3BnX2Fy Y2hpdmVjbGVhbnVwIFtPUFRJT05dLi4uIEFSQ0hJVkVMT0NBVElPTiAlJXInXG4iCiAJCQkgImUu Zy5cbiIKIAkJCSAiICBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCA9ICdwZ19hcmNoaXZlY2xlYW51 cCAvbW50L3NlcnZlci9hcmNoaXZlcmRpciAlJXInXG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Bn X2Jhc2ViYWNrdXAuYwppbmRleCBlZjRjZmM0Li41OGQ0MTM0IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19iYXNlYmFja3VwLmMKQEAgLTEzMSw5ICsxMzEsMTIgQEAgc3RhdGljIGludAloYXNfeGxv Z2VuZHB0ciA9IDA7CiBzdGF0aWMgdm9sYXRpbGUgTE9ORyBoYXNfeGxvZ2VuZHB0ciA9IDA7CiAj ZW5kaWYKIAotLyogQ29udGVudHMgb2YgcmVjb3ZlcnkuY29uZiB0byBiZSBnZW5lcmF0ZWQgKi8K Ky8qIENvbnRlbnRzIG9mIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBiZSBnZW5lcmF0ZWQgKi8KIHN0 YXRpYyBQUUV4cEJ1ZmZlciByZWNvdmVyeWNvbmZjb250ZW50cyA9IE5VTEw7CiAKKyNkZWZpbmUg UEdfQVVUT0NPTkZfRklMRU5BTUUJCSJwb3N0Z3Jlc3FsLmF1dG8uY29uZiIKKyNkZWZpbmUgU1RB TkRCWV9TSUdOQUxfRklMRSAJCSJzdGFuZGJ5LnNpZ25hbCIKKwogLyogRnVuY3Rpb24gaGVhZGVy cyAqLwogc3RhdGljIHZvaWQgdXNhZ2Uodm9pZCk7CiBzdGF0aWMgdm9pZCBkaXNjb25uZWN0X2Fu ZF9leGl0KGludCBjb2RlKSBwZ19hdHRyaWJ1dGVfbm9yZXR1cm4oKTsKQEAgLTM0Niw3ICszNDks OCBAQCB1c2FnZSh2b2lkKQogCXByaW50ZihfKCIgIC1yLCAtLW1heC1yYXRlPVJBVEUgICAgbWF4 aW11bSB0cmFuc2ZlciByYXRlIHRvIHRyYW5zZmVyIGRhdGEgZGlyZWN0b3J5XG4iCiAJCQkgIiAg ICAgICAgICAgICAgICAgICAgICAgICAoaW4ga0Ivcywgb3IgdXNlIHN1ZmZpeCBcImtcIiBvciBc Ik1cIilcbiIpKTsKIAlwcmludGYoXygiICAtUiwgLS13cml0ZS1yZWNvdmVyeS1jb25mXG4iCi0J CQkgIiAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSByZWNvdmVyeS5jb25mIGZvciByZXBs aWNhdGlvblxuIikpOworCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHJlcGxp Y2F0aW9uIGNvbmZpZyB0byAiIFBHX0FVVE9DT05GX0ZJTEVOQU1FICJcbiIKKwkJCSAiICAgICAg ICAgICAgICAgICAgICAgICAgIGFuZCBwbGFjZSAiIFNUQU5EQllfU0lHTkFMX0ZJTEUgIiBmaWxl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLVQsIC0tdGFibGVzcGFjZS1tYXBwaW5nPU9MRERJUj1ORVdE SVJcbiIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIHJlbG9jYXRlIHRhYmxlc3BhY2Ug aW4gT0xERElSIHRvIE5FV0RJUlxuIikpOwogCXByaW50ZihfKCIgICAgICAtLXdhbGRpcj1XQUxE SVIgICAgbG9jYXRpb24gZm9yIHRoZSB3cml0ZS1haGVhZCBsb2cgZGlyZWN0b3J5XG4iKSk7CkBA IC05NzQsNiArOTc4LDkgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAq cmVzLCBpbnQgcm93bnVtKQogCWJvb2wJCWJhc2V0YWJsZXNwYWNlID0gUFFnZXRpc251bGwocmVz LCByb3dudW0sIDApOwogCWJvb2wJCWluX3RhcmhkciA9IHRydWU7CiAJYm9vbAkJc2tpcF9maWxl ID0gZmFsc2U7CisJYm9vbAkJaXNfcG9zdGdyZXNxbF9hdXRvX2NvbmYgPSBmYWxzZTsKKwlib29s CQlmb3VuZF9wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IGZhbHNlOworCWludAkJCWZpbGVfcGFkZGlu Z19sZW4gPSAwOwogCXNpemVfdAkJdGFyaGRyc3ogPSAwOwogCXBnb2ZmX3QJCWZpbGVzeiA9IDA7 CiAKQEAgLTExMTMsOCArMTEyMCw4IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwgUEdy ZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJewogCQkJLyoKIAkJCSAqIEVuZCBvZiBjaHVuay4g SWYgcmVxdWVzdGVkLCBhbmQgdGhpcyBpcyB0aGUgYmFzZSB0YWJsZXNwYWNlLAotCQkJICogd3Jp dGUgcmVjb3ZlcnkuY29uZiBpbnRvIHRoZSB0YXJmaWxlLiBXaGVuIGRvbmUsIGNsb3NlIHRoZSBm aWxlCi0JCQkgKiAoYnV0IG5vdCBzdGRvdXQpLgorCQkJICogd3JpdGUgY29uZmlndXJhdGlvbiBm aWxlIGludG8gdGhlIHRhcmZpbGUuIFdoZW4gZG9uZSwgY2xvc2UgdGhlCisJCQkgKiBmaWxlIChi dXQgbm90IHN0ZG91dCkuCiAJCQkgKgogCQkJICogQWxzbywgd3JpdGUgdHdvIGNvbXBsZXRlbHkg ZW1wdHkgYmxvY2tzIGF0IHRoZSBlbmQgb2YgdGhlIHRhcgogCQkJICogZmlsZSwgYXMgcmVxdWly ZWQgYnkgc29tZSB0YXIgcHJvZ3JhbXMuCkBAIC0xMTI2LDE5ICsxMTMzLDMxIEBAIFJlY2VpdmVU YXJGaWxlKFBHY29ubiAqY29ubiwgUEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJCWlmIChi YXNldGFibGVzcGFjZSAmJiB3cml0ZXJlY292ZXJ5Y29uZikKIAkJCXsKIAkJCQljaGFyCQloZWFk ZXJbNTEyXTsKLQkJCQlpbnQJCQlwYWRkaW5nOwogCi0JCQkJdGFyQ3JlYXRlSGVhZGVyKGhlYWRl ciwgInJlY292ZXJ5LmNvbmYiLCBOVUxMLAotCQkJCQkJCQlyZWNvdmVyeWNvbmZjb250ZW50cy0+ bGVuLAotCQkJCQkJCQlwZ19maWxlX2NyZWF0ZV9tb2RlLCAwNDAwMCwgMDIwMDAsCi0JCQkJCQkJ CXRpbWUoTlVMTCkpOworCQkJCWlmICghZm91bmRfcG9zdGdyZXNxbF9hdXRvX2NvbmYpCisJCQkJ eworCQkJCQlpbnQJCQlwYWRkaW5nOwogCi0JCQkJcGFkZGluZyA9ICgocmVjb3Zlcnljb25mY29u dGVudHMtPmxlbiArIDUxMSkgJiB+NTExKSAtIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW47CisJ CQkJCXRhckNyZWF0ZUhlYWRlcihoZWFkZXIsIFBHX0FVVE9DT05GX0ZJTEVOQU1FLCBOVUxMLAor CQkJCQkJCQkJcmVjb3Zlcnljb25mY29udGVudHMtPmxlbiwKKwkJCQkJCQkJCXBnX2ZpbGVfY3Jl YXRlX21vZGUsIDA0MDAwLCAwMjAwMCwKKwkJCQkJCQkJCXRpbWUoTlVMTCkpOworCisJCQkJCXBh ZGRpbmcgPSAoKHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW4gKyA1MTEpICYgfjUxMSkgLSByZWNv dmVyeWNvbmZjb250ZW50cy0+bGVuOworCisJCQkJCVdSSVRFX1RBUl9EQVRBKGhlYWRlciwgc2l6 ZW9mKGhlYWRlcikpOworCQkJCQlXUklURV9UQVJfREFUQShyZWNvdmVyeWNvbmZjb250ZW50cy0+ ZGF0YSwgcmVjb3Zlcnljb25mY29udGVudHMtPmxlbik7CisJCQkJCWlmIChwYWRkaW5nKQorCQkJ CQkJV1JJVEVfVEFSX0RBVEEoemVyb2J1ZiwgcGFkZGluZyk7CisJCQkJfQorCisJCQkJdGFyQ3Jl YXRlSGVhZGVyKGhlYWRlciwgU1RBTkRCWV9TSUdOQUxfRklMRSwgTlVMTCwKKwkJCQkJCQkJMCwJ LyogemVyby1sZW5ndGggZmlsZSAqLworCQkJCQkJCQkwNjAwLCAwNDAwMCwgMDIwMDAsCisJCQkJ CQkJCXRpbWUoTlVMTCkpOwogCiAJCQkJV1JJVEVfVEFSX0RBVEEoaGVhZGVyLCBzaXplb2YoaGVh ZGVyKSk7Ci0JCQkJV1JJVEVfVEFSX0RBVEEocmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEsIHJl Y292ZXJ5Y29uZmNvbnRlbnRzLT5sZW4pOwotCQkJCWlmIChwYWRkaW5nKQotCQkJCQlXUklURV9U QVJfREFUQSh6ZXJvYnVmLCBwYWRkaW5nKTsKKwkJCQlXUklURV9UQVJfREFUQSh6ZXJvYnVmLCA1 MTEpOwogCQkJfQogCiAJCQkvKiAyICogNTEyIGJ5dGVzIGVtcHR5IGRhdGEgYXQgZW5kIG9mIGZp bGUgKi8KQEAgLTExODIsOCArMTIwMSw4IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwg UEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJaWYgKCF3cml0ZXJlY292ZXJ5Y29uZiB8fCAh YmFzZXRhYmxlc3BhY2UpCiAJCXsKIAkJCS8qCi0JCQkgKiBXaGVuIG5vdCB3cml0aW5nIHJlY292 ZXJ5LmNvbmYsIG9yIHdoZW4gbm90IHdvcmtpbmcgb24gdGhlIGJhc2UKLQkJCSAqIHRhYmxlc3Bh Y2UsIHdlIG5ldmVyIGhhdmUgdG8gbG9vayBmb3IgYW4gZXhpc3RpbmcgcmVjb3ZlcnkuY29uZgor CQkJICogV2hlbiBub3Qgd3JpdGluZyBjb25maWcgZmlsZSwgb3Igd2hlbiBub3Qgd29ya2luZyBv biB0aGUgYmFzZQorCQkJICogdGFibGVzcGFjZSwgd2UgbmV2ZXIgaGF2ZSB0byBsb29rIGZvciBh biBleGlzdGluZyBjb25maWd1cmF0aW9uCiAJCQkgKiBmaWxlIGluIHRoZSBzdHJlYW0uCiAJCQkg Ki8KIAkJCVdSSVRFX1RBUl9EQVRBKGNvcHlidWYsIHIpOwpAQCAtMTE5MSw3ICsxMjEwLDcgQEAg UmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQog CQllbHNlCiAJCXsKIAkJCS8qCi0JCQkgKiBMb29rIGZvciBhIHJlY292ZXJ5LmNvbmYgaW4gdGhl IGV4aXN0aW5nIHRhciBzdHJlYW0uIElmIGl0J3MKKwkJCSAqIExvb2sgZm9yIGEgY29uZmlnIGZp bGUgaW4gdGhlIGV4aXN0aW5nIHRhciBzdHJlYW0uIElmIGl0J3MKIAkJCSAqIHRoZXJlLCB3ZSBt dXN0IHNraXAgaXQgc28gd2UgY2FuIGxhdGVyIG92ZXJ3cml0ZSBpdCB3aXRoIG91cgogCQkJICog b3duIHZlcnNpb24gb2YgdGhlIGZpbGUuCiAJCQkgKgpAQCAtMTIzNSwyOSArMTI1NCw0NiBAQCBS ZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJ CQkJCXsKIAkJCQkJCS8qCiAJCQkJCQkgKiBXZSBoYXZlIHRoZSBjb21wbGV0ZSBoZWFkZXIgc3Ry dWN0dXJlIGluIHRhcmhkciwKLQkJCQkJCSAqIGxvb2sgYXQgdGhlIGZpbGUgbWV0YWRhdGE6IC0g dGhlIHN1YnNlcXVlbnQgZmlsZQotCQkJCQkJICogY29udGVudHMgaGF2ZSB0byBiZSBza2lwcGVk IGlmIHRoZSBmaWxlbmFtZSBpcwotCQkJCQkJICogcmVjb3ZlcnkuY29uZiAtIGZpbmQgb3V0IHRo ZSBzaXplIG9mIHRoZSBmaWxlCi0JCQkJCQkgKiBwYWRkZWQgdG8gdGhlIG5leHQgbXVsdGlwbGUg b2YgNTEyCisJCQkJCQkgKiBsb29rIGF0IHRoZSBmaWxlIG1ldGFkYXRhOiB3ZSBtYXkgd2FudCBh cHBlbmQKKwkJCQkJCSAqIHJlY292ZXJ5IGluZm8gaW50byBQR19BVVRPQ09ORl9GSUxFTkFNRSBh bmQgc2tpcAorCQkJCQkJICogc3RhbmRieSBzaWduYWwgZmlsZSBJbiBib3RoIGNhc2VzIHdlIG11 c3QgY2FsY3VsYXRlCisJCQkJCQkgKiB0YXIgcGFkZGluZwogCQkJCQkJICovCi0JCQkJCQlpbnQJ CQlwYWRkaW5nOwotCi0JCQkJCQlza2lwX2ZpbGUgPSAoc3RyY21wKCZ0YXJoZHJbMF0sICJyZWNv dmVyeS5jb25mIikgPT0gMCk7CisJCQkJCQlza2lwX2ZpbGUgPSAoc3RyY21wKCZ0YXJoZHJbMF0s IFNUQU5EQllfU0lHTkFMX0ZJTEUpID09IDApOworCQkJCQkJaXNfcG9zdGdyZXNxbF9hdXRvX2Nv bmYgPSAoc3RyY21wKCZ0YXJoZHJbMF0sIFBHX0FVVE9DT05GX0ZJTEVOQU1FKSA9PSAwKTsKIAog CQkJCQkJZmlsZXN6ID0gcmVhZF90YXJfbnVtYmVyKCZ0YXJoZHJbMTI0XSwgMTIpOworCQkJCQkJ ZmlsZV9wYWRkaW5nX2xlbiA9ICgoZmlsZXN6ICsgNTExKSAmIH41MTEpIC0gZmlsZXN6OwogCi0J CQkJCQlwYWRkaW5nID0gKChmaWxlc3ogKyA1MTEpICYgfjUxMSkgLSBmaWxlc3o7Ci0JCQkJCQlm aWxlc3ogKz0gcGFkZGluZzsKKwkJCQkJCWlmIChpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiAmJiB3 cml0ZXJlY292ZXJ5Y29uZikKKwkJCQkJCXsKKwkJCQkJCQkvKiByZXBsYWNlIHRhciBoZWFkZXIg Ki8KKwkJCQkJCQljaGFyCQloZWFkZXJbNTEyXTsKKworCQkJCQkJCXRhckNyZWF0ZUhlYWRlciho ZWFkZXIsIFBHX0FVVE9DT05GX0ZJTEVOQU1FLCBOVUxMLAorCQkJCQkJCQkJCQlmaWxlc3ogKyBy ZWNvdmVyeWNvbmZjb250ZW50cy0+bGVuLAorCQkJCQkJCQkJCQlwZ19maWxlX2NyZWF0ZV9tb2Rl LCAwNDAwMCwgMDIwMDAsCisJCQkJCQkJCQkJCXRpbWUoTlVMTCkpOworCisJCQkJCQkJV1JJVEVf VEFSX0RBVEEoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSk7CisJCQkJCQl9CisJCQkJCQllbHNlCisJ CQkJCQl7CisJCQkJCQkJLyogY29weSBzdHJlYW0gd2l0aCBwYWRkaW5nICovCisJCQkJCQkJZmls ZXN6ICs9IGZpbGVfcGFkZGluZ19sZW47CisKKwkJCQkJCQlpZiAoIXNraXBfZmlsZSkKKwkJCQkJ CQl7CisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIElmIHdlJ3JlIG5vdCBza2lwcGluZyB0aGUgZmls ZSwgd3JpdGUgdGhlCisJCQkJCQkJCSAqIHRhciBoZWFkZXIgdW5tb2RpZmllZC4KKwkJCQkJCQkJ ICovCisJCQkJCQkJCVdSSVRFX1RBUl9EQVRBKHRhcmhkciwgNTEyKTsKKwkJCQkJCQl9CisJCQkJ CQl9CiAKIAkJCQkJCS8qIE5leHQgcGFydCBpcyB0aGUgZmlsZSwgbm90IHRoZSBoZWFkZXIgKi8K IAkJCQkJCWluX3RhcmhkciA9IGZhbHNlOwotCi0JCQkJCQkvKgotCQkJCQkJICogSWYgd2UncmUg bm90IHNraXBwaW5nIHRoZSBmaWxlLCB3cml0ZSB0aGUgdGFyCi0JCQkJCQkgKiBoZWFkZXIgdW5t b2RpZmllZC4KLQkJCQkJCSAqLwotCQkJCQkJaWYgKCFza2lwX2ZpbGUpCi0JCQkJCQkJV1JJVEVf VEFSX0RBVEEodGFyaGRyLCA1MTIpOwogCQkJCQl9CiAJCQkJfQogCQkJCWVsc2UKQEAgLTEyODEs NiArMTMxNywzMiBAQCBSZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMs IGludCByb3dudW0pCiAJCQkJCQlwb3MgKz0gYnl0ZXMyd3JpdGU7CiAJCQkJCQlmaWxlc3ogLT0g Ynl0ZXMyd3JpdGU7CiAJCQkJCX0KKwkJCQkJZWxzZSBpZiAoaXNfcG9zdGdyZXNxbF9hdXRvX2Nv bmYgJiYgd3JpdGVyZWNvdmVyeWNvbmYpCisJCQkJCXsKKwkJCQkJCS8qIGFwcGVuZCByZWNvdmVy eSBjb25mIHRvIFBHX0FVVE9DT05GX0ZJTEVOQU1FICovCisJCQkJCQlpbnQJCQlwYWRkaW5nOwor CQkJCQkJaW50CQkJdGFpbHNpemU7CisKKwkJCQkJCXRhaWxzaXplID0gKDUxMiAtIGZpbGVfcGFk ZGluZ19sZW4pICsgcmVjb3Zlcnljb25mY29udGVudHMtPmxlbjsKKwkJCQkJCXBhZGRpbmcgPSAo KHRhaWxzaXplICsgNTExKSAmIH41MTEpIC0gdGFpbHNpemU7CisKKwkJCQkJCVdSSVRFX1RBUl9E QVRBKHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhLCByZWNvdmVyeWNvbmZjb250ZW50cy0+bGVu KTsKKworCQkJCQkJaWYgKHBhZGRpbmcpCisJCQkJCQl7CisJCQkJCQkJY2hhcgkJemVyb2J1Zls1 MTJdOworCisJCQkJCQkJTWVtU2V0KHplcm9idWYsIDAsIHNpemVvZih6ZXJvYnVmKSk7CisJCQkJ CQkJV1JJVEVfVEFSX0RBVEEoemVyb2J1ZiwgcGFkZGluZyk7CisJCQkJCQl9CisKKwkJCQkJCS8q IHNraXAgb3JpZ2luYWwgZmlsZSBwYWRkaW5nICovCisJCQkJCQlpc19wb3N0Z3Jlc3FsX2F1dG9f Y29uZiA9IGZhbHNlOworCQkJCQkJc2tpcF9maWxlID0gdHJ1ZTsKKwkJCQkJCWZpbGVzeiArPSBm aWxlX3BhZGRpbmdfbGVuOworCisJCQkJCQlmb3VuZF9wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IHRy dWU7CisJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQl7CiAJCQkJCQkvKgpAQCAtMTI4OSw2ICsxMzUx LDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93 bnVtKQogCQkJCQkJICovCiAJCQkJCQlpbl90YXJoZHIgPSB0cnVlOwogCQkJCQkJc2tpcF9maWxl ID0gZmFsc2U7CisJCQkJCQlpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IGZhbHNlOwogCQkJCQkJ dGFyaGRyc3ogPSAwOwogCQkJCQkJZmlsZXN6ID0gMDsKIAkJCQkJfQpAQCAtMTYxNCw3ICsxNjc3 LDcgQEAgZXNjYXBlX3F1b3Rlcyhjb25zdCBjaGFyICpzcmMpCiB9CiAKIC8qCi0gKiBDcmVhdGUg YSByZWNvdmVyeS5jb25mIGZpbGUgaW4gbWVtb3J5IHVzaW5nIGEgUFFFeHBCdWZmZXIKKyAqIENy ZWF0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBtZW1vcnkgdXNpbmcgYSBQUUV4cEJ1ZmZlcgog ICovCiBzdGF0aWMgdm9pZAogR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25uKQpAQCAt MTYzOCw4ICsxNzAxLDYgQEAgR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25uKQogCQlk aXNjb25uZWN0X2FuZF9leGl0KDEpOwogCX0KIAotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHJlY292 ZXJ5Y29uZmNvbnRlbnRzLCAic3RhbmRieV9tb2RlID0gJ29uJ1xuIik7Ci0KIAlpbml0UFFFeHBC dWZmZXIoJmNvbm5pbmZvX2J1Zik7CiAJZm9yIChvcHRpb24gPSBjb25uT3B0aW9uczsgb3B0aW9u ICYmIG9wdGlvbi0+a2V5d29yZDsgb3B0aW9uKyspCiAJewpAQCAtMTY5OCw4ICsxNzU5LDkgQEAg R2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25uKQogCiAKIC8qCi0gKiBXcml0ZSBhIHJl Y292ZXJ5LmNvbmYgZmlsZSBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGluIGJhc2VkaXIs CisgKiBXcml0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGludG8gdGhlIGRpcmVjdG9yeSBzcGVj aWZpZWQgaW4gYmFzZWRpciwKICAqIHdpdGggdGhlIGNvbnRlbnRzIGFscmVhZHkgY29sbGVjdGVk IGluIG1lbW9yeS4KKyAqIFRoZW4gd3JpdGUgdGhlIHNpZ25hbCBmaWxlIGludG8gdGhlIGJhc2Vk aXIgYWxzby4KICAqLwogc3RhdGljIHZvaWQKIFdyaXRlUmVjb3ZlcnlDb25mKHZvaWQpCkBAIC0x NzA3LDkgKzE3NjksOSBAQCBXcml0ZVJlY292ZXJ5Q29uZih2b2lkKQogCWNoYXIJCWZpbGVuYW1l W01BWFBHUEFUSF07CiAJRklMRQkgICAqY2Y7CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMvcmVj b3ZlcnkuY29uZiIsIGJhc2VkaXIpOworCXNucHJpbnRmKGZpbGVuYW1lLCBNQVhQR1BBVEgsICIl cy8lcyIsIGJhc2VkaXIsIFBHX0FVVE9DT05GX0ZJTEVOQU1FKTsKIAotCWNmID0gZm9wZW4oZmls ZW5hbWUsICJ3Iik7CisJY2YgPSBmb3BlbihmaWxlbmFtZSwgImEiKTsKIAlpZiAoY2YgPT0gTlVM TCkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGNyZWF0ZSBmaWxlIFwi JXNcIjogJXNcbiIpLCBwcm9nbmFtZSwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7CkBAIC0x NzI1LDYgKzE3ODcsMTYgQEAgV3JpdGVSZWNvdmVyeUNvbmYodm9pZCkKIAl9CiAKIAlmY2xvc2Uo Y2YpOworCisJc25wcmludGYoZmlsZW5hbWUsIE1BWFBHUEFUSCwgIiVzLyVzIiwgYmFzZWRpciwg U1RBTkRCWV9TSUdOQUxfRklMRSk7CisJY2YgPSBmb3BlbihmaWxlbmFtZSwgInciKTsKKwlpZiAo Y2YgPT0gTlVMTCkKKwl7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGNyZWF0 ZSBmaWxlIFwiJXNcIjogJXNcbiIpLCBwcm9nbmFtZSwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5v KSk7CisJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJfQorCisJZmNsb3NlKGNmKTsKIH0KIAog CkBAIC0xNzgwLDcgKzE4NTIsNyBAQCBCYXNlQmFja3VwKHZvaWQpCiAJfQogCiAJLyoKLQkgKiBC dWlsZCBjb250ZW50cyBvZiByZWNvdmVyeS5jb25mIGlmIHJlcXVlc3RlZAorCSAqIEJ1aWxkIGNv bnRlbnRzIG9mIGNvbmZpZ3VyYXRpb24gZmlsZSBpZiByZXF1ZXN0ZWQKIAkgKi8KIAlpZiAod3Jp dGVyZWNvdmVyeWNvbmYpCiAJCUdlbmVyYXRlUmVjb3ZlcnlDb25mKGNvbm4pOwpAQCAtMjA5NCw3 ICsyMTY2LDcgQEAgQmFzZUJhY2t1cCh2b2lkKQogI2VuZGlmCiAJfQogCi0JLyogRnJlZSB0aGUg cmVjb3ZlcnkuY29uZiBjb250ZW50cyAqLworCS8qIEZyZWUgdGhlIGNvbmZpZ3VyYXRpb24gZmls ZSBjb250ZW50cyAqLwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcihyZWNvdmVyeWNvbmZjb250ZW50cyk7 CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDEwX3BnX2Jhc2Vi YWNrdXAucGwgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbApp bmRleCAyMjExZDkwLi5iNzNjMWVmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv dC8wMTBfcGdfYmFzZWJhY2t1cC5wbAorKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBf cGdfYmFzZWJhY2t1cC5wbApAQCAtMzU4LDE5ICszNTgsMTYgQEAgU0tJUDoKIAogJG5vZGUtPmNv bW1hbmRfb2soWyAncGdfYmFzZWJhY2t1cCcsICctRCcsICIkdGVtcGRpci9iYWNrdXBSIiwgJy1S JyBdLAogCSdwZ19iYXNlYmFja3VwIC1SIHJ1bnMnKTsKLW9rKC1mICIkdGVtcGRpci9iYWNrdXBS L3JlY292ZXJ5LmNvbmYiLCAncmVjb3ZlcnkuY29uZiB3YXMgY3JlYXRlZCcpOwotbXkgJHJlY292 ZXJ5X2NvbmYgPSBzbHVycF9maWxlICIkdGVtcGRpci9iYWNrdXBSL3JlY292ZXJ5LmNvbmYiOwor b2soLWYgIiR0ZW1wZGlyL2JhY2t1cFIvcG9zdGdyZXNxbC5hdXRvLmNvbmYiLCAncG9zdGdyZXNx bC5hdXRvLmNvbmYgcHJlc2VudCcpOworb2soLWYgIiR0ZW1wZGlyL2JhY2t1cFIvc3RhbmRieS5z aWduYWwiLCAnc3RhbmRieSBtb2RlIGlzIGNvbmZpZ3VyZWQnKTsKK215ICRyZWNvdmVyeV9jb25m ID0gc2x1cnBfZmlsZSAiJHRlbXBkaXIvYmFja3VwUi9wb3N0Z3Jlc3FsLmF1dG8uY29uZiI7CiBy bXRyZWUoIiR0ZW1wZGlyL2JhY2t1cFIiKTsKIAogbXkgJHBvcnQgPSAkbm9kZS0+cG9ydDsKIGxp a2UoCiAJJHJlY292ZXJ5X2NvbmYsCi0JcXIvXnN0YW5kYnlfbW9kZSA9ICdvbidcbi9tLAotCSdy ZWNvdmVyeS5jb25mIHNldHMgc3RhbmRieV9tb2RlJyk7Ci1saWtlKAotCSRyZWNvdmVyeV9jb25m LAogCXFyL15wcmltYXJ5X2Nvbm5pbmZvID0gJy4qcG9ydD0kcG9ydC4qJ1xuL20sCi0JJ3JlY292 ZXJ5LmNvbmYgc2V0cyBwcmltYXJ5X2Nvbm5pbmZvJyk7CisJJ3Bvc3RncmVzcWwuYXV0by5jb25m IHNldHMgcHJpbWFyeV9jb25uaW5mbycpOwogCiAkbm9kZS0+Y29tbWFuZF9vaygKIAlbICdwZ19i YXNlYmFja3VwJywgJy1EJywgIiR0ZW1wZGlyL2JhY2t1cHhkIiBdLApAQCAtNDc4LDkgKzQ3NSw5 IEBAICRub2RlLT5jb21tYW5kX29rKAogCV0sCiAJJ3BnX2Jhc2ViYWNrdXAgd2l0aCByZXBsaWNh dGlvbiBzbG90IGFuZCAtUiBydW5zJyk7CiBsaWtlKAotCXNsdXJwX2ZpbGUoIiR0ZW1wZGlyL2Jh Y2t1cHhzX3NsX1IvcmVjb3ZlcnkuY29uZiIpLAorCXNsdXJwX2ZpbGUoIiR0ZW1wZGlyL2JhY2t1 cHhzX3NsX1IvcG9zdGdyZXNxbC5hdXRvLmNvbmYiKSwKIAlxci9ecHJpbWFyeV9zbG90X25hbWUg PSAnc2xvdDEnXG4vbSwKLQkncmVjb3ZlcnkuY29uZiBzZXRzIHByaW1hcnlfc2xvdF9uYW1lJyk7 CisJJ3JlY292ZXJ5IGNvbmYgZmlsZSBzZXRzIHByaW1hcnlfc2xvdF9uYW1lJyk7CiAKIG15ICRj aGVja3N1bSA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NIT1cgZGF0YV9jaGVja3N1 bXM7Jyk7CiBpcygkY2hlY2tzdW0sICdvbicsICdjaGVja3N1bXMgYXJlIGVuYWJsZWQnKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jIGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3Rs LmMKaW5kZXggZWQyMzk2YS4uMmZlYmJkMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdf Y3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKQEAgLTExMTIsNyArMTExMiw3IEBA IGRvX3Byb21vdGUodm9pZCkKIAkgKiBjaGVja3BvaW50IGlzIHN0aWxsIHBvc3NpYmxlIGJ5IHdy aXRpbmcgYSBmaWxlIGNhbGxlZAogCSAqICJmYWxsYmFja19wcm9tb3RlIiBpbnN0ZWFkIG9mICJw cm9tb3RlIgogCSAqLwotCXNucHJpbnRmKHByb21vdGVfZmlsZSwgTUFYUEdQQVRILCAiJXMvcHJv bW90ZSIsIHBnX2RhdGEpOworCXNucHJpbnRmKHByb21vdGVfZmlsZSwgTUFYUEdQQVRILCAiJXMv cHJvbW90ZS5zaWduYWwiLCBwZ19kYXRhKTsKIAogCWlmICgocHJtZmlsZSA9IGZvcGVuKHByb21v dGVfZmlsZSwgInciKSkgPT0gTlVMTCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jld2lu ZC9SZXdpbmRUZXN0LnBtIGIvc3JjL2Jpbi9wZ19yZXdpbmQvUmV3aW5kVGVzdC5wbQppbmRleCAw NTdiMDhmLi42YWU5YWM1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9SZXdpbmRUZXN0 LnBtCisrKyBiL3NyYy9iaW4vcGdfcmV3aW5kL1Jld2luZFRlc3QucG0KQEAgLTE1OSwxMiArMTU5 LDEzIEBAIHN1YiBjcmVhdGVfc3RhbmRieQogCW15ICRjb25uc3RyX21hc3RlciA9ICRub2RlX21h c3Rlci0+Y29ubnN0cigpOwogCiAJJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoCi0JCSJyZWNv dmVyeS5jb25mIiwgcXEoCisJCSJwb3N0Z3Jlc3FsLmNvbmYiLCBxcSgKIHByaW1hcnlfY29ubmlu Zm89JyRjb25uc3RyX21hc3RlciBhcHBsaWNhdGlvbl9uYW1lPXJld2luZF9zdGFuZGJ5Jwotc3Rh bmRieV9tb2RlPW9uCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcKICkpOwogCisJ JG5vZGVfc3RhbmRieS0+cmVxdWVzdF9zdGFuZGJ5X21vZGUoKTsKKwogCSMgU3RhcnQgc3RhbmRi eQogCSRub2RlX3N0YW5kYnktPnN0YXJ0OwogCkBAIC0yNjgsMTIgKzI2OSwxMyBAQCBzdWIgcnVu X3BnX3Jld2luZAogCSMgUGx1Zy1pbiByZXdvdW5kIG5vZGUgdG8gdGhlIG5vdy1wcm9tb3RlZCBz dGFuZGJ5IG5vZGUKIAlteSAkcG9ydF9zdGFuZGJ5ID0gJG5vZGVfc3RhbmRieS0+cG9ydDsKIAkk bm9kZV9tYXN0ZXItPmFwcGVuZF9jb25mKAotCQkncmVjb3ZlcnkuY29uZicsIHFxKAorCQkncG9z dGdyZXNxbC5jb25mJywgcXEoCiBwcmltYXJ5X2Nvbm5pbmZvPSdwb3J0PSRwb3J0X3N0YW5kYnkn Ci1zdGFuZGJ5X21vZGU9b24KIHJlY292ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7 CiAKKwkkbm9kZV9tYXN0ZXItPnJlcXVlc3Rfc3RhbmRieV9tb2RlKCk7CisKIAkjIFJlc3RhcnQg dGhlIG1hc3RlciB0byBjaGVjayB0aGF0IHJld2luZCB3ZW50IGNvcnJlY3RseQogCSRub2RlX21h c3Rlci0+c3RhcnQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDQyMWJhNmQuLmU1YzVlODIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2cuaApAQCAtODcsNiArODcsNDIgQEAgdHlwZWRlZiBlbnVtCiAJUkVDT1ZFUllfVEFSR0VUX0lN TUVESUFURQogfSBSZWNvdmVyeVRhcmdldFR5cGU7CiAKKyNkZWZpbmUgUmVjb3ZlcnlUYXJnZXRU ZXh0KHQpICggXAorCXQgPT0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUID8gInVuc2V0IiA6ICggXAor CXQgPT0gUkVDT1ZFUllfVEFSR0VUX1hJRCAgID8gInhpZCIgOiAoIFwKKwl0ID09IFJFQ09WRVJZ X1RBUkdFVF9USU1FICA/ICJ0aW1lc3RhbXAiIDogKCBcCisJdCA9PSBSRUNPVkVSWV9UQVJHRVRf TkFNRSAgPyAibmFtZSIgOiAoIFwKKwl0ID09IFJFQ09WRVJZX1RBUkdFVF9MU04gICA/ICJsc24i IDogKCBcCisJdCA9PSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFID8gImltbWVkaWF0ZSIgOiBc CisJCQkJCSJub25lIiApKSkpKSkKKworLyoKKyAqIFJlY292ZXJ5IHRhcmdldCBhY3Rpb24uCisg Ki8KK3R5cGVkZWYgZW51bQoreworCVJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFVU0UsCisJUkVD T1ZFUllfVEFSR0VUX0FDVElPTl9QUk9NT1RFLAorCVJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fU0hV VERPV04KK30gUmVjb3ZlcnlUYXJnZXRBY3Rpb247CisKKyNkZWZpbmUgUmVjb3ZlcnlUYXJnZXRB Y3Rpb25UZXh0KHQpICggXAorCXQgPT0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVTRSAgID8g InBhdXNlIiA6ICggXAorCXQgPT0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QUk9NT1RFID8gInBy b21vdGUiIDogKCBcCisJCQkJCQkic2h1dGRvd24iICkpKQorLyoKKyAqIFJlY292ZXJ5IHRhcmdl dCBUaW1lTGluZSBnb2FsCisgKi8KK3R5cGVkZWYgZW51bQoreworCVJFQ09WRVJZX1RBUkdFVF9U SU1FTElORV9DT05UUk9MRklMRSwKKwlSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfTEFURVNULAor CVJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDCit9CQkJUmVjb3ZlcnlUYXJnZXRUaW1l TGluZUdvYWw7CisKKy8qIE1heCBsZW5ndGggb2YgbmFtZWQgcmVzdG9yZSBwb2ludHMgKi8KKyNk ZWZpbmUgTUFYUkVTVE9SRVBPSU5UTkFNRUxFTiA2NAorCiBleHRlcm4gWExvZ1JlY1B0ciBQcm9j TGFzdFJlY1B0cjsKIGV4dGVybiBYTG9nUmVjUHRyIFhhY3RMYXN0UmVjRW5kOwogZXh0ZXJuIFBH RExMSU1QT1JUIFhMb2dSZWNQdHIgWGFjdExhc3RDb21taXRFbmQ7CkBAIC0xMTIsNiArMTQ4LDM2 IEBAIGV4dGVybiBib29sIGxvZ19jaGVja3BvaW50czsKIAogZXh0ZXJuIGludAlDaGVja1BvaW50 U2VnbWVudHM7CiAKKy8qIG9wdGlvbnMgcHJldmlvdXNseSB0YWtlbiBmcm9tIHJlY292ZXJ5LmNv bmYgZm9yIGFyY2hpdmUgcmVjb3ZlcnkgKi8KK2V4dGVybiBjaGFyICpyZWNvdmVyeVJlc3RvcmVD b21tYW5kOworZXh0ZXJuIGNoYXIgKnJlY292ZXJ5RW5kQ29tbWFuZDsKK2V4dGVybiBjaGFyICph cmNoaXZlQ2xlYW51cENvbW1hbmQ7CitleHRlcm4gY2hhciAqcmVjb3ZlcnlUYXJnZXRUeXBlU3Ry aW5nOworZXh0ZXJuIFJlY292ZXJ5VGFyZ2V0VHlwZSByZWNvdmVyeVRhcmdldDsKK2V4dGVybiBj aGFyICpyZWNvdmVyeVRhcmdldFZhbHVlOworZXh0ZXJuIGJvb2wgcmVjb3ZlcnlUYXJnZXRJbmNs dXNpdmU7CitleHRlcm4gUmVjb3ZlcnlUYXJnZXRBY3Rpb24gcmVjb3ZlcnlUYXJnZXRBY3Rpb247 CitleHRlcm4gVHJhbnNhY3Rpb25JZCByZWNvdmVyeVRhcmdldFhpZDsKK2V4dGVybiBUaW1lc3Rh bXBUeiByZWNvdmVyeVRhcmdldFRpbWU7CitleHRlcm4gY2hhciAqcmVjb3ZlcnlUYXJnZXROYW1l OworZXh0ZXJuIFhMb2dSZWNQdHIgcmVjb3ZlcnlUYXJnZXRMU047CitleHRlcm4gaW50CXJlY292 ZXJ5X21pbl9hcHBseV9kZWxheTsKKworLyogb3B0aW9uIHNldCBsb2NhbGx5IGluIFN0YXJ0dXAg cHJvY2VzcyBvbmx5IHdoZW4gc2lnbmFsIGZpbGVzIGV4aXN0ICovCitleHRlcm4gYm9vbCBTdGFu ZGJ5TW9kZVJlcXVlc3RlZDsKK2V4dGVybiBib29sIFN0YW5kYnlNb2RlOworCisvKiBvcHRpb25z IGZvciBXQUxyZWNlaXZlci5jICovCitleHRlcm4gY2hhciAqUHJpbWFyeUNvbm5JbmZvOworZXh0 ZXJuIGNoYXIgKlByaW1hcnlTbG90TmFtZTsKKworZXh0ZXJuIGNoYXIgKlByb21vdGVTaWduYWxG aWxlOworCitleHRlcm4gY2hhciAqcmVjb3ZlcnlUYXJnZXRUTElTdHJpbmc7CitleHRlcm4gUmVj b3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgcmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWw7CitleHRl cm4gVGltZUxpbmVJRCByZWNvdmVyeVRhcmdldFRMSVJlcXVlc3RlZDsKK2V4dGVybiBUaW1lTGlu ZUlEIHJlY292ZXJ5VGFyZ2V0VExJOworCiAvKiBBcmNoaXZlIG1vZGVzICovCiB0eXBlZGVmIGVu dW0gQXJjaGl2ZU1vZGUKIHsKQEAgLTI0MCw2ICszMDYsOCBAQCBleHRlcm4gY29uc3QgY2hhciAq eGxvZ19pZGVudGlmeSh1aW50OCBpbmZvKTsKIAogZXh0ZXJuIHZvaWQgaXNzdWVfeGxvZ19mc3lu YyhpbnQgZmQsIFhMb2dTZWdObyBzZWdubyk7CiAKK2V4dGVybiB2b2lkIGxvZ1JlY292ZXJ5UGFy YW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIHZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0ZXJzKHZv aWQpOwogZXh0ZXJuIGJvb2wgUmVjb3ZlcnlJblByb2dyZXNzKHZvaWQpOwogZXh0ZXJuIGJvb2wg SG90U3RhbmRieUFjdGl2ZSh2b2lkKTsKIGV4dGVybiBib29sIEhvdFN0YW5kYnlBY3RpdmVJblJl cGxheSh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVybmFs LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5hbC5oCmluZGV4IDdjNzY2ODMuLjAw OWY2Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVybmFsLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dfaW50ZXJuYWwuaApAQCAtMjYwLDE2ICsyNjAsNiBA QCB0eXBlZGVmIHN0cnVjdCBYTG9nUmVjRGF0YQogfSBYTG9nUmVjRGF0YTsKIAogLyoKLSAqIFJl Y292ZXJ5IHRhcmdldCBhY3Rpb24uCi0gKi8KLXR5cGVkZWYgZW51bQotewotCVJFQ09WRVJZX1RB UkdFVF9BQ1RJT05fUEFVU0UsCi0JUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QUk9NT1RFLAotCVJF Q09WRVJZX1RBUkdFVF9BQ1RJT05fU0hVVERPV04KLX0gUmVjb3ZlcnlUYXJnZXRBY3Rpb247Ci0K LS8qCiAgKiBNZXRob2QgdGFibGUgZm9yIHJlc291cmNlIG1hbmFnZXJzLgogICoKICAqIFRoaXMg c3RydWN0IG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIFBHX1JNR1IgZGVmaW5pdGlvbiBp bgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oCmluZGV4IDY2OGQ5ZWYuLjZmOWZkYjYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2d1Y190YWJsZXMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9n dWNfdGFibGVzLmgKQEAgLTY5LDYgKzY5LDggQEAgZW51bSBjb25maWdfZ3JvdXAKIAlXQUxfU0VU VElOR1MsCiAJV0FMX0NIRUNLUE9JTlRTLAogCVdBTF9BUkNISVZJTkcsCisJV0FMX0FSQ0hJVkVf UkVDT1ZFUlksCisJV0FMX1JFQ09WRVJZX1RBUkdFVCwKIAlSRVBMSUNBVElPTiwKIAlSRVBMSUNB VElPTl9TRU5ESU5HLAogCVJFUExJQ0FUSU9OX01BU1RFUiwKZGlmZiAtLWdpdCBhL3NyYy9wb3J0 L3F1b3Rlcy5jIGIvc3JjL3BvcnQvcXVvdGVzLmMKaW5kZXggMjk3NzBjNy4uMGY5YWI2OCAxMDA2 NDQKLS0tIGEvc3JjL3BvcnQvcXVvdGVzLmMKKysrIGIvc3JjL3BvcnQvcXVvdGVzLmMKQEAgLTE5 LDcgKzE5LDcgQEAKICAqIEVzY2FwZSAoYnkgZG91YmxpbmcpIGFueSBzaW5nbGUgcXVvdGVzIG9y IGJhY2tzbGFzaGVzIGluIGdpdmVuIHN0cmluZwogICoKICAqIE5vdGU6IHRoaXMgaXMgdXNlZCB0 byBwcm9jZXNzIHBvc3RncmVzcWwuY29uZiBlbnRyaWVzIGFuZCB0byBxdW90ZQotICogc3RyaW5n IGxpdGVyYWxzIGluIHBnX2Jhc2ViYWNrdXAgZm9yIGNyZWF0aW5nIHJlY292ZXJ5LmNvbmYuCisg KiBzdHJpbmcgbGl0ZXJhbHMgaW4gcGdfYmFzZWJhY2t1cCBmb3IgY3JlYXRpbmcgcmVjb3Zlcnkg Y29uZmlnLgogICogU2luY2UgcG9zdGdyZXNxbC5jb25mIHN0cmluZ3MgYXJlIGRlZmluZWQgdG8g dHJlYXQgYmFja3NsYXNoZXMgYXMgZXNjYXBlcywKICAqIHdlIGhhdmUgdG8gZG91YmxlIGJhY2tz bGFzaGVzIGhlcmUuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUu cG0gYi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbQppbmRleCBhMDhhZjY1Li4zZjYzZTg1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbQorKysgYi9zcmMvdGVz dC9wZXJsL1Bvc3RncmVzTm9kZS5wbQpAQCAtNjM1LDggKzYzNSw2IEBAIG9mIGEgYmFja3VwIHBy ZXZpb3VzbHkgY3JlYXRlZCBvbiB0aGF0IG5vZGUgd2l0aCAkbm9kZS0+YmFja3VwLgogCiBEb2Vz IG5vdCBzdGFydCB0aGUgbm9kZSBhZnRlciBpbml0aWFsaXppbmcgaXQuCiAKLUEgcmVjb3Zlcnku Y29uZiBpcyBub3QgY3JlYXRlZC4KLQogU3RyZWFtaW5nIHJlcGxpY2F0aW9uIGNhbiBiZSBlbmFi bGVkIG9uIHRoaXMgbm9kZSBieSBwYXNzaW5nIHRoZSBrZXl3b3JkCiBwYXJhbWV0ZXIgaGFzX3N0 cmVhbWluZyA9PiAxLiBUaGlzIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCiAKQEAgLTgxMCwxMyAr ODA4LDE0IEBAIHN1YiBlbmFibGVfc3RyZWFtaW5nCiAJbXkgKCRzZWxmLCAkcm9vdF9ub2RlKSA9 IEBfOwogCW15ICRyb290X2Nvbm5zdHIgPSAkcm9vdF9ub2RlLT5jb25uc3RyOwogCW15ICRuYW1l ICAgICAgICAgPSAkc2VsZi0+bmFtZTsKKwlteSAkcGdkYXRhICAJID0gJHNlbGYtPmRhdGFfZGly OwogCiAJcHJpbnQgIiMjIyBFbmFibGluZyBzdHJlYW1pbmcgcmVwbGljYXRpb24gZm9yIG5vZGUg XCIkbmFtZVwiXG4iOwogCSRzZWxmLT5hcHBlbmRfY29uZigKLQkJJ3JlY292ZXJ5LmNvbmYnLCBx cSgKKwkJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcHJpbWFyeV9jb25uaW5mbz0nJHJvb3RfY29u bnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRuYW1lJwotc3RhbmRieV9tb2RlPW9uCiApKTsKKwkkc2Vs Zi0+cmVxdWVzdF9zdGFuZGJ5X21vZGUoKTsKIAlyZXR1cm47CiB9CiAKQEAgLTg0MiwxMCArODQx LDI1IEBAIHN1YiBlbmFibGVfcmVzdG9yaW5nCiAJICA6IHFxe2NwICIkcGF0aC8lZiIgIiVwIn07 CiAKIAkkc2VsZi0+YXBwZW5kX2NvbmYoCi0JCSdyZWNvdmVyeS5jb25mJywgcXEoCisJCSdwb3N0 Z3Jlc3FsLmNvbmYnLCBxcSgKIHJlc3RvcmVfY29tbWFuZCA9ICckY29weV9jb21tYW5kJwotc3Rh bmRieV9tb2RlID0gb24KICkpOworCSRzZWxmLT5yZXF1ZXN0X3N0YW5kYnlfbW9kZSgpOworCXJl dHVybjsKK30KKworIyByb3V0aW5lIHRvIHBsYWNlIHN0YW5kYnkuc2lnbmFsIGZpbGUKK3N1YiBy ZXF1ZXN0X3N0YW5kYnlfbW9kZQoreworCW15ICgkc2VsZikgPSBAXzsKKwlteSAkc2lnbmFsZmls ZSA9ICRzZWxmLT5kYXRhX2RpciAuICIvc3RhbmRieS5zaWduYWwiOworCisJb3BlbiBteSAkc3Rh bmRieXNpZ25hbCwgIj4+JHNpZ25hbGZpbGUiOworCXByaW50ICRzdGFuZGJ5c2lnbmFsICJcbiMg QWxsb3cgcmVwbGljYXRpb24gKHNldCB1cCBieSBQb3N0Z3Jlc05vZGUucG0pXG4iOworCWNsb3Nl ICRzdGFuZGJ5c2lnbmFsOworCisJY2htb2QoJHNlbGYtPmdyb3VwX2FjY2VzcygpID8gMDY0MCA6 IDA2MDAsICRzaWduYWxmaWxlKQorCSAgb3IgZGllKCJ1bmFibGUgdG8gc2V0IHBlcm1pc3Npb25z IGZvciAkc2lnbmFsZmlsZSIpOwogCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMDFfc3RyZWFtX3JlcC5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAxX3N0 cmVhbV9yZXAucGwKaW5kZXggYTBkM2U4Zi4uNWVmMTdiNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMDFfc3RyZWFtX3JlcC5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAw MV9zdHJlYW1fcmVwLnBsCkBAIC0xMzEsNyArMTMxLDcgQEAgaXMoICRub2RlX21hc3Rlci0+cHNx bCgKIAkJcXFbU0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckc2xv dG5hbWVfMScpO10pLAogCTAsCiAJJ3BoeXNpY2FsIHNsb3QgY3JlYXRlZCBvbiBtYXN0ZXInKTsK LSRub2RlX3N0YW5kYnlfMS0+YXBwZW5kX2NvbmYoJ3JlY292ZXJ5LmNvbmYnLAorJG5vZGVfc3Rh bmRieV8xLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKIAkicHJpbWFyeV9zbG90X25h bWUgPSAkc2xvdG5hbWVfMSIpOwogJG5vZGVfc3RhbmRieV8xLT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywKIAkid2FsX3JlY2VpdmVyX3N0YXR1c19pbnRlcnZhbCA9IDEiKTsKQEAgLTE0 Miw3ICsxNDIsNyBAQCBpcyggJG5vZGVfc3RhbmRieV8xLT5wc3FsKAogCQlxcVtTRUxFQ1QgcGdf Y3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRzbG90bmFtZV8yJyk7XSksCiAJMCwK IAkncGh5c2ljYWwgc2xvdCBjcmVhdGVkIG9uIGludGVybWVkaWF0ZSByZXBsaWNhJyk7Ci0kbm9k ZV9zdGFuZGJ5XzItPmFwcGVuZF9jb25mKCdyZWNvdmVyeS5jb25mJywKKyRub2RlX3N0YW5kYnlf Mi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAJInByaW1hcnlfc2xvdF9uYW1lID0g JHNsb3RuYW1lXzIiKTsKICRub2RlX3N0YW5kYnlfMi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsCiAJIndhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxIik7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJnZXRzLnBsIGIvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMDNfcmVjb3ZlcnlfdGFyZ2V0cy5wbAppbmRleCBlODY3NDc5Li5kMmM1M2Y1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJnZXRzLnBs CisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAzX3JlY292ZXJ5X3RhcmdldHMucGwKQEAgLTMs NyArMyw3IEBAIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7CiB1c2UgUG9zdGdyZXNOb2RlOwog dXNlIFRlc3RMaWI7Ci11c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiA5OwordXNlIFRlc3Q6Ok1vcmUg dGVzdHMgPT4gNTsKIAogIyBDcmVhdGUgYW5kIHRlc3QgYSBzdGFuZGJ5IGZyb20gZ2l2ZW4gYmFj a3VwLCB3aXRoIGEgY2VydGFpbiByZWNvdmVyeSB0YXJnZXQuCiAjIENob29zZSAkdW50aWxfbHNu IGxhdGVyIHRoYW4gdGhlIHRyYW5zYWN0aW9uIGNvbW1pdCB0aGF0IGNhdXNlcyB0aGUgcm93CkBA IC0yMyw3ICsyMyw3IEBAIHN1YiB0ZXN0X3JlY292ZXJ5X3N0YW5kYnkKIAogCWZvcmVhY2ggbXkg JHBhcmFtX2l0ZW0gKEAkcmVjb3ZlcnlfcGFyYW1zKQogCXsKLQkJJG5vZGVfc3RhbmRieS0+YXBw ZW5kX2NvbmYoJ3JlY292ZXJ5LmNvbmYnLCBxcSgkcGFyYW1faXRlbSkpOworCQkkbm9kZV9zdGFu ZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXEoJHBhcmFtX2l0ZW0pKTsKIAl9 CiAKIAkkbm9kZV9zdGFuZGJ5LT5zdGFydDsKQEAgLTk5LDQ3ICs5OSwxOCBAQCAkbm9kZV9tYXN0 ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCBwZ19zd2l0Y2hfd2FsKCkiKTsKIAogIyBUZXN0IHJlY292ZXJ5IHRhcmdl dHMKLW15IEByZWNvdmVyeV9wYXJhbXMgPSAoInJlY292ZXJ5X3RhcmdldCA9ICdpbW1lZGlhdGUn Iik7CitteSBAcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNvdmVyeV90YXJnZXRfdHlwZSA9ICdpbW1l ZGlhdGUnIik7CiB0ZXN0X3JlY292ZXJ5X3N0YW5kYnkoJ2ltbWVkaWF0ZSB0YXJnZXQnLAogCSdz dGFuZGJ5XzEnLCAkbm9kZV9tYXN0ZXIsIFxAcmVjb3ZlcnlfcGFyYW1zLCAiMTAwMCIsICRsc24x KTsKLUByZWNvdmVyeV9wYXJhbXMgPSAoInJlY292ZXJ5X3RhcmdldF94aWQgPSAnJHJlY292ZXJ5 X3R4aWQnIik7CitAcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNvdmVyeV90YXJnZXRfdHlwZSA9ICd4 aWQnIiwgInJlY292ZXJ5X3RhcmdldF92YWx1ZSA9ICckcmVjb3ZlcnlfdHhpZCciKTsKIHRlc3Rf cmVjb3Zlcnlfc3RhbmRieSgnWElEJywgJ3N0YW5kYnlfMicsICRub2RlX21hc3RlciwgXEByZWNv dmVyeV9wYXJhbXMsCiAJIjIwMDAiLCAkbHNuMik7Ci1AcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNv dmVyeV90YXJnZXRfdGltZSA9ICckcmVjb3ZlcnlfdGltZSciKTsKK0ByZWNvdmVyeV9wYXJhbXMg PSAoInJlY292ZXJ5X3RhcmdldF90eXBlID0gJ3RpbWVzdGFtcCciLCAicmVjb3ZlcnlfdGFyZ2V0 X3ZhbHVlID0gJyRyZWNvdmVyeV90aW1lJyIpOwogdGVzdF9yZWNvdmVyeV9zdGFuZGJ5KCd0aW1l JywgJ3N0YW5kYnlfMycsICRub2RlX21hc3RlciwgXEByZWNvdmVyeV9wYXJhbXMsCiAJIjMwMDAi LCAkbHNuMyk7Ci1AcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICck cmVjb3ZlcnlfbmFtZSciKTsKK0ByZWNvdmVyeV9wYXJhbXMgPSAoInJlY292ZXJ5X3RhcmdldF90 eXBlID0gJ25hbWUnIiwgInJlY292ZXJ5X3RhcmdldF92YWx1ZSA9ICckcmVjb3ZlcnlfbmFtZSci KTsKIHRlc3RfcmVjb3Zlcnlfc3RhbmRieSgnbmFtZScsICdzdGFuZGJ5XzQnLCAkbm9kZV9tYXN0 ZXIsIFxAcmVjb3ZlcnlfcGFyYW1zLAogCSI0MDAwIiwgJGxzbjQpOwotQHJlY292ZXJ5X3BhcmFt cyA9ICgicmVjb3ZlcnlfdGFyZ2V0X2xzbiA9ICckcmVjb3ZlcnlfbHNuJyIpOworQHJlY292ZXJ5 X3BhcmFtcyA9ICgicmVjb3ZlcnlfdGFyZ2V0X3R5cGUgPSAnbHNuJyIsICJyZWNvdmVyeV90YXJn ZXRfdmFsdWUgPSAnJHJlY292ZXJ5X2xzbiciKTsKIHRlc3RfcmVjb3Zlcnlfc3RhbmRieSgnTFNO JywgJ3N0YW5kYnlfNScsICRub2RlX21hc3RlciwgXEByZWNvdmVyeV9wYXJhbXMsCiAJIjUwMDAi LCAkbHNuNSk7Ci0KLSMgTXVsdGlwbGUgdGFyZ2V0cwotIyBMYXN0IGVudHJ5IGhhcyBwcmlvcml0 eSAobm90ZSB0aGF0IGFuIGFycmF5IHJlc3BlY3RzIHRoZSBvcmRlciBvZiBpdGVtcwotIyBub3Qg aGFzaGVzKS4KLUByZWNvdmVyeV9wYXJhbXMgPSAoCi0JInJlY292ZXJ5X3RhcmdldF9uYW1lID0g JyRyZWNvdmVyeV9uYW1lJyIsCi0JInJlY292ZXJ5X3RhcmdldF94aWQgID0gJyRyZWNvdmVyeV90 eGlkJyIsCi0JInJlY292ZXJ5X3RhcmdldF90aW1lID0gJyRyZWNvdmVyeV90aW1lJyIpOwotdGVz dF9yZWNvdmVyeV9zdGFuZGJ5KCduYW1lICsgWElEICsgdGltZScsCi0JJ3N0YW5kYnlfNicsICRu b2RlX21hc3RlciwgXEByZWNvdmVyeV9wYXJhbXMsICIzMDAwIiwgJGxzbjMpOwotQHJlY292ZXJ5 X3BhcmFtcyA9ICgKLQkicmVjb3ZlcnlfdGFyZ2V0X3RpbWUgPSAnJHJlY292ZXJ5X3RpbWUnIiwK LQkicmVjb3ZlcnlfdGFyZ2V0X25hbWUgPSAnJHJlY292ZXJ5X25hbWUnIiwKLQkicmVjb3Zlcnlf dGFyZ2V0X3hpZCAgPSAnJHJlY292ZXJ5X3R4aWQnIik7Ci10ZXN0X3JlY292ZXJ5X3N0YW5kYnko J3RpbWUgKyBuYW1lICsgWElEJywKLQknc3RhbmRieV83JywgJG5vZGVfbWFzdGVyLCBcQHJlY292 ZXJ5X3BhcmFtcywgIjIwMDAiLCAkbHNuMik7Ci1AcmVjb3ZlcnlfcGFyYW1zID0gKAotCSJyZWNv dmVyeV90YXJnZXRfeGlkICA9ICckcmVjb3ZlcnlfdHhpZCciLAotCSJyZWNvdmVyeV90YXJnZXRf dGltZSA9ICckcmVjb3ZlcnlfdGltZSciLAotCSJyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICckcmVj b3ZlcnlfbmFtZSciKTsKLXRlc3RfcmVjb3Zlcnlfc3RhbmRieSgnWElEICsgdGltZSArIG5hbWUn LAotCSdzdGFuZGJ5XzgnLCAkbm9kZV9tYXN0ZXIsIFxAcmVjb3ZlcnlfcGFyYW1zLCAiNDAwMCIs ICRsc240KTsKLUByZWNvdmVyeV9wYXJhbXMgPSAoCi0JInJlY292ZXJ5X3RhcmdldF94aWQgID0g JyRyZWNvdmVyeV90eGlkJyIsCi0JInJlY292ZXJ5X3RhcmdldF90aW1lID0gJyRyZWNvdmVyeV90 aW1lJyIsCi0JInJlY292ZXJ5X3RhcmdldF9uYW1lID0gJyRyZWNvdmVyeV9uYW1lJyIsCi0JInJl Y292ZXJ5X3RhcmdldF9sc24gPSAnJHJlY292ZXJ5X2xzbiciLCk7Ci10ZXN0X3JlY292ZXJ5X3N0 YW5kYnkoJ1hJRCArIHRpbWUgKyBuYW1lICsgTFNOJywKLQknc3RhbmRieV85JywgJG5vZGVfbWFz dGVyLCBcQHJlY292ZXJ5X3BhcmFtcywgIjUwMDAiLCAkbHNuNSk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWNvdmVyeS90LzAwNF90aW1lbGluZV9zd2l0Y2gucGwgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzAwNF90aW1lbGluZV9zd2l0Y2gucGwKaW5kZXggMzRlZTMzNS4uMjM0NDU2OCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDRfdGltZWxpbmVfc3dpdGNoLnBsCisrKyBiL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDA0X3RpbWVsaW5lX3N3aXRjaC5wbApAQCAtNDIsMTIgKzQyLDEw IEBAICRub2RlX21hc3Rlci0+dGVhcmRvd25fbm9kZTsKICRub2RlX3N0YW5kYnlfMS0+cHJvbW90 ZTsKIAogIyBTd2l0Y2ggc3RhbmRieSAyIHRvIHJlcGxheSBmcm9tIHN0YW5kYnkgMQotcm10cmVl KCRub2RlX3N0YW5kYnlfMi0+ZGF0YV9kaXIgLiAnL3JlY292ZXJ5LmNvbmYnKTsKIG15ICRjb25u c3RyXzEgPSAkbm9kZV9zdGFuZGJ5XzEtPmNvbm5zdHI7CiAkbm9kZV9zdGFuZGJ5XzItPmFwcGVu ZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAog cHJpbWFyeV9jb25uaW5mbz0nJGNvbm5zdHJfMSBhcHBsaWNhdGlvbl9uYW1lPUB7WyRub2RlX3N0 YW5kYnlfMi0+bmFtZV19Jwotc3RhbmRieV9tb2RlPW9uCiByZWNvdmVyeV90YXJnZXRfdGltZWxp bmU9J2xhdGVzdCcKICkpOwogJG5vZGVfc3RhbmRieV8yLT5yZXN0YXJ0OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDVfcmVwbGF5X2RlbGF5LnBsIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wMDVfcmVwbGF5X2RlbGF5LnBsCmluZGV4IDg5MDljNDUuLjZjODVjOTIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA1X3JlcGxheV9kZWxheS5wbAorKysgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzAwNV9yZXBsYXlfZGVsYXkucGwKQEAgLTI1LDcgKzI1LDcgQEAgbXkgJGRl bGF5ICAgICAgICA9IDM7CiAkbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKCRub2RlX21h c3RlciwgJGJhY2t1cF9uYW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSk7CiAkbm9kZV9zdGFuZGJ5 LT5hcHBlbmRfY29uZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYn LCBxcSgKIHJlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9ICcke2RlbGF5fXMnCiApKTsKICRub2Rl X3N0YW5kYnktPnN0YXJ0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDlfdHdv cGhhc2UucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbAppbmRleCA5ZWEz YmQ2Li5kYWMyZDRlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFz ZS5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbApAQCAtMjMwLDcg KzIzMCw3IEBAIGlzKCRwc3FsX3JjLCAnMCcsICJSZXN0b3JlIG9mIHByZXBhcmVkIHRyYW5zYWN0 aW9uIG9uIHByb21vdGVkIHN0YW5kYnkiKTsKICMgcmVzdGFydCBvbGQgbWFzdGVyIGFzIG5ldyBz dGFuZGJ5CiAkY3VyX3N0YW5kYnktPmVuYWJsZV9zdHJlYW1pbmcoJGN1cl9tYXN0ZXIpOwogJGN1 cl9zdGFuZGJ5LT5hcHBlbmRfY29uZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jl c3FsLmNvbmYnLCBxcSgKIHJlY292ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAk Y3VyX3N0YW5kYnktPnN0YXJ0OwpAQCAtMjY4LDcgKzI2OCw3IEBAIGlzKCRwc3FsX291dCwgJzEn LAogIyByZXN0YXJ0IG9sZCBtYXN0ZXIgYXMgbmV3IHN0YW5kYnkKICRjdXJfc3RhbmRieS0+ZW5h YmxlX3N0cmVhbWluZygkY3VyX21hc3Rlcik7CiAkY3VyX3N0YW5kYnktPmFwcGVuZF9jb25mKAot CSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcmVjb3Zlcnlf dGFyZ2V0X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsKICRjdXJfc3RhbmRieS0+c3RhcnQ7CkBAIC0z MDgsNyArMzA4LDcgQEAgaXMoJHBzcWxfb3V0LCAnMScsCiAjIHJlc3RhcnQgb2xkIG1hc3RlciBh cyBuZXcgc3RhbmRieQogJGN1cl9zdGFuZGJ5LT5lbmFibGVfc3RyZWFtaW5nKCRjdXJfbWFzdGVy KTsKICRjdXJfc3RhbmRieS0+YXBwZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkn cG9zdGdyZXNxbC5jb25mJywgcXEoCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcK ICkpOwogJGN1cl9zdGFuZGJ5LT5zdGFydDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5 L3QvMDEwX2xvZ2ljYWxfZGVjb2RpbmdfdGltZWxpbmVzLnBsIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wMTBfbG9naWNhbF9kZWNvZGluZ190aW1lbGluZXMucGwKaW5kZXggYTc2ZWVhOC4uNGZiZDM4 NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTBfbG9naWNhbF9kZWNvZGluZ190 aW1lbGluZXMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTBfbG9naWNhbF9kZWNvZGlu Z190aW1lbGluZXMucGwKQEAgLTc2LDcgKzc2LDcgQEAgJG5vZGVfcmVwbGljYS0+aW5pdF9mcm9t X2JhY2t1cCgKIAkkbm9kZV9tYXN0ZXIsICRiYWNrdXBfbmFtZSwKIAloYXNfc3RyZWFtaW5nID0+ IDEsCiAJaGFzX3Jlc3RvcmluZyA9PiAxKTsKLSRub2RlX3JlcGxpY2EtPmFwcGVuZF9jb25mKCdy ZWNvdmVyeS5jb25mJywKKyRub2RlX3JlcGxpY2EtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLAogCXFbcHJpbWFyeV9zbG90X25hbWUgPSAncGh5c19zbG90J10pOwogCiAkbm9kZV9yZXBs aWNhLT5zdGFydDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEyX3N1YnRyYW5z YWN0aW9ucy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEyX3N1YnRyYW5zYWN0aW9ucy5wbApp bmRleCBlZmMyM2QwLi5lMjZjYzljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAx Ml9zdWJ0cmFuc2FjdGlvbnMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTJfc3VidHJh bnNhY3Rpb25zLnBsCkBAIC0xMjAsNyArMTIwLDcgQEAgaXMoJHBzcWxfb3V0LCAnODEyOCcsICJW aXNpYmxlIik7CiAoJG5vZGVfbWFzdGVyLCAkbm9kZV9zdGFuZGJ5KSA9ICgkbm9kZV9zdGFuZGJ5 LCAkbm9kZV9tYXN0ZXIpOwogJG5vZGVfc3RhbmRieS0+ZW5hYmxlX3N0cmVhbWluZygkbm9kZV9t YXN0ZXIpOwogJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBx cSgKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xh dGVzdCcKICkpOwogJG5vZGVfc3RhbmRieS0+c3RhcnQ7CkBAIC0xNzEsNyArMTcxLDcgQEAgaXMo JHBzcWxfb3V0LCAnLTEnLCAiTm90IHZpc2libGUiKTsKICgkbm9kZV9tYXN0ZXIsICRub2RlX3N0 YW5kYnkpID0gKCRub2RlX3N0YW5kYnksICRub2RlX21hc3Rlcik7CiAkbm9kZV9zdGFuZGJ5LT5l bmFibGVfc3RyZWFtaW5nKCRub2RlX21hc3Rlcik7CiAkbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29u ZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHJlY292 ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAkbm9kZV9zdGFuZGJ5LT5zdGFydDsK QEAgLTIxMiw3ICsyMTIsNyBAQCBpcygkcHNxbF9vdXQsICctMScsICJOb3QgdmlzaWJsZSIpOwog KCRub2RlX21hc3RlciwgJG5vZGVfc3RhbmRieSkgPSAoJG5vZGVfc3RhbmRieSwgJG5vZGVfbWFz dGVyKTsKICRub2RlX3N0YW5kYnktPmVuYWJsZV9zdHJlYW1pbmcoJG5vZGVfbWFzdGVyKTsKICRu b2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3Rn cmVzcWwuY29uZicsIHFxKAogcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsK ICRub2RlX3N0YW5kYnktPnN0YXJ0Owo= ------==--bound.359522.web17o.yandex.ru--