<?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>101057</bug_id>
          
          <creation_ts>2012-11-02 08:18:13 -0700</creation_ts>
          <short_desc>[EFL][WK2] Make EWK classes Ewk_Objects</short_desc>
          <delta_ts>2012-11-07 05:45:42 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>101205</dependson>
    
    <dependson>101322</dependson>
    
    <dependson>101383</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757207</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-02 08:18:13 -0700</bug_when>
    <thetext>Should convert existing WK2 EFL EWK classes to Ewk_Objects. See bug100751.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760503</commentid>
    <comment_count>1</comment_count>
      <attachid>172752</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-07 03:39:47 -0800</bug_when>
    <thetext>Created attachment 172752
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760590</commentid>
    <comment_count>2</comment_count>
      <attachid>172752</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 05:45:37 -0800</bug_when>
    <thetext>Comment on attachment 172752
patch

Clearing flags on attachment: 172752

Committed r133744: &lt;http://trac.webkit.org/changeset/133744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760591</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 05:45:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172752</attachid>
            <date>2012-11-07 03:39:47 -0800</date>
            <delta_ts>2012-11-07 05:45:37 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101057</filename>
            <type>text/plain</type>
            <size>71610</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDI1MGM0NDIyMTA0MDNiN2JiZGI4NjMwNjcyYzNkMmRiNzUyNTY5NDgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE5vdiA3IDEzOjM1OjU2IDIwMTIgKzAyMDAKCiAgICBidWcxMDEwNTcKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggZjAxNDM3Yy4uOTVmMmRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1MiBAQAorMjAxMi0x
MS0wNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgRVdLIGNsYXNzZXMgRXdrX09iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTA1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyBhbGwgdGhlIGV4
aXN0aW5nIEVXSyBjbGFzc2VzIHNoYXJlIGNvbW1vbiBFd2tfT2JqZWN0IHJlZi91bnJlZiBBUEku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Q2FsbGJhY2tzLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaDoKKyAgICAgICAgKEV3a1ZpZXdJ
bXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5j
cHA6CisgICAgICAgIChFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlT3JpZ2luTGlzdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19maWxlX2Nob29zZXJfcmVxdWVzdC5j
cHA6CisgICAgICAgIChFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6OkV3a0ZpbGVDaG9vc2VyUmVxdWVz
dCk6CisgICAgICAgIChFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6On5Fd2tGaWxlQ2hvb3NlclJlcXVl
c3QpOgorICAgICAgICAoRXdrRmlsZUNob29zZXJSZXF1ZXN0OjphbGxvd011bHRpcGxlRmlsZXMp
OgorICAgICAgICAoRXdrRmlsZUNob29zZXJSZXF1ZXN0OjphY2NlcHRlZE1JTUVUeXBlcyk6Cisg
ICAgICAgIChFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6OmNhbmNlbCk6CisgICAgICAgIChFd2tGaWxl
Q2hvb3NlclJlcXVlc3Q6OmNob29zZUZpbGVzKToKKyAgICAgICAgKGV3a19maWxlX2Nob29zZXJf
cmVxdWVzdF9hbGxvd19tdWx0aXBsZV9maWxlc19nZXQpOgorICAgICAgICAoZXdrX2ZpbGVfY2hv
b3Nlcl9yZXF1ZXN0X2FjY2VwdGVkX21pbWV0eXBlc19nZXQpOgorICAgICAgICAoZXdrX2ZpbGVf
Y2hvb3Nlcl9yZXF1ZXN0X2NhbmNlbCk6CisgICAgICAgIChld2tfZmlsZV9jaG9vc2VyX3JlcXVl
c3RfZmlsZXNfY2hvb3NlKToKKyAgICAgICAgKGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9maWxl
X2Nob29zZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a0ZpbGVDaG9vc2VyUmVxdWVzdCk6CisgICAg
ICAgIChFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0LmNwcDoKKyAgICAgICAgKEV3a0Zv
cm1TdWJtaXNzaW9uUmVxdWVzdDo6RXdrRm9ybVN1Ym1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdDo6fkV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgIChFd2tGb3JtU3VibWlzc2lvblJlcXVlc3Q6OmZpZWxkVmFsdWUpOgorICAgICAgICAo
RXdrRm9ybVN1Ym1pc3Npb25SZXF1ZXN0OjpmaWVsZE5hbWVzKToKKyAgICAgICAgKEV3a0Zvcm1T
dWJtaXNzaW9uUmVxdWVzdDo6c3VibWl0KToKKyAgICAgICAgKGV3a19mb3JtX3N1Ym1pc3Npb25f
cmVxdWVzdF9maWVsZF9uYW1lc19nZXQpOgorICAgICAgICAoZXdrX2Zvcm1fc3VibWlzc2lvbl9y
ZXF1ZXN0X2ZpZWxkX3ZhbHVlX2dldCk6CisgICAgICAgIChld2tfZm9ybV9zdWJtaXNzaW9uX3Jl
cXVlc3Rfc3VibWl0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJt
aXNzaW9uX3JlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9z
dWJtaXNzaW9uX3JlcXVlc3RfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrRm9ybVN1Ym1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgKEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcDoKKyAgICAgICAgKEV3a0lu
dGVudDo6RXdrSW50ZW50KToKKyAgICAgICAgKEV3a0ludGVudDo6d2ViSW50ZW50RGF0YSk6Cisg
ICAgICAgIChFd2tJbnRlbnQ6OmFjdGlvbik6CisgICAgICAgIChFd2tJbnRlbnQ6OnR5cGUpOgor
ICAgICAgICAoRXdrSW50ZW50OjpzZXJ2aWNlKToKKyAgICAgICAgKEV3a0ludGVudDo6c3VnZ2Vz
dGlvbnMpOgorICAgICAgICAoRXdrSW50ZW50OjpleHRyYSk6CisgICAgICAgIChFd2tJbnRlbnQ6
OmV4dHJhS2V5cyk6CisgICAgICAgIChld2tfaW50ZW50X2FjdGlvbl9nZXQpOgorICAgICAgICAo
ZXdrX2ludGVudF90eXBlX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3NlcnZpY2VfZ2V0KToK
KyAgICAgICAgKGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KToKKyAgICAgICAgKGV3a19pbnRl
bnRfZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmg6CisgICAgICAgIChFd2tJbnRlbnQpOgor
ICAgICAgICAoRXdrSW50ZW50OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnRfc2VydmljZS5jcHA6CisgICAgICAgIChFd2tJbnRlbnRTZXJ2aWNlOjpFd2tJ
bnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKEV3a0ludGVudFNlcnZpY2U6OmFjdGlvbik6CisgICAg
ICAgIChFd2tJbnRlbnRTZXJ2aWNlOjp0eXBlKToKKyAgICAgICAgKEV3a0ludGVudFNlcnZpY2U6
OmhyZWYpOgorICAgICAgICAoRXdrSW50ZW50U2VydmljZTo6dGl0bGUpOgorICAgICAgICAoRXdr
SW50ZW50U2VydmljZTo6ZGlzcG9zaXRpb24pOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNl
X2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KToKKyAg
ICAgICAgKGV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldCk6CisgICAgICAgIChld2tfaW50ZW50
X3NlcnZpY2VfdGl0bGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2VydmljZV9kaXNwb3Np
dGlvbl9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2Vydmlj
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2
YXRlLmg6CisgICAgICAgIChFd2tJbnRlbnRTZXJ2aWNlKToKKyAgICAgICAgKEV3a0ludGVudFNl
cnZpY2U6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uLmNwcDoKKyAgICAgICAgKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbjo6RXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKEV3a05hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbjo6fkV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAg
IChFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246Om5hdmlnYXRpb25UeXBlKToKKyAgICAgICAg
KEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6bW91c2VCdXR0b24pOgorICAgICAgICAoRXdr
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjptb2RpZmllcnMpOgorICAgICAgICAoRXdrTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uOjpmcmFtZU5hbWUpOgorICAgICAgICAoRXdrTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uOjpyZXF1ZXN0KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbjo6YWNjZXB0KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6cmVq
ZWN0KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6ZG93bmxvYWQpOgor
ICAgICAgICAoZXdrX25hdmlnYXRpb25fcG9saWN5X25hdmlnYXRpb25fdHlwZV9nZXQpOgorICAg
ICAgICAoZXdrX25hdmlnYXRpb25fcG9saWN5X21vdXNlX2J1dHRvbl9nZXQpOgorICAgICAgICAo
ZXdrX25hdmlnYXRpb25fcG9saWN5X21vZGlmaWVyc19nZXQpOgorICAgICAgICAoZXdrX25hdmln
YXRpb25fcG9saWN5X2ZyYW1lX25hbWVfZ2V0KToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX3Bv
bGljeV9yZXF1ZXN0X2dldCk6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fYWNjZXB0KToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9yZWpl
Y3QpOgorICAgICAgICAoZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lf
ZGVjaXNpb25fcHJpdmF0ZS5oOgorICAgICAgICAoRXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2UuY3BwOgorICAgICAgICAoRXdrUmVz
b3VyY2U6OkV3a1Jlc291cmNlKToKKyAgICAgICAgKEV3a1Jlc291cmNlOjp1cmwpOgorICAgICAg
ICAoRXdrUmVzb3VyY2U6OmlzTWFpblJlc291cmNlKToKKyAgICAgICAgKGV3a19yZXNvdXJjZV91
cmxfZ2V0KToKKyAgICAgICAgKGV3a19yZXNvdXJjZV9tYWluX3Jlc291cmNlX2dldCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1Jlc291cmNl
KToKKyAgICAgICAgKEV3a1Jlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZWN1cml0eV9vcmlnaW4uY3BwOgorICAgICAgICAoRXdrU2VjdXJpdHlPcmln
aW46OkV3a1NlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKEV3a1NlY3VyaXR5T3JpZ2luOjpob3N0
KToKKyAgICAgICAgKEV3a1NlY3VyaXR5T3JpZ2luOjpwcm90b2NvbCk6CisgICAgICAgIChFd2tT
ZWN1cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgIChld2tfc2VjdXJpdHlfb3JpZ2luX2hvc3Rf
Z2V0KToKKyAgICAgICAgKGV3a19zZWN1cml0eV9vcmlnaW5fcHJvdG9jb2xfZ2V0KToKKyAgICAg
ICAgKGV3a19zZWN1cml0eV9vcmlnaW5fcG9ydF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZWN1cml0eV9vcmlnaW4uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc2VjdXJpdHlfb3JpZ2luX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1NlY3VyaXR5T3Jp
Z2luKToKKyAgICAgICAgKEV3a1NlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwOgorICAgICAgICAoRXdrX1N0
b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlT3JpZ2luTGlzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxT
Y2hlbWVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6
CisgICAgICAgIChld2tfdmlld19pbnRlbnRfZGVsaXZlcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKG9uRmlsZUNob29zZXJSZXF1ZXN0KToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3N0b3JhZ2VfbWFuYWdlci5jcHA6Cisg
ICAgICAgIChURVNUX0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvRm9ybUNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkZvcm1DbGllbnRFZmw6OndpbGxTdWJtaXRGb3JtKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUxvYWRDbGllbnRFZmw6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JG
cmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZVBvbGljeUNsaWVudEVmbDo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VQb2xpY3lDbGllbnRFZmw6OmRl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9Q
YWdlVUlDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OnJ1
bk9wZW5QYW5lbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxvYWRDbGllbnRF
ZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRDbGllbnRFZmw6OmRpZEluaXRp
YXRlTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9h
ZENsaWVudEVmbC5oOgorCiAyMDEyLTExLTA2ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrZ2FsYXRh
Z2VAZ21haWwuY29tPgogCiAgICAgICAgIE1vdmUgRHJhd2luZ0FyZWFJbXBsIG1ldGhvZHMgZ3Jh
cGhpY3NMYXllckZhY3RvcnksIHNldFJvb3RDb21wb3NpdGluZ0xheWVyICYgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyU3luYyB1bmRlciBBQ0NFTEVSQVRFRF9DT01QT1NJVElORwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0NhbGxiYWNrcy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0NhbGxiYWNrcy5oCmluZGV4
IDdmNTUxMjcuLjM0N2NiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXdDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3Q2FsbGJhY2tzLmgKQEAgLTM0LDIxICszNCwyMiBAQAogCiB0eXBlZGVm
IHN0cnVjdCBFd2tfT2JqZWN0IEV3a19BdXRoX1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBFd2tf
T2JqZWN0IEV3a19Eb3dubG9hZF9Kb2I7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19G
aWxlX0Nob29zZXJfUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IEV3a19PYmplY3QgRXdrX0Zvcm1f
U3VibWlzc2lvbl9SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb247Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19SZXNv
dXJjZTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0
IEV3a19JbnRlbnQ7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQordHlwZWRl
ZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tfSW50ZW50X1NlcnZpY2U7CisjZW5kaWYKKwogc3RydWN0
IEV3a19Eb3dubG9hZF9Kb2JfRXJyb3I7Ci1zdHJ1Y3QgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0
Owotc3RydWN0IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdDsKIHN0cnVjdCBFd2tfRXJyb3I7
CiBzdHJ1Y3QgRXdrX1Jlc291cmNlX1JlcXVlc3Q7CiBzdHJ1Y3QgRXdrX1Jlc291cmNlX0xvYWRf
UmVzcG9uc2U7CiBzdHJ1Y3QgRXdrX1Jlc291cmNlX0xvYWRfRXJyb3I7Ci1zdHJ1Y3QgRXdrX1Jl
c291cmNlOwotc3RydWN0IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsKLSNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCi1zdHJ1Y3QgRXdrX0ludGVudDsKLSNlbmRpZgotI2lmIEVOQUJMRShX
RUJfSU5URU5UU19UQUcpCi1zdHJ1Y3QgRXdrX0ludGVudF9TZXJ2aWNlOwotI2VuZGlmCiAKIG5h
bWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKaW5kZXggOTE4ZmUyMi4uYzE5MDdiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCkBAIC02NywxNCAr
NjcsOCBAQCBjbGFzcyBJbnRTaXplOwogfQogCiBjbGFzcyBFd2tDb250ZXh0OwotCiBjbGFzcyBF
d2tfQmFja19Gb3J3YXJkX0xpc3Q7CiBjbGFzcyBFd2tfQ29sb3JfUGlja2VyOwotY2xhc3MgRXdr
X0Vycm9yOwotY2xhc3MgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OwotY2xhc3MgRXdrX0lu
dGVudDsKLWNsYXNzIEV3a19JbnRlbnRfU2VydmljZTsKLWNsYXNzIEV3a19SZXNvdXJjZTsKIGNs
YXNzIEV3a19Qb3B1cF9NZW51OwogY2xhc3MgRXdrX1NldHRpbmdzOwogCkBAIC0yMTQsNyArMjA4
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIG9uRmF2aWNvbkNoYW5nZWQo
Y29uc3QgY2hhciogcGFnZVVSTCwgdm9pZCogZXZlbnRJbmZvKTsKIAotICAgIC8vIE5vdGUsIGlu
aXRpYWxpemF0aW9uIG1hdHRlcnMuCisgICAgLy8gTm90ZSwgaW5pdGlhbGl6YXRpb24gb3JkZXIg
bWF0dGVycy4KICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIFJlZlB0cjxFd2tDb250ZXh0
PiBtX2NvbnRleHQ7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFn
ZXIuY3BwCmluZGV4IGRkYzEzYjQuLmI2NjU2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgRWluYV9MaXN0KiBFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlT3JpZ2lu
TGlzdChXS0FycmF5UmVmIG9yaWdpbnMpIGNvbnN0CiAgICAgICAgIFdLU2VjdXJpdHlPcmlnaW5S
ZWYgd2tPcmlnaW5SZWYgPSBzdGF0aWNfY2FzdDxXS1NlY3VyaXR5T3JpZ2luUmVmPihXS0FycmF5
R2V0SXRlbUF0SW5kZXgob3JpZ2lucywgaSkpOwogICAgICAgICBSZWZQdHI8RXdrX1NlY3VyaXR5
X09yaWdpbj4gb3JpZ2luID0gbV93cmFwcGVyQ2FjaGUuZ2V0KHdrT3JpZ2luUmVmKTsKICAgICAg
ICAgaWYgKCFvcmlnaW4pIHsKLSAgICAgICAgICAgIG9yaWdpbiA9IEV3a19TZWN1cml0eV9Pcmln
aW46OmNyZWF0ZSh3a09yaWdpblJlZik7CisgICAgICAgICAgICBvcmlnaW4gPSBFd2tTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHdrT3JpZ2luUmVmKTsKICAgICAgICAgICAgIG1fd3JhcHBlckNhY2hl
LnNldCh3a09yaWdpblJlZiwgb3JpZ2luKTsKICAgICAgICAgfQogICAgICAgICBvcmlnaW5MaXN0
ID0gZWluYV9saXN0X2FwcGVuZChvcmlnaW5MaXN0LCBvcmlnaW4ucmVsZWFzZSgpLmxlYWtSZWYo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0
YWJhc2VfbWFuYWdlcl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfZGF0YWJhc2VfbWFuYWdlcl9wcml2YXRlLmgKaW5kZXggMWI0YTY2MS4uMGU0NDk3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNl
X21hbmFnZXJfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGUuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiV0tEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgotI2lu
Y2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW5fcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19zZWN1
cml0eV9vcmlnaW4uaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19maWxlX2Nob29zZXJfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3QuY3BwCmluZGV4IGE5OTBiMWIu
LjM3NjA2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19maWxlX2Nob29zZXJfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0LmNwcApAQCAtMzcsNyArMzcsNyBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1Fd2tfRmlsZV9DaG9vc2VyX1JlcXVlc3Q6OkV3
a19GaWxlX0Nob29zZXJfUmVxdWVzdChXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJz
LCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KiBsaXN0ZW5lcikKK0V3a0ZpbGVDaG9v
c2VyUmVxdWVzdDo6RXdrRmlsZUNob29zZXJSZXF1ZXN0KFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMq
IHBhcmFtZXRlcnMsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQog
ICAgIDogbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCiAgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVy
KQogICAgICwgbV93YXNSZXF1ZXN0SGFuZGxlZChmYWxzZSkKQEAgLTQ2LDMwICs0NiwzMCBAQCBF
d2tfRmlsZV9DaG9vc2VyX1JlcXVlc3Q6OkV3a19GaWxlX0Nob29zZXJfUmVxdWVzdChXZWJPcGVu
UGFuZWxQYXJhbWV0ZXJzKiBwYXJhbQogICAgIEFTU0VSVChsaXN0ZW5lcik7CiB9CiAKLUV3a19G
aWxlX0Nob29zZXJfUmVxdWVzdDo6fkV3a19GaWxlX0Nob29zZXJfUmVxdWVzdCgpCitFd2tGaWxl
Q2hvb3NlclJlcXVlc3Q6On5Fd2tGaWxlQ2hvb3NlclJlcXVlc3QoKQogewogICAgIGlmICghbV93
YXNSZXF1ZXN0SGFuZGxlZCkKICAgICAgICAgbV9saXN0ZW5lci0+Y2FuY2VsKCk7CiB9CiAKLWJv
b2wgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0OjphbGxvd011bHRpcGxlRmlsZXMoKSBjb25zdAor
Ym9vbCBFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6OmFsbG93TXVsdGlwbGVGaWxlcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fcGFyYW1ldGVycy0+YWxsb3dNdWx0aXBsZUZpbGVzKCk7CiB9CiAKLVBh
c3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IEV3a19GaWxlX0Nob29zZXJfUmVxdWVzdDo6YWNjZXB0
ZWRNSU1FVHlwZXMoKSBjb25zdAorUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gRXdrRmlsZUNo
b29zZXJSZXF1ZXN0OjphY2NlcHRlZE1JTUVUeXBlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
cGFyYW1ldGVycy0+YWNjZXB0TUlNRVR5cGVzKCk7CiB9CiAKLXZvaWQgRXdrX0ZpbGVfQ2hvb3Nl
cl9SZXF1ZXN0OjpjYW5jZWwoKQordm9pZCBFd2tGaWxlQ2hvb3NlclJlcXVlc3Q6OmNhbmNlbCgp
CiB7CiAgICAgbV93YXNSZXF1ZXN0SGFuZGxlZCA9IHRydWU7CiAKICAgICByZXR1cm4gbV9saXN0
ZW5lci0+Y2FuY2VsKCk7CiB9CiAKLXZvaWQgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0OjpjaG9v
c2VGaWxlcyhWZWN0b3I8IFJlZlB0cjxBUElPYmplY3Q+ID4mIGZpbGVVUkxzKQordm9pZCBFd2tG
aWxlQ2hvb3NlclJlcXVlc3Q6OmNob29zZUZpbGVzKFZlY3RvcjwgUmVmUHRyPEFQSU9iamVjdD4g
PiYgZmlsZVVSTHMpCiB7CiAgICAgQVNTRVJUKCFmaWxlVVJMcy5pc0VtcHR5KCkpOwogICAgIEFT
U0VSVChmaWxlVVJMcy5zaXplKCkgPT0gMSB8fCBtX3BhcmFtZXRlcnMtPmFsbG93TXVsdGlwbGVG
aWxlcygpKTsKQEAgLTc4LDM1ICs3OCwxOSBAQCB2b2lkIEV3a19GaWxlX0Nob29zZXJfUmVxdWVz
dDo6Y2hvb3NlRmlsZXMoVmVjdG9yPCBSZWZQdHI8QVBJT2JqZWN0PiA+JiBmaWxlVVJMcwogICAg
IG1fbGlzdGVuZXItPmNob29zZUZpbGVzKEltbXV0YWJsZUFycmF5OjphZG9wdChmaWxlVVJMcyku
Z2V0KCkpOwogfQogCi1Fd2tfRmlsZV9DaG9vc2VyX1JlcXVlc3QqIGV3a19maWxlX2Nob29zZXJf
cmVxdWVzdF9yZWYoRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAwKTsKLQotICAgIHJlcXVlc3Qt
PnJlZigpOwotCi0gICAgcmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLXZvaWQgZXdrX2ZpbGVfY2hvb3Nl
cl9yZXF1ZXN0X3VucmVmKEV3a19GaWxlX0Nob29zZXJfUmVxdWVzdCogcmVxdWVzdCkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1ZXN0KTsKLQotICAgIHJlcXVlc3QtPmRl
cmVmKCk7Ci19Ci0KIEVpbmFfQm9vbCBld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfYWxsb3dfbXVs
dGlwbGVfZmlsZXNfZ2V0KGNvbnN0IEV3a19GaWxlX0Nob29zZXJfUmVxdWVzdCogcmVxdWVzdCkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgZmFsc2UpOwor
ICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0ZpbGVDaG9vc2VyUmVxdWVz
dCwgcmVxdWVzdCwgaW1wbCwgZmFsc2UpOwogCi0gICAgcmV0dXJuIHJlcXVlc3QtPmFsbG93TXVs
dGlwbGVGaWxlcygpOworICAgIHJldHVybiBpbXBsLT5hbGxvd011bHRpcGxlRmlsZXMoKTsKIH0K
IAogRWluYV9MaXN0KiBld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfYWNjZXB0ZWRfbWltZXR5cGVz
X2dldChjb25zdCBFd2tfRmlsZV9DaG9vc2VyX1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOworICAgIEVXS19PQkpfR0VU
X0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0ZpbGVDaG9vc2VyUmVxdWVzdCwgcmVxdWVzdCwgaW1w
bCwgMCk7CiAKICAgICBFaW5hX0xpc3QqIG1pbWVUeXBlTGlzdCA9IDA7Ci0gICAgUmVmUHRyPElt
bXV0YWJsZUFycmF5PiBtaW1lVHlwZXMgPSByZXF1ZXN0LT5hY2NlcHRlZE1JTUVUeXBlcygpOwor
ICAgIFJlZlB0cjxJbW11dGFibGVBcnJheT4gbWltZVR5cGVzID0gaW1wbC0+YWNjZXB0ZWRNSU1F
VHlwZXMoKTsKIAogICAgIGNvbnN0IHNpemVfdCBzaXplID0gbWltZVR5cGVzLT5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKQEAgLTEyMSwyMCArMTA1LDIw
IEBAIEVpbmFfTGlzdCogZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2FjY2VwdGVkX21pbWV0eXBl
c19nZXQoY29uc3QgRXdrX0ZpbGVfQ2hvb3NlCiAKIEVpbmFfQm9vbCBld2tfZmlsZV9jaG9vc2Vy
X3JlcXVlc3RfY2FuY2VsKEV3a19GaWxlX0Nob29zZXJfUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgZmFsc2UpOwotICAgIEVJ
TkFfU0FGRVRZX09OX1RSVUVfUkVUVVJOX1ZBTChyZXF1ZXN0LT53YXNIYW5kbGVkKCksIGZhbHNl
KTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tGaWxlQ2hvb3NlclJlcXVlc3Qs
IHJlcXVlc3QsIGltcGwsIGZhbHNlKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9UUlVFX1JFVFVSTl9W
QUwoaW1wbC0+d2FzSGFuZGxlZCgpLCBmYWxzZSk7CiAKLSAgICByZXF1ZXN0LT5jYW5jZWwoKTsK
KyAgICBpbXBsLT5jYW5jZWwoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiBFaW5hX0Jvb2wg
ZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2ZpbGVzX2Nob29zZShFd2tfRmlsZV9DaG9vc2VyX1Jl
cXVlc3QqIHJlcXVlc3QsIGNvbnN0IEVpbmFfTGlzdCogY2hvc2VuRmlsZXMpCiB7Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIGZhbHNlKTsKKyAgICBFV0tfT0JK
X0dFVF9JTVBMX09SX1JFVFVSTihFd2tGaWxlQ2hvb3NlclJlcXVlc3QsIHJlcXVlc3QsIGltcGws
IGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2hvc2VuRmlsZXMs
IGZhbHNlKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk5fVkFMKGVpbmFfbGlzdF9j
b3VudChjaG9zZW5GaWxlcykgPT0gMSB8fCByZXF1ZXN0LT5hbGxvd011bHRpcGxlRmlsZXMoKSwg
ZmFsc2UpOwotICAgIEVJTkFfU0FGRVRZX09OX1RSVUVfUkVUVVJOX1ZBTChyZXF1ZXN0LT53YXNI
YW5kbGVkKCksIGZhbHNlKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk5fVkFMKGVp
bmFfbGlzdF9jb3VudChjaG9zZW5GaWxlcykgPT0gMSB8fCBpbXBsLT5hbGxvd011bHRpcGxlRmls
ZXMoKSwgZmFsc2UpOworICAgIEVJTkFfU0FGRVRZX09OX1RSVUVfUkVUVVJOX1ZBTChpbXBsLT53
YXNIYW5kbGVkKCksIGZhbHNlKTsKIAogICAgIFZlY3RvcjwgUmVmUHRyPEFQSU9iamVjdD4gPiBm
aWxlVVJMczsKIApAQCAtMTQ2LDIyICsxMzAsMjIgQEAgRWluYV9Cb29sIGV3a19maWxlX2Nob29z
ZXJfcmVxdWVzdF9maWxlc19jaG9vc2UoRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0KiByZXF1ZXMK
ICAgICAgICAgZmlsZVVSTHMuYXBwZW5kKFdlYlVSTDo6Y3JlYXRlKGZpbGVVUkwpKTsKICAgICB9
CiAKLSAgICByZXF1ZXN0LT5jaG9vc2VGaWxlcyhmaWxlVVJMcyk7CisgICAgaW1wbC0+Y2hvb3Nl
RmlsZXMoZmlsZVVSTHMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIEVpbmFfQm9vbCBld2tf
ZmlsZV9jaG9vc2VyX3JlcXVlc3RfZmlsZV9jaG9vc2UoRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0
KiByZXF1ZXN0LCBjb25zdCBjaGFyKiBjaG9zZW5GaWxlKQogewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9P
Ul9SRVRVUk4oRXdrRmlsZUNob29zZXJSZXF1ZXN0LCByZXF1ZXN0LCBpbXBsLCBmYWxzZSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNob3NlbkZpbGUsIGZhbHNlKTsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9UUlVFX1JFVFVSTl9WQUwocmVxdWVzdC0+d2FzSGFuZGxlZCgpLCBm
YWxzZSk7CisgICAgRUlOQV9TQUZFVFlfT05fVFJVRV9SRVRVUk5fVkFMKGltcGwtPndhc0hhbmRs
ZWQoKSwgZmFsc2UpOwogCiAgICAgVmVjdG9yPCBSZWZQdHI8QVBJT2JqZWN0PiA+IGZpbGVVUkxz
OwogICAgIFN0cmluZyBmaWxlVVJMID0gImZpbGU6Ly8iICsgU3RyaW5nOjpmcm9tVVRGOChjaG9z
ZW5GaWxlKTsKICAgICBmaWxlVVJMcy5hcHBlbmQoV2ViVVJMOjpjcmVhdGUoZmlsZVVSTCkpOwog
Ci0gICAgcmVxdWVzdC0+Y2hvb3NlRmlsZXMoZmlsZVVSTHMpOworICAgIGltcGwtPmNob29zZUZp
bGVzKGZpbGVVUkxzKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3Qu
aAppbmRleCA5YzIzYTZiLi4zZTc1MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3QuaApAQCAtMzcs
MjcgKzM3LDEyIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0ICovCi10eXBlZGVmIHN0cnVjdCBFd2tf
RmlsZV9DaG9vc2VyX1JlcXVlc3QgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0OwotCiAvKioKLSAq
IEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgot
ICogQHBhcmFtIHJlcXVlc3QgdGhlIHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZl
cmVuY2UgY291bnQKLSAqCi0gKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0IG9uIHN1
Y2Nlc3MsIEBjIE5VTEwgb3RoZXJ3aXNlCi0gKi8KLUVBUEkgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1
ZXN0ICpld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcmVmKEV3a19GaWxlX0Nob29zZXJfUmVxdWVz
dCAqcmVxdWVzdCk7Ci0KLS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
dGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSBy
ZWZlcmVuY2UgY291bnQgcmVhY2hlcyAwLCB0aGUgZmlsZSBjaG9vc2VyIHJlcXVlc3QgaXMgZnJl
ZWQuIFRoZSByZXF1ZXN0Ci0gKiB3aWxsIGJlIGNhbmNlbGxlZCBieSBkZWZhdWx0IGlmIHRoZSBj
bGllbnQgZGlkIG5vdCBhY3Qgb24gaXQuCisgKiBEZWNsYXJlIEV3a19GaWxlX0Nob29zZXJfUmVx
dWVzdCBhcyBFd2tfT2JqZWN0LgogICoKLSAqIEBwYXJhbSByZXF1ZXN0IHRoZSByZXF1ZXN0IG9i
amVjdCB0byBkZWNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKiBAc2VlIEV3a19PYmplY3QK
ICAqLwotRUFQSSB2b2lkIGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF91bnJlZihFd2tfRmlsZV9D
aG9vc2VyX1JlcXVlc3QgKnJlcXVlc3QpOwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tf
RmlsZV9DaG9vc2VyX1JlcXVlc3Q7CiAKIC8qKgogICogUXVlcmllcyBpZiBpdCBpcyBhbGxvd2Vk
IHRvIHNlbGVjdCBtdWx0aXBsZSBmaWxlcyBvciBub3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1
ZXN0X3ByaXZhdGUuaAppbmRleCA2YWZiN2M5Li44NTgwYThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19maWxlX2Nob29z
ZXJfcmVxdWVzdF9wcml2YXRlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgZXdrX2ZpbGVf
Y2hvb3Nlcl9yZXF1ZXN0X3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTM4LDE0ICszOSwxNiBAQCBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3MgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKIH0KIAotY2xhc3MgRXdrX0ZpbGVfQ2hvb3Nl
cl9SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0PiB7
CitjbGFzcyBFd2tGaWxlQ2hvb3NlclJlcXVlc3QgOiBwdWJsaWMgRXdrX09iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0PiBjcmVh
dGUoV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBXZWJLaXQ6Oldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQorICAgIEVXS19PQkpFQ1Rf
REVDTEFSRShFd2tGaWxlQ2hvb3NlclJlcXVlc3QpCisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxF
d2tGaWxlQ2hvb3NlclJlcXVlc3Q+IGNyZWF0ZShXZWJLaXQ6OldlYk9wZW5QYW5lbFBhcmFtZXRl
cnMqIHBhcmFtZXRlcnMsIFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSog
bGlzdGVuZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19GaWxlX0No
b29zZXJfUmVxdWVzdChwYXJhbWV0ZXJzLCBsaXN0ZW5lcikpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEV3a0ZpbGVDaG9vc2VyUmVxdWVzdChwYXJhbWV0ZXJzLCBsaXN0ZW5lcikpOwog
ICAgIH0KIAotICAgIH5Fd2tfRmlsZV9DaG9vc2VyX1JlcXVlc3QoKTsKKyAgICB+RXdrRmlsZUNo
b29zZXJSZXF1ZXN0KCk7CiAKICAgICBib29sIGFsbG93TXVsdGlwbGVGaWxlcygpIGNvbnN0Owog
ICAgIFBhc3NSZWZQdHI8V2ViS2l0OjpJbW11dGFibGVBcnJheT4gYWNjZXB0ZWRNSU1FVHlwZXMo
KSBjb25zdDsKQEAgLTU0LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2hvb3NlRmlsZXMo
VmVjdG9yPCBSZWZQdHI8V2ViS2l0OjpBUElPYmplY3Q+ID4mIGZpbGVVUkxzKTsKIAogcHJpdmF0
ZToKLSAgICBFd2tfRmlsZV9DaG9vc2VyX1JlcXVlc3QoV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJh
bWV0ZXJzKiBwYXJhbWV0ZXJzLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkqIGxpc3RlbmVyKTsKKyAgICBFd2tGaWxlQ2hvb3NlclJlcXVlc3QoV2ViS2l0OjpXZWJPcGVu
UGFuZWxQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkqIGxpc3RlbmVyKTsKIAogICAgIFJlZlB0cjxXZWJLaXQ6OldlYk9wZW5QYW5l
bFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5PiBtX2xpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVx
dWVzdC5jcHAKaW5kZXggY2VjYWQ3Ni4uZTYxYTQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3Jl
cXVlc3QuY3BwCkBAIC0zNSwyMCArMzUsMjAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAotRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OjpFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVl
c3QoV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxp
c3RlbmVyKQorRXdrRm9ybVN1Ym1pc3Npb25SZXF1ZXN0OjpFd2tGb3JtU3VibWlzc2lvblJlcXVl
c3QoV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxp
c3RlbmVyKQogICAgIDogbV93a1ZhbHVlcyh2YWx1ZXMpCiAgICAgLCBtX3drTGlzdGVuZXIobGlz
dGVuZXIpCiAgICAgLCBtX2hhbmRsZWRSZXF1ZXN0KGZhbHNlKQogeyB9CiAKLUV3a19Gb3JtX1N1
Ym1pc3Npb25fUmVxdWVzdDo6fkV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCgpCitFd2tGb3Jt
U3VibWlzc2lvblJlcXVlc3Q6On5Fd2tGb3JtU3VibWlzc2lvblJlcXVlc3QoKQogewogICAgIC8v
IE1ha2Ugc3VyZSB0aGUgcmVxdWVzdCBpcyBhbHdheXMgaGFuZGxlZCBiZWZvcmUgZGVzdHJveWlu
Zy4KICAgICBpZiAoIW1faGFuZGxlZFJlcXVlc3QpCiAgICAgICAgIFdLRm9ybVN1Ym1pc3Npb25M
aXN0ZW5lckNvbnRpbnVlKG1fd2tMaXN0ZW5lci5nZXQoKSk7CiB9CiAKLVN0cmluZyBFd2tfRm9y
bV9TdWJtaXNzaW9uX1JlcXVlc3Q6OmZpZWxkVmFsdWUoY29uc3QgU3RyaW5nJiBmaWVsZE5hbWUp
IGNvbnN0CitTdHJpbmcgRXdrRm9ybVN1Ym1pc3Npb25SZXF1ZXN0OjpmaWVsZFZhbHVlKGNvbnN0
IFN0cmluZyYgZmllbGROYW1lKSBjb25zdAogewogICAgIEFTU0VSVChmaWVsZE5hbWUpOwogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a0ZpZWxkTmFtZSA9IGFkb3B0V0sodG9Db3BpZWRB
UEkoZmllbGROYW1lKSk7CkBAIC01NywzOSArNTcsMjQgQEAgU3RyaW5nIEV3a19Gb3JtX1N1Ym1p
c3Npb25fUmVxdWVzdDo6ZmllbGRWYWx1ZShjb25zdCBTdHJpbmcmIGZpZWxkTmFtZSkgY29uc3QK
ICAgICByZXR1cm4gd2tWYWx1ZSA/IHRvSW1wbCh3a1ZhbHVlKS0+c3RyaW5nKCkgOiBTdHJpbmco
KTsKIH0KIAotV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1
ZXN0OjpmaWVsZE5hbWVzKCkgY29uc3QKK1dLUmV0YWluUHRyPFdLQXJyYXlSZWY+IEV3a0Zvcm1T
dWJtaXNzaW9uUmVxdWVzdDo6ZmllbGROYW1lcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0
V0soV0tEaWN0aW9uYXJ5Q29weUtleXMobV93a1ZhbHVlcy5nZXQoKSkpOwogfQogCi12b2lkIEV3
a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdDo6c3VibWl0KCkKK3ZvaWQgRXdrRm9ybVN1Ym1pc3Np
b25SZXF1ZXN0OjpzdWJtaXQoKQogewogICAgIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lckNvbnRp
bnVlKG1fd2tMaXN0ZW5lci5nZXQoKSk7CiAgICAgbV9oYW5kbGVkUmVxdWVzdCA9IHRydWU7CiB9
CiAKLUV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCogZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1
ZXN0X3JlZihFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwotICAgIHJlcXVlc3QtPnJl
ZigpOwotCi0gICAgcmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLXZvaWQgZXdrX2Zvcm1fc3VibWlzc2lv
bl9yZXF1ZXN0X3VucmVmKEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCogcmVxdWVzdCkKLXsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1ZXN0KTsKLQotICAgIHJlcXVlc3Qt
PmRlcmVmKCk7Ci19Ci0KIEVpbmFfTGlzdCogZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2Zp
ZWxkX25hbWVzX2dldChFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0g
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOworICAgIEVXS19P
QkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdCwgcmVxdWVzdCwg
aW1wbCwgMCk7CiAKICAgICBFaW5hX0xpc3QqIG5hbWVzID0gMDsKIAotICAgIFdLUmV0YWluUHRy
PFdLQXJyYXlSZWY+IHdrS2V5cyA9IHJlcXVlc3QtPmZpZWxkTmFtZXMoKTsKKyAgICBXS1JldGFp
blB0cjxXS0FycmF5UmVmPiB3a0tleXMgPSBpbXBsLT5maWVsZE5hbWVzKCk7CiAgICAgY29uc3Qg
c2l6ZV90IG51bUtleXMgPSBXS0FycmF5R2V0U2l6ZSh3a0tleXMuZ2V0KCkpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbnVtS2V5czsgKytpKSB7CiAgICAgICAgIFdLU3RyaW5nUmVmIHdr
S2V5ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleCh3a0tl
eXMuZ2V0KCksIGkpKTsKQEAgLTEwMSwxOSArODYsMTkgQEAgRWluYV9MaXN0KiBld2tfZm9ybV9z
dWJtaXNzaW9uX3JlcXVlc3RfZmllbGRfbmFtZXNfZ2V0KEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVx
dWUKIAogY29uc3QgY2hhciogZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2ZpZWxkX3ZhbHVl
X2dldChFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIG5h
bWUpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwor
ICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdCwg
cmVxdWVzdCwgaW1wbCwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG5h
bWUsIDApOwogCi0gICAgU3RyaW5nIHZhbHVlID0gcmVxdWVzdC0+ZmllbGRWYWx1ZShTdHJpbmc6
OmZyb21VVEY4KG5hbWUpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBpbXBsLT5maWVsZFZhbHVlKFN0
cmluZzo6ZnJvbVVURjgobmFtZSkpOwogCiAgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgpID8gIDAg
OiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKIH0KIAogRWluYV9C
b29sIGV3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9zdWJtaXQoRXdrX0Zvcm1fU3VibWlzc2lv
bl9SZXF1ZXN0KiByZXF1ZXN0KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oRXdrRm9y
bVN1Ym1pc3Npb25SZXF1ZXN0LCByZXF1ZXN0LCBpbXBsLCBmYWxzZSk7CiAKLSAgICByZXF1ZXN0
LT5zdWJtaXQoKTsKKyAgICBpbXBsLT5zdWJtaXQoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3Vi
bWlzc2lvbl9yZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Zm9ybV9zdWJtaXNzaW9uX3JlcXVlc3QuaAppbmRleCBiN2ZkMGM2Li44ZGY3Njk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9u
X3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9y
bV9zdWJtaXNzaW9uX3JlcXVlc3QuaApAQCAtNDAsMzAgKzQwLDEyIEBACiBleHRlcm4gIkMiIHsK
ICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0Zvcm1fU3VibWlzc2lv
bl9SZXF1ZXN0ICovCi10eXBlZGVmIHN0cnVjdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Qg
RXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OwotCi0vKioKLSAqIEluY3JlYXNlcyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICogQHBhcmFtIHJlcXVlc3Qg
dGhlIHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKLSAqCi0g
KiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0IG9uIHN1Y2Nlc3MsIEBjIE5VTEwgb3Ro
ZXJ3aXNlLgotICovCi1FQVBJIEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCAqZXdrX2Zvcm1f
c3VibWlzc2lvbl9yZXF1ZXN0X3JlZihFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgKnJlcXVl
c3QpOwotCiAvKioKLSAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZl
biBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUgcmVmZXJlbmNl
IGNvdW50IHJlYWNoZXMgMCwgdGhlIHJlcXVlc3QgaXMgZnJlZWQuCi0gKgotICogSWYgdGhlIHJl
ZmVyZW5jZSBjb3VudCByZWFjaGVzIDAgYW5kIHRoZSBmb3JtIHJlcXVlc3QgaGFzIG5vdCBiZSBz
dWJtaXR0ZWQgeWV0LAotICogZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X3N1Ym1pdCgpIHdp
bGwgYmUgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYmVmb3JlCi0gKiBkZXN0cnVjdGlvbi4KKyAqIERl
Y2xhcmUgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IGFzIEV3a19PYmplY3QuCiAgKgotICog
QHBhcmFtIHJlcXVlc3QgdGhlIHJlcXVlc3Qgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVu
Y2UgY291bnQKKyAqIEBzZWUgRXdrX09iamVjdAogICovCi1FQVBJIHZvaWQgZXdrX2Zvcm1fc3Vi
bWlzc2lvbl9yZXF1ZXN0X3VucmVmKEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCAqcmVxdWVz
dCk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVz
dDsKIAogLyoqCiAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGZpZWxkIG5hbWVzIGNvbnRhaW5lZCBp
biB0aGUgZm9ybSBhc3NvY2lhdGVkIHRvIEBhIHJlcXVlc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfcHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlz
c2lvbl9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCAzNzc0ZTYxLi5hNmY3YWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3Jl
cXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9wcml2YXRlLmgKQEAgLTI5LDE3ICsyOSwyMCBAQAog
I2luY2x1ZGUgIldLRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIldLRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lci5oIgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSAiZXdrX29iamVjdF9w
cml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1jbGFzcyBFd2tf
Rm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfRm9ybV9TdWJt
aXNzaW9uX1JlcXVlc3Q+IHsKK2NsYXNzIEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdCA6IHB1Ymxp
YyBFd2tfT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB+RXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0
KCk7CisgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdCkKIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdD4gY3JlYXRl
KFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiBsaXN0
ZW5lcikKKyAgICB+RXdrRm9ybVN1Ym1pc3Npb25SZXF1ZXN0KCk7CisKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tGb3JtU3VibWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShXS0RpY3Rpb25hcnlSZWYg
dmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCh2YWx1
ZXMsIGxpc3RlbmVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrRm9ybVN1Ym1p
c3Npb25SZXF1ZXN0KHZhbHVlcywgbGlzdGVuZXIpKTsKICAgICB9CiAKICAgICBXS1JldGFpblB0
cjxXS0FycmF5UmVmPiBmaWVsZE5hbWVzKCkgY29uc3Q7CkBAIC00OCw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN1Ym1pdCgpOwogCiBwcml2YXRlOgotICAgIEV3a19Gb3JtX1N1Ym1pc3Np
b25fUmVxdWVzdChXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVu
ZXJSZWYgbGlzdGVuZXIpOworICAgIEV3a0Zvcm1TdWJtaXNzaW9uUmVxdWVzdChXS0RpY3Rpb25h
cnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIpOwogCiAg
ICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5UmVmPiBtX3drVmFsdWVzOwogICAgIFdLUmV0YWlu
UHRyPFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZj4gbV93a0xpc3RlbmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAppbmRleCBhNGZkNmVm
Li43MDg2NjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfaW50ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcApAQCAtMzcsMTA2ICszNyw5MSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLUV3a19JbnRlbnQ6OkV3a19JbnRlbnQoV0tJbnRl
bnREYXRhUmVmIGludGVudFJlZikKK0V3a0ludGVudDo6RXdrSW50ZW50KFdLSW50ZW50RGF0YVJl
ZiBpbnRlbnRSZWYpCiAgICAgOiBtX3drSW50ZW50KGludGVudFJlZikKICAgICAsIG1fYWN0aW9u
KEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlBY3Rpb24oaW50ZW50UmVmKSkKICAgICAsIG1fdHlw
ZShBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5VHlwZShpbnRlbnRSZWYpKQogICAgICwgbV9zZXJ2
aWNlKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlTZXJ2aWNlKGludGVudFJlZikpCiB7IH0KIAot
V2ViSW50ZW50RGF0YSogRXdrX0ludGVudDo6d2ViSW50ZW50RGF0YSgpIGNvbnN0CitXZWJJbnRl
bnREYXRhKiBFd2tJbnRlbnQ6OndlYkludGVudERhdGEoKSBjb25zdAogewogICAgIHJldHVybiB0
b0ltcGwobV93a0ludGVudC5nZXQoKSk7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19JbnRlbnQ6OmFj
dGlvbigpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tJbnRlbnQ6OmFjdGlvbigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fYWN0aW9uOwogfQogCi1jb25zdCBjaGFyKiBFd2tfSW50ZW50Ojp0eXBlKCkg
Y29uc3QKK2NvbnN0IGNoYXIqIEV3a0ludGVudDo6dHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fdHlwZTsKIH0KIAotY29uc3QgY2hhciogRXdrX0ludGVudDo6c2VydmljZSgpIGNvbnN0Citj
b25zdCBjaGFyKiBFd2tJbnRlbnQ6OnNlcnZpY2UoKSBjb25zdAogewogICAgIHJldHVybiBtX3Nl
cnZpY2U7CiB9CiAKLVdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IEV3a19JbnRlbnQ6OnN1Z2dlc3Rp
b25zKCkgY29uc3QKK1dLUmV0YWluUHRyPFdLQXJyYXlSZWY+IEV3a0ludGVudDo6c3VnZ2VzdGlv
bnMoKSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFdLKFdLSW50ZW50RGF0YUNvcHlTdWdnZXN0
aW9ucyhtX3drSW50ZW50LmdldCgpKSk7CiB9CiAKLVN0cmluZyBFd2tfSW50ZW50OjpleHRyYShj
b25zdCBjaGFyKiBrZXkpIGNvbnN0CitTdHJpbmcgRXdrSW50ZW50OjpleHRyYShjb25zdCBjaGFy
KiBrZXkpIGNvbnN0CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleVJlZiA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoa2V5KSk7CiAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHdrVmFsdWUoQWRvcHRXSywgV0tJbnRlbnREYXRhQ29weUV4dHJhVmFs
dWUobV93a0ludGVudC5nZXQoKSwga2V5UmVmLmdldCgpKSk7CiAgICAgcmV0dXJuIHRvSW1wbCh3
a1ZhbHVlLmdldCgpKS0+c3RyaW5nKCk7CiB9CiAKLVdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IEV3
a19JbnRlbnQ6OmV4dHJhS2V5cygpIGNvbnN0CitXS1JldGFpblB0cjxXS0FycmF5UmVmPiBFd2tJ
bnRlbnQ6OmV4dHJhS2V5cygpIGNvbnN0CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5
UmVmPiB3a0V4dHJhcyhBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5RXh0cmFzKG1fd2tJbnRlbnQu
Z2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRXSyhXS0RpY3Rpb25hcnlDb3B5S2V5cyh3a0V4dHJh
cy5nZXQoKSkpOwogfQogI2VuZGlmCiAKLUV3a19JbnRlbnQqIGV3a19pbnRlbnRfcmVmKEV3a19J
bnRlbnQqIGludGVudCkKLXsKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKGludGVudCwgMCk7Ci0KLSAgICBpbnRlbnQtPnJlZigpOwot
I2VuZGlmCi0KLSAgICByZXR1cm4gaW50ZW50OwotfQotCi12b2lkIGV3a19pbnRlbnRfdW5yZWYo
RXdrX0ludGVudCogaW50ZW50KQotewotI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOwotCi0gICAgaW50ZW50LT5kZXJlZigpOwot
I2VuZGlmCi19Ci0KIGNvbnN0IGNoYXIqIGV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tf
SW50ZW50KiBpbnRlbnQpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGlu
dGVudCwgMCk7Ci0KICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgcmV0dXJuIGludGVudC0+
YWN0aW9uKCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrSW50ZW50
LCBpbnRlbnQsIGltcGwsIDApOworICAgIHJldHVybiBpbXBsLT5hY3Rpb24oKTsKKyNlbHNlCisg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGludGVudCwgMCk7CisgICAgcmV0dXJu
IDA7CiAjZW5kaWYKIH0KIAogY29uc3QgY2hhciogZXdrX2ludGVudF90eXBlX2dldChjb25zdCBF
d2tfSW50ZW50KiBpbnRlbnQpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGludGVudCwgMCk7Ci0KICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgcmV0dXJuIGludGVu
dC0+dHlwZSgpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0ludGVu
dCwgaW50ZW50LCBpbXBsLCAwKTsKKyAgICByZXR1cm4gaW1wbC0+dHlwZSgpOworI2Vsc2UKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaW50ZW50LCAwKTsKKyAgICByZXR1cm4g
MDsKICNlbmRpZgogfQogCiBjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0
IEV3a19JbnRlbnQqIGludGVudCkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoaW50ZW50LCAwKTsKLQogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICByZXR1cm4gaW50
ZW50LT5zZXJ2aWNlKCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdr
SW50ZW50LCBpbnRlbnQsIGltcGwsIDApOworICAgIHJldHVybiBpbXBsLT5zZXJ2aWNlKCk7Cisj
ZWxzZQorICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpbnRlbnQsIDApOworICAg
IHJldHVybiAwOwogI2VuZGlmCiB9CiAKIEVpbmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0aW9u
c19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpbnRlbnQsIDApOwotCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAg
IEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0ludGVudCwgaW50ZW50LCBpbXBs
LCAwKTsKICAgICBFaW5hX0xpc3QqIGxpc3RPZlN1Z2dlc3Rpb25zID0gMDsKLSAgICBXS1JldGFp
blB0cjxXS0FycmF5UmVmPiB3a1N1Z2dlc3Rpb25zID0gaW50ZW50LT5zdWdnZXN0aW9ucygpOwor
ICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IHdrU3VnZ2VzdGlvbnMgPSBpbXBsLT5zdWdnZXN0
aW9ucygpOwogICAgIGNvbnN0IHNpemVfdCBudW1TdWdnZXN0aW9ucyA9IFdLQXJyYXlHZXRTaXpl
KHdrU3VnZ2VzdGlvbnMuZ2V0KCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtU3Vn
Z2VzdGlvbnM7ICsraSkgewogICAgICAgICBXS1VSTFJlZiB3a1N1Z2dlc3Rpb24gPSBzdGF0aWNf
Y2FzdDxXS1VSTFJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrU3VnZ2VzdGlvbnMuZ2V0KCks
IGkpKTsKQEAgLTE0NiwzMyArMTMxLDMzIEBAIEVpbmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0
aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogICAgIHJldHVybiBsaXN0T2ZTdWdn
ZXN0aW9uczsKIAogI2Vsc2UKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaW50
ZW50LCAwKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCiBjb25zdCBjaGFyKiBld2tfaW50
ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaW50ZW50LCAwKTsKLQogI2lm
IEVOQUJMRShXRUJfSU5URU5UUykKLSAgICBTdHJpbmcgdmFsdWUgPSBpbnRlbnQtPmV4dHJhKGtl
eSk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrSW50ZW50LCBpbnRl
bnQsIGltcGwsIDApOworICAgIFN0cmluZyB2YWx1ZSA9IGltcGwtPmV4dHJhKGtleSk7CiAKICAg
ICBpZiAodmFsdWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBl
aW5hX3N0cmluZ3NoYXJlX2FkZCh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGludGVudCwgMCk7CiAgICAgcmV0dXJuIDA7CiAj
ZW5kaWYKIH0KIAogRWluYV9MaXN0KiBld2tfaW50ZW50X2V4dHJhX25hbWVzX2dldChjb25zdCBF
d2tfSW50ZW50KiBpbnRlbnQpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGludGVudCwgMCk7Ci0KICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX09CSl9HRVRf
SU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrSW50ZW50LCBpbnRlbnQsIGltcGwsIDApOwogICAgIEVp
bmFfTGlzdCogbGlzdE9mS2V5cyA9IDA7Ci0gICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tL
ZXlzID0gaW50ZW50LT5leHRyYUtleXMoKTsKKyAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3
a0tleXMgPSBpbXBsLT5leHRyYUtleXMoKTsKICAgICBjb25zdCBzaXplX3QgbnVtS2V5cyA9IFdL
QXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBu
dW1LZXlzOyArK2kpIHsKICAgICAgICAgV0tTdHJpbmdSZWYgd2tLZXkgPSBzdGF0aWNfY2FzdDxX
S1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrS2V5cy5nZXQoKSwgaSkpOwpAQCAt
MTgxLDYgKzE2Niw3IEBAIEVpbmFfTGlzdCogZXdrX2ludGVudF9leHRyYV9uYW1lc19nZXQoY29u
c3QgRXdrX0ludGVudCogaW50ZW50KQogCiAgICAgcmV0dXJuIGxpc3RPZktleXM7CiAjZWxzZQor
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpbnRlbnQsIDApOwogICAgIHJldHVy
biAwOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmgKaW5kZXggYTIzNjk2ZC4uNDY2N2I2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApAQCAtMzcsMjYgKzM3LDEyIEBACiBleHRlcm4g
IkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0ludGVudCAq
LwotdHlwZWRlZiBzdHJ1Y3QgRXdrX0ludGVudCBFd2tfSW50ZW50OwotCiAvKioKLSAqIEluY3Jl
YXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICogQHBh
cmFtIGludGVudCB0aGUgaW50ZW50IG9iamVjdCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNv
dW50Ci0gKgotICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG9iamVjdCBvbiBzdWNjZXNzLCBA
YyBOVUxMIG90aGVyd2lzZS4KLSAqLwotRUFQSSBFd2tfSW50ZW50ICpld2tfaW50ZW50X3JlZihF
d2tfSW50ZW50ICppbnRlbnQpOwotCi0vKioKLSAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hl
biB0aGUgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMgMCwgdGhlIGludGVudCBpcyBmcmVlZC4KKyAq
IERlY2xhcmUgRXdrX0ludGVudCBhcyBFd2tfT2JqZWN0LgogICoKLSAqIEBwYXJhbSBpbnRlbnQg
dGhlIGludGVudCBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICogQHNl
ZSBFd2tfT2JqZWN0CiAgKi8KLUVBUEkgdm9pZCBld2tfaW50ZW50X3VucmVmKEV3a19JbnRlbnQg
KmludGVudCk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19JbnRlbnQ7CiAKIC8qKgog
ICogUXVlcnkgYWN0aW9uIGZvciB0aGlzIGludGVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmgKaW5kZXggMDNhZjFlNC4u
M2FiYzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNsdWRlICJXS0VpbmFT
aGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS0ludGVudERhdGEuaCIKICNpbmNsdWRlICJXS1Jl
dGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdl
YktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTQxLDE0ICs0MSwxNiBAQCBjbGFzcyBXZWJJbnRlbnREYXRhOwog
fQogCiAvKioKLSAqIFxzdHJ1Y3QgIEV3a19JbnRlbnQKKyAqIFxzdHJ1Y3QgIEV3a0ludGVudAog
ICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgogICovCi1jbGFzcyBFd2tfSW50
ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0ludGVudD4geworY2xhc3MgRXdrSW50ZW50IDog
cHVibGljIEV3a19PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19J
bnRlbnQ+IGNyZWF0ZShXS0ludGVudERhdGFSZWYgaW50ZW50UmVmKQorICAgIEVXS19PQkpFQ1Rf
REVDTEFSRShFd2tJbnRlbnQpCisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tJbnRlbnQ+IGNy
ZWF0ZShXS0ludGVudERhdGFSZWYgaW50ZW50UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBFd2tfSW50ZW50KGludGVudFJlZikpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEV3a0ludGVudChpbnRlbnRSZWYpKTsKICAgICB9CiAKICAgICBXZWJLaXQ6OldlYklu
dGVudERhdGEqIHdlYkludGVudERhdGEoKSBjb25zdDsKQEAgLTYwLDcgKzYyLDcgQEAgcHVibGlj
OgogICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IGV4dHJhS2V5cygpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IEV3a19JbnRlbnQoV0tJbnRlbnREYXRhUmVmIGludGVudFJlZik7
CisgICAgZXhwbGljaXQgRXdrSW50ZW50KFdLSW50ZW50RGF0YVJlZiBpbnRlbnRSZWYpOwogCiAg
ICAgV0tSZXRhaW5QdHI8V0tJbnRlbnREYXRhUmVmPiBtX3drSW50ZW50OwogICAgIFdLRWluYVNo
YXJlZFN0cmluZyBtX2FjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCmluZGV4IDAwNjgyMjIuLmI4NmQ0NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRf
c2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2lu
dGVudF9zZXJ2aWNlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi1Fd2tfSW50ZW50X1NlcnZpY2U6OkV3
a19JbnRlbnRfU2VydmljZShXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VSZWYpCitFd2tJ
bnRlbnRTZXJ2aWNlOjpFd2tJbnRlbnRTZXJ2aWNlKFdLSW50ZW50U2VydmljZUluZm9SZWYgc2Vy
dmljZVJlZikKICAgICA6IG1fYWN0aW9uKEFkb3B0V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5
QWN0aW9uKHNlcnZpY2VSZWYpKQogICAgICwgbV90eXBlKEFkb3B0V0ssIFdLSW50ZW50U2Vydmlj
ZUluZm9Db3B5VHlwZShzZXJ2aWNlUmVmKSkKICAgICAsIG1faHJlZihBZG9wdFdLLCBXS0ludGVu
dFNlcnZpY2VJbmZvQ29weUhyZWYoc2VydmljZVJlZikpCkBAIC00NCw5MiArNDQsODMgQEAgRXdr
X0ludGVudF9TZXJ2aWNlOjpFd2tfSW50ZW50X1NlcnZpY2UoV0tJbnRlbnRTZXJ2aWNlSW5mb1Jl
ZiBzZXJ2aWNlUmVmKQogICAgICwgbV9kaXNwb3NpdGlvbihBZG9wdFdLLCBXS0ludGVudFNlcnZp
Y2VJbmZvQ29weURpc3Bvc2l0aW9uKHNlcnZpY2VSZWYpKQogeyB9CiAKLWNvbnN0IGNoYXIqIEV3
a19JbnRlbnRfU2VydmljZTo6YWN0aW9uKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a0ludGVudFNl
cnZpY2U6OmFjdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYWN0aW9uOwogfQogCi1jb25z
dCBjaGFyKiBFd2tfSW50ZW50X1NlcnZpY2U6OnR5cGUoKSBjb25zdAorY29uc3QgY2hhciogRXdr
SW50ZW50U2VydmljZTo6dHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdHlwZTsKIH0KIAot
Y29uc3QgY2hhciogRXdrX0ludGVudF9TZXJ2aWNlOjpocmVmKCkgY29uc3QKK2NvbnN0IGNoYXIq
IEV3a0ludGVudFNlcnZpY2U6OmhyZWYoKSBjb25zdAogewogICAgIHJldHVybiBtX2hyZWY7CiB9
CiAKLWNvbnN0IGNoYXIqIEV3a19JbnRlbnRfU2VydmljZTo6dGl0bGUoKSBjb25zdAorY29uc3Qg
Y2hhciogRXdrSW50ZW50U2VydmljZTo6dGl0bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Rp
dGxlOwogfQogCi1jb25zdCBjaGFyKiBFd2tfSW50ZW50X1NlcnZpY2U6OmRpc3Bvc2l0aW9uKCkg
Y29uc3QKK2NvbnN0IGNoYXIqIEV3a0ludGVudFNlcnZpY2U6OmRpc3Bvc2l0aW9uKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9kaXNwb3NpdGlvbjsKIH0KICNlbmRpZgogCi1Fd2tfSW50ZW50X1Nl
cnZpY2UqIGV3a19pbnRlbnRfc2VydmljZV9yZWYoRXdrX0ludGVudF9TZXJ2aWNlKiBzZXJ2aWNl
KQotewotI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi0gICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNlcnZpY2UsIDApOwotICAgIHNlcnZpY2UtPnJlZigpOwotI2VuZGlmCi0K
LSAgICByZXR1cm4gc2VydmljZTsKLX0KLQotdm9pZCBld2tfaW50ZW50X3NlcnZpY2VfdW5yZWYo
RXdrX0ludGVudF9TZXJ2aWNlKiBzZXJ2aWNlKQotewotI2lmIEVOQUJMRShXRUJfSU5URU5UU19U
QUcpCi0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2VydmljZSk7Ci0KLSAgICBzZXJ2
aWNlLT5kZXJlZigpOwotI2VuZGlmCi19Ci0KIGNvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2Vydmlj
ZV9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSogc2VydmljZSkKIHsKLSAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2VydmljZSwgMCk7Ci0KICNpZiBFTkFCTEUo
V0VCX0lOVEVOVFNfVEFHKQotICAgIHJldHVybiBzZXJ2aWNlLT5hY3Rpb24oKTsKKyAgICBFV0tf
T0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tJbnRlbnRTZXJ2aWNlLCBzZXJ2aWNlLCBp
bXBsLCAwKTsKKyAgICByZXR1cm4gaW1wbC0+YWN0aW9uKCk7CisjZWxzZQorICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXJ2aWNlLCAwKTsKKyAgICByZXR1cm4gMDsKICNlbmRp
ZgogfQogCiBjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfdHlwZV9nZXQoY29uc3QgRXdr
X0ludGVudF9TZXJ2aWNlKiBzZXJ2aWNlKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZXJ2aWNlLCAwKTsKLQogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi0gICAg
cmV0dXJuIHNlcnZpY2UtPnR5cGUoKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihj
b25zdCBFd2tJbnRlbnRTZXJ2aWNlLCBzZXJ2aWNlLCBpbXBsLCAwKTsKKyAgICByZXR1cm4gaW1w
bC0+dHlwZSgpOworI2Vsc2UKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2Vy
dmljZSwgMCk7CisgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KIAogY29uc3QgY2hhciogZXdrX2lu
dGVudF9zZXJ2aWNlX2hyZWZfZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSogc2VydmljZSkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2VydmljZSwgMCk7Ci0KICNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotICAgIHJldHVybiBzZXJ2aWNlLT5ocmVmKCk7Cisg
ICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrSW50ZW50U2VydmljZSwgc2Vy
dmljZSwgaW1wbCwgMCk7CisgICAgcmV0dXJuIGltcGwtPmhyZWYoKTsKKyNlbHNlCisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNlcnZpY2UsIDApOworICAgIHJldHVybiAwOwog
I2VuZGlmCiB9CiAKIGNvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2VydmljZV90aXRsZV9nZXQoY29u
c3QgRXdrX0ludGVudF9TZXJ2aWNlKiBzZXJ2aWNlKQogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZXJ2aWNlLCAwKTsKLQogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcp
Ci0gICAgcmV0dXJuIHNlcnZpY2UtPnRpdGxlKCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9S
RVRVUk4oY29uc3QgRXdrSW50ZW50U2VydmljZSwgc2VydmljZSwgaW1wbCwgMCk7CisgICAgcmV0
dXJuIGltcGwtPnRpdGxlKCk7CisjZWxzZQorICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChzZXJ2aWNlLCAwKTsKKyAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCiBjb25zdCBjaGFy
KiBld2tfaW50ZW50X3NlcnZpY2VfZGlzcG9zaXRpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2Vy
dmljZSogc2VydmljZSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2Vy
dmljZSwgMCk7Ci0KICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotICAgIHJldHVybiBzZXJ2
aWNlLT5kaXNwb3NpdGlvbigpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a0ludGVudFNlcnZpY2UsIHNlcnZpY2UsIGltcGwsIDApOworICAgIHJldHVybiBpbXBsLT5k
aXNwb3NpdGlvbigpOworI2Vsc2UKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2VydmljZSwgMCk7CisgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmgKaW5kZXggYTdk
M2QxYS4uMDE0NzY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2ludGVudF9zZXJ2aWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmgKQEAgLTM3LDI2ICszNywxMiBAQAogZXh0ZXJuICJD
IiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19JbnRlbnRfU2Vy
dmljZSAqLwotdHlwZWRlZiBzdHJ1Y3QgRXdrX0ludGVudF9TZXJ2aWNlIEV3a19JbnRlbnRfU2Vy
dmljZTsKLQogLyoqCi0gKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2
ZW4gb2JqZWN0LgotICoKLSAqIEBwYXJhbSBzZXJ2aWNlIHRoZSBpbnRlbnQgc2VydmljZSBvYmpl
Y3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2lu
dGVyIHRvIHRoZSBvYmplY3Qgb24gc3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVB
UEkgRXdrX0ludGVudF9TZXJ2aWNlICpld2tfaW50ZW50X3NlcnZpY2VfcmVmKEV3a19JbnRlbnRf
U2VydmljZSAqc2VydmljZSk7Ci0KLS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291
bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVu
IHRoZSByZWZlcmVuY2UgY291bnQgcmVhY2hlcyAwLCB0aGUgaW50ZW50IHNlcnZpY2UgaXMgZnJl
ZWQuCisgKiBEZWNsYXJlIEV3a19JbnRlbnRfU2VydmljZSBhcyBFd2tfT2JqZWN0LgogICoKLSAq
IEBwYXJhbSBzZXJ2aWNlIHRoZSBpbnRlbnQgc2VydmljZSBvYmplY3QgdG8gZGVjcmVhc2UgdGhl
IHJlZmVyZW5jZSBjb3VudAorICogQHNlZSBFd2tfT2JqZWN0CiAgKi8KLUVBUEkgdm9pZCBld2tf
aW50ZW50X3NlcnZpY2VfdW5yZWYoRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsKK3R5cGVk
ZWYgc3RydWN0IEV3a19PYmplY3QgRXdrX0ludGVudF9TZXJ2aWNlOwogCiAvKioKICAqIFF1ZXJ5
IGFjdGlvbiBmb3IgdGhpcyBpbnRlbnQgc2VydmljZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5o
CmluZGV4IGYyZWZkZmYuLjAyMmUzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaApAQCAt
MzAsMTkgKzMwLDIxIEBACiAKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNs
dWRlICJXS0ludGVudFNlcnZpY2VJbmZvLmgiCisjaW5jbHVkZSAiZXdrX29iamVjdF9wcml2YXRl
LmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIC8qKgotICogXHN0cnVjdCBFd2tf
SW50ZW50X1NlcnZpY2UKKyAqIFxzdHJ1Y3QgRXdrSW50ZW50U2VydmljZQogICogQGJyaWVmIENv
bnRhaW5zIHRoZSBpbnRlbnQgc2VydmljZSBkYXRhLgogICovCi1jbGFzcyBFd2tfSW50ZW50X1Nl
cnZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfSW50ZW50X1NlcnZpY2U+IHsKK2NsYXNzIEV3
a0ludGVudFNlcnZpY2UgOiBwdWJsaWMgRXdrX09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrX0ludGVudF9TZXJ2aWNlPiBjcmVhdGUoV0tJbnRlbnRTZXJ2aWNlSW5m
b1JlZiBzZXJ2aWNlUmVmKQorICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tJbnRlbnRTZXJ2aWNl
KQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrSW50ZW50U2VydmljZT4gY3JlYXRlKFdLSW50
ZW50U2VydmljZUluZm9SZWYgc2VydmljZVJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRXdrX0ludGVudF9TZXJ2aWNlKHNlcnZpY2VSZWYpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tJbnRlbnRTZXJ2aWNlKHNlcnZpY2VSZWYpKTsKICAgICB9CiAKICAg
ICBjb25zdCBjaGFyKiBhY3Rpb24oKSBjb25zdDsKQEAgLTUyLDcgKzU0LDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IGNoYXIqIGRpc3Bvc2l0aW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgRXdrX0ludGVudF9TZXJ2aWNlKFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZVJl
Zik7CisgICAgZXhwbGljaXQgRXdrSW50ZW50U2VydmljZShXS0ludGVudFNlcnZpY2VJbmZvUmVm
IHNlcnZpY2VSZWYpOwogCiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fYWN0aW9uOwogICAgIFdL
RWluYVNoYXJlZFN0cmluZyBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmNwcAppbmRleCBhZDJkZWVmLi5iMDFkNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9k
ZWNpc2lvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAotRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBFd2tfTmF2aWdhdGlv
bl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24gbW91c2VCdXR0b24sIEV2
ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNzUmVmUHRyPEV3a1VybFJlcXVlc3Q+IHJl
cXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSkKK0V3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
bjo6RXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZSwgRXZlbnRfTW91c2Vf
QnV0dG9uIG1vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVycywgUGFzc1Jl
ZlB0cjxFd2tVcmxSZXF1ZXN0PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmcmFtZU5hbWUpCiAgICAg
OiBtX2xpc3RlbmVyKGxpc3RlbmVyKQogICAgICwgbV9hY3RlZFVwb25CeUNsaWVudChmYWxzZSkK
ICAgICAsIG1fbmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpCkBAIC00MiwxMjYgKzQyLDEx
MCBAQCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OkV3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlzdAogICAgICwgbV9mcmFtZU5hbWUoZnJhbWVOYW1l
KQogeyB9CiAKLUV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6fkV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbigpCitFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246On5Fd2tOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb24oKQogewogICAgIC8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2hv
aWNlIGZvciBhbGwgcG9saWN5IGRlY2lzaW9ucyBpbiBXZWJQYWdlUHJveHkuY3BwLgogICAgIGlm
ICghbV9hY3RlZFVwb25CeUNsaWVudCkKICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNl
KG1fbGlzdGVuZXIuZ2V0KCkpOwogfQogCi1Fd2tfTmF2aWdhdGlvbl9UeXBlIEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbjo6bmF2aWdhdGlvblR5cGUoKSBjb25zdAorRXdrX05hdmlnYXRp
b25fVHlwZSBFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246Om5hdmlnYXRpb25UeXBlKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9uYXZpZ2F0aW9uVHlwZTsKIH0KIAotRXZlbnRfTW91c2VfQnV0
dG9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6bW91c2VCdXR0b24oKSBjb25zdAor
RXZlbnRfTW91c2VfQnV0dG9uIEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6bW91c2VCdXR0
b24oKSBjb25zdAogewogICAgIHJldHVybiBtX21vdXNlQnV0dG9uOwogfQogCi1FdmVudF9Nb2Rp
Zmllcl9LZXlzIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6bW9kaWZpZXJzKCkgY29u
c3QKK0V2ZW50X01vZGlmaWVyX0tleXMgRXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjptb2Rp
ZmllcnMoKSBjb25zdAogewogICAgIHJldHVybiBtX21vZGlmaWVyczsKIH0KIAotY29uc3QgY2hh
ciogRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpmcmFtZU5hbWUoKSBjb25zdAorY29u
c3QgY2hhciogRXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOjpmcmFtZU5hbWUoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2ZyYW1lTmFtZTsKIH0KIAotRXdrVXJsUmVxdWVzdCogRXdrX05hdmln
YXRpb25fUG9saWN5X0RlY2lzaW9uOjpyZXF1ZXN0KCkgY29uc3QKK0V3a1VybFJlcXVlc3QqIEV3
a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6cmVxdWVzdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcmVxdWVzdC5nZXQoKTsKIH0KIAotdm9pZCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b246OmFjY2VwdCgpCit2b2lkIEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6YWNjZXB0KCkK
IHsKICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobV9saXN0ZW5lci5nZXQoKSk7CiAgICAg
bV9hY3RlZFVwb25CeUNsaWVudCA9IHRydWU7CiB9CiAKLXZvaWQgRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uOjpyZWplY3QoKQordm9pZCBFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb246
OnJlamVjdCgpCiB7CiAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVySWdub3JlKG1fbGlzdGVuZXIu
Z2V0KCkpOwogICAgIG1fYWN0ZWRVcG9uQnlDbGllbnQgPSB0cnVlOwogfQogCi12b2lkIEV3a19O
YXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6ZG93bmxvYWQoKQordm9pZCBFd2tOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb246OmRvd25sb2FkKCkKIHsKICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJE
b3dubG9hZChtX2xpc3RlbmVyLmdldCgpKTsKICAgICBtX2FjdGVkVXBvbkJ5Q2xpZW50ID0gdHJ1
ZTsKIH0KIAotRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb25fcmVmKEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNp
b24pCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRlY2lzaW9uLCAwKTsK
LQotICAgIGRlY2lzaW9uLT5yZWYoKTsKLQotICAgIHJldHVybiBkZWNpc2lvbjsKLX0KLQotdm9p
ZCBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fdW5yZWYoRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uKiBkZWNpc2lvbikKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihkZWNpc2lvbik7Ci0KLSAgICBkZWNpc2lvbi0+ZGVyZWYoKTsKLX0KLQogRXdrX05hdmlnYXRp
b25fVHlwZSBld2tfbmF2aWdhdGlvbl9wb2xpY3lfbmF2aWdhdGlvbl90eXBlX2dldChjb25zdCBF
d2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24qIGRlY2lzaW9uKQogewotICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChkZWNpc2lvbiwgRVdLX05BVklHQVRJT05fVFlQRV9PVEhF
Uik7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uLCBkZWNpc2lvbiwgaW1wbCwgRVdLX05BVklHQVRJT05fVFlQRV9PVEhFUik7
CiAKLSAgICByZXR1cm4gZGVjaXNpb24tPm5hdmlnYXRpb25UeXBlKCk7CisgICAgcmV0dXJuIGlt
cGwtPm5hdmlnYXRpb25UeXBlKCk7CiB9CiAKIEV2ZW50X01vdXNlX0J1dHRvbiBld2tfbmF2aWdh
dGlvbl9wb2xpY3lfbW91c2VfYnV0dG9uX2dldChjb25zdCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb24qIGRlY2lzaW9uKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChkZWNpc2lvbiwgRVZFTlRfTU9VU0VfQlVUVE9OX05PTkUpOworICAgIEVXS19PQkpfR0VUX0lN
UExfT1JfUkVUVVJOKGNvbnN0IEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZGVjaXNpb24s
IGltcGwsIEVWRU5UX01PVVNFX0JVVFRPTl9OT05FKTsKIAotICAgIHJldHVybiBkZWNpc2lvbi0+
bW91c2VCdXR0b24oKTsKKyAgICByZXR1cm4gaW1wbC0+bW91c2VCdXR0b24oKTsKIH0KIAogRXZl
bnRfTW9kaWZpZXJfS2V5cyBld2tfbmF2aWdhdGlvbl9wb2xpY3lfbW9kaWZpZXJzX2dldChjb25z
dCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24qIGRlY2lzaW9uKQogewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkZWNpc2lvbiwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9k
aWZpZXJfS2V5cz4oMCkpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3
a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZGVjaXNpb24sIGltcGwsIHN0YXRpY19jYXN0PEV2
ZW50X01vZGlmaWVyX0tleXM+KDApKTsKIAotICAgIHJldHVybiBkZWNpc2lvbi0+bW9kaWZpZXJz
KCk7CisgICAgcmV0dXJuIGltcGwtPm1vZGlmaWVycygpOwogfQogCiBjb25zdCBjaGFyKiBld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZnJhbWVfbmFtZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uKiBkZWNpc2lvbikKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoZGVjaXNpb24sIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZGVjaXNpb24sIGltcGwsIDApOwogCi0gICAg
cmV0dXJuIGRlY2lzaW9uLT5mcmFtZU5hbWUoKTsKKyAgICByZXR1cm4gaW1wbC0+ZnJhbWVOYW1l
KCk7CiB9CiAKIEV3a19VcmxfUmVxdWVzdCogZXdrX25hdmlnYXRpb25fcG9saWN5X3JlcXVlc3Rf
Z2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24pCiB7Ci0g
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRlY2lzaW9uLCAwKTsKKyAgICBFV0tf
T0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24s
IGRlY2lzaW9uLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkZWNpc2lvbi0+cmVxdWVzdCgpOwor
ICAgIHJldHVybiBpbXBsLT5yZXF1ZXN0KCk7CiB9CiAKIHZvaWQgZXdrX25hdmlnYXRpb25fcG9s
aWN5X2RlY2lzaW9uX2FjY2VwdChFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24qIGRlY2lz
aW9uKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGRlY2lzaW9uKTsKKyAgICBF
V0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIGRl
Y2lzaW9uLCBpbXBsKTsKIAotICAgIGRlY2lzaW9uLT5hY2NlcHQoKTsKKyAgICBpbXBsLT5hY2Nl
cHQoKTsKIH0KIAogdm9pZCBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcmVqZWN0KEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24pCiB7Ci0gICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4oZGVjaXNpb24pOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVU
VVJOKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZGVjaXNpb24sIGltcGwpOwogCi0gICAg
ZGVjaXNpb24tPnJlamVjdCgpOworICAgIGltcGwtPnJlamVjdCgpOwogfQogCiB2b2lkIGV3a19u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9kb3dubG9hZChFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb24qIGRlY2lzaW9uKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGRl
Y2lzaW9uKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tOYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb24sIGRlY2lzaW9uLCBpbXBsKTsKIAotICAgIGRlY2lzaW9uLT5kb3dubG9hZCgp
OworICAgIGltcGwtPmRvd25sb2FkKCk7CiB9CiAKIC8vIEV3a19OYXZpZ2F0aW9uX1R5cGUgZW51
bSB2YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCmluZGV4IDE2NmIx
ZGMuLjBmMzQxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCkBAIC0zOCw4
ICszOCwxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiAqLwotdHlwZWRlZiBzdHJ1Y3Qg
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbjsKKy8qKgorICogRGVjbGFyZSBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gYXMg
RXdrX09iamVjdC4KKyAqCisgKiBAc2VlIEV3a19PYmplY3QKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg
RXdrX09iamVjdCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb247CiAKIC8vLyBFbnVtIGNv
bnRhaW5pbmcgbmF2aWdhdGlvbiB0eXBlcwogdHlwZWRlZiBlbnVtICB7CkBAIC02NywyNCArNzEs
NiBAQCB0eXBlZGVmIGVudW0gewogfSBFdmVudF9Nb2RpZmllcl9LZXlzOwogCiAvKioKLSAqIElu
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICog
QHBhcmFtIGRlY2lzaW9uIHRoZSBwb2xpY3kgZGVjaXNpb24gb2JqZWN0IHRvIGluY3JlYXNlIHRo
ZSByZWZlcmVuY2UgY291bnQKLSAqCi0gKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0
IG9uIHN1Y2Nlc3MsIEBjIE5VTEwgb3RoZXJ3aXNlLgotICovCi1FQVBJIEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbiAqZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3JlZihFd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gKmRlY2lzaW9uKTsKLQotLyoqCi0gKiBEZWNyZWFz
ZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVl
aW5nIGl0LgotICoKLSAqIFdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCByZWFjaGVzIDAsIHRoZSBv
YmplY3QgaXMgZnJlZWQuCi0gKgotICogQHBhcmFtIGRlY2lzaW9uIHRoZSBwb2xpY3kgZGVjaXNp
b24gb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKLSAqLwotRUFQSSB2b2lk
IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl91bnJlZihFd2tfTmF2aWdhdGlvbl9Qb2xp
Y3lfRGVjaXNpb24gKmRlY2lzaW9uKTsKLQotLyoqCiAgKiBRdWVyeSB0eXBlIGZvciB0aGlzIG5h
dmlnYXRpb24gcG9saWN5IGRlY2lzaW9uLgogICoKICAqIEBwYXJhbSBkZWNpc2lvbiBuYXZpZ2F0
aW9uIHBvbGljeSBkZWNpc2lvbiBvYmplY3QgdG8gcXVlcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25f
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAppbmRleCA2NmZlYjMxLi5mYjI3NzNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgKQEAgLTM3LDE2
ICszNywxOCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIC8qKgotICogXHN0cnVj
dCAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uCisgKiBcc3RydWN0ICBFd2tOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24KICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9uIHBv
bGljeSBkZWNpc2lvbiBkYXRhLgogICovCi1jbGFzcyBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+
IHsKK2NsYXNzIEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA6IHB1YmxpYyBFd2tfT2JqZWN0
IHsKIHB1YmxpYzoKLSAgICB+RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKCk7CisgICAg
RVdLX09CSkVDVF9ERUNMQVJFKEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbikKIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbj4gY3JlYXRlKFdL
RnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tVUkxSZXF1ZXN0UmVmIHJl
cXVlc3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVm
IGxpc3RlbmVyKQorICAgIH5Fd2tOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oKTsKKworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbj4gY3JlYXRlKFdLRnJh
bWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tVUkxSZXF1ZXN0UmVmIHJlcXVl
c3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfTmF2aWdhdGlv
bl9Qb2xpY3lfRGVjaXNpb24obGlzdGVuZXIsIHN0YXRpY19jYXN0PEV3a19OYXZpZ2F0aW9uX1R5
cGU+KG5hdmlnYXRpb25UeXBlKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW91c2VfQnV0dG9uPihtb3Vz
ZUJ1dHRvbiksIHN0YXRpY19jYXN0PEV2ZW50X01vZGlmaWVyX0tleXM+KG1vZGlmaWVycyksIEV3
a1VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0UmVmKSwgZnJhbWVOYW1lKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRXdrTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKGxpc3RlbmVyLCBz
dGF0aWNfY2FzdDxFd2tfTmF2aWdhdGlvbl9UeXBlPihuYXZpZ2F0aW9uVHlwZSksIHN0YXRpY19j
YXN0PEV2ZW50X01vdXNlX0J1dHRvbj4obW91c2VCdXR0b24pLCBzdGF0aWNfY2FzdDxFdmVudF9N
b2RpZmllcl9LZXlzPihtb2RpZmllcnMpLCBFd2tVcmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdFJl
ZiksIGZyYW1lTmFtZSkpOwogICAgIH0KIAogICAgIHZvaWQgYWNjZXB0KCk7CkBAIC02MCw3ICs2
Miw3IEBAIHB1YmxpYzoKICAgICBFd2tVcmxSZXF1ZXN0KiByZXF1ZXN0KCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xpY3lM
aXN0ZW5lclJlZiBsaXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
RXZlbnRfTW91c2VfQnV0dG9uIG1vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlm
aWVycywgUGFzc1JlZlB0cjxFd2tVcmxSZXF1ZXN0PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmcmFt
ZU5hbWUpOworICAgIEV3a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2
ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmll
cnMsIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVO
YW1lKTsKIAogICAgIFdLUmV0YWluUHRyPFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZj4gbV9saXN0
ZW5lcjsKICAgICBib29sIG1fYWN0ZWRVcG9uQnlDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmNwcAppbmRleCBiYmM1YTEwLi41N2Mx
NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVz
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNv
dXJjZS5jcHAKQEAgLTI5LDQ3ICsyOSwzMSBAQAogI2luY2x1ZGUgImV3a19yZXNvdXJjZV9wcml2
YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi1Fd2tfUmVzb3VyY2U6OkV3
a19SZXNvdXJjZShXS1VSTFJlZiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpCitFd2tSZXNvdXJj
ZTo6RXdrUmVzb3VyY2UoV0tVUkxSZWYgdXJsLCBib29sIGlzTWFpblJlc291cmNlKQogICAgIDog
bV91cmwodXJsKQogICAgICwgbV9pc01haW5SZXNvdXJjZShpc01haW5SZXNvdXJjZSkKIHsgfQog
Ci1jb25zdCBjaGFyKiBFd2tfUmVzb3VyY2U6OnVybCgpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tS
ZXNvdXJjZTo6dXJsKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91cmw7CiB9CiAKLWJvb2wgRXdr
X1Jlc291cmNlOjppc01haW5SZXNvdXJjZSgpIGNvbnN0Citib29sIEV3a1Jlc291cmNlOjppc01h
aW5SZXNvdXJjZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faXNNYWluUmVzb3VyY2U7CiB9CiAK
LUV3a19SZXNvdXJjZSogZXdrX3Jlc291cmNlX3JlZihFd2tfUmVzb3VyY2UqIHJlc291cmNlKQot
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNvdXJjZSwgMCk7Ci0KLSAg
ICByZXNvdXJjZS0+cmVmKCk7Ci0KLSAgICByZXR1cm4gcmVzb3VyY2U7Ci19Ci0KLXZvaWQgZXdr
X3Jlc291cmNlX3VucmVmKEV3a19SZXNvdXJjZSogcmVzb3VyY2UpCi17Ci0gICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4ocmVzb3VyY2UpOwotCi0gICAgcmVzb3VyY2UtPmRlcmVmKCk7Ci19
Ci0KIGNvbnN0IGNoYXIqIGV3a19yZXNvdXJjZV91cmxfZ2V0KGNvbnN0IEV3a19SZXNvdXJjZSog
cmVzb3VyY2UpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlc291cmNl
LCAwKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tSZXNvdXJjZSwg
cmVzb3VyY2UsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJlc291cmNlLT51cmwoKTsKKyAgICBy
ZXR1cm4gaW1wbC0+dXJsKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfcmVzb3VyY2VfbWFpbl9yZXNv
dXJjZV9nZXQoY29uc3QgRXdrX1Jlc291cmNlKiByZXNvdXJjZSkKIHsKLSAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwocmVzb3VyY2UsIGZhbHNlKTsKKyAgICBFV0tfT0JKX0dFVF9J
TVBMX09SX1JFVFVSTihjb25zdCBFd2tSZXNvdXJjZSwgcmVzb3VyY2UsIGltcGwsIGZhbHNlKTsK
IAotICAgIHJldHVybiByZXNvdXJjZS0+aXNNYWluUmVzb3VyY2UoKTsKKyAgICByZXR1cm4gaW1w
bC0+aXNNYWluUmVzb3VyY2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3Jlc291cmNlLmgKaW5kZXggNWVjNDBiYi4uMDc0ZjgyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKQEAgLTM3LDI2ICsz
NywxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUg
Zm9yIEBhIEV3a19SZXNvdXJjZS4gKi8KLXR5cGVkZWYgc3RydWN0IEV3a19SZXNvdXJjZSBFd2tf
UmVzb3VyY2U7Ci0KIC8qKgotICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhl
IGdpdmVuIG9iamVjdC4KLSAqCi0gKiBAcGFyYW0gcmVzb3VyY2UgdGhlIHJlc291cmNlIG9iamVj
dCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50Ci0gKgotICogQHJldHVybiBhIHBvaW50
ZXIgdG8gdGhlIG9iamVjdCBvbiBzdWNjZXNzLCBAYyBOVUxMIG90aGVyd2lzZS4KLSAqLwotRUFQ
SSBFd2tfUmVzb3VyY2UgKmV3a19yZXNvdXJjZV9yZWYoRXdrX1Jlc291cmNlICpyZXNvdXJjZSk7
Ci0KLS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9i
amVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291
bnQgcmVhY2hlcyAwLCB0aGUgcmVzb3VyY2UgaXMgZnJlZWQuCisgKiBEZWNsYXJlIEV3a19SZXNv
dXJjZSBhcyBFd2tfT2JqZWN0LgogICoKLSAqIEBwYXJhbSByZXNvdXJjZSB0aGUgcmVzb3VyY2Ug
b2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdrX09iamVj
dAogICovCi1FQVBJIHZvaWQgZXdrX3Jlc291cmNlX3VucmVmKEV3a19SZXNvdXJjZSAqcmVzb3Vy
Y2UpOwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tfUmVzb3VyY2U7CiAKIC8qKgogICog
UXVlcnkgVVJMIGZvciB0aGlzIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9wcml2YXRlLmgKaW5kZXggMGYxZmU0My4u
OWMwOTBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3Jlc291cmNlX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5oCkBAIC0yOCwyMyArMjgsMjYgQEAKIAogI2luY2x1ZGUg
IldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiZXdr
X29iamVjdF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotY2xhc3MgRXdrX1Jlc291cmNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8RXdrX1Jlc291cmNlPiB7CitjbGFzcyBFd2tSZXNvdXJjZSA6IHB1YmxpYyBF
d2tfT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfUmVzb3VyY2U+
IGNyZWF0ZShXS1VSTFJlZiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpCisgICAgRVdLX09CSkVD
VF9ERUNMQVJFKEV3a1Jlc291cmNlKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrUmVzb3Vy
Y2U+IGNyZWF0ZShXS1VSTFJlZiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19SZXNvdXJjZSh1cmwsIGlzTWFpblJlc291cmNl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrUmVzb3VyY2UodXJsLCBpc01haW5S
ZXNvdXJjZSkpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXIqIHVybCgpIGNvbnN0OwogICAgIGJv
b2wgaXNNYWluUmVzb3VyY2UoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBFd2tfUmVzb3VyY2Uo
V0tVUkxSZWYgdXJsLCBib29sIGlzTWFpblJlc291cmNlKTsKKyAgICBFd2tSZXNvdXJjZShXS1VS
TFJlZiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpOwogCiAgICAgV0tFaW5hU2hhcmVkU3RyaW5n
IG1fdXJsOwogICAgIGJvb2wgbV9pc01haW5SZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZWN1cml0eV9vcmlnaW4uY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbi5jcHAKaW5kZXgg
YmMwZjhjNy4uMzUwNjEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbi5jcHAKQEAgLTMyLDU5ICszMiw0NCBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1Fd2tfU2VjdXJpdHlfT3JpZ2luOjpFd2tfU2Vj
dXJpdHlfT3JpZ2luKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQorRXdrU2VjdXJpdHlP
cmlnaW46OkV3a1NlY3VyaXR5T3JpZ2luKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQog
ICAgIDogbV93a09yaWdpbihvcmlnaW5SZWYpCiAgICAgLCBtX2hvc3QoQWRvcHRXSywgV0tTZWN1
cml0eU9yaWdpbkNvcHlIb3N0KG9yaWdpblJlZikpCiAgICAgLCBtX3Byb3RvY29sKEFkb3B0V0ss
IFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luUmVmKSkKIHsgfQogCi1jb25zdCBj
aGFyKiBFd2tfU2VjdXJpdHlfT3JpZ2luOjpob3N0KCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a1Nl
Y3VyaXR5T3JpZ2luOjpob3N0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9ob3N0OwogfQogCi1j
b25zdCBjaGFyKiBFd2tfU2VjdXJpdHlfT3JpZ2luOjpwcm90b2NvbCgpIGNvbnN0Citjb25zdCBj
aGFyKiBFd2tTZWN1cml0eU9yaWdpbjo6cHJvdG9jb2woKSBjb25zdAogewogICAgIHJldHVybiBt
X3Byb3RvY29sOwogfQogCi11aW50MzJfdCBFd2tfU2VjdXJpdHlfT3JpZ2luOjpwb3J0KCkgY29u
c3QKK3VpbnQzMl90IEV3a1NlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29uc3QKIHsKICAgICByZXR1
cm4gV0tTZWN1cml0eU9yaWdpbkdldFBvcnQobV93a09yaWdpbi5nZXQoKSk7CiB9CiAKLUV3a19T
ZWN1cml0eV9PcmlnaW4qIGV3a19zZWN1cml0eV9vcmlnaW5fcmVmKEV3a19TZWN1cml0eV9Pcmln
aW4qIG9yaWdpbikKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwob3JpZ2lu
LCAwKTsKLQotICAgIG9yaWdpbi0+cmVmKCk7Ci0gICAgcmV0dXJuIG9yaWdpbjsKLX0KLQotdm9p
ZCBld2tfc2VjdXJpdHlfb3JpZ2luX3VucmVmKEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbikK
LXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihvcmlnaW4pOwotCi0gICAgb3JpZ2lu
LT5kZXJlZigpOwotfQotCiBjb25zdCBjaGFyKiBld2tfc2VjdXJpdHlfb3JpZ2luX2hvc3RfZ2V0
KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbikKIHsKLSAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwob3JpZ2luLCAwKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JF
VFVSTihjb25zdCBFd2tTZWN1cml0eU9yaWdpbiwgb3JpZ2luLCBpbXBsLCAwKTsKIAotICAgIHJl
dHVybiBvcmlnaW4tPmhvc3QoKTsKKyAgICByZXR1cm4gaW1wbC0+aG9zdCgpOwogfQogCiBjb25z
dCBjaGFyKiBld2tfc2VjdXJpdHlfb3JpZ2luX3Byb3RvY29sX2dldChjb25zdCBFd2tfU2VjdXJp
dHlfT3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KG9yaWdpbiwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrU2Vj
dXJpdHlPcmlnaW4sIG9yaWdpbiwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gb3JpZ2luLT5wcm90
b2NvbCgpOworICAgIHJldHVybiBpbXBsLT5wcm90b2NvbCgpOwogfQogCiB1aW50MzJfdCBld2tf
c2VjdXJpdHlfb3JpZ2luX3BvcnRfZ2V0KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdp
bikKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwob3JpZ2luLCAwKTsKKyAg
ICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tTZWN1cml0eU9yaWdpbiwgb3Jp
Z2luLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBvcmlnaW4tPnBvcnQoKTsKKyAgICByZXR1cm4g
aW1wbC0+cG9ydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbi5oCmluZGV4IDViZTg0MTYuLjJiODE3NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZWN1cml0eV9vcmln
aW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2VjdXJpdHlf
b3JpZ2luLmgKQEAgLTQyLDI2ICs0MiwxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoq
IENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19TZWN1cml0eV9PcmlnaW4uICovCi10eXBlZGVm
IHN0cnVjdCBFd2tfU2VjdXJpdHlfT3JpZ2luIEV3a19TZWN1cml0eV9PcmlnaW47Ci0KIC8qKgot
ICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KLSAq
Ci0gKiBAcGFyYW0gb3JpZ2luIHRoZSBvcmlnaW4gb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZl
cmVuY2UgY291bnQKLSAqCi0gKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0IG9uIHN1
Y2Nlc3MsIEBjIE5VTEwgb3RoZXJ3aXNlCi0gKi8KLUVBUEkgRXdrX1NlY3VyaXR5X09yaWdpbiAq
ZXdrX3NlY3VyaXR5X29yaWdpbl9yZWYoRXdrX1NlY3VyaXR5X09yaWdpbiAqbyk7Ci0KLS8qKgot
ICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9z
c2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVhY2hl
cyAwLCB0aGUgb3JpZ2luIGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfU2VjdXJpdHlfT3JpZ2lu
IGFzIEV3a19PYmplY3QuCiAgKgotICogQHBhcmFtIG9yaWdpbiB0aGUgb3JpZ2luIG9iamVjdCB0
byBkZWNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKiBAc2VlIEV3a19PYmplY3QKICAqLwot
RUFQSSB2b2lkIGV3a19zZWN1cml0eV9vcmlnaW5fdW5yZWYoRXdrX1NlY3VyaXR5X09yaWdpbiAq
byk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19TZWN1cml0eV9PcmlnaW47CiAKIC8q
KgogICogUmV0dXJucyB0aGUgaG9zdCBvZiB0aGUgc2VjdXJpdHkgb3JpZ2luLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NlY3VyaXR5X29yaWdpbl9w
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2VjdXJpdHlf
b3JpZ2luX3ByaXZhdGUuaAppbmRleCAwNDAxMjQxLi5hOGEzOWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2VjdXJpdHlfb3JpZ2luX3ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2VjdXJpdHlfb3Jp
Z2luX3ByaXZhdGUuaApAQCAtMjgsMTUgKzI4LDE3IEBACiAKICNpbmNsdWRlICJXS0VpbmFTaGFy
ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS1NlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiZXdr
X29iamVjdF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLWNsYXNz
IEV3a19TZWN1cml0eV9PcmlnaW4gOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfU2VjdXJpdHlfT3Jp
Z2luPiB7CitjbGFzcyBFd2tTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBFd2tfT2JqZWN0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfU2VjdXJpdHlfT3JpZ2luPiBjcmVhdGUo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCisgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3
a1NlY3VyaXR5T3JpZ2luKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrU2VjdXJpdHlPcmln
aW4+IGNyZWF0ZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRXdrX1NlY3VyaXR5X09yaWdpbihvcmlnaW5SZWYpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tTZWN1cml0eU9yaWdpbihvcmlnaW5SZWYpKTsK
ICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBob3N0KCkgY29uc3Q7CkBAIC00NCw3ICs0Niw3IEBA
IHB1YmxpYzoKICAgICB1aW50MzJfdCBwb3J0KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgRXdrX1NlY3VyaXR5X09yaWdpbihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZik7
CisgICAgZXhwbGljaXQgRXdrU2VjdXJpdHlPcmlnaW4oV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW5SZWYpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTZWN1cml0eU9yaWdpblJlZj4gbV93a09yaWdp
bjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9ob3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAppbmRleCAx
NjMyYjJlLi44MGNhYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBFaW5h
X0xpc3QqIEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZU9yaWdpbkxpc3QoV0tBcnJheVJlZiBv
cmlnaW5zKSBjb25zdAogICAgICAgICBXS1NlY3VyaXR5T3JpZ2luUmVmIHdrT3JpZ2luUmVmID0g
c3RhdGljX2Nhc3Q8V0tTZWN1cml0eU9yaWdpblJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KG9y
aWdpbnMsIGkpKTsKICAgICAgICAgUmVmUHRyPEV3a19TZWN1cml0eV9PcmlnaW4+IG9yaWdpbiA9
IG1fd3JhcHBlckNhY2hlLmdldCh3a09yaWdpblJlZik7CiAgICAgICAgIGlmICghb3JpZ2luKSB7
Ci0gICAgICAgICAgICBvcmlnaW4gPSBFd2tfU2VjdXJpdHlfT3JpZ2luOjpjcmVhdGUod2tPcmln
aW5SZWYpOworICAgICAgICAgICAgb3JpZ2luID0gRXdrU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh3
a09yaWdpblJlZik7CiAgICAgICAgICAgICBtX3dyYXBwZXJDYWNoZS5zZXQod2tPcmlnaW5SZWYs
IG9yaWdpbik7CiAgICAgICAgIH0KICAgICAgICAgb3JpZ2luTGlzdCA9IGVpbmFfbGlzdF9hcHBl
bmQob3JpZ2luTGlzdCwgb3JpZ2luLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9w
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCA2NWZjOWY5Li5kNmZlZDRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Nj
aGVtZV9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtNDAsNiArNDAsNyBAQAogY2xhc3MgRXdrVXJsU2No
ZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tfT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNU
X0RFQ0xBUkUoRXdrVXJsU2NoZW1lUmVxdWVzdCkKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3
a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2Vy
LCBXS1VSTFJlZiB1cmwsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICB7CiAgICAgICAgIGlmICgh
bWFuYWdlciB8fCAhdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCmluZGV4IDQyOTE4NWMuLjE1N2IyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTY5NiwxMCArNjk2LDExIEBAIEVpbmFf
Qm9vbCBld2tfdmlld19pbnRlbnRfZGVsaXZlcihFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0lu
dGVudCogaW50ZW50KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfVklFV19J
TVBMX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOwotICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChpbnRlbnQsIGZhbHNlKTsKKyAgICBFd2tJbnRlbnQqIGludGVu
dEltcGwgPSBld2tfb2JqZWN0X2Nhc3Q8RXdrSW50ZW50Kj4oaW50ZW50KTsKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaW50ZW50SW1wbCwgZmFsc2UpOwogCiAgICAgV2ViUGFn
ZVByb3h5KiBwYWdlID0gaW1wbC0+cGFnZSgpOwotICAgIHBhZ2UtPmRlbGl2ZXJJbnRlbnRUb0Zy
YW1lKHBhZ2UtPm1haW5GcmFtZSgpLCBpbnRlbnQtPndlYkludGVudERhdGEoKSk7CisgICAgcGFn
ZS0+ZGVsaXZlckludGVudFRvRnJhbWUocGFnZS0+bWFpbkZyYW1lKCksIGludGVudEltcGwtPndl
YkludGVudERhdGEoKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfZmlsZV9jaG9v
c2VyX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0LmNwcAppbmRleCBhNTYyZDc0Li5iMDU4ZDY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfZmlsZV9jaG9vc2VyX3JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9maWxlX2Nob29zZXJfcmVxdWVzdC5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgb25GaWxlQ2hvb3NlclJlcXVlc3Qodm9pZCogdXNl
ckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQogICAgIEFTU0VSVF9UUlVFKHJl
cXVlc3QpOwogCiAgICAgLy8gUmVmIHRoZSByZXF1ZXN0IHRvIHByb2Nlc3MgYXN5bmNocm9ub3Vz
bHkuCi0gICAgKnJldHVyblJlcXVlc3QgPSBld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcmVmKHJl
cXVlc3QpOworICAgICpyZXR1cm5SZXF1ZXN0ID0gZXdrX29iamVjdF9yZWYocmVxdWVzdCk7CiB9
CiAKIHN0YXRpYyBpbnQgY29tcGFyZVN0cmluZ3MoY29uc3Qgdm9pZCogc3RyaW5nMSwgY29uc3Qg
dm9pZCogc3RyaW5nMikKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2Us
IGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9maWxlc19jaG9vc2UpCiAgICAgQVNTRVJUX0ZBTFNF
KGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9maWxlc19jaG9vc2UocmVxdWVzdCwgZmlsZXMpKTsK
ICAgICBmcmVlU3RyaW5nTGlzdCgmZmlsZXMpOwogCi0gICAgZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1
ZXN0X3VucmVmKHJlcXVlc3QpOworICAgIGV3a19vYmplY3RfdW5yZWYocmVxdWVzdCk7CiAKICAg
ICAvLyBDaGVjayB0aGF0IHRoZSBKUyBzaWRlIHJlY2VpdmVkIHRoZSBmaWxlcy4KICAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiZmlsZTEucG5nfGZpbGUyLnBuZyIpKTsK
QEAgLTEyMSw3ICsxMjEsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX2ZpbGVfY2hv
b3Nlcl9yZXF1ZXN0X2ZpbGVfY2hvb3NlKQogICAgIEFTU0VSVF9UUlVFKGV3a19maWxlX2Nob29z
ZXJfcmVxdWVzdF9maWxlX2Nob29zZShyZXF1ZXN0LCAiL3RtcC9maWxlMy5wbmciKSk7CiAgICAg
QVNTRVJUX0ZBTFNFKGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9maWxlX2Nob29zZShyZXF1ZXN0
LCAiL3RtcC9maWxlMy5wbmciKSk7CiAKLSAgICBld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfdW5y
ZWYocmVxdWVzdCk7CisgICAgZXdrX29iamVjdF91bnJlZihyZXF1ZXN0KTsKIAogICAgIC8vIENo
ZWNrIHRoYXQgdGhlIEpTIHNpZGUgcmVjZWl2ZWQgdGhlIGZpbGUuCiAgICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oImZpbGUzLnBuZyIpKTsKQEAgLTE0Niw3ICsxNDYsNyBA
QCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2ZpbGVf
Y2FuY2VsKQogICAgIEFTU0VSVF9UUlVFKGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9jYW5jZWwo
cmVxdWVzdCkpOwogICAgIEFTU0VSVF9GQUxTRShld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfY2Fu
Y2VsKHJlcXVlc3QpKTsKIAotICAgIGV3a19maWxlX2Nob29zZXJfcmVxdWVzdF91bnJlZihyZXF1
ZXN0KTsKKyAgICBld2tfb2JqZWN0X3VucmVmKHJlcXVlc3QpOwogCiAgICAgZWNvcmVfbWFpbl9s
b29wX2l0ZXJhdGUoKTsKICAgICBFWFBFQ1RfU1RSRVEoIkZpbGUgY2hvb3NlciB0ZXN0IiwgZXdr
X3ZpZXdfdGl0bGVfZ2V0KHdlYlZpZXcoKSkpOwpAQCAtMTY0LDcgKzE2NCw3IEBAIFRFU1RfRihF
V0syVW5pdFRlc3RCYXNlLCBld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZmlsZV9jYW5jZWwpCiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKHdlYlZpZXcoKSwgImZpbGUsY2hvb3Nl
cixyZXF1ZXN0Iiwgb25GaWxlQ2hvb3NlclJlcXVlc3QpOwogICAgIEFTU0VSVF9UUlVFKHJlcXVl
c3QpOwogCi0gICAgZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X3VucmVmKHJlcXVlc3QpOworICAg
IGV3a19vYmplY3RfdW5yZWYocmVxdWVzdCk7CiAKICAgICBlY29yZV9tYWluX2xvb3BfaXRlcmF0
ZSgpOwogICAgIEVYUEVDVF9TVFJFUSgiRmlsZSBjaG9vc2VyIHRlc3QiLCBld2tfdmlld190aXRs
ZV9nZXQod2ViVmlldygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3RvcmFnZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3Bw
CmluZGV4IGI1ZDk2MmEuLmVlMGM5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21h
bmFnZXIuY3BwCkBAIC0xMjksNiArMTI5LDYgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3
a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19nZXQpCiAgICAgRXdrX1NlY3VyaXR5X09yaWdpbiog
b3JpZ2luID0gMDsKICAgICBFWFBFQ1RfVFJVRShjaGVja09yaWdpbihvcmlnaW5EYXRhLm9yaWdp
bkxpc3QsICZvcmlnaW4pKTsKIAotICAgIEVYUEVDVF9FUShvcmlnaW4sIGV3a19zZWN1cml0eV9v
cmlnaW5fcmVmKG9yaWdpbikpOwotICAgIGV3a19zZWN1cml0eV9vcmlnaW5fdW5yZWYob3JpZ2lu
KTsKKyAgICBFWFBFQ1RfRVEob3JpZ2luLCBld2tfb2JqZWN0X3JlZihvcmlnaW4pKTsKKyAgICBl
d2tfb2JqZWN0X3VucmVmKG9yaWdpbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL0Zvcm1DbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9Gb3JtQ2xpZW50RWZsLmNwcAppbmRleCA1Yjg5MzA5Li5hNmU1OWQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Zvcm1DbGllbnRFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRm9ybUNsaWVudEVmbC5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgdm9pZCBGb3JtQ2xpZW50RWZsOjp3aWxsU3VibWl0Rm9ybShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgLypmcmFtZSovLCBXS0ZyYW1lUmVmIC8KIHsKICAgICBGb3JtQ2xpZW50RWZsKiBmb3Jt
Q2xpZW50ID0gdG9Gb3JtQ2xpZW50RWZsKGNsaWVudEluZm8pOwogCi0gICAgUmVmUHRyPEV3a19G
b3JtX1N1Ym1pc3Npb25fUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVx
dWVzdDo6Y3JlYXRlKHZhbHVlcywgbGlzdGVuZXIpOworICAgIFJlZlB0cjxFd2tfRm9ybV9TdWJt
aXNzaW9uX1JlcXVlc3Q+IHJlcXVlc3QgPSBFd2tGb3JtU3VibWlzc2lvblJlcXVlc3Q6OmNyZWF0
ZSh2YWx1ZXMsIGxpc3RlbmVyKTsKICAgICBmb3JtQ2xpZW50LT5tX3ZpZXdJbXBsLT5zbWFydENh
bGxiYWNrPE5ld0Zvcm1TdWJtaXNzaW9uUmVxdWVzdD4oKS5jYWxsKHJlcXVlc3QuZ2V0KCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xp
ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRF
ZmwuY3BwCmluZGV4IGYxYjQ5YjcuLjZkMTYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZv
aWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFnZVJlZiwg
V0tTdHJpbmdSZWYgdGl0bGUsIFdLCiB2b2lkIFBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRSZWNlaXZl
SW50ZW50Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVudERhdGFSZWYgaW50
ZW50LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXdrVmlld0lt
cGwqIHZpZXdJbXBsID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmlld0ltcGwo
KTsKLSAgICBSZWZQdHI8RXdrX0ludGVudD4gZXdrSW50ZW50ID0gRXdrX0ludGVudDo6Y3JlYXRl
KGludGVudCk7CisgICAgUmVmUHRyPEV3a19JbnRlbnQ+IGV3a0ludGVudCA9IEV3a0ludGVudDo6
Y3JlYXRlKGludGVudCk7CiAgICAgdmlld0ltcGwtPnNtYXJ0Q2FsbGJhY2s8SW50ZW50UmVxdWVz
dD4oKS5jYWxsKGV3a0ludGVudC5nZXQoKSk7CiB9CiAjZW5kaWYKQEAgLTY4LDcgKzY4LDcgQEAg
dm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tJbnRlbnQKIHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OnJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tJbnRlbnRTZXJ2
aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewogICAgIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCA9IHRvUGFnZUxvYWRDbGllbnRFZmwoY2xp
ZW50SW5mbyktPnZpZXdJbXBsKCk7Ci0gICAgUmVmUHRyPEV3a19JbnRlbnRfU2VydmljZT4gZXdr
SW50ZW50U2VydmljZSA9IEV3a19JbnRlbnRfU2VydmljZTo6Y3JlYXRlKHNlcnZpY2VJbmZvKTsK
KyAgICBSZWZQdHI8RXdrX0ludGVudF9TZXJ2aWNlPiBld2tJbnRlbnRTZXJ2aWNlID0gRXdrSW50
ZW50U2VydmljZTo6Y3JlYXRlKHNlcnZpY2VJbmZvKTsKICAgICB2aWV3SW1wbC0+c21hcnRDYWxs
YmFjazxJbnRlbnRTZXJ2aWNlUmVnaXN0cmF0aW9uPigpLmNhbGwoZXdrSW50ZW50U2VydmljZS5n
ZXQoKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1BhZ2VQb2xpY3lDbGllbnRFZmwuY3BwCmluZGV4IDI1NGYyOWEuLjhmYjYwYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmNw
cApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLAogewogICAgIFBhZ2VQ
b2xpY3lDbGllbnRFZmwqIHBvbGljeUNsaWVudCA9IHRvUGFnZVBvbGljeUNsaWVudEVmbChjbGll
bnRJbmZvKTsKIAotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKKyAg
ICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3a05h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRv
biwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7CiAgICAgcG9saWN5Q2xpZW50LT5t
X3ZpZXdJbXBsLT5zbWFydENhbGxiYWNrPE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbj4oKS5jYWxs
KGRlY2lzaW9uLmdldCgpKTsKIH0KIApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFBhZ2VQb2xpY3lD
bGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYsCiB7CiAgICAgUGFnZVBvbGljeUNsaWVudEVmbCogcG9saWN5Q2xpZW50ID0gdG9QYWdl
UG9saWN5Q2xpZW50RWZsKGNsaWVudEluZm8pOwogCi0gICAgUmVmUHRyPEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbj4gZGVjaXNpb24gPSBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b246OmNyZWF0ZShuYXZpZ2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVz
dCwgdG9JbXBsKGZyYW1lTmFtZSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxpc3RlbmVyKTsK
KyAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3
a05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1
dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCB0b0ltcGwoZnJhbWVOYW1lKS0+c3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgbGlzdGVuZXIpOwogICAgIHBvbGljeUNsaWVudC0+bV92aWV3SW1wbC0+c21h
cnRDYWxsYmFjazxOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbj4oKS5jYWxsKGRlY2lzaW9uLmdldCgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRF
ZmwuY3BwCmluZGV4IDQxMTBiNmIuLmMxODQ0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lk
IFBhZ2VVSUNsaWVudEVmbDo6c2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBXS1JlY3QgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudAogdm9pZCBQYWdlVUlDbGllbnRFZmw6OnJ1bk9wZW5QYW5lbChX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiBwYXJhbWV0ZXJz
LCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCA9IHRvUGFnZVVJQ2xpZW50RWZs
KGNsaWVudEluZm8pLT5tX3ZpZXdJbXBsOwotICAgIFJlZlB0cjxFd2tfRmlsZV9DaG9vc2VyX1Jl
cXVlc3Q+IGZpbGVDaG9vc2VyUmVxdWVzdCA9IEV3a19GaWxlX0Nob29zZXJfUmVxdWVzdDo6Y3Jl
YXRlKHRvSW1wbChwYXJhbWV0ZXJzKSwgdG9JbXBsKGxpc3RlbmVyKSk7CisgICAgUmVmUHRyPEV3
a19GaWxlX0Nob29zZXJfUmVxdWVzdD4gZmlsZUNob29zZXJSZXF1ZXN0ID0gRXdrRmlsZUNob29z
ZXJSZXF1ZXN0OjpjcmVhdGUodG9JbXBsKHBhcmFtZXRlcnMpLCB0b0ltcGwobGlzdGVuZXIpKTsK
ICAgICB2aWV3SW1wbC0+c21hcnRDYWxsYmFjazxGaWxlQ2hvb3NlclJlcXVlc3Q+KCkuY2FsbChm
aWxlQ2hvb3NlclJlcXVlc3QuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAKaW5kZXggYTViNjg5OC4u
MWY2YTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXNvdXJj
ZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVz
b3VyY2VMb2FkQ2xpZW50RWZsLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZENsaWVudEVmbDo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tQYWdlUmVmLCBXS0ZyYW1l
UmVmIHdrRgogICAgIGJvb2wgaXNNYWluUmVzb3VyY2UgPSAoV0tGcmFtZUlzTWFpbkZyYW1lKHdr
RnJhbWUpICYmIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKTsKICAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gd2tVcmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVSTCh3a1JlcXVlc3QpKTsK
IAotICAgIFJlZlB0cjxFd2tfUmVzb3VyY2U+IHJlc291cmNlID0gRXdrX1Jlc291cmNlOjpjcmVh
dGUod2tVcmwuZ2V0KCksIGlzTWFpblJlc291cmNlKTsKKyAgICBSZWZQdHI8RXdrX1Jlc291cmNl
PiByZXNvdXJjZSA9IEV3a1Jlc291cmNlOjpjcmVhdGUod2tVcmwuZ2V0KCksIGlzTWFpblJlc291
cmNlKTsKIAogICAgIC8vIEtlZXAgdGhlIHJlc291cmNlIGludGVybmFsbHkgdG8gcmV1c2UgaXQg
bGF0ZXIuCiAgICAgcmVzb3VyY2VMb2FkQ2xpZW50LT5tX2xvYWRpbmdSZXNvdXJjZXNNYXAuYWRk
KHJlc291cmNlSWRlbnRpZmllciwgcmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUmVzb3VyY2VMb2FkQ2xpZW50RWZsLmgKaW5kZXggN2E1NTI1Yi4uYjUz
OWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxv
YWRDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNl
TG9hZENsaWVudEVmbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFJlc291cmNlTG9hZENs
aWVudEVmbF9oCiAjZGVmaW5lIFJlc291cmNlTG9hZENsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJl
d2tfcmVzb3VyY2UuaCIKICNpbmNsdWRlICJld2tfcmVzb3VyY2VfcHJpdmF0ZS5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YjM4MDk4Li4yNmIz
NDE5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMDcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwu
cG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV0syXSBNYWtlIEVXSyBjbGFz
c2VzIEV3a19PYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDEwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3cgYWxsIHRoZSBleGlzdGluZyBFV0sgY2xhc3NlcyBzaGFyZSBjb21tb24gRXdr
X09iamVjdCByZWYvdW5yZWYgQVBJLgorCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4u
YzoKKyAgICAgICAgKGNsb3NlX2ZpbGVfcGlja2VyKToKKyAgICAgICAgKG9uX2ZpbGVfY2hvb3Nl
cl9yZXF1ZXN0KToKKwogMjAxMi0xMS0wNiAgRGFuIEJlYW0gIDxkYmVhbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgRW5hYmxlIFJFUVVFU1RfQVVUT0NPTVBMRVRFIGZvciBjaHJvbWl1bSBwb3J0
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJy
b3dzZXIvZWZsL21haW4uYwppbmRleCAyMzE5M2ViLi4wYzI0Mjk3IDEwMDY0NAotLS0gYS9Ub29s
cy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWlu
LmMKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgdm9pZCBjbG9zZV9maWxlX3BpY2tlcihGaWxl
U2VsZWN0b3JEYXRhKiBmc19kYXRhKQogewogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNr
X2RlbChmc19kYXRhLT5wYXJlbnQsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9maWxlcGlja2VyX3Bh
cmVudF9kZWxldGlvbik7CiAgICAgZXZhc19vYmplY3RfZGVsKGZzX2RhdGEtPndpbmRvdyk7Ci0g
ICAgZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X3VucmVmKGZzX2RhdGEtPnJlcXVlc3QpOworICAg
IGV3a19vYmplY3RfdW5yZWYoZnNfZGF0YS0+cmVxdWVzdCk7CiAgICAgZnJlZShmc19kYXRhKTsK
IH0KIApAQCAtMzc2LDcgKzM3Niw3IEBAIG9uX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0KHZvaWQgKnVz
ZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgRmls
ZVNlbGVjdG9yRGF0YSogZnNfZGF0YSA9IChGaWxlU2VsZWN0b3JEYXRhKiltYWxsb2Moc2l6ZW9m
KEZpbGVTZWxlY3RvckRhdGEpKTsKICAgICBmc19kYXRhLT5wYXJlbnQgPSBhcHBfZGF0YS0+d2lu
ZG93OwogICAgIGZzX2RhdGEtPndpbmRvdyA9IHdpbmRvdzsKLSAgICBmc19kYXRhLT5yZXF1ZXN0
ID0gZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X3JlZihyZXF1ZXN0KTsKKyAgICBmc19kYXRhLT5y
ZXF1ZXN0ID0gZXdrX29iamVjdF9yZWYocmVxdWVzdCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKHdpbmRvdywgImRlbGV0ZSxyZXF1ZXN0Iiwgb25fZmlsZXBpY2tlcl9kZWxl
dGlvbiwgZnNfZGF0YSk7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcF9k
YXRhLT53aW5kb3csIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9maWxlcGlja2VyX3BhcmVudF9kZWxl
dGlvbiwgZnNfZGF0YSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>