<?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>203134</bug_id>
          
          <creation_ts>2019-10-17 21:16:46 -0700</creation_ts>
          <short_desc>Integrate media query evaluation into HTML5 event loop</short_desc>
          <delta_ts>2019-11-05 09:37: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>CSS</component>
          <version>WebKit Nightly Build</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=203855</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>203430</dependson>
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581282</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-17 21:16:46 -0700</bug_when>
    <thetext>Media queries&apos; listeners should be called during the step to update the rendering, not after each layout update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581283</commentid>
    <comment_count>1</comment_count>
      <attachid>381267</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-17 21:18:43 -0700</bug_when>
    <thetext>Created attachment 381267
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581284</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-17 21:18:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/56396316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581333</commentid>
    <comment_count>3</comment_count>
      <attachid>381278</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-17 23:24:31 -0700</bug_when>
    <thetext>Created attachment 381278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581682</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2019-10-19 00:06:44 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581683</commentid>
    <comment_count>5</comment_count>
      <attachid>381278</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-19 00:35:00 -0700</bug_when>
    <thetext>Comment on attachment 381278
Patch

Thanks all for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581685</commentid>
    <comment_count>6</comment_count>
      <attachid>381278</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-19 01:31:07 -0700</bug_when>
    <thetext>Comment on attachment 381278
Patch

Clearing flags on attachment: 381278

Committed r251322: &lt;https://trac.webkit.org/changeset/251322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581686</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-19 01:31:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583957</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-25 12:25:32 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 203430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586093</commentid>
    <comment_count>9</comment_count>
      <attachid>382507</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-31 15:10:16 -0700</bug_when>
    <thetext>Created attachment 382507
Updated for trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586212</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-31 19:19:05 -0700</bug_when>
    <thetext>Ping reviewers. There is a minor test code change &amp; fix since the rollout revealed a bug with respect to accessibility settings update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586359</commentid>
    <comment_count>11</comment_count>
      <attachid>382507</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-01 08:17:11 -0700</bug_when>
    <thetext>Comment on attachment 382507
Updated for trunk

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

&gt; Source/WebCore/page/Page.cpp:568
&gt; +    forEachDocument([] (Document&amp; document) {

We probably don&apos;t have a policy about this but no space between ] and ( wins 2:1 when searching WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586448</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-01 11:11:47 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #11)
&gt; Comment on attachment 382507 [details]
&gt; Updated for trunk
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382507&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:568
&gt; &gt; +    forEachDocument([] (Document&amp; document) {
&gt; 
&gt; We probably don&apos;t have a policy about this but no space between ] and ( wins
&gt; 2:1 when searching WebCore.

Huh, I always add a space there. We should probably discuss it on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586452</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-01 11:16:15 -0700</bug_when>
    <thetext>Committed r251930: &lt;https://trac.webkit.org/changeset/251930&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381267</attachid>
            <date>2019-10-17 21:18:43 -0700</date>
            <delta_ts>2019-10-17 23:24:29 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip203134.patch</filename>
            <type>text/plain</type>
            <size>2719</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAkocmV2aXNpb24g
MjUxMjY5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFR
dWVyeU1hdGNoZXI6OnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKCkKK3ZvaWQgTWVkaWFRdWVyeU1hdGNo
ZXI6OmV2YWx1YXRlQWxsKCkKIHsKICAgICBBU1NFUlQobV9kb2N1bWVudCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCShyZXZpc2lvbiAyNTEyNjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNyArNTMsNyBAQAogCiAgICAgdW5zaWduZWQgZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmFsdWF0aW9uUm91bmQ7IH0KIAotICAgIHZvaWQgc3R5bGVSZXNvbHZlckNoYW5n
ZWQoKTsKKyAgICB2b2lkIGV2YWx1YXRlQWxsKCk7CiAKICAgICBib29sIGV2YWx1YXRlKGNvbnN0
IE1lZGlhUXVlcnlTZXQmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAyNTEyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTE1LDEzICszOTE1LDE5IEBACiAKIHZvaWQgRG9jdW1lbnQ6OmV2YWx1YXRlTWVk
aWFRdWVyeUxpc3QoKQogewotICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQotICAgICAgICBt
X21lZGlhUXVlcnlNYXRjaGVyLT5zdHlsZVJlc29sdmVyQ2hhbmdlZCgpOwotICAgIAorICAgIFNj
cmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsK
ICAgICBjaGVja1ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMoKTsKICAgICBjaGVja0FwcGVhcmFu
Y2VEZXBlbmRlbnRQaWN0dXJlcygpOwogfQogCit2b2lkIERvY3VtZW50OjpldmFsdWF0ZU1lZGlh
UXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKQoreworICAgIGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZXZhbHVhdGVB
bGwoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6Y2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVz
KCkKIHsKICAgICBWZWN0b3I8SFRNTFBpY3R1cmVFbGVtZW50KiwgMTY+IGNoYW5nZWRQaWN0dXJl
czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyNTEyNjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTU2LDYgKzU1Niw3IEBA
CiAgICAgdm9pZCBzZXRHb3RvQW5jaG9yTmVlZGVkQWZ0ZXJTdHlsZXNoZWV0c0xvYWQoYm9vbCBi
KSB7IG1fZ290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkID0gYjsgfQogCiAgICAg
dm9pZCBldmFsdWF0ZU1lZGlhUXVlcnlMaXN0KCk7CisgICAgdm9pZCBldmFsdWF0ZU1lZGlhUXVl
cmllc0FuZFJlcG9ydENoYW5nZXMoKTsKIAogICAgIEZvcm1Db250cm9sbGVyJiBmb3JtQ29udHJv
bGxlcigpOwogICAgIFZlY3RvcjxTdHJpbmc+IGZvcm1FbGVtZW50c1N0YXRlKCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDI1MTI2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMDEsNyArMTMwMSw4IEBACiAKICAg
ICAvLyBGSVhNRTogUnVuIHRoZSBzY3JvbGwgc3RlcHMKIAotICAgIC8vIEZJWE1FOiBFdmFsdWF0
ZSBtZWRpYSBxdWVyaWVzIGFuZCByZXBvcnQgY2hhbmdlcy4KKyAgICBmb3IgKGF1dG8mIGRvY3Vt
ZW50IDogY29sbGVjdERvY3VtZW50cygpKQorICAgICAgICBkb2N1bWVudC0+ZXZhbHVhdGVNZWRp
YVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCk7CiAKICAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4g
ZG9jdW1lbnRzID0gY29sbGVjdERvY3VtZW50cygpOyAvLyBUaGUgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lIGNhbGxiYWNrcyBtYXkgY2hhbmdlIHRoZSBmcmFtZSBoaWVyYXJjaHkgb2YgdGhlIHBhZ2UK
ICAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogZG9jdW1lbnRzKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381278</attachid>
            <date>2019-10-17 23:24:31 -0700</date>
            <delta_ts>2019-10-31 15:10:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203134-20191017232430.patch</filename>
            <type>text/plain</type>
            <size>15180</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MTI3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTEwLTE3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEludGVncmF0ZSBtZWRpYSBxdWVy
eSBldmFsdWF0aW9uIGludG8gSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NjM5NjMxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb3ZlZCB0aGUgY29kZSB0byBjYWxsIG1lZGlhIHF1ZXJ5IGxpc3RlbmVycyB0byBIVE1M
NSBldmVudCBsb29wJ3Mgc3RlcCB0byB1cGRhdGUgdGhlIHJlbmRlcmluZzoKKyAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3VwZGF0
ZS10aGUtcmVuZGVyaW5nCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvbXEtaW52ZXJ0ZWQt
Y29sb3JzLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0
L21lZGlhL21xLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVy
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGVBbGwpOiBSZW5hbWVkIGZyb20gc3R5
bGVSZXNvbHZlckNoYW5nZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMpOiBTcGxpdCBmcm9tIGV2YWx1YXRl
TWVkaWFRdWVyeUxpc3QuCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgc3RpbGwgY2FsbGVkIHJp
Z2h0IGFmdGVyIGVhY2ggbGF5b3V0IHVwZGF0ZSBzbyB0aGF0IHBpY3R1cmUgZWxlbWVudCBtYXkg
c3RhcnQKKyAgICAgICAgcmVxdWVzdGluZyBuZXdseSBzZWxlY3RlZCBpbWFnZSByZXNvdXJjZXMg
d2l0aG91dCBoYXZpbmcgdG8gd2FpdCBmb3IgYSByZW5kZXJpbmcgdXBkYXRlLgorICAgICAgICBC
dXQgdGhpcyBmdW5jdGlvbiB3aWxsIG5vIGxvbmdlciBleGVjdXRlIGFyYml0cmFyeSBzY3JpcHRz
LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVyaWVzQW5kUmVw
b3J0Q2hhbmdlcyk6IFNwbGl0IGZyb20gZXZhbHVhdGVNZWRpYVF1ZXJ5TGlzdC4KKyAgICAgICAg
RXZhbHVhdGVzIG1lZGlhIHF1ZXJ5IGxpc3RlbmVycy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaWEpOiBG
b3JjZSB0aGUgZXZhbHVhdGlvbiBvZiBtZWRpYSBxdWVyaWVzIGZvciBub3cKKyAgICAgICAgYnV0
IHRoaXMgY29kZSBzaG91bGQgcmVhbGx5IGJlIHNjaGVkdWxpbmcgYSByZW5kZXJpbmcgdXBkYXRl
IGluc3RlYWQgc28gYWRkZWQgYSBGSVhNRS4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXRQcmludGluZyk6IEV2YWx1YXRlIG1lZGlhIHF1ZXJp
ZXMuIFdlIHNob3VsZCBjb25zaWRlciBpbnZva2luZyB0aGUgZnVsbAorICAgICAgICBhbGdvcml0
aG0gdG8gdXBkYXRlIHRoZSByZW5kZXJpbmcgaGVyZS4gZS5nLiBpbnRlcnNlY3Rpb24gb2JzZXJ2
ZXIgbWF5IGFkZCBtb3JlIGNvbnRlbnRzLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVSZW5kZXJpbmcpOiBDYWxsIGV2YWx1YXRlTWVkaWFR
dWVyaWVzQW5kUmVwb3J0Q2hhbmdlcy4KKwogMjAxOS0xMC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHB1dCBwYWdlcyB0aGF0IGhhdmUgbm90IHJl
YWNoZWQgdGhlIG5vbi12aXN1YWxseSBlbXB0eSBsYXlvdXQgbWlsZXN0b25lIGluIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVy
LmNwcAkocmV2aXNpb24gMjUxMjY5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlN
YXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgTWVkaWFR
dWVyeU1hdGNoZXI6OnJlbW92ZUxpc3RlbmVyKE0KICAgICB9KTsKIH0KIAotdm9pZCBNZWRpYVF1
ZXJ5TWF0Y2hlcjo6c3R5bGVSZXNvbHZlckNoYW5nZWQoKQordm9pZCBNZWRpYVF1ZXJ5TWF0Y2hl
cjo6ZXZhbHVhdGVBbGwoKQogewogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmgJKHJldmlzaW9uIDI1MTI2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGV2YWx1YXRpb25Sb3VuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZXZhbHVhdGlvblJvdW5kOyB9CiAKLSAgICB2b2lkIHN0eWxlUmVzb2x2
ZXJDaGFuZ2VkKCk7CisgICAgdm9pZCBldmFsdWF0ZUFsbCgpOwogCiAgICAgYm9vbCBldmFsdWF0
ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Jik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAko
cmV2aXNpb24gMjUxMjY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzkxMywxNSArMzkxMywyMSBAQCBTdHlsZVNoZWV0TGlzdCYgRG9jdW1l
bnQ6OnN0eWxlU2hlZXRzKCkKICAgICByZXR1cm4gKm1fc3R5bGVTaGVldExpc3Q7CiB9CiAKLXZv
aWQgRG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QoKQordm9pZCBEb2N1bWVudDo6dXBk
YXRlRWxlbWVudHNBZmZlY3RlZEJ5TWVkaWFRdWVyaWVzKCkKIHsKLSAgICBpZiAobV9tZWRpYVF1
ZXJ5TWF0Y2hlcikKLSAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+c3R5bGVSZXNvbHZlckNo
YW5nZWQoKTsKLSAgICAKKyAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBz
Y3JpcHREaXNhbGxvd2VkU2NvcGU7CiAgICAgY2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVz
KCk7CiAgICAgY2hlY2tBcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZXMoKTsKIH0KIAordm9pZCBE
b2N1bWVudDo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCkKK3sKKyAgICBp
ZiAoIW1fbWVkaWFRdWVyeU1hdGNoZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWVkaWFR
dWVyeU1hdGNoZXItPmV2YWx1YXRlQWxsKCk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OmNoZWNrVmll
d3BvcnREZXBlbmRlbnRQaWN0dXJlcygpCiB7CiAgICAgVmVjdG9yPEhUTUxQaWN0dXJlRWxlbWVu
dCosIDE2PiBjaGFuZ2VkUGljdHVyZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNp
b24gMjUxMjY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU1NSw3ICs1NTUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBnb3RvQW5jaG9yTmVlZGVk
QWZ0ZXJTdHlsZXNoZWV0c0xvYWQoKSB7IHJldHVybiBtX2dvdG9BbmNob3JOZWVkZWRBZnRlclN0
eWxlc2hlZXRzTG9hZDsgfQogICAgIHZvaWQgc2V0R290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVz
aGVldHNMb2FkKGJvb2wgYikgeyBtX2dvdG9BbmNob3JOZWVkZWRBZnRlclN0eWxlc2hlZXRzTG9h
ZCA9IGI7IH0KIAotICAgIHZvaWQgZXZhbHVhdGVNZWRpYVF1ZXJ5TGlzdCgpOworICAgIHZvaWQg
dXBkYXRlRWxlbWVudHNBZmZlY3RlZEJ5TWVkaWFRdWVyaWVzKCk7CisgICAgdm9pZCBldmFsdWF0
ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKTsKIAogICAgIEZvcm1Db250cm9sbGVyJiBm
b3JtQ29udHJvbGxlcigpOwogICAgIFZlY3RvcjxTdHJpbmc+IGZvcm1FbGVtZW50c1N0YXRlKCkg
Y29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCShyZXZpc2lvbiAyNTEyNjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg3MiwxMCArODcyLDE1IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRFbXVs
YXRlZE1lZGkKIAogICAgIG1fZW11bGF0ZWRNZWRpYSA9IG1lZGlhOwogCisgICAgLy8gRklYTUU6
IFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSBpbnN0ZWFkIG9mIHN5bmNocm9ub3VzbHkgdXBk
YXRpbmcgdGhlIGxheW91dC4KICAgICBtX2luc3BlY3RlZFBhZ2UudXBkYXRlU3R5bGVBZnRlckNo
YW5nZUluRW52aXJvbm1lbnQoKTsKIAotICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IG1faW5zcGVj
dGVkUGFnZS5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0KCk7CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9pbnNwZWN0ZWRQYWdl
Lm1haW5GcmFtZSgpLmRvY3VtZW50KCkpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsKKyAgICBkb2N1bWVudC0+ZXZh
bHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpzZXRGb3JjZWRBcHBlYXJhbmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBhcHBlYXJhbmNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDI1MTI2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjAs
NyArNTYwLDkgQEAgdm9pZCBGcmFtZTo6c2V0UHJpbnRpbmcoYm9vbCBwcmludGluZywgYwogICAg
IGF1dG8mIGZyYW1lVmlldyA9ICp2aWV3KCk7CiAgICAgZnJhbWVWaWV3LmFkanVzdE1lZGlhVHlw
ZUZvclByaW50aW5nKHByaW50aW5nKTsKIAorICAgIC8vIEZJWE1FOiBDb25zaWRlciBpbnZva2lu
ZyBQYWdlOjp1cGRhdGVSZW5kZXJpbmcgb3IgYW4gZXF1aXZhbGVudC4KICAgICBtX2RvYy0+c3R5
bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOworICAgIG1fZG9jLT5l
dmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKTsKICAgICBpZiAoc2hvdWxkVXNl
UHJpbnRpbmdMYXlvdXQoKSkKICAgICAgICAgZnJhbWVWaWV3LmZvcmNlTGF5b3V0Rm9yUGFnaW5h
dGlvbihwYWdlU2l6ZSwgb3JpZ2luYWxQYWdlU2l6ZSwgbWF4aW11bVNocmlua1JhdGlvLCBzaG91
bGRBZGp1c3RWaWV3U2l6ZSk7CiAgICAgZWxzZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAJKHJldmlzaW9uIDI1MTI2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OnVwZGF0
ZVN0eWxlCiAgICAgLy8gVmlld3BvcnQtZGVwZW5kZW50IG1lZGlhIHF1ZXJpZXMgbWF5IGNhdXNl
IHVzIHRvIG5lZWQgY29tcGxldGVseSBkaWZmZXJlbnQgc3R5bGUgaW5mb3JtYXRpb24uCiAgICAg
ZG9jdW1lbnQuc3R5bGVTY29wZSgpLmV2YWx1YXRlTWVkaWFRdWVyaWVzRm9yVmlld3BvcnRDaGFu
Z2UoKTsKIAotICAgIGRvY3VtZW50LmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QoKTsKKyAgICBkb2N1
bWVudC51cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMoKTsKICAgICAvLyBJZiB0
aGVyZSBpcyBhbnkgcGFnaW5hdGlvbiB0byBhcHBseSwgaXQgd2lsbCBhZmZlY3QgdGhlIFJlbmRl
clZpZXcncyBzdHlsZSwgc28gd2Ugc2hvdWxkCiAgICAgLy8gdGFrZSBjYXJlIG9mIHRoYXQgbm93
LgogICAgIHZpZXcoKS5hcHBseVBhZ2luYXRpb25Ub1ZpZXdwb3J0KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAJKHJldmlzaW9uIDI1MTI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMDEsNyArMTMwMSw4IEBAIHZvaWQgUGFnZTo6dXBkYXRl
UmVuZGVyaW5nKCkKIAogICAgIC8vIEZJWE1FOiBSdW4gdGhlIHNjcm9sbCBzdGVwcwogCi0gICAg
Ly8gRklYTUU6IEV2YWx1YXRlIG1lZGlhIHF1ZXJpZXMgYW5kIHJlcG9ydCBjaGFuZ2VzLgorICAg
IGZvciAoYXV0byYgZG9jdW1lbnQgOiBjb2xsZWN0RG9jdW1lbnRzKCkpCisgICAgICAgIGRvY3Vt
ZW50LT5ldmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKTsKIAogICAgIFZlY3Rv
cjxSZWY8RG9jdW1lbnQ+PiBkb2N1bWVudHMgPSBjb2xsZWN0RG9jdW1lbnRzKCk7IC8vIFRoZSBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tzIG1heSBjaGFuZ2UgdGhlIGZyYW1lIGhpZXJh
cmNoeSBvZiB0aGUgcGFnZQogICAgIGZvciAoYXV0byYgZG9jdW1lbnQgOiBkb2N1bWVudHMpIHsK
QEAgLTI2NjMsNyArMjY2NCw3IEBAIHZvaWQgUGFnZTo6YWNjZXNzaWJpbGl0eVNldHRpbmdzRGlk
Q2hhbmcKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICAgICAgZG9jdW1lbnQtPnN0eWxl
U2NvcGUoKS5ldmFsdWF0ZU1lZGlhUXVlcmllc0ZvckFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5n
ZSgpOwotICAgICAgICAgICAgZG9jdW1lbnQtPmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QoKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LT51cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMo
KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTI2NzcsNyArMjY3OCw3IEBAIHZvaWQgUGFnZTo6
YXBwZWFyYW5jZURpZENoYW5nZSgpCiAKICAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5k
aWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKICAgICAgICAgZG9jdW1lbnQtPnN0eWxl
U2NvcGUoKS5ldmFsdWF0ZU1lZGlhUXVlcmllc0ZvckFwcGVhcmFuY2VDaGFuZ2UoKTsKLSAgICAg
ICAgZG9jdW1lbnQtPmV2YWx1YXRlTWVkaWFRdWVyeUxpc3QoKTsKKyAgICAgICAgZG9jdW1lbnQt
PnVwZGF0ZUVsZW1lbnRzQWZmZWN0ZWRCeU1lZGlhUXVlcmllcygpOwogICAgIH0KIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjUxMjY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMTAtMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50ZWdyYXRlIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24g
aW50byBIVE1MNSBldmVudCBsb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2Mzk2MzE2Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRl
c3RzIGZvciBsaXN0ZW5pbmcgdG8gYWNjZXNzaWJsaXR5IHJlbGF0ZWQgbWVkaWEgcXVlcmllcyB3
aXRob3V0IGhhdmluZyBhbnkgc3R5bGUgcnVsZXMKKyAgICAgICAgZ2V0IGFmZmVjdGVkIGJ5IHRo
b3NlIG1lZGlhIHF1ZXJpZXMgc28gdGhhdCB3ZSBjYW4gY2F0Y2ggYW55IGZ1dHVyZSByZWdyZXNz
aW9ucy4gRm9yIG5vdywKKyAgICAgICAgY2hhbmdpbmcgYWNjZXNzaWJsaXR5IHNldHRpbmdzIHNl
ZW0gdG8gYWx3YXlzIHNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSBzbyB0aGVyZSBpcyBub3Ro
aW5nIHRvIGRvCisgICAgICAgIHdoZW4gdGhlc2UgYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBkbyBj
aGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbDog
Rml4ZWQgdGhlIHRlc3QgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG5ldyBiZWhhdmlvci4KKyAgICAg
ICAgKiBmYXN0L21lZGlhL21xLWludmVydGVkLWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVu
ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWludmVydGVk
LWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYS9tcS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0
ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcHJlZmVy
cy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbDogQWRkZWQuCisK
IDIwMTktMTAtMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
SW50ZWdyYXRlIHJlc2l6ZSBldmVudCB3aXRoIEhUTUw1IGV2ZW50IGxvb3AKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktbGlzdC0wNy5odG1sCShyZXZpc2lv
biAyNTEyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsOCBAQAogICAgICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCiAgICAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlh
KCJzY3JlZW4iKTsKIAogICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazEpOwpAQCAt
NDksNiArNTEsNyBAQAogICAgICAgICBxdWVyeS5hZGRMaXN0ZW5lcihjYWxsYmFjazIpOwogCiAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFUeXBlT3ZlcnJpZGUoImhh
bmRoZWxkIik7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKSk7CiAgICAgfQogCiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtaW52ZXJ0ZWQtY29sb3JzLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1pbnZlcnRl
ZC1jb2xvcnMtbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWludmVydGVkLWNvbG9ycy1saXZlLXVw
ZGF0ZS1mb3ItbGlzdGVuZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTEgQEAKK1RoaXMgdGVzdHMgbGlzdGVuZXJzIG9uIE1lZGlhUXVlcnlMaXN0IGdldCBjYWxsZWQg
d2hlbiBpbnZlcnRlZCBjb2xvciBpcyB0dXJuZWQgb24gd2hlbiB0aGVyZSBhcmUgbm8gcmVsZXZh
bnQgc3R5bGUgcnVsZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZGlk
Q2FsbExpc3RlbmVyIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgiKGludmVydGVkLWNvbG9ycyki
KS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWludmVydGVkLWNv
bG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLWludmVydGVkLWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVu
ZXIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWludmVy
dGVkLWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
ZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgbGlzdGVuZXJzIG9uIE1lZGlhUXVlcnlMaXN0IGdldCBj
YWxsZWQgd2hlbiBpbnZlcnRlZCBjb2xvciBpcyB0dXJuZWQgb24gd2hlbiB0aGVyZSBhcmUgbm8g
cmVsZXZhbnQgc3R5bGUgcnVsZXMnKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0
IGRpZENhbGxMaXN0ZW5lciA9IGZhbHNlOworbGV0IHRpbWVyOworCit3aW5kb3cub25sb2FkID0g
KCkgPT4geworICAgIHdpbmRvdy5tYXRjaE1lZGlhKCcoaW52ZXJ0ZWQtY29sb3JzKScpLmFkZExp
c3RlbmVyKChlKSA9PiB7CisgICAgICAgIGRpZENhbGxMaXN0ZW5lciA9IHRydWU7CisgICAgICAg
IGZpbmFsaXplKCk7CisgICAgfSk7CisKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMgfHwgIXRl
c3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJl
cXVpcmVzIHJ1blVJU2NyaXB0Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5mb3JjZWRDb2xv
cnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZSA9ICJvbiI7CisgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChgCisgICAgICAgIHVpQ29udHJvbGxlci5zaW11bGF0ZUFjY2Vzc2liaWxpdHlT
ZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbigoKSA9PiB7CisgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICB9KWAsICgpID0+IHsKKyAgICAg
ICAgdGltZXIgPSBzZXRUaW1lb3V0KGZpbmFsaXplLCAxMDAwKTsKKyAgICB9KTsKK30KKworZnVu
Y3Rpb24gZmluYWxpemUoKSB7CisgICAgaWYgKHRpbWVyKQorICAgICAgICBjbGVhclRpbWVvdXQo
dGltZXIpOworCisgICAgc2hvdWxkQmVUcnVlKCdkaWRDYWxsTGlzdGVuZXInKTsKKyAgICBzaG91
bGRCZVRydWUoJ21hdGNoTWVkaWEoIihpbnZlcnRlZC1jb2xvcnMpIikubWF0Y2hlcycpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVw
ZGF0ZS1mb3ItbGlzdGVuZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVwZGF0ZS1mb3ItbGlz
dGVuZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdHMgbGlz
dGVuZXJzIG9uIE1lZGlhUXVlcnlMaXN0IGdldCBjYWxsZWQgd2hlbiBpbnZlcnRlZCBjb2xvciBp
cyB0dXJuZWQgb24gd2hlbiB0aGVyZSBhcmUgbm8gcmVsZXZhbnQgc3R5bGUgcnVsZXMKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZGlkQ2FsbExpc3RlbmVyIGlzIHRydWUK
K1BBU1MgbWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIikubWF0Y2hlcyBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLWxp
dmUtdXBkYXRlLWZvci1saXN0ZW5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVwZGF0ZS1mb3ItbGlzdGVu
ZXIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXByZWZl
cnMtcmVkdWNlZC1tb3Rpb24tbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIGxpc3RlbmVycyBvbiBNZWRpYVF1ZXJ5TGlz
dCBnZXQgY2FsbGVkIHdoZW4gaW52ZXJ0ZWQgY29sb3IgaXMgdHVybmVkIG9uIHdoZW4gdGhlcmUg
YXJlIG5vIHJlbGV2YW50IHN0eWxlIHJ1bGVzJyk7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKK2xldCBkaWRDYWxsTGlzdGVuZXIgPSBmYWxzZTsKK2xldCB0aW1lcjsKKword2luZG93Lm9u
bG9hZCA9ICgpID0+IHsKKyAgICB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtcmVkdWNlZC1t
b3Rpb24pJykuYWRkTGlzdGVuZXIoKGUpID0+IHsKKyAgICAgICAgZGlkQ2FsbExpc3RlbmVyID0g
dHJ1ZTsKKyAgICAgICAgZmluYWxpemUoKTsKKyAgICB9KTsKKworICAgIGlmICghd2luZG93Lmlu
dGVybmFscyB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgICAgICB0ZXN0RmFpbGVk
KCdUaGlzIHRlc3QgcmVxdWlyZXMgcnVuVUlTY3JpcHQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLmZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlID0gIm9uIjsK
KyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgdWlDb250cm9sbGVyLnNpbXVs
YXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKCgpID0+IHsKKyAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgIH0p
YCwgKCkgPT4geworICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoZmluYWxpemUsIDEwMDApOwor
ICAgIH0pOworfQorCitmdW5jdGlvbiBmaW5hbGl6ZSgpIHsKKyAgICBpZiAodGltZXIpCisgICAg
ICAgIGNsZWFyVGltZW91dCh0aW1lcik7CisKKyAgICBzaG91bGRCZVRydWUoJ2RpZENhbGxMaXN0
ZW5lcicpOworICAgIHNob3VsZEJlVHJ1ZSgnbWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1t
b3Rpb24pIikubWF0Y2hlcycpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382507</attachid>
            <date>2019-10-31 15:10:16 -0700</date>
            <delta_ts>2019-11-01 08:17:11 -0700</delta_ts>
            <desc>Updated for trunk</desc>
            <filename>bug-203134-20191031151015.patch</filename>
            <type>text/plain</type>
            <size>17753</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MTg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEwLTMxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEludGVncmF0ZSBtZWRpYSBxdWVy
eSBldmFsdWF0aW9uIGludG8gSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NjM5NjMxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb3ZlZCB0aGUgY29kZSB0byBjYWxsIG1lZGlhIHF1ZXJ5IGxpc3RlbmVycyB0byBIVE1M
NSBldmVudCBsb29wJ3Mgc3RlcCB0byB1cGRhdGUgdGhlIHJlbmRlcmluZzoKKyAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3VwZGF0
ZS10aGUtcmVuZGVyaW5nCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvbXEtaW52ZXJ0ZWQt
Y29sb3JzLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0
L21lZGlhL21xLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVy
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGVBbGwpOiBSZW5hbWVkIGZyb20gc3R5
bGVSZXNvbHZlckNoYW5nZWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlNYXRjaGVyLmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMpOiBTcGxpdCBmcm9tIGV2YWx1YXRl
TWVkaWFRdWVyeUxpc3QuCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgc3RpbGwgY2FsbGVkIHJp
Z2h0IGFmdGVyIGVhY2ggbGF5b3V0IHVwZGF0ZSBzbyB0aGF0IHBpY3R1cmUgZWxlbWVudCBtYXkg
c3RhcnQKKyAgICAgICAgcmVxdWVzdGluZyBuZXdseSBzZWxlY3RlZCBpbWFnZSByZXNvdXJjZXMg
d2l0aG91dCBoYXZpbmcgdG8gd2FpdCBmb3IgYSByZW5kZXJpbmcgdXBkYXRlLgorICAgICAgICBC
dXQgdGhpcyBmdW5jdGlvbiB3aWxsIG5vIGxvbmdlciBleGVjdXRlIGFyYml0cmFyeSBzY3JpcHRz
LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmV2YWx1YXRlTWVkaWFRdWVyaWVzQW5kUmVw
b3J0Q2hhbmdlcyk6IFNwbGl0IGZyb20gZXZhbHVhdGVNZWRpYVF1ZXJ5TGlzdC4KKyAgICAgICAg
RXZhbHVhdGVzIG1lZGlhIHF1ZXJ5IGxpc3RlbmVycy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaWEpOiBG
b3JjZSB0aGUgZXZhbHVhdGlvbiBvZiBtZWRpYSBxdWVyaWVzIGZvciBub3cKKyAgICAgICAgYnV0
IHRoaXMgY29kZSBzaG91bGQgcmVhbGx5IGJlIHNjaGVkdWxpbmcgYSByZW5kZXJpbmcgdXBkYXRl
IGluc3RlYWQgc28gYWRkZWQgYSBGSVhNRS4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXRQcmludGluZyk6IEV2YWx1YXRlIG1lZGlhIHF1ZXJp
ZXMuIFdlIHNob3VsZCBjb25zaWRlciBpbnZva2luZyB0aGUgZnVsbAorICAgICAgICBhbGdvcml0
aG0gdG8gdXBkYXRlIHRoZSByZW5kZXJpbmcgaGVyZS4gZS5nLiBpbnRlcnNlY3Rpb24gb2JzZXJ2
ZXIgbWF5IGFkZCBtb3JlIGNvbnRlbnRzLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVTdHlsZUFmdGVyQ2hhbmdlSW5FbnZpcm9ubWVudCk6
IFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSBhZnRlcgorICAgICAgICBhY2Nlc3NpYmlsaXR5
IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVwZGF0ZVJl
bmRlcmluZyk6IENhbGwgZXZhbHVhdGVNZWRpYVF1ZXJpZXNBbmRSZXBvcnRDaGFuZ2VzLgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6YWNjZXNzaWJpbGl0eVNldHRpbmdzRGlkQ2hhbmdlKTogU2No
ZWR1bGUgYSByZW5kZXJpbmcgdXBkYXRlIGFmdGVyIGFjY2Vzc2liaWxpdHkKKyAgICAgICAgc2V0
dGluZ3MgaGF2ZSBjaGFuZ2VkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YXBwZWFyYW5jZURp
ZENoYW5nZSk6IERpdHRvLgorCiAyMDE5LTEwLTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgU1ZHR2VvbWV0cnlFbGVtZW50LmdldFBvaW50
QXRMZW5ndGggc2hvdWxkIGNsYW1wIGl0cyBhcmd1bWVudCB0byBbMCwgbGVuZ3RoXQpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCShyZXZpc2lvbiAyNTE4Njcp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cmVtb3ZlTGlz
dGVuZXIoTQogICAgIH0pOwogfQogCi12b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpzdHlsZVJlc29s
dmVyQ2hhbmdlZCgpCit2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjpldmFsdWF0ZUFsbCgpCiB7CiAg
ICAgQVNTRVJUKG1fZG9jdW1lbnQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeU1hdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eU1hdGNoZXIuaAkocmV2aXNpb24gMjUxODY3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlNYXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgog
CiAgICAgdW5zaWduZWQgZXZhbHVhdGlvblJvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsdWF0
aW9uUm91bmQ7IH0KIAotICAgIHZvaWQgc3R5bGVSZXNvbHZlckNoYW5nZWQoKTsKKyAgICB2b2lk
IGV2YWx1YXRlQWxsKCk7CiAKICAgICBib29sIGV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQm
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNTE4NjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTEyLDE1
ICszOTEyLDIxIEBAIFN0eWxlU2hlZXRMaXN0JiBEb2N1bWVudDo6c3R5bGVTaGVldHMoKQogICAg
IHJldHVybiAqbV9zdHlsZVNoZWV0TGlzdDsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZXZhbHVhdGVN
ZWRpYVF1ZXJ5TGlzdCgpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlN
ZWRpYVF1ZXJpZXMoKQogewotICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQotICAgICAgICBt
X21lZGlhUXVlcnlNYXRjaGVyLT5zdHlsZVJlc29sdmVyQ2hhbmdlZCgpOwotICAgIAorICAgIFNj
cmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsK
ICAgICBjaGVja1ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXMoKTsKICAgICBjaGVja0FwcGVhcmFu
Y2VEZXBlbmRlbnRQaWN0dXJlcygpOwogfQogCit2b2lkIERvY3VtZW50OjpldmFsdWF0ZU1lZGlh
UXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKQoreworICAgIGlmICghbV9tZWRpYVF1ZXJ5TWF0Y2hl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZXZhbHVhdGVB
bGwoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6Y2hlY2tWaWV3cG9ydERlcGVuZGVudFBpY3R1cmVz
KCkKIHsKICAgICBWZWN0b3I8SFRNTFBpY3R1cmVFbGVtZW50KiwgMTY+IGNoYW5nZWRQaWN0dXJl
czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyNTE4NjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTU3LDcgKzU1Nyw4IEBA
IHB1YmxpYzoKICAgICBib29sIGdvdG9BbmNob3JOZWVkZWRBZnRlclN0eWxlc2hlZXRzTG9hZCgp
IHsgcmV0dXJuIG1fZ290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkOyB9CiAgICAg
dm9pZCBzZXRHb3RvQW5jaG9yTmVlZGVkQWZ0ZXJTdHlsZXNoZWV0c0xvYWQoYm9vbCBiKSB7IG1f
Z290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkID0gYjsgfQogCi0gICAgdm9pZCBl
dmFsdWF0ZU1lZGlhUXVlcnlMaXN0KCk7CisgICAgdm9pZCB1cGRhdGVFbGVtZW50c0FmZmVjdGVk
QnlNZWRpYVF1ZXJpZXMoKTsKKyAgICB2b2lkIGV2YWx1YXRlTWVkaWFRdWVyaWVzQW5kUmVwb3J0
Q2hhbmdlcygpOwogCiAgICAgRm9ybUNvbnRyb2xsZXImIGZvcm1Db250cm9sbGVyKCk7CiAgICAg
VmVjdG9yPFN0cmluZz4gZm9ybUVsZW1lbnRzU3RhdGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAJKHJldmlzaW9uIDI1MTg2NykKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg2LDEwICs4ODYsMTUg
QEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaQogCiAgICAgbV9lbXVs
YXRlZE1lZGlhID0gbWVkaWE7CiAKKyAgICAvLyBGSVhNRTogU2NoZWR1bGUgYSByZW5kZXJpbmcg
dXBkYXRlIGluc3RlYWQgb2Ygc3luY2hyb25vdXNseSB1cGRhdGluZyB0aGUgbGF5b3V0LgogICAg
IG1faW5zcGVjdGVkUGFnZS51cGRhdGVTdHlsZUFmdGVyQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwog
Ci0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gbV9pbnNwZWN0ZWRQYWdlLm1haW5GcmFtZSgpLmRv
Y3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsKKyAgICBhdXRvIGRv
Y3VtZW50ID0gbWFrZVJlZlB0cihtX2luc3BlY3RlZFBhZ2UubWFpbkZyYW1lKCkuZG9jdW1lbnQo
KSk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQt
PnVwZGF0ZUxheW91dCgpOworICAgIGRvY3VtZW50LT5ldmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJl
cG9ydENoYW5nZXMoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEZvcmNlZEFw
cGVhcmFuY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFwcGVhcmFuY2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMjUxODY3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MCw3ICs1NjAsOSBAQCB2b2lkIEZyYW1l
OjpzZXRQcmludGluZyhib29sIHByaW50aW5nLCBjCiAgICAgYXV0byYgZnJhbWVWaWV3ID0gKnZp
ZXcoKTsKICAgICBmcmFtZVZpZXcuYWRqdXN0TWVkaWFUeXBlRm9yUHJpbnRpbmcocHJpbnRpbmcp
OwogCisgICAgLy8gRklYTUU6IENvbnNpZGVyIGludm9raW5nIFBhZ2U6OnVwZGF0ZVJlbmRlcmlu
ZyBvciBhbiBlcXVpdmFsZW50LgogICAgIG1fZG9jLT5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5
bGVTaGVldEVudmlyb25tZW50KCk7CisgICAgbV9kb2MtPmV2YWx1YXRlTWVkaWFRdWVyaWVzQW5k
UmVwb3J0Q2hhbmdlcygpOwogICAgIGlmIChzaG91bGRVc2VQcmludGluZ0xheW91dCgpKQogICAg
ICAgICBmcmFtZVZpZXcuZm9yY2VMYXlvdXRGb3JQYWdpbmF0aW9uKHBhZ2VTaXplLCBvcmlnaW5h
bFBhZ2VTaXplLCBtYXhpbXVtU2hyaW5rUmF0aW8sIHNob3VsZEFkanVzdFZpZXdTaXplKTsKICAg
ICBlbHNlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmNwcAkocmV2aXNpb24gMjUxODY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXdMYXlvdXRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIwLDcgKzUyMCw3IEBA
IHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6dXBkYXRlU3R5bGUKICAgICAvLyBWaWV3cG9y
dC1kZXBlbmRlbnQgbWVkaWEgcXVlcmllcyBtYXkgY2F1c2UgdXMgdG8gbmVlZCBjb21wbGV0ZWx5
IGRpZmZlcmVudCBzdHlsZSBpbmZvcm1hdGlvbi4KICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCku
ZXZhbHVhdGVNZWRpYVF1ZXJpZXNGb3JWaWV3cG9ydENoYW5nZSgpOwogCi0gICAgZG9jdW1lbnQu
ZXZhbHVhdGVNZWRpYVF1ZXJ5TGlzdCgpOworICAgIGRvY3VtZW50LnVwZGF0ZUVsZW1lbnRzQWZm
ZWN0ZWRCeU1lZGlhUXVlcmllcygpOwogICAgIC8vIElmIHRoZXJlIGlzIGFueSBwYWdpbmF0aW9u
IHRvIGFwcGx5LCBpdCB3aWxsIGFmZmVjdCB0aGUgUmVuZGVyVmlldydzIHN0eWxlLCBzbyB3ZSBz
aG91bGQKICAgICAvLyB0YWtlIGNhcmUgb2YgdGhhdCBub3cuCiAgICAgdmlldygpLmFwcGx5UGFn
aW5hdGlvblRvVmlld3BvcnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMjUx
ODY3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTY1LDE5ICs1NjUsMTMgQEAgdm9pZCBQYWdlOjppbml0R3JvdXAoKQogCiB2b2lkIFBhZ2U6OnVw
ZGF0ZVN0eWxlQWZ0ZXJDaGFuZ2VJbkVudmlyb25tZW50KCkKIHsKLSAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkgewotICAgICAgICAvLyBJZiBhIGNoYW5nZSBpbiB0aGUgZ2xvYmFsIGVudmlyb25t
ZW50IGhhcyBvY2N1cnJlZCwgd2UgbmVlZCB0bwotICAgICAgICAvLyBtYWtlIHN1cmUgYWxsIHRo
ZSBwcm9wZXJ0aWVzIGEgcmVjb21wdXRlZCwgdGhlcmVmb3JlIHdlIGludmFsaWRhdGUKLSAgICAg
ICAgLy8gdGhlIHByb3BlcnRpZXMgY2FjaGUuCi0gICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgICAgICBjb250
aW51ZTsKLQotICAgICAgICBpZiAoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGRvY3Vt
ZW50LT5zdHlsZVNjb3BlKCkucmVzb2x2ZXJJZkV4aXN0cygpKQorICAgIGZvckVhY2hEb2N1bWVu
dChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGlmIChTdHlsZVJlc29sdmVyKiBz
dHlsZVJlc29sdmVyID0gZG9jdW1lbnQuc3R5bGVTY29wZSgpLnJlc29sdmVySWZFeGlzdHMoKSkK
ICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0Nh
Y2hlKCk7Ci0gICAgICAgIGRvY3VtZW50LT5zY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKLSAg
ICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1l
bnQoKTsKLSAgICB9CisgICAgICAgIGRvY3VtZW50LnNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgp
OworICAgICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmly
b25tZW50KCk7CisgICAgICAgIGRvY3VtZW50LnNjaGVkdWxlVGltZWRSZW5kZXJpbmdVcGRhdGUo
KTsKKyAgICB9KTsKIH0KIAogdm9pZCBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJH
bG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCkKQEAgLTEzMDIsNyArMTI5Niw5IEBAIHZvaWQgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkKIAogICAgIC8vIEZJWE1FOiBSdW4gdGhlIHNjcm9sbCBzdGVw
cwogCi0gICAgLy8gRklYTUU6IEV2YWx1YXRlIG1lZGlhIHF1ZXJpZXMgYW5kIHJlcG9ydCBjaGFu
Z2VzLgorICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAg
ICAgICBkb2N1bWVudC5ldmFsdWF0ZU1lZGlhUXVlcmllc0FuZFJlcG9ydENoYW5nZXMoKTsgICAg
ICAgIAorICAgIH0pOwogCiAgICAgVmVjdG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50cyA9IGNv
bGxlY3REb2N1bWVudHMoKTsgLy8gVGhlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFja3Mg
bWF5IGNoYW5nZSB0aGUgZnJhbWUgaGllcmFyY2h5IG9mIHRoZSBwYWdlCiAgICAgZm9yIChhdXRv
JiBkb2N1bWVudCA6IGRvY3VtZW50cykgewpAQCAtMjY3NSwyNSArMjY3MSwyMSBAQCB2b2lkIFBh
Z2U6OnNldENhcHRpb25Vc2VyUHJlZmVyZW5jZXNTdHlsCiAKIHZvaWQgUGFnZTo6YWNjZXNzaWJp
bGl0eVNldHRpbmdzRGlkQ2hhbmdlKCkKIHsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewot
ICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAg
ICAgICAgZG9jdW1lbnQtPnN0eWxlU2NvcGUoKS5ldmFsdWF0ZU1lZGlhUXVlcmllc0ZvckFjY2Vz
c2liaWxpdHlTZXR0aW5nc0NoYW5nZSgpOwotICAgICAgICAgICAgZG9jdW1lbnQtPmV2YWx1YXRl
TWVkaWFRdWVyeUxpc3QoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQo
W10gKGF1dG8mIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnN0eWxlU2NvcGUoKS5ldmFs
dWF0ZU1lZGlhUXVlcmllc0ZvckFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZSgpOworICAgICAg
ICBkb2N1bWVudC51cGRhdGVFbGVtZW50c0FmZmVjdGVkQnlNZWRpYVF1ZXJpZXMoKTsKKyAgICAg
ICAgZG9jdW1lbnQuc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOworICAgIH0pOwogfQog
CiB2b2lkIFBhZ2U6OmFwcGVhcmFuY2VEaWRDaGFuZ2UoKQogewotICAgIGZvciAoRnJhbWUqIGZy
YW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpKSB7Ci0gICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7Ci0g
ICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBk
b2N1bWVudC0+c3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOwot
ICAgICAgICBkb2N1bWVudC0+c3R5bGVTY29wZSgpLmV2YWx1YXRlTWVkaWFRdWVyaWVzRm9yQXBw
ZWFyYW5jZUNoYW5nZSgpOwotICAgICAgICBkb2N1bWVudC0+ZXZhbHVhdGVNZWRpYVF1ZXJ5TGlz
dCgpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKGF1dG8mIGRvY3VtZW50KSB7Cisg
ICAgICAgIGRvY3VtZW50LnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1l
bnQoKTsKKyAgICAgICAgZG9jdW1lbnQuc3R5bGVTY29wZSgpLmV2YWx1YXRlTWVkaWFRdWVyaWVz
Rm9yQXBwZWFyYW5jZUNoYW5nZSgpOworICAgICAgICBkb2N1bWVudC51cGRhdGVFbGVtZW50c0Fm
ZmVjdGVkQnlNZWRpYVF1ZXJpZXMoKTsKKyAgICAgICAgZG9jdW1lbnQuc2NoZWR1bGVUaW1lZFJl
bmRlcmluZ1VwZGF0ZSgpOworICAgIH0pOwogfQogCiB2b2lkIFBhZ2U6OnNldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYgaW5zZXRzKQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjUxODgzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTktMTAtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgSW50ZWdyYXRlIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gaW50byBIVE1M
NSBldmVudCBsb29wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2Mzk2MzE2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBs
aXN0ZW5pbmcgdG8gYWNjZXNzaWJsaXR5IHJlbGF0ZWQgbWVkaWEgcXVlcmllcyB3aXRob3V0IGhh
dmluZyBhbnkgc3R5bGUgcnVsZXMKKyAgICAgICAgZ2V0IGFmZmVjdGVkIGJ5IHRob3NlIG1lZGlh
IHF1ZXJpZXMgc28gdGhhdCB3ZSBjYW4gY2F0Y2ggYW55IGZ1dHVyZSByZWdyZXNzaW9ucy4gRm9y
IG5vdywKKyAgICAgICAgY2hhbmdpbmcgYWNjZXNzaWJsaXR5IHNldHRpbmdzIHNlZW0gdG8gYWx3
YXlzIHNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIGRv
CisgICAgICAgIHdoZW4gdGhlc2UgYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBkbyBjaGFuZ2UuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbDogRml4ZWQgdGhl
IHRlc3QgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG5ldyBiZWhhdmlvci4KKyAgICAgICAgKiBmYXN0
L21lZGlhL21xLWludmVydGVkLWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWludmVydGVkLWNvbG9ycy1s
aXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YS9tcS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2Vk
LW1vdGlvbi1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbDogQWRkZWQuCisKIDIwMTktMTAt
MzEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IERPTURlYnVnZ2VyOiBOb2RlIFJlbW92ZWQgYnJlYWtwb2ludHMgc2hvdWxkIGZpcmUg
d2hlbmV2ZXIgdGhlIG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBtYWluIERPTSB0cmVlLCBub3Qg
anVzdCB3aGVuIGl0J3MgcmVtb3ZlZCBmcm9tIGl0J3MgcGFyZW50CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDcuaHRtbAkocmV2aXNpb24gMjUx
ODY3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDggQEAKICAgICAgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKwogICAgICAgICB2YXIgcXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgic2Ny
ZWVuIik7CiAKICAgICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2sxKTsKQEAgLTQ5LDYg
KzUxLDcgQEAKICAgICAgICAgcXVlcnkuYWRkTGlzdGVuZXIoY2FsbGJhY2syKTsKIAogICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhVHlwZU92ZXJyaWRlKCJoYW5kaGVs
ZCIpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCkpOwogICAgIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLWludmVydGVkLWNvbG9ycy1saXZlLXVwZGF0ZS1mb3ItbGlzdGVuZXItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaW52ZXJ0ZWQtY29s
b3JzLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1pbnZlcnRlZC1jb2xvcnMtbGl2ZS11cGRhdGUt
Zm9yLWxpc3RlbmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBA
CitUaGlzIHRlc3RzIGxpc3RlbmVycyBvbiBNZWRpYVF1ZXJ5TGlzdCBnZXQgY2FsbGVkIHdoZW4g
aW52ZXJ0ZWQgY29sb3IgaXMgdHVybmVkIG9uIHdoZW4gdGhlcmUgYXJlIG5vIHJlbGV2YW50IHN0
eWxlIHJ1bGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRpZENhbGxM
aXN0ZW5lciBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoIihpbnZlcnRlZC1jb2xvcnMpIikubWF0
Y2hlcyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1pbnZlcnRlZC1jb2xvcnMt
bGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1pbnZlcnRlZC1jb2xvcnMtbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLmh0
bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1pbnZlcnRlZC1j
b2xvcnMtbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCdUaGlzIHRlc3RzIGxpc3RlbmVycyBvbiBNZWRpYVF1ZXJ5TGlzdCBnZXQgY2FsbGVk
IHdoZW4gaW52ZXJ0ZWQgY29sb3IgaXMgdHVybmVkIG9uIHdoZW4gdGhlcmUgYXJlIG5vIHJlbGV2
YW50IHN0eWxlIHJ1bGVzJyk7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBkaWRD
YWxsTGlzdGVuZXIgPSBmYWxzZTsKK2xldCB0aW1lcjsKKword2luZG93Lm9ubG9hZCA9ICgpID0+
IHsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICB3aW5kb3cubWF0
Y2hNZWRpYSgnKGludmVydGVkLWNvbG9ycyknKS5hZGRMaXN0ZW5lcigoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgIGRpZENhbGxMaXN0ZW5lciA9IHRydWU7CisgICAgICAgICAgICBmaW5hbGl6ZSgp
OworICAgICAgICB9KTsKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMgfHwgIXRlc3RS
dW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCBy
ZXF1aXJlcyBydW5VSVNjcmlwdCcpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLmZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlID0gIm9uIjsK
KyAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIuc2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oKCkgPT4g
eworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7
CisgICAgICAgICAgICB9KWAsICgpID0+IHsKKyAgICAgICAgICAgIGlmICghZGlkQ2FsbExpc3Rl
bmVyKQorICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dChmaW5hbGl6ZSwgMTAwMCk7
CisgICAgICAgIH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiBmaW5hbGl6ZSgpIHsKKyAgICBp
ZiAodGltZXIpCisgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CisKKyAgICBzaG91bGRCZVRy
dWUoJ2RpZENhbGxMaXN0ZW5lcicpOworICAgIHNob3VsZEJlVHJ1ZSgnbWF0Y2hNZWRpYSgiKGlu
dmVydGVkLWNvbG9ycykiKS5tYXRjaGVzJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
cS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wcmVmZXJzLXJl
ZHVjZWQtbW90aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wcmVmZXJzLXJlZHVjZWQtbW90
aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyBsaXN0ZW5lcnMgb24gTWVkaWFRdWVyeUxpc3Qg
Z2V0IGNhbGxlZCB3aGVuIGludmVydGVkIGNvbG9yIGlzIHR1cm5lZCBvbiB3aGVuIHRoZXJlIGFy
ZSBubyByZWxldmFudCBzdHlsZSBydWxlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBkaWRDYWxsTGlzdGVuZXIgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCIocHJlZmVy
cy1yZWR1Y2VkLW1vdGlvbikiKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbGl2ZS11cGRhdGUtZm9yLWxpc3RlbmVyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wcmVmZXJzLXJlZHVj
ZWQtbW90aW9uLWxpdmUtdXBkYXRlLWZvci1saXN0ZW5lci5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVw
ZGF0ZS1mb3ItbGlzdGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1RoaXMg
dGVzdHMgbGlzdGVuZXJzIG9uIE1lZGlhUXVlcnlMaXN0IGdldCBjYWxsZWQgd2hlbiBpbnZlcnRl
ZCBjb2xvciBpcyB0dXJuZWQgb24gd2hlbiB0aGVyZSBhcmUgbm8gcmVsZXZhbnQgc3R5bGUgcnVs
ZXMnKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworbGV0IGRpZENhbGxMaXN0ZW5lciA9
IGZhbHNlOworbGV0IHRpbWVyOworCit3aW5kb3cub25sb2FkID0gKCkgPT4geworICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJl
ZmVycy1yZWR1Y2VkLW1vdGlvbiknKS5hZGRMaXN0ZW5lcigoZSkgPT4geworICAgICAgICAgICAg
ZGlkQ2FsbExpc3RlbmVyID0gdHJ1ZTsKKyAgICAgICAgICAgIGZpbmFsaXplKCk7CisgICAgICAg
IH0pOworCisgICAgICAgIGlmICghd2luZG93LmludGVybmFscyB8fCAhdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHJ1
blVJU2NyaXB0Jyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3MuZm9y
Y2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWUgPSAib24iOworICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW11
bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbigoKSA9PiB7CisgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAg
ICAgICAgIH0pYCwgKCkgPT4geworICAgICAgICAgICAgaWYgKCFkaWRDYWxsTGlzdGVuZXIpCisg
ICAgICAgICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZpbmFsaXplLCAxMDAwKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGZpbmFsaXplKCkgeworICAgIGlmICh0aW1l
cikKKyAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKKworICAgIHNob3VsZEJlVHJ1ZSgnZGlk
Q2FsbExpc3RlbmVyJyk7CisgICAgc2hvdWxkQmVUcnVlKCdtYXRjaE1lZGlhKCIocHJlZmVycy1y
ZWR1Y2VkLW1vdGlvbikiKS5tYXRjaGVzJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="398247"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>