<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>31312</bug_id>
          
          <creation_ts>2009-11-10 14:03:39 -0800</creation_ts>
          <short_desc>Decouple authentication panel callbacks from ResourceHandle</short_desc>
          <delta_ts>2009-11-10 14:39:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>162204</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-10 14:03:39 -0800</bug_when>
    <thetext>SocketStream also wants to ask the user about credentials. For now, it&apos;s just proxy credentials.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162206</commentid>
    <comment_count>1</comment_count>
      <attachid>42893</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-10 14:11:57 -0800</bug_when>
    <thetext>Created attachment 42893
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162220</commentid>
    <comment_count>2</comment_count>
      <attachid>42893</attachid>
    <who name="">mitz</who>
    <bug_when>2009-11-10 14:25:20 -0800</bug_when>
    <thetext>Comment on attachment 42893
proposed patch

&gt; + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
&gt; + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
&gt; + */
&gt; +#ifndef AuthenticationClient_h
&gt; +#define AuthenticationClient_h

There should be an empty line before the #ifndef. Also, this is not the latest version of the license Apple uses (see &lt;http://webkit.org/coding/bsd-license.html&gt; and &lt;http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.h&gt; for a comment-formatted version).

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162233</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-10 14:39:23 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/50772&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42893</attachid>
            <date>2009-11-10 14:11:57 -0800</date>
            <delta_ts>2009-11-10 14:25:20 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>AuthClient.txt</filename>
            <type>text/plain</type>
            <size>29092</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDc2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDktMTEtMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMzEyCisgICAgICAgIERl
Y291cGxlIGF1dGhlbnRpY2F0aW9uIHBhbmVsIGNhbGxiYWNrcyBmcm9tIFJlc291cmNlSGFuZGxl
CisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgU29ja2V0
U3RyZWFtSGFuZGxlIGFsc28gbmVlZHMgdG8gcmVxdWVzdCBjcmVkZW50aWFscywgc28gaXQncyBu
b3QgYXBwcm9wcmlhdGUgdG8gc3RvcmUKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUgYXMgZGVsZWdh
dGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgQWRkZWQgYSBu
ZXcgaW50ZXJmYWNlIGZvciBsaXN0ZW5pbmcgdG8gYXV0aGVudGljYXRpb24gcGFuZWwgbm90aWZp
Y2F0aW9ucy4KKworICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DbGllbnQ6OnJlZik6
IFVzaW5nIG91ciB1c3VhbCBtZXRob2Qgb2YgZXhwb3NpbmcgcmVmY291bnRpbmcgb24gYW4KKyAg
ICAgICAgaW50ZXJmYWNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
bGllbnQ6OmRlcmVmKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVmQXV0aGVu
dGljYXRpb25DbGllbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2U6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwbGF0Zm9ybUNvbXBhcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjphdXRoZW50aWNhdGlvbkNs
aWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
OmF1dGhlbnRpY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOjphdXRoZW50aWNhdGlvbkNsaWVudCk6CisgICAgICAgIEtlZXBpbmcgYSBy
ZWZlcmVuY2UgdG8gQXV0aGVudGljYXRpb25DbGllbnQsIG5vdCB0byBSZXNvdXJjZUhhbmRsZS4K
KwogMjAwOS0xMS0xMCAgSmVucyBBbGZrZSAgPHNuZWpAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCShyZXZpc2lvbiA1MDc0MCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTc3MjMsNiArNzcyMywxMCBAQAogCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTSW5zcGVjdG9yQmFja2VuZC5jcHAiDQogCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSW5zcGVjdG9yQmFja2VuZC5jcHAi
DQorCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiINCiAJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KQEAgLTc3NzMsMTAgKzc3NzcsNiBA
QAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0luc3BlY3RvckJhY2tlbmQuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0K
LQkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0luc3BlY3RvckJhY2tlbmQuaCINCiAJCQkJPg0K
IAkJCTwvRmlsZT4NCkBAIC0yMzk2Niw2ICsyMzk2NiwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xB
dXRoZW50aWNhdGlvbkNsaWVudC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcQ3JlZGVudGlhbC5jcHAi
DQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0zNDU3Miw5NCArMzQ1NzYsMTAgQEAKIAkJCQk8
RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0N1c3RvbVBvc2l0aW9u
Q2FsbGJhY2suY3BwIg0KIAkJCQkJPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
LQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
LQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJPg0KLQkJ
CQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm98V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJ
CQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJ
CQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21Qb3NpdGlvbkVy
cm9yQ2FsbGJhY2suY3BwIg0KIAkJCQkJPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
Ig0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJPg0K
LQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4N
Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0J
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm98V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQot
CQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJ
PEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNDdXN0b21TUUxTdGF0
ZW1lbnRDYWxsYmFjay5jcHAiDQpAQCAtMzYwNzYsNDggKzM1OTk2LDYgQEAKIAkJCQk8RmlsZQ0K
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0dlb2xvY2F0aW9uQ3VzdG9tLmNw
cCINCiAJCQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQkJCQk+DQot
CQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0K
LQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJ
CQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0K
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm98V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMy
Ig0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJCT4NCi0JCQkJ
CQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSGlzdG9yeUN1c3RvbS5jcHAiDQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDUwNzQw
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2MDIsNiArNDYwMiw3IEBACiAJCUUxMEI5Q0NEMEI3NDdBNDQwMDNFRDg5MCAv
KiBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUNDQjBCNzQ3QTQ0MDAzRUQ4OTAgLyogRE9NQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLm1tICovOyB9OwogCQlFMTFDOUQ5QjBFQjM2ODEyMDBFNDA5REIgLyog
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTExQzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMTFDOURCMDBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTFDOURB
RjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi87IH07CisJ
CUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNDc0ODMxMEFBMTYx
RDAwQjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8q
IE5hdmlnYXRvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxMjcxOUM2MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggKi87IH07
CiAJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjcxOUM5MEVFRUMyMTMw
MEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCAqLzsgfTsKIAkJRTEyNzFBMEIwRUVFQzc3QTAw
RjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyNzFBMEEwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmln
YXRvci5oICovOyB9OwpAQCAtOTc2Miw2ICs5NzYzLDcgQEAKIAkJRTEwQjlDQ0IwQjc0N0E0NDAw
M0VEODkwIC8qIERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTExQzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTFD
OURBRjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEyNDc0ODMxMEFBMTYxRDAwQjc5NDkz
IC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1dGhlbnRpY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxMjcxOUM2MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTEyNzE5QzkwRUVFQzIxMzAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yQmFzZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjcxQTBBMEVFRUM3N0EwMEY2MTIxMyAv
KiBXb3JrZXJOYXZpZ2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29y
a2VyTmF2aWdhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk5Miw2ICsx
MDk5NCw3IEBACiAJCQkJNjU2Qjg0RTcwQUVBMURBRTAwQTA5NUI0IC8qIG1hYyAqLywKIAkJCQk5
MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCAqLywKIAkJCQk5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlLmggKi8sCisJCQkJRTEyNDc0ODMxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJNTE0Qzc2NTgwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRl
bnRpYWwuY3BwICovLAogCQkJCTUxNEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFs
LmggKi8sCiAJCQkJNTFBMDUyMzIxMDU4Nzc0RjAwQ0M5RTk1IC8qIENyZWRlbnRpYWxTdG9yYWdl
LmNwcCAqLywKQEAgLTE4MDk5LDYgKzE4MTAyLDcgQEAKIAkJCQkxNDc5RkFGMDEwOUFFMzc1MDBE
RUQ2NTUgLyogUmVuZGVyUnVieUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzlGQUYyMTA5
QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc5
RkFGNDEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVRleHQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRp
b25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQXV0aGVu
dGljYXRpb25DbGllbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9BdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisjaWZuZGVmIEF1dGhl
bnRpY2F0aW9uQ2xpZW50X2gKKyNkZWZpbmUgQXV0aGVudGljYXRpb25DbGllbnRfaAorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOworY2xhc3Mg
Q3JlZGVudGlhbDsKKworY2xhc3MgQXV0aGVudGljYXRpb25DbGllbnQgeworcHVibGljOgorICAg
IHZpcnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOworCisgICAgdm9pZCByZWYoKSB7IHJl
ZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KKyAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkF1dGhl
bnRpY2F0aW9uQ2xpZW50KCk7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkF1dGhlbnRp
Y2F0aW9uQ2xpZW50KCkgeyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhl
bnRpY2F0aW9uQ2xpZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0
aW9uQ2xpZW50KCkgPSAwOworfTsKKworfQorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVudC5oCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiA1MDc0MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFJlc291cmNlSGFuZGxlX2gKIAogI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKICNp
bmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTkxLDcgKzkyLDcgQEAgY2xhc3MgU2hhcmVkQnVm
ZmVyOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVGltZXI7CiAKLWNsYXNzIFJlc291
cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+IHsKK2NsYXNzIFJl
c291cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+LCBwdWJsaWMg
QXV0aGVudGljYXRpb25DbGllbnQgewogcHJpdmF0ZToKICAgICBSZXNvdXJjZUhhbmRsZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgbWlnaHREb3dubG9hZEZyb21IYW5k
bGUpOwogCkBAIC0xMTgsOSArMTE5LDkgQEAgcHVibGljOgogI2VuZGlmCiAjaWYgUExBVEZPUk0o
TUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoQ1VSTCkKICAgICB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwot
ICAgIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgY29uc3QgQ3JlZGVudGlhbCYpOwotICAgIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7Ci0gICAg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJik7CisgICAgdmlydHVhbCB2b2lkIHJlY2Vp
dmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
CkBAIC0xOTAsMTEgKzE5MSwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVGYWlsdXJlKFRp
bWVyPFJlc291cmNlSGFuZGxlPiopOwogCisgICAgdXNpbmcgUmVmQ291bnRlZDxSZXNvdXJjZUhh
bmRsZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6ZGVyZWY7
CisKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwogCiAg
ICAgYm9vbCBzdGFydChGcmFtZSopOwogCisgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0
aW9uQ2xpZW50KCkgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0
aW9uQ2xpZW50KCkgeyBkZXJlZigpOyB9CisKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbDsKICAgICBPd25QdHI8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4gZDsKIH07Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DRi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0Yu
Y3BwCShyZXZpc2lvbiA1MDc0MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRo
ZW50aWNhdGlvbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1
ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJDcmVk
ZW50aWFsLmgiCiAjaW5jbHVkZSAiUHJvdGVjdGlvblNwYWNlLmgiCi0jaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKIAogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTEF1dGhDaGFsbGVuZ2VQcml2
Lmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ3JlZGVudGlhbFByaXYuaD4KQEAgLTUxLDIw
ICs1MSwyMCBAQCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DCiB9CiAK
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShDRlVSTEF1
dGhDaGFsbGVuZ2VSZWYgY2ZDaGFsbGVuZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGUqIHNvdXJjZUhhbmRsZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRoZW50aWNhdGlv
bkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQpCiAgICAgOiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUJhc2UoY29yZShDRlVSTEF1dGhDaGFsbGVuZ2VHZXRQcm90ZWN0aW9uU3BhY2UoY2ZDaGFs
bGVuZ2UpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlKENGVVJMQXV0
aENoYWxsZW5nZUdldFByb3Bvc2VkQ3JlZGVudGlhbChjZkNoYWxsZW5nZSkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENGVVJMQXV0aENoYWxsZW5nZUdldFByZXZpb3VzRmFp
bHVyZUNvdW50KGNmQ2hhbGxlbmdlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoQ0ZVUkxSZXNwb25zZVJlZilDRlVSTEF1dGhDaGFsbGVuZ2VHZXRGYWlsdXJlUmVzcG9uc2Uo
Y2ZDaGFsbGVuZ2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENGVVJMQXV0
aENoYWxsZW5nZUdldEVycm9yKGNmQ2hhbGxlbmdlKSkKLSAgICAsIG1fc291cmNlSGFuZGxlKHNv
dXJjZUhhbmRsZSkKKyAgICAsIG1fYXV0aGVudGljYXRpb25DbGllbnQoYXV0aGVudGljYXRpb25D
bGllbnQpCiAgICAgLCBtX2NmQ2hhbGxlbmdlKGNmQ2hhbGxlbmdlKQogewogfQogCiBib29sIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwbGF0Zm9ybUNvbXBhcmUoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmIGEsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBiKQogewotICAg
IGlmIChhLnNvdXJjZUhhbmRsZSgpICE9IGIuc291cmNlSGFuZGxlKCkpCisgICAgaWYgKGEuYXV0
aGVudGljYXRpb25DbGllbnQoKSAhPSBiLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChhLmNmVVJMQXV0aENoYWxsZW5nZVJlZigpICE9IGIu
Y2ZVUkxBdXRoQ2hhbGxlbmdlUmVmKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaAkocmV2aXNpb24gNTA3NDAp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjkgKzI2LDI3IEBACiAjZGVmaW5lIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlX2gKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5o
IgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25D
bGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9DRlVS
TEF1dGhDaGFsbGVuZ2UqIENGVVJMQXV0aENoYWxsZW5nZVJlZjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBSZXNvdXJjZUhhbmRsZTsKLQogY2xhc3MgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgOiBwdWJsaWMgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlIHsKIHB1YmxpYzoKICAg
ICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIHt9CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRp
YWwmIHByb3Bvc2VkQ3JlZGVudGlhbCwgdW5zaWduZWQgcHJldmlvdXNGYWlsdXJlQ291bnQsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cik7Ci0gICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmLCBS
ZXNvdXJjZUhhbmRsZSogc291cmNlSGFuZGxlKTsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShDRlVSTEF1dGhDaGFsbGVuZ2VSZWYsIEF1dGhlbnRpY2F0aW9uQ2xpZW50Kik7CiAKLSAgICBS
ZXNvdXJjZUhhbmRsZSogc291cmNlSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VIYW5k
bGUuZ2V0KCk7IH0KKyAgICBBdXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9CiAgICAg
Q0ZVUkxBdXRoQ2hhbGxlbmdlUmVmIGNmVVJMQXV0aENoYWxsZW5nZVJlZigpIGNvbnN0IHsgcmV0
dXJuIG1fY2ZDaGFsbGVuZ2UuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlOwogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29t
cGFyZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYSwgY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmIGIpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX3NvdXJjZUhh
bmRsZTsKKyAgICBSZWZQdHI8QXV0aGVudGljYXRpb25DbGllbnQ+IG1fYXV0aGVudGljYXRpb25D
bGllbnQ7CiAgICAgUmV0YWluUHRyPENGVVJMQXV0aENoYWxsZW5nZVJlZj4gbV9jZkNoYWxsZW5n
ZTsKIH07CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oCShyZXZpc2lvbiA1MDc0MCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyNSArMjgsMjMgQEAKICNkZWZpbmUgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VfaAogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNl
LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlv
bkNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgUmVzb3VyY2VIYW5kbGU7Ci0KICAgICBjbGFzcyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSA6IHB1YmxpYyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UgewogICAgIHB1
YmxpYzoKICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSB7fQogICAgICAgICBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50
aWFsJiBwcm9wb3NlZENyZWRlbnRpYWwsIHVuc2lnbmVkIHByZXZpb3VzRmFpbHVyZUNvdW50LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCi0gICAgICAg
IFJlc291cmNlSGFuZGxlKiBzb3VyY2VIYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUhh
bmRsZS5nZXQoKTsgfQorICAgICAgICBBdXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRp
b25DbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9
CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlOwogICAgICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwog
Ci0gICAgICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9zb3VyY2VIYW5kbGU7CisgICAgICAg
IFJlZlB0cjxBdXRoZW50aWNhdGlvbkNsaWVudD4gbV9hdXRoZW50aWNhdGlvbkNsaWVudDsKICAg
ICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgJKHJldmlz
aW9uIDUwNzQwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDExIEBACiAjZGVmaW5l
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlX2gKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVzb3VyY2VIYW5kbGU7Ci0KIGNsYXNzIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlIDogcHVibGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZSB7CiBwdWJs
aWM6CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQpAQCAtNDQsOSArNDIsOSBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIFJlc291cmNlSGFuZGxlKiBzb3VyY2VIYW5kbGUoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZUhhbmRsZS5nZXQoKTsgfQorICAgIEF1dGhlbnRpY2F0aW9u
Q2xpZW50KiBhdXRoZW50aWNhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGlj
YXRpb25DbGllbnQuZ2V0KCk7IH0KIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9zb3Vy
Y2VIYW5kbGU7ICAgIAorICAgIFJlZlB0cjxBdXRoZW50aWNhdGlvbkNsaWVudD4gbV9hdXRoZW50
aWNhdGlvbkNsaWVudDsKIH07CiAKIH0KSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDc2MykKKysrIFdlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTEt
MTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMzEyCisgICAgICAgIERlY291cGxlIGF1dGhlbnRpY2F0aW9uIHBh
bmVsIGNhbGxiYWNrcyBmcm9tIFJlc291cmNlSGFuZGxlCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAg
ICAqIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNwcDoKKyAgICAgICAgKFdlYlVSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjppbml0V2l0aEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToK
KyAgICAgICAgKFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpzZW5kZXIpOgorICAgICAg
ICAqIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyLmNwcDoKKyAgICAgICAgKFdl
YlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpXZWJVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVNlbmRlcik6CisgICAgICAgIChXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNl
bmRlcjo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAgICAoV2ViVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VTZW5kZXI6OmF1dGhlbnRpY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKiBXZWJVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlci5oOgorICAgICAgICAqIFdlYlVSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlU2VuZGVyQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VTZW5kZXI6OmNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpjb250aW51ZVdpdGhvdXRD
cmVkZW50aWFsRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXI6OnVzZUNyZWRlbnRpYWwpOgorICAgICAgICBBZGp1
c3RlZCBmb3IgV2ViQ29yZSBjaGFuZ2VzLgorCiAyMDA5LTExLTA4ICBKYW5uZSBLb3NraW5lbiAg
PGphbm5lLnAua29za2luZW5AZGlnaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdl
ciBGcmV5dGhlci4KSW5kZXg6IFdlYktpdC93aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuY3BwCShyZXZpc2lvbiA1MDc0MCkKKysrIFdlYktpdC93aW4vV2ViVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxBdXRoZW50aQogICAgICAgICByZXR1cm4gRV9O
T0lOVEVSRkFDRTsKIAogI2lmIFVTRShDRk5FVFdPUkspCi0gICAgbV9hdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHdlYkNoYWxsZW5nZS0+YXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoKS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSwgd2ViU2VuZGVyLT5yZXNv
dXJjZUhhbmRsZSgpKTsKKyAgICBtX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2Uod2ViQ2hhbGxlbmdlLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpLmNm
VVJMQXV0aENoYWxsZW5nZVJlZigpLCB3ZWJTZW5kZXItPmF1dGhlbnRpY2F0aW9uQ2xpZW50KCkp
OwogCiAgICAgcmV0dXJuIFNfT0s7CiAjZWxzZQpAQCAtMjIwLDggKzIyMCw4IEBAIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVVJMQXV0aGVudGkKICAgICAvKiBbb3V0LCByZXR2YWxdICov
IElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcioqIHNlbmRlcikKIHsKICAgICBp
ZiAoIW1fc2VuZGVyKSB7Ci0gICAgICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBtX2F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLnNvdXJjZUhhbmRsZSgpOwotICAgICAgICBtX3NlbmRlci5hZG9w
dFJlZihXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcjo6Y3JlYXRlSW5zdGFuY2Uo
aGFuZGxlKSk7CisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBjbGllbnQgPSBtX2F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7CisgICAgICAgIG1fc2Vu
ZGVyLmFkb3B0UmVmKFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpjcmVhdGVJ
bnN0YW5jZShjbGllbnQpKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9zZW5kZXIuY29weVJlZlRv
KHNlbmRlcik7CkluZGV4OiBXZWJLaXQvd2luL1dlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
U2VuZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlVSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlU2VuZGVyLmNwcAkocmV2aXNpb24gNTA3NDApCisrKyBXZWJLaXQvd2luL1dlYlVS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
MTggKzM0LDE4IEBACiAjaW5jbHVkZSAiV2ViVVJMQ3JlZGVudGlhbC5oIgogCiAjcHJhZ21hIHdh
cm5pbmcocHVzaCwgMCkKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNsaWVudC5oPgogI3ByYWdtYSB3YXJuaW5nKHBv
cCkKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC8vIFdlYlVSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlU2VuZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VT
ZW5kZXI6OldlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyKFBhc3NSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSkKK1dlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVy
OjpXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcihQYXNzUmVmUHRyPEF1dGhlbnRp
Y2F0aW9uQ2xpZW50PiBjbGllbnQpCiAgICAgOiBtX3JlZkNvdW50KDApCi0gICAgLCBtX2hhbmRs
ZShoYW5kbGUpCisgICAgLCBtX2NsaWVudChjbGllbnQpCiB7Ci0gICAgQVNTRVJUKG1faGFuZGxl
KTsKKyAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIGdDbGFzc0NvdW50Kys7CiAgICAgZ0NsYXNz
TmFtZUNvdW50LmFkZCgiV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIiKTsKIH0K
QEAgLTU2LDkgKzU2LDkgQEAgV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXI6On5X
ZQogICAgIGdDbGFzc05hbWVDb3VudC5yZW1vdmUoIldlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlU2VuZGVyIik7CiB9CiAKLVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyKiBX
ZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcjo6Y3JlYXRlSW5zdGFuY2UoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZT4gaGFuZGxlKQorV2ViVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VTZW5kZXIqIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpj
cmVhdGVJbnN0YW5jZShQYXNzUmVmUHRyPFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2xpZW50PiBj
bGllbnQpCiB7Ci0gICAgV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIqIGluc3Rh
bmNlID0gbmV3IFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyKGhhbmRsZSk7Cisg
ICAgV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIqIGluc3RhbmNlID0gbmV3IFdl
YlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyKGNsaWVudCk7CiAgICAgaW5zdGFuY2Ut
PkFkZFJlZigpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KQEAgLTk3LDggKzk3LDggQEAgVUxP
TkcgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVVJMQXV0aGVudGljYQogCiAvLyBXZWJVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVNlbmRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlc291cmNlSGFuZGxlKiBXZWJVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcjo6cmVzb3VyY2VIYW5kbGUoKSBjb25zdAorQXV0
aGVudGljYXRpb25DbGllbnQqIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjph
dXRoZW50aWNhdGlvbkNsaWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faGFuZGxlLmdldCgp
OworICAgIHJldHVybiBtX2NsaWVudC5nZXQoKTsKIH0KIApJbmRleDogV2ViS2l0L3dpbi9XZWJV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIuaAkocmV2aXNpb24gNTA3NDAp
CisrKyBXZWJLaXQvd2luL1dlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDE2ICszMiwxNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFJlc291cmNlSGFuZGxlOworICAgIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2xpZW50OwogfQogCiBjbGFzcyBERUNMU1BFQ19VVUlEKCI1Q0FD
RDYzNy1GODJGLTQ5MUYtOTQ3QS01RENBMzhBQTBGRUEiKSBXZWJVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVNlbmRlcgogICAgIDogcHVibGljIElXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNlbmRlcgogewogcHVibGljOgotICAgIHN0YXRpYyBXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVNlbmRlciogY3JlYXRlSW5zdGFuY2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZT4pOworICAgIHN0YXRpYyBXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciog
Y3JlYXRlSW5zdGFuY2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNsaWVudD4p
OwogcHJpdmF0ZToKLSAgICBXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcihQYXNz
UmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPik7CisgICAgV2ViVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VTZW5kZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNsaWVu
dD4pOwogICAgIH5XZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcigpOwogcHVibGlj
OgogICAgIC8vIElVbmtub3duCkBAIC02MCwxMiArNjAsMTIgQEAgcHVibGljOgogICAgICAgICAv
KiBbaW5dICovIElXZWJVUkxDcmVkZW50aWFsKiBjcmVkZW50aWFsLCAKICAgICAgICAgLyogW2lu
XSAqLyBJV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UqIGNoYWxsZW5nZSk7CiAKLSAgICBX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSogcmVzb3VyY2VIYW5kbGUoKSBjb25zdDsKKyAgICBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICBVTE9ORyBtX3JlZkNvdW50OwogCi0gICAgUmVmUHRyPFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DbGllbnQ+IG1fY2xpZW50OwogfTsKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvd2luL1dl
YlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyQ0ZOZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXJDRk5ldC5jcHAJ
KHJldmlzaW9uIDUwNzQwKQorKysgV2ViS2l0L3dpbi9XZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVNlbmRlckNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIldlYlVSTENyZWRlbnRpYWwuaCIKIAogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApCi0j
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0
aGVudGljYXRpb25DbGllbnQuaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtNDgsNyArNDgsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlVSTEF1dGhlbnRpCiAgICAgaWYgKCF3ZWJDaGFsbGVuZ2UpCiAgICAgICAgIHJldHVybiBF
X0ZBSUw7CiAKLSAgICBtX2hhbmRsZS0+cmVjZWl2ZWRDYW5jZWxsYXRpb24od2ViQ2hhbGxlbmdl
LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpKTsKKyAgICBtX2NsaWVudC0+cmVjZWl2ZWRDYW5j
ZWxsYXRpb24od2ViQ2hhbGxlbmdlLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpKTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KIApAQCAtNTksNyArNTksNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYlVSTEF1dGhlbnRpCiAgICAgaWYgKCF3ZWJDaGFsbGVuZ2UpCiAgICAgICAgIHJldHVy
biBFX0ZBSUw7CiAKLSAgICBtX2hhbmRsZS0+cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhv
dXRDcmVkZW50aWFsKHdlYkNoYWxsZW5nZS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSk7Cisg
ICAgbV9jbGllbnQtPnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbCh3
ZWJDaGFsbGVuZ2UtPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkpOwogICAgIHJldHVybiBTX09L
OwogfQogCkBAIC03NSw2ICs3NSw2IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVVJM
QXV0aGVudGkKICAgICBpZiAoIWNyZWRlbnRpYWwgfHwgRkFJTEVEKGNyZWRlbnRpYWwtPlF1ZXJ5
SW50ZXJmYWNlKF9fdXVpZG9mKFdlYlVSTENyZWRlbnRpYWwpLCAodm9pZCoqKSZ3ZWJDcmVkZW50
aWFsKSkpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBtX2hhbmRsZS0+cmVjZWl2ZWRD
cmVkZW50aWFsKHdlYkNoYWxsZW5nZS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSwgd2ViQ3Jl
ZGVudGlhbC0+Y3JlZGVudGlhbCgpKTsKKyAgICBtX2NsaWVudC0+cmVjZWl2ZWRDcmVkZW50aWFs
KHdlYkNoYWxsZW5nZS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSwgd2ViQ3JlZGVudGlhbC0+
Y3JlZGVudGlhbCgpKTsKICAgICByZXR1cm4gU19PSzsKIH0KSW5kZXg6IFdlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA1
MDc0MCkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNyArMTQzLDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlQ3JlZAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKQogewogI2lmIFVTRShDRk5FVFdPUkspCi0gICAgQVNTRVJUKGNoYWxsZW5n
ZS5zb3VyY2VIYW5kbGUoKSk7CisgICAgQVNTRVJUKGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNs
aWVudCgpKTsKIAogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7
CiAgICAgQ09NUHRyPElXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZT4gcmVzb3VyY2VMb2FkRGVsZWdh
dGU7CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZQogCiAgICAgLy8gSWYgdGhlIFJlc291cmNlTG9hZERlbGVnYXRlIGRvZXNuJ3QgZXhp
c3Qgb3IgZmFpbHMgdG8gaGFuZGxlIHRoZSBjYWxsLCB3ZSB0ZWxsIHRoZSBSZXNvdXJjZUhhbmRs
ZQogICAgIC8vIHRvIGNvbnRpbnVlIHdpdGhvdXQgY3JlZGVudGlhbCAtIHRoaXMgaXMgdGhlIGJl
c3QgYXBwcm94aW1hdGlvbiBvZiBNYWMgYmVoYXZpb3IKLSAgICBjaGFsbGVuZ2Uuc291cmNlSGFu
ZGxlKCktPnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjaGFsbGVu
Z2UpOworICAgIGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZFJlcXVl
c3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY2hhbGxlbmdlKTsKICNlbHNlCiAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="24517"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>