<?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>198482</bug_id>
          
          <creation_ts>2019-06-03 05:31:55 -0700</creation_ts>
          <short_desc>JSScript should not keep bytecode cache in memory</short_desc>
          <delta_ts>2019-06-04 04:15:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1541215</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-06-03 05:31:55 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541217</commentid>
    <comment_count>1</comment_count>
      <attachid>371185</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-06-03 05:41:06 -0700</bug_when>
    <thetext>Created attachment 371185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541224</commentid>
    <comment_count>2</comment_count>
      <attachid>371189</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-06-03 07:06:04 -0700</bug_when>
    <thetext>Created attachment 371189
Patch

Fix windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541306</commentid>
    <comment_count>3</comment_count>
      <attachid>371189</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-03 13:40:54 -0700</bug_when>
    <thetext>Comment on attachment 371189
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371189&amp;action=review

r=me

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:176
&gt; +    Ref&lt;CachedBytecode&gt; releaseMapped(BytecodeCacheError&amp; error)

Kinda weird this returns ref instead of ptr. Why not RefPtr and make nullptr mean there was an error? I feel like it&apos;s weird to construct an empty CachedBytecode here.

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:180
&gt; +            error.standardError(errno);

nit: This style feels kinda weird. Why not just make error something you assign to? And by default it&apos;s empty? And you can make this a static function that is a factory constructor. I feel like that&apos;s more in line with the style of error handling I&apos;ve seen elsewhere in WK. So something like:
```
error = BytecodeCacheError::standardError(errno)
return nullptr 
```

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:2411
&gt; +    Encoder encoder(vm, -1);

You could also make -1 the default argument of this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541506</commentid>
    <comment_count>4</comment_count>
      <attachid>371264</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-06-04 03:28:39 -0700</bug_when>
    <thetext>Created attachment 371264
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541512</commentid>
    <comment_count>5</comment_count>
      <attachid>371264</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-04 04:14:16 -0700</bug_when>
    <thetext>Comment on attachment 371264
Patch for landing

Clearing flags on attachment: 371264

Committed r246060: &lt;https://trac.webkit.org/changeset/246060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541513</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-04 04:14:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541516</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-04 04:15:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/51392697&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371185</attachid>
            <date>2019-06-03 05:41:06 -0700</date>
            <delta_ts>2019-06-03 07:06:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198482-20190603144104.patch</filename>
            <type>text/plain</type>
            <size>31865</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWE1ZTM5NWI3Njc5MjQzMDA0MzZkYmVjOWUxZmVhNjczMmM0YTI4Li40YjRhNGViMzkyNjI0YWFl
YjVhOTZjMmIyZWNiNzMxMjBmOGU4N2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0wNi0wMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBKU1NjcmlwdCBzaG91bGQgbm90IGtlZXAgYnl0ZWNvZGUgY2FjaGUgaW4g
bWVtb3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aGVuIEpTU2NyaXB0IHdyaXRlcyB0byB0aGUgY2FjaGUsIHdlIGtlZXAgdGhlIGluLW1lbW9yeSBz
ZXJpYWxpemVkIGJ5dGVjb2RlIGFsaXZlLgorICAgICAgICBJbnN0ZWFkLCB3ZSBzaG91bGQgb25s
eSBldmVyIGhvbGQgdGhlIG1lbW9yeSBtYXBwZWQgYnl0ZWNvZGUgY2FjaGUgdG8gYXZvaWQgdXNp
bmcKKyAgICAgICAgdG9vIG11Y2ggbWVtb3J5LgorCisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1t
OgorICAgICAgICAoLVtKU1NjcmlwdCB3cml0ZUNhY2hlOl0pOgorICAgICAgICAqIEFQSS90ZXN0
cy90ZXN0YXBpLm1tOgorICAgICAgICAodGVzdEJ5dGVjb2RlQ2FjaGVXaXRoU3ludGF4RXJyb3Ip
OgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5jcHA6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OmlzVmFsaWQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6Om1lc3NhZ2UgY29uc3QpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OnBhcnNlckVycm9yKToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVDYWNoZUVycm9yOjpzdGFuZGFyZEVycm9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVDYWNoZUVycm9yOjp3cml0ZUVycm9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVy
cm9yOjpTdGFuZGFyZEVycm9yOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjppc1ZhbGlkIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjptZXNzYWdlIGNvbnN0KToK
KyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9yOjpTdGFuZGFyZEVycm9yKToK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjpXcml0ZUVycm9y
KToKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmg6CisgICAgICAgIChKU0M6OkNh
Y2hlZEJ5dGVjb2RlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVkVHlwZXMuY3Bw
OgorICAgICAgICAoSlNDOjpFbmNvZGVyOjpFbmNvZGVyKToKKyAgICAgICAgKEpTQzo6RW5jb2Rl
cjo6cmVsZWFzZSk6CisgICAgICAgIChKU0M6OkVuY29kZXI6OnJlbGVhc2VNYXBwZWQpOgorICAg
ICAgICAoSlNDOjplbmNvZGVDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjplbmNvZGVGdW5jdGlv
bkNvZGVCbG9jayk6CisgICAgICAgICogcnVudGltZS9DYWNoZWRUeXBlcy5oOgorICAgICAgICAq
IHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKEpTQzo6c2VyaWFsaXplQnl0ZWNvZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6CisgICAgICAgICogcnVudGltZS9Db21w
bGV0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUpOgorICAg
ICAgICAoSlNDOjpnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bXBsZXRpb24uaDoKKwogMjAxOS0wNi0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIENyYXNoIGV4cGxpY2l0bHkgaWYgU3RydWN0dXJlSURzIGFy
ZSBleGhhdXN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCmluZGV4IDQxMWRk
Y2Q0NjdkMmJlNWVkZGJjMzJkNGE2NTZmZmY4NWFmMmNhNmQuLjNhNTE4MGRkM2U3OGEzZDVlYTU0
OGI5YTQ0YTU5MGJmMjVlNmEwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNTY3JpcHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5t
bQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiSlNTY3JpcHRJbnRlcm5hbC5oIgogCiAjaW1w
b3J0ICJBUElDYXN0LmgiCisjaW1wb3J0ICJCeXRlY29kZUNhY2hlRXJyb3IuaCIKICNpbXBvcnQg
IkNhY2hlZFR5cGVzLmgiCiAjaW1wb3J0ICJDb2RlQ2FjaGUuaCIKICNpbXBvcnQgIklkZW50aWZp
ZXIuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbXBvcnQgIkpTU291cmNlQ29kZS5oIgogI2ltcG9y
dCAiSlNWYWx1ZVByaXZhdGUuaCIKICNpbXBvcnQgIkpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5o
IgotI2ltcG9ydCAiUGFyc2VyRXJyb3IuaCIKICNpbXBvcnQgIlN5bWJvbC5oIgogI2luY2x1ZGUg
PHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVNZXRhZGF0YS5oPgpAQCAtMjc3LDMyICsy
NzcsMjEgQEAgLSAoQk9PTCl3cml0ZUNhY2hlOihTdHJpbmcmKWVycm9yCiAgICAgICAgIGNsb3Nl
KGZkKTsKICAgICB9KTsKIAotICAgIEpTQzo6UGFyc2VyRXJyb3IgcGFyc2VyRXJyb3I7CisgICAg
SlNDOjpCeXRlY29kZUNhY2hlRXJyb3IgY2FjaGVFcnJvcjsKICAgICBKU0M6OlNvdXJjZUNvZGUg
c291cmNlQ29kZSA9IFtzZWxmIHNvdXJjZUNvZGVdOwogICAgIHN3aXRjaCAobV90eXBlKSB7CiAg
ICAgY2FzZSBrSlNTY3JpcHRUeXBlTW9kdWxlOgotICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlID0g
SlNDOjpnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKG1fdmlydHVhbE1hY2hpbmUudm0sIHNvdXJjZUNv
ZGUsIHBhcnNlckVycm9yKTsKKyAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Z2VuZXJh
dGVNb2R1bGVCeXRlY29kZShtX3ZpcnR1YWxNYWNoaW5lLnZtLCBzb3VyY2VDb2RlLCBmZCwgY2Fj
aGVFcnJvcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0pTU2NyaXB0VHlwZVByb2dyYW06
Ci0gICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OmdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2Rl
KG1fdmlydHVhbE1hY2hpbmUudm0sIHNvdXJjZUNvZGUsIHBhcnNlckVycm9yKTsKKyAgICAgICAg
bV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUobV92aXJ0dWFs
TWFjaGluZS52bSwgc291cmNlQ29kZSwgZmQsIGNhY2hlRXJyb3IpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBpZiAocGFyc2VyRXJyb3IuaXNWYWxpZCgpKSB7CisgICAgaWYgKGNhY2hl
RXJyb3IuaXNWYWxpZCgpKSB7CiAgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OkNhY2hl
ZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLSAgICAgICAgZXJyb3IgPSBtYWtlU3RyaW5nKCJVbmFibGUg
dG8gZ2VuZXJhdGUgYnl0ZWNvZGUgZm9yIHRoaXMgSlNTY3JpcHQgYmVjYXVzZSBvZiBhIHBhcnNl
ciBlcnJvcjogIiwgcGFyc2VyRXJyb3IubWVzc2FnZSgpKTsKLSAgICAgICAgcmV0dXJuIE5POwot
ICAgIH0KLQotICAgIHNzaXplX3QgYnl0ZXNXcml0dGVuID0gd3JpdGUoZmQsIG1fY2FjaGVkQnl0
ZWNvZGUtPmRhdGEoKSwgbV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgpKTsKLSAgICBpZiAoYnl0ZXNX
cml0dGVuID09IC0xKSB7Ci0gICAgICAgIGVycm9yID0gbWFrZVN0cmluZygiQ291bGQgbm90IHdy
aXRlIGNhY2hlIGZpbGUgdG8gZGlzazogIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0
dXJuIE5POwotICAgIH0KLQotICAgIGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRl
bikgIT0gbV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgpKSB7CiAgICAgICAgIGZ0cnVuY2F0ZShmZCwg
MCk7Ci0gICAgICAgIGVycm9yID0gbWFrZVN0cmluZygiQ291bGQgbm90IHdyaXRlIHRoZSBmdWxs
IGNhY2hlIGZpbGUgdG8gZGlzay4gT25seSB3cm90ZSAiLCBTdHJpbmc6Om51bWJlcihieXRlc1dy
aXR0ZW4pLCAiIG9mIHRoZSBleHBlY3RlZCAiLCBTdHJpbmc6Om51bWJlcihtX2NhY2hlZEJ5dGVj
b2RlLT5zaXplKCkpLCAiIGJ5dGVzLiIpOworICAgICAgICBlcnJvciA9IG1ha2VTdHJpbmcoIlVu
YWJsZSB0byBnZW5lcmF0ZSBieXRlY29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlOiAiLCBj
YWNoZUVycm9yLm1lc3NhZ2UoKSk7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCA1MjUzYjAyZjcyMmE4
NjJmN2MwMzE3MTdhMjUzNWVjM2MwZTZjMjY3Li42Y2U4MGYwZTAxMmE4YzJhYjc2M2NkNzYwZTRk
NjcxZTA4YjExMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBp
Lm1tCkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0Qnl0ZWNvZGVDYWNoZVdp
dGhTeW50YXhFcnJvcihKU1NjcmlwdFR5cGUgdHlwZSkKICAgICAgICAgaWYgKFtzY3JpcHQgY2Fj
aGVCeXRlY29kZVdpdGhFcnJvcjomZXJyb3JdKQogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoZXJyb3IpOwotICAgICAgICBjaGVja1Jlc3VsdChAIkdvdCBlcnJv
ciB3aGVuIHRyeWluZyB0byBjYWNoZSBieXRlY29kZSBmb3IgYSBzY3JpcHQgd2l0aCBhIHN5bnRh
eCBlcnJvci4iLCBbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIlVuYWJsZSB0
byBnZW5lcmF0ZSBieXRlY29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlIG9mIGEgcGFyc2Vy
IGVycm9yIl0pOworICAgICAgICBjaGVja1Jlc3VsdChAIkdvdCBlcnJvciB3aGVuIHRyeWluZyB0
byBjYWNoZSBieXRlY29kZSBmb3IgYSBzY3JpcHQgd2l0aCBhIHN5bnRheCBlcnJvci4iLCBbW2Vy
cm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIlVuYWJsZSB0byBnZW5lcmF0ZSBieXRl
Y29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlIl0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk0MTVlYTA3MTU0MDBkNjk4ODA1YTZlMzlkNzU3
ZmQ1MTY0OWUwMjQuLmZhOTcxY2ZlMzhjOWFkMTI0OTlmYmFiMzk1NTJlMTY1ZDNlYzk3YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTc1MSw2ICs3NTEsNyBAQCBzZXQo
SmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHJ1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5oCiAgICAgcnVudGltZS9CdXR0ZXJmbHkuaAogICAgIHJ1bnRpbWUvQnV0
dGVyZmx5SW5saW5lcy5oCisgICAgcnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuaAogICAgIHJ1
bnRpbWUvQ2FjaGVQYXlsb2FkLmgKICAgICBydW50aW1lL0NhY2hlVXBkYXRlLmgKICAgICBydW50
aW1lL0NhY2hlZEJ5dGVjb2RlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmRh
MGM1NmNiYTIyMGQ2ZGJmM2U0NjJlZjg2ZDgwMzU3NmY3ODY0NC4uN2RjNTU0NWY2NzYzM2EzYzdh
ODRkMzE0NDYyNDljOTI0ZjQwZmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTc3Miw2ICs3NzIsNyBAQAogCQkxNDJFMzEzQjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJFMzEzMjEz
NEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQyRTMxM0MxMzRGRjBBNjAwQUZBREI1IC8qIFdlYWsuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MkUzMTMzMTM0
RkYwQTYwMEFGQURCNSAvKiBXZWFrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQyRjE2RTAyMTU1ODgwMjAwM0Q0OUM5IC8qIE1ldGFkYXRhVGFi
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MkYx
NkRGMjE1NTg1QzgwMDNENDlDOSAvKiBNZXRhZGF0YVRhYmxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMTQzNTk1MjEyMkE1MjFDRDAwRTgwODZE
IC8qIEJ5dGVjb2RlQ2FjaGVFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTQzNTk1MUYyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVF
cnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTE0Mzg2QTc1MURENjk4OTUwMDg2NTJDNCAvKiBEaXJlY3RFdmFsRXhlY3V0YWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzODZBNzMxREQ2OTg5
NTAwODY1MkM0IC8qIERpcmVjdEV2YWxFeGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQzODZBNzkxREQ2OTg5QzAwODY1MkM0IC8q
IEluZGlyZWN0RXZhbEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0Mzg2QTc3MURENjk4OUMwMDg2NTJDNCAvKiBJbmRpcmVjdEV2YWxF
eGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQ0MDA1N0YwQTUzMzU2NDAwMDVGMDYxIC8qIEpTTm9kZS5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0MEY2NDIwQTRGOEI2QTAwMDVGMDYx
IC8qIEpTTm9kZS5jICovOyB9OwpAQCAtMzE5MCw2ICszMTkxLDggQEAKIAkJMTQyRTMxMzMxMzRG
RjBBNjAwQUZBREI1IC8qIFdlYWsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2Vhay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDJGMTZERjIxNTU4NUM4MDAz
RDQ5QzkgLyogTWV0YWRhdGFUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZXRhZGF0YVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MkYxNkU5
MjE1ODNCNUUwMDNENDlDOSAvKiBDb2RlQmxvY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvZGVCbG9ja0lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMTQzNTk1MUYyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVFcnJvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCeXRlY29kZUNhY2hlRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMTQzNTk1MjAyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVFcnJv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeXRlY29kZUNhY2hlRXJyb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNDM4NkE3MjFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0
RXZhbEV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NDM4NkE3MzFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlyZWN0RXZhbEV4ZWN1dGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzODZBNzYxREQ2OTg5QzAwODY1MkM0IC8qIEluZGly
ZWN0RXZhbEV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NzU1LDYgKzY3NTgsOCBAQAogCQkJCTlFNzI5NDA5MTkwRjAzMDYwMDFBOTFCNSAvKiBC
dW5kbGVQYXRoLm1tICovLAogCQkJCTBGQjdGMzhCMTVFRDhFMzgwMEYxNjdCMiAvKiBCdXR0ZXJm
bHkuaCAqLywKIAkJCQkwRkI3RjM4QzE1RUQ4RTM4MDBGMTY3QjIgLyogQnV0dGVyZmx5SW5saW5l
cy5oICovLAorCQkJCTE0MzU5NTIwMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hlRXJy
b3IuY3BwICovLAorCQkJCTE0MzU5NTFGMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hl
RXJyb3IuaCAqLywKIAkJCQkxNDhCMTQxOTIyNUREMUU5MDBENkU5OTggLyogQ2FjaGVkQnl0ZWNv
ZGUuY3BwICovLAogCQkJCTE0NENBMzRGMjIxRjAzNzkwMDgxNzc4OSAvKiBDYWNoZWRCeXRlY29k
ZS5oICovLAogCQkJCTE0REFGQTQ1MjFFM0I4NzEwMDRCNjhGNyAvKiBDYWNoZWRUeXBlcy5jcHAg
Ki8sCkBAIC04Nzc2LDYgKzg3ODEsNyBAQAogCQkJCTBGQjdGMzk3MTVFRDhFNDYwMEYxNjdCMiAv
KiBCdXR0ZXJmbHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk4MTVFRDhFNDYwMEYxNjdC
MiAvKiBCdXR0ZXJmbHlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlD
MjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
NDM1OTUyMTIyQTUyMUNEMDBFODA4NkQgLyogQnl0ZWNvZGVDYWNoZUVycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIxQzI3RjE0QkVBQTgyMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNEODc3NzQxRTY1QzBBMDAwQkU5NDVBIC8qIEJ5dGVj
b2RlRHVtcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyMzBFRDFDRTMzMDBGMUY2ODEg
LyogQnl0ZWNvZGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDQzZDdlZjQ3NTgyMmE4M2FmYWY5YTEyZThjZjllMTFhOWQ3ZGI4N2IuLjNj
N2RkOTg0NmNjZDI0ZjJiMDJhMWQ3YzYyZWYyZjY1ZTVmNTgwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQKQEAgLTcxOCw2ICs3MTgsNyBAQCBydW50aW1lL0JpZ0ludFByb3RvdHlwZS5j
cHAKIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAogcnVudGltZS9Cb29sZWFuT2JqZWN0
LmNwcAogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorcnVudGltZS9CeXRlY29kZUNhY2hl
RXJyb3IuY3BwCiBydW50aW1lL0NhbGxEYXRhLmNwcAogcnVudGltZS9DYWNoZVBheWxvYWQuY3Bw
CiBydW50aW1lL0NhY2hlVXBkYXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBjMTEwZGM0
M2YxNzYzODY2NDg5Y2E0NDg4MmE1NmMxOWMyOTUzMWNlLi44NDY4NDUwMWJjYTU2YjhjZjQ3ODYw
YWE4ZTViMGViZGY4OWUxZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgi
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIkJ5dGVjb2RlQ2FjaGVF
cnJvci5oIgogI2luY2x1ZGUgIkNhdGNoU2NvcGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKQEAgLTk4MSw4ICs5ODIsMTAgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSB8fCAhbV9jYWNoZWRCeXRlY29kZSkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRl
Y29kZSA9IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKCpleGVjdXRhYmxlLT52bSgpLCBjb2RlQmxv
Y2spOwotICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlLT5hZGRGdW5jdGlvblVwZGF0ZShleGVjdXRh
YmxlLCBraW5kLCBXVEZNb3ZlKGNhY2hlZEJ5dGVjb2RlKSk7CisgICAgICAgIEJ5dGVjb2RlQ2Fj
aGVFcnJvciBlcnJvcjsKKyAgICAgICAgUmVmPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29k
ZSA9IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKCpleGVjdXRhYmxlLT52bSgpLCBjb2RlQmxvY2ss
IGVycm9yKTsKKyAgICAgICAgaWYgKCFlcnJvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBtX2Nh
Y2hlZEJ5dGVjb2RlLT5hZGRGdW5jdGlvblVwZGF0ZShleGVjdXRhYmxlLCBraW5kLCBXVEZNb3Zl
KGNhY2hlZEJ5dGVjb2RlKSk7CiAgICAgfQogCiAgICAgdm9pZCBjYWNoZUJ5dGVjb2RlKGNvbnN0
IEJ5dGVjb2RlQ2FjaGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3Qgb3ZlcnJpZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZiYjRiMTFjMTc3MGY2OGVhMzg4MjFhYjU2MWQzOGZjY2EyNjA3NzUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNh
Y2hlRXJyb3IuY3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnl0ZWNv
ZGVDYWNoZUVycm9yLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitib29sIEJ5dGVjb2RlQ2FjaGVF
cnJvcjo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9lcnJv
ciwgW10oY29uc3QgYXV0byYgZXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIGVycm9yLmlzVmFsaWQo
KTsKKyAgICB9KTsKK30KKworU3RyaW5nIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6bWVzc2FnZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9lcnJvciwgW10oY29uc3QgYXV0byYg
ZXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UoKTsKKyAgICB9KTsKK30KKwor
UGFyc2VyRXJyb3ImIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6cGFyc2VyRXJyb3IoKQoreworICAgIG1f
ZXJyb3IgPSBQYXJzZXJFcnJvcigpOworICAgIHJldHVybiBXVEY6OmdldDxQYXJzZXJFcnJvcj4o
bV9lcnJvcik7Cit9CisKK3ZvaWQgQnl0ZWNvZGVDYWNoZUVycm9yOjpzdGFuZGFyZEVycm9yKGlu
dCBlcnJvcikKK3sKKyAgICBtX2Vycm9yID0gU3RhbmRhcmRFcnJvcihlcnJvcik7Cit9CisKK3Zv
aWQgQnl0ZWNvZGVDYWNoZUVycm9yOjp3cml0ZUVycm9yKHNzaXplX3Qgd3JpdHRlbiwgc2l6ZV90
IGV4cGVjdGVkKQoreworICAgIG1fZXJyb3IgPSBXcml0ZUVycm9yKHdyaXR0ZW4sIGV4cGVjdGVk
KTsKK30KKworYm9vbCBCeXRlY29kZUNhY2hlRXJyb3I6OlN0YW5kYXJkRXJyb3I6OmlzVmFsaWQo
KSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcgQnl0ZWNvZGVDYWNoZUVy
cm9yOjpTdGFuZGFyZEVycm9yOjptZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RyZXJy
b3IobV9lcnJubyk7Cit9CisKK2Jvb2wgQnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3RyaW5nIEJ5dGVjb2Rl
Q2FjaGVFcnJvcjo6V3JpdGVFcnJvcjo6bWVzc2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1h
a2VTdHJpbmcoIkNvdWxkIG5vdCB3cml0ZSB0aGUgZnVsbCBjYWNoZSBmaWxlIHRvIGRpc2suIE9u
bHkgd3JvdGUgIiwgU3RyaW5nOjpudW1iZXIobV93cml0dGVuKSwgIiBvZiB0aGUgZXhwZWN0ZWQg
IiwgU3RyaW5nOjpudW1iZXIobV9leHBlY3RlZCksICIgYnl0ZXMuIik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnl0
ZWNvZGVDYWNoZUVycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29k
ZUNhY2hlRXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWQ4NDQ5OTY1OTZjMzFjZTg5MGE0YTY0NTNkZGJk
ZTRkOTM5NWUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQnl0ZWNvZGVDYWNoZUVycm9yLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU1NvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJQ
YXJzZXJFcnJvci5oIgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBCeXRlY29kZUNhY2hl
RXJyb3IgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNWYWxpZCgpIGNv
bnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBtZXNzYWdlKCkgY29uc3Q7CisKKyAg
ICBQYXJzZXJFcnJvciYgcGFyc2VyRXJyb3IoKTsKKyAgICB2b2lkIHN0YW5kYXJkRXJyb3IoaW50
KTsKKyAgICB2b2lkIHdyaXRlRXJyb3Ioc3NpemVfdCB3cml0dGVuLCBzaXplX3QgZXhwZWN0ZWQp
OworCitwcml2YXRlOgorICAgIGNsYXNzIFN0YW5kYXJkRXJyb3IgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgU3RhbmRhcmRFcnJvcihpbnQgZXJyb3IpCisgICAgICAgICAgICA6IG1fZXJybm8oZXJy
b3IpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
OworICAgICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgaW50IG1fZXJybm87CisgICAgfTsKKworICAgIGNsYXNzIFdyaXRlRXJyb3IgeworICAgIHB1
YmxpYzoKKyAgICAgICAgV3JpdGVFcnJvcihzc2l6ZV90IHdyaXR0ZW4sIHNpemVfdCBleHBlY3Rl
ZCkKKyAgICAgICAgICAgIDogbV93cml0dGVuKHdyaXR0ZW4pCisgICAgICAgICAgICAsIG1fZXhw
ZWN0ZWQoZXhwZWN0ZWQpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNW
YWxpZCgpIGNvbnN0OworICAgICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworCisgICAgcHJp
dmF0ZToKKyAgICAgICAgc3NpemVfdCBtX3dyaXR0ZW47CisgICAgICAgIHNpemVfdCBtX2V4cGVj
dGVkOworICAgIH07CisKKyAgICBWYXJpYW50PFBhcnNlckVycm9yLCBTdGFuZGFyZEVycm9yLCBX
cml0ZUVycm9yPiBtX2Vycm9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRCeXRlY29kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkQnl0ZWNvZGUuaAppbmRleCA1NzkzNjY4MjRi
YzhhNTNkMzAyM2M5ZTI5MTA3N2UyOWFjMTI5ZjlmLi4xNWNhYjNjMDQ3MGJhMGNhMDYyZDU1NWU0
N2MzZmZkZGM4ZmVkNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWRCeXRlY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nh
Y2hlZEJ5dGVjb2RlLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgogICAgIH0KIAogI2lmICFP
UyhXSU5ET1dTKQotICAgIHN0YXRpYyBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGNyZWF0ZSh2b2lkKiBk
YXRhLCBzaXplX3Qgc2l6ZSkKKyAgICBzdGF0aWMgUmVmPENhY2hlZEJ5dGVjb2RlPiBjcmVhdGUo
dm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIExlYWZFeGVjdXRhYmxlTWFwJiYgbGVhZkV4ZWN1dGFi
bGVzID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVkQnl0
ZWNvZGUoQ2FjaGVQYXlsb2FkOjptYWtlTWFwcGVkUGF5bG9hZChkYXRhLCBzaXplKSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRCeXRlY29kZShDYWNoZVBheWxvYWQ6Om1h
a2VNYXBwZWRQYXlsb2FkKGRhdGEsIHNpemUpLCBXVEZNb3ZlKGxlYWZFeGVjdXRhYmxlcykpKTsK
ICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVkVHlwZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVk
VHlwZXMuY3BwCmluZGV4IGUwYjRjYmZiOWE1MDNmZTcyZmY5MTcxOWM3Nzc0NWQxNjA3OTI4MmUu
LjdjYzc5ZjJkOWI1YjAwMjFjM2NhYjI0MTFmNTEzYzBiNWVlNDU4MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWNoZWRUeXBlcy5oIgogCisjaW5jbHVk
ZSAiQnl0ZWNvZGVDYWNoZUVycm9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVDYWNoZVZlcnNpb24u
aCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCkBAIC04Nyw4ICs4OCw5IEBAIHB1YmxpYzoKICAgICAgICAgcHRyZGlmZl90IG1f
b2Zmc2V0OwogICAgIH07CiAKLSAgICBFbmNvZGVyKFZNJiB2bSkKKyAgICBFbmNvZGVyKFZNJiB2
bSwgaW50IGZkKQogICAgICAgICA6IG1fdm0odm0pCisgICAgICAgICwgbV9mZChmZCkKICAgICAg
ICAgLCBtX2Jhc2VPZmZzZXQoMCkKICAgICAgICAgLCBtX2N1cnJlbnRQYWdlKG51bGxwdHIpCiAg
ICAgewpAQCAtMTQ0LDEyICsxNDYsMjAgQEAgcHVibGljOgogICAgICAgICBtX2xlYWZFeGVjdXRh
Ymxlcy5hZGQoZXhlY3V0YWJsZSwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICBSZWY8Q2FjaGVkQnl0
ZWNvZGU+IHJlbGVhc2UoKQorICAgIFJlZjxDYWNoZWRCeXRlY29kZT4gcmVsZWFzZShCeXRlY29k
ZUNhY2hlRXJyb3ImIGVycm9yKQogICAgIHsKICAgICAgICAgaWYgKCFtX2N1cnJlbnRQYWdlKQog
ICAgICAgICAgICAgcmV0dXJuIENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLQogICAgICAgICBt
X2N1cnJlbnRQYWdlLT5hbGlnbkVuZCgpOworCisgICAgICAgIGlmIChtX2ZkICE9IC0xKSB7Cisj
aWYgIU9TKFdJTkRPV1MpCisgICAgICAgICAgICByZXR1cm4gcmVsZWFzZU1hcHBlZChlcnJvcik7
CisjZWxzZQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRp
ZgorICAgICAgICB9CisKICAgICAgICAgc2l6ZV90IHNpemUgPSBtX2Jhc2VPZmZzZXQgKyBtX2N1
cnJlbnRQYWdlLT5zaXplKCk7CiAgICAgICAgIE1hbGxvY1B0cjx1aW50OF90PiBidWZmZXIgPSBN
YWxsb2NQdHI8dWludDhfdD46Om1hbGxvYyhzaXplKTsKICAgICAgICAgdW5zaWduZWQgb2Zmc2V0
ID0gMDsKQEAgLTE2Miw2ICsxNzIsMzggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKKyNp
ZiAhT1MoV0lORE9XUykKKyAgICBSZWY8Q2FjaGVkQnl0ZWNvZGU+IHJlbGVhc2VNYXBwZWQoQnl0
ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKKyAgICB7CisgICAgICAgIHNpemVfdCBzaXplID0gbV9i
YXNlT2Zmc2V0ICsgbV9jdXJyZW50UGFnZS0+c2l6ZSgpOworICAgICAgICBpZiAoZnRydW5jYXRl
KG1fZmQsIHNpemUpKSB7CisgICAgICAgICAgICBlcnJvci5zdGFuZGFyZEVycm9yKGVycm5vKTsK
KyAgICAgICAgICAgIHJldHVybiBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKCk7CisgICAgICAgIH0K
KworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKSB7CisgICAgICAgICAg
ICBzc2l6ZV90IGJ5dGVzV3JpdHRlbiA9IHdyaXRlKG1fZmQsIHBhZ2UuYnVmZmVyKCksIHBhZ2Uu
c2l6ZSgpKTsKKyAgICAgICAgICAgIGlmIChieXRlc1dyaXR0ZW4gPT0gLTEpIHsKKyAgICAgICAg
ICAgICAgICBlcnJvci5zdGFuZGFyZEVycm9yKGVycm5vKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pICE9IHBhZ2Uuc2l6ZSgpKSB7
CisgICAgICAgICAgICAgICAgZXJyb3Iud3JpdGVFcnJvcihieXRlc1dyaXR0ZW4sIHBhZ2Uuc2l6
ZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZSgpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCogYnVmZmVyID0gbW1hcChu
dWxscHRyLCBzaXplLCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBtX2ZkLCAwKTsKKyAgICAgICAg
aWYgKGJ1ZmZlciA9PSBNQVBfRkFJTEVEKSB7CisgICAgICAgICAgICBlcnJvci5zdGFuZGFyZEVy
cm9yKGVycm5vKTsKKyAgICAgICAgICAgIHJldHVybiBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKCk7
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShidWZm
ZXIsIHNpemUsIFdURk1vdmUobV9sZWFmRXhlY3V0YWJsZXMpKTsKKyAgICB9CisjZW5kaWYKKwog
ICAgIGNsYXNzIFBhZ2UgewogICAgIHB1YmxpYzoKICAgICAgICAgUGFnZShzaXplX3Qgc2l6ZSkK
QEAgLTIyOCw2ICsyNzAsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFZNJiBtX3ZtOworICAg
IGludCBtX2ZkOwogICAgIHB0cmRpZmZfdCBtX2Jhc2VPZmZzZXQ7CiAgICAgUGFnZSogbV9jdXJy
ZW50UGFnZTsKICAgICBWZWN0b3I8UGFnZT4gbV9wYWdlczsKQEAgLTIzNDIsMTEgKzIzODUsMTEg
QEAgdm9pZCBlbmNvZGVDb2RlQmxvY2soRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU291cmNlQ29k
ZUtleSYga2V5LCBjb25zdCBVbmxpbmtlZEMKICAgICBlbnRyeS0+ZW5jb2RlKGVuY29kZXIsIHsg
a2V5LCBqc0Nhc3Q8Y29uc3QgVW5saW5rZWRDb2RlQmxvY2tUeXBlKj4oY29kZUJsb2NrKSB9KTsK
IH0KIAotUmVmPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxvY2soVk0mIHZtLCBjb25zdCBT
b3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKiBjb2RlQmxvY2spCitS
ZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNv
ZGVLZXkmIGtleSwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywgaW50IGZkLCBC
eXRlY29kZUNhY2hlRXJyb3ImIGVycm9yKQogewogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvID0gY29kZUJsb2NrLT5jbGFzc0luZm8odm0pOwogCi0gICAgRW5jb2RlciBlbmNvZGVyKHZt
KTsKKyAgICBFbmNvZGVyIGVuY29kZXIodm0sIGZkKTsKICAgICBpZiAoY2xhc3NJbmZvID09IFVu
bGlua2VkUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKQogICAgICAgICBlbmNvZGVDb2RlQmxvY2s8
VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPihlbmNvZGVyLCBrZXksIGNvZGVCbG9jayk7CiAgICAg
ZWxzZSBpZiAoY2xhc3NJbmZvID09IFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazo6aW5m
bygpKQpAQCAtMjM1NCwxNCArMjM5NywyMCBAQCBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNv
ZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSwgY29uc3QgVW5saQogICAg
IGVsc2UKICAgICAgICAgQVNTRVJUKGNsYXNzSW5mbyA9PSBVbmxpbmtlZEV2YWxDb2RlQmxvY2s6
OmluZm8oKSk7CiAKLSAgICByZXR1cm4gZW5jb2Rlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGVu
Y29kZXIucmVsZWFzZShlcnJvcik7Cit9CisKK1JlZjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29k
ZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZUtleSYga2V5LCBjb25zdCBVbmxpbmtlZENv
ZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIEJ5dGVjb2RlQ2FjaGVFcnJvciBlcnJvcjsKKyAg
ICByZXR1cm4gZW5jb2RlQ29kZUJsb2NrKHZtLCBrZXksIGNvZGVCbG9jaywgLTEsIGVycm9yKTsK
IH0KIAotUmVmPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVGdW5jdGlvbkNvZGVCbG9jayhWTSYgdm0s
IGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaykKK1JlZjxDYWNoZWRC
eXRlY29kZT4gZW5jb2RlRnVuY3Rpb25Db2RlQmxvY2soVk0mIHZtLCBjb25zdCBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCiB7
Ci0gICAgRW5jb2RlciBlbmNvZGVyKHZtKTsKKyAgICBFbmNvZGVyIGVuY29kZXIodm0sIC0xKTsK
ICAgICBlbmNvZGVyLm1hbGxvYzxDYWNoZWRGdW5jdGlvbkNvZGVCbG9jaz4oKS0+ZW5jb2RlKGVu
Y29kZXIsICpjb2RlQmxvY2spOwotICAgIHJldHVybiBlbmNvZGVyLnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gZW5jb2Rlci5yZWxlYXNlKGVycm9yKTsKIH0KIAogVW5saW5rZWRDb2RlQmxvY2sqIGRl
Y29kZUNvZGVCbG9ja0ltcGwoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXksIFJlZjxD
YWNoZWRCeXRlY29kZT4gY2FjaGVkQnl0ZWNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2FjaGVkVHlwZXMuaAppbmRleCA5ZDAwZTE3MzNiNGJjZDg5ZmNjOTE4M2U2NzhhYjJm
MDFjZTQ5ZWYwLi44YTkxM2YwZDQ4YmM3YWVlMjE5YzE5OTY5MjQ0MjQxMWE3YjA1OTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmgKQEAgLTMzLDYgKzMz
LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIEJ5dGVjb2RlQ2FjaGVFcnJvcjsKIGNs
YXNzIENhY2hlZEJ5dGVjb2RlOwogY2xhc3MgU291cmNlQ29kZUtleTsKIGNsYXNzIFVubGlua2Vk
Q29kZUJsb2NrOwpAQCAtMTA4LDYgKzEwOSw3IEBAIHByaXZhdGU6CiB9OwogCiBKU19FWFBPUlRf
UFJJVkFURSBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYsIGNvbnN0IFNv
dXJjZUNvZGVLZXkmLCBjb25zdCBVbmxpbmtlZENvZGVCbG9jayopOworSlNfRVhQT1JUX1BSSVZB
VEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxvY2soVk0mLCBjb25zdCBTb3VyY2VD
b2RlS2V5JiwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVF
cnJvciYpOwogCiBVbmxpbmtlZENvZGVCbG9jayogZGVjb2RlQ29kZUJsb2NrSW1wbChWTSYsIGNv
bnN0IFNvdXJjZUNvZGVLZXkmLCBSZWY8Q2FjaGVkQnl0ZWNvZGU+KTsKIApAQCAtMTE3LDcgKzEx
OSw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogZGVjb2RlQ29kZUJsb2NrKFZNJiB2bSwgY29u
c3QgU291cmNlQ29kZUtleSYga2V5LCBSZWY8Q2FjCiAgICAgcmV0dXJuIGpzQ2FzdDxVbmxpbmtl
ZENvZGVCbG9ja1R5cGUqPihkZWNvZGVDb2RlQmxvY2tJbXBsKHZtLCBrZXksIFdURk1vdmUoY2Fj
aGVkQnl0ZWNvZGUpKSk7CiB9CiAKLUpTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29k
ZT4gZW5jb2RlRnVuY3Rpb25Db2RlQmxvY2soVk0mLCBjb25zdCBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKik7CitKU19FWFBPUlRfUFJJVkFURSBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUZ1
bmN0aW9uQ29kZUJsb2NrKFZNJiwgY29uc3QgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayosIEJ5
dGVjb2RlQ2FjaGVFcnJvciYpOwogCiBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRlY29kZUZ1bmN0
aW9uQ29kZUJsb2NrKERlY29kZXImLCBpbnQzMl90IGNhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrT2Zm
c2V0LCBXcml0ZUJhcnJpZXI8VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4mLCBjb25zdCBKU0Nl
bGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNh
Y2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKaW5k
ZXggMDNhOTJlZTY0YTM3ZDIyY2YyM2RkNDg3ZjU5Nzk5MzhlYzliMzYzMi4uNGFhZGRlNmE0ZWIz
NjljNmU3ZmM3Yzg2MjFkMTg3MDRhYjJkZWFlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db2RlQ2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyNSwxMCArMjI1LDEwIEBAIFNvdXJjZUNvZGVL
ZXkgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRNb2R1bGUoVk0mIHZtLCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2VDCiAgICAgcmV0dXJuIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNv
ZGUodm0sIHNvdXJjZUNvZGUsIFNvdXJjZUNvZGVUeXBlOjpNb2R1bGVUeXBlLCBzdHJpY3RNb2Rl
LCBzY3JpcHRNb2RlLCB7IH0pOwogfQogCi1SZWY8Q2FjaGVkQnl0ZWNvZGU+IHNlcmlhbGl6ZUJ5
dGVjb2RlKFZNJiB2bSwgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2Rl
IHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29k
ZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUpCitSZWY8Q2FjaGVkQnl0ZWNvZGU+
IHNlcmlhbGl6ZUJ5dGVjb2RlKFZNJiB2bSwgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlLCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJz
ZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBp
bnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlv
bk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKIHsKICAgICByZXR1cm4gZW5jb2RlQ29kZUJsb2Nr
KHZtLAotICAgICAgICBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZEJ5dGVjb2RlKHZtLCBzb3Vy
Y2UsIGNvZGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBjb2RlR2VuZXJhdGlvbk1vZGUp
LCBjb2RlQmxvY2spOworICAgICAgICBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZEJ5dGVjb2Rl
KHZtLCBzb3VyY2UsIGNvZGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBjb2RlR2VuZXJh
dGlvbk1vZGUpLCBjb2RlQmxvY2ssIGZkLCBlcnJvcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKaW5kZXggYjA2N2Y4NDdkYWUzMDFjZWVlNzA2NThi
ZTc2NTlmOGU3ZDNhYjM2Yy4uZjAyYjljMzhlZGMyNTcyMTM1ODQ2MzI2NmEzY2EwMzMzZTY2ZWEz
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzE4
LDcgKzMxOCw3IEBAIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jayhWTSYgdm0s
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTCiB9CiAKIHZvaWQgd3JpdGVDb2Rl
QmxvY2soVk0mLCBjb25zdCBTb3VyY2VDb2RlS2V5JiwgY29uc3QgU291cmNlQ29kZVZhbHVlJik7
Ci1SZWY8Q2FjaGVkQnl0ZWNvZGU+IHNlcmlhbGl6ZUJ5dGVjb2RlKFZNJiwgVW5saW5rZWRDb2Rl
QmxvY2sqLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNlQ29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPik7
CitSZWY8Q2FjaGVkQnl0ZWNvZGU+IHNlcmlhbGl6ZUJ5dGVjb2RlKFZNJiwgVW5saW5rZWRDb2Rl
QmxvY2sqLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNlQ29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYsIE9w
dGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+KTsKIFNvdXJjZUNvZGVLZXkgc291cmNlQ29kZUtl
eUZvclNlcmlhbGl6ZWRQcm9ncmFtKFZNJiwgY29uc3QgU291cmNlQ29kZSYpOwogU291cmNlQ29k
ZUtleSBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZE1vZHVsZShWTSYsIGNvbnN0IFNvdXJjZUNv
ZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxl
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApp
bmRleCAxOTc5NmFmNGY4OWQyZTg4MWZiN2Q1Nzk2MDJjMDk0ZjdlNWZlYTYxLi44YmZmNzBkN2Iz
NTgzMTBmYmU4N2EzNTZkYmIyNWE3YzM0NDFiYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKIAorI2luY2x1ZGUgIkJ5dGVjb2RlQ2Fj
aGVFcnJvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNhdGNoU2NvcGUu
aCIKICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKQEAgLTkxLDcgKzkyLDcgQEAgYm9vbCBjaGVja01v
ZHVsZVN5bnRheChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFy
c2VyRXJyb3ImIGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmPENhY2hlZEJ5dGVjb2RlPiBn
ZW5lcmF0ZVByb2dyYW1CeXRlY29kZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
UGFyc2VyRXJyb3ImIGVycm9yKQorUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZVByb2dyYW1C
eXRlY29kZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgaW50IGZkLCBCeXRlY29k
ZUNhY2hlRXJyb3ImIGVycm9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBS
RUxFQVNFX0FTU0VSVCh2bS5hdG9taWNTdHJpbmdUYWJsZSgpID09IFRocmVhZDo6Y3VycmVudCgp
LmF0b21pY1N0cmluZ1RhYmxlKCkpOwpAQCAtMTAxLDEzICsxMDIsMTQgQEAgUmVmPENhY2hlZEJ5
dGVjb2RlPiBnZW5lcmF0ZVByb2dyYW1CeXRlY29kZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgUGEKICAgICBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSA9IEpTUGFyc2Vy
U2NyaXB0TW9kZTo6Q2xhc3NpYzsKICAgICBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBl
ID0gRXZhbENvbnRleHRUeXBlOjpOb25lOwogCi0gICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlu
a2VkQ29kZUJsb2NrID0gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrPFVubGlu
a2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwg
eyB9LCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVzVW5kZXJURFopOworICAgIFVu
bGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vyc2l2ZWx5R2VuZXJhdGVV
bmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2s+KHZtLCBzb3VyY2UsIHN0
cmljdE1vZGUsIHNjcmlwdE1vZGUsIHsgfSwgZXJyb3IucGFyc2VyRXJyb3IoKSwgZXZhbENvbnRl
eHRUeXBlLCAmdmFyaWFibGVzVW5kZXJURFopOwogICAgIGlmICghdW5saW5rZWRDb2RlQmxvY2sp
CiAgICAgICAgIHJldHVybiBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIHNl
cmlhbGl6ZUJ5dGVjb2RlKHZtLCB1bmxpbmtlZENvZGVCbG9jaywgc291cmNlLCBTb3VyY2VDb2Rl
VHlwZTo6UHJvZ3JhbVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIHsgfSk7CisKKyAgICBy
ZXR1cm4gc2VyaWFsaXplQnl0ZWNvZGUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBzb3VyY2UsIFNv
dXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgZmQsIGVy
cm9yLCB7IH0pOwogfQogCi1SZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9kdWxlQnl0ZWNv
ZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yJiBlcnJvcikK
K1JlZjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29kZShWTSYgdm0sIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSwgaW50IGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImIGVycm9yKQog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBSRUxFQVNFX0FTU0VSVCh2bS5hdG9t
aWNTdHJpbmdUYWJsZSgpID09IFRocmVhZDo6Y3VycmVudCgpLmF0b21pY1N0cmluZ1RhYmxlKCkp
OwpAQCAtMTE3LDEwICsxMTksMTAgQEAgUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVs
ZUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXIKICAgICBKU1Bh
cnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6TW9kdWxlOwog
ICAgIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBFdmFsQ29udGV4dFR5cGU6Ok5v
bmU7CiAKLSAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSByZWN1cnNp
dmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJs
b2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0sIGVycm9yLCBldmFs
Q29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclREWik7CisgICAgVW5saW5rZWRDb2RlQmxvY2sq
IHVubGlua2VkQ29kZUJsb2NrID0gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2Nr
PFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgc3RyaWN0TW9kZSwg
c2NyaXB0TW9kZSwgeyB9LCBlcnJvci5wYXJzZXJFcnJvcigpLCBldmFsQ29udGV4dFR5cGUsICZ2
YXJpYWJsZXNVbmRlclREWik7CiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykKICAgICAgICAg
cmV0dXJuIENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gc2VyaWFsaXplQnl0
ZWNvZGUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlOjpNb2R1
bGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0pOworICAgIHJldHVybiBzZXJpYWxp
emVCeXRlY29kZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNlQ29kZVR5cGU6
Ok1vZHVsZVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGZkLCBlcnJvciwgeyB9KTsKIH0K
IAogSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIE5ha2VkUHRyPEV4Y2VwdGlvbj4mIHJldHVybmVkRXhj
ZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxl
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4
IGQ1YTAyMzFiNzgwMTc1Yjg4NDIwZDZhZmY0YjNjMGE1MjRlZDE4NTEuLjhjYzM4NDViMWFlYTNi
M2JmMjJhNDM3YWFiNDM1NWU0M2E1ODIzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21wbGV0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
K2NsYXNzIEJ5dGVjb2RlQ2FjaGVFcnJvcjsKIGNsYXNzIENhY2hlZEJ5dGVjb2RlOwogY2xhc3Mg
RXhjZXB0aW9uOwogY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDIsOCArNDMsOCBAQCBKU19FWFBPUlRf
UFJJVkFURSBib29sIGNoZWNrU3ludGF4KFZNJiwgY29uc3QgU291cmNlQ29kZSYsIFBhcnNlckVy
cm9yJik7CiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNoZWNrU3ludGF4KEV4ZWNTdGF0ZSosIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU1ZhbHVlKiBleGNlcHRpb24gPSAwKTsKIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgY2hlY2tNb2R1bGVTeW50YXgoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYs
IFBhcnNlckVycm9yJik7CiAKLUpTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29kZT4g
Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgUGFyc2VyRXJy
b3ImKTsKLUpTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1
bGVCeXRlY29kZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOworSlNfRVhQ
T1JUX1BSSVZBVEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZVByb2dyYW1CeXRlY29kZShW
TSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYpOworSlNf
RVhQT1JUX1BSSVZBVEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVsZUJ5dGVjb2Rl
KFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGludCBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJik7CiAK
IEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgY29uc3QgU291
cmNlQ29kZSYsIEpTVmFsdWUgdGhpc1ZhbHVlLCBOYWtlZFB0cjxFeGNlcHRpb24+JiByZXR1cm5l
ZEV4Y2VwdGlvbik7CiBpbmxpbmUgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIEpTVmFsdWUgdGhpc1ZhbHVlID0gSlNWYWx1ZSgp
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371189</attachid>
            <date>2019-06-03 07:06:04 -0700</date>
            <delta_ts>2019-06-04 03:28:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198482-20190603160602.patch</filename>
            <type>text/plain</type>
            <size>31861</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWE1ZTM5NWI3Njc5MjQzMDA0MzZkYmVjOWUxZmVhNjczMmM0YTI4Li40YjRhNGViMzkyNjI0YWFl
YjVhOTZjMmIyZWNiNzMxMjBmOGU4N2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0wNi0wMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBKU1NjcmlwdCBzaG91bGQgbm90IGtlZXAgYnl0ZWNvZGUgY2FjaGUgaW4g
bWVtb3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aGVuIEpTU2NyaXB0IHdyaXRlcyB0byB0aGUgY2FjaGUsIHdlIGtlZXAgdGhlIGluLW1lbW9yeSBz
ZXJpYWxpemVkIGJ5dGVjb2RlIGFsaXZlLgorICAgICAgICBJbnN0ZWFkLCB3ZSBzaG91bGQgb25s
eSBldmVyIGhvbGQgdGhlIG1lbW9yeSBtYXBwZWQgYnl0ZWNvZGUgY2FjaGUgdG8gYXZvaWQgdXNp
bmcKKyAgICAgICAgdG9vIG11Y2ggbWVtb3J5LgorCisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1t
OgorICAgICAgICAoLVtKU1NjcmlwdCB3cml0ZUNhY2hlOl0pOgorICAgICAgICAqIEFQSS90ZXN0
cy90ZXN0YXBpLm1tOgorICAgICAgICAodGVzdEJ5dGVjb2RlQ2FjaGVXaXRoU3ludGF4RXJyb3Ip
OgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5jcHA6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OmlzVmFsaWQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6Om1lc3NhZ2UgY29uc3QpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OnBhcnNlckVycm9yKToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVDYWNoZUVycm9yOjpzdGFuZGFyZEVycm9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVDYWNoZUVycm9yOjp3cml0ZUVycm9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVy
cm9yOjpTdGFuZGFyZEVycm9yOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9yOjptZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjppc1ZhbGlkIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjptZXNzYWdlIGNvbnN0KToK
KyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9yOjpTdGFuZGFyZEVycm9yKToK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjpXcml0ZUVycm9y
KToKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmg6CisgICAgICAgIChKU0M6OkNh
Y2hlZEJ5dGVjb2RlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVkVHlwZXMuY3Bw
OgorICAgICAgICAoSlNDOjpFbmNvZGVyOjpFbmNvZGVyKToKKyAgICAgICAgKEpTQzo6RW5jb2Rl
cjo6cmVsZWFzZSk6CisgICAgICAgIChKU0M6OkVuY29kZXI6OnJlbGVhc2VNYXBwZWQpOgorICAg
ICAgICAoSlNDOjplbmNvZGVDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjplbmNvZGVGdW5jdGlv
bkNvZGVCbG9jayk6CisgICAgICAgICogcnVudGltZS9DYWNoZWRUeXBlcy5oOgorICAgICAgICAq
IHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKEpTQzo6c2VyaWFsaXplQnl0ZWNvZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6CisgICAgICAgICogcnVudGltZS9Db21w
bGV0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUpOgorICAg
ICAgICAoSlNDOjpnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bXBsZXRpb24uaDoKKwogMjAxOS0wNi0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIENyYXNoIGV4cGxpY2l0bHkgaWYgU3RydWN0dXJlSURzIGFy
ZSBleGhhdXN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCmluZGV4IDQxMWRk
Y2Q0NjdkMmJlNWVkZGJjMzJkNGE2NTZmZmY4NWFmMmNhNmQuLjNhNTE4MGRkM2U3OGEzZDVlYTU0
OGI5YTQ0YTU5MGJmMjVlNmEwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNTY3JpcHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5t
bQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiSlNTY3JpcHRJbnRlcm5hbC5oIgogCiAjaW1w
b3J0ICJBUElDYXN0LmgiCisjaW1wb3J0ICJCeXRlY29kZUNhY2hlRXJyb3IuaCIKICNpbXBvcnQg
IkNhY2hlZFR5cGVzLmgiCiAjaW1wb3J0ICJDb2RlQ2FjaGUuaCIKICNpbXBvcnQgIklkZW50aWZp
ZXIuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbXBvcnQgIkpTU291cmNlQ29kZS5oIgogI2ltcG9y
dCAiSlNWYWx1ZVByaXZhdGUuaCIKICNpbXBvcnQgIkpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5o
IgotI2ltcG9ydCAiUGFyc2VyRXJyb3IuaCIKICNpbXBvcnQgIlN5bWJvbC5oIgogI2luY2x1ZGUg
PHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVNZXRhZGF0YS5oPgpAQCAtMjc3LDMyICsy
NzcsMjEgQEAgLSAoQk9PTCl3cml0ZUNhY2hlOihTdHJpbmcmKWVycm9yCiAgICAgICAgIGNsb3Nl
KGZkKTsKICAgICB9KTsKIAotICAgIEpTQzo6UGFyc2VyRXJyb3IgcGFyc2VyRXJyb3I7CisgICAg
SlNDOjpCeXRlY29kZUNhY2hlRXJyb3IgY2FjaGVFcnJvcjsKICAgICBKU0M6OlNvdXJjZUNvZGUg
c291cmNlQ29kZSA9IFtzZWxmIHNvdXJjZUNvZGVdOwogICAgIHN3aXRjaCAobV90eXBlKSB7CiAg
ICAgY2FzZSBrSlNTY3JpcHRUeXBlTW9kdWxlOgotICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlID0g
SlNDOjpnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKG1fdmlydHVhbE1hY2hpbmUudm0sIHNvdXJjZUNv
ZGUsIHBhcnNlckVycm9yKTsKKyAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Z2VuZXJh
dGVNb2R1bGVCeXRlY29kZShtX3ZpcnR1YWxNYWNoaW5lLnZtLCBzb3VyY2VDb2RlLCBmZCwgY2Fj
aGVFcnJvcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0pTU2NyaXB0VHlwZVByb2dyYW06
Ci0gICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OmdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2Rl
KG1fdmlydHVhbE1hY2hpbmUudm0sIHNvdXJjZUNvZGUsIHBhcnNlckVycm9yKTsKKyAgICAgICAg
bV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUobV92aXJ0dWFs
TWFjaGluZS52bSwgc291cmNlQ29kZSwgZmQsIGNhY2hlRXJyb3IpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBpZiAocGFyc2VyRXJyb3IuaXNWYWxpZCgpKSB7CisgICAgaWYgKGNhY2hl
RXJyb3IuaXNWYWxpZCgpKSB7CiAgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OkNhY2hl
ZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLSAgICAgICAgZXJyb3IgPSBtYWtlU3RyaW5nKCJVbmFibGUg
dG8gZ2VuZXJhdGUgYnl0ZWNvZGUgZm9yIHRoaXMgSlNTY3JpcHQgYmVjYXVzZSBvZiBhIHBhcnNl
ciBlcnJvcjogIiwgcGFyc2VyRXJyb3IubWVzc2FnZSgpKTsKLSAgICAgICAgcmV0dXJuIE5POwot
ICAgIH0KLQotICAgIHNzaXplX3QgYnl0ZXNXcml0dGVuID0gd3JpdGUoZmQsIG1fY2FjaGVkQnl0
ZWNvZGUtPmRhdGEoKSwgbV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgpKTsKLSAgICBpZiAoYnl0ZXNX
cml0dGVuID09IC0xKSB7Ci0gICAgICAgIGVycm9yID0gbWFrZVN0cmluZygiQ291bGQgbm90IHdy
aXRlIGNhY2hlIGZpbGUgdG8gZGlzazogIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0
dXJuIE5POwotICAgIH0KLQotICAgIGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRl
bikgIT0gbV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgpKSB7CiAgICAgICAgIGZ0cnVuY2F0ZShmZCwg
MCk7Ci0gICAgICAgIGVycm9yID0gbWFrZVN0cmluZygiQ291bGQgbm90IHdyaXRlIHRoZSBmdWxs
IGNhY2hlIGZpbGUgdG8gZGlzay4gT25seSB3cm90ZSAiLCBTdHJpbmc6Om51bWJlcihieXRlc1dy
aXR0ZW4pLCAiIG9mIHRoZSBleHBlY3RlZCAiLCBTdHJpbmc6Om51bWJlcihtX2NhY2hlZEJ5dGVj
b2RlLT5zaXplKCkpLCAiIGJ5dGVzLiIpOworICAgICAgICBlcnJvciA9IG1ha2VTdHJpbmcoIlVu
YWJsZSB0byBnZW5lcmF0ZSBieXRlY29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlOiAiLCBj
YWNoZUVycm9yLm1lc3NhZ2UoKSk7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCA1MjUzYjAyZjcyMmE4
NjJmN2MwMzE3MTdhMjUzNWVjM2MwZTZjMjY3Li42Y2U4MGYwZTAxMmE4YzJhYjc2M2NkNzYwZTRk
NjcxZTA4YjExMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBp
Lm1tCkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0Qnl0ZWNvZGVDYWNoZVdp
dGhTeW50YXhFcnJvcihKU1NjcmlwdFR5cGUgdHlwZSkKICAgICAgICAgaWYgKFtzY3JpcHQgY2Fj
aGVCeXRlY29kZVdpdGhFcnJvcjomZXJyb3JdKQogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoZXJyb3IpOwotICAgICAgICBjaGVja1Jlc3VsdChAIkdvdCBlcnJv
ciB3aGVuIHRyeWluZyB0byBjYWNoZSBieXRlY29kZSBmb3IgYSBzY3JpcHQgd2l0aCBhIHN5bnRh
eCBlcnJvci4iLCBbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIlVuYWJsZSB0
byBnZW5lcmF0ZSBieXRlY29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlIG9mIGEgcGFyc2Vy
IGVycm9yIl0pOworICAgICAgICBjaGVja1Jlc3VsdChAIkdvdCBlcnJvciB3aGVuIHRyeWluZyB0
byBjYWNoZSBieXRlY29kZSBmb3IgYSBzY3JpcHQgd2l0aCBhIHN5bnRheCBlcnJvci4iLCBbW2Vy
cm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIlVuYWJsZSB0byBnZW5lcmF0ZSBieXRl
Y29kZSBmb3IgdGhpcyBKU1NjcmlwdCBiZWNhdXNlIl0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk0MTVlYTA3MTU0MDBkNjk4ODA1YTZlMzlkNzU3
ZmQ1MTY0OWUwMjQuLmZhOTcxY2ZlMzhjOWFkMTI0OTlmYmFiMzk1NTJlMTY1ZDNlYzk3YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTc1MSw2ICs3NTEsNyBAQCBzZXQo
SmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHJ1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5oCiAgICAgcnVudGltZS9CdXR0ZXJmbHkuaAogICAgIHJ1bnRpbWUvQnV0
dGVyZmx5SW5saW5lcy5oCisgICAgcnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuaAogICAgIHJ1
bnRpbWUvQ2FjaGVQYXlsb2FkLmgKICAgICBydW50aW1lL0NhY2hlVXBkYXRlLmgKICAgICBydW50
aW1lL0NhY2hlZEJ5dGVjb2RlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmRh
MGM1NmNiYTIyMGQ2ZGJmM2U0NjJlZjg2ZDgwMzU3NmY3ODY0NC4uN2RjNTU0NWY2NzYzM2EzYzdh
ODRkMzE0NDYyNDljOTI0ZjQwZmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTc3Miw2ICs3NzIsNyBAQAogCQkxNDJFMzEzQjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJFMzEzMjEz
NEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQyRTMxM0MxMzRGRjBBNjAwQUZBREI1IC8qIFdlYWsuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MkUzMTMzMTM0
RkYwQTYwMEFGQURCNSAvKiBXZWFrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQyRjE2RTAyMTU1ODgwMjAwM0Q0OUM5IC8qIE1ldGFkYXRhVGFi
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MkYx
NkRGMjE1NTg1QzgwMDNENDlDOSAvKiBNZXRhZGF0YVRhYmxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMTQzNTk1MjEyMkE1MjFDRDAwRTgwODZE
IC8qIEJ5dGVjb2RlQ2FjaGVFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTQzNTk1MUYyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVF
cnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTE0Mzg2QTc1MURENjk4OTUwMDg2NTJDNCAvKiBEaXJlY3RFdmFsRXhlY3V0YWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzODZBNzMxREQ2OTg5
NTAwODY1MkM0IC8qIERpcmVjdEV2YWxFeGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQzODZBNzkxREQ2OTg5QzAwODY1MkM0IC8q
IEluZGlyZWN0RXZhbEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0Mzg2QTc3MURENjk4OUMwMDg2NTJDNCAvKiBJbmRpcmVjdEV2YWxF
eGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQ0MDA1N0YwQTUzMzU2NDAwMDVGMDYxIC8qIEpTTm9kZS5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0MEY2NDIwQTRGOEI2QTAwMDVGMDYx
IC8qIEpTTm9kZS5jICovOyB9OwpAQCAtMzE5MCw2ICszMTkxLDggQEAKIAkJMTQyRTMxMzMxMzRG
RjBBNjAwQUZBREI1IC8qIFdlYWsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2Vhay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDJGMTZERjIxNTU4NUM4MDAz
RDQ5QzkgLyogTWV0YWRhdGFUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZXRhZGF0YVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MkYxNkU5
MjE1ODNCNUUwMDNENDlDOSAvKiBDb2RlQmxvY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvZGVCbG9ja0lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMTQzNTk1MUYyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVFcnJvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCeXRlY29kZUNhY2hlRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMTQzNTk1MjAyMkE1MjFDQTAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVFcnJv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeXRlY29kZUNhY2hlRXJyb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNDM4NkE3MjFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0
RXZhbEV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NDM4NkE3MzFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlyZWN0RXZhbEV4ZWN1dGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzODZBNzYxREQ2OTg5QzAwODY1MkM0IC8qIEluZGly
ZWN0RXZhbEV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NzU1LDYgKzY3NTgsOCBAQAogCQkJCTlFNzI5NDA5MTkwRjAzMDYwMDFBOTFCNSAvKiBC
dW5kbGVQYXRoLm1tICovLAogCQkJCTBGQjdGMzhCMTVFRDhFMzgwMEYxNjdCMiAvKiBCdXR0ZXJm
bHkuaCAqLywKIAkJCQkwRkI3RjM4QzE1RUQ4RTM4MDBGMTY3QjIgLyogQnV0dGVyZmx5SW5saW5l
cy5oICovLAorCQkJCTE0MzU5NTIwMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hlRXJy
b3IuY3BwICovLAorCQkJCTE0MzU5NTFGMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hl
RXJyb3IuaCAqLywKIAkJCQkxNDhCMTQxOTIyNUREMUU5MDBENkU5OTggLyogQ2FjaGVkQnl0ZWNv
ZGUuY3BwICovLAogCQkJCTE0NENBMzRGMjIxRjAzNzkwMDgxNzc4OSAvKiBDYWNoZWRCeXRlY29k
ZS5oICovLAogCQkJCTE0REFGQTQ1MjFFM0I4NzEwMDRCNjhGNyAvKiBDYWNoZWRUeXBlcy5jcHAg
Ki8sCkBAIC04Nzc2LDYgKzg3ODEsNyBAQAogCQkJCTBGQjdGMzk3MTVFRDhFNDYwMEYxNjdCMiAv
KiBCdXR0ZXJmbHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk4MTVFRDhFNDYwMEYxNjdC
MiAvKiBCdXR0ZXJmbHlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlD
MjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
NDM1OTUyMTIyQTUyMUNEMDBFODA4NkQgLyogQnl0ZWNvZGVDYWNoZUVycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIxQzI3RjE0QkVBQTgyMDBBREM2NEIgLyogQnl0ZWNvZGVDb252ZW50aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNEODc3NzQxRTY1QzBBMDAwQkU5NDVBIC8qIEJ5dGVj
b2RlRHVtcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyMzBFRDFDRTMzMDBGMUY2ODEg
LyogQnl0ZWNvZGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDQzZDdlZjQ3NTgyMmE4M2FmYWY5YTEyZThjZjllMTFhOWQ3ZGI4N2IuLjNj
N2RkOTg0NmNjZDI0ZjJiMDJhMWQ3YzYyZWYyZjY1ZTVmNTgwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQKQEAgLTcxOCw2ICs3MTgsNyBAQCBydW50aW1lL0JpZ0ludFByb3RvdHlwZS5j
cHAKIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAogcnVudGltZS9Cb29sZWFuT2JqZWN0
LmNwcAogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorcnVudGltZS9CeXRlY29kZUNhY2hl
RXJyb3IuY3BwCiBydW50aW1lL0NhbGxEYXRhLmNwcAogcnVudGltZS9DYWNoZVBheWxvYWQuY3Bw
CiBydW50aW1lL0NhY2hlVXBkYXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBjMTEwZGM0
M2YxNzYzODY2NDg5Y2E0NDg4MmE1NmMxOWMyOTUzMWNlLi44NDY4NDUwMWJjYTU2YjhjZjQ3ODYw
YWE4ZTViMGViZGY4OWUxZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgi
CiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIkJ5dGVjb2RlQ2FjaGVF
cnJvci5oIgogI2luY2x1ZGUgIkNhdGNoU2NvcGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKQEAgLTk4MSw4ICs5ODIsMTAgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSB8fCAhbV9jYWNoZWRCeXRlY29kZSkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRl
Y29kZSA9IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKCpleGVjdXRhYmxlLT52bSgpLCBjb2RlQmxv
Y2spOwotICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlLT5hZGRGdW5jdGlvblVwZGF0ZShleGVjdXRh
YmxlLCBraW5kLCBXVEZNb3ZlKGNhY2hlZEJ5dGVjb2RlKSk7CisgICAgICAgIEJ5dGVjb2RlQ2Fj
aGVFcnJvciBlcnJvcjsKKyAgICAgICAgUmVmPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29k
ZSA9IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKCpleGVjdXRhYmxlLT52bSgpLCBjb2RlQmxvY2ss
IGVycm9yKTsKKyAgICAgICAgaWYgKCFlcnJvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBtX2Nh
Y2hlZEJ5dGVjb2RlLT5hZGRGdW5jdGlvblVwZGF0ZShleGVjdXRhYmxlLCBraW5kLCBXVEZNb3Zl
KGNhY2hlZEJ5dGVjb2RlKSk7CiAgICAgfQogCiAgICAgdm9pZCBjYWNoZUJ5dGVjb2RlKGNvbnN0
IEJ5dGVjb2RlQ2FjaGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3Qgb3ZlcnJpZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE3YTM2NWFkOWYxMWNmNDAzODczZjg5YWIyOWE5OTNmOWFjYWVlMjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNh
Y2hlRXJyb3IuY3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnl0ZWNv
ZGVDYWNoZUVycm9yLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitib29sIEJ5dGVjb2RlQ2FjaGVF
cnJvcjo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9lcnJv
ciwgW10oY29uc3QgYXV0byYgZXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIGVycm9yLmlzVmFsaWQo
KTsKKyAgICB9KTsKK30KKworU3RyaW5nIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6bWVzc2FnZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9lcnJvciwgW10oY29uc3QgYXV0byYg
ZXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UoKTsKKyAgICB9KTsKK30KKwor
UGFyc2VyRXJyb3ImIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6cGFyc2VyRXJyb3IoKQoreworICAgIG1f
ZXJyb3IgPSBQYXJzZXJFcnJvcigpOworICAgIHJldHVybiBXVEY6OmdldDxQYXJzZXJFcnJvcj4o
bV9lcnJvcik7Cit9CisKK3ZvaWQgQnl0ZWNvZGVDYWNoZUVycm9yOjpzdGFuZGFyZEVycm9yKGlu
dCBlcnJvcikKK3sKKyAgICBtX2Vycm9yID0gU3RhbmRhcmRFcnJvcihlcnJvcik7Cit9CisKK3Zv
aWQgQnl0ZWNvZGVDYWNoZUVycm9yOjp3cml0ZUVycm9yKHNpemVfdCB3cml0dGVuLCBzaXplX3Qg
ZXhwZWN0ZWQpCit7CisgICAgbV9lcnJvciA9IFdyaXRlRXJyb3Iod3JpdHRlbiwgZXhwZWN0ZWQp
OworfQorCitib29sIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6U3RhbmRhcmRFcnJvcjo6aXNWYWxpZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1N0cmluZyBCeXRlY29kZUNhY2hlRXJy
b3I6OlN0YW5kYXJkRXJyb3I6Om1lc3NhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBzdHJlcnJv
cihtX2Vycm5vKTsKK30KKworYm9vbCBCeXRlY29kZUNhY2hlRXJyb3I6OldyaXRlRXJyb3I6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcgQnl0ZWNvZGVD
YWNoZUVycm9yOjpXcml0ZUVycm9yOjptZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFr
ZVN0cmluZygiQ291bGQgbm90IHdyaXRlIHRoZSBmdWxsIGNhY2hlIGZpbGUgdG8gZGlzay4gT25s
eSB3cm90ZSAiLCBTdHJpbmc6Om51bWJlcihtX3dyaXR0ZW4pLCAiIG9mIHRoZSBleHBlY3RlZCAi
LCBTdHJpbmc6Om51bWJlcihtX2V4cGVjdGVkKSwgIiBieXRlcy4iKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRl
Y29kZUNhY2hlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2Rl
Q2FjaGVFcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMzA5NWY1MDRjMDA5ZmI0NThhNDYzMDhmOWUwNDc5
ZGE2NjU2OTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9CeXRlY29kZUNhY2hlRXJyb3IuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTU291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlBh
cnNlckVycm9yLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEJ5dGVjb2RlQ2FjaGVF
cnJvciB7CitwdWJsaWM6CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKKworICAg
IFBhcnNlckVycm9yJiBwYXJzZXJFcnJvcigpOworICAgIHZvaWQgc3RhbmRhcmRFcnJvcihpbnQp
OworICAgIHZvaWQgd3JpdGVFcnJvcihzaXplX3Qgd3JpdHRlbiwgc2l6ZV90IGV4cGVjdGVkKTsK
KworcHJpdmF0ZToKKyAgICBjbGFzcyBTdGFuZGFyZEVycm9yIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIFN0YW5kYXJkRXJyb3IoaW50IGVycm9yKQorICAgICAgICAgICAgOiBtX2Vycm5vKGVycm9y
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
KyAgICAgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAg
IGludCBtX2Vycm5vOworICAgIH07CisKKyAgICBjbGFzcyBXcml0ZUVycm9yIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIFdyaXRlRXJyb3Ioc2l6ZV90IHdyaXR0ZW4sIHNpemVfdCBleHBlY3RlZCkK
KyAgICAgICAgICAgIDogbV93cml0dGVuKHdyaXR0ZW4pCisgICAgICAgICAgICAsIG1fZXhwZWN0
ZWQoZXhwZWN0ZWQpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0OworICAgICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworCisgICAgcHJpdmF0
ZToKKyAgICAgICAgc2l6ZV90IG1fd3JpdHRlbjsKKyAgICAgICAgc2l6ZV90IG1fZXhwZWN0ZWQ7
CisgICAgfTsKKworICAgIFZhcmlhbnQ8UGFyc2VyRXJyb3IsIFN0YW5kYXJkRXJyb3IsIFdyaXRl
RXJyb3I+IG1fZXJyb3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRCeXRlY29kZS5oCmluZGV4IDU3OTM2NjgyNGJjOGE1
M2QzMDIzYzllMjkxMDc3ZTI5YWMxMjlmOWYuLjE1Y2FiM2MwNDcwYmEwY2EwNjJkNTU1ZTQ3YzNm
ZmRkYzhmZWQ3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nh
Y2hlZEJ5dGVjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVk
Qnl0ZWNvZGUuaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAjaWYgIU9TKFdJ
TkRPV1MpCi0gICAgc3RhdGljIFJlZjxDYWNoZWRCeXRlY29kZT4gY3JlYXRlKHZvaWQqIGRhdGEs
IHNpemVfdCBzaXplKQorICAgIHN0YXRpYyBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGNyZWF0ZSh2b2lk
KiBkYXRhLCBzaXplX3Qgc2l6ZSwgTGVhZkV4ZWN1dGFibGVNYXAmJiBsZWFmRXhlY3V0YWJsZXMg
PSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRCeXRlY29k
ZShDYWNoZVBheWxvYWQ6Om1ha2VNYXBwZWRQYXlsb2FkKGRhdGEsIHNpemUpKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZEJ5dGVjb2RlKENhY2hlUGF5bG9hZDo6bWFrZU1h
cHBlZFBheWxvYWQoZGF0YSwgc2l6ZSksIFdURk1vdmUobGVhZkV4ZWN1dGFibGVzKSkpOwogICAg
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBl
cy5jcHAKaW5kZXggZTBiNGNiZmI5YTUwM2ZlNzJmZjkxNzE5Yzc3NzQ1ZDE2MDc5MjgyZS4uN2Nj
NzlmMmQ5YjViMDAyMWMzY2FiMjQxMWY1MTNjMGI1ZWU0NTgxOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNhY2hlZFR5cGVzLmgiCiAKKyNpbmNsdWRlICJC
eXRlY29kZUNhY2hlRXJyb3IuaCIKICNpbmNsdWRlICJCeXRlY29kZUNhY2hlVmVyc2lvbi5oIgog
I2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKQEAgLTg3LDggKzg4LDkgQEAgcHVibGljOgogICAgICAgICBwdHJkaWZmX3QgbV9vZmZz
ZXQ7CiAgICAgfTsKIAotICAgIEVuY29kZXIoVk0mIHZtKQorICAgIEVuY29kZXIoVk0mIHZtLCBp
bnQgZmQpCiAgICAgICAgIDogbV92bSh2bSkKKyAgICAgICAgLCBtX2ZkKGZkKQogICAgICAgICAs
IG1fYmFzZU9mZnNldCgwKQogICAgICAgICAsIG1fY3VycmVudFBhZ2UobnVsbHB0cikKICAgICB7
CkBAIC0xNDQsMTIgKzE0NiwyMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fbGVhZkV4ZWN1dGFibGVz
LmFkZChleGVjdXRhYmxlLCBvZmZzZXQpOwogICAgIH0KIAotICAgIFJlZjxDYWNoZWRCeXRlY29k
ZT4gcmVsZWFzZSgpCisgICAgUmVmPENhY2hlZEJ5dGVjb2RlPiByZWxlYXNlKEJ5dGVjb2RlQ2Fj
aGVFcnJvciYgZXJyb3IpCiAgICAgewogICAgICAgICBpZiAoIW1fY3VycmVudFBhZ2UpCiAgICAg
ICAgICAgICByZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZSgpOwotCiAgICAgICAgIG1fY3Vy
cmVudFBhZ2UtPmFsaWduRW5kKCk7CisKKyAgICAgICAgaWYgKG1fZmQgIT0gLTEpIHsKKyNpZiAh
T1MoV0lORE9XUykKKyAgICAgICAgICAgIHJldHVybiByZWxlYXNlTWFwcGVkKGVycm9yKTsKKyNl
bHNlCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisg
ICAgICAgIH0KKwogICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fYmFzZU9mZnNldCArIG1fY3VycmVu
dFBhZ2UtPnNpemUoKTsKICAgICAgICAgTWFsbG9jUHRyPHVpbnQ4X3Q+IGJ1ZmZlciA9IE1hbGxv
Y1B0cjx1aW50OF90Pjo6bWFsbG9jKHNpemUpOwogICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSAw
OwpAQCAtMTYyLDYgKzE3MiwzOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgorI2lmICFP
UyhXSU5ET1dTKQorICAgIFJlZjxDYWNoZWRCeXRlY29kZT4gcmVsZWFzZU1hcHBlZChCeXRlY29k
ZUNhY2hlRXJyb3ImIGVycm9yKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBtX2Jhc2VP
ZmZzZXQgKyBtX2N1cnJlbnRQYWdlLT5zaXplKCk7CisgICAgICAgIGlmIChmdHJ1bmNhdGUobV9m
ZCwgc2l6ZSkpIHsKKyAgICAgICAgICAgIGVycm9yLnN0YW5kYXJkRXJyb3IoZXJybm8pOworICAg
ICAgICAgICAgcmV0dXJuIENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgcGFnZSA6IG1fcGFnZXMpIHsKKyAgICAgICAgICAgIHNz
aXplX3QgYnl0ZXNXcml0dGVuID0gd3JpdGUobV9mZCwgcGFnZS5idWZmZXIoKSwgcGFnZS5zaXpl
KCkpOworICAgICAgICAgICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAtMSkgeworICAgICAgICAgICAg
ICAgIGVycm9yLnN0YW5kYXJkRXJyb3IoZXJybm8pOworICAgICAgICAgICAgICAgIHJldHVybiBD
YWNoZWRCeXRlY29kZTo6Y3JlYXRlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
IChzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbikgIT0gcGFnZS5zaXplKCkpIHsKKyAg
ICAgICAgICAgICAgICBlcnJvci53cml0ZUVycm9yKGJ5dGVzV3JpdHRlbiwgcGFnZS5zaXplKCkp
OworICAgICAgICAgICAgICAgIHJldHVybiBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2b2lkKiBidWZmZXIgPSBtbWFwKG51bGxw
dHIsIHNpemUsIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIG1fZmQsIDApOworICAgICAgICBpZiAo
YnVmZmVyID09IE1BUF9GQUlMRUQpIHsKKyAgICAgICAgICAgIGVycm9yLnN0YW5kYXJkRXJyb3Io
ZXJybm8pOworICAgICAgICAgICAgcmV0dXJuIENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHJldHVybiBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKGJ1ZmZlciwg
c2l6ZSwgV1RGTW92ZShtX2xlYWZFeGVjdXRhYmxlcykpOworICAgIH0KKyNlbmRpZgorCiAgICAg
Y2xhc3MgUGFnZSB7CiAgICAgcHVibGljOgogICAgICAgICBQYWdlKHNpemVfdCBzaXplKQpAQCAt
MjI4LDYgKzI3MCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgVk0mIG1fdm07CisgICAgaW50
IG1fZmQ7CiAgICAgcHRyZGlmZl90IG1fYmFzZU9mZnNldDsKICAgICBQYWdlKiBtX2N1cnJlbnRQ
YWdlOwogICAgIFZlY3RvcjxQYWdlPiBtX3BhZ2VzOwpAQCAtMjM0MiwxMSArMjM4NSwxMSBAQCB2
b2lkIGVuY29kZUNvZGVCbG9jayhFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VDb2RlS2V5
JiBrZXksIGNvbnN0IFVubGlua2VkQwogICAgIGVudHJ5LT5lbmNvZGUoZW5jb2RlciwgeyBrZXks
IGpzQ2FzdDxjb25zdCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqPihjb2RlQmxvY2spIH0pOwogfQog
Ci1SZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJj
ZUNvZGVLZXkmIGtleSwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaykKK1JlZjxD
YWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZUtl
eSYga2V5LCBjb25zdCBVbmxpbmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBpbnQgZmQsIEJ5dGVj
b2RlQ2FjaGVFcnJvciYgZXJyb3IpCiB7CiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8g
PSBjb2RlQmxvY2stPmNsYXNzSW5mbyh2bSk7CiAKLSAgICBFbmNvZGVyIGVuY29kZXIodm0pOwor
ICAgIEVuY29kZXIgZW5jb2Rlcih2bSwgZmQpOwogICAgIGlmIChjbGFzc0luZm8gPT0gVW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrOjppbmZvKCkpCiAgICAgICAgIGVuY29kZUNvZGVCbG9jazxVbmxp
bmtlZFByb2dyYW1Db2RlQmxvY2s+KGVuY29kZXIsIGtleSwgY29kZUJsb2NrKTsKICAgICBlbHNl
IGlmIChjbGFzc0luZm8gPT0gVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrOjppbmZvKCkp
CkBAIC0yMzU0LDE0ICsyMzk3LDIwIEBAIFJlZjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJs
b2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZUtleSYga2V5LCBjb25zdCBVbmxpCiAgICAgZWxz
ZQogICAgICAgICBBU1NFUlQoY2xhc3NJbmZvID09IFVubGlua2VkRXZhbENvZGVCbG9jazo6aW5m
bygpKTsKIAotICAgIHJldHVybiBlbmNvZGVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZW5jb2Rl
ci5yZWxlYXNlKGVycm9yKTsKK30KKworUmVmPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxv
Y2soVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFVubGlua2VkQ29kZUJs
b2NrKiBjb2RlQmxvY2spCit7CisgICAgQnl0ZWNvZGVDYWNoZUVycm9yIGVycm9yOworICAgIHJl
dHVybiBlbmNvZGVDb2RlQmxvY2sodm0sIGtleSwgY29kZUJsb2NrLCAtMSwgZXJyb3IpOwogfQog
Ci1SZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiB2bSwgY29u
c3QgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2NrKQorUmVmPENhY2hlZEJ5dGVj
b2RlPiBlbmNvZGVGdW5jdGlvbkNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFVubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKIHsKLSAg
ICBFbmNvZGVyIGVuY29kZXIodm0pOworICAgIEVuY29kZXIgZW5jb2Rlcih2bSwgLTEpOwogICAg
IGVuY29kZXIubWFsbG9jPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrPigpLT5lbmNvZGUoZW5jb2Rl
ciwgKmNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIGVuY29kZXIucmVsZWFzZSgpOworICAgIHJldHVy
biBlbmNvZGVyLnJlbGVhc2UoZXJyb3IpOwogfQogCiBVbmxpbmtlZENvZGVCbG9jayogZGVjb2Rl
Q29kZUJsb2NrSW1wbChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSwgUmVmPENhY2hl
ZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWRUeXBlcy5oCmluZGV4IDlkMDBlMTczM2I0YmNkODlmY2M5MTgzZTY3OGFiMmYwMWNl
NDllZjAuLjhhOTEzZjBkNDhiYzdhZWUyMTljMTk5NjkyNDQyNDExYTdiMDU5OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuaApAQCAtMzMsNiArMzMsNyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQnl0ZWNvZGVDYWNoZUVycm9yOwogY2xhc3Mg
Q2FjaGVkQnl0ZWNvZGU7CiBjbGFzcyBTb3VyY2VDb2RlS2V5OwogY2xhc3MgVW5saW5rZWRDb2Rl
QmxvY2s7CkBAIC0xMDgsNiArMTA5LDcgQEAgcHJpdmF0ZToKIH07CiAKIEpTX0VYUE9SVF9QUklW
QVRFIFJlZjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiwgY29uc3QgU291cmNl
Q29kZUtleSYsIGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKik7CitKU19FWFBPUlRfUFJJVkFURSBS
ZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYsIGNvbnN0IFNvdXJjZUNvZGVL
ZXkmLCBjb25zdCBVbmxpbmtlZENvZGVCbG9jayosIGludCBmZCwgQnl0ZWNvZGVDYWNoZUVycm9y
Jik7CiAKIFVubGlua2VkQ29kZUJsb2NrKiBkZWNvZGVDb2RlQmxvY2tJbXBsKFZNJiwgY29uc3Qg
U291cmNlQ29kZUtleSYsIFJlZjxDYWNoZWRCeXRlY29kZT4pOwogCkBAIC0xMTcsNyArMTE5LDcg
QEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBkZWNvZGVDb2RlQmxvY2soVk0mIHZtLCBjb25zdCBT
b3VyY2VDb2RlS2V5JiBrZXksIFJlZjxDYWMKICAgICByZXR1cm4ganNDYXN0PFVubGlua2VkQ29k
ZUJsb2NrVHlwZSo+KGRlY29kZUNvZGVCbG9ja0ltcGwodm0sIGtleSwgV1RGTW92ZShjYWNoZWRC
eXRlY29kZSkpKTsKIH0KIAotSlNfRVhQT1JUX1BSSVZBVEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBl
bmNvZGVGdW5jdGlvbkNvZGVCbG9jayhWTSYsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlRnVuY3Rp
b25Db2RlQmxvY2soVk0mLCBjb25zdCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiwgQnl0ZWNv
ZGVDYWNoZUVycm9yJik7CiAKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVjb2RlRnVuY3Rpb25D
b2RlQmxvY2soRGVjb2RlciYsIGludDMyX3QgY2FjaGVkRnVuY3Rpb25Db2RlQmxvY2tPZmZzZXQs
IFdyaXRlQmFycmllcjxVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrPiYsIGNvbnN0IEpTQ2VsbCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAppbmRleCAw
M2E5MmVlNjRhMzdkMjJjZjIzZGQ0ODdmNTk3OTkzOGVjOWIzNjMyLi40YWFkZGU2YTRlYjM2OWM2
ZTdmYzdjODYyMWQxODcwNGFiMmRlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvZGVDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEyLCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjI1LDEwICsyMjUsMTAgQEAgU291cmNlQ29kZUtleSBz
b3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZE1vZHVsZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZUMKICAgICByZXR1cm4gc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRCeXRlY29kZSh2
bSwgc291cmNlQ29kZSwgU291cmNlQ29kZVR5cGU6Ok1vZHVsZVR5cGUsIHN0cmljdE1vZGUsIHNj
cmlwdE1vZGUsIHsgfSk7CiB9CiAKLVJlZjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXplQnl0ZWNv
ZGUoVk0mIHZtLCBVbmxpbmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1vZGUgc3Ry
aWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2Vu
ZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKK1JlZjxDYWNoZWRCeXRlY29kZT4gc2Vy
aWFsaXplQnl0ZWNvZGUoVk0mIHZtLCBVbmxpbmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0
cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIGludCBm
ZCwgQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvciwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9k
ZT4gY29kZUdlbmVyYXRpb25Nb2RlKQogewogICAgIHJldHVybiBlbmNvZGVDb2RlQmxvY2sodm0s
Ci0gICAgICAgIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZSwg
Y29kZVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSksIGNv
ZGVCbG9jayk7CisgICAgICAgIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0s
IHNvdXJjZSwgY29kZVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9u
TW9kZSksIGNvZGVCbG9jaywgZmQsIGVycm9yKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuaAppbmRleCBiMDY3Zjg0N2RhZTMwMWNlZWU3MDY1OGJlNzY1
OWY4ZTdkM2FiMzZjLi5mMDJiOWMzOGVkYzI1NzIxMzU4NDYzMjY2YTNjYTAzMzNlNjZlYTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMTgsNyAr
MzE4LDcgQEAgcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrKFZNJiB2bSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlclMKIH0KIAogdm9pZCB3cml0ZUNvZGVCbG9j
ayhWTSYsIGNvbnN0IFNvdXJjZUNvZGVLZXkmLCBjb25zdCBTb3VyY2VDb2RlVmFsdWUmKTsKLVJl
ZjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXplQnl0ZWNvZGUoVk0mLCBVbmxpbmtlZENvZGVCbG9j
ayosIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VDb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2Rl
LCBKU1BhcnNlclNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+KTsKK1Jl
ZjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXplQnl0ZWNvZGUoVk0mLCBVbmxpbmtlZENvZGVCbG9j
ayosIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VDb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2Rl
LCBKU1BhcnNlclNjcmlwdE1vZGUsIGludCBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJiwgT3B0aW9u
U2V0PENvZGVHZW5lcmF0aW9uTW9kZT4pOwogU291cmNlQ29kZUtleSBzb3VyY2VDb2RlS2V5Rm9y
U2VyaWFsaXplZFByb2dyYW0oVk0mLCBjb25zdCBTb3VyY2VDb2RlJik7CiBTb3VyY2VDb2RlS2V5
IHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkTW9kdWxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCmluZGV4
IDE5Nzk2YWY0Zjg5ZDJlODgxZmI3ZDU3OTYwMmMwOTRmN2U1ZmVhNjEuLjhiZmY3MGQ3YjM1ODMx
MGZiZTg3YTM1NmRiYjI1YTdjMzQ0MWJhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbXBsZXRpb24uY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgogCisjaW5jbHVkZSAiQnl0ZWNvZGVDYWNoZUVy
cm9yLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ2F0Y2hTY29wZS5oIgog
I2luY2x1ZGUgIkNvZGVDYWNoZS5oIgpAQCAtOTEsNyArOTIsNyBAQCBib29sIGNoZWNrTW9kdWxl
U3ludGF4KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJF
cnJvciYgZQogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVy
YXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJz
ZXJFcnJvciYgZXJyb3IpCitSZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVj
b2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBpbnQgZmQsIEJ5dGVjb2RlQ2Fj
aGVFcnJvciYgZXJyb3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIFJFTEVB
U0VfQVNTRVJUKHZtLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRv
bWljU3RyaW5nVGFibGUoKSk7CkBAIC0xMDEsMTMgKzEwMiwxNCBAQCBSZWY8Q2FjaGVkQnl0ZWNv
ZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBQYQogICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3Jp
cHRNb2RlOjpDbGFzc2ljOwogICAgIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBF
dmFsQ29udGV4dFR5cGU6Ok5vbmU7CiAKLSAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5rZWRD
b2RlQmxvY2sgPSByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5saW5rZWRQ
cm9ncmFtQ29kZUJsb2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0s
IGVycm9yLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclREWik7CisgICAgVW5saW5r
ZWRDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlu
a2VkQ29kZUJsb2NrPFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgc3RyaWN0
TW9kZSwgc2NyaXB0TW9kZSwgeyB9LCBlcnJvci5wYXJzZXJFcnJvcigpLCBldmFsQ29udGV4dFR5
cGUsICZ2YXJpYWJsZXNVbmRlclREWik7CiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykKICAg
ICAgICAgcmV0dXJuIENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gc2VyaWFs
aXplQnl0ZWNvZGUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBzb3VyY2UsIFNvdXJjZUNvZGVUeXBl
OjpQcm9ncmFtVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgeyB9KTsKKworICAgIHJldHVy
biBzZXJpYWxpemVCeXRlY29kZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNl
Q29kZVR5cGU6OlByb2dyYW1UeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBmZCwgZXJyb3Is
IHsgfSk7CiB9CiAKLVJlZjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29kZShW
TSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3ImIGVycm9yKQorUmVm
PENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKFZNJiB2bSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3IpCiB7CiAg
ICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0b21pY1N0
cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CkBA
IC0xMTcsMTAgKzExOSwxMCBAQCBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9kdWxlQnl0
ZWNvZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcgogICAgIEpTUGFyc2Vy
U2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpNb2R1bGU7CiAgICAg
RXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6Tm9uZTsK
IAotICAgIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vyc2l2ZWx5
R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+
KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIHsgfSwgZXJyb3IsIGV2YWxDb250
ZXh0VHlwZSwgJnZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICBVbmxpbmtlZENvZGVCbG9jayogdW5s
aW5rZWRDb2RlQmxvY2sgPSByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3Jp
cHRNb2RlLCB7IH0sIGVycm9yLnBhcnNlckVycm9yKCksIGV2YWxDb250ZXh0VHlwZSwgJnZhcmlh
Ymxlc1VuZGVyVERaKTsKICAgICBpZiAoIXVubGlua2VkQ29kZUJsb2NrKQogICAgICAgICByZXR1
cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZSgpOwotICAgIHJldHVybiBzZXJpYWxpemVCeXRlY29k
ZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNlQ29kZVR5cGU6Ok1vZHVsZVR5
cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIHsgfSk7CisgICAgcmV0dXJuIHNlcmlhbGl6ZUJ5
dGVjb2RlKHZtLCB1bmxpbmtlZENvZGVCbG9jaywgc291cmNlLCBTb3VyY2VDb2RlVHlwZTo6TW9k
dWxlVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgZmQsIGVycm9yLCB7IH0pOwogfQogCiBK
U1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNl
LCBKU1ZhbHVlIHRoaXNWYWx1ZSwgTmFrZWRQdHI8RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKaW5kZXggZDVh
MDIzMWI3ODAxNzViODg0MjBkNmFmZjRiM2MwYTUyNGVkMTg1MS4uOGNjMzg0NWIxYWVhM2IzYmYy
MmE0MzdhYWI0MzU1ZTQzYTU4MjMxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tcGxldGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uaApAQCAtMjgsNiArMjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xh
c3MgQnl0ZWNvZGVDYWNoZUVycm9yOwogY2xhc3MgQ2FjaGVkQnl0ZWNvZGU7CiBjbGFzcyBFeGNl
cHRpb247CiBjbGFzcyBFeGVjU3RhdGU7CkBAIC00Miw4ICs0Myw4IEBAIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgY2hlY2tTeW50YXgoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgUGFyc2VyRXJyb3Im
KTsKIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2hlY2tTeW50YXgoRXhlY1N0YXRlKiwgY29uc3Qg
U291cmNlQ29kZSYsIEpTVmFsdWUqIGV4Y2VwdGlvbiA9IDApOwogSlNfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBjaGVja01vZHVsZVN5bnRheChFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgUGFy
c2VyRXJyb3ImKTsKIAotSlNfRVhQT1JUX1BSSVZBVEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5l
cmF0ZVByb2dyYW1CeXRlY29kZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYp
OwotSlNfRVhQT1JUX1BSSVZBVEUgUmVmPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVsZUJ5
dGVjb2RlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIFBhcnNlckVycm9yJik7CitKU19FWFBPUlRf
UFJJVkFURSBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKFZNJiwg
Y29uc3QgU291cmNlQ29kZSYsIGludCBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJik7CitKU19FWFBP
UlRfUFJJVkFURSBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9kdWxlQnl0ZWNvZGUoVk0m
LCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImKTsKIAogSlNf
RVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VD
b2RlJiwgSlNWYWx1ZSB0aGlzVmFsdWUsIE5ha2VkUHRyPEV4Y2VwdGlvbj4mIHJldHVybmVkRXhj
ZXB0aW9uKTsKIGlubGluZSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlQ29kZSwgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371264</attachid>
            <date>2019-06-04 03:28:39 -0700</date>
            <delta_ts>2019-06-04 04:14:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198482-20190604122837.patch</filename>
            <type>text/plain</type>
            <size>33350</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWE1ZTM5NWI3Njc5MjQzMDA0MzZkYmVjOWUxZmVhNjczMmM0YTI4Li43NzZhY2RlYjliYTVhMGUx
MDA1ZTNiMmQ3MWIzMDBlZGY1NzMxNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0wNi0wNCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBKU1NjcmlwdCBzaG91bGQgbm90IGtlZXAgYnl0ZWNvZGUgY2FjaGUgaW4g
bWVtb3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBXaGVu
IEpTU2NyaXB0IHdyaXRlcyB0byB0aGUgY2FjaGUsIHdlIGtlZXAgdGhlIGluLW1lbW9yeSBzZXJp
YWxpemVkIGJ5dGVjb2RlIGFsaXZlLgorICAgICAgICBJbnN0ZWFkLCB3ZSBzaG91bGQgb25seSBl
dmVyIGhvbGQgdGhlIG1lbW9yeSBtYXBwZWQgYnl0ZWNvZGUgY2FjaGUgdG8gYXZvaWQgdXNpbmcK
KyAgICAgICAgdG9vIG11Y2ggbWVtb3J5LgorCisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgor
ICAgICAgICAoLVtKU1NjcmlwdCB3cml0ZUNhY2hlOl0pOgorICAgICAgICAqIEFQSS90ZXN0cy90
ZXN0YXBpLm1tOgorICAgICAgICAodGVzdEJ5dGVjb2RlQ2FjaGVXaXRoU3ludGF4RXJyb3IpOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBy
dW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUNhY2hlRXJyb3I6OlN0YW5kYXJkRXJyb3I6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
SlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OlN0YW5kYXJkRXJyb3I6Om1lc3NhZ2UgY29uc3QpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OldyaXRlRXJyb3I6OmlzVmFsaWQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6OldyaXRlRXJyb3I6Om1lc3Nh
Z2UgY29uc3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUNhY2hlRXJyb3I6Om9wZXJhdG9yPSk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlQ2FjaGVFcnJvcjo6aXNWYWxpZCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlQ2FjaGVFcnJvcjo6bWVzc2FnZSBjb25zdCk6CisgICAgICAgICog
cnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkJ5dGVj
b2RlQ2FjaGVFcnJvcjo6U3RhbmRhcmRFcnJvcjo6U3RhbmRhcmRFcnJvcik6CisgICAgICAgIChK
U0M6OkJ5dGVjb2RlQ2FjaGVFcnJvcjo6V3JpdGVFcnJvcjo6V3JpdGVFcnJvcik6CisgICAgICAg
ICogcnVudGltZS9DYWNoZWRCeXRlY29kZS5oOgorICAgICAgICAoSlNDOjpDYWNoZWRCeXRlY29k
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAgICAg
KEpTQzo6RW5jb2Rlcjo6RW5jb2Rlcik6CisgICAgICAgIChKU0M6OkVuY29kZXI6OnJlbGVhc2Up
OgorICAgICAgICAoSlNDOjpFbmNvZGVyOjpyZWxlYXNlTWFwcGVkKToKKyAgICAgICAgKEpTQzo6
ZW5jb2RlQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6ZW5jb2RlRnVuY3Rpb25Db2RlQmxvY2sp
OgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVkVHlwZXMuaDoKKyAgICAgICAgKiBydW50aW1lL0Nv
ZGVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OnNlcmlhbGl6ZUJ5dGVjb2RlKToKKyAgICAgICAg
KiBydW50aW1lL0NvZGVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHA6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6
Z2VuZXJhdGVNb2R1bGVCeXRlY29kZSk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmg6
CisKIDIwMTktMDYtMDIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBDcmFzaCBleHBsaWNpdGx5IGlmIFN0cnVjdHVyZUlEcyBhcmUgZXhoYXVzdGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbQppbmRleCA0MTFkZGNkNDY3ZDJiZTVl
ZGRiYzMyZDRhNjU2ZmZmODVhZjJjYTZkLi4zYTUxODBkZDNlNzhhM2Q1ZWE1NDhiOWE0NGE1OTBi
ZjI1ZTZhMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0
Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KQEAgLTI3LDYg
KzI3LDcgQEAKICNpbXBvcnQgIkpTU2NyaXB0SW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJQ2Fz
dC5oIgorI2ltcG9ydCAiQnl0ZWNvZGVDYWNoZUVycm9yLmgiCiAjaW1wb3J0ICJDYWNoZWRUeXBl
cy5oIgogI2ltcG9ydCAiQ29kZUNhY2hlLmgiCiAjaW1wb3J0ICJJZGVudGlmaWVyLmgiCkBAIC0z
NSw3ICszNiw2IEBACiAjaW1wb3J0ICJKU1NvdXJjZUNvZGUuaCIKICNpbXBvcnQgIkpTVmFsdWVQ
cml2YXRlLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCIKLSNpbXBvcnQg
IlBhcnNlckVycm9yLmgiCiAjaW1wb3J0ICJTeW1ib2wuaCIKICNpbmNsdWRlIDxzeXMvc3RhdC5o
PgogI2luY2x1ZGUgPHd0Zi9GaWxlTWV0YWRhdGEuaD4KQEAgLTI3NywzMiArMjc3LDIxIEBAIC0g
KEJPT0wpd3JpdGVDYWNoZTooU3RyaW5nJillcnJvcgogICAgICAgICBjbG9zZShmZCk7CiAgICAg
fSk7CiAKLSAgICBKU0M6OlBhcnNlckVycm9yIHBhcnNlckVycm9yOworICAgIEpTQzo6Qnl0ZWNv
ZGVDYWNoZUVycm9yIGNhY2hlRXJyb3I7CiAgICAgSlNDOjpTb3VyY2VDb2RlIHNvdXJjZUNvZGUg
PSBbc2VsZiBzb3VyY2VDb2RlXTsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2Uga0pT
U2NyaXB0VHlwZU1vZHVsZToKLSAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IEpTQzo6Z2VuZXJh
dGVNb2R1bGVCeXRlY29kZShtX3ZpcnR1YWxNYWNoaW5lLnZtLCBzb3VyY2VDb2RlLCBwYXJzZXJF
cnJvcik7CisgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBKU0M6OmdlbmVyYXRlTW9kdWxlQnl0
ZWNvZGUobV92aXJ0dWFsTWFjaGluZS52bSwgc291cmNlQ29kZSwgZmQsIGNhY2hlRXJyb3IpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIGtKU1NjcmlwdFR5cGVQcm9ncmFtOgotICAgICAgICBt
X2NhY2hlZEJ5dGVjb2RlID0gSlNDOjpnZW5lcmF0ZVByb2dyYW1CeXRlY29kZShtX3ZpcnR1YWxN
YWNoaW5lLnZtLCBzb3VyY2VDb2RlLCBwYXJzZXJFcnJvcik7CisgICAgICAgIG1fY2FjaGVkQnl0
ZWNvZGUgPSBKU0M6OmdlbmVyYXRlUHJvZ3JhbUJ5dGVjb2RlKG1fdmlydHVhbE1hY2hpbmUudm0s
IHNvdXJjZUNvZGUsIGZkLCBjYWNoZUVycm9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g
ICAgaWYgKHBhcnNlckVycm9yLmlzVmFsaWQoKSkgeworICAgIGlmIChjYWNoZUVycm9yLmlzVmFs
aWQoKSkgewogICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlID0gSlNDOjpDYWNoZWRCeXRlY29kZTo6
Y3JlYXRlKCk7Ci0gICAgICAgIGVycm9yID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIGdlbmVyYXRl
IGJ5dGVjb2RlIGZvciB0aGlzIEpTU2NyaXB0IGJlY2F1c2Ugb2YgYSBwYXJzZXIgZXJyb3I6ICIs
IHBhcnNlckVycm9yLm1lc3NhZ2UoKSk7Ci0gICAgICAgIHJldHVybiBOTzsKLSAgICB9Ci0KLSAg
ICBzc2l6ZV90IGJ5dGVzV3JpdHRlbiA9IHdyaXRlKGZkLCBtX2NhY2hlZEJ5dGVjb2RlLT5kYXRh
KCksIG1fY2FjaGVkQnl0ZWNvZGUtPnNpemUoKSk7Ci0gICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAt
MSkgewotICAgICAgICBlcnJvciA9IG1ha2VTdHJpbmcoIkNvdWxkIG5vdCB3cml0ZSBjYWNoZSBm
aWxlIHRvIGRpc2s6ICIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBOTzsKLSAg
ICB9Ci0KLSAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pICE9IG1fY2Fj
aGVkQnl0ZWNvZGUtPnNpemUoKSkgewogICAgICAgICBmdHJ1bmNhdGUoZmQsIDApOwotICAgICAg
ICBlcnJvciA9IG1ha2VTdHJpbmcoIkNvdWxkIG5vdCB3cml0ZSB0aGUgZnVsbCBjYWNoZSBmaWxl
IHRvIGRpc2suIE9ubHkgd3JvdGUgIiwgU3RyaW5nOjpudW1iZXIoYnl0ZXNXcml0dGVuKSwgIiBv
ZiB0aGUgZXhwZWN0ZWQgIiwgU3RyaW5nOjpudW1iZXIobV9jYWNoZWRCeXRlY29kZS0+c2l6ZSgp
KSwgIiBieXRlcy4iKTsKKyAgICAgICAgZXJyb3IgPSBtYWtlU3RyaW5nKCJVbmFibGUgdG8gZ2Vu
ZXJhdGUgYnl0ZWNvZGUgZm9yIHRoaXMgSlNTY3JpcHQgYmVjYXVzZTogIiwgY2FjaGVFcnJvci5t
ZXNzYWdlKCkpOwogICAgICAgICByZXR1cm4gTk87CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KaW5kZXggNTI1M2IwMmY3MjJhODYyZjdjMDMxNzE3
YTI1MzVlYzNjMGU2YzI2Ny4uNmNlODBmMGUwMTJhOGMyYWI3NjNjZDc2MGU0ZDY3MWUwOGIxMTI0
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1t
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtMjE5
Nyw3ICsyMTk3LDcgQEAgc3RhdGljIHZvaWQgdGVzdEJ5dGVjb2RlQ2FjaGVXaXRoU3ludGF4RXJy
b3IoSlNTY3JpcHRUeXBlIHR5cGUpCiAgICAgICAgIGlmIChbc2NyaXB0IGNhY2hlQnl0ZWNvZGVX
aXRoRXJyb3I6JmVycm9yXSkKICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGVycm9yKTsKLSAgICAgICAgY2hlY2tSZXN1bHQoQCJHb3QgZXJyb3Igd2hlbiB0cnlp
bmcgdG8gY2FjaGUgYnl0ZWNvZGUgZm9yIGEgc2NyaXB0IHdpdGggYSBzeW50YXggZXJyb3IuIiwg
W1tlcnJvciBkZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJVbmFibGUgdG8gZ2VuZXJhdGUg
Ynl0ZWNvZGUgZm9yIHRoaXMgSlNTY3JpcHQgYmVjYXVzZSBvZiBhIHBhcnNlciBlcnJvciJdKTsK
KyAgICAgICAgY2hlY2tSZXN1bHQoQCJHb3QgZXJyb3Igd2hlbiB0cnlpbmcgdG8gY2FjaGUgYnl0
ZWNvZGUgZm9yIGEgc2NyaXB0IHdpdGggYSBzeW50YXggZXJyb3IuIiwgW1tlcnJvciBkZXNjcmlw
dGlvbl0gY29udGFpbnNTdHJpbmc6QCJVbmFibGUgdG8gZ2VuZXJhdGUgYnl0ZWNvZGUgZm9yIHRo
aXMgSlNTY3JpcHQgYmVjYXVzZSJdKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA5NDE1ZWEwNzE1NDAwZDY5ODgwNWE2ZTM5ZDc1N2ZkNTE2NDllMDI0
Li5mYTk3MWNmZTM4YzlhZDEyNDk5ZmJhYjM5NTUyZTE2NWQzZWM5N2IzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03NTEsNiArNzUxLDcgQEAgc2V0KEphdmFTY3JpcHRD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL0Jvb2xlYW5Qcm90b3R5
cGUuaAogICAgIHJ1bnRpbWUvQnV0dGVyZmx5LmgKICAgICBydW50aW1lL0J1dHRlcmZseUlubGlu
ZXMuaAorICAgIHJ1bnRpbWUvQnl0ZWNvZGVDYWNoZUVycm9yLmgKICAgICBydW50aW1lL0NhY2hl
UGF5bG9hZC5oCiAgICAgcnVudGltZS9DYWNoZVVwZGF0ZS5oCiAgICAgcnVudGltZS9DYWNoZWRC
eXRlY29kZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJkYTBjNTZjYmEyMjBk
NmRiZjNlNDYyZWY4NmQ4MDM1NzZmNzg2NDQuLjdkYzU1NDVmNjc2MzNhM2M3YTg0ZDMxNDQ2MjQ5
YzkyNGY0MGZiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NzIsNiArNzcy
LDcgQEAKIAkJMTQyRTMxM0IxMzRGRjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQyRTMxMzIxMzRGRjBBNjAwQUZB
REI1IC8qIFN0cm9uZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTE0MkUzMTNDMTM0RkYwQTYwMEFGQURCNSAvKiBXZWFrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJFMzEzMzEzNEZGMEE2MDBBRkFE
QjUgLyogV2Vhay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTE0MkYxNkUwMjE1NTg4MDIwMDNENDlDOSAvKiBNZXRhZGF0YVRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJGMTZERjIxNTU4NUM4
MDAzRDQ5QzkgLyogTWV0YWRhdGFUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTE0MzU5NTIxMjJBNTIxQ0QwMEU4MDg2RCAvKiBCeXRlY29k
ZUNhY2hlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0MzU5NTFGMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hlRXJyb3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDM4NkE3NTFE
RDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Mzg2QTczMURENjk4OTUwMDg2NTJDNCAv
KiBEaXJlY3RFdmFsRXhlY3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTE0Mzg2QTc5MURENjk4OUMwMDg2NTJDNCAvKiBJbmRpcmVjdEV2
YWxFeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDM4NkE3NzFERDY5ODlDMDA4NjUyQzQgLyogSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NDAw
NTdGMEE1MzM1NjQwMDA1RjA2MSAvKiBKU05vZGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDBGNjQyMEE0RjhCNkEwMDA1RjA2MSAvKiBKU05vZGUu
YyAqLzsgfTsKQEAgLTMxOTAsNiArMzE5MSw4IEBACiAJCTE0MkUzMTMzMTM0RkYwQTYwMEFGQURC
NSAvKiBXZWFrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWsuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQyRjE2REYyMTU1ODVDODAwM0Q0OUM5IC8qIE1l
dGFkYXRhVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFU
YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDJGMTZFOTIxNTgzQjVFMDAz
RDQ5QzkgLyogQ29kZUJsb2NrSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb2RlQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0
MzU5NTFGMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hlRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQnl0ZWNvZGVDYWNoZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTE0MzU5NTIwMjJBNTIxQ0EwMEU4MDg2RCAvKiBCeXRlY29kZUNhY2hlRXJyb3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQnl0ZWNvZGVDYWNoZUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTQzODZBNzIxREQ2OTg5NTAwODY1MkM0IC8qIERpcmVjdEV2YWxFeGVjdXRh
YmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpcmVjdEV2YWxF
eGVjdXRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzODZBNzMxREQ2
OTg5NTAwODY1MkM0IC8qIERpcmVjdEV2YWxFeGVjdXRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERpcmVjdEV2YWxFeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0Mzg2QTc2MURENjk4OUMwMDg2NTJDNCAvKiBJbmRpcmVjdEV2YWxFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGlyZWN0
RXZhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjc1NSw2
ICs2NzU4LDggQEAKIAkJCQk5RTcyOTQwOTE5MEYwMzA2MDAxQTkxQjUgLyogQnVuZGxlUGF0aC5t
bSAqLywKIAkJCQkwRkI3RjM4QjE1RUQ4RTM4MDBGMTY3QjIgLyogQnV0dGVyZmx5LmggKi8sCiAJ
CQkJMEZCN0YzOEMxNUVEOEUzODAwRjE2N0IyIC8qIEJ1dHRlcmZseUlubGluZXMuaCAqLywKKwkJ
CQkxNDM1OTUyMDIyQTUyMUNBMDBFODA4NkQgLyogQnl0ZWNvZGVDYWNoZUVycm9yLmNwcCAqLywK
KwkJCQkxNDM1OTUxRjIyQTUyMUNBMDBFODA4NkQgLyogQnl0ZWNvZGVDYWNoZUVycm9yLmggKi8s
CiAJCQkJMTQ4QjE0MTkyMjVERDFFOTAwRDZFOTk4IC8qIENhY2hlZEJ5dGVjb2RlLmNwcCAqLywK
IAkJCQkxNDRDQTM0RjIyMUYwMzc5MDA4MTc3ODkgLyogQ2FjaGVkQnl0ZWNvZGUuaCAqLywKIAkJ
CQkxNERBRkE0NTIxRTNCODcxMDA0QjY4RjcgLyogQ2FjaGVkVHlwZXMuY3BwICovLApAQCAtODc3
Niw2ICs4NzgxLDcgQEAKIAkJCQkwRkI3RjM5NzE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5ODE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVy
Zmx5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJGQ0FFMTExN0E5QzI0RTAwMzRDNzM1
IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQzNTk1MjEyMkE1
MjFDRDAwRTgwODZEIC8qIEJ5dGVjb2RlQ2FjaGVFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyMUMyN0YxNEJFQUE4MjAwQURDNjRCIC8qIEJ5dGVjb2RlQ29udmVudGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzRDg3Nzc0MUU2NUMwQTAwMEJFOTQ1QSAvKiBCeXRlY29kZUR1bXBlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3MjMwRUQxQ0UzMzAwRjFGNjgxIC8qIEJ5dGVjb2Rl
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA0M2Q3ZWY0NzU4MjJhODNhZmFmOWExMmU4Y2Y5ZTExYTlkN2RiODdiLi4zYzdkZDk4NDZjY2Qy
NGYyYjAyYTFkN2M2MmVmMmY2NWU1ZjU4MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0
CkBAIC03MTgsNiArNzE4LDcgQEAgcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3BwCiBydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKIHJ1bnRp
bWUvQm9vbGVhblByb3RvdHlwZS5jcHAKK3J1bnRpbWUvQnl0ZWNvZGVDYWNoZUVycm9yLmNwcAog
cnVudGltZS9DYWxsRGF0YS5jcHAKIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcAogcnVudGltZS9D
YWNoZVVwZGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYzExMGRjNDNmMTc2Mzg2NjQ4
OWNhNDQ4ODJhNTZjMTljMjk1MzFjZS4uZTE4MThhMTNmMDFmNjA1MTcyMDZkNzFiMDY5MWM2NTgz
ZWQwMzBiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJBcnJheVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUg
IkJ1dHRlcmZseUlubGluZXMuaCIKKyNpbmNsdWRlICJCeXRlY29kZUNhY2hlRXJyb3IuaCIKICNp
bmNsdWRlICJDYXRjaFNjb3BlLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
Q29kZUNhY2hlLmgiCkBAIC05ODEsOCArOTgyLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IGlmICghY2FjaGVFbmFibGVkKCkgfHwgIW1fY2FjaGVkQnl0ZWNvZGUpCiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIFJlZjxDYWNoZWRCeXRlY29kZT4gY2FjaGVkQnl0ZWNvZGUgPSBlbmNv
ZGVGdW5jdGlvbkNvZGVCbG9jaygqZXhlY3V0YWJsZS0+dm0oKSwgY29kZUJsb2NrKTsKLSAgICAg
ICAgbV9jYWNoZWRCeXRlY29kZS0+YWRkRnVuY3Rpb25VcGRhdGUoZXhlY3V0YWJsZSwga2luZCwg
V1RGTW92ZShjYWNoZWRCeXRlY29kZSkpOworICAgICAgICBCeXRlY29kZUNhY2hlRXJyb3IgZXJy
b3I7CisgICAgICAgIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gY2FjaGVkQnl0ZWNvZGUgPSBlbmNv
ZGVGdW5jdGlvbkNvZGVCbG9jaygqZXhlY3V0YWJsZS0+dm0oKSwgY29kZUJsb2NrLCBlcnJvcik7
CisgICAgICAgIGlmIChjYWNoZWRCeXRlY29kZSAmJiAhZXJyb3IuaXNWYWxpZCgpKQorICAgICAg
ICAgICAgbV9jYWNoZWRCeXRlY29kZS0+YWRkRnVuY3Rpb25VcGRhdGUoZXhlY3V0YWJsZSwga2lu
ZCwgKmNhY2hlZEJ5dGVjb2RlKTsKICAgICB9CiAKICAgICB2b2lkIGNhY2hlQnl0ZWNvZGUoY29u
c3QgQnl0ZWNvZGVDYWNoZUdlbmVyYXRvciYgZ2VuZXJhdG9yKSBjb25zdCBvdmVycmlkZQpAQCAt
OTkxLDcgKzk5NCw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KCFtX2NhY2hlZEJ5dGVjb2RlKQogICAgICAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IENhY2hl
ZEJ5dGVjb2RlOjpjcmVhdGUoKTsKLSAgICAgICAgbV9jYWNoZWRCeXRlY29kZS0+YWRkR2xvYmFs
VXBkYXRlKGdlbmVyYXRvcigpKTsKKyAgICAgICAgYXV0byB1cGRhdGUgPSBnZW5lcmF0b3IoKTsK
KyAgICAgICAgaWYgKHVwZGF0ZSkKKyAgICAgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUtPmFkZEds
b2JhbFVwZGF0ZSgqdXBkYXRlKTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdENhY2hlZEJ5dGVj
b2RlKCkgY29uc3Qgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlUHJvdmlkZXIuaAppbmRleCBkOGUwNDE1NjkwNzE4M2JhOTQwNzQ3MThiOTg5ODU3YjYyYjVh
YWI1Li5hYWJmMDA3MGMzYmE3NGRhOWY0OTRmMTQ4NTZmZGE1ZjA0MDEyMjczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC00OCw3ICs0OCw3
IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIFdlYkFzc2VtYmx5
LAogICAgIH07CiAKLSAgICB1c2luZyBCeXRlY29kZUNhY2hlR2VuZXJhdG9yID0gRnVuY3Rpb248
UmVmPENhY2hlZEJ5dGVjb2RlPigpPjsKKyAgICB1c2luZyBCeXRlY29kZUNhY2hlR2VuZXJhdG9y
ID0gRnVuY3Rpb248UmVmUHRyPENhY2hlZEJ5dGVjb2RlPigpPjsKIAogICAgIGNsYXNzIFNvdXJj
ZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlUHJvdmlkZXI+IHsKICAgICBwdWJs
aWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNh
Y2hlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnl0ZWNvZGVDYWNo
ZUVycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmYxMDJmOTAxMDY1OTJhMDcyMjU5OTI1MTc4NGQwMjY3
YjZhODZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qnl0ZWNvZGVDYWNoZUVycm9yLmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkJ5dGVjb2RlQ2FjaGVFcnJvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworYm9vbCBCeXRl
Y29kZUNhY2hlRXJyb3I6OlN0YW5kYXJkRXJyb3I6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJl
dHVybiB0cnVlOworfQorCitTdHJpbmcgQnl0ZWNvZGVDYWNoZUVycm9yOjpTdGFuZGFyZEVycm9y
OjptZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RyZXJyb3IobV9lcnJubyk7Cit9CisK
K2Jvb2wgQnl0ZWNvZGVDYWNoZUVycm9yOjpXcml0ZUVycm9yOjppc1ZhbGlkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3RyaW5nIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6V3JpdGVF
cnJvcjo6bWVzc2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNvdWxkIG5v
dCB3cml0ZSB0aGUgZnVsbCBjYWNoZSBmaWxlIHRvIGRpc2suIE9ubHkgd3JvdGUgIiwgU3RyaW5n
OjpudW1iZXIobV93cml0dGVuKSwgIiBvZiB0aGUgZXhwZWN0ZWQgIiwgU3RyaW5nOjpudW1iZXIo
bV9leHBlY3RlZCksICIgYnl0ZXMuIik7Cit9CisKK0J5dGVjb2RlQ2FjaGVFcnJvciYgQnl0ZWNv
ZGVDYWNoZUVycm9yOjpvcGVyYXRvcj0oY29uc3QgUGFyc2VyRXJyb3ImIGVycm9yKQoreworICAg
IG1fZXJyb3IgPSBlcnJvcjsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0J5dGVjb2RlQ2FjaGVF
cnJvciYgQnl0ZWNvZGVDYWNoZUVycm9yOjpvcGVyYXRvcj0oY29uc3QgU3RhbmRhcmRFcnJvciYg
ZXJyb3IpCit7CisgICAgbV9lcnJvciA9IGVycm9yOworICAgIHJldHVybiAqdGhpczsKK30KKwor
Qnl0ZWNvZGVDYWNoZUVycm9yJiBCeXRlY29kZUNhY2hlRXJyb3I6Om9wZXJhdG9yPShjb25zdCBX
cml0ZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Vycm9yID0gZXJyb3I7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitib29sIEJ5dGVjb2RlQ2FjaGVFcnJvcjo6aXNWYWxpZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9lcnJvciwgW10oY29uc3QgYXV0byYgZXJyb3IpIHsK
KyAgICAgICAgcmV0dXJuIGVycm9yLmlzVmFsaWQoKTsKKyAgICB9KTsKK30KKworU3RyaW5nIEJ5
dGVjb2RlQ2FjaGVFcnJvcjo6bWVzc2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9lcnJvciwgW10oY29uc3QgYXV0byYgZXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIGVy
cm9yLm1lc3NhZ2UoKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNhY2hlRXJyb3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyMjYxZDQ3NzI4OWJmYzAyMDliYzdjNDcxMzU0MWFiN2JiNTRjZGEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29kZUNhY2hlRXJy
b3IuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgor
I2luY2x1ZGUgIkpTU291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCisjaW5j
bHVkZSA8d3RmL1ZhcmlhbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEJ5dGVjb2RlQ2FjaGVFcnJvciB7CitwdWJsaWM6Cisg
ICAgY2xhc3MgU3RhbmRhcmRFcnJvciB7CisgICAgcHVibGljOgorICAgICAgICBTdGFuZGFyZEVy
cm9yKGludCBlcnJvcikKKyAgICAgICAgICAgIDogbV9lcnJubyhlcnJvcikKKyAgICAgICAgewor
ICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgICAgIFN0cmlu
ZyBtZXNzYWdlKCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBpbnQgbV9lcnJubzsK
KyAgICB9OworCisgICAgY2xhc3MgV3JpdGVFcnJvciB7CisgICAgcHVibGljOgorICAgICAgICBX
cml0ZUVycm9yKHNpemVfdCB3cml0dGVuLCBzaXplX3QgZXhwZWN0ZWQpCisgICAgICAgICAgICA6
IG1fd3JpdHRlbih3cml0dGVuKQorICAgICAgICAgICAgLCBtX2V4cGVjdGVkKGV4cGVjdGVkKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAg
ICAgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHNp
emVfdCBtX3dyaXR0ZW47CisgICAgICAgIHNpemVfdCBtX2V4cGVjdGVkOworICAgIH07CisKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBCeXRlY29kZUNhY2hlRXJyb3ImIG9wZXJhdG9yPShjb25zdCBQ
YXJzZXJFcnJvciYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEJ5dGVjb2RlQ2FjaGVFcnJvciYg
b3BlcmF0b3I9KGNvbnN0IFN0YW5kYXJkRXJyb3ImKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBC
eXRlY29kZUNhY2hlRXJyb3ImIG9wZXJhdG9yPShjb25zdCBXcml0ZUVycm9yJik7CisKKyAgICBK
U19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFZhcmlhbnQ8UGFy
c2VyRXJyb3IsIFN0YW5kYXJkRXJyb3IsIFdyaXRlRXJyb3I+IG1fZXJyb3I7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlZEJ5dGVjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRC
eXRlY29kZS5oCmluZGV4IDU3OTM2NjgyNGJjOGE1M2QzMDIzYzllMjkxMDc3ZTI5YWMxMjlmOWYu
LjE1Y2FiM2MwNDcwYmEwY2EwNjJkNTU1ZTQ3YzNmZmRkYzhmZWQ3OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkQnl0ZWNvZGUuaApAQCAtNDcsOSArNDcsOSBA
QCBwdWJsaWM6CiAgICAgfQogCiAjaWYgIU9TKFdJTkRPV1MpCi0gICAgc3RhdGljIFJlZjxDYWNo
ZWRCeXRlY29kZT4gY3JlYXRlKHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKQorICAgIHN0YXRpYyBS
ZWY8Q2FjaGVkQnl0ZWNvZGU+IGNyZWF0ZSh2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgTGVhZkV4
ZWN1dGFibGVNYXAmJiBsZWFmRXhlY3V0YWJsZXMgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRCeXRlY29kZShDYWNoZVBheWxvYWQ6Om1ha2VNYXBwZWRQ
YXlsb2FkKGRhdGEsIHNpemUpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hl
ZEJ5dGVjb2RlKENhY2hlUGF5bG9hZDo6bWFrZU1hcHBlZFBheWxvYWQoZGF0YSwgc2l6ZSksIFdU
Rk1vdmUobGVhZkV4ZWN1dGFibGVzKSkpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggZTBiNGNiZmI5YTUwM2Zl
NzJmZjkxNzE5Yzc3NzQ1ZDE2MDc5MjgyZS4uZDQ2MWU1NjkzMjlmMWQ5ZThiODZlY2JjMzU3Yjlh
ZTc2OTlkNzE4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2Fj
aGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5
cGVzLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNhY2hlZFR5cGVzLmgiCiAKKyNpbmNsdWRlICJCeXRlY29kZUNhY2hlRXJyb3IuaCIKICNpbmNs
dWRlICJCeXRlY29kZUNhY2hlVmVyc2lvbi5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTg3LDggKzg4LDkgQEAgcHVi
bGljOgogICAgICAgICBwdHJkaWZmX3QgbV9vZmZzZXQ7CiAgICAgfTsKIAotICAgIEVuY29kZXIo
Vk0mIHZtKQorICAgIEVuY29kZXIoVk0mIHZtLCBpbnQgZmQgPSAtMSkKICAgICAgICAgOiBtX3Zt
KHZtKQorICAgICAgICAsIG1fZmQoZmQpCiAgICAgICAgICwgbV9iYXNlT2Zmc2V0KDApCiAgICAg
ICAgICwgbV9jdXJyZW50UGFnZShudWxscHRyKQogICAgIHsKQEAgLTE0NCwxMiArMTQ2LDIwIEBA
IHB1YmxpYzoKICAgICAgICAgbV9sZWFmRXhlY3V0YWJsZXMuYWRkKGV4ZWN1dGFibGUsIG9mZnNl
dCk7CiAgICAgfQogCi0gICAgUmVmPENhY2hlZEJ5dGVjb2RlPiByZWxlYXNlKCkKKyAgICBSZWZQ
dHI8Q2FjaGVkQnl0ZWNvZGU+IHJlbGVhc2UoQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKICAg
ICB7CiAgICAgICAgIGlmICghbV9jdXJyZW50UGFnZSkKLSAgICAgICAgICAgIHJldHVybiBDYWNo
ZWRCeXRlY29kZTo6Y3JlYXRlKCk7Ci0KKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBtX2N1cnJlbnRQYWdlLT5hbGlnbkVuZCgpOworCisgICAgICAgIGlmIChtX2ZkICE9IC0x
KSB7CisjaWYgIU9TKFdJTkRPV1MpCisgICAgICAgICAgICByZXR1cm4gcmVsZWFzZU1hcHBlZChl
cnJvcik7CisjZWxzZQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyNlbmRpZgorICAgICAgICB9CisKICAgICAgICAgc2l6ZV90IHNpemUgPSBtX2Jhc2VPZmZzZXQg
KyBtX2N1cnJlbnRQYWdlLT5zaXplKCk7CiAgICAgICAgIE1hbGxvY1B0cjx1aW50OF90PiBidWZm
ZXIgPSBNYWxsb2NQdHI8dWludDhfdD46Om1hbGxvYyhzaXplKTsKICAgICAgICAgdW5zaWduZWQg
b2Zmc2V0ID0gMDsKQEAgLTE2Miw2ICsxNzIsMzggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKKyNpZiAhT1MoV0lORE9XUykKKyAgICBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IHJlbGVhc2VN
YXBwZWQoQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKKyAgICB7CisgICAgICAgIHNpemVfdCBz
aXplID0gbV9iYXNlT2Zmc2V0ICsgbV9jdXJyZW50UGFnZS0+c2l6ZSgpOworICAgICAgICBpZiAo
ZnRydW5jYXRlKG1fZmQsIHNpemUpKSB7CisgICAgICAgICAgICBlcnJvciA9IEJ5dGVjb2RlQ2Fj
aGVFcnJvcjo6U3RhbmRhcmRFcnJvcihlcnJubyk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcGFnZSA6IG1fcGFnZXMp
IHsKKyAgICAgICAgICAgIHNzaXplX3QgYnl0ZXNXcml0dGVuID0gd3JpdGUobV9mZCwgcGFnZS5i
dWZmZXIoKSwgcGFnZS5zaXplKCkpOworICAgICAgICAgICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAt
MSkgeworICAgICAgICAgICAgICAgIGVycm9yID0gQnl0ZWNvZGVDYWNoZUVycm9yOjpTdGFuZGFy
ZEVycm9yKGVycm5vKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVu
KSAhPSBwYWdlLnNpemUoKSkgeworICAgICAgICAgICAgICAgIGVycm9yID0gQnl0ZWNvZGVDYWNo
ZUVycm9yOjpXcml0ZUVycm9yKGJ5dGVzV3JpdHRlbiwgcGFnZS5zaXplKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCogYnVmZmVyID0gbW1hcChudWxscHRyLCBzaXplLCBQUk9UX1JFQUQsIE1BUF9QUklW
QVRFLCBtX2ZkLCAwKTsKKyAgICAgICAgaWYgKGJ1ZmZlciA9PSBNQVBfRkFJTEVEKSB7CisgICAg
ICAgICAgICBlcnJvciA9IEJ5dGVjb2RlQ2FjaGVFcnJvcjo6U3RhbmRhcmRFcnJvcihlcnJubyk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBDYWNoZWRCeXRlY29kZTo6Y3JlYXRlKGJ1ZmZlciwgc2l6ZSwgV1RGTW92ZShtX2xlYWZFeGVj
dXRhYmxlcykpOworICAgIH0KKyNlbmRpZgorCiAgICAgY2xhc3MgUGFnZSB7CiAgICAgcHVibGlj
OgogICAgICAgICBQYWdlKHNpemVfdCBzaXplKQpAQCAtMjI4LDYgKzI3MCw3IEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgVk0mIG1fdm07CisgICAgaW50IG1fZmQ7CiAgICAgcHRyZGlmZl90IG1f
YmFzZU9mZnNldDsKICAgICBQYWdlKiBtX2N1cnJlbnRQYWdlOwogICAgIFZlY3RvcjxQYWdlPiBt
X3BhZ2VzOwpAQCAtMjM0MiwxMSArMjM4NSwxMSBAQCB2b2lkIGVuY29kZUNvZGVCbG9jayhFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFVubGlua2VkQwog
ICAgIGVudHJ5LT5lbmNvZGUoZW5jb2RlciwgeyBrZXksIGpzQ2FzdDxjb25zdCBVbmxpbmtlZENv
ZGVCbG9ja1R5cGUqPihjb2RlQmxvY2spIH0pOwogfQogCi1SZWY8Q2FjaGVkQnl0ZWNvZGU+IGVu
Y29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSwgY29uc3QgVW5s
aW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaykKK1JlZlB0cjxDYWNoZWRCeXRlY29kZT4gZW5jb2Rl
Q29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZUtleSYga2V5LCBjb25zdCBVbmxpbmtl
ZENvZGVCbG9jayogY29kZUJsb2NrLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3Ip
CiB7CiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8gPSBjb2RlQmxvY2stPmNsYXNzSW5m
byh2bSk7CiAKLSAgICBFbmNvZGVyIGVuY29kZXIodm0pOworICAgIEVuY29kZXIgZW5jb2Rlcih2
bSwgZmQpOwogICAgIGlmIChjbGFzc0luZm8gPT0gVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrOjpp
bmZvKCkpCiAgICAgICAgIGVuY29kZUNvZGVCbG9jazxVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2s+
KGVuY29kZXIsIGtleSwgY29kZUJsb2NrKTsKICAgICBlbHNlIGlmIChjbGFzc0luZm8gPT0gVW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrOjppbmZvKCkpCkBAIC0yMzU0LDE0ICsyMzk3LDIw
IEBAIFJlZjxDYWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291
cmNlQ29kZUtleSYga2V5LCBjb25zdCBVbmxpCiAgICAgZWxzZQogICAgICAgICBBU1NFUlQoY2xh
c3NJbmZvID09IFVubGlua2VkRXZhbENvZGVCbG9jazo6aW5mbygpKTsKIAotICAgIHJldHVybiBl
bmNvZGVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZW5jb2Rlci5yZWxlYXNlKGVycm9yKTsKK30K
KworUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxvY2soVk0mIHZtLCBjb25zdCBT
b3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7
CisgICAgQnl0ZWNvZGVDYWNoZUVycm9yIGVycm9yOworICAgIHJldHVybiBlbmNvZGVDb2RlQmxv
Y2sodm0sIGtleSwgY29kZUJsb2NrLCAtMSwgZXJyb3IpOwogfQogCi1SZWY8Q2FjaGVkQnl0ZWNv
ZGU+IGVuY29kZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgVW5saW5rZWRGdW5jdGlv
bkNvZGVCbG9jayogY29kZUJsb2NrKQorUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVGdW5j
dGlvbkNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNv
ZGVCbG9jaywgQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKIHsKICAgICBFbmNvZGVyIGVuY29k
ZXIodm0pOwogICAgIGVuY29kZXIubWFsbG9jPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrPigpLT5l
bmNvZGUoZW5jb2RlciwgKmNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIGVuY29kZXIucmVsZWFzZSgp
OworICAgIHJldHVybiBlbmNvZGVyLnJlbGVhc2UoZXJyb3IpOwogfQogCiBVbmxpbmtlZENvZGVC
bG9jayogZGVjb2RlQ29kZUJsb2NrSW1wbChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtl
eSwgUmVmPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5oCmluZGV4IDlkMDBlMTczM2I0YmNkODlmY2M5MTgz
ZTY3OGFiMmYwMWNlNDllZjAuLjFiNjJkOGQ0NmNiOGQ4ZGU5NzA5YWQyNjdkMmE1NWM4OGZkZjI1
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuaApAQCAt
MzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQnl0ZWNvZGVDYWNoZUVy
cm9yOwogY2xhc3MgQ2FjaGVkQnl0ZWNvZGU7CiBjbGFzcyBTb3VyY2VDb2RlS2V5OwogY2xhc3Mg
VW5saW5rZWRDb2RlQmxvY2s7CkBAIC0xMDcsNyArMTA4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CiB9OwogCi1KU19FWFBPUlRfUFJJVkFURSBS
ZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29kZUNvZGVCbG9jayhWTSYsIGNvbnN0IFNvdXJjZUNvZGVL
ZXkmLCBjb25zdCBVbmxpbmtlZENvZGVCbG9jayopOworSlNfRVhQT1JUX1BSSVZBVEUgUmVmUHRy
PENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVDb2RlQmxvY2soVk0mLCBjb25zdCBTb3VyY2VDb2RlS2V5
JiwgY29uc3QgVW5saW5rZWRDb2RlQmxvY2sqKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxD
YWNoZWRCeXRlY29kZT4gZW5jb2RlQ29kZUJsb2NrKFZNJiwgY29uc3QgU291cmNlQ29kZUtleSYs
IGNvbnN0IFVubGlua2VkQ29kZUJsb2NrKiwgaW50IGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImKTsK
IAogVW5saW5rZWRDb2RlQmxvY2sqIGRlY29kZUNvZGVCbG9ja0ltcGwoVk0mLCBjb25zdCBTb3Vy
Y2VDb2RlS2V5JiwgUmVmPENhY2hlZEJ5dGVjb2RlPik7CiAKQEAgLTExNyw3ICsxMTksNyBAQCBV
bmxpbmtlZENvZGVCbG9ja1R5cGUqIGRlY29kZUNvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJj
ZUNvZGVLZXkmIGtleSwgUmVmPENhYwogICAgIHJldHVybiBqc0Nhc3Q8VW5saW5rZWRDb2RlQmxv
Y2tUeXBlKj4oZGVjb2RlQ29kZUJsb2NrSW1wbCh2bSwga2V5LCBXVEZNb3ZlKGNhY2hlZEJ5dGVj
b2RlKSkpOwogfQogCi1KU19FWFBPUlRfUFJJVkFURSBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGVuY29k
ZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiwgY29uc3QgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayop
OworSlNfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBlbmNvZGVGdW5jdGlv
bkNvZGVCbG9jayhWTSYsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqLCBCeXRlY29k
ZUNhY2hlRXJyb3ImKTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWNvZGVGdW5jdGlvbkNv
ZGVCbG9jayhEZWNvZGVyJiwgaW50MzJfdCBjYWNoZWRGdW5jdGlvbkNvZGVCbG9ja09mZnNldCwg
V3JpdGVCYXJyaWVyPFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+JiwgY29uc3QgSlNDZWxsKik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCmluZGV4IDAz
YTkyZWU2NGEzN2QyMmNmMjNkZDQ4N2Y1OTc5OTM4ZWM5YjM2MzIuLjg0Mjc2OGUzMDM0ZjA0ODQ3
ODQyZDU1NzcwNDY3OGUzMGFhNjI2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29kZUNhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yMjUsMTAgKzIyNSwxMCBAQCBTb3VyY2VDb2RlS2V5IHNv
dXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkTW9kdWxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlQwogICAgIHJldHVybiBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZEJ5dGVjb2RlKHZt
LCBzb3VyY2VDb2RlLCBTb3VyY2VDb2RlVHlwZTo6TW9kdWxlVHlwZSwgc3RyaWN0TW9kZSwgc2Ny
aXB0TW9kZSwgeyB9KTsKIH0KIAotUmVmPENhY2hlZEJ5dGVjb2RlPiBzZXJpYWxpemVCeXRlY29k
ZShWTSYgdm0sIFVubGlua2VkQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgU291cmNlQ29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJp
Y3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgT3B0aW9uU2V0PENvZGVHZW5l
cmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlKQorUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBz
ZXJpYWxpemVCeXRlY29kZShWTSYgdm0sIFVubGlua2VkQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgU291cmNlQ29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2Vy
U3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgaW50
IGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImIGVycm9yLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25N
b2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUpCiB7CiAgICAgcmV0dXJuIGVuY29kZUNvZGVCbG9jayh2
bSwKLSAgICAgICAgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRCeXRlY29kZSh2bSwgc291cmNl
LCBjb2RlVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRpb25Nb2RlKSwg
Y29kZUJsb2NrKTsKKyAgICAgICAgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRCeXRlY29kZSh2
bSwgc291cmNlLCBjb2RlVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRp
b25Nb2RlKSwgY29kZUJsb2NrLCBmZCwgZXJyb3IpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCmluZGV4IGIwNjdmODQ3ZGFlMzAxY2VlZTcwNjU4YmU3
NjU5ZjhlN2QzYWIzNmMuLmUyMDcxZDM5ZGQ4NmNjOWUzN2U1YmZiN2I3Zjk1MzdkYjhlMTA3YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxOCw3
ICszMTgsNyBAQCByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2soVk0mIHZtLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyUwogfQogCiB2b2lkIHdyaXRlQ29kZUJs
b2NrKFZNJiwgY29uc3QgU291cmNlQ29kZUtleSYsIGNvbnN0IFNvdXJjZUNvZGVWYWx1ZSYpOwot
UmVmPENhY2hlZEJ5dGVjb2RlPiBzZXJpYWxpemVCeXRlY29kZShWTSYsIFVubGlua2VkQ29kZUJs
b2NrKiwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1v
ZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4pOwor
UmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBzZXJpYWxpemVCeXRlY29kZShWTSYsIFVubGlua2VkQ29k
ZUJsb2NrKiwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUNvZGVUeXBlLCBKU1BhcnNlclN0cmlj
dE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSwgaW50IGZkLCBCeXRlY29kZUNhY2hlRXJyb3ImLCBP
cHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPik7CiBTb3VyY2VDb2RlS2V5IHNvdXJjZUNvZGVL
ZXlGb3JTZXJpYWxpemVkUHJvZ3JhbShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmKTsKIFNvdXJjZUNv
ZGVLZXkgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRNb2R1bGUoVk0mLCBjb25zdCBTb3VyY2VD
b2RlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBs
ZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAK
aW5kZXggMTk3OTZhZjRmODlkMmU4ODFmYjdkNTc5NjAyYzA5NGY3ZTVmZWE2MS4uN2UyYWEzMDMx
OTI4NjExNjgzMzJlMGEyMmJiZGMwOWQzZjk2ZmVlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDb21wbGV0aW9uLmgiCiAKKyNpbmNsdWRlICJCeXRlY29kZUNh
Y2hlRXJyb3IuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDYXRjaFNjb3Bl
LmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCkBAIC05MSw3ICs5Miw3IEBAIGJvb2wgY2hlY2tN
b2R1bGVTeW50YXgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBh
cnNlckVycm9yJiBlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZjxDYWNoZWRCeXRlY29kZT4g
Z2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IFBhcnNlckVycm9yJiBlcnJvcikKK1JlZlB0cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVQcm9n
cmFtQnl0ZWNvZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGludCBmZCwgQnl0
ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgUkVMRUFTRV9BU1NFUlQodm0uYXRvbWljU3RyaW5nVGFibGUoKSA9PSBUaHJlYWQ6OmN1cnJl
bnQoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKQEAgLTEwMSwxMyArMTAyLDE3IEBAIFJlZjxDYWNo
ZWRCeXRlY29kZT4gZ2VuZXJhdGVQcm9ncmFtQnl0ZWNvZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UsIFBhCiAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUgPSBKU1Bh
cnNlclNjcmlwdE1vZGU6OkNsYXNzaWM7CiAgICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0
VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6Tm9uZTsKIAotICAgIFVubGlua2VkQ29kZUJsb2NrKiB1
bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxV
bmxpbmtlZFByb2dyYW1Db2RlQmxvY2s+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1v
ZGUsIHsgfSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgJnZhcmlhYmxlc1VuZGVyVERaKTsKKyAg
ICBQYXJzZXJFcnJvciBwYXJzZXJFcnJvcjsKKyAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5r
ZWRDb2RlQmxvY2sgPSByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7
IH0sIHBhcnNlckVycm9yLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclREWik7Cisg
ICAgaWYgKHBhcnNlckVycm9yLmlzVmFsaWQoKSkKKyAgICAgICAgZXJyb3IgPSBwYXJzZXJFcnJv
cjsKICAgICBpZiAoIXVubGlua2VkQ29kZUJsb2NrKQotICAgICAgICByZXR1cm4gQ2FjaGVkQnl0
ZWNvZGU6OmNyZWF0ZSgpOwotICAgIHJldHVybiBzZXJpYWxpemVCeXRlY29kZSh2bSwgdW5saW5r
ZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNlQ29kZVR5cGU6OlByb2dyYW1UeXBlLCBzdHJpY3RN
b2RlLCBzY3JpcHRNb2RlLCB7IH0pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiBzZXJpYWxpemVCeXRlY29kZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291
cmNlQ29kZVR5cGU6OlByb2dyYW1UeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBmZCwgZXJy
b3IsIHsgfSk7CiB9CiAKLVJlZjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29k
ZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3ImIGVycm9yKQor
UmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVsZUJ5dGVjb2RlKFZNJiB2bSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYgZXJyb3Ip
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0
b21pY1N0cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRvbWljU3RyaW5nVGFibGUo
KSk7CkBAIC0xMTcsMTAgKzEyMiwxMyBAQCBSZWY8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9k
dWxlQnl0ZWNvZGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcgogICAgIEpT
UGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpNb2R1bGU7
CiAgICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6
Tm9uZTsKIAotICAgIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vy
c2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2s+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIHsgfSwgZXJyb3IsIGV2
YWxDb250ZXh0VHlwZSwgJnZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICBQYXJzZXJFcnJvciBwYXJz
ZXJFcnJvcjsKKyAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSByZWN1
cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29k
ZUJsb2NrPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0sIHBhcnNlckVy
cm9yLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclREWik7CisgICAgaWYgKHBhcnNl
ckVycm9yLmlzVmFsaWQoKSkKKyAgICAgICAgZXJyb3IgPSBwYXJzZXJFcnJvcjsKICAgICBpZiAo
IXVubGlua2VkQ29kZUJsb2NrKQotICAgICAgICByZXR1cm4gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0
ZSgpOwotICAgIHJldHVybiBzZXJpYWxpemVCeXRlY29kZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ss
IHNvdXJjZSwgU291cmNlQ29kZVR5cGU6Ok1vZHVsZVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1v
ZGUsIHsgfSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzZXJpYWxpemVC
eXRlY29kZSh2bSwgdW5saW5rZWRDb2RlQmxvY2ssIHNvdXJjZSwgU291cmNlQ29kZVR5cGU6Ok1v
ZHVsZVR5cGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGZkLCBlcnJvciwgeyB9KTsKIH0KIAog
SlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIE5ha2VkUHRyPEV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4IGQ1
YTAyMzFiNzgwMTc1Yjg4NDIwZDZhZmY0YjNjMGE1MjRlZDE4NTEuLjhhOTdjMTcxMjI0MDYzMzRl
ZTJjZGEyZmIzYjQ5NWIyNDQzYWFlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21wbGV0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Ns
YXNzIEJ5dGVjb2RlQ2FjaGVFcnJvcjsKIGNsYXNzIENhY2hlZEJ5dGVjb2RlOwogY2xhc3MgRXhj
ZXB0aW9uOwogY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDIsOCArNDMsOCBAQCBKU19FWFBPUlRfUFJJ
VkFURSBib29sIGNoZWNrU3ludGF4KFZNJiwgY29uc3QgU291cmNlQ29kZSYsIFBhcnNlckVycm9y
Jik7CiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNoZWNrU3ludGF4KEV4ZWNTdGF0ZSosIGNvbnN0
IFNvdXJjZUNvZGUmLCBKU1ZhbHVlKiBleGNlcHRpb24gPSAwKTsKIEpTX0VYUE9SVF9QUklWQVRF
IGJvb2wgY2hlY2tNb2R1bGVTeW50YXgoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIFBh
cnNlckVycm9yJik7CiAKLUpTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29kZT4gZ2Vu
ZXJhdGVQcm9ncmFtQnl0ZWNvZGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgUGFyc2VyRXJyb3Im
KTsKLUpTX0VYUE9SVF9QUklWQVRFIFJlZjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVC
eXRlY29kZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOworSlNfRVhQT1JU
X1BSSVZBVEUgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZVByb2dyYW1CeXRlY29kZShW
TSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYpOworSlNf
RVhQT1JUX1BSSVZBVEUgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZU1vZHVsZUJ5dGVj
b2RlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGludCBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJik7
CiAKIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgY29uc3Qg
U291cmNlQ29kZSYsIEpTVmFsdWUgdGhpc1ZhbHVlLCBOYWtlZFB0cjxFeGNlcHRpb24+JiByZXR1
cm5lZEV4Y2VwdGlvbik7CiBpbmxpbmUgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIEpTVmFsdWUgdGhpc1ZhbHVlID0gSlNWYWx1
ZSgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>