<?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>167786</bug_id>
          
          <creation_ts>2017-02-03 02:39:22 -0800</creation_ts>
          <short_desc>[Readable Streams API] Implement ReadableByteStreamController enqueue()</short_desc>
          <delta_ts>2017-02-07 01:01:44 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Romain Bellessort">romain.wkt</reporter>
          <assigned_to name="Romain Bellessort">romain.wkt</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1272851</commentid>
    <comment_count>0</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2017-02-03 02:39:22 -0800</bug_when>
    <thetext>Implement ReadableByteStreamController enqueue() method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272891</commentid>
    <comment_count>1</comment_count>
      <attachid>300525</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2017-02-03 05:43:02 -0800</bug_when>
    <thetext>Created attachment 300525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272924</commentid>
    <comment_count>2</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2017-02-03 08:37:47 -0800</bug_when>
    <thetext>Proposed patch implements enqueue(), except regarding the step which declares that buffer should be transferred to current realm (step 7 in https://streams.spec.whatwg.org/#readable-byte-stream-controller-enqueue). I wasn&apos;t sure about what should be done there and I have isolated this in a dedicated function for a follow up patch. Conceptually, I understand the transfer operation, but I don&apos;t really get how it applies here: does it consist in making the buffer data accessible only to the ReadableStream module? (and not to the context calling enqueue())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273468</commentid>
    <comment_count>3</comment_count>
      <attachid>300525</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-05 22:23:55 -0800</bug_when>
    <thetext>Comment on attachment 300525
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:282
&gt; +    // For the moment, simply return received buffer.

The goal is to enable transfer from one thread (worker) to another (main thread/window).
I would guess there is already support in our codebase for that.

&gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:305
&gt; +        }

Return early here.

&gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:309
&gt; +        @throwTypeError(&quot;ReadableByteStreamController enqueue operation has no support for BYOB reader&quot;);

Here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273563</commentid>
    <comment_count>4</comment_count>
      <attachid>300722</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2017-02-06 07:49:02 -0800</bug_when>
    <thetext>Created attachment 300722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273601</commentid>
    <comment_count>5</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2017-02-06 09:32:23 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 300525 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=300525&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:282
&gt; &gt; +    // For the moment, simply return received buffer.
&gt; 
&gt; The goal is to enable transfer from one thread (worker) to another (main
&gt; thread/window).
&gt; I would guess there is already support in our codebase for that.

Ok, I will further investigate the codebase then.

&gt; &gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:305
&gt; &gt; +        }
&gt; 
&gt; Return early here.
&gt; 
&gt; &gt; Source/WebCore/Modules/streams/ReadableByteStreamInternals.js:309
&gt; &gt; +        @throwTypeError(&quot;ReadableByteStreamController enqueue operation has no support for BYOB reader&quot;);
&gt; 
&gt; Here as well.

Fixed in new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273897</commentid>
    <comment_count>6</comment_count>
      <attachid>300722</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-07 01:01:41 -0800</bug_when>
    <thetext>Comment on attachment 300722
Patch

Clearing flags on attachment: 300722

Committed r211779: &lt;http://trac.webkit.org/changeset/211779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273898</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-07 01:01:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300525</attachid>
            <date>2017-02-03 05:43:02 -0800</date>
            <delta_ts>2017-02-06 07:48:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167786-20170203144046.patch</filename>
            <type>text/plain</type>
            <size>19009</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ4NTU0OTlhOGRiNzY0
ZmFiNmFhYzNmOTA5ZGU1YTdiZDgwM2RhMC4uOTMxNDE3Y2QwZDU4ZDgyMmM4MTQyNmE0NTZlMTMw
MGY2Y2Q3NmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAyLTAzICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbUmVhZGFibGUgU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyIGVucXVldWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50ZWQgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBlbnF1ZXVl
KCkgbWV0aG9kLiBBbHNvIHJlcGxhY2VkCisgICAgICAgIEBxdWV1ZSBieSBhbiBBcnJheSBpbnN0
ZWFkIG9mIGEgZGVkaWNhdGVkIHF1ZXVlIG9iamVjdCAoc2FpZCBvYmplY3QgaXMKKyAgICAgICAg
dXNlZnVsIGZvciBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLCBidXQgbm90IGZvciBS
ZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyKS4KKworICAgICAgICBBZGRlZCA4IHRlc3RzIHRv
IGNvdmVyIG5ld2x5IGFkZGVkIGNvZGUgYXMgd2VsbCBhcyBjb2RlIHRoYXQgd2FzIHByZXZpb3Vz
bHkgdW5yZWFjaGFibGUuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlci5qczoKKyAgICAgICAgKGVucXVldWUpOiBJbXBsZW1lbnRlZCBhcyBk
ZWZpbmVkIGJ5IHNwZWMuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0
cmVhbUludGVybmFscy5qczoKKyAgICAgICAgKHByaXZhdGVJbml0aWFsaXplUmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlcik6IFVwZGF0ZWQgQHF1ZXVlLgorICAgICAgICAocmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlckNhbmNlbCk6IFVwZGF0ZWQgQHF1ZXVlLgorICAgICAgICAocmVhZGFi
bGVCeXRlU3RyZWFtQ29udHJvbGxlckVycm9yKTogVXBkYXRlZCBAcXVldWUuCisgICAgICAgIChy
ZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyUHVsbCk6IFVwZGF0ZWQgQHF1ZXVlLgorICAgICAg
ICAocmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckVucXVldWUpOiBBZGRlZC4KKyAgICAgICAg
KHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVlQ2h1bmtUb1F1ZXVlKTogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgor
ICAgICAgICAocmVhZGFibGVTdHJlYW1GdWxmaWxsUmVhZFJlcXVlc3QpOiBBZGRlZCAodXNlZCBh
dCBkaWZmZXJlbnQgcGxhY2VzKS4KKwogMjAxNy0wMi0wMiAgQW5kcmVhcyBLbGluZyAgPGFrbGlu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gSW4tcHJvY2VzcyBtZW1vcnkgcHJlc3N1cmUg
bW9uaXRvciBmb3IgV2ViQ29udGVudCBwcm9jZXNzZXMgQUtBIHdlYnNhbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xs
ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFt
Q29udHJvbGxlci5qcwppbmRleCBmM2Q0NmM1ZmUxNDE4ZTc4YmViNzBiN2I0MDBjZjkyNmE2YjM4
MGY4Li5jMmZlYjE1NzkzOGMwYWJlMzJkMmJhODQzYmFkOTg0MzdhNTFiNjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlci5qcwpAQCAtMjksOCArMjksMjIgQEAgZnVuY3Rpb24gZW5xdWV1ZShj
aHVuaykKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICAvL0ZJWE1FOiBJbXBsZW1lbnQgYXBw
cm9wcmlhdGUgYmVoYXZpb3IuCi0gICAgQHRocm93VHlwZUVycm9yKCJSZWFkYWJsZUJ5dGVTdHJl
YW1Db250cm9sbGVyIGVucXVldWUoKSBpcyBub3QgaW1wbGVtZW50ZWQiKTsKKyAgICBpZiAoIUBp
c1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIodGhpcykpCisgICAgICAgIHRocm93IEBtYWtl
VGhpc1R5cGVFcnJvcigiUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciIsICJlbnF1ZXVlIik7
CisKKyAgICBpZiAodGhpcy5AY2xvc2VSZXF1ZXN0ZWQpCisgICAgICAgIEB0aHJvd1R5cGVFcnJv
cigiUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBpcyByZXF1ZXN0ZWQgdG8gY2xvc2UiKTsK
KworICAgIGlmICh0aGlzLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW0uQHN0YXRlICE9PSBAc3Ry
ZWFtUmVhZGFibGUpCisgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gaXMg
bm90IHJlYWRhYmxlIik7CisKKyAgICBpZiAoIUBpc09iamVjdChjaHVuaykpCisgICAgICAgIEB0
aHJvd1R5cGVFcnJvcigiUHJvdmlkZWQgY2h1bmsgaXMgbm90IGFuIG9iamVjdCIpOworCisgICAg
aWYgKCFAQXJyYXlCdWZmZXIuQGlzVmlldyhjaHVuaykpCisgICAgICAgIEB0aHJvd1R5cGVFcnJv
cigiUHJvdmlkZWQgY2h1bmsgaXMgbm90IGFuIEFycmF5QnVmZmVyIHZpZXciKTsKKworICAgIHJl
dHVybiBAcmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckVucXVldWUodGhpcywgY2h1bmspOwog
fQogCiBmdW5jdGlvbiBlcnJvcihlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHMuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4
IDIwM2I0OTM2ZDQ0ZGVmYTM5ZjFmNTY2MzA5YzBlMDJhMTA4NDg1N2QuLjM1NGY3Y2RkZjQ0Mzk3
NTQ0MzNhNDgzNjVmYjI0NjBmMzk0NmNjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFscy5qcwpA
QCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIoc3RyZWFtLCB1bmRlcmx5aW5nQnl0ZVNvdQogICAgIHRoaXMuQHB1bGxB
Z2FpbiA9IGZhbHNlOwogICAgIHRoaXMuQHB1bGxpbmcgPSBmYWxzZTsKICAgICBAcmVhZGFibGVC
eXRlU3RyZWFtQ29udHJvbGxlckNsZWFyUGVuZGluZ1B1bGxJbnRvcyh0aGlzKTsKLSAgICB0aGlz
LkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOworICAgIHRoaXMuQHF1ZXVlID0gW107CiAgICAgdGhpcy5A
dG90YWxRdWV1ZWRCeXRlcyA9IDA7CiAgICAgdGhpcy5Ac3RhcnRlZCA9IGZhbHNlOwogICAgIHRo
aXMuQGNsb3NlUmVxdWVzdGVkID0gZmFsc2U7CkBAIC0xMDMsNyArMTAzLDcgQEAgZnVuY3Rpb24g
cmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNhbmNlbChjb250cm9sbGVyLCByZWFzb24pCiAK
ICAgICBpZiAoY29udHJvbGxlci5AcGVuZGluZ1B1bGxJbnRvcy5sZW5ndGggPiAwKQogICAgICAg
ICBjb250cm9sbGVyLkBwZW5kaW5nUHVsbEludG9zWzBdLmJ5dGVzRmlsbGVkID0gMDsKLSAgICBj
b250cm9sbGVyLkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOworICAgIGNvbnRyb2xsZXIuQHF1ZXVlID0g
W107CiAgICAgY29udHJvbGxlci5AdG90YWxRdWV1ZWRCeXRlcyA9IDA7CiAgICAgcmV0dXJuIEBw
cm9taXNlSW52b2tlT3JOb29wKGNvbnRyb2xsZXIuQHVuZGVybHlpbmdCeXRlU291cmNlLCAiY2Fu
Y2VsIiwgW3JlYXNvbl0pOwogfQpAQCAtMTE0LDcgKzExNCw3IEBAIGZ1bmN0aW9uIHJlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXJFcnJvcihjb250cm9sbGVyLCBlKQogCiAgICAgQGFzc2VydChj
b250cm9sbGVyLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtUmVh
ZGFibGUpOwogICAgIEByZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ2xlYXJQZW5kaW5nUHVs
bEludG9zKGNvbnRyb2xsZXIpOwotICAgIGNvbnRyb2xsZXIuQHF1ZXVlID0gQG5ld1F1ZXVlKCk7
CisgICAgY29udHJvbGxlci5AcXVldWUgPSBbXTsKICAgICBAcmVhZGFibGVTdHJlYW1FcnJvcihj
b250cm9sbGVyLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW0sIGUpOwogfQogCkBAIC0xODksNyAr
MTg5LDcgQEAgZnVuY3Rpb24gcmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclB1bGwoY29udHJv
bGxlcikKIAogICAgIGlmIChjb250cm9sbGVyLkB0b3RhbFF1ZXVlZEJ5dGVzID4gMCkgewogICAg
ICAgICBAYXNzZXJ0KHN0cmVhbS5AcmVhZGVyLkByZWFkUmVxdWVzdHMubGVuZ3RoID09PSAwKTsK
LSAgICAgICAgY29uc3QgZW50cnkgPSBAZGVxdWV1ZVZhbHVlKGNvbnRyb2xsZXIuQHF1ZXVlKTsK
KyAgICAgICAgY29uc3QgZW50cnkgPSBjb250cm9sbGVyLkBxdWV1ZS5Ac2hpZnQoKTsKICAgICAg
ICAgY29udHJvbGxlci5AdG90YWxRdWV1ZWRCeXRlcyAtPSBlbnRyeS5ieXRlTGVuZ3RoOwogICAg
ICAgICBAcmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckhhbmRsZVF1ZXVlRHJhaW4oY29udHJv
bGxlcik7CiAgICAgICAgIGxldCB2aWV3OwpAQCAtMjcxLDMgKzI3MSw1NiBAQCBmdW5jdGlvbiBy
ZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ2FsbFB1bGxJZk5lZWRlZChjb250cm9sbGVyKQog
ICAgICAgICAgICAgQHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFcnJvcihjb250cm9sbGVy
LCBlcnJvcik7CiAgICAgfSk7CiB9CisKK2Z1bmN0aW9uIHRyYW5zZmVyQnVmZmVyVG9DdXJyZW50
UmVhbG0oYnVmZmVyKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIC8vIEZJWE1FOiBEZXRl
cm1pbmUgd2hhdCBzaG91bGQgYmUgZG9uZSBoZXJlIGV4YWN0bHkuIEFjY29yZGluZyB0byBzcGVj
LAorICAgIC8vIFRyYW5zZmVyIG9wZXJhdGlvbiBzaG91bGQgYmUgcGVyZm9ybWVkIGluIG9yZGVy
IHRvIHRyYW5zZmVyIGJ1ZmZlciB0bworICAgIC8vIGN1cnJlbnQgcmVhbG0uCisgICAgLy8gRm9y
IHRoZSBtb21lbnQsIHNpbXBseSByZXR1cm4gcmVjZWl2ZWQgYnVmZmVyLgorICAgIHJldHVybiBi
dWZmZXI7Cit9CisKK2Z1bmN0aW9uIHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVl
KGNvbnRyb2xsZXIsIGNodW5rKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGNvbnN0IHN0
cmVhbSA9IGNvbnRyb2xsZXIuQGNvbnRyb2xsZWRSZWFkYWJsZVN0cmVhbTsKKyAgICBAYXNzZXJ0
KCFjb250cm9sbGVyLkBjbG9zZVJlcXVlc3RlZCk7CisgICAgQGFzc2VydChzdHJlYW0uQHN0YXRl
ID09PSBAc3RyZWFtUmVhZGFibGUpOworICAgIGNvbnN0IGJ1ZmZlciA9IGNodW5rLmJ1ZmZlcjsK
KyAgICBjb25zdCBieXRlT2Zmc2V0ID0gY2h1bmsuYnl0ZU9mZnNldDsKKyAgICBjb25zdCBieXRl
TGVuZ3RoID0gY2h1bmsuYnl0ZUxlbmd0aDsKKyAgICBjb25zdCB0cmFuc2ZlcnJlZEJ1ZmZlciA9
IEB0cmFuc2ZlckJ1ZmZlclRvQ3VycmVudFJlYWxtKGJ1ZmZlcik7CisKKyAgICBpZiAoQHJlYWRh
YmxlU3RyZWFtSGFzRGVmYXVsdFJlYWRlcihzdHJlYW0pKSB7CisgICAgICAgIGlmICghc3RyZWFt
LkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5sZW5ndGgpCisgICAgICAgICAgICBAcmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlckVucXVldWVDaHVua1RvUXVldWUoY29udHJvbGxlciwgdHJhbnNmZXJy
ZWRCdWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIEBhc3NlcnQoIWNvbnRyb2xsZXIuQHF1ZXVlLmxlbmd0aCk7CisgICAgICAgICAgICBs
ZXQgdHJhbnNmZXJyZWRWaWV3ID0gbmV3IEBVaW50OEFycmF5KHRyYW5zZmVycmVkQnVmZmVyLCBi
eXRlT2Zmc2V0LCBieXRlTGVuZ3RoKTsKKyAgICAgICAgICAgIEByZWFkYWJsZVN0cmVhbUZ1bGZp
bGxSZWFkUmVxdWVzdChzdHJlYW0sIHRyYW5zZmVycmVkVmlldywgZmFsc2UpOworICAgICAgICB9
CisgICAgfSBlbHNlIGlmIChAcmVhZGFibGVTdHJlYW1IYXNCWU9CUmVhZGVyKHN0cmVhbSkpIHsK
KyAgICAgICAgLy8gRklYTUU6IFRvIGJlIGltcGxlbWVudGVkIG9uY2UgUmVhZGFibGVTdHJlYW1C
WU9CUmVhZGVyIGhhcyBiZWVuIGltcGxlbWVudGVkIChmb3IgdGhlIG1vbWVudCwKKyAgICAgICAg
Ly8gdGVzdCBjYW5ub3QgYmUgdHJ1ZSkuCisgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiUmVhZGFi
bGVCeXRlU3RyZWFtQ29udHJvbGxlciBlbnF1ZXVlIG9wZXJhdGlvbiBoYXMgbm8gc3VwcG9ydCBm
b3IgQllPQiByZWFkZXIiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBAYXNzZXJ0KCFAaXNSZWFk
YWJsZVN0cmVhbUxvY2tlZChzdHJlYW0pKTsKKyAgICAgICAgQHJlYWRhYmxlQnl0ZVN0cmVhbUNv
bnRyb2xsZXJFbnF1ZXVlQ2h1bmtUb1F1ZXVlKGNvbnRyb2xsZXIsIHRyYW5zZmVycmVkQnVmZmVy
LCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVlQ2h1bmtUb1F1ZXVlKGNvbnRyb2xsZXIsIGJ1ZmZl
ciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBj
b250cm9sbGVyLkBxdWV1ZS5AcHVzaCh7CisgICAgICAgIGJ1ZmZlcjogYnVmZmVyLAorICAgICAg
ICBieXRlT2Zmc2V0OiBieXRlT2Zmc2V0LAorICAgICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3Ro
CisgICAgfSk7CisgICAgY29udHJvbGxlci5AdG90YWxRdWV1ZWRCeXRlcyArPSBieXRlTGVuZ3Ro
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IDRiM2Q2MWZhZDdjNGZkMzk4YWIzZTM3ZDRmODEy
ZDRkNDA5NDFhN2QuLjg3MDk0YmY2YWJkNjE4Y2E1ZmE2NTA2OTFjNWI3NzMxYmZhMDAzNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1JbnRlcm5hbHMuanMKQEAgLTQxMyw2ICs0MTMsMTMgQEAgZnVuY3Rpb24gcmVhZGFibGVT
dHJlYW1DbG9zZShzdHJlYW0pCiAgICAgcmVhZGVyLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eS5A
cmVzb2x2ZS5AY2FsbCgpOwogfQogCitmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUZ1bGZpbGxSZWFk
UmVxdWVzdChzdHJlYW0sIGNodW5rLCBkb25lKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAg
IHN0cmVhbS5AcmVhZGVyLkByZWFkUmVxdWVzdHMuQHNoaWZ0KCkuQHJlc29sdmUuQGNhbGwoQHVu
ZGVmaW5lZCwge3ZhbHVlOiBjaHVuaywgZG9uZTogZG9uZX0pOworfQorCiBmdW5jdGlvbiByZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRW5xdWV1ZShjb250cm9sbGVyLCBjaHVuaykKIHsK
ICAgICAidXNlIHN0cmljdCI7CkBAIC00MjIsNyArNDI5LDcgQEAgZnVuY3Rpb24gcmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlckVucXVldWUoY29udHJvbGxlciwgY2h1bmspCiAgICAgQGFz
c2VydChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtUmVhZGFibGUpOwogCiAgICAgaWYgKEBpc1Jl
YWRhYmxlU3RyZWFtTG9ja2VkKHN0cmVhbSkgJiYgc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0
cy5sZW5ndGgpIHsKLSAgICAgICAgc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5Ac2hpZnQo
KS5AcmVzb2x2ZS5AY2FsbChAdW5kZWZpbmVkLCB7dmFsdWU6IGNodW5rLCBkb25lOiBmYWxzZX0p
OworICAgICAgICBAcmVhZGFibGVTdHJlYW1GdWxmaWxsUmVhZFJlcXVlc3Qoc3RyZWFtLCBjaHVu
aywgZmFsc2UpOwogICAgICAgICBAcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNhbGxQ
dWxsSWZOZWVkZWQoY29udHJvbGxlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTRiMDU1ODYyMGNiMjg2NWVjODQxZjEyMjhhNjY2ZDAwNDc1MGE3MC4uYTRhOWQ3YjhjNzM1MTQ4
NTc2YmQxMWY0MDg4NmI2MzNiMjAxYjdjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAy
LTAzICBSb21haW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4K
KworICAgICAgICBbUmVhZGFibGUgU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyIGVucXVldWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY3Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgOCB0ZXN0cyB0byBjb3ZlciBuZXdseSBhZGRlZCBjb2Rl
IGFzIHdlbGwgYXMgY29kZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVucmVhY2hhYmxlLgorCisgICAg
ICAgICogc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250cm9sbGVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtLWNvbnRyb2xsZXIuanM6
CisKIDIwMTctMDItMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTXVsdGlwbGUgSFRUUCB0ZXN0cyBmYWlsIHdpdGggQXBhY2hlIDIuNC4yNQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250cm9sbGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0t
Y29udHJvbGxlci1leHBlY3RlZC50eHQKaW5kZXggZjQ5ZDMzNzc4YTgzNzdmNmIyZDcwNmZiMDlm
MGYxNzA4ZjdmYzcwMi4uMzM1YTE2ZTQ5ODI5YTVhMzcwMzhlOTQwNjQ0MTIzNTU1ZGZmOWYxOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250
cm9sbGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5
dGUtc3RyZWFtLWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTEgQEAgUEFTUyBD
cmVhdGluZyBhIFJlYWRhYmxlU3RyZWFtIHdpdGggYW4gdW5kZXJseWluZ1NvdXJjZSB3aXRoIHR5
cGUgcHJvcGVydHkgc2V0IHQKIFBBU1MgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBpbnN0
YW5jZXMgc2hvdWxkIGhhdmUgdGhlIGNvcnJlY3QgbGlzdCBvZiBwcm9wZXJ0aWVzIAogUEFTUyBD
YWxsaW5nIGVycm9yKCkgd2l0aCBhIHRoaXMgb2JqZWN0IGRpZmZlcmVudCBmcm9tIFJlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAogUEFTUyBDYWxs
aW5nIGNsb3NlKCkgd2l0aCBhIHRoaXMgb2JqZWN0IGRpZmZlcmVudCBmcm9tIFJlYWRhYmxlQnl0
ZVN0cmVhbUNvbnRyb2xsZXIgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBDYWxsaW5n
IGVucXVldWUoKSB3aXRoIGEgdGhpcyBvYmplY3QgZGlmZmVyZW50IGZyb20gUmVhZGFibGVCeXRl
U3RyZWFtQ29udHJvbGxlciBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNTIENhbGxpbmcg
ZW5xdWV1ZSgpIHdoZW4gY2xvc2UgaGFzIGJlZW4gcmVxdWVzdGVkIGJ1dCBub3QgeWV0IHBlcmZv
cm1lZCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNTIENhbGxpbmcgZW5xdWV1ZSgpIHdo
ZW4gc3RyZWFtIGlzIG5vdCByZWFkYWJsZSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCitQQVNT
IENhbGxpbmcgZW5xdWV1ZSgpIHdpdGggYSBjaHVuayB0aGF0IGlzIG5vdCBhbiBvYmplY3Qgc2hv
dWxkIHRyaG93IGEgVHlwZUVycm9yIAorUEFTUyBDYWxsaW5nIGVucXVldWUoKSB3aXRoIGEgY2h1
bmsgdGhhdCBpcyBub3QgYW4gQXJyYXlCdWZmZXJWaWV3IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciAKIFBBU1MgQ2FsbGluZyBlcnJvcigpIGFmdGVyIGNhbGxpbmcgY2xvc2UoKSBzaG91bGQgdGhy
b3cgYSBUeXBlRXJyb3IgCiBQQVNTIENhbGxpbmcgZXJyb3IoKSBhZnRlciBjYWxsaW5nIGVycm9y
KCkgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAogUEFTUyBDYWxsaW5nIGNsb3NlKCkgYWZ0ZXIg
Y2FsbGluZyBjbG9zZSgpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKQEAgLTExLDcgKzE2LDkg
QEAgUEFTUyBDYWxsaW5nIHJlYWQoKSBvbiBhIHJlYWRlciBhc3NvY2lhdGVkIHRvIGEgY29udHJv
bGxlciB0aGF0IGhhcyBiZWVuIGVycm9yZWQKIFBBU1MgQ2FsbGluZyByZWFkKCkgb24gYSByZWFk
ZXIgYXNzb2NpYXRlZCB0byBhIGNvbnRyb2xsZXIgdGhhdCBoYXMgYmVlbiBjbG9zZWQgc2hvdWxk
IG5vdCBiZSByZWplY3RlZCAKIFBBU1MgUGVuZGluZyByZWFkaW5nIHByb21pc2Ugc2hvdWxkIGJl
IHJlamVjdGVkIGlmIGNvbnRyb2xsZXIgaXMgZXJyb3JlZCAoY2FzZSB3aGVyZSBhdXRvQWxsb2Nh
dGVDaHVua1NpemUgaXMgdW5kZWZpbmVkKSAKIEZBSUwgUGVuZGluZyByZWFkaW5nIHByb21pc2Ug
c2hvdWxkIGJlIHJlamVjdGVkIGlmIGNvbnRyb2xsZXIgaXMgZXJyb3JlZCAoY2FzZSB3aGVyZSBh
dXRvQWxsb2NhdGVDaHVua1NpemUgaXMgc3BlY2lmaWVkKSBDYW4ndCBmaW5kIHByaXZhdGUgdmFy
aWFibGU6IEBVaW50OEFycmF5Ci1GQUlMIENhbGxpbmcgcmVhZCgpIGFmdGVyIGEgY2h1bmsgaGFz
IGJlZW4gZW5xdWV1ZWQgc2hvdWxkIHJlc3VsdCBpbiBvYnRhaW5pbmcgc2FpZCBjaHVuayBSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIGVucXVldWUoKSBpcyBub3QgaW1wbGVtZW50ZWQKK1BB
U1MgRW5xdWV1aW5nIGEgY2h1bmssIGdldHRpbmcgYSByZWFkZXIgYW5kIGNhbGxpbmcgcmVhZCBz
aG91bGQgcmVzdWx0IGluIGEgcHJvbWlzZSByZXNvbHZlZCB3aXRoIHNhaWQgY2h1bmsgCitQQVNT
IEdldHRpbmcgYSByZWFkZXIsIGNhbGxpbmcgcmVhZCBhbmQgZW5xdWV1aW5nIGEgY2h1bmsgc2hv
dWxkIHJlc3VsdCBpbiB0aGUgcmVhZCBwcm9taXNlIGJlaW5nIHJlc29sdmVkIHdpdGggc2FpZCBj
aHVuayAKK1BBU1MgR2V0dGluZyBhIHJlYWRlciwgZW5xdWV1aW5nIGEgY2h1bmsgYW5kIGZpbmFs
bHkgY2FsbGluZyByZWFkIHNob3VsZCByZXN1bHQgaW4gYSBwcm9taXNlIHJlc29sdmVkIHdpdGgg
c2FpZCBjaHVuayAKIFBBU1MgQnkgZGVmYXVsdCBpbml0aWFsIHZhbHVlIG9mIGRlc2lyZWRTaXpl
IHNob3VsZCBiZSAxIAogUEFTUyBDYWxsaW5nIGNhbmNlbCgpIG9uIGEgcmVhZGFibGUgUmVhZGFi
bGVTdHJlYW0gdGhhdCBpcyBub3QgbG9ja2VkIHRvIGEgcmVhZGVyIHNob3VsZCByZXR1cm4gYSBw
cm9taXNlIHdob3NlIGZ1bGZpbGxtZW50IGhhbmRsZXIgcmV0dXJucyB1bmRlZmluZWQgCiBQQVNT
IFRlc3QgdGhhdCBwdWxsIGlzIGNhbGxlZCBvbmNlIHdoZW4gYSBuZXcgUmVhZGFibGVTdHJlYW0g
aXMgY3JlYXRlZCB3aXRoIGEgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciAKQEAgLTIxLDYg
KzI4LDExIEBAIFBBU1MgQ3JlYXRpbmcgYSBSZWFkYWJsZVN0cmVhbSB3aXRoIGFuIHVuZGVybHlp
bmdTb3VyY2Ugd2l0aCB0eXBlIHByb3BlcnR5IHNldCB0CiBQQVNTIFJlYWRhYmxlQnl0ZVN0cmVh
bUNvbnRyb2xsZXIgaW5zdGFuY2VzIHNob3VsZCBoYXZlIHRoZSBjb3JyZWN0IGxpc3Qgb2YgcHJv
cGVydGllcyAKIFBBU1MgQ2FsbGluZyBlcnJvcigpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJl
bnQgZnJvbSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVF
cnJvciAKIFBBU1MgQ2FsbGluZyBjbG9zZSgpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJlbnQg
ZnJvbSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciAKK1BBU1MgQ2FsbGluZyBlbnF1ZXVlKCkgd2l0aCBhIHRoaXMgb2JqZWN0IGRpZmZlcmVudCBm
cm9tIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgc2hvdWxkIHRocm93IGEgVHlwZUVycm9y
IAorUEFTUyBDYWxsaW5nIGVucXVldWUoKSB3aGVuIGNsb3NlIGhhcyBiZWVuIHJlcXVlc3RlZCBi
dXQgbm90IHlldCBwZXJmb3JtZWQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBDYWxs
aW5nIGVucXVldWUoKSB3aGVuIHN0cmVhbSBpcyBub3QgcmVhZGFibGUgc2hvdWxkIHRocm93IGEg
VHlwZUVycm9yIAorUEFTUyBDYWxsaW5nIGVucXVldWUoKSB3aXRoIGEgY2h1bmsgdGhhdCBpcyBu
b3QgYW4gb2JqZWN0IHNob3VsZCB0cmhvdyBhIFR5cGVFcnJvciAKK1BBU1MgQ2FsbGluZyBlbnF1
ZXVlKCkgd2l0aCBhIGNodW5rIHRoYXQgaXMgbm90IGFuIEFycmF5QnVmZmVyVmlldyBzaG91bGQg
dGhyb3cgYSBUeXBlRXJyb3IgCiBQQVNTIENhbGxpbmcgZXJyb3IoKSBhZnRlciBjYWxsaW5nIGNs
b3NlKCkgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAogUEFTUyBDYWxsaW5nIGVycm9yKCkgYWZ0
ZXIgY2FsbGluZyBlcnJvcigpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKIFBBU1MgQ2FsbGlu
ZyBjbG9zZSgpIGFmdGVyIGNhbGxpbmcgY2xvc2UoKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3Ig
CkBAIC0yOSw3ICs0MSw5IEBAIFBBU1MgQ2FsbGluZyByZWFkKCkgb24gYSByZWFkZXIgYXNzb2Np
YXRlZCB0byBhIGNvbnRyb2xsZXIgdGhhdCBoYXMgYmVlbiBlcnJvcmVkCiBQQVNTIENhbGxpbmcg
cmVhZCgpIG9uIGEgcmVhZGVyIGFzc29jaWF0ZWQgdG8gYSBjb250cm9sbGVyIHRoYXQgaGFzIGJl
ZW4gY2xvc2VkIHNob3VsZCBub3QgYmUgcmVqZWN0ZWQgCiBQQVNTIFBlbmRpbmcgcmVhZGluZyBw
cm9taXNlIHNob3VsZCBiZSByZWplY3RlZCBpZiBjb250cm9sbGVyIGlzIGVycm9yZWQgKGNhc2Ug
d2hlcmUgYXV0b0FsbG9jYXRlQ2h1bmtTaXplIGlzIHVuZGVmaW5lZCkgCiBGQUlMIFBlbmRpbmcg
cmVhZGluZyBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCBpZiBjb250cm9sbGVyIGlzIGVycm9y
ZWQgKGNhc2Ugd2hlcmUgYXV0b0FsbG9jYXRlQ2h1bmtTaXplIGlzIHNwZWNpZmllZCkgQ2FuJ3Qg
ZmluZCBwcml2YXRlIHZhcmlhYmxlOiBAVWludDhBcnJheQotRkFJTCBDYWxsaW5nIHJlYWQoKSBh
ZnRlciBhIGNodW5rIGhhcyBiZWVuIGVucXVldWVkIHNob3VsZCByZXN1bHQgaW4gb2J0YWluaW5n
IHNhaWQgY2h1bmsgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBlbnF1ZXVlKCkgaXMgbm90
IGltcGxlbWVudGVkCitQQVNTIEVucXVldWluZyBhIGNodW5rLCBnZXR0aW5nIGEgcmVhZGVyIGFu
ZCBjYWxsaW5nIHJlYWQgc2hvdWxkIHJlc3VsdCBpbiBhIHByb21pc2UgcmVzb2x2ZWQgd2l0aCBz
YWlkIGNodW5rIAorUEFTUyBHZXR0aW5nIGEgcmVhZGVyLCBjYWxsaW5nIHJlYWQgYW5kIGVucXVl
dWluZyBhIGNodW5rIHNob3VsZCByZXN1bHQgaW4gdGhlIHJlYWQgcHJvbWlzZSBiZWluZyByZXNv
bHZlZCB3aXRoIHNhaWQgY2h1bmsgCitQQVNTIEdldHRpbmcgYSByZWFkZXIsIGVucXVldWluZyBh
IGNodW5rIGFuZCBmaW5hbGx5IGNhbGxpbmcgcmVhZCBzaG91bGQgcmVzdWx0IGluIGEgcHJvbWlz
ZSByZXNvbHZlZCB3aXRoIHNhaWQgY2h1bmsgCiBQQVNTIEJ5IGRlZmF1bHQgaW5pdGlhbCB2YWx1
ZSBvZiBkZXNpcmVkU2l6ZSBzaG91bGQgYmUgMSAKIFBBU1MgQ2FsbGluZyBjYW5jZWwoKSBvbiBh
IHJlYWRhYmxlIFJlYWRhYmxlU3RyZWFtIHRoYXQgaXMgbm90IGxvY2tlZCB0byBhIHJlYWRlciBz
aG91bGQgcmV0dXJuIGEgcHJvbWlzZSB3aG9zZSBmdWxmaWxsbWVudCBoYW5kbGVyIHJldHVybnMg
dW5kZWZpbmVkIAogUEFTUyBUZXN0IHRoYXQgcHVsbCBpcyBjYWxsZWQgb25jZSB3aGVuIGEgbmV3
IFJlYWRhYmxlU3RyZWFtIGlzIGNyZWF0ZWQgd2l0aCBhIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRy
b2xsZXIgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3Ry
ZWFtLWNvbnRyb2xsZXIuanMgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3Ry
ZWFtLWNvbnRyb2xsZXIuanMKaW5kZXggMjMyZmEwNTg2N2QzN2M3NWNmYjU2NDEyYjhmNGVmYjM3
ZmFkYjQ5Yy4uZDBjOTcyZTM3MTliNDdlNDRkZWIwMGM5MjNhYTIxODkyMTRlZDczMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250cm9sbGVy
LmpzCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0tY29udHJv
bGxlci5qcwpAQCAtODcsNiArODcsODYgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdHlw
ZTogImJ5dGVzIgogICAgIH0pOwogCisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCJD
YW4gb25seSBjYWxsIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuZW5xdWV1ZSBvbiBpbnN0
YW5jZXMgb2YgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciIpLAorICAgICAgICBmdW5jdGlv
bigpIHsgY29udHJvbGxlci5lbnF1ZXVlLmFwcGx5KHJzLCBuZXcgSW50OEFycmF5KDEpKTsgfSk7
Cit9LCAiQ2FsbGluZyBlbnF1ZXVlKCkgd2l0aCBhIHRoaXMgb2JqZWN0IGRpZmZlcmVudCBmcm9t
IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvbnRyb2xsZXI7CisKKyAgICBjb25zdCBy
cyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0OiBmdW5jdGlvbihjKSB7Cisg
ICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfSwKKyAgICAgICAgdHlwZTogImJ5
dGVzIgorICAgIH0pOworCisgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBJbnQ4QXJyYXkoMikp
OworICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigiUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBpcyByZXF1ZXN0ZWQgdG8gY2xvc2Ui
KSwKKyAgICAgICAgZnVuY3Rpb24oKSB7IGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgSW50OEFycmF5
KDEpKTsgfSk7Cit9LCAiQ2FsbGluZyBlbnF1ZXVlKCkgd2hlbiBjbG9zZSBoYXMgYmVlbiByZXF1
ZXN0ZWQgYnV0IG5vdCB5ZXQgcGVyZm9ybWVkIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIpOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGxldCBjb250cm9sbGVyOworCisgICAgY29uc3QgcnMg
PSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgeworICAg
ICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAgICAgIH0sCisgICAgICAgIHR5cGU6ICJieXRl
cyIKKyAgICB9KTsKKyAgICBjb250cm9sbGVyLmNsb3NlKCk7CisKKyAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIpLAorICAgICAg
ICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgSW50OEFy
cmF5KDEpKTsKKyAgICAgICAgfSk7Cit9LCAiQ2FsbGluZyBlbnF1ZXVlKCkgd2hlbiBzdHJlYW0g
aXMgbm90IHJlYWRhYmxlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICAgIGxldCBjb250cm9sbGVyOworCisgICAgY29uc3QgcnMgPSBuZXcgUmVhZGFi
bGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgY29u
dHJvbGxlciA9IGM7CisgICAgICAgIH0sCisgICAgICAgIHR5cGU6ICJieXRlcyIKKyAgICB9KTsK
KworICAgIGNvbnN0IGludmFsaWRDaHVuayA9IGZ1bmN0aW9uKCkge307CisKKyAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIGNodW5rIGlzIG5vdCBhbiBvYmplY3QiKSwK
KyAgICAgICAgZnVuY3Rpb24oKSB7IGNvbnRyb2xsZXIuZW5xdWV1ZShpbnZhbGlkQ2h1bmspOyB9
KTsKK30sICJDYWxsaW5nIGVucXVldWUoKSB3aXRoIGEgY2h1bmsgdGhhdCBpcyBub3QgYW4gb2Jq
ZWN0IHNob3VsZCB0cmhvdyBhIFR5cGVFcnJvciIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IGxldCBjb250cm9sbGVyOworCisgICAgY29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oewor
ICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgY29udHJvbGxlciA9IGM7
CisgICAgICAgIH0sCisgICAgICAgIHR5cGU6ICJieXRlcyIKKyAgICB9KTsKKworICAgIGNvbnN0
IGludmFsaWRDaHVuayA9IHt9OworCisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCJQ
cm92aWRlZCBjaHVuayBpcyBub3QgYW4gb2JqZWN0IiksCisgICAgICAgIGZ1bmN0aW9uKCkgeyBj
b250cm9sbGVyLmVucXVldWUoaW52YWxpZENodW5rKTsgfSk7Cit9LCAiQ2FsbGluZyBlbnF1ZXVl
KCkgd2l0aCBhIGNodW5rIHRoYXQgaXMgbm90IGFuIEFycmF5QnVmZmVyVmlldyBzaG91bGQgdGhy
b3cgYSBUeXBlRXJyb3IiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQgY29udHJvbGxl
cjsKKworICAgIGNvbnN0IHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6
IGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBjOworICAgICAgICB9LAor
ICAgICAgICB0eXBlOiAiYnl0ZXMiCisgICAgfSk7CisKICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIpLAogICAgICAgICBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKQEAgLTIyNCwxNCArMzA0
LDU1IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdHlwZTogImJ5dGVzIgog
ICAgIH0pOwogCi0gICAgY29udHJvbGxlci5lbnF1ZXVlKCJ0ZXN0Iik7CisgICAgY29uc3QgYnVm
ZmVyID0gbmV3IFVpbnQ4QXJyYXkoWzNdKTsKKyAgICBjb250cm9sbGVyLmVucXVldWUoYnVmZmVy
KTsKIAogICAgIHJldHVybiBycy5nZXRSZWFkZXIoKS5yZWFkKCkudGhlbigKICAgICAgICAgZnVu
Y3Rpb24ocmVzKSB7Ci0gICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhyZXMsIHt2YWx1
ZTogInRlc3QiLCBkb25lOiBmYWxzZX0pOworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVh
bHMocmVzLCB7dmFsdWU6IGJ1ZmZlciwgZG9uZTogZmFsc2V9KTsKKyAgICAgICAgfQorICAgICk7
Cit9LCAiRW5xdWV1aW5nIGEgY2h1bmssIGdldHRpbmcgYSByZWFkZXIgYW5kIGNhbGxpbmcgcmVh
ZCBzaG91bGQgcmVzdWx0IGluIGEgcHJvbWlzZSByZXNvbHZlZCB3aXRoIHNhaWQgY2h1bmsiKTsK
KworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIGxldCBjb250cm9sbGVyOworCisgICAg
Y29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVuY3Rpb24o
YykgeworICAgICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAgICAgIH0sCisgICAgICAgIHR5
cGU6ICJieXRlcyIKKyAgICB9KTsKKworICAgIGxldCBwcm9taXNlID0gcnMuZ2V0UmVhZGVyKCku
cmVhZCgpOworICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KFsxXSk7CisgICAgY29u
dHJvbGxlci5lbnF1ZXVlKGJ1ZmZlcik7CisgICAgcmV0dXJuIHByb21pc2UudGhlbigKKyAgICAg
ICAgZnVuY3Rpb24ocmVzKSB7CisgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhyZXMs
IHt2YWx1ZTogYnVmZmVyLCBkb25lOiBmYWxzZX0pOworICAgICAgICB9CisgICAgKTsKK30sICJH
ZXR0aW5nIGEgcmVhZGVyLCBjYWxsaW5nIHJlYWQgYW5kIGVucXVldWluZyBhIGNodW5rIHNob3Vs
ZCByZXN1bHQgaW4gdGhlIHJlYWQgcHJvbWlzZSBiZWluZyByZXNvbHZlZCB3aXRoIHNhaWQgY2h1
bmsiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIGxldCBjb250cm9sbGVyOwor
CisgICAgY29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVu
Y3Rpb24oYykgeworICAgICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAgICAgIH0sCisgICAg
ICAgIHR5cGU6ICJieXRlcyIKKyAgICB9KTsKKworICAgIGNvbnN0IHJlYWRlciA9IHJzLmdldFJl
YWRlcigpOworICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KFsxXSk7CisgICAgY29u
dHJvbGxlci5lbnF1ZXVlKGJ1ZmZlcik7CisgICAgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbigK
KyAgICAgICAgZnVuY3Rpb24ocmVzKSB7CisgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFs
cyhyZXMsIHt2YWx1ZTogYnVmZmVyLCBkb25lOiBmYWxzZX0pOwogICAgICAgICB9CiAgICAgKTsK
LX0sICJDYWxsaW5nIHJlYWQoKSBhZnRlciBhIGNodW5rIGhhcyBiZWVuIGVucXVldWVkIHNob3Vs
ZCByZXN1bHQgaW4gb2J0YWluaW5nIHNhaWQgY2h1bmsiKTsKK30sICJHZXR0aW5nIGEgcmVhZGVy
LCBlbnF1ZXVpbmcgYSBjaHVuayBhbmQgZmluYWxseSBjYWxsaW5nIHJlYWQgc2hvdWxkIHJlc3Vs
dCBpbiBhIHByb21pc2UgcmVzb2x2ZWQgd2l0aCBzYWlkIGNodW5rIik7CiAKIHRlc3QoZnVuY3Rp
b24oKSB7CiAgICAgbGV0IGNvbnRyb2xsZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300722</attachid>
            <date>2017-02-06 07:49:02 -0800</date>
            <delta_ts>2017-02-07 01:01:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167786-20170206164641.patch</filename>
            <type>text/plain</type>
            <size>19124</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBjNDljNjI1YzdjNjc4
NTRhNTFjYzE2MzllZTRlMTE5NjFhYTQ2YS4uNzU3ZTkyYmIzZWZmYTAzMmMwOGNmMzdmMTdhYjc5
NzAxYWY5ZWQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAyLTA2ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbUmVhZGFibGUgU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyIGVucXVldWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICBJbXBsZW1lbnRlZCBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIGVucXVldWUo
KSBtZXRob2QuIEFsc28gcmVwbGFjZWQKKyAgICAgICAgQHF1ZXVlIGJ5IGFuIEFycmF5IGluc3Rl
YWQgb2YgYSBkZWRpY2F0ZWQgcXVldWUgb2JqZWN0IChzYWlkIG9iamVjdCBpcworICAgICAgICB1
c2VmdWwgZm9yIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIsIGJ1dCBub3QgZm9yIFJl
YWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIpLgorCisgICAgICAgIEFkZGVkIDggdGVzdHMgdG8g
Y292ZXIgbmV3bHkgYWRkZWQgY29kZSBhcyB3ZWxsIGFzIGNvZGUgdGhhdCB3YXMgcHJldmlvdXNs
eSB1bnJlYWNoYWJsZS4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyLmpzOgorICAgICAgICAoZW5xdWV1ZSk6IEltcGxlbWVudGVkIGFzIGRl
ZmluZWQgYnkgc3BlYy4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3Ry
ZWFtSW50ZXJuYWxzLmpzOgorICAgICAgICAocHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyKTogVXBkYXRlZCBAcXVldWUuCisgICAgICAgIChyZWFkYWJsZUJ5dGVT
dHJlYW1Db250cm9sbGVyQ2FuY2VsKTogVXBkYXRlZCBAcXVldWUuCisgICAgICAgIChyZWFkYWJs
ZUJ5dGVTdHJlYW1Db250cm9sbGVyRXJyb3IpOiBVcGRhdGVkIEBxdWV1ZS4KKyAgICAgICAgKHJl
YWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJQdWxsKTogVXBkYXRlZCBAcXVldWUuCisgICAgICAg
IChyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRW5xdWV1ZSk6IEFkZGVkLgorICAgICAgICAo
cmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckVucXVldWVDaHVua1RvUXVldWUpOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanM6Cisg
ICAgICAgIChyZWFkYWJsZVN0cmVhbUZ1bGZpbGxSZWFkUmVxdWVzdCk6IEFkZGVkICh1c2VkIGF0
IGRpZmZlcmVudCBwbGFjZXMpLgorCiAyMDE3LTAyLTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gSW1wcm92ZSBo
YW5kbGluZyBvZiA8dmlkZW8+IHdpdGggb25seSBhdWRpbyB0cmFja3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVy
LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUNv
bnRyb2xsZXIuanMKaW5kZXggZjNkNDZjNWZlMTQxOGU3OGJlYjcwYjdiNDAwY2Y5MjZhNmIzODBm
OC4uYzJmZWIxNTc5MzhjMGFiZTMyZDJiYTg0M2JhZDk4NDM3YTUxYjY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xs
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuanMKQEAgLTI5LDggKzI5LDIyIEBAIGZ1bmN0aW9uIGVucXVldWUoY2h1
bmspCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy9GSVhNRTogSW1wbGVtZW50IGFwcHJv
cHJpYXRlIGJlaGF2aW9yLgotICAgIEB0aHJvd1R5cGVFcnJvcigiUmVhZGFibGVCeXRlU3RyZWFt
Q29udHJvbGxlciBlbnF1ZXVlKCkgaXMgbm90IGltcGxlbWVudGVkIik7CisgICAgaWYgKCFAaXNS
ZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyKHRoaXMpKQorICAgICAgICB0aHJvdyBAbWFrZVRo
aXNUeXBlRXJyb3IoIlJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIiLCAiZW5xdWV1ZSIpOwor
CisgICAgaWYgKHRoaXMuQGNsb3NlUmVxdWVzdGVkKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3Io
IlJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgaXMgcmVxdWVzdGVkIHRvIGNsb3NlIik7CisK
KyAgICBpZiAodGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtLkBzdGF0ZSAhPT0gQHN0cmVh
bVJlYWRhYmxlKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5v
dCByZWFkYWJsZSIpOworCisgICAgaWYgKCFAaXNPYmplY3QoY2h1bmspKQorICAgICAgICBAdGhy
b3dUeXBlRXJyb3IoIlByb3ZpZGVkIGNodW5rIGlzIG5vdCBhbiBvYmplY3QiKTsKKworICAgIGlm
ICghQEFycmF5QnVmZmVyLkBpc1ZpZXcoY2h1bmspKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3Io
IlByb3ZpZGVkIGNodW5rIGlzIG5vdCBhbiBBcnJheUJ1ZmZlciB2aWV3Iik7CisKKyAgICByZXR1
cm4gQHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVlKHRoaXMsIGNodW5rKTsKIH0K
IAogZnVuY3Rpb24gZXJyb3IoZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFscy5qcwppbmRleCAy
MDNiNDkzNmQ0NGRlZmEzOWYxZjU2NjMwOWMwZTAyYTEwODQ4NTdkLi4zZTczNTQ1NjA5NTU1NjQ5
NTdjZWM2YzNmOGEyOWY2YWVhM2I2MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHMuanMKQEAg
LTQyLDcgKzQyLDcgQEAgZnVuY3Rpb24gcHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZUJ5dGVTdHJl
YW1Db250cm9sbGVyKHN0cmVhbSwgdW5kZXJseWluZ0J5dGVTb3UKICAgICB0aGlzLkBwdWxsQWdh
aW4gPSBmYWxzZTsKICAgICB0aGlzLkBwdWxsaW5nID0gZmFsc2U7CiAgICAgQHJlYWRhYmxlQnl0
ZVN0cmVhbUNvbnRyb2xsZXJDbGVhclBlbmRpbmdQdWxsSW50b3ModGhpcyk7Ci0gICAgdGhpcy5A
cXVldWUgPSBAbmV3UXVldWUoKTsKKyAgICB0aGlzLkBxdWV1ZSA9IFtdOwogICAgIHRoaXMuQHRv
dGFsUXVldWVkQnl0ZXMgPSAwOwogICAgIHRoaXMuQHN0YXJ0ZWQgPSBmYWxzZTsKICAgICB0aGlz
LkBjbG9zZVJlcXVlc3RlZCA9IGZhbHNlOwpAQCAtMTAzLDcgKzEwMyw3IEBAIGZ1bmN0aW9uIHJl
YWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJDYW5jZWwoY29udHJvbGxlciwgcmVhc29uKQogCiAg
ICAgaWYgKGNvbnRyb2xsZXIuQHBlbmRpbmdQdWxsSW50b3MubGVuZ3RoID4gMCkKICAgICAgICAg
Y29udHJvbGxlci5AcGVuZGluZ1B1bGxJbnRvc1swXS5ieXRlc0ZpbGxlZCA9IDA7Ci0gICAgY29u
dHJvbGxlci5AcXVldWUgPSBAbmV3UXVldWUoKTsKKyAgICBjb250cm9sbGVyLkBxdWV1ZSA9IFtd
OwogICAgIGNvbnRyb2xsZXIuQHRvdGFsUXVldWVkQnl0ZXMgPSAwOwogICAgIHJldHVybiBAcHJv
bWlzZUludm9rZU9yTm9vcChjb250cm9sbGVyLkB1bmRlcmx5aW5nQnl0ZVNvdXJjZSwgImNhbmNl
bCIsIFtyZWFzb25dKTsKIH0KQEAgLTExNCw3ICsxMTQsNyBAQCBmdW5jdGlvbiByZWFkYWJsZUJ5
dGVTdHJlYW1Db250cm9sbGVyRXJyb3IoY29udHJvbGxlciwgZSkKIAogICAgIEBhc3NlcnQoY29u
dHJvbGxlci5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVJlYWRh
YmxlKTsKICAgICBAcmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNsZWFyUGVuZGluZ1B1bGxJ
bnRvcyhjb250cm9sbGVyKTsKLSAgICBjb250cm9sbGVyLkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOwor
ICAgIGNvbnRyb2xsZXIuQHF1ZXVlID0gW107CiAgICAgQHJlYWRhYmxlU3RyZWFtRXJyb3IoY29u
dHJvbGxlci5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtLCBlKTsKIH0KIApAQCAtMTg5LDcgKzE4
OSw3IEBAIGZ1bmN0aW9uIHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJQdWxsKGNvbnRyb2xs
ZXIpCiAKICAgICBpZiAoY29udHJvbGxlci5AdG90YWxRdWV1ZWRCeXRlcyA+IDApIHsKICAgICAg
ICAgQGFzc2VydChzdHJlYW0uQHJlYWRlci5AcmVhZFJlcXVlc3RzLmxlbmd0aCA9PT0gMCk7Ci0g
ICAgICAgIGNvbnN0IGVudHJ5ID0gQGRlcXVldWVWYWx1ZShjb250cm9sbGVyLkBxdWV1ZSk7Cisg
ICAgICAgIGNvbnN0IGVudHJ5ID0gY29udHJvbGxlci5AcXVldWUuQHNoaWZ0KCk7CiAgICAgICAg
IGNvbnRyb2xsZXIuQHRvdGFsUXVldWVkQnl0ZXMgLT0gZW50cnkuYnl0ZUxlbmd0aDsKICAgICAg
ICAgQHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJIYW5kbGVRdWV1ZURyYWluKGNvbnRyb2xs
ZXIpOwogICAgICAgICBsZXQgdmlldzsKQEAgLTI3MSwzICsyNzEsNjAgQEAgZnVuY3Rpb24gcmVh
ZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNhbGxQdWxsSWZOZWVkZWQoY29udHJvbGxlcikKICAg
ICAgICAgICAgIEByZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRXJyb3IoY29udHJvbGxlciwg
ZXJyb3IpOwogICAgIH0pOwogfQorCitmdW5jdGlvbiB0cmFuc2ZlckJ1ZmZlclRvQ3VycmVudFJl
YWxtKGJ1ZmZlcikKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICAvLyBGSVhNRTogRGV0ZXJt
aW5lIHdoYXQgc2hvdWxkIGJlIGRvbmUgaGVyZSBleGFjdGx5ICh3aGF0IGlzIGFscmVhZHkgZXhp
c3RpbmcgaW4gY3VycmVudAorICAgIC8vIGNvZGViYXNlIGFuZCB3aGF0IGhhcyB0byBiZSBhZGRl
ZCkuIEFjY29yZGluZyB0byBzcGVjLCBUcmFuc2ZlciBvcGVyYXRpb24gc2hvdWxkIGJlCisgICAg
Ly8gcGVyZm9ybWVkIGluIG9yZGVyIHRvIHRyYW5zZmVyIGJ1ZmZlciB0byBjdXJyZW50IHJlYWxt
LiBGb3IgdGhlIG1vbWVudCwgc2ltcGx5IHJldHVybgorICAgIC8vIHJlY2VpdmVkIGJ1ZmZlci4K
KyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiByZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyRW5xdWV1ZShjb250cm9sbGVyLCBjaHVuaykKK3sKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBjb25zdCBzdHJlYW0gPSBjb250cm9sbGVyLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW07
CisgICAgQGFzc2VydCghY29udHJvbGxlci5AY2xvc2VSZXF1ZXN0ZWQpOworICAgIEBhc3NlcnQo
c3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbVJlYWRhYmxlKTsKKyAgICBjb25zdCBidWZmZXIgPSBj
aHVuay5idWZmZXI7CisgICAgY29uc3QgYnl0ZU9mZnNldCA9IGNodW5rLmJ5dGVPZmZzZXQ7Cisg
ICAgY29uc3QgYnl0ZUxlbmd0aCA9IGNodW5rLmJ5dGVMZW5ndGg7CisgICAgY29uc3QgdHJhbnNm
ZXJyZWRCdWZmZXIgPSBAdHJhbnNmZXJCdWZmZXJUb0N1cnJlbnRSZWFsbShidWZmZXIpOworCisg
ICAgaWYgKEByZWFkYWJsZVN0cmVhbUhhc0RlZmF1bHRSZWFkZXIoc3RyZWFtKSkgeworICAgICAg
ICBpZiAoIXN0cmVhbS5AcmVhZGVyLkByZWFkUmVxdWVzdHMubGVuZ3RoKQorICAgICAgICAgICAg
QHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVlQ2h1bmtUb1F1ZXVlKGNvbnRyb2xs
ZXIsIHRyYW5zZmVycmVkQnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBAYXNzZXJ0KCFjb250cm9sbGVyLkBxdWV1ZS5sZW5ndGgpOwor
ICAgICAgICAgICAgbGV0IHRyYW5zZmVycmVkVmlldyA9IG5ldyBAVWludDhBcnJheSh0cmFuc2Zl
cnJlZEJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCk7CisgICAgICAgICAgICBAcmVhZGFi
bGVTdHJlYW1GdWxmaWxsUmVhZFJlcXVlc3Qoc3RyZWFtLCB0cmFuc2ZlcnJlZFZpZXcsIGZhbHNl
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKEByZWFkYWJs
ZVN0cmVhbUhhc0JZT0JSZWFkZXIoc3RyZWFtKSkgeworICAgICAgICAvLyBGSVhNRTogVG8gYmUg
aW1wbGVtZW50ZWQgb25jZSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIgaGFzIGJlZW4gaW1wbGVt
ZW50ZWQgKGZvciB0aGUgbW9tZW50LAorICAgICAgICAvLyB0ZXN0IGNhbm5vdCBiZSB0cnVlKS4K
KyAgICAgICAgQHRocm93VHlwZUVycm9yKCJSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIGVu
cXVldWUgb3BlcmF0aW9uIGhhcyBubyBzdXBwb3J0IGZvciBCWU9CIHJlYWRlciIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgQGFzc2VydCghQGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQo
c3RyZWFtKSk7CisgICAgQHJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1ZXVlQ2h1bmtU
b1F1ZXVlKGNvbnRyb2xsZXIsIHRyYW5zZmVycmVkQnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVu
Z3RoKTsKK30KKworZnVuY3Rpb24gcmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckVucXVldWVD
aHVua1RvUXVldWUoY29udHJvbGxlciwgYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKQor
eworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGNvbnRyb2xsZXIuQHF1ZXVlLkBwdXNoKHsKKyAg
ICAgICAgYnVmZmVyOiBidWZmZXIsCisgICAgICAgIGJ5dGVPZmZzZXQ6IGJ5dGVPZmZzZXQsCisg
ICAgICAgIGJ5dGVMZW5ndGg6IGJ5dGVMZW5ndGgKKyAgICB9KTsKKyAgICBjb250cm9sbGVyLkB0
b3RhbFF1ZXVlZEJ5dGVzICs9IGJ5dGVMZW5ndGg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKaW5kZXgg
NGIzZDYxZmFkN2M0ZmQzOThhYjNlMzdkNGY4MTJkNGQ0MDk0MWE3ZC4uODcwOTRiZjZhYmQ2MThj
YTVmYTY1MDY5MWM1Yjc3MzFiZmEwMDM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwpAQCAtNDEzLDYg
KzQxMywxMyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUNsb3NlKHN0cmVhbSkKICAgICByZWFk
ZXIuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKCk7CiB9CiAKK2Z1bmN0
aW9uIHJlYWRhYmxlU3RyZWFtRnVsZmlsbFJlYWRSZXF1ZXN0KHN0cmVhbSwgY2h1bmssIGRvbmUp
Cit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0
cy5Ac2hpZnQoKS5AcmVzb2x2ZS5AY2FsbChAdW5kZWZpbmVkLCB7dmFsdWU6IGNodW5rLCBkb25l
OiBkb25lfSk7Cit9CisKIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJF
bnF1ZXVlKGNvbnRyb2xsZXIsIGNodW5rKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTQyMiw3
ICs0MjksNyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRW5xdWV1
ZShjb250cm9sbGVyLCBjaHVuaykKICAgICBAYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJl
YW1SZWFkYWJsZSk7CiAKICAgICBpZiAoQGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQoc3RyZWFtKSAm
JiBzdHJlYW0uQHJlYWRlci5AcmVhZFJlcXVlc3RzLmxlbmd0aCkgewotICAgICAgICBzdHJlYW0u
QHJlYWRlci5AcmVhZFJlcXVlc3RzLkBzaGlmdCgpLkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQs
IHt2YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbUZ1
bGZpbGxSZWFkUmVxdWVzdChzdHJlYW0sIGNodW5rLCBmYWxzZSk7CiAgICAgICAgIEByZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQ2FsbFB1bGxJZk5lZWRlZChjb250cm9sbGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1M2NkZjczY2QyY2YyNTBhYjI3YjU0NTIzYmMw
MzNkYTI4MTY4ZjdlLi5kYTZkMGFiNmZmOWVmZDdiYmQ3YjljYjhhZTI4YTkwMDNkMTQ0OTE5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDItMDYgIFJvbWFpbiBCZWxsZXNzb3J0ICA8cm9t
YWluLmJlbGxlc3NvcnRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtSZWFkYWJsZSBTdHJlYW1z
IEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgZW5xdWV1ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc3ODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZGVkIDggdGVz
dHMgdG8gY292ZXIgbmV3bHkgYWRkZWQgY29kZSBhcyB3ZWxsIGFzIGNvZGUgdGhhdCB3YXMgcHJl
dmlvdXNseSB1bnJlYWNoYWJsZS4KKworICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtYnl0ZS1z
dHJlYW0tY29udHJvbGxlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWFkYWJs
ZS1ieXRlLXN0cmVhbS1jb250cm9sbGVyLmpzOgorCiAyMDE3LTAyLTA2ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10g
SW1wcm92ZSBoYW5kbGluZyBvZiA8dmlkZW8+IHdpdGggb25seSBhdWRpbyB0cmFja3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0tY29udHJvbGxl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFt
LWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0CmluZGV4IGY0OWQzMzc3OGE4Mzc3ZjZiMmQ3MDZmYjA5
ZjBmMTcwOGY3ZmM3MDIuLjMzNWExNmU0OTgyOWE1YTM3MDM4ZTk0MDY0NDEyMzU1NWRmZjlmMTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0tY29u
dHJvbGxlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1i
eXRlLXN0cmVhbS1jb250cm9sbGVyLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDExIEBAIFBBU1Mg
Q3JlYXRpbmcgYSBSZWFkYWJsZVN0cmVhbSB3aXRoIGFuIHVuZGVybHlpbmdTb3VyY2Ugd2l0aCB0
eXBlIHByb3BlcnR5IHNldCB0CiBQQVNTIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgaW5z
dGFuY2VzIHNob3VsZCBoYXZlIHRoZSBjb3JyZWN0IGxpc3Qgb2YgcHJvcGVydGllcyAKIFBBU1Mg
Q2FsbGluZyBlcnJvcigpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJlbnQgZnJvbSBSZWFkYWJs
ZUJ5dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKIFBBU1MgQ2Fs
bGluZyBjbG9zZSgpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJlbnQgZnJvbSBSZWFkYWJsZUJ5
dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgQ2FsbGlu
ZyBlbnF1ZXVlKCkgd2l0aCBhIHRoaXMgb2JqZWN0IGRpZmZlcmVudCBmcm9tIFJlYWRhYmxlQnl0
ZVN0cmVhbUNvbnRyb2xsZXIgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBDYWxsaW5n
IGVucXVldWUoKSB3aGVuIGNsb3NlIGhhcyBiZWVuIHJlcXVlc3RlZCBidXQgbm90IHlldCBwZXJm
b3JtZWQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAorUEFTUyBDYWxsaW5nIGVucXVldWUoKSB3
aGVuIHN0cmVhbSBpcyBub3QgcmVhZGFibGUgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIAorUEFT
UyBDYWxsaW5nIGVucXVldWUoKSB3aXRoIGEgY2h1bmsgdGhhdCBpcyBub3QgYW4gb2JqZWN0IHNo
b3VsZCB0cmhvdyBhIFR5cGVFcnJvciAKK1BBU1MgQ2FsbGluZyBlbnF1ZXVlKCkgd2l0aCBhIGNo
dW5rIHRoYXQgaXMgbm90IGFuIEFycmF5QnVmZmVyVmlldyBzaG91bGQgdGhyb3cgYSBUeXBlRXJy
b3IgCiBQQVNTIENhbGxpbmcgZXJyb3IoKSBhZnRlciBjYWxsaW5nIGNsb3NlKCkgc2hvdWxkIHRo
cm93IGEgVHlwZUVycm9yIAogUEFTUyBDYWxsaW5nIGVycm9yKCkgYWZ0ZXIgY2FsbGluZyBlcnJv
cigpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKIFBBU1MgQ2FsbGluZyBjbG9zZSgpIGFmdGVy
IGNhbGxpbmcgY2xvc2UoKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCkBAIC0xMSw3ICsxNiw5
IEBAIFBBU1MgQ2FsbGluZyByZWFkKCkgb24gYSByZWFkZXIgYXNzb2NpYXRlZCB0byBhIGNvbnRy
b2xsZXIgdGhhdCBoYXMgYmVlbiBlcnJvcmVkCiBQQVNTIENhbGxpbmcgcmVhZCgpIG9uIGEgcmVh
ZGVyIGFzc29jaWF0ZWQgdG8gYSBjb250cm9sbGVyIHRoYXQgaGFzIGJlZW4gY2xvc2VkIHNob3Vs
ZCBub3QgYmUgcmVqZWN0ZWQgCiBQQVNTIFBlbmRpbmcgcmVhZGluZyBwcm9taXNlIHNob3VsZCBi
ZSByZWplY3RlZCBpZiBjb250cm9sbGVyIGlzIGVycm9yZWQgKGNhc2Ugd2hlcmUgYXV0b0FsbG9j
YXRlQ2h1bmtTaXplIGlzIHVuZGVmaW5lZCkgCiBGQUlMIFBlbmRpbmcgcmVhZGluZyBwcm9taXNl
IHNob3VsZCBiZSByZWplY3RlZCBpZiBjb250cm9sbGVyIGlzIGVycm9yZWQgKGNhc2Ugd2hlcmUg
YXV0b0FsbG9jYXRlQ2h1bmtTaXplIGlzIHNwZWNpZmllZCkgQ2FuJ3QgZmluZCBwcml2YXRlIHZh
cmlhYmxlOiBAVWludDhBcnJheQotRkFJTCBDYWxsaW5nIHJlYWQoKSBhZnRlciBhIGNodW5rIGhh
cyBiZWVuIGVucXVldWVkIHNob3VsZCByZXN1bHQgaW4gb2J0YWluaW5nIHNhaWQgY2h1bmsgUmVh
ZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBlbnF1ZXVlKCkgaXMgbm90IGltcGxlbWVudGVkCitQ
QVNTIEVucXVldWluZyBhIGNodW5rLCBnZXR0aW5nIGEgcmVhZGVyIGFuZCBjYWxsaW5nIHJlYWQg
c2hvdWxkIHJlc3VsdCBpbiBhIHByb21pc2UgcmVzb2x2ZWQgd2l0aCBzYWlkIGNodW5rIAorUEFT
UyBHZXR0aW5nIGEgcmVhZGVyLCBjYWxsaW5nIHJlYWQgYW5kIGVucXVldWluZyBhIGNodW5rIHNo
b3VsZCByZXN1bHQgaW4gdGhlIHJlYWQgcHJvbWlzZSBiZWluZyByZXNvbHZlZCB3aXRoIHNhaWQg
Y2h1bmsgCitQQVNTIEdldHRpbmcgYSByZWFkZXIsIGVucXVldWluZyBhIGNodW5rIGFuZCBmaW5h
bGx5IGNhbGxpbmcgcmVhZCBzaG91bGQgcmVzdWx0IGluIGEgcHJvbWlzZSByZXNvbHZlZCB3aXRo
IHNhaWQgY2h1bmsgCiBQQVNTIEJ5IGRlZmF1bHQgaW5pdGlhbCB2YWx1ZSBvZiBkZXNpcmVkU2l6
ZSBzaG91bGQgYmUgMSAKIFBBU1MgQ2FsbGluZyBjYW5jZWwoKSBvbiBhIHJlYWRhYmxlIFJlYWRh
YmxlU3RyZWFtIHRoYXQgaXMgbm90IGxvY2tlZCB0byBhIHJlYWRlciBzaG91bGQgcmV0dXJuIGEg
cHJvbWlzZSB3aG9zZSBmdWxmaWxsbWVudCBoYW5kbGVyIHJldHVybnMgdW5kZWZpbmVkIAogUEFT
UyBUZXN0IHRoYXQgcHVsbCBpcyBjYWxsZWQgb25jZSB3aGVuIGEgbmV3IFJlYWRhYmxlU3RyZWFt
IGlzIGNyZWF0ZWQgd2l0aCBhIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgCkBAIC0yMSw2
ICsyOCwxMSBAQCBQQVNTIENyZWF0aW5nIGEgUmVhZGFibGVTdHJlYW0gd2l0aCBhbiB1bmRlcmx5
aW5nU291cmNlIHdpdGggdHlwZSBwcm9wZXJ0eSBzZXQgdAogUEFTUyBSZWFkYWJsZUJ5dGVTdHJl
YW1Db250cm9sbGVyIGluc3RhbmNlcyBzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBsaXN0IG9mIHBy
b3BlcnRpZXMgCiBQQVNTIENhbGxpbmcgZXJyb3IoKSB3aXRoIGEgdGhpcyBvYmplY3QgZGlmZmVy
ZW50IGZyb20gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBzaG91bGQgdGhyb3cgYSBUeXBl
RXJyb3IgCiBQQVNTIENhbGxpbmcgY2xvc2UoKSB3aXRoIGEgdGhpcyBvYmplY3QgZGlmZmVyZW50
IGZyb20gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlciBzaG91bGQgdGhyb3cgYSBUeXBlRXJy
b3IgCitQQVNTIENhbGxpbmcgZW5xdWV1ZSgpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJlbnQg
ZnJvbSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciAKK1BBU1MgQ2FsbGluZyBlbnF1ZXVlKCkgd2hlbiBjbG9zZSBoYXMgYmVlbiByZXF1ZXN0ZWQg
YnV0IG5vdCB5ZXQgcGVyZm9ybWVkIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKK1BBU1MgQ2Fs
bGluZyBlbnF1ZXVlKCkgd2hlbiBzdHJlYW0gaXMgbm90IHJlYWRhYmxlIHNob3VsZCB0aHJvdyBh
IFR5cGVFcnJvciAKK1BBU1MgQ2FsbGluZyBlbnF1ZXVlKCkgd2l0aCBhIGNodW5rIHRoYXQgaXMg
bm90IGFuIG9iamVjdCBzaG91bGQgdHJob3cgYSBUeXBlRXJyb3IgCitQQVNTIENhbGxpbmcgZW5x
dWV1ZSgpIHdpdGggYSBjaHVuayB0aGF0IGlzIG5vdCBhbiBBcnJheUJ1ZmZlclZpZXcgc2hvdWxk
IHRocm93IGEgVHlwZUVycm9yIAogUEFTUyBDYWxsaW5nIGVycm9yKCkgYWZ0ZXIgY2FsbGluZyBj
bG9zZSgpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAKIFBBU1MgQ2FsbGluZyBlcnJvcigpIGFm
dGVyIGNhbGxpbmcgZXJyb3IoKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgCiBQQVNTIENhbGxp
bmcgY2xvc2UoKSBhZnRlciBjYWxsaW5nIGNsb3NlKCkgc2hvdWxkIHRocm93IGEgVHlwZUVycm9y
IApAQCAtMjksNyArNDEsOSBAQCBQQVNTIENhbGxpbmcgcmVhZCgpIG9uIGEgcmVhZGVyIGFzc29j
aWF0ZWQgdG8gYSBjb250cm9sbGVyIHRoYXQgaGFzIGJlZW4gZXJyb3JlZAogUEFTUyBDYWxsaW5n
IHJlYWQoKSBvbiBhIHJlYWRlciBhc3NvY2lhdGVkIHRvIGEgY29udHJvbGxlciB0aGF0IGhhcyBi
ZWVuIGNsb3NlZCBzaG91bGQgbm90IGJlIHJlamVjdGVkIAogUEFTUyBQZW5kaW5nIHJlYWRpbmcg
cHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQgaWYgY29udHJvbGxlciBpcyBlcnJvcmVkIChjYXNl
IHdoZXJlIGF1dG9BbGxvY2F0ZUNodW5rU2l6ZSBpcyB1bmRlZmluZWQpIAogRkFJTCBQZW5kaW5n
IHJlYWRpbmcgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQgaWYgY29udHJvbGxlciBpcyBlcnJv
cmVkIChjYXNlIHdoZXJlIGF1dG9BbGxvY2F0ZUNodW5rU2l6ZSBpcyBzcGVjaWZpZWQpIENhbid0
IGZpbmQgcHJpdmF0ZSB2YXJpYWJsZTogQFVpbnQ4QXJyYXkKLUZBSUwgQ2FsbGluZyByZWFkKCkg
YWZ0ZXIgYSBjaHVuayBoYXMgYmVlbiBlbnF1ZXVlZCBzaG91bGQgcmVzdWx0IGluIG9idGFpbmlu
ZyBzYWlkIGNodW5rIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgZW5xdWV1ZSgpIGlzIG5v
dCBpbXBsZW1lbnRlZAorUEFTUyBFbnF1ZXVpbmcgYSBjaHVuaywgZ2V0dGluZyBhIHJlYWRlciBh
bmQgY2FsbGluZyByZWFkIHNob3VsZCByZXN1bHQgaW4gYSBwcm9taXNlIHJlc29sdmVkIHdpdGgg
c2FpZCBjaHVuayAKK1BBU1MgR2V0dGluZyBhIHJlYWRlciwgY2FsbGluZyByZWFkIGFuZCBlbnF1
ZXVpbmcgYSBjaHVuayBzaG91bGQgcmVzdWx0IGluIHRoZSByZWFkIHByb21pc2UgYmVpbmcgcmVz
b2x2ZWQgd2l0aCBzYWlkIGNodW5rIAorUEFTUyBHZXR0aW5nIGEgcmVhZGVyLCBlbnF1ZXVpbmcg
YSBjaHVuayBhbmQgZmluYWxseSBjYWxsaW5nIHJlYWQgc2hvdWxkIHJlc3VsdCBpbiBhIHByb21p
c2UgcmVzb2x2ZWQgd2l0aCBzYWlkIGNodW5rIAogUEFTUyBCeSBkZWZhdWx0IGluaXRpYWwgdmFs
dWUgb2YgZGVzaXJlZFNpemUgc2hvdWxkIGJlIDEgCiBQQVNTIENhbGxpbmcgY2FuY2VsKCkgb24g
YSByZWFkYWJsZSBSZWFkYWJsZVN0cmVhbSB0aGF0IGlzIG5vdCBsb2NrZWQgdG8gYSByZWFkZXIg
c2hvdWxkIHJldHVybiBhIHByb21pc2Ugd2hvc2UgZnVsZmlsbG1lbnQgaGFuZGxlciByZXR1cm5z
IHVuZGVmaW5lZCAKIFBBU1MgVGVzdCB0aGF0IHB1bGwgaXMgY2FsbGVkIG9uY2Ugd2hlbiBhIG5l
dyBSZWFkYWJsZVN0cmVhbSBpcyBjcmVhdGVkIHdpdGggYSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0
cmVhbS1jb250cm9sbGVyLmpzIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0
cmVhbS1jb250cm9sbGVyLmpzCmluZGV4IDIzMmZhMDU4NjdkMzdjNzVjZmI1NjQxMmI4ZjRlZmIz
N2ZhZGI0OWMuLmQwYzk3MmUzNzE5YjQ3ZTQ0ZGViMDBjOTIzYWEyMTg5MjE0ZWQ3MzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0tY29udHJvbGxl
ci5qcworKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtLWNvbnRy
b2xsZXIuanMKQEAgLTg3LDYgKzg3LDg2IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHR5
cGU6ICJieXRlcyIKICAgICB9KTsKIAorICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigi
Q2FuIG9ubHkgY2FsbCBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmVucXVldWUgb24gaW5z
dGFuY2VzIG9mIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIiKSwKKyAgICAgICAgZnVuY3Rp
b24oKSB7IGNvbnRyb2xsZXIuZW5xdWV1ZS5hcHBseShycywgbmV3IEludDhBcnJheSgxKSk7IH0p
OworfSwgIkNhbGxpbmcgZW5xdWV1ZSgpIHdpdGggYSB0aGlzIG9iamVjdCBkaWZmZXJlbnQgZnJv
bSBSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGxldCBjb250cm9sbGVyOworCisgICAgY29uc3Qg
cnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgewor
ICAgICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAgICAgIH0sCisgICAgICAgIHR5cGU6ICJi
eXRlcyIKKyAgICB9KTsKKworICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgSW50OEFycmF5KDIp
KTsKKyAgICBjb250cm9sbGVyLmNsb3NlKCk7CisKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBl
RXJyb3IoIlJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgaXMgcmVxdWVzdGVkIHRvIGNsb3Nl
IiksCisgICAgICAgIGZ1bmN0aW9uKCkgeyBjb250cm9sbGVyLmVucXVldWUobmV3IEludDhBcnJh
eSgxKSk7IH0pOworfSwgIkNhbGxpbmcgZW5xdWV1ZSgpIHdoZW4gY2xvc2UgaGFzIGJlZW4gcmVx
dWVzdGVkIGJ1dCBub3QgeWV0IHBlcmZvcm1lZCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IiKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQgY29udHJvbGxlcjsKKworICAgIGNvbnN0IHJz
ID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGMpIHsKKyAg
ICAgICAgICAgIGNvbnRyb2xsZXIgPSBjOworICAgICAgICB9LAorICAgICAgICB0eXBlOiAiYnl0
ZXMiCisgICAgfSk7CisgICAgY29udHJvbGxlci5jbG9zZSgpOworCisgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKSwKKyAgICAg
ICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IEludDhB
cnJheSgxKSk7CisgICAgICAgIH0pOworfSwgIkNhbGxpbmcgZW5xdWV1ZSgpIHdoZW4gc3RyZWFt
IGlzIG5vdCByZWFkYWJsZSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IiKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICBsZXQgY29udHJvbGxlcjsKKworICAgIGNvbnN0IHJzID0gbmV3IFJlYWRh
YmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGNv
bnRyb2xsZXIgPSBjOworICAgICAgICB9LAorICAgICAgICB0eXBlOiAiYnl0ZXMiCisgICAgfSk7
CisKKyAgICBjb25zdCBpbnZhbGlkQ2h1bmsgPSBmdW5jdGlvbigpIHt9OworCisgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBjaHVuayBpcyBub3QgYW4gb2JqZWN0Iiks
CisgICAgICAgIGZ1bmN0aW9uKCkgeyBjb250cm9sbGVyLmVucXVldWUoaW52YWxpZENodW5rKTsg
fSk7Cit9LCAiQ2FsbGluZyBlbnF1ZXVlKCkgd2l0aCBhIGNodW5rIHRoYXQgaXMgbm90IGFuIG9i
amVjdCBzaG91bGQgdHJob3cgYSBUeXBlRXJyb3IiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
ICBsZXQgY29udHJvbGxlcjsKKworICAgIGNvbnN0IHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsK
KyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBj
OworICAgICAgICB9LAorICAgICAgICB0eXBlOiAiYnl0ZXMiCisgICAgfSk7CisKKyAgICBjb25z
dCBpbnZhbGlkQ2h1bmsgPSB7fTsKKworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigi
UHJvdmlkZWQgY2h1bmsgaXMgbm90IGFuIG9iamVjdCIpLAorICAgICAgICBmdW5jdGlvbigpIHsg
Y29udHJvbGxlci5lbnF1ZXVlKGludmFsaWRDaHVuayk7IH0pOworfSwgIkNhbGxpbmcgZW5xdWV1
ZSgpIHdpdGggYSBjaHVuayB0aGF0IGlzIG5vdCBhbiBBcnJheUJ1ZmZlclZpZXcgc2hvdWxkIHRo
cm93IGEgVHlwZUVycm9yIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvbnRyb2xs
ZXI7CisKKyAgICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0
OiBmdW5jdGlvbihjKSB7CisgICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfSwK
KyAgICAgICAgdHlwZTogImJ5dGVzIgorICAgIH0pOworCiAgICAgYXNzZXJ0X3Rocm93cyhuZXcg
VHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKSwKICAgICAgICAgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CkBAIC0yMjQsMTQgKzMw
NCw1NSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHR5cGU6ICJieXRlcyIK
ICAgICB9KTsKIAotICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSgidGVzdCIpOworICAgIGNvbnN0IGJ1
ZmZlciA9IG5ldyBVaW50OEFycmF5KFszXSk7CisgICAgY29udHJvbGxlci5lbnF1ZXVlKGJ1ZmZl
cik7CiAKICAgICByZXR1cm4gcnMuZ2V0UmVhZGVyKCkucmVhZCgpLnRoZW4oCiAgICAgICAgIGZ1
bmN0aW9uKHJlcykgewotICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMocmVzLCB7dmFs
dWU6ICJ0ZXN0IiwgZG9uZTogZmFsc2V9KTsKKyAgICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1
YWxzKHJlcywge3ZhbHVlOiBidWZmZXIsIGRvbmU6IGZhbHNlfSk7CisgICAgICAgIH0KKyAgICAp
OworfSwgIkVucXVldWluZyBhIGNodW5rLCBnZXR0aW5nIGEgcmVhZGVyIGFuZCBjYWxsaW5nIHJl
YWQgc2hvdWxkIHJlc3VsdCBpbiBhIHByb21pc2UgcmVzb2x2ZWQgd2l0aCBzYWlkIGNodW5rIik7
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQgY29udHJvbGxlcjsKKworICAg
IGNvbnN0IHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9u
KGMpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBjOworICAgICAgICB9LAorICAgICAgICB0
eXBlOiAiYnl0ZXMiCisgICAgfSk7CisKKyAgICBsZXQgcHJvbWlzZSA9IHJzLmdldFJlYWRlcigp
LnJlYWQoKTsKKyAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShbMV0pOworICAgIGNv
bnRyb2xsZXIuZW5xdWV1ZShidWZmZXIpOworICAgIHJldHVybiBwcm9taXNlLnRoZW4oCisgICAg
ICAgIGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMocmVz
LCB7dmFsdWU6IGJ1ZmZlciwgZG9uZTogZmFsc2V9KTsKKyAgICAgICAgfQorICAgICk7Cit9LCAi
R2V0dGluZyBhIHJlYWRlciwgY2FsbGluZyByZWFkIGFuZCBlbnF1ZXVpbmcgYSBjaHVuayBzaG91
bGQgcmVzdWx0IGluIHRoZSByZWFkIHByb21pc2UgYmVpbmcgcmVzb2x2ZWQgd2l0aCBzYWlkIGNo
dW5rIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICBsZXQgY29udHJvbGxlcjsK
KworICAgIGNvbnN0IHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1
bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBjOworICAgICAgICB9LAorICAg
ICAgICB0eXBlOiAiYnl0ZXMiCisgICAgfSk7CisKKyAgICBjb25zdCByZWFkZXIgPSBycy5nZXRS
ZWFkZXIoKTsKKyAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShbMV0pOworICAgIGNv
bnRyb2xsZXIuZW5xdWV1ZShidWZmZXIpOworICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4o
CisgICAgICAgIGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVh
bHMocmVzLCB7dmFsdWU6IGJ1ZmZlciwgZG9uZTogZmFsc2V9KTsKICAgICAgICAgfQogICAgICk7
Ci19LCAiQ2FsbGluZyByZWFkKCkgYWZ0ZXIgYSBjaHVuayBoYXMgYmVlbiBlbnF1ZXVlZCBzaG91
bGQgcmVzdWx0IGluIG9idGFpbmluZyBzYWlkIGNodW5rIik7Cit9LCAiR2V0dGluZyBhIHJlYWRl
ciwgZW5xdWV1aW5nIGEgY2h1bmsgYW5kIGZpbmFsbHkgY2FsbGluZyByZWFkIHNob3VsZCByZXN1
bHQgaW4gYSBwcm9taXNlIHJlc29sdmVkIHdpdGggc2FpZCBjaHVuayIpOwogCiB0ZXN0KGZ1bmN0
aW9uKCkgewogICAgIGxldCBjb250cm9sbGVyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>