<?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>181391</bug_id>
          
          <creation_ts>2018-01-08 10:02:44 -0800</creation_ts>
          <short_desc>When decoding thread fails to generate a new NativeImage, the main thread has to remove the ImageFrameRequest from commit queue</short_desc>
          <delta_ts>2020-05-30 19:58:00 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=171614</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</cc>
    
    <cc>tobias.netzel</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1386779</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-08 10:02:44 -0800</bug_when>
    <thetext>This is a follow up for &lt;http://trac.webkit.org/changeset/216998&gt;. See the comment https://bugs.webkit.org/show_bug.cgi?id=171614#c20.

ImageSource keeps two queues of ImageFrameRequest. The first one, &apos;m_frameRequestQueue&quot;, is shared between the main thread and the decoding thread. The second one, &apos;m_frameCommitQueue&apos;, is only accessible by the main thread. The m_frameCommitQueue is used to keep track of the pending requests. An item is removed only when the main thread caches it. It is also used to tell whether the decoding thread is busy or not without having to have another synchronized object.

If the decoding thread fails to generate the NativeImage. We should be doing the following:

-- The ImageFrameRequest should be removed from m_frameCommitQueue.
-- The Image object should be notified the decoding was finished (even it failed).
-- The HTMLImageElement::decode() promise should be rejected.
-- BitmapImage::draw() should fall back to synchronous decoding mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386900</commentid>
    <comment_count>1</comment_count>
      <attachid>330733</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-08 13:57:12 -0800</bug_when>
    <thetext>Created attachment 330733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657720</commentid>
    <comment_count>2</comment_count>
      <attachid>330733</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-05-30 19:58:00 -0700</bug_when>
    <thetext>Comment on attachment 330733
Patch

Unfortunately, this old patch fails to apply.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330733</attachid>
            <date>2018-01-08 13:57:12 -0800</date>
            <delta_ts>2020-05-30 19:58:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181391-20180108135712.patch</filename>
            <type>text/plain</type>
            <size>18359</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjUzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDE4LTAxLTA4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgV2hlbiBkZWNv
ZGluZyB0aHJlYWQgZmFpbHMgdG8gZ2VuZXJhdGUgYSBuZXcgTmF0aXZlSW1hZ2UsIHRoZSBtYWlu
IHRocmVhZCBoYXMgdG8gcmVtb3ZlIHRoZSBJbWFnZUZyYW1lUmVxdWVzdCBmcm9tIGNvbW1pdCBx
dWV1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgx
MzkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5z
dXJlIEJpdG1hcEltYWdlOjpkcmF3KCkgYW5kIGRlY29kZSgpIGhhbmRsZXMgc2FmZWx5IHRoZSBj
YXNlIHdoZW4gYQorICAgICAgICBkZWNvZGluZyBmcmFtZSBmYWlscyBmb3IgYW55IGludGVybmFs
IHJlYXNvbi4gCisKKyAgICAgICAgLS0gVGhlIGltYWdlIHJlbmRlcmVyIHNob3VsZCBiZSByZXBh
aW50ZWQgYnV0IEJpdG1hcEltYWdlOjpkcmF3KCkgc2hvdWxkCisgICAgICAgIHVzZSB0aGUgc3lu
Y2hyb25vdXMgY29kZSBwYXRoLgorCisgICAgICAgIC0tIEhUTUxJbWFnZUVsZW1lbnQ6OmRlY29k
ZSgpIHNob3VsZCByZWplY3QgdGhlIGRlY29kaW5nIHByb21pc2UuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9pbWFnZXMvZGVjb2RlLXN0YXRpYy1pbWFnZS1kZWNvZGluZy1lcnJvci5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VM
b2FkZXI6OmRlY29kZSk6IEVuc3VyZSB0aGUgZGVjb2RlKCkgY2FsbGJhY2sgcmVqZWN0cyB0aGUK
KyAgICAgICAgZGVjb2RpbmcgcHJvbWlzZSBpZiBkZWNvZGluZyB0aGUgY3VycmVudCBmcmFtZSBm
YWlscy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6c2V0Q3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXNJ
Zk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6IEZhbGwg
YmFjayB0byB0aGUgc3luY2hyb25vdXMgZGVjb2RpbmcgY29kZQorICAgICAgICBwYXRoIGlmIHdl
IGVuY291bnRlciBhIGRlY29kaW5nIGVycm9yLiBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVz
IHdpbGwKKyAgICAgICAgYmUgY2xlYXJlZCBpZiBuZXcgZGF0YSBhcnJpdmVkLgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZTo6Y2FsbERlY29kaW5nQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjppbWFnZUZyYW1lQXZhaWxhYmxlQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6ZGVjb2RlQ291bnRGb3JUZXN0aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVNvdXJjZTo6Y2FjaGVOYXRpdmVJbWFnZUF0SW5kZXgpOgorICAgICAgICBtX2FzeW5j
RGVjb2RpbmdGYWlsdXJlRm9yY2VkRm9yVGVzdGluZyA9IHRydWUgd2lsbCBiZSB0cmVhdGVkIGFz
IGlmIHRoZQorICAgICAgICBkZWNvZGluZyBmYWlscyBhbmQgdGhlIE5hdGl2ZUltYWdlIHdhcyBu
b3QgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzdGFydEFzeW5jRGVj
b2RpbmdRdWV1ZSk6CisgICAgICAgIEEgbnVsbCBOYXRpdmVJbWFnZSBzaG91bGQgYmUgcGFzc2Vk
IGFsbCB0aGUgd2F5IHRvIHRoZSBpbml0aWF0b3IuIFdlIG5lZWQKKyAgICAgICAgdG8gY2xlYW51
cCB0aGUgSW1hZ2VTb3VyY2UgY29tbWl0IHF1ZXVlIGFuZCB3ZSBuZWVkIHRvIHJlc29sdmUgdGhl
IGRlY29kaW5nCisgICAgICAgIHByb21pc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzZXRBc3luY0Rl
Y29kaW5nRmFpbHVyZUZvcmNlZEZvclRlc3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlVHlwZXMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEltYWdlQXN5bmNEZWNvZGluZ0ZhaWx1cmVGb3Jj
ZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgVGhlIGludGVybmFsIG1fYXN5bmNEZWNv
ZGluZ0ZhaWx1cmVGb3JjZWRGb3JUZXN0aW5nIHdpbGwgYmUgdXNlZCB0byBmYWtlCisgICAgICAg
IGFuIGltYWdlIGRlY29kaW5nIGZhaWx1cmUuCisKIDIwMTgtMDEtMDggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBDU1Agc3VwcG9ydCB0byBzZXJ2aWNl
IHdvcmtlcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAkocmV2aXNp
b24gMjI2MzMyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIzLDkgKzQyMywxMyBAQCB2b2lkIEltYWdlTG9hZGVyOjpkZWNvZGUo
KQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGltYWdlLT5kZWNvZGUoW3Byb21p
c2VzID0gV1RGTW92ZShtX2RlY29kaW5nUHJvbWlzZXMpXSgpIG11dGFibGUgewotICAgICAgICBm
b3IgKGF1dG8mIHByb21pc2UgOiBwcm9taXNlcykKLSAgICAgICAgICAgIHByb21pc2UtPnJlc29s
dmUoKTsKKyAgICBpbWFnZS0+ZGVjb2RlKFtwcm9taXNlcyA9IFdURk1vdmUobV9kZWNvZGluZ1By
b21pc2VzKV0oRGVjb2RpbmdTdGF0dXMgZGVjb2RpbmdTdGF0dXMpIG11dGFibGUgeworICAgICAg
ICBmb3IgKGF1dG8mIHByb21pc2UgOiBwcm9taXNlcykgeworICAgICAgICAgICAgaWYgKGRlY29k
aW5nU3RhdHVzICE9IERlY29kaW5nU3RhdHVzOjpFcnJvcikKKyAgICAgICAgICAgICAgICBwcm9t
aXNlLT5yZXNvbHZlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEVuY29kaW5nRXJyb3IsICJJbnRlcm5hbCBFcnJvci4iIH0p
OworICAgICAgICB9CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDIyNjMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI0LDcgKzEyNCwxMyBAQCB2b2lkIEJpdG1hcEltYWdlOjpzZXRDdXJyZW50RnJh
bWVEZWNvZGluCiAgICAgLy8gY2hhbmdlZCBpbiB0aGlzIGNhc2UgdGlsbCBkcmF3KCkgaXMgY2Fs
bGVkIGFuZCBzZXRzIGl0cyB2YWx1ZSB0byBEZWNvZGluZ1N0YXR1czo6RGVjb2RpbmcuCiAgICAg
aWYgKG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgIT0gRGVjb2RpbmdTdGF0dXM6OkRlY29k
aW5nKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9
IGRlY29kaW5nU3RhdHVzOworCisgICAgLy8gc2V0Q3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXNJ
Zk5lY2Vzc2FyeSgpIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggSW52YWxpZCBkZWNvZGluZyBz
dGF0dXMKKyAgICAvLyB1bmxlc3MgYW4gaW50ZXJuYWwgZXJyb3IgaGFwcGVucyBzdWNoIHRoYXQg
bm8gZGVjb2RlZCBOYXRpdmVJbWFnZSBpcyBjcmVhdGVkLgorICAgIGlmIChkZWNvZGluZ1N0YXR1
cyA9PSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCkKKyAgICAgICAgbV9jdXJyZW50RnJhbWVEZWNv
ZGluZ1N0YXR1cyA9IERlY29kaW5nU3RhdHVzOjpFcnJvcjsKKyAgICBlbHNlCisgICAgICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBkZWNvZGluZ1N0YXR1czsKIH0KIAogTmF0aXZl
SW1hZ2VQdHIgQml0bWFwSW1hZ2U6OmZyYW1lSW1hZ2VBdEluZGV4Q2FjaGVJZk5lZWRlZChzaXpl
X3QgaW5kZXgsIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgR3JhcGhp
Y3NDb250ZXh0KiB0YXJnZXRDb250ZXh0KQpAQCAtMjAwLDcgKzIwNiw3IEBAIEltYWdlRHJhd1Jl
c3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGkKICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1h
Z2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtzdWJzYW1wbGluZ0xldmVsID0gJWQgc2NhbGVGYWN0b3JG
b3JEcmF3aW5nID0gKCUuNGYsICUuNGYpXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJM
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2N1cnJlbnRTdWJz
YW1wbGluZ0xldmVsKSwgc2NhbGVGYWN0b3JGb3JEcmF3aW5nLndpZHRoKCksIHNjYWxlRmFjdG9y
Rm9yRHJhd2luZy5oZWlnaHQoKSk7CiAKICAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZTsKLSAgICBp
ZiAoZGVjb2RpbmdNb2RlID09IERlY29kaW5nTW9kZTo6QXN5bmNocm9ub3VzKSB7CisgICAgaWYg
KGRlY29kaW5nTW9kZSA9PSBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91cyAmJiBtX2N1cnJlbnRG
cmFtZURlY29kaW5nU3RhdHVzICE9IERlY29kaW5nU3RhdHVzOjpFcnJvcikgewogICAgICAgICBB
U1NFUlQoIWNhbkFuaW1hdGUoKSk7CiAgICAgICAgIEFTU0VSVCghbV9jdXJyZW50RnJhbWUgfHwg
bV9hbmltYXRpb25GaW5pc2hlZCk7CiAKQEAgLTUyNiwxMCArNTMyLDEwIEBAIHZvaWQgQml0bWFw
SW1hZ2U6OnJlc2V0QW5pbWF0aW9uKCkKICAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2Fy
eSh0cnVlKTsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZGVjb2RlKFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGNhbGxiYWNrKQordm9pZCBCaXRtYXBJbWFnZTo6ZGVjb2RlKFdURjo6RnVuY3Rpb248
dm9pZChEZWNvZGluZ1N0YXR1cyk+JiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX2RlY29kaW5n
Q2FsbGJhY2tzKQotICAgICAgICBtX2RlY29kaW5nQ2FsbGJhY2tzID0gc3RkOjptYWtlX3VuaXF1
ZTxWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiwgMT4+KCk7CisgICAgICAgIG1fZGVjb2RpbmdDYWxs
YmFja3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxGdW5jdGlvbjx2b2lkKERlY29kaW5nU3Rh
dHVzKT4sIDE+PigpOwogCiAgICAgbV9kZWNvZGluZ0NhbGxiYWNrcy0+YXBwZW5kKFdURk1vdmUo
Y2FsbGJhY2spKTsKIApAQCAtNTU1LDkgKzU2MSwxMCBAQCB2b2lkIEJpdG1hcEltYWdlOjpkZWNv
ZGUoV1RGOjpGdW5jdGlvbjx2CiAgICAgYm9vbCBmcmFtZUlzQ29tcGF0aWJsZSA9IGZyYW1lSGFz
RGVjb2RlZE5hdGl2ZUltYWdlQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRleChtX2N1cnJlbnRG
cmFtZSwgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCwgc3RkOjpvcHRpb25hbDxJbnRTaXplPigp
KTsKICAgICBib29sIGZyYW1lSXNCZWluZ0RlY29kZWQgPSBmcmFtZUlzQmVpbmdEZWNvZGVkQW5k
SXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KG1fY3VycmVudEZyYW1lLCBzdGQ6Om9wdGlv
bmFsPEludFNpemU+KCkpOwogICAgIAotICAgIGlmIChmcmFtZUlzQ29tcGF0aWJsZSkKKyAgICBp
ZiAoZnJhbWVJc0NvbXBhdGlibGUpIHsKKyAgICAgICAgQVNTRVJUKG1fY3VycmVudEZyYW1lRGVj
b2RpbmdTdGF0dXMgIT0gRGVjb2RpbmdTdGF0dXM6OkVycm9yICYmIG1fY3VycmVudEZyYW1lRGVj
b2RpbmdTdGF0dXMgIT0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpOwogICAgICAgICBjYWxsRGVj
b2RpbmdDYWxsYmFja3MoKTsKLSAgICBlbHNlIGlmICghZnJhbWVJc0JlaW5nRGVjb2RlZCkgewor
ICAgIH0gZWxzZSBpZiAoIWZyYW1lSXNCZWluZ0RlY29kZWQpIHsKICAgICAgICAgbV9zb3VyY2Ut
PnJlcXVlc3RGcmFtZUFzeW5jRGVjb2RpbmdBdEluZGV4KG1fY3VycmVudEZyYW1lLCBtX2N1cnJl
bnRTdWJzYW1wbGluZ0xldmVsLCBzdGQ6Om9wdGlvbmFsPEludFNpemU+KCkpOwogICAgICAgICBt
X2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6OkRlY29kaW5nOwog
ICAgIH0KQEAgLTU2OCw3ICs1NzUsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjYWxsRGVjb2RpbmdD
YWxsYmFja3MoCiAgICAgaWYgKCFtX2RlY29kaW5nQ2FsbGJhY2tzKQogICAgICAgICByZXR1cm47
CiAgICAgZm9yIChhdXRvJiBkZWNvZGluZ0NhbGxiYWNrIDogKm1fZGVjb2RpbmdDYWxsYmFja3Mp
Ci0gICAgICAgIGRlY29kaW5nQ2FsbGJhY2soKTsKKyAgICAgICAgZGVjb2RpbmdDYWxsYmFjayht
X2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzKTsKICAgICBtX2RlY29kaW5nQ2FsbGJhY2tzID0g
bnVsbHB0cjsKIH0KIApAQCAtNjAzLDE5ICs2MTAsMTQgQEAgdm9pZCBCaXRtYXBJbWFnZTo6aW1h
Z2VGcmFtZUF2YWlsYWJsZUF0SQogICAgIGlmIChtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVz
ID09IERlY29kaW5nU3RhdHVzOjpDb21wbGV0ZSkKICAgICAgICAgKyttX2RlY29kZUNvdW50Rm9y
VGVzdGluZzsKIAotICAgIC8vIENhbGwgbV9kZWNvZGluZ0NhbGxiYWNrcyBvbmx5IGlmIHRoZSBp
bWFnZSBmcmFtZSB3YXMgZGVjb2RlZCB3aXRoIHRoZSBuYXRpdmUgc2l6ZS4KLSAgICBpZiAoZnJh
bWVIYXNEZWNvZGVkTmF0aXZlSW1hZ2VDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KG1fY3Vy
cmVudEZyYW1lLCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsLCBzdGQ6Om9wdGlvbmFsPEludFNp
emU+KCkpKQorICAgIC8vIENhbGwgbV9kZWNvZGluZ0NhbGxiYWNrcyB3aXRoICdzdWNjZWVkZWQg
PSB0cnVlJyBvbmx5IGlmIHRoZSBpbWFnZSBmcmFtZSB3YXMgZGVjb2RlZCB3aXRoIHRoZSBuYXRp
dmUgc2l6ZS4KKyAgICBpZiAobV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGlu
Z1N0YXR1czo6RXJyb3IgfHwgZnJhbWVIYXNEZWNvZGVkTmF0aXZlSW1hZ2VDb21wYXRpYmxlV2l0
aE9wdGlvbnNBdEluZGV4KG1fY3VycmVudEZyYW1lLCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVs
LCBzdGQ6Om9wdGlvbmFsPEludFNpemU+KCkpKQogICAgICAgICBjYWxsRGVjb2RpbmdDYWxsYmFj
a3MoKTsKIAogICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCiAgICAgICAgIGltYWdlT2JzZXJ2ZXIo
KS0+aW1hZ2VGcmFtZUF2YWlsYWJsZSgqdGhpcywgSW1hZ2VBbmltYXRpbmdTdGF0ZTo6Tm8sIG51
bGxwdHIsIGRlY29kaW5nU3RhdHVzKTsKIH0KIAotdW5zaWduZWQgQml0bWFwSW1hZ2U6OmRlY29k
ZUNvdW50Rm9yVGVzdGluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVjb2RlQ291bnRGb3JU
ZXN0aW5nOwotfQotCiB2b2lkIEJpdG1hcEltYWdlOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25z
dAogewogICAgIEltYWdlOjpkdW1wKHRzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAkocmV2aXNpb24gMjI2MzMyKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA5LDggKzEwOSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENsZWFyRGVjb2RlckFmdGVy
QXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9jbGVhckRlY29kZXJB
ZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9yVGVzdGluZyA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRM
YXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCkgeyBt
X2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcgPSBlbmFibGVkOyB9CiAg
ICAgYm9vbCBpc0xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoKSBjb25z
dCB7IHJldHVybiBtX2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3Rpbmc7IH0K
KyAgICB2b2lkIHNldEFzeW5jRGVjb2RpbmdGYWlsdXJlRm9yY2VkRm9yVGVzdGluZyhib29sIGZv
cmNlZCkgeyBtX3NvdXJjZS0+c2V0QXN5bmNEZWNvZGluZ0ZhaWx1cmVGb3JjZWRGb3JUZXN0aW5n
KGZvcmNlZCk7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGRlY29kZUNvdW50Rm9y
VGVzdGluZygpIGNvbnN0OworICAgIHVuc2lnbmVkIGRlY29kZUNvdW50Rm9yVGVzdGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fZGVjb2RlQ291bnRGb3JUZXN0aW5nOyB9CiAKICAgICAvLyBBY2Nlc3Nv
cnMgZm9yIG5hdGl2ZSBpbWFnZSBmb3JtYXRzLgogI2lmIFVTRShBUFBLSVQpCkBAIC0xOTcsNyAr
MTk4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbkRlc3Ryb3lEZWNvZGVkRGF0YSgpOwogICAg
IHZvaWQgc2V0Q3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXNJZk5lY2Vzc2FyeShEZWNvZGluZ1N0
YXR1cyk7CiAgICAgYm9vbCBpc0JpdG1hcEltYWdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIHZvaWQgZGVjb2RlKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRlY29kZShXVEY6OkZ1bmN0aW9uPHZvaWQoRGVjb2RpbmdTdGF0dXMpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNhbGxEZWNvZGluZ0NhbGxiYWNrcygpOwogICAgIHZvaWQg
aW1hZ2VGcmFtZUF2YWlsYWJsZUF0SW5kZXgoc2l6ZV90KSBvdmVycmlkZTsKICAgICB2b2lkIGR1
bXAoV1RGOjpUZXh0U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMTQsNyArMjE1LDcgQEAg
cHJpdmF0ZToKICAgICBSZXBldGl0aW9uQ291bnQgbV9yZXBldGl0aW9uc0NvbXBsZXRlIHsgUmVw
ZXRpdGlvbkNvdW50Tm9uZSB9OyAvLyBIb3cgbWFueSByZXBldGl0aW9ucyB3ZSd2ZSBmaW5pc2hl
ZC4KICAgICBNb25vdG9uaWNUaW1lIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lOyAvLyBUaGUgc3lz
dGVtIHRpbWUgYXQgd2hpY2ggd2UgaG9wZSB0byBzZWUgdGhlIG5leHQgY2FsbCB0byBzdGFydEFu
aW1hdGlvbigpLgogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+
LCAxPj4gbV9kZWNvZGluZ0NhbGxiYWNrczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEZ1
bmN0aW9uPHZvaWQoRGVjb2RpbmdTdGF0dXMpPiwgMT4+IG1fZGVjb2RpbmdDYWxsYmFja3M7CiAg
ICAgU2Vjb25kcyBtX2ZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3Rpbmc7CiAgICAgTW9ub3Rv
bmljVGltZSBtX2Rlc2lyZWRGcmFtZURlY29kZVRpbWVGb3JUZXN0aW5nOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgJKHJldmlzaW9uIDIyNjMzMikKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0aW5n
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGFuaW1hdGlvblBlbmRpbmcoKSBj
b25zdCB7IHJldHVybiBtX2FuaW1hdGlvblN0YXJ0VGltZXIuaXNBY3RpdmUoKTsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGRlY29kZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRlY29kZShXVEY6OkZ1bmN0aW9uPHZvaWQoRGVjb2RpbmdTdGF0dXMpPiYmKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VGcmFtZUF2YWlsYWJsZUF0SW5kZXgoc2l6ZV90KSB7
IH0KIAogICAgIC8vIFR5cGljYWxseSB0aGUgQ2FjaGVkSW1hZ2UgdGhhdCBvd25zIHVzLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cAkocmV2aXNpb24gMjI2MzMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDkgQEAgdm9pZCBJ
bWFnZVNvdXJjZTo6Y2FjaGVOYXRpdmVJbWFnZUF0SW5kZQogICAgIC8vIENsZWFyIHRoZSBjdXJy
ZW50IGltYWdlIGZyYW1lIGFuZCB1cGRhdGUgdGhlIG9ic2VydmVyIHdpdGggdGhpcyBjbGVhcmFu
Y2UuCiAgICAgZGVjb2RlZFNpemVEZWNyZWFzZWQoZnJhbWUuY2xlYXIoKSk7CiAKKyAgICBpZiAo
IW5hdGl2ZUltYWdlIHx8IG1fYXN5bmNEZWNvZGluZ0ZhaWx1cmVGb3JjZWRGb3JUZXN0aW5nKQor
ICAgICAgICByZXR1cm47CisKICAgICAvLyBEbyBub3QgY2FjaGUgdGhlIE5hdGl2ZUltYWdlIGlm
IGFkZGluZyBpdHMgZnJhbWVCeWVzIHRvIHRoZSBNZW1vcnlDYWNoZSB3aWxsIGNhdXNlIG51bWVy
aWNhbCBvdmVyZmxvdy4KICAgICBzaXplX3QgZnJhbWVCeXRlcyA9IHNpemUoKS51bmNsYW1wZWRB
cmVhKCkgKiBzaXplb2YoUkdCQTMyKTsKICAgICBpZiAoIVdURjo6aXNJbkJvdW5kczx1bnNpZ25l
ZD4oZnJhbWVCeXRlcyArIGRlY29kZWRTaXplKCkpKQpAQCAtMzM1LDcgKzMzOCw2IEBAIHZvaWQg
SW1hZ2VTb3VyY2U6OnN0YXJ0QXN5bmNEZWNvZGluZ1F1ZXUKICAgICAgICAgICAgICAgICBMT0co
SW1hZ2VzLCAiSW1hZ2VTb3VyY2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtmcmFtZSAlbGQgaGFzIGJl
ZW4gZGVjb2RlZF0iLCBfX0ZVTkNUSU9OX18sIHByb3RlY3RlZFRoaXMucHRyKCksIHNvdXJjZVVS
TC51dGY4KCkuZGF0YSgpLCBmcmFtZVJlcXVlc3QuaW5kZXgpOwogICAgICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAgICAgTE9HKEltYWdlcywgIkltYWdlU291cmNlOjolcyAtICVwIC0gdXJs
OiAlcyBbZGVjb2RpbmcgZm9yIGZyYW1lICVsZCBoYXMgZmFpbGVkXSIsIF9fRlVOQ1RJT05fXywg
cHJvdGVjdGVkVGhpcy5wdHIoKSwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVz
dC5pbmRleCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGVkIGZyYW1lcyBvbiB0aGUgbWFpbiB0aHJlYWQg
dG8gYXZvaWQgdXBkYXRpbmcgdGhlIE1lbW9yeUNhY2hlIGZyb20gYSBkaWZmZXJlbnQgdGhyZWFk
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5oCShyZXZpc2lvbiAyMjYzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YUJlZm9yZUZyYW1lKHNpemVfdCBiZWZvcmVGcmFt
ZSkgeyBkZXN0cm95RGVjb2RlZERhdGEoYmVmb3JlRnJhbWUsIGJlZm9yZUZyYW1lKTsgfQogICAg
IHZvaWQgZGVzdHJveUluY29tcGxldGVEZWNvZGVkRGF0YSgpOwogICAgIHZvaWQgY2xlYXJGcmFt
ZUJ1ZmZlckNhY2hlKHNpemVfdCBiZWZvcmVGcmFtZSk7CisgICAgdm9pZCBzZXRBc3luY0RlY29k
aW5nRmFpbHVyZUZvcmNlZEZvclRlc3RpbmcoYm9vbCBmb3JjZWQpIHsgbV9hc3luY0RlY29kaW5n
RmFpbHVyZUZvcmNlZEZvclRlc3RpbmcgPSBmb3JjZWQ7IH0KIAogICAgIHZvaWQgZ3Jvd0ZyYW1l
cygpOwogICAgIHZvaWQgY2xlYXJNZXRhZGF0YSgpOwpAQCAtMTA0LDcgKzEwNSw2IEBAIHB1Ymxp
YzoKICAgICBib29sIGZyYW1lSXNCZWluZ0RlY29kZWRBbmRJc0NvbXBhdGlibGVXaXRoT3B0aW9u
c0F0SW5kZXgoc2l6ZV90LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKTsKICAgICBEZWNvZGluZ1N0
YXR1cyBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChzaXplX3QpOwogICAgIGJvb2wgZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90KTsKLSAgICBib29sIGZyYW1lSGFzSW1hZ2VBdEluZGV4KHNp
emVfdCk7CiAgICAgYm9vbCBmcmFtZUhhc0Z1bGxTaXplTmF0aXZlSW1hZ2VBdEluZGV4KHNpemVf
dCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdWJzYW1wbGluZ0xldmVsPiYpOwogICAgIGJvb2wgZnJh
bWVIYXNEZWNvZGVkTmF0aXZlSW1hZ2VDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KHNpemVf
dCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdWJzYW1wbGluZ0xldmVsPiYsIGNvbnN0IERlY29kaW5n
T3B0aW9ucyYpOwogICAgIFN1YnNhbXBsaW5nTGV2ZWwgZnJhbWVTdWJzYW1wbGluZ0xldmVsQXRJ
bmRleChzaXplX3QpOwpAQCAtMTY0LDYgKzE2NCw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9kZWNvZGVkUHJvcGVydGllc1NpemUgeyAwIH07CiAgICAgVmVjdG9yPEltYWdlRnJhbWUsIDE+
IG1fZnJhbWVzOwogCisgICAgYm9vbCBtX2FzeW5jRGVjb2RpbmdGYWlsdXJlRm9yY2VkRm9yVGVz
dGluZyB7IGZhbHNlIH07CisKICAgICAvLyBBc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcuCiAg
ICAgc3RydWN0IEltYWdlRnJhbWVSZXF1ZXN0IHsKICAgICAgICAgc2l6ZV90IGluZGV4OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VUeXBlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlVHlwZXMuaAkocmV2
aXNpb24gMjI2MzMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw3IEBAIGVudW0gY2xhc3MgRW5jb2Rl
ZERhdGFTdGF0dXMgewogfTsKIAogZW51bSBjbGFzcyBEZWNvZGluZ1N0YXR1cyB7CisgICAgRXJy
b3IsCiAgICAgSW52YWxpZCwKICAgICBQYXJ0aWFsLAogICAgIENvbXBsZXRlLApJbmRleDogU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMjI2MzMyKQorKysgU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTUsNiAr
ODE1LDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRMYXJnZUltYWdlQXN5bmNEZWNvZGkKICAgICAg
ICAgYml0bWFwSW1hZ2UtPnNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3Rp
bmcoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRJbWFnZUFzeW5jRGVjb2RpbmdG
YWlsdXJlRm9yY2VkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBib29sIGZv
cmNlZCkKK3sKKyAgICBpZiAoYXV0byogYml0bWFwSW1hZ2UgPSBiaXRtYXBJbWFnZUZyb21JbWFn
ZUVsZW1lbnQoZWxlbWVudCkpCisgICAgICAgIGJpdG1hcEltYWdlLT5zZXRBc3luY0RlY29kaW5n
RmFpbHVyZUZvcmNlZEZvclRlc3RpbmcoZm9yY2VkKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnNl
dEdyaWRNYXhUcmFja3NMaW1pdCh1bnNpZ25lZCBtYXhUcmFja0xpbWl0KQogewogICAgIEdyaWRQ
b3NpdGlvbjo6c2V0TWF4UG9zaXRpb25Gb3JUZXN0aW5nKG1heFRyYWNrTGltaXQpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyMjYzMzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNiArMTQx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVx
dWVzdEZvclRlc3RpbmcoSFRNTEltYWdlRWxlbWVudCYsIGJvb2wgZW5hYmxlZCk7CiAgICAgdW5z
aWduZWQgaW1hZ2VEZWNvZGVDb3VudChIVE1MSW1hZ2VFbGVtZW50Jik7CiAgICAgdm9pZCBzZXRM
YXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRGb3JUZXN0aW5nKEhUTUxJbWFnZUVsZW1lbnQm
LCBib29sIGVuYWJsZWQpOworICAgIHZvaWQgc2V0SW1hZ2VBc3luY0RlY29kaW5nRmFpbHVyZUZv
cmNlZEZvclRlc3RpbmcoSFRNTEltYWdlRWxlbWVudCYsIGJvb2wgZm9yY2VkKTsKIAogICAgIHZv
aWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjI2MzMyKQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDcgQEAg
ZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAgICAgdm9pZCBzZXRDbGVhckRlY29kZXJB
ZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQs
IGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdW5zaWduZWQgbG9uZyBpbWFnZURlY29kZUNvdW50KEhU
TUxJbWFnZUVsZW1lbnQgZWxlbWVudCk7CiAgICAgdm9pZCBzZXRMYXJnZUltYWdlQXN5bmNEZWNv
ZGluZ0VuYWJsZWRGb3JUZXN0aW5nKEhUTUxJbWFnZUVsZW1lbnQgZWxlbWVudCwgYm9vbGVhbiBl
bmFibGVkKTsKKyAgICB2b2lkIHNldEltYWdlQXN5bmNEZWNvZGluZ0ZhaWx1cmVGb3JjZWRGb3JU
ZXN0aW5nKEhUTUxJbWFnZUVsZW1lbnQgZWxlbWVudCwgYm9vbGVhbiBmb3JjZWQpOwogCiAgICAg
dm9pZCBzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQgbG9uZyBtYXhUcmFja3NMaW1pdCk7
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjMzMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAxLTA4ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgV2hlbiBkZWNvZGluZyB0
aHJlYWQgZmFpbHMgdG8gZ2VuZXJhdGUgYSBuZXcgTmF0aXZlSW1hZ2UsIHRoZSBtYWluIHRocmVh
ZCBoYXMgdG8gcmVtb3ZlIHRoZSBJbWFnZUZyYW1lUmVxdWVzdCBmcm9tIGNvbW1pdCBxdWV1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9kZWNvZGUtc3RhdGljLWltYWdlLWRlY29kaW5nLWVycm9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZGVjb2RlLXN0YXRpYy1pbWFnZS1kZWNvZGluZy1l
cnJvci5odG1sOiBBZGRlZC4KKwogMjAxOC0wMS0wMiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgQVBJIGZv
ciBXZWJBdXRoZW50aWNhdGlvbgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGVjb2Rl
LXN0YXRpYy1pbWFnZS1kZWNvZGluZy1lcnJvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGVjb2RlLXN0YXRpYy1pbWFnZS1kZWNvZGluZy1lcnJv
ci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZGVjb2RlLXN0YXRpYy1pbWFnZS1kZWNvZGluZy1lcnJvci1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMCBAQAorVGVzdCByZWplY3RpbmcgdGhlIGRlY29kZSgpIHByb21p
c2Ugd2hlbiBhIGRlY29kaW5nIGZhaWx1cmUgaGFwcGVucy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0ZvcmNlZCBmYWlsdXJlIHdhcyBhcHBsaWVkLiBSZXN1bHQgaXM6IEVuY29k
aW5nRXJyb3I6IEludGVybmFsIEVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2RlY29k
ZS1zdGF0aWMtaW1hZ2UtZGVjb2RpbmctZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9kZWNvZGUtc3RhdGljLWltYWdlLWRlY29kaW5nLWVycm9yLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGVjb2RlLXN0YXRpYy1p
bWFnZS1kZWNvZGluZy1lcnJvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAK
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8c2NyaXB0
PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCByZWplY3RpbmcgdGhlIGRlY29kZSgpIHByb21p
c2Ugd2hlbiBhIGRlY29kaW5nIGZhaWx1cmUgaGFwcGVucy4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlOworICAgICAgICBp
bWFnZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0SW1hZ2VBc3luY0RlY29kaW5nRmFpbHVyZUZvcmNlZEZvclRlc3RpbmcoaW1h
Z2UsIHRydWUpOworICAgICAgICAgICAgaW1hZ2UuZGVjb2RlKCkKKyAgICAgICAgICAgIC5jYXRj
aChyZWFzb24gPT4geworICAgICAgICAgICAgICAgIGRlYnVnKCJGb3JjZWQgZmFpbHVyZSB3YXMg
YXBwbGllZC4gUmVzdWx0IGlzOiAiICsgcmVhc29uKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgaW1hZ2Uuc3Jj
ID0gInJlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI7CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5Pgo=
</data>
<flag name="review"
          id="349753"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>