<?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>233401</bug_id>
          
          <creation_ts>2021-11-20 15:19:21 -0800</creation_ts>
          <short_desc>Avoid allocating and copy memory from a SharedMemory into a SharedBuffer</short_desc>
          <delta_ts>2021-12-01 18:12:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233363</see_also>
          <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>
          <dependson>230329</dependson>
          <blocked>233030</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>beidson</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817147</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-11-20 15:19:21 -0800</bug_when>
    <thetext>In bug 230329 ; we added the possibility to wrap a SharedMemory into a SharedBuffer with the method SharedMemory::createSharedBuffer() : it avoid having to allocate memory and perform a new copy.

It also helps in decreasing the amount of memory allocated in the GPU Process (limited to 200MB) as the memory is counted by jetsam as being linked to the content process.

So rather than doing:

```
    auto buffer = SharedBuffer::create(static_cast&lt;unsigned char*&gt;(sharedMemoryBuffer-&gt;data()), bufferSize);
```

which will copy the SharedMemory into a vector inside the SharedBuffer we can do:
```
    auto buffer = sharedMemoryBuffer-&gt;createSharedBuffer(bufferSize);
```

and kill two birds with one store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817148</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-20 15:20:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/85637721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817179</commentid>
    <comment_count>2</comment_count>
      <attachid>444920</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-11-21 02:20:47 -0800</bug_when>
    <thetext>Created attachment 444920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817210</commentid>
    <comment_count>3</comment_count>
      <attachid>444932</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-11-21 14:09:45 -0800</bug_when>
    <thetext>Created attachment 444932
Patch

make ShareableResource use thread-safe refcount. Previously CFAllocatorContext’s would have always called the deallocator on the main thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819447</commentid>
    <comment_count>4</comment_count>
      <attachid>444932</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-12-01 15:52:18 -0800</bug_when>
    <thetext>Comment on attachment 444932
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        SharedMemory::createSharedBuffer instead.

Nit: using SharedMemory::createSharedBuffer instead of ...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819507</commentid>
    <comment_count>5</comment_count>
      <attachid>445643</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-12-01 17:24:49 -0800</bug_when>
    <thetext>Created attachment 445643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819522</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-01 18:12:46 -0800</bug_when>
    <thetext>Committed r286408 (244754@main): &lt;https://commits.webkit.org/244754@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445643.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444920</attachid>
            <date>2021-11-21 02:20:47 -0800</date>
            <delta_ts>2021-11-21 14:09:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233401-20211121212045.patch</filename>
            <type>text/plain</type>
            <size>11719</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwNmE3NDI5ZjVhNWVlYTNl
M2U0YTI0NDIyZmYxMGYwYWM1MDBhNmYuLjExNDM4Y2U1MGMxNTJlZTE3ZmVjYTU1YTJiODMwM2Nj
OTdhMjY4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMTEtMjEgIEplYW4tWXZl
cyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBhbGxvY2F0aW5nIGFu
ZCBjb3B5IG1lbW9yeSBmcm9tIGEgU2hhcmVkTWVtb3J5IGludG8gYSBTaGFyZWRCdWZmZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQwMQorICAg
ICAgICByZGFyOi8vODU2Mzc3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBjYW4gZGlyZWN0bHkgd3JhcCBhIFNoYXJlZE1lbW9yeSBpbnRvIGEg
U2hhcmVkQnVmZmVyIHVzaW5nCisgICAgICAgIFNoYXJlZE1lbW9yeTo6Y3JlYXRlU2hhcmVkQnVm
ZmVyIGluc3RlYWQuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZhYmxlIGJlaGF2aW91ciBv
dGhlciB0aGFuIHRvdGFsIG1lbW9yeSBzaXplIHJlZHVjdGlvbi4KKworICAgICAgICBGbHktYnkg
Zml4OiBjaGVjayBmb3IgbnVsbCB3aGVuIG1hcHBpbmcgYSBTaGFyZWRNZW1vcnkgdG8gYW4gSVBD
IGhhbmRsZQorICAgICAgICBpbiBhIGNvdXBsZSBvZiBzcG90cy4KKworICAgICAgICAqIFNoYXJl
ZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVJlc291
cmNlOjp3cmFwSW5TaGFyZWRCdWZmZXIpOiBSZWZhY3RvciBtZXRob2QsIHJlbW92aW5nCisgICAg
ICAgIHBsYXRmb20gc3BlY2lmaWMgY29kZSBhbmQgdXNpbmcgRGF0YVNlZ21lbnQ6OlByb3ZpZGVy
IGluc3RlYWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6Cisg
ICAgICAgIChJUEM6OmRlY29kZVNoYXJlZEJ1ZmZlcik6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0
ZWJvYXJkUHJveHk6OnNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzYXZlSW1hZ2VUb0xpYnJhcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rp
b25Gb3JQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9t
aXNlZERhdGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmJ1ZmZlckZvclR5cGUpOgorICAgICAgICBIYXJkZW5pbmcgY29kZSwgY2hlY2tp
bmcgZm9yIG51bGxhYmlsaXR5LgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgIEhhcmRlbmluZyBjb2RlLCBj
aGVja2luZyBmb3IgbnVsbGFiaWxpdHkuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlQXBwSGlnaGxpZ2h0
c0FuZFNjcm9sbFRvSW5kZXgpOgorCiAyMDIxLTExLTIwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gU2VuZCBXZWJHUFUgbWVzc2Fn
ZXMgaW4gdGhlIHdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
aGFyZWFibGVSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVSZXNv
dXJjZS5jcHAKaW5kZXggMGMwZjA4ZmJkZTU2YTlkNDJlYzlmOTZiYTM4ZmJlNTEyNTU2ZTE2NC4u
YzY5NjFjNzE0NDAyYmYzNzdhZTkxMGZiYjZjY2FhNTJkM2I4NDEyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcApAQCAtNTUsNDYgKzU1LDEyIEBAIGJvb2wg
U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
SGFuZGxlJiBoYW5kbGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBVU0UoQ0YpCi1zdGF0
aWMgdm9pZCBzaGFyZWFibGVSZXNvdXJjZURlYWxsb2NhdGUodm9pZCAqcHRyLCB2b2lkICppbmZv
KQotewotICAgIHN0YXRpY19jYXN0PFNoYXJlYWJsZVJlc291cmNlKj4oaW5mbyktPmRlcmVmKCk7
IC8vIEJhbGFuY2VkIGJ5IHJlZigpIGluIGNyZWF0ZVNoYXJlYWJsZVJlc291cmNlRGVhbGxvY2F0
b3IoKQotfQotICAgIAotc3RhdGljIFJldGFpblB0cjxDRkFsbG9jYXRvclJlZj4gY3JlYXRlU2hh
cmVhYmxlUmVzb3VyY2VEZWFsbG9jYXRvcihTaGFyZWFibGVSZXNvdXJjZSogcmVzb3VyY2UpCi17
Ci0gICAgQ0ZBbGxvY2F0b3JDb250ZXh0IGNvbnRleHQgPSB7IDAsCi0gICAgICAgIHJlc291cmNl
LAotICAgICAgICBOVUxMLCAvLyByZXRhaW4KLSAgICAgICAgTlVMTCwgLy8gcmVsZWFzZQotICAg
ICAgICBOVUxMLCAvLyBjb3B5RGVzY3JpcHRpb24KLSAgICAgICAgTlVMTCwgLy8gYWxsb2NhdGUK
LSAgICAgICAgTlVMTCwgLy8gcmVhbGxvY2F0ZQotICAgICAgICBzaGFyZWFibGVSZXNvdXJjZURl
YWxsb2NhdGUsCi0gICAgICAgIE5VTEwsIC8vIHByZWZlcnJlZFNpemUKLSAgICB9OwotCi0gICAg
cmV0dXJuIGFkb3B0Q0YoQ0ZBbGxvY2F0b3JDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNv
bnRleHQpKTsKLX0KLSNlbmRpZgotCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWFibGVSZXNv
dXJjZTo6d3JhcEluU2hhcmVkQnVmZmVyKCkKIHsKLSAgICByZWYoKTsgLy8gQmFsYW5jZWQgYnkg
ZGVyZWYgd2hlbiBTaGFyZWRCdWZmZXIgaXMgZGVhbGxvY2F0ZWQuCi0KLSNpZiBVU0UoQ0YpCi0g
ICAgYXV0byBkZWFsbG9jYXRvciA9IGNyZWF0ZVNoYXJlYWJsZVJlc291cmNlRGVhbGxvY2F0b3Io
dGhpcyk7Ci0gICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRlc05v
Q29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhKCksIHN0YXRpY19jYXN0PENGSW5kZXg+KHNp
emUoKSksIGRlYWxsb2NhdG9yLmdldCgpKSk7Ci0gICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGNmRGF0YS5nZXQoKSk7Ci0jZWxpZiBVU0UoR0xJQikKLSAgICBHUmVmUHRyPEdCeXRlcz4g
Ynl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9mcmVlX2Z1bmMoZGF0YSgpLCBzaXpl
KCksIFtdKHZvaWQqIGRhdGEpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8U2hhcmVhYmxlUmVzb3Vy
Y2UqPihkYXRhKS0+ZGVyZWYoKTsKLSAgICB9LCB0aGlzKSk7Ci0gICAgcmV0dXJuIFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGJ5dGVzLmdldCgpKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci0jZW5kaWYKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoU2hhcmVkQnVmZmVyOjpEYXRhU2VnbWVudDo6UHJvdmlkZXIgeworICAgICAgICBb
c2VsZiA9IFJlZiB7ICp0aGlzIH1dKCkgeyByZXR1cm4gc2VsZi0+ZGF0YSgpOyB9LAorICAgICAg
ICBbc2VsZiA9IFJlZiB7ICp0aGlzIH1dKCkgeyByZXR1cm4gc2VsZi0+c2l6ZSgpOyB9CisgICAg
fSk7CiB9CiAKIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGU6
OnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpIGNvbnN0CkBAIC0xMzgsOSArMTA0LDcgQEAgU2hhcmVh
YmxlUmVzb3VyY2U6OlNoYXJlYWJsZVJlc291cmNlKFJlZjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVk
TWVtb3J5LCB1bnNpZ25lZAogewogfQogCi1TaGFyZWFibGVSZXNvdXJjZTo6flNoYXJlYWJsZVJl
c291cmNlKCkKLXsKLX0KK1NoYXJlYWJsZVJlc291cmNlOjp+U2hhcmVhYmxlUmVzb3VyY2UoKSA9
IGRlZmF1bHQ7CiAKIGJvb2wgU2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0ZUhhbmRsZShIYW5kbGUm
IGhhbmRsZSkKIHsKQEAgLTE2Miw3ICsxMjYsNyBAQCB1bnNpZ25lZCBTaGFyZWFibGVSZXNvdXJj
ZTo6c2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2l6ZTsKIH0KLSAgICAKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
YzBiNmVmM2ZhM2EyZTEyMDRjNjc3ZWNmODZhZWNiZDE5YmI2NGQ3Yi4uNjQ5ODJiYzQ4MTAyYTRh
ZGIyMGE3ZTYwZTIxYmQ0OTJkNjUzMzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVNoYXJlZEJ1ZmZlcihEZWNvZGVyJiBkZWNvZGVyLCBS
ZWZQdHI8U2hhcmUKICAgICBpZiAoc2hhcmVkTWVtb3J5QnVmZmVyLT5zaXplKCkgPCBidWZmZXJT
aXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5k
YXRhKCkpLCBidWZmZXJTaXplKTsKKyAgICBidWZmZXIgPSBzaGFyZWRNZW1vcnlCdWZmZXItPmNy
ZWF0ZVNoYXJlZEJ1ZmZlcihidWZmZXJTaXplKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJk
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9h
cmRQcm94eUNvY29hLm1tCmluZGV4IDE3NDcwYzYyYzcyMGRkZTgyYjc5MTViN2IzYjU4MjAyM2Vi
NTFlYzcuLmJiZWY2NjczNTFhMGEyYmY1OGRmYWY1YTcyMTAwMDZhMzE4ZWFmNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94
eUNvY29hLm1tCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnNl
dFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAg
ICAgICAgYXV0byBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5k
bGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAg
aWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoMCk7Ci0gICAgICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIHN0
YXRpY19jYXN0PHNpemVfdD4oaXBjSGFuZGxlLmRhdGFTaXplKSk7CisgICAgICAgIGF1dG8gYnVm
ZmVyID0gc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRh
dGFTaXplKTsKICAgICAgICAgYXV0byBuZXdDaGFuZ2VDb3VudCA9IFBsYXRmb3JtUGFzdGVib2Fy
ZChwYXN0ZWJvYXJkTmFtZSkuc2V0QnVmZmVyRm9yVHlwZShidWZmZXIucHRyKCksIHBhc3RlYm9h
cmRUeXBlKTsKICAgICAgICAgZGlkTW9kaWZ5Q29udGVudHNPZlBhc3RlYm9hcmQoY29ubmVjdGlv
biwgcGFzdGVib2FyZE5hbWUsIHByZXZpb3VzQ2hhbmdlQ291bnQsIG5ld0NoYW5nZUNvdW50KTsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobmV3Q2hhbmdlQ291bnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggNDY3OWQ3YjA5ODFh
YTdkM2ZjZDliZGU5MGVkNmZmMmFjMjMyZWUxNS4uZjgwYzgyNDlkYTQ2N2I5NDIwMzVlNDYwNmU4
OTliY2I2NGVkYmM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCkBAIC01ODgsNyArNTg4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNhdmVJ
bWFnZVRvTGlicmFyeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaW1hZ2VIYW5kbGUK
ICAgICBpZiAoIXNoYXJlZE1lbW9yeUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
Kj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGltYWdl
SGFuZGxlLmRhdGFTaXplKSk7CisgICAgYXV0byBidWZmZXIgPSBzaGFyZWRNZW1vcnlCdWZmZXIt
PmNyZWF0ZVNoYXJlZEJ1ZmZlcihpbWFnZUhhbmRsZS5kYXRhU2l6ZSk7CiAgICAgcGFnZUNsaWVu
dCgpLnNhdmVJbWFnZVRvTGlicmFyeShXVEZNb3ZlKGJ1ZmZlcikpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA2ZDMzMzg2OWU0
ZTAwMTJkMjdkM2ZlODVkODVlNTNhNGVkOTY5NjBhLi5lMDNlMDgwYWVlMDgzODBiNDZmZmU4OWRk
OGU2MWI2NmI1OThkYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQ
YWdlUHJveHlNYWMubW0KQEAgLTI0MCw3ICsyNDAsNyBAQCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiBXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0IFN0
cgogICAgIGF1dG8gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFu
ZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgaWYg
KCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KHNoYXJl
ZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpKSwgaXBjSGFuZGxlLmRhdGFTaXplKTsKKyAgICByZXR1cm4g
c2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRhdGFTaXpl
KTsKIH0KIAogYm9vbCBXZWJQYWdlUHJveHk6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQpAQCAtMjc1LDE1ICsyNzUsMTQgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIGNvbnN0IFMKICAgICBhdXRvIHNoYXJlZE1lbW9yeUltYWdlID0gU2hhcmVkTWVt
b3J5OjptYXAoaW1hZ2VIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeUltYWdlKQogICAgICAgICByZXR1cm47Cisg
ICAgYXV0byBpbWFnZUJ1ZmZlciA9IHNoYXJlZE1lbW9yeUltYWdlLT5jcmVhdGVTaGFyZWRCdWZm
ZXIoaW1hZ2VIYW5kbGUuZGF0YVNpemUpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihzaGFyZWRNZW1vcnlJ
bWFnZS0+ZGF0YSgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbWFnZUhhbmRsZS5kYXRhU2l6ZSkp
OwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXI7Ci0KICAgICBpZiAoIWFy
Y2hpdmVIYW5kbGUuaGFuZGxlLmlzTnVsbCgpKSB7CiAgICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5
QXJjaGl2ZSA9IFNoYXJlZE1lbW9yeTo6bWFwKGFyY2hpdmVIYW5kbGUuaGFuZGxlLCBTaGFyZWRN
ZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAgaWYgKCFzaGFyZWRNZW1vcnlB
cmNoaXZlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcmNoaXZlQnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KHNoYXJlZE1lbW9y
eUFyY2hpdmUtPmRhdGEoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oYXJjaGl2ZUhhbmRsZS5kYXRh
U2l6ZSkpOworICAgICAgICBhcmNoaXZlQnVmZmVyID0gc2hhcmVkTWVtb3J5QXJjaGl2ZS0+Y3Jl
YXRlU2hhcmVkQnVmZmVyKGFyY2hpdmVIYW5kbGUuZGF0YVNpemUpOwogICAgIH0KICAgICBwYWdl
Q2xpZW50KCkuc2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIFdURk1vdmUo
aW1hZ2VCdWZmZXIpLCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVTdWdnZXN0ZWRGaWxl
bmFtZShmaWxlbmFtZSksIGV4dGVuc2lvbiwgdGl0bGUsIHVybCwgdmlzaWJsZVVSTCwgV1RGTW92
ZShhcmNoaXZlQnVmZmVyKSwgb3JpZ2luSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCmluZGV4IDVkMDVjMGVhYjc2YjYyYjRmODM2Yzg1ODIyMWZlYTQ0NzJl
MDU1NmUuLmY0MWE3MGVmNWJiNmMwZWNlOGJkODYyNzQxMTYwMWNmNzMwZTYyYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xNDUsNyArMTQ1LDkgQEAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpidWZmZXJGb3JUeXBl
KGNvbnN0IFN0cmluZyYKICAgICBpZiAoaXBjSGFuZGxlLmhhbmRsZS5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5
QnVmZmVyID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkp
LCBpcGNIYW5kbGUuZGF0YVNpemUpOworICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVh
dGVTaGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRhdGFTaXplKTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmdldFBhdGhuYW1lc0ZvclR5cGUoVmVjdG9yPFN0cmluZz4mIHBhdGhuYW1l
cywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgY29uc3QgUGFzdGVib2FyZENvbnRleHQqIGNvbnRleHQpCkBAIC00MTIsNyArNDE0LDkg
QEAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpy
ZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoc2kKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6
Om1hcChpcGNIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5
KTsKLSAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIGlwY0hhbmRsZS5kYXRhU2l6ZSk7
CisgICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZVNoYXJlZEJ1ZmZlcihpcGNIYW5k
bGUuZGF0YVNpemUpOwogfQogCiBVUkwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkVVJMRnJv
bVBhc3RlYm9hcmQoc2l6ZV90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBT
dHJpbmcmIHRpdGxlLCBjb25zdCBQYXN0ZWJvYXJkQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZGQ1OWNmYTcxMDZm
MDg0NDJlM2ZiMzk5M2IxYTg4MDg4MWY3YmEzNi4uOWI5YTk4NmMwYzk2YTgzYWNmNWI4MjllNzM2
MzkwNzE3NTVjNmJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTc3MzUsNyArNzczNSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9yZUFwcEhp
Z2hsaWdodHNBbmRTY3JvbGxUb0luZGV4KGNvbnN0IFZlY3RvcjxTaGFyZWRNZW1vcnk6OklQCiAg
ICAgICAgIGlmICghc2hhcmVkTWVtb3J5KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgZG9jdW1lbnQtPmFwcEhpZ2hsaWdodFN0b3JhZ2UoKS5yZXN0b3JlQW5kU2Nyb2xsVG9BcHBI
aWdobGlnaHQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHNoYXJlZE1lbW9yeS0+ZGF0YSgpKSwgaXBjSGFuZGxlLmRhdGFTaXplKSwgaSA9PSBpbmRleCA/
IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMgOiBTY3JvbGxUb0hpZ2hsaWdodDo6Tm8pOworICAgICAg
ICBkb2N1bWVudC0+YXBwSGlnaGxpZ2h0U3RvcmFnZSgpLnJlc3RvcmVBbmRTY3JvbGxUb0FwcEhp
Z2hsaWdodChzaGFyZWRNZW1vcnktPmNyZWF0ZVNoYXJlZEJ1ZmZlcihpcGNIYW5kbGUuZGF0YVNp
emUpLCBpID09IGluZGV4ID8gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcyA6IFNjcm9sbFRvSGlnaGxp
Z2h0OjpObyk7CiAgICAgICAgIGkrKzsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444932</attachid>
            <date>2021-11-21 14:09:45 -0800</date>
            <delta_ts>2021-12-01 17:24:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233401-20211122090943.patch</filename>
            <type>text/plain</type>
            <size>12758</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwNmE3NDI5ZjVhNWVlYTNl
M2U0YTI0NDIyZmYxMGYwYWM1MDBhNmYuLmZhODNhOWFkZjEwYmJmZTZlMzdjOWU5ZjA4ODUzMDRm
ZTU5N2JhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTEtMjEgIEplYW4tWXZl
cyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBhbGxvY2F0aW5nIGFu
ZCBjb3B5IG1lbW9yeSBmcm9tIGEgU2hhcmVkTWVtb3J5IGludG8gYSBTaGFyZWRCdWZmZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQwMQorICAg
ICAgICByZGFyOi8vODU2Mzc3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBjYW4gZGlyZWN0bHkgd3JhcCBhIFNoYXJlZE1lbW9yeSBpbnRvIGEg
U2hhcmVkQnVmZmVyIHVzaW5nCisgICAgICAgIFNoYXJlZE1lbW9yeTo6Y3JlYXRlU2hhcmVkQnVm
ZmVyIGluc3RlYWQuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZhYmxlIGJlaGF2aW91ciBv
dGhlciB0aGFuIHRvdGFsIG1lbW9yeSBzaXplIHJlZHVjdGlvbi4KKworICAgICAgICBGbHktYnkg
Zml4OiBjaGVjayBmb3IgbnVsbCB3aGVuIG1hcHBpbmcgYSBTaGFyZWRNZW1vcnkgdG8gYW4gSVBD
IGhhbmRsZQorICAgICAgICBpbiBhIGNvdXBsZSBvZiBzcG90cy4KKworICAgICAgICAqIFNoYXJl
ZC9TaGFyZWFibGVSZXNvdXJjZS5oOiBNYWtlIFNoYXJlYWJsZVJlc291cmNlIHVzZSB0aHJlYWQt
c2FmZSByZWZjb3VudC4KKyAgICAgICAgQSBTaGFyZWFibGVSZXNvdXJjZSBvbmNlIGNyZWF0ZWQg
aXMgaW1tdXRhYmxlIGFuZCB0aGUgU2hhcmVkTWVtb3J5IG9iamVjdAorICAgICAgICBpdHNlbGYg
aGFzIHRocmVhZC1zYWZlIHJlZm91bnRpbmcuIERlbGV0aW5nIHRoZSBvYmplY3Qgb3V0c2lkZSB0
aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgaXMgc2FmZS4KKyAgICAgICAgTWFrZSBtZW1iZXJzIGNv
bnN0LgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjp3cmFwSW5TaGFyZWRCdWZmZXIpOiBSZWZhY3RvciBt
ZXRob2QsIHJlbW92aW5nCisgICAgICAgIHBsYXRmb20gc3BlY2lmaWMgY29kZSBhbmQgdXNpbmcg
RGF0YVNlZ21lbnQ6OlByb3ZpZGVyIGluc3RlYWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OmRlY29kZVNoYXJlZEJ1ZmZlcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnNldFBhc3RlYm9hcmRCdWZmZXJGb3JU
eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzYXZlSW1hZ2VUb0xpYnJhcnkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZvclR5cGUpOgorICAgICAgICBI
YXJkZW5pbmcgY29kZSwgY2hlY2tpbmcgZm9yIG51bGxhYmlsaXR5LgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAg
ICAgIEhhcmRlbmluZyBjb2RlLCBjaGVja2luZyBmb3IgbnVsbGFiaWxpdHkuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpyZXN0b3JlQXBwSGlnaGxpZ2h0c0FuZFNjcm9sbFRvSW5kZXgpOgorCiAyMDIxLTExLTIwICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQ
VV0gU2VuZCBXZWJHUFUgbWVzc2FnZXMgaW4gdGhlIHdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAKaW5kZXggMGMwZjA4ZmJkZTU2YTlkNDJlYzlm
OTZiYTM4ZmJlNTEyNTU2ZTE2NC4uYzY5NjFjNzE0NDAyYmYzNzdhZTkxMGZiYjZjY2FhNTJkM2I4
NDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcApAQCAt
NTUsNDYgKzU1LDEyIEBAIGJvb2wgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZTo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLSNpZiBVU0UoQ0YpCi1zdGF0aWMgdm9pZCBzaGFyZWFibGVSZXNvdXJjZURlYWxsb2NhdGUo
dm9pZCAqcHRyLCB2b2lkICppbmZvKQotewotICAgIHN0YXRpY19jYXN0PFNoYXJlYWJsZVJlc291
cmNlKj4oaW5mbyktPmRlcmVmKCk7IC8vIEJhbGFuY2VkIGJ5IHJlZigpIGluIGNyZWF0ZVNoYXJl
YWJsZVJlc291cmNlRGVhbGxvY2F0b3IoKQotfQotICAgIAotc3RhdGljIFJldGFpblB0cjxDRkFs
bG9jYXRvclJlZj4gY3JlYXRlU2hhcmVhYmxlUmVzb3VyY2VEZWFsbG9jYXRvcihTaGFyZWFibGVS
ZXNvdXJjZSogcmVzb3VyY2UpCi17Ci0gICAgQ0ZBbGxvY2F0b3JDb250ZXh0IGNvbnRleHQgPSB7
IDAsCi0gICAgICAgIHJlc291cmNlLAotICAgICAgICBOVUxMLCAvLyByZXRhaW4KLSAgICAgICAg
TlVMTCwgLy8gcmVsZWFzZQotICAgICAgICBOVUxMLCAvLyBjb3B5RGVzY3JpcHRpb24KLSAgICAg
ICAgTlVMTCwgLy8gYWxsb2NhdGUKLSAgICAgICAgTlVMTCwgLy8gcmVhbGxvY2F0ZQotICAgICAg
ICBzaGFyZWFibGVSZXNvdXJjZURlYWxsb2NhdGUsCi0gICAgICAgIE5VTEwsIC8vIHByZWZlcnJl
ZFNpemUKLSAgICB9OwotCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ0ZBbGxvY2F0b3JDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJmNvbnRleHQpKTsKLX0KLSNlbmRpZgotCiBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBTaGFyZWFibGVSZXNvdXJjZTo6d3JhcEluU2hhcmVkQnVmZmVyKCkKIHsKLSAgICBy
ZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYgd2hlbiBTaGFyZWRCdWZmZXIgaXMgZGVhbGxvY2F0
ZWQuCi0KLSNpZiBVU0UoQ0YpCi0gICAgYXV0byBkZWFsbG9jYXRvciA9IGNyZWF0ZVNoYXJlYWJs
ZVJlc291cmNlRGVhbGxvY2F0b3IodGhpcyk7Ci0gICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENG
RGF0YUNyZWF0ZVdpdGhCeXRlc05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhKCksIHN0
YXRpY19jYXN0PENGSW5kZXg+KHNpemUoKSksIGRlYWxsb2NhdG9yLmdldCgpKSk7Ci0gICAgcmV0
dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNmRGF0YS5nZXQoKSk7Ci0jZWxpZiBVU0UoR0xJQikK
LSAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9m
cmVlX2Z1bmMoZGF0YSgpLCBzaXplKCksIFtdKHZvaWQqIGRhdGEpIHsKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8U2hhcmVhYmxlUmVzb3VyY2UqPihkYXRhKS0+ZGVyZWYoKTsKLSAgICB9LCB0aGlzKSk7
Ci0gICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGJ5dGVzLmdldCgpKTsKLSNlbHNlCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci0jZW5kaWYKKyAg
ICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoU2hhcmVkQnVmZmVyOjpEYXRhU2VnbWVudDo6
UHJvdmlkZXIgeworICAgICAgICBbc2VsZiA9IFJlZiB7ICp0aGlzIH1dKCkgeyByZXR1cm4gc2Vs
Zi0+ZGF0YSgpOyB9LAorICAgICAgICBbc2VsZiA9IFJlZiB7ICp0aGlzIH1dKCkgeyByZXR1cm4g
c2VsZi0+c2l6ZSgpOyB9CisgICAgfSk7CiB9CiAKIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJl
YWJsZVJlc291cmNlOjpIYW5kbGU6OnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpIGNvbnN0CkBAIC0x
MzgsOSArMTA0LDcgQEAgU2hhcmVhYmxlUmVzb3VyY2U6OlNoYXJlYWJsZVJlc291cmNlKFJlZjxT
aGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5LCB1bnNpZ25lZAogewogfQogCi1TaGFyZWFibGVS
ZXNvdXJjZTo6flNoYXJlYWJsZVJlc291cmNlKCkKLXsKLX0KK1NoYXJlYWJsZVJlc291cmNlOjp+
U2hhcmVhYmxlUmVzb3VyY2UoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgU2hhcmVhYmxlUmVzb3VyY2U6
OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSkKIHsKQEAgLTE2Miw3ICsxMjYsNyBAQCB1bnNp
Z25lZCBTaGFyZWFibGVSZXNvdXJjZTo6c2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2l6
ZTsKIH0KLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
U0hBUkVBQkxFX1JFU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hh
cmVhYmxlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNl
LmgKaW5kZXggN2I0N2Y1ZDY4NTFkOWRlMzJkMWMzYTU0NzA1MTYwYWE0ZjdjNmNiNy4uZGExZWVl
MGFkNjJjYjM0ODRjMWMzNDA1YzQ4NzBjZjBjNTFlMTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TaGFyZWFibGVSZXNvdXJjZS5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCi1jbGFzcyBTaGFyZWFibGVSZXNvdXJjZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlYWJsZVJlc291cmNlPiB7CitjbGFzcyBTaGFyZWFibGVS
ZXNvdXJjZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTaGFyZWFibGVSZXNvdXJjZT4g
ewogcHVibGljOgogCiAgICAgY2xhc3MgSGFuZGxlIHsKQEAgLTg0LDggKzg0LDggQEAgcHJpdmF0
ZToKIAogICAgIFJlZjxTaGFyZWRNZW1vcnk+IG1fc2hhcmVkTWVtb3J5OwogCi0gICAgdW5zaWdu
ZWQgbV9vZmZzZXQ7Ci0gICAgdW5zaWduZWQgbV9zaXplOyAgICAKKyAgICBjb25zdCB1bnNpZ25l
ZCBtX29mZnNldDsKKyAgICBjb25zdCB1bnNpZ25lZCBtX3NpemU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IGMwYjZlZjNmYTNhMmUxMjA0YzY3N2VjZjg2YWVjYmQxOWJiNjRkN2IuLjY0
OTgyYmM0ODEwMmE0YWRiMjBhN2U2MGUyMWJkNDkyZDY1MzM3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjM0LDcgKzIzNCw3IEBA
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVTaGFyZWRCdWZmZXIoRGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPFNoYXJlCiAgICAgaWYgKHNoYXJlZE1lbW9yeUJ1ZmZlci0+c2l6
ZSgpIDwgYnVmZmVyU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KHNoYXJlZE1l
bW9yeUJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyU2l6ZSk7CisgICAgYnVmZmVyID0gc2hhcmVkTWVt
b3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoYnVmZmVyU2l6ZSk7CiAjZW5kaWYKIAogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCAxNzQ3MGM2MmM3MjBkZGU4MmI3OTE1
YjdiM2I1ODIwMjNlYjUxZWM3Li5iYmVmNjY3MzUxYTBhMmJmNThkZmFmNWE3MjEwMDA2YTMxOGVh
ZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJv
YXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQgV2ViUGFzdGVi
b2FyZFByb3h5OjpzZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sCiAgICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5
OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25s
eSk7CiAgICAgICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQogICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKDApOwotICAgICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVy
LT5kYXRhKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGlwY0hhbmRsZS5kYXRhU2l6ZSkpOworICAg
ICAgICBhdXRvIGJ1ZmZlciA9IHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlU2hhcmVkQnVmZmVy
KGlwY0hhbmRsZS5kYXRhU2l6ZSk7CiAgICAgICAgIGF1dG8gbmV3Q2hhbmdlQ291bnQgPSBQbGF0
Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLnNldEJ1ZmZlckZvclR5cGUoYnVmZmVyLnB0
cigpLCBwYXN0ZWJvYXJkVHlwZSk7CiAgICAgICAgIGRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJv
YXJkKGNvbm5lY3Rpb24sIHBhc3RlYm9hcmROYW1lLCBwcmV2aW91c0NoYW5nZUNvdW50LCBuZXdD
aGFuZ2VDb3VudCk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0NoYW5nZUNvdW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4
IDQ2NzlkN2IwOTgxYWE3ZDNmY2Q5YmRlOTBlZDZmZjJhYzIzMmVlMTUuLmY4MGM4MjQ5ZGE0Njdi
OTQyMDM1ZTQ2MDZlODk5YmNiNjRlZGJjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTg4LDcgKzU4OCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzYXZlSW1hZ2VUb0xpYnJhcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUm
IGltYWdlSGFuZGxlCiAgICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8
dW5zaWduZWQgY2hhcio+KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpKSwgc3RhdGljX2Nhc3Q8
c2l6ZV90PihpbWFnZUhhbmRsZS5kYXRhU2l6ZSkpOworICAgIGF1dG8gYnVmZmVyID0gc2hhcmVk
TWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoaW1hZ2VIYW5kbGUuZGF0YVNpemUpOwog
ICAgIHBhZ2VDbGllbnQoKS5zYXZlSW1hZ2VUb0xpYnJhcnkoV1RGTW92ZShidWZmZXIpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5k
ZXggNmQzMzM4NjllNGUwMDEyZDI3ZDNmZTg1ZDg1ZTUzYTRlZDk2OTYwYS4uZTAzZTA4MGFlZTA4
MzgwYjQ2ZmZlODlkZDhlNjFiNjZiNTk4ZGI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0yNDAsNyArMjQwLDcgQEAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGFnZVByb3h5OjpkYXRhU2VsZWN0aW9uRm9yUGFzdGVi
b2FyZChjb25zdCBTdHIKICAgICBhdXRvIHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9y
eTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9u
bHkpOwogICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIGlwY0hhbmRsZS5kYXRhU2l6ZSk7
CisgICAgcmV0dXJuIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlU2hhcmVkQnVmZmVyKGlwY0hh
bmRsZS5kYXRhU2l6ZSk7CiB9CiAKIGJvb2wgV2ViUGFnZVByb3h5OjpyZWFkU2VsZWN0aW9uRnJv
bVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKQEAgLTI3NSwxNSArMjc1
LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTCiAgICAgYXV0byBzaGFyZWRNZW1vcnlJbWFn
ZSA9IFNoYXJlZE1lbW9yeTo6bWFwKGltYWdlSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgaWYgKCFzaGFyZWRNZW1vcnlJbWFnZSkKICAgICAg
ICAgcmV0dXJuOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBzaGFyZWRNZW1vcnlJbWFnZS0+Y3Jl
YXRlU2hhcmVkQnVmZmVyKGltYWdlSGFuZGxlLmRhdGFTaXplKTsKIAotICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4o
c2hhcmVkTWVtb3J5SW1hZ2UtPmRhdGEoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oaW1hZ2VIYW5k
bGUuZGF0YVNpemUpKTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBhcmNoaXZlQnVmZmVyOwot
CiAgICAgaWYgKCFhcmNoaXZlSGFuZGxlLmhhbmRsZS5pc051bGwoKSkgewogICAgICAgICBhdXRv
IHNoYXJlZE1lbW9yeUFyY2hpdmUgPSBTaGFyZWRNZW1vcnk6Om1hcChhcmNoaXZlSGFuZGxlLmhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgICAgIGlmICgh
c2hhcmVkTWVtb3J5QXJjaGl2ZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXJjaGl2
ZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIq
PihzaGFyZWRNZW1vcnlBcmNoaXZlLT5kYXRhKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGFyY2hp
dmVIYW5kbGUuZGF0YVNpemUpKTsKKyAgICAgICAgYXJjaGl2ZUJ1ZmZlciA9IHNoYXJlZE1lbW9y
eUFyY2hpdmUtPmNyZWF0ZVNoYXJlZEJ1ZmZlcihhcmNoaXZlSGFuZGxlLmRhdGFTaXplKTsKICAg
ICB9CiAgICAgcGFnZUNsaWVudCgpLnNldFByb21pc2VkRGF0YUZvckltYWdlKHBhc3RlYm9hcmRO
YW1lLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSwgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnNhbml0aXpl
U3VnZ2VzdGVkRmlsZW5hbWUoZmlsZW5hbWUpLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2li
bGVVUkwsIFdURk1vdmUoYXJjaGl2ZUJ1ZmZlciksIG9yaWdpbklkZW50aWZpZXIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA1ZDA1YzBlYWI3NmI2MmI0ZjgzNmM4
NTgyMjFmZWE0NDcyZTA1NTZlLi5mNDFhNzBlZjViYjZjMGVjZThiZDg2Mjc0MTE2MDFjZjczMGU2
MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMTQ1LDcgKzE0NSw5
IEBAIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
YnVmZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmCiAgICAgaWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIHJldHVybiBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KHNoYXJlZE1lbW9yeUJ1
ZmZlci0+ZGF0YSgpKSwgaXBjSGFuZGxlLmRhdGFTaXplKTsKKyAgICBpZiAoIXNoYXJlZE1lbW9y
eUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHNoYXJlZE1lbW9y
eUJ1ZmZlci0+Y3JlYXRlU2hhcmVkQnVmZmVyKGlwY0hhbmRsZS5kYXRhU2l6ZSk7CiB9CiAKIHZv
aWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQYXRobmFtZXNGb3JUeXBlKFZlY3RvcjxTdHJp
bmc+JiBwYXRobmFtZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFBhc3RlYm9hcmRDb250ZXh0KiBjb250ZXh0KQpAQCAt
NDEyLDcgKzQxNCw5IEBAIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6cmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKHNpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0g
U2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uOjpSZWFkT25seSk7Ci0gICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19j
YXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBpcGNIYW5k
bGUuZGF0YVNpemUpOworICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRC
dWZmZXIoaXBjSGFuZGxlLmRhdGFTaXplKTsKIH0KIAogVVJMIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6cmVhZFVSTEZyb21QYXN0ZWJvYXJkKHNpemVfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSwgU3RyaW5nJiB0aXRsZSwgY29uc3QgUGFzdGVib2FyZENvbnRleHQqIGNvbnRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGRkNTljZmE3MTA2ZjA4NDQyZTNmYjM5OTNiMWE4ODA4ODFmN2JhMzYuLjliOWE5ODZjMGM5NmE4
M2FjZjViODI5ZTczNjM5MDcxNzU1YzZiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03NzM1LDcgKzc3MzUsNyBAQCB2b2lkIFdlYlBhZ2U6
OnJlc3RvcmVBcHBIaWdobGlnaHRzQW5kU2Nyb2xsVG9JbmRleChjb25zdCBWZWN0b3I8U2hhcmVk
TWVtb3J5OjpJUAogICAgICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGRvY3VtZW50LT5hcHBIaWdobGlnaHRTdG9yYWdlKCkucmVzdG9yZUFu
ZFNjcm9sbFRvQXBwSGlnaGxpZ2h0KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QqPihzaGFyZWRNZW1vcnktPmRhdGEoKSksIGlwY0hhbmRsZS5kYXRhU2l6ZSks
IGkgPT0gaW5kZXggPyBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzIDogU2Nyb2xsVG9IaWdobGlnaHQ6
Ok5vKTsKKyAgICAgICAgZG9jdW1lbnQtPmFwcEhpZ2hsaWdodFN0b3JhZ2UoKS5yZXN0b3JlQW5k
U2Nyb2xsVG9BcHBIaWdobGlnaHQoc2hhcmVkTWVtb3J5LT5jcmVhdGVTaGFyZWRCdWZmZXIoaXBj
SGFuZGxlLmRhdGFTaXplKSwgaSA9PSBpbmRleCA/IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMgOiBT
Y3JvbGxUb0hpZ2hsaWdodDo6Tm8pOwogICAgICAgICBpKys7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445643</attachid>
            <date>2021-12-01 17:24:49 -0800</date>
            <delta_ts>2021-12-01 18:12:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233401-20211202122448.patch</filename>
            <type>text/plain</type>
            <size>12742</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQwNmQ0OTc0OTMyMTRmNjRm
MjIxYTQ0MjY2NzM1NmFiZTU0YjgwNWYuLjkwNmFlNTZjYjEwNjIyZmZmZThmZWNkYzdkZTcxZTAy
ZmE1ZjJlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTEtMjEgIEplYW4tWXZl
cyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBhbGxvY2F0aW5nIGFu
ZCBjb3B5IG1lbW9yeSBmcm9tIGEgU2hhcmVkTWVtb3J5IGludG8gYSBTaGFyZWRCdWZmZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQwMQorICAg
ICAgICByZGFyOi8vODU2Mzc3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgV2UgY2FuIGRpcmVjdGx5IHdyYXAgYSBTaGFyZWRNZW1vcnkgaW50byBhIFNo
YXJlZEJ1ZmZlciB1c2luZworICAgICAgICBTaGFyZWRNZW1vcnk6OmNyZWF0ZVNoYXJlZEJ1ZmZl
ciBpbnN0ZWFkLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2YWJsZSBiZWhhdmlvdXIgb3Ro
ZXIgdGhhbiB0b3RhbCBtZW1vcnkgc2l6ZSByZWR1Y3Rpb24uCisKKyAgICAgICAgRmx5LWJ5IGZp
eDogY2hlY2sgZm9yIG51bGwgd2hlbiBtYXBwaW5nIGEgU2hhcmVkTWVtb3J5IHRvIGFuIElQQyBo
YW5kbGUKKyAgICAgICAgaW4gYSBjb3VwbGUgb2Ygc3BvdHMuCisKKyAgICAgICAgKiBTaGFyZWQv
U2hhcmVhYmxlUmVzb3VyY2UuaDogTWFrZSBTaGFyZWFibGVSZXNvdXJjZSB1c2UgdGhyZWFkLXNh
ZmUgcmVmY291bnQuCisgICAgICAgIEEgU2hhcmVhYmxlUmVzb3VyY2Ugb25jZSBjcmVhdGVkIGlz
IGltbXV0YWJsZSBhbmQgdGhlIFNoYXJlZE1lbW9yeSBvYmplY3QKKyAgICAgICAgaXRzZWxmIGhh
cyB0aHJlYWQtc2FmZSByZWZvdW50aW5nLiBEZWxldGluZyB0aGUgb2JqZWN0IG91dHNpZGUgdGhl
IG1haW4gdGhyZWFkCisgICAgICAgIGlzIHNhZmUuCisgICAgICAgIE1ha2UgbWVtYmVycyBjb25z
dC4KKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6d3JhcEluU2hhcmVkQnVmZmVyKTogUmVmYWN0b3IgbWV0
aG9kLCB1c2luZyBEYXRhU2VnbWVudDo6UHJvdmlkZXIKKyAgICAgICAgaW5zdGVhZCBvZiBwbGF0
Zm9tIHNwZWNpZmljIGNvZGUuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHA6CisgICAgICAgIChJUEM6OmRlY29kZVNoYXJlZEJ1ZmZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzYXZlSW1hZ2VUb0xpYnJhcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRh
dGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZvclR5cGUpOgorICAgICAgICBIYXJkZW5pbmcgY29k
ZSwgY2hlY2tpbmcgZm9yIG51bGxhYmlsaXR5LgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgIEhhcmRlbmlu
ZyBjb2RlLCBjaGVja2luZyBmb3IgbnVsbGFiaWxpdHkuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlQXBw
SGlnaGxpZ2h0c0FuZFNjcm9sbFRvSW5kZXgpOgorCiAyMDIxLTExLTMwICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBFeHRlbnNpb25UYWJB
Y3RpdmF0aW9uIGRpYWdub3N0aWMgZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJs
ZVJlc291cmNlLmNwcAppbmRleCAwYzBmMDhmYmRlNTZhOWQ0MmVjOWY5NmJhMzhmYmU1MTI1NTZl
MTY0Li5jNjk2MWM3MTQ0MDJiZjM3N2FlOTEwZmJiNmNjYWE1MmQzYjg0MTI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCkBAIC01NSw0NiArNTUsMTIgQEAg
Ym9vbCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBIYW5kbGUmIGhhbmRsZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIFVTRShDRikK
LXN0YXRpYyB2b2lkIHNoYXJlYWJsZVJlc291cmNlRGVhbGxvY2F0ZSh2b2lkICpwdHIsIHZvaWQg
KmluZm8pCi17Ci0gICAgc3RhdGljX2Nhc3Q8U2hhcmVhYmxlUmVzb3VyY2UqPihpbmZvKS0+ZGVy
ZWYoKTsgLy8gQmFsYW5jZWQgYnkgcmVmKCkgaW4gY3JlYXRlU2hhcmVhYmxlUmVzb3VyY2VEZWFs
bG9jYXRvcigpCi19Ci0gICAgCi1zdGF0aWMgUmV0YWluUHRyPENGQWxsb2NhdG9yUmVmPiBjcmVh
dGVTaGFyZWFibGVSZXNvdXJjZURlYWxsb2NhdG9yKFNoYXJlYWJsZVJlc291cmNlKiByZXNvdXJj
ZSkKLXsKLSAgICBDRkFsbG9jYXRvckNvbnRleHQgY29udGV4dCA9IHsgMCwKLSAgICAgICAgcmVz
b3VyY2UsCi0gICAgICAgIE5VTEwsIC8vIHJldGFpbgotICAgICAgICBOVUxMLCAvLyByZWxlYXNl
Ci0gICAgICAgIE5VTEwsIC8vIGNvcHlEZXNjcmlwdGlvbgotICAgICAgICBOVUxMLCAvLyBhbGxv
Y2F0ZQotICAgICAgICBOVUxMLCAvLyByZWFsbG9jYXRlCi0gICAgICAgIHNoYXJlYWJsZVJlc291
cmNlRGVhbGxvY2F0ZSwKLSAgICAgICAgTlVMTCwgLy8gcHJlZmVycmVkU2l6ZQotICAgIH07Ci0K
LSAgICByZXR1cm4gYWRvcHRDRihDRkFsbG9jYXRvckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAmY29udGV4dCkpOwotfQotI2VuZGlmCi0KIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlYWJs
ZVJlc291cmNlOjp3cmFwSW5TaGFyZWRCdWZmZXIoKQogewotICAgIHJlZigpOyAvLyBCYWxhbmNl
ZCBieSBkZXJlZiB3aGVuIFNoYXJlZEJ1ZmZlciBpcyBkZWFsbG9jYXRlZC4KLQotI2lmIFVTRShD
RikKLSAgICBhdXRvIGRlYWxsb2NhdG9yID0gY3JlYXRlU2hhcmVhYmxlUmVzb3VyY2VEZWFsbG9j
YXRvcih0aGlzKTsKLSAgICBhdXRvIGNmRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlV2l0aEJ5
dGVzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGEoKSwgc3RhdGljX2Nhc3Q8Q0ZJbmRl
eD4oc2l6ZSgpKSwgZGVhbGxvY2F0b3IuZ2V0KCkpKTsKLSAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoY2ZEYXRhLmdldCgpKTsKLSNlbGlmIFVTRShHTElCKQotICAgIEdSZWZQdHI8R0J5
dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVzX25ld193aXRoX2ZyZWVfZnVuYyhkYXRhKCks
IHNpemUoKSwgW10odm9pZCogZGF0YSkgewotICAgICAgICBzdGF0aWNfY2FzdDxTaGFyZWFibGVS
ZXNvdXJjZSo+KGRhdGEpLT5kZXJlZigpOwotICAgIH0sIHRoaXMpKTsKLSAgICByZXR1cm4gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoYnl0ZXMuZ2V0KCkpOwotI2Vsc2UKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAgIHJldHVybiBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShTaGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50OjpQcm92aWRlciB7CisgICAg
ICAgIFtzZWxmID0gUmVmIHsgKnRoaXMgfV0oKSB7IHJldHVybiBzZWxmLT5kYXRhKCk7IH0sCisg
ICAgICAgIFtzZWxmID0gUmVmIHsgKnRoaXMgfV0oKSB7IHJldHVybiBzZWxmLT5zaXplKCk7IH0K
KyAgICB9KTsKIH0KIAogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVhYmxlUmVzb3VyY2U6Okhh
bmRsZTo6dHJ5V3JhcEluU2hhcmVkQnVmZmVyKCkgY29uc3QKQEAgLTEzOCw5ICsxMDQsNyBAQCBT
aGFyZWFibGVSZXNvdXJjZTo6U2hhcmVhYmxlUmVzb3VyY2UoUmVmPFNoYXJlZE1lbW9yeT4mJiBz
aGFyZWRNZW1vcnksIHVuc2lnbmVkCiB7CiB9CiAKLVNoYXJlYWJsZVJlc291cmNlOjp+U2hhcmVh
YmxlUmVzb3VyY2UoKQotewotfQorU2hhcmVhYmxlUmVzb3VyY2U6On5TaGFyZWFibGVSZXNvdXJj
ZSgpID0gZGVmYXVsdDsKIAogYm9vbCBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlSGFuZGxlKEhh
bmRsZSYgaGFuZGxlKQogewpAQCAtMTYyLDcgKzEyNiw3IEBAIHVuc2lnbmVkIFNoYXJlYWJsZVJl
c291cmNlOjpzaXplKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaXplOwogfQotICAgIAorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VS
Q0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaAppbmRleCA3YjQ3ZjVk
Njg1MWQ5ZGUzMmQxYzNhNTQ3MDUxNjBhYTRmN2M2Y2I3Li5kYTFlZWUwYWQ2MmNiMzQ4NGMxYzM0
MDVjNDg3MGNmMGM1MWUxNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFy
ZWFibGVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZVJlc291
cmNlLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKICAgICAKLWNsYXNzIFNoYXJlYWJsZVJlc291cmNlIDogcHVibGljIFJlZkNvdW50
ZWQ8U2hhcmVhYmxlUmVzb3VyY2U+IHsKK2NsYXNzIFNoYXJlYWJsZVJlc291cmNlIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFNoYXJlYWJsZVJlc291cmNlPiB7CiBwdWJsaWM6CiAKICAg
ICBjbGFzcyBIYW5kbGUgewpAQCAtODQsOCArODQsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFNo
YXJlZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7CiAKLSAgICB1bnNpZ25lZCBtX29mZnNldDsKLSAg
ICB1bnNpZ25lZCBtX3NpemU7ICAgIAorICAgIGNvbnN0IHVuc2lnbmVkIG1fb2Zmc2V0OworICAg
IGNvbnN0IHVuc2lnbmVkIG1fc2l6ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggYzBi
NmVmM2ZhM2EyZTEyMDRjNjc3ZWNmODZhZWNiZDE5YmI2NGQ3Yi4uNjQ5ODJiYzQ4MTAyYTRhZGIy
MGE3ZTYwZTIxYmQ0OTJkNjUzMzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZVNoYXJlZEJ1ZmZlcihEZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8U2hhcmUKICAgICBpZiAoc2hhcmVkTWVtb3J5QnVmZmVyLT5zaXplKCkgPCBidWZmZXJTaXpl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRh
KCkpLCBidWZmZXJTaXplKTsKKyAgICBidWZmZXIgPSBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0
ZVNoYXJlZEJ1ZmZlcihidWZmZXJTaXplKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQ
cm94eUNvY29hLm1tCmluZGV4IDE3NDcwYzYyYzcyMGRkZTgyYjc5MTViN2IzYjU4MjAyM2ViNTFl
YzcuLmJiZWY2NjczNTFhMGEyYmY1OGRmYWY1YTcyMTAwMDZhMzE4ZWFmNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNv
Y29hLm1tCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnNldFBh
c3RlYm9hcmRCdWZmZXJGb3JUeXBlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICAg
ICAgYXV0byBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUu
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAgaWYg
KCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoMCk7Ci0gICAgICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIHN0YXRp
Y19jYXN0PHNpemVfdD4oaXBjSGFuZGxlLmRhdGFTaXplKSk7CisgICAgICAgIGF1dG8gYnVmZmVy
ID0gc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRhdGFT
aXplKTsKICAgICAgICAgYXV0byBuZXdDaGFuZ2VDb3VudCA9IFBsYXRmb3JtUGFzdGVib2FyZChw
YXN0ZWJvYXJkTmFtZSkuc2V0QnVmZmVyRm9yVHlwZShidWZmZXIucHRyKCksIHBhc3RlYm9hcmRU
eXBlKTsKICAgICAgICAgZGlkTW9kaWZ5Q29udGVudHNPZlBhc3RlYm9hcmQoY29ubmVjdGlvbiwg
cGFzdGVib2FyZE5hbWUsIHByZXZpb3VzQ2hhbmdlQ291bnQsIG5ld0NoYW5nZUNvdW50KTsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobmV3Q2hhbmdlQ291bnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggNDY3OWQ3YjA5ODFhYTdk
M2ZjZDliZGU5MGVkNmZmMmFjMjMyZWUxNS4uZjgwYzgyNDlkYTQ2N2I5NDIwMzVlNDYwNmU4OTli
Y2I2NGVkYmM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCkBAIC01ODgsNyArNTg4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNhdmVJbWFn
ZVRvTGlicmFyeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaW1hZ2VIYW5kbGUKICAg
ICBpZiAoIXNoYXJlZE1lbW9yeUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBi
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4o
c2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGltYWdlSGFu
ZGxlLmRhdGFTaXplKSk7CisgICAgYXV0byBidWZmZXIgPSBzaGFyZWRNZW1vcnlCdWZmZXItPmNy
ZWF0ZVNoYXJlZEJ1ZmZlcihpbWFnZUhhbmRsZS5kYXRhU2l6ZSk7CiAgICAgcGFnZUNsaWVudCgp
LnNhdmVJbWFnZVRvTGlicmFyeShXVEZNb3ZlKGJ1ZmZlcikpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA2ZDMzMzg2OWU0ZTAw
MTJkMjdkM2ZlODVkODVlNTNhNGVkOTY5NjBhLi5lMDNlMDgwYWVlMDgzODBiNDZmZmU4OWRkOGU2
MWI2NmI1OThkYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0KQEAgLTI0MCw3ICsyNDAsNyBAQCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiBXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0IFN0cgog
ICAgIGF1dG8gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxl
LmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgaWYgKCFz
aGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KHNoYXJlZE1l
bW9yeUJ1ZmZlci0+ZGF0YSgpKSwgaXBjSGFuZGxlLmRhdGFTaXplKTsKKyAgICByZXR1cm4gc2hh
cmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVTaGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRhdGFTaXplKTsK
IH0KIAogYm9vbCBXZWJQYWdlUHJveHk6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQpAQCAtMjc1LDE1ICsyNzUsMTQgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUsIGNvbnN0IFMKICAgICBhdXRvIHNoYXJlZE1lbW9yeUltYWdlID0gU2hhcmVkTWVtb3J5
OjptYXAoaW1hZ2VIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeUltYWdlKQogICAgICAgICByZXR1cm47CisgICAg
YXV0byBpbWFnZUJ1ZmZlciA9IHNoYXJlZE1lbW9yeUltYWdlLT5jcmVhdGVTaGFyZWRCdWZmZXIo
aW1hZ2VIYW5kbGUuZGF0YVNpemUpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihzaGFyZWRNZW1vcnlJbWFn
ZS0+ZGF0YSgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbWFnZUhhbmRsZS5kYXRhU2l6ZSkpOwog
ICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXI7Ci0KICAgICBpZiAoIWFyY2hp
dmVIYW5kbGUuaGFuZGxlLmlzTnVsbCgpKSB7CiAgICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5QXJj
aGl2ZSA9IFNoYXJlZE1lbW9yeTo6bWFwKGFyY2hpdmVIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAgaWYgKCFzaGFyZWRNZW1vcnlBcmNo
aXZlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcmNoaXZlQnVmZmVyID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KHNoYXJlZE1lbW9yeUFy
Y2hpdmUtPmRhdGEoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oYXJjaGl2ZUhhbmRsZS5kYXRhU2l6
ZSkpOworICAgICAgICBhcmNoaXZlQnVmZmVyID0gc2hhcmVkTWVtb3J5QXJjaGl2ZS0+Y3JlYXRl
U2hhcmVkQnVmZmVyKGFyY2hpdmVIYW5kbGUuZGF0YVNpemUpOwogICAgIH0KICAgICBwYWdlQ2xp
ZW50KCkuc2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIFdURk1vdmUoaW1h
Z2VCdWZmZXIpLCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVTdWdnZXN0ZWRGaWxlbmFt
ZShmaWxlbmFtZSksIGV4dGVuc2lvbiwgdGl0bGUsIHVybCwgdmlzaWJsZVVSTCwgV1RGTW92ZShh
cmNoaXZlQnVmZmVyKSwgb3JpZ2luSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCmluZGV4IDVkMDVjMGVhYjc2YjYyYjRmODM2Yzg1ODIyMWZlYTQ0NzJlMDU1
NmUuLmY0MWE3MGVmNWJiNmMwZWNlOGJkODYyNzQxMTYwMWNmNzMwZTYyYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xNDUsNyArMTQ1LDkgQEAgUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpidWZmZXJGb3JUeXBlKGNv
bnN0IFN0cmluZyYKICAgICBpZiAoaXBjSGFuZGxlLmhhbmRsZS5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVm
ZmVyID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBp
cGNIYW5kbGUuZGF0YVNpemUpOworICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVT
aGFyZWRCdWZmZXIoaXBjSGFuZGxlLmRhdGFTaXplKTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmdldFBhdGhuYW1lc0ZvclR5cGUoVmVjdG9yPFN0cmluZz4mIHBhdGhuYW1lcywg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgY29uc3QgUGFzdGVib2FyZENvbnRleHQqIGNvbnRleHQpCkBAIC00MTIsNyArNDE0LDkgQEAg
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
QnVmZmVyRnJvbVBhc3RlYm9hcmQoc2kKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6Om1h
cChpcGNIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsK
LSAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hh
ciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIGlwY0hhbmRsZS5kYXRhU2l6ZSk7Cisg
ICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZVNoYXJlZEJ1ZmZlcihpcGNIYW5kbGUu
ZGF0YVNpemUpOwogfQogCiBVUkwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkVVJMRnJvbVBh
c3RlYm9hcmQoc2l6ZV90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBQYXN0ZWJvYXJkQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNzdmODRkY2U3ZmFhYTQ5
MmFhNTVmZWEwMjViYjYwNmUwZmQwNmM1YS4uMTBiNGFhNDQwMmY4ZTE1MGFhZGQ2ZjJiYTRjNDA3
YWI0NThmYjA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTc3MzgsNyArNzczOCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9yZUFwcEhpZ2hs
aWdodHNBbmRTY3JvbGxUb0luZGV4KGNvbnN0IFZlY3RvcjxTaGFyZWRNZW1vcnk6OklQCiAgICAg
ICAgIGlmICghc2hhcmVkTWVtb3J5KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
ZG9jdW1lbnQtPmFwcEhpZ2hsaWdodFN0b3JhZ2UoKS5yZXN0b3JlQW5kU2Nyb2xsVG9BcHBIaWdo
bGlnaHQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNo
YXJlZE1lbW9yeS0+ZGF0YSgpKSwgaXBjSGFuZGxlLmRhdGFTaXplKSwgaSA9PSBpbmRleCA/IFNj
cm9sbFRvSGlnaGxpZ2h0OjpZZXMgOiBTY3JvbGxUb0hpZ2hsaWdodDo6Tm8pOworICAgICAgICBk
b2N1bWVudC0+YXBwSGlnaGxpZ2h0U3RvcmFnZSgpLnJlc3RvcmVBbmRTY3JvbGxUb0FwcEhpZ2hs
aWdodChzaGFyZWRNZW1vcnktPmNyZWF0ZVNoYXJlZEJ1ZmZlcihpcGNIYW5kbGUuZGF0YVNpemUp
LCBpID09IGluZGV4ID8gU2Nyb2xsVG9IaWdobGlnaHQ6OlllcyA6IFNjcm9sbFRvSGlnaGxpZ2h0
OjpObyk7CiAgICAgICAgIGkrKzsKICAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>