<?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>193754</bug_id>
          
          <creation_ts>2019-01-23 18:44:09 -0800</creation_ts>
          <short_desc>Allow scrolling tree nodes to exist in a detached state</short_desc>
          <delta_ts>2019-01-29 08:17:06 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>fred.wang</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sroberts</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497689</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-23 18:44:09 -0800</bug_when>
    <thetext>To avoid tricky ordering dependencies between compositing/scrolling tree updates in child and parent frames, we need to make it possible to create ScrollingStateNodes in a detached state (basically calling ScrollingCoordinator::attachToStateTree() with no parent node). This will allow subframes to have a detached subtree of scrolling nodes, then attach this subtree when the iframe layers are hooked up by RenderLayerCompositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497697</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-23 18:54:23 -0800</bug_when>
    <thetext>This is really a consequence of scrolling tree nodes being hidden behind the ScrollingCoordinator interface; a client can&apos;t hang on to a scrolling tree node; all it has to hang onto is a ScrollingNodeID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498752</commentid>
    <comment_count>2</comment_count>
      <attachid>360248</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-26 13:08:08 -0800</bug_when>
    <thetext>Created attachment 360248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498788</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-26 17:53:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/47577565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498804</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-26 20:32:44 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/240551/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499158</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-01-28 13:28:55 -0800</bug_when>
    <thetext>It appears that the changes in https://trac.webkit.org/changeset/240551/webkit

Has caused this test css3/filters/blur-filter-page-scroll-self.html

To become a flaky crash on Mac Debug WK2

History https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=css3%2Ffilters%2Fblur-filter-page-scroll-self.html

I reproduce this with run-webkit-tests --root debug-240551 css3/filters/blur-filter-page-scroll-self.html --iterations 500 -f --debug

I was able to reproduce crashes on 240551, but unable to reproduce crashes on 240550</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499474</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-29 01:09:20 -0800</bug_when>
    <thetext>(In reply to Shawn Roberts from comment #5)
&gt; It appears that the changes in
&gt; https://trac.webkit.org/changeset/240551/webkit
&gt; 
&gt; Has caused this test css3/filters/blur-filter-page-scroll-self.html
&gt; 
&gt; To become a flaky crash on Mac Debug WK2
&gt; 
&gt; History
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=css3%2Ffilters%2Fblur-filter-page-scroll-self.
&gt; html
&gt; 
&gt; I reproduce this with run-webkit-tests --root debug-240551
&gt; css3/filters/blur-filter-page-scroll-self.html --iterations 500 -f --debug
&gt; 
&gt; I was able to reproduce crashes on 240551, but unable to reproduce crashes
&gt; on 240550

That seems to be bug 193925, do you still see it after r240609?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499491</commentid>
    <comment_count>7</comment_count>
      <attachid>360248</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-29 02:53:31 -0800</bug_when>
    <thetext>Comment on attachment 360248
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingStateTree.cpp:222
&gt; +        for (auto child : *children) {

This was modified later r240610 (bug 193930 but I don&apos;t have access to it). And the children variable is no longer used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499492</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-29 03:01:01 -0800</bug_when>
    <thetext>Committed r240651: &lt;https://trac.webkit.org/changeset/240651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499536</commentid>
    <comment_count>9</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-01-29 08:17:06 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #8)
&gt; Committed r240651: &lt;https://trac.webkit.org/changeset/240651&gt;

It appears it has been resolved. Thank you!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360248</attachid>
            <date>2019-01-26 13:08:08 -0800</date>
            <delta_ts>2019-01-26 17:58:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193754-20190126130807.patch</filename>
            <type>text/plain</type>
            <size>33014</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgwOTk1ODRhYjhmNjlh
NGJmNDU0ZTg1OTc3ZTUzMmZiNjU1NmNmYy4uOWE2OTdiNjQ1YjBkZDdhNWJlZDhlMjJjZmI4YTQ2
NWZjOWY2MjhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE5LTAxLTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHNjcm9s
bGluZyB0cmVlIG5vZGVzIHRvIGV4aXN0IGluIGEgZGV0YWNoZWQgc3RhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzc1NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uZSBvZiB0aGUgKHF1ZXN0aW9u
YWJsZT8pIGRlc2lnbiBkZWNpc2lvbnMgb2YgdGhlIHNjcm9sbGluZyB0cmVlIGlzIHRoYXQgdGhl
IHRyZWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaXMgaGlkZGVuIGJlaGluZCB0aGUgU2Nyb2xs
aW5nQ29vcmRpbmF0b3IgaW50ZXJmYWNlLiBUaGF0IGludGVyZmFjZSBvbmx5IGFsbG93ZWQgbm9k
ZXMgdG8gZXhpc3QKKyAgICAgICAgaW4gYSBjb25uZWN0ZWQgc3RhdGU7IGF0dGFjaFRvU3RhdGVU
cmVlKCkgcmVxdWlyZWQgYSBub24temVybyBwYXJlbnQgZm9yIGFueSBub2RlIHRoYXQgd2FzIG5v
dAorICAgICAgICB0aGUgcm9vdC4KKworICAgICAgICBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUg
dG8gY29vcmRpbmF0ZSB0aGUgaG9va3VwIG9mIHRoZSBzY3JvbGxpbmcgdHJlZSBhY3Jvc3MgZnJh
bWUgYm91bmRhcmllczsKKyAgICAgICAgdGhlIHNjcm9sbGluZyB0cmVlIGhhcyB0byBoYXZlIGJl
ZW4gZnVsbHkgY29uc3RydWN0ZWQgaW4gYW5jZXN0b3IgZnJhbWVzIGJlZm9yZSBzdWJmcmFtZSBu
b2RlcworICAgICAgICBjYW4gYmUgYXR0YWNoZWQuIFRoaXMgaXMgYSBzaWduaWZpY2FudCBkaWZm
ZXJlbmNlIGZyb20gY29tcG9zaXRpbmcsIHdoZXJlIGEgc3ViZnJhbWUgY2FuIGNyZWF0ZQorICAg
ICAgICBHcmFwaGljc0xheWVycyB3aGljaCBkb24ndCBoYXZlIHRvIGJlIHBhcmVudGVkIHJpZ2h0
IGF3YXksIGFuZCBhY3R1YWxseSBnZXQgcGFyZW50ZWQgbGF0ZXIgdmlhCisgICAgICAgIGEgY29t
cG9zaXRpbmcgdXBkYXRlIGluIHRoZSBwYXJlbnQgZnJhbWUuCisKKyAgICAgICAgV2Ugd2FudCB0
byBiZSBhYmxlIHRvIGhvb2sgdXAgdGhlIHNjcm9sbGluZyB0cmVlIHZpYSB0aGUgc2FtZSBjb2Rl
IHBhdGhzIGFzIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgY29ubmVjdGlvbiAoYW55dGhpbmcgZWxz
ZSBpcyB0b28gY29uZnVzaW5nKS4gU28gd2UgbmVlZCB0byBiZSBhYmxlIHRvIGluc3RhbnRpYXRl
IHNjcm9sbGluZworICAgICAgICB0cmVlIG5vZGVzIGluIGEgZGlzY29ubmVjdGVkIHN0YXRlLCBh
bmQgYXR0YWNoIHRoZW0gbGF0ZXIuCisKKyAgICAgICAgVG8gYWNoaWV2ZSB0aGlzLCBhZGQgdGhl
IG5vdGlvbiBvZiAidW5wYXJlbnRlZCIgbm9kZXMgdG8gU2Nyb2xsaW5nQ29vcmRpbmF0b3IgYW5k
IHRoZSBTY3JvbGxpbmdTdGF0ZVRyZWUuCisgICAgICAgIEFsbG93IGNsaWVudHMgdG8gY3JlYXRl
IHVucGFyZW50ZWQgbm9kZXMsIHdoaWNoIGNhbiBiZSBhdHRhY2hlZCBsYXRlci4gU2Nyb2xsaW5n
Q29vcmRpbmF0b3Igc3RvcmVzCisgICAgICAgIHRoZSByb290cyBvZiB1bnBhcmVudGVkIHN1YnRy
ZWVzIGluIGFuIG93bmluZyBIYXNoTWFwLiBOb2RlcyBpbiB1bnBhcmVudGVkIHRyZWVzIGFyZSBz
dGlsbCByZWZlcmVuY2VkCisgICAgICAgIGJ5IG1fc3RhdGVOb2RlTWFwLCBzbyBpdCdzIHBvc3Np
YmxlIHRvIGZpbmQgdGhlbSBhbmQgc2V0IHN0YXRlIG9uIHRoZW0uCisKKyAgICAgICAgQ2xlYW4g
dXAgdGhlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIGludGVyZmFjZSB0byByZW1vdmUgInN0YXRlIHRy
ZWUiIHRlcm1pbm9sb2d5OyB0aGUgc3RhdGUgdnMuIHNjcm9sbGluZyB0cmVlCisgICAgICAgIGlz
IHJlYWxseSBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisKKyAgICAgICAgVGhpcyBhbHNvIHJl
bW92ZXMgdGhlIHNwZWNpYWwtY2FzaW5nIG9mIFNjcm9sbGluZ05vZGVUeXBlOjpTdWJmcmFtZSBu
b2RlcyB3aGljaCBTY3JvbGxpbmdTdGF0ZVRyZWUgc3RvcmVkCisgICAgICAgIGluIG1fb3JwaGFu
ZWRTdWJmcmFtZU5vZGVzOyBub3cgdGhlIHVucGFyZW50aW5nIGlzIGNvbnRyb2xsZWQgYnkgdGhl
IGNsaWVudC4KKworICAgICAgICBDdXJyZW50bHkgbm8gY29kZSBjcmVhdGVzIHVucGFyZW50ZWQg
bm9kZXMgc28gdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRQYWdlQ2FjaGVTdGF0
ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omluc2Vy
dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dW5w
YXJlbnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnVucGFyZW50Q2hpbGRyZW5BbmREZXN0cm95Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hBbmREZXN0cm95U3VidHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpjbGVhckFsbE5vZGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnBhcmVudE9mTm9kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjplbnN1
cmVSb290U3RhdGVOb2RlRm9yRnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmF0dGFjaFRvU3RhdGVUcmVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmRldGFjaEZyb21TdGF0ZVRyZWUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
Y2xlYXJTdGF0ZVRyZWUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmNyZWF0ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
Omluc2VydE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVu
cGFyZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6dW5w
YXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpkZXRhY2hBbmREZXN0cm95U3VidHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6Y2xlYXJBbGxOb2Rlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6cGFyZW50T2ZOb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjaGlsZHJlbk9mTm9kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6YXR0YWNoVG9TdGF0ZVRyZWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmRldGFjaEZy
b21TdGF0ZVRyZWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmNsZWFyU3RhdGVUcmVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3Rh
dGVOb2RlOjpyZW1vdmVGcm9tUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OlNjcm9sbGluZ1N0
YXRlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZVVu
cGFyZW50ZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6aW5z
ZXJ0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OnVucGFyZW50
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OnVucGFyZW50Q2hp
bGRyZW5BbmREZXN0cm95Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRy
ZWU6OmRldGFjaEFuZERlc3Ryb3lTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVl
Ojpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVO
b2RlQW5kQWxsRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVU
cmVlOjpyZWN1cnNpdmVOb2RlV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgIChzaG93U2Nyb2xsaW5n
U3RhdGVUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNo
Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OmRl
dGFjaE5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpub2RlQ291
bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpkZXRhY2hGcm9tU2Nyb2xsaW5n
Q29vcmRpbmF0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWF0dGFjaFN1
YmZyYW1lU2Nyb2xsTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6YXR0YWNoU2Nyb2xsaW5nTm9kZSk6CisKIDIwMTktMDEtMjYgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBUaGUgaW5pdGlhbCB2YWx1ZXMgZm9y
IHRvcC9ib3R0b20gaW4gY29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBzaG91
bGQgbm90IGJlIDAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhYWUxNjBiYTA3ZjFiNmVjYjE0YTg2YWMyOWQwYTMx
MTE3MTc0OTMuLjZiYTVhYTkwZWJhZTI2MTFmNGIzNzQxOWRmYWYwMThhZjRmNjA5MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDEtMjYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgdG8g
ZXhpc3QgaW4gYSBkZXRhY2hlZCBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkZWNvZGUpOgorCiAyMDE5LTAxLTI1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyMzg4MTgpOiBTbmFwc2hvdCBpcyByZW1vdmVkIHRvbyBsYXRlIGFmdGVyIHN3aXBpbmcgYmFj
ayBvbiBUd2l0dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhZDMzZmFmOWQxMjVkNzY3
OWQ3MTQyYzI4NWE0OTkzZjQzNWNlMDZiLi5mODZiMzZmOTA2ODBkNDI3OGZjZDQ1ZjE0N2ZiMzc4
Y2JhODg1N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUyMDAsNyArNTIwMCw3IEBA
IHZvaWQgRG9jdW1lbnQ6OnNldFBhZ2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQog
ICAgICAgICAgICAgaWYgKHBhZ2UgJiYgbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAg
ICAgICAgICAgIHYtPnJlc2V0U2Nyb2xsYmFyc0FuZENsZWFyQ29udGVudHNTaXplKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgICAgICAgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5jbGVhclN0YXRlVHJlZSgpOworICAgICAgICAgICAgICAgICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+Y2xlYXJBbGxOb2RlcygpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDQ5M2VjMTE2MGMzMTAyYzNi
MWFlNGQ3MTVmMjRlMTMwMGRiZGNhOC4uOGYxMmEzMWRhMjM5MjZiMDZiMWJkOGMxNjRlMjk2NmJl
OGI2M2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTQ4NiwyMiArNDg2LDQ3IEBAIHZv
aWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXll
ckRpZENoYW5nZShTY3JvbGxhYmxlCiAgICAgfQogfQogCi1TY3JvbGxpbmdOb2RlSUQgQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6YXR0YWNoVG9TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9sbGluZ05vZGVJRCBwYXJl
bnRJRCwgc2l6ZV90IGNoaWxkSW5kZXgpCitTY3JvbGxpbmdOb2RlSUQgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIG5ld05vZGVJRCkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmF0dGFjaFRvU3RhdGVUcmVlICIg
PDwgbm9kZVR5cGUgPDwgIiBub2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgcGFyZW50ICIgPDwgcGFy
ZW50SUQgPDwgIiBpbmRleCAiIDw8IGNoaWxkSW5kZXgpOwotICAgIHJldHVybiBtX3Njcm9sbGlu
Z1N0YXRlVHJlZS0+YXR0YWNoTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlELCBwYXJlbnRJRCwgY2hp
bGRJbmRleCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVOb2RlICIgPDwgbm9kZVR5cGUgPDwgIiBub2Rl
ICIgPDwgbmV3Tm9kZUlEKTsKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPmNyZWF0
ZVVucGFyZW50ZWROb2RlKG5vZGVUeXBlLCBuZXdOb2RlSUQpOwogfQogCi12b2lkIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmRldGFjaEZyb21TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCkKK1Njcm9sbGluZ05vZGVJRCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjppbnNlcnRO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlE
LCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQsIHNpemVfdCBjaGlsZEluZGV4KQogewotICAgIG1f
c2Nyb2xsaW5nU3RhdGVUcmVlLT5kZXRhY2hOb2RlKG5vZGVJRCk7CisgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjppbnNl
cnROb2RlICIgPDwgbm9kZVR5cGUgPDwgIiBub2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgcGFyZW50
ICIgPDwgcGFyZW50SUQgPDwgIiBpbmRleCAiIDw8IGNoaWxkSW5kZXgpOworICAgIHJldHVybiBt
X3Njcm9sbGluZ1N0YXRlVHJlZS0+aW5zZXJ0Tm9kZShub2RlVHlwZSwgbmV3Tm9kZUlELCBwYXJl
bnRJRCwgY2hpbGRJbmRleCk7CiB9CiAKLXZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
Y2xlYXJTdGF0ZVRyZWUoKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1bnBhcmVu
dE5vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBtX3Njcm9sbGluZ1N0YXRlVHJl
ZS0+dW5wYXJlbnROb2RlKG5vZGVJRCk7Cit9CisKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lOb2RlKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCit7CisgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnVucGFyZW50Q2hpbGRyZW5BbmREZXN0
cm95Tm9kZShub2RlSUQpOworfQorCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmRl
dGFjaEFuZERlc3Ryb3lTdWJ0cmVlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgbV9z
Y3JvbGxpbmdTdGF0ZVRyZWUtPmRldGFjaEFuZERlc3Ryb3lTdWJ0cmVlKG5vZGVJRCk7Cit9CisK
K3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6Y2xlYXJBbGxOb2RlcygpCiB7CiAgICAg
bV9zY3JvbGxpbmdTdGF0ZVRyZWUtPmNsZWFyKCk7CiB9CiAKK1Njcm9sbGluZ05vZGVJRCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpwYXJlbnRPZk5vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkgY29uc3QKK3sKKyAgICBhdXRvKiBzY3JvbGxpbmdOb2RlID0gbV9zY3JvbGxpbmdTdGF0ZVRy
ZWUtPnN0YXRlTm9kZUZvcklEKG5vZGVJRCk7CisgICAgaWYgKCFzY3JvbGxpbmdOb2RlKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlLT5wYXJlbnROb2RlSUQo
KTsKK30KKwogVmVjdG9yPFNjcm9sbGluZ05vZGVJRD4gQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6Y2hpbGRyZW5PZk5vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkgY29uc3QKIHsKICAgICBh
dXRvKiBzY3JvbGxpbmdOb2RlID0gbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklE
KG5vZGVJRCk7CkBAIC01NDAsNyArNTY1LDcgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjplbnN1cmVSb290U3RhdGVOb2RlRm9yRnJhbWVWaWV3KEZyYW1lVmlldyYgZnJhbWUKICAg
ICAvLyBGb3Igbm9uLW1haW4gZnJhbWVzLCBpdCBpcyBvbmx5IHBvc3NpYmxlIHRvIGFycml2ZSBp
biB0aGlzIGZ1bmN0aW9uIGZyb20KICAgICAvLyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUJhY2tpbmcgd2hlcmUgdGhlIG5vZGUgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkLgogICAgIEFT
U0VSVChmcmFtZVZpZXcuZnJhbWUoKS5pc01haW5GcmFtZSgpKTsKLSAgICBhdHRhY2hUb1N0YXRl
VHJlZShTY3JvbGxpbmdOb2RlVHlwZTo6TWFpbkZyYW1lLCBmcmFtZVZpZXcuc2Nyb2xsTGF5ZXJJ
RCgpLCAwLCAwKTsKKyAgICBpbnNlcnROb2RlKFNjcm9sbGluZ05vZGVUeXBlOjpNYWluRnJhbWUs
IGZyYW1lVmlldy5zY3JvbGxMYXllcklEKCksIDAsIDApOwogfQogCiB2b2lkIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNldE5vZGVMYXllcnMoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgR3Jh
cGhpY3NMYXllciogbGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGVkQ29udGVudHNMYXllciwg
R3JhcGhpY3NMYXllciogY291bnRlclNjcm9sbGluZ0xheWVyLCBHcmFwaGljc0xheWVyKiBpbnNl
dENsaXBMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA1NzE3N2VkZjY5MWIxYTFiOWM1M2Nl
MmI1OTk4MDZhZjcyOGZmMDQ1Li5jYzIzZGE4ZjBiZTg5MjZhMTQ0M2FlMTUzOTQwNDJjZjI3YWJl
ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC05NywxMCArOTcsMTQgQEAgcHJpdmF0ZToKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1l
VmlldyYsIGNvbnN0IEludFBvaW50Jikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBT
Y3JvbGxpbmdOb2RlSUQgYXR0YWNoVG9TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCwgc2l6ZV90IGNo
aWxkSW5kZXgpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGV0YWNoRnJvbVN0
YXRlVHJlZShTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2xlYXJTdGF0ZVRyZWUoKSBvdmVycmlkZTsKLQorICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9s
bGluZ05vZGVJRCBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bmV3Tm9kZUlEKSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdOb2RlSUQg
aW5zZXJ0Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCwg
U2Nyb2xsaW5nTm9kZUlEIHBhcmVudElELCBzaXplX3QgY2hpbGRJbmRleCkgb3ZlcnJpZGU7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnBhcmVudE5vZGUoU2Nyb2xsaW5nTm9kZUlEKSBvdmVy
cmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucGFyZW50Q2hpbGRyZW5BbmREZXN0cm95
Tm9kZShTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGV0YWNoQW5kRGVzdHJveVN1YnRyZWUoU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsTm9kZXMoKSBvdmVycmlkZTsKKworICAgIFdFQkNP
UkVfRVhQT1JUIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRPZk5vZGUoU2Nyb2xsaW5nTm9kZUlEKSBj
b25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U2Nyb2xsaW5nTm9kZUlE
PiBjaGlsZHJlbk9mTm9kZShTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXROb2RlTGF5ZXJzKFNjcm9sbGluZ05vZGVJRCwgR3JhcGhp
Y3NMYXllciogLypsYXllciovLCBHcmFwaGljc0xheWVyKiAvKnNjcm9sbGVkQ29udGVudHNMYXll
ciovID0gbnVsbHB0ciwgR3JhcGhpY3NMYXllciogLypjb3VudGVyU2Nyb2xsaW5nTGF5ZXIqLyA9
IG51bGxwdHIsIEdyYXBoaWNzTGF5ZXIqIC8qaW5zZXRDbGlwTGF5ZXIqLyA9IG51bGxwdHIpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKaW5kZXggYWM5NzZlM2JjYTIyNmFiNWI3NTBlYjYwMGIwNzc1OGM2MDk2
MWIxZS4uNjU0N2RhYWI5YTkwM2QwYjRlZTg5YTI4ZTMwNjY0Njk0YjI2ZmEzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
CkBAIC0xNjgsMTEgKzE2OCwyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRy
ZWVTdGF0ZUlmTmVlZGVkKCkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShGcmFtZVZpZXcmLCBjb25zdCBJbnRQb2ludCYpIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JikgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgU2Nyb2xsaW5n
Tm9kZUlEIGF0dGFjaFRvU3RhdGVUcmVlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbmV3Tm9kZUlELCBTY3JvbGxpbmdOb2RlSUQgLypwYXJlbnRJRCovLCBzaXplX3QgLypjaGls
ZEluZGV4Ki8gPSBub3RGb3VuZCkgeyByZXR1cm4gbmV3Tm9kZUlEOyB9Ci0gICAgdmlydHVhbCBW
ZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPiBjaGlsZHJlbk9mTm9kZShTY3JvbGxpbmdOb2RlSUQpIGNv
bnN0IHsgcmV0dXJuIHsgfTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21TdGF0ZVRy
ZWUoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGF0ZVRyZWUo
KSB7IH0KKyAgICAvLyBDcmVhdGUgYW4gdW5wYXJlbnRlZCBub2RlLgorICAgIHZpcnR1YWwgU2Ny
b2xsaW5nTm9kZUlEIGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCBuZXdOb2RlSUQpIHsgcmV0dXJuIG5ld05vZGVJRDsgfQorICAgIC8vIFBhcmVudCBhIG5vZGUg
aW4gdGhlIHNjcm9sbGluZyB0cmVlLiBUaGlzIG1heSByZXR1cm4gYSBuZXcgbm9kZUlEIGlmIHRo
ZSBub2RlIHR5cGUgY2hhbmdlZC4gcGFyZW50SUQgPSAwIHNldHMgdGhlIHJvb3Qgbm9kZS4KKyAg
ICB2aXJ0dWFsIFNjcm9sbGluZ05vZGVJRCBpbnNlcnROb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlELCBTY3JvbGxpbmdOb2RlSUQgLypwYXJlbnRJRCovLCBz
aXplX3QgLypjaGlsZEluZGV4Ki8gPSBub3RGb3VuZCkgeyByZXR1cm4gbmV3Tm9kZUlEOyB9Cisg
ICAgLy8gTm9kZSB3aWxsIGJlIHVucGFyZW50ZWQsIGJ1dCBub3QgZGVzdHJveWVkLiBJdCdzIHRo
ZSBjbGllbnQncyByZXNwb25zaWJpbGl0eSB0byBlaXRoZXIgcmUtcGFyZW50IG9yIGRlc3Ryb3kg
dGhpcyBub2RlLgorICAgIHZpcnR1YWwgdm9pZCB1bnBhcmVudE5vZGUoU2Nyb2xsaW5nTm9kZUlE
KSB7IH0KKyAgICAvLyBOb2RlIHdpbGwgYmUgZGVzdHJveWVkLCBhbmQgaXRzIGNoaWxkcmVuIGxl
ZnQgdW5wYXJlbnRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgdW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ry
b3lOb2RlKFNjcm9sbGluZ05vZGVJRCkgeyB9CisgICAgLy8gTm9kZSB3aWxsIGJlIHVucGFyZW50
ZWQsIGFuZCBpdCBhbmQgaXRzIGNoaWxkcmVuIGRlc3Ryb3llZC4KKyAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoQW5kRGVzdHJveVN1YnRyZWUoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyAgICAvLyBEZXN0
cm95IHRoZSB0cmVlLCBpbmNsdWRpbmcgYm90aCBwYXJlbnRlZCBhbmQgdW5wYXJlbnRlZCBub2Rl
cy4KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxOb2RlcygpIHsgfQorCisgICAgdmlydHVhbCBT
Y3JvbGxpbmdOb2RlSUQgcGFyZW50T2ZOb2RlKFNjcm9sbGluZ05vZGVJRCkgY29uc3QgeyByZXR1
cm4gMDsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFNjcm9sbGluZ05vZGVJRD4gY2hpbGRyZW5PZk5v
ZGUoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBzZXROb2RlTGF5ZXJzKFNjcm9sbGluZ05vZGVJRCwgR3JhcGhpY3NMYXllciogLypsYXll
ciovLCBHcmFwaGljc0xheWVyKiAvKnNjcm9sbGVkQ29udGVudHNMYXllciovID0gbnVsbHB0ciwg
R3JhcGhpY3NMYXllciogLypjb3VudGVyU2Nyb2xsaW5nTGF5ZXIqLyA9IG51bGxwdHIsIEdyYXBo
aWNzTGF5ZXIqIC8qaW5zZXRDbGlwTGF5ZXIqLyA9IG51bGxwdHIpIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAppbmRl
eCBlMTBiMjFhMzMzYjhkZDUwNjQ5ZGVmNTNhMjZiNWJhNzQ0NTQ3MGViLi4wZmE4Mjk5NTExY2I4
OTExY2FiZDUwMjljNzkxMWFiMDBkZmFkZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKQEAgLTExMSw2ICsxMTEsMjEg
QEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6Omluc2VydENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0
ZU5vZGU+JiYgY2hpbGROb2RlLCBzaXplX3QKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoQ2hpbGRO
b2Rlcyk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpyZW1vdmVGcm9tUGFyZW50KCkK
K3sKKyAgICBpZiAoIW1fcGFyZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhcmVudC0+
cmVtb3ZlQ2hpbGQoKnRoaXMpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6cmVtb3Zl
Q2hpbGQoU2Nyb2xsaW5nU3RhdGVOb2RlJiBjaGlsZE5vZGUpCit7CisgICAgYXV0byBjaGlsZElu
ZGV4ID0gaW5kZXhPZkNoaWxkKGNoaWxkTm9kZSk7CisgICAgaWYgKGNoaWxkSW5kZXggIT0gbm90
Rm91bmQpCisgICAgICAgIHJlbW92ZUNoaWxkQXRJbmRleChjaGlsZEluZGV4KTsKK30KKwogdm9p
ZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnJlbW92ZUNoaWxkQXRJbmRleChzaXplX3QgaW5kZXgpCiB7
CiAgICAgQVNTRVJUKG1fY2hpbGRyZW4gJiYgaW5kZXggPCBtX2NoaWxkcmVuLT5zaXplKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUu
aAppbmRleCBjMjg4NzJmMWZjMmUwNjBiNzA3YjE1MDlhOWI0NWRlMmJkNGQ2YTZmLi5hMDc0N2Vj
NjVlNjQ1YmY1NGZhNDE3MGI4YzM3YzJhYjMyYzE5ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtMjQwLDcgKzI0MCwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nU3RhdGVOb2Rl
PiYmKTsKICAgICB2b2lkIGluc2VydENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYsIHNp
emVfdCBpbmRleCk7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm9kZSBvd25lcnNoaXAgaXMgdmlhIHRo
ZSBwYXJlbnQsIHNvIHRoZXNlIGZ1bmN0aW9ucyBjYW4gdHJpZ2dlciBub2RlIGRlbGV0aW9uLgor
ICAgIHZvaWQgcmVtb3ZlRnJvbVBhcmVudCgpOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRBdEluZGV4
KHNpemVfdCBpbmRleCk7CisgICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdTdGF0ZU5vZGUm
KTsKIAogICAgIHNpemVfdCBpbmRleE9mQ2hpbGQoU2Nyb2xsaW5nU3RhdGVOb2RlJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwCmluZGV4IGIxYTI2YjljZTkwZTM4M2FkMjFjMzE2ZjAwNGE5N2ZkYWIxN2ZiMTcu
LmI2MDc2YzAwYThkZTEwZjg0MTdiYTI2YjI3MzZmOGM1OGRjYTM3OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAt
MjksMjQgKzI5LDE5IEBACiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgfHwgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVkZSAiQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZUZpeGVkTm9k
ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlRnJhbWVIb3N0aW5nTm9kZS5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLSNpZm5kZWYg
TkRFQlVHCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNlbmRpZgorI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxpbmdTdGF0ZVRyZWU6
OlNjcm9sbGluZ1N0YXRlVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdD
b29yZGluYXRvcikKICAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRp
bmF0b3IpCi0gICAgLCBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzKGZhbHNlKQotICAgICwgbV9oYXNO
ZXdSb290U3RhdGVOb2RlKGZhbHNlKQotICAgICwgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0
aW9uKExheWVyUmVwcmVzZW50YXRpb246OkdyYXBoaWNzTGF5ZXJSZXByZXNlbnRhdGlvbikKIHsK
IH0KIApAQCAtOTMsOCArODgsMzUgQEAgYm9vbCBTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBl
QW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlLCBTY3JvbGwKICAgICByZXR1
cm4gbm9kZS5wYXJlbnQoKSA9PSBwYXJlbnROb2RlOwogfQogCi1TY3JvbGxpbmdOb2RlSUQgU2Ny
b2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlELCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQsIHNpemVf
dCBjaGlsZEluZGV4KQorU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRl
VW5wYXJlbnRlZE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCBuZXdOb2RlSUQpCiB7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJTY3JvbGxpbmdTdGF0ZVRyZWUgIiA8PCB0aGlzIDw8ICIgY3JlYXRlVW5wYXJlbnRlZE5vZGUg
IiA8PCBuZXdOb2RlSUQpOworCisgICAgaWYgKGF1dG8qIG5vZGUgPSBzdGF0ZU5vZGVGb3JJRChu
ZXdOb2RlSUQpKSB7CisgICAgICAgIGlmIChub2RlLT5ub2RlVHlwZSgpID09IG5vZGVUeXBlKSB7
CisgICAgICAgICAgICAvLyBJZiB0aGUgbm9kZSBleGlzdHMgYW5kIGlzIHBhcmVudGVkLCB1bnBh
cmVudCBpdC4gSXQgbWF5IGFscmVhZHkgYmUgaW4gbV91bnBhcmVudGVkTm9kZXMuCisgICAgICAg
ICAgICB1bnBhcmVudE5vZGUobmV3Tm9kZUlEKTsKKyAgICAgICAgICAgIHJldHVybiBuZXdOb2Rl
SUQ7CisgICAgICAgIH0KKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8v
IElmIHRoZSB0eXBlIGhhcyBjaGFuZ2VkLCB3ZSBuZWVkIHRvIGRlc3Ryb3kgYW5kIHJlY3JlYXRl
IHRoZSBub2RlIHdpdGggYSBuZXcgSUQuCisgICAgICAgIGlmIChub2RlVHlwZSAhPSBub2RlLT5u
b2RlVHlwZSgpKSB7CisgICAgICAgICAgICB1bnBhcmVudENoaWxkcmVuQW5kRGVzdHJveU5vZGUo
bmV3Tm9kZUlEKTsKKyAgICAgICAgICAgIG5ld05vZGVJRCA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3ItPnVuaXF1ZVNjcm9sbGluZ05vZGVJRCgpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9CisK
KyAgICBhdXRvIHN0YXRlTm9kZSA9IGNyZWF0ZU5vZGUobm9kZVR5cGUsIG5ld05vZGVJRCk7Cisg
ICAgYWRkTm9kZShzdGF0ZU5vZGUuZ2V0KCkpOworICAgIG1fdW5wYXJlbnRlZE5vZGVzLmFkZChu
ZXdOb2RlSUQsIFdURk1vdmUoc3RhdGVOb2RlKSk7CisgICAgcmV0dXJuIG5ld05vZGVJRDsKK30K
KworU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6aW5zZXJ0Tm9kZShTY3JvbGxp
bmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCwgU2Nyb2xsaW5n
Tm9kZUlEIHBhcmVudElELCBzaXplX3QgY2hpbGRJbmRleCkKK3sKKyAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwg
IiBpbnNlcnROb2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgaW4gcGFyZW50ICIgPDwgcGFyZW50SUQg
PDwgIiBhdCAiIDw8IGNoaWxkSW5kZXgpOwogICAgIEFTU0VSVChuZXdOb2RlSUQpOwogCiAgICAg
aWYgKGF1dG8qIG5vZGUgPSBzdGF0ZU5vZGVGb3JJRChuZXdOb2RlSUQpKSB7CkBAIC0xMjYsNyAr
MTQ4LDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wKICNlbmRpZgogCiAgICAgICAgIC8vIFRo
ZSBub2RlIGlzIGJlaW5nIHJlLXBhcmVudGVkLiBUbyBkbyB0aGF0LCB3ZSdsbCByZW1vdmUgaXQs
IGFuZCB0aGVuIGNyZWF0ZSBhIG5ldyBub2RlLgotICAgICAgICByZW1vdmVOb2RlQW5kQWxsRGVz
Y2VuZGFudHMobm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbDo6T3JwaGFuKTsKKyAgICAgICAgdW5w
YXJlbnROb2RlKG5ld05vZGVJRCk7CiAgICAgfQogCiAgICAgU2Nyb2xsaW5nU3RhdGVOb2RlKiBu
ZXdOb2RlID0gbnVsbHB0cjsKQEAgLTE0NSwxMyArMTY3LDEzIEBAIFNjcm9sbGluZ05vZGVJRCBT
Y3JvbGxpbmdTdGF0ZVRyZWU6OmF0dGFjaE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUs
IFNjcm9sCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChu
b2RlVHlwZSA9PSBTY3JvbGxpbmdOb2RlVHlwZTo6U3ViZnJhbWUgJiYgcGFyZW50SUQpIHsKLSAg
ICAgICAgICAgIGlmIChhdXRvIG9ycGhhbmVkTm9kZSA9IG1fb3JwaGFuZWRTdWJmcmFtZU5vZGVz
LnRha2UobmV3Tm9kZUlEKSkgewotICAgICAgICAgICAgICAgIG5ld05vZGUgPSBvcnBoYW5lZE5v
ZGUuZ2V0KCk7CisgICAgICAgIGlmIChwYXJlbnRJRCkgeworICAgICAgICAgICAgaWYgKGF1dG8g
dW5wYXJlbnRlZE5vZGUgPSBtX3VucGFyZW50ZWROb2Rlcy50YWtlKG5ld05vZGVJRCkpIHsKKyAg
ICAgICAgICAgICAgICBuZXdOb2RlID0gdW5wYXJlbnRlZE5vZGUuZ2V0KCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGNoaWxkSW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgICAgICAgICAgICAgIHBh
cmVudC0+YXBwZW5kQ2hpbGQob3JwaGFuZWROb2RlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAg
ICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKHVucGFyZW50ZWROb2RlLnJlbGVhc2VO
b25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcGFy
ZW50LT5pbnNlcnRDaGlsZChvcnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSwgY2hpbGRJbmRl
eCk7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudC0+aW5zZXJ0Q2hpbGQodW5wYXJlbnRlZE5v
ZGUucmVsZWFzZU5vbk51bGwoKSwgY2hpbGRJbmRleCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApAQCAtMTcwLDE3ICsxOTIsNTcgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0YXRl
VHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wKICAgICBy
ZXR1cm4gbmV3Tm9kZUlEOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6ZGV0YWNoTm9k
ZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQordm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnVucGFy
ZW50Tm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIGlmICghbm9kZUlEKQogICAg
ICAgICByZXR1cm47CiAKLSAgICAvLyBUaGUgbm9kZSBtYXkgbm90IGJlIGZvdW5kIGlmIGNsZWFy
U3RhdGVUcmVlKCkgd2FzIHJlY2VudGx5IGNhbGxlZC4KKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiB1bnBh
cmVudE5vZGUgIiA8PCBub2RlSUQpOworCisgICAgLy8gVGhlIG5vZGUgbWF5IG5vdCBiZSBmb3Vu
ZCBpZiBjbGVhcigpIHdhcyByZWNlbnRseSBjYWxsZWQuCisgICAgUmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4gcHJvdGVjdGVkTm9kZSA9IG1fc3RhdGVOb2RlTWFwLmdldChub2RlSUQpOworICAg
IGlmICghcHJvdGVjdGVkTm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJvdGVjdGVkTm9k
ZS0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fdW5wYXJlbnRlZE5vZGVzLmFkZChub2RlSUQs
IFdURk1vdmUocHJvdGVjdGVkTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6
dW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lOb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7
CisgICAgaWYgKCFub2RlSUQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRoZSBub2RlIG1h
eSBub3QgYmUgZm91bmQgaWYgY2xlYXIoKSB3YXMgcmVjZW50bHkgY2FsbGVkLgorICAgIFJlZlB0
cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IHByb3RlY3RlZE5vZGUgPSBtX3N0YXRlTm9kZU1hcC50YWtl
KG5vZGVJRCk7CisgICAgaWYgKCFwcm90ZWN0ZWROb2RlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoYXV0byogY2hpbGRyZW4gPSBwcm90ZWN0ZWROb2RlLT5jaGlsZHJlbigpKSB7CisgICAg
ICAgIGZvciAoYXV0byBjaGlsZCA6ICpjaGlsZHJlbikgeworICAgICAgICAgICAgY2hpbGQtPnJl
bW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgICAgIG1fdW5wYXJlbnRlZE5vZGVzLmFkZChjaGls
ZC0+c2Nyb2xsaW5nTm9kZUlEKCksIFdURk1vdmUoY2hpbGQpKTsKKyAgICAgICAgfQorICAgICAg
ICBjaGlsZHJlbi0+Y2xlYXIoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkTm9kZS0+cmVt
b3ZlRnJvbVBhcmVudCgpOworICAgIHdpbGxSZW1vdmVOb2RlKHByb3RlY3RlZE5vZGUuZ2V0KCkp
OworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6ZGV0YWNoQW5kRGVzdHJveVN1YnRyZWUo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBpZiAoIW5vZGVJRCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gVGhlIG5vZGUgbWF5IG5vdCBiZSBmb3VuZCBpZiBjbGVhcigpIHdhcyBy
ZWNlbnRseSBjYWxsZWQuCiAgICAgYXV0byogbm9kZSA9IG1fc3RhdGVOb2RlTWFwLnRha2Uobm9k
ZUlEKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlbW92ZU5vZGVB
bmRBbGxEZXNjZW5kYW50cyhub2RlLCBTdWJmcmFtZU5vZGVSZW1vdmFsOjpPcnBoYW4pOworICAg
IC8vIElmIHRoZSBub2RlIHdhcyB1bnBhcmVudGVkLCByZW1vdmUgaXQgZnJvbSBtX3VucGFyZW50
ZWROb2RlcyAoa2VlcGluZyBpdCBhbGl2ZSB1bnRpbCB0aGlzIGZ1bmN0aW9uIHJldHVybnMpLgor
ICAgIGF1dG8gdW5wYXJlbnRlZE5vZGUgPSBtX3VucGFyZW50ZWROb2Rlcy50YWtlKG5vZGVJRCk7
CisgICAgcmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKG5vZGUpOwogfQogCiB2b2lkIFNjcm9s
bGluZ1N0YXRlVHJlZTo6Y2xlYXIoKQpAQCAtMTg5LDE3ICsyNTEsMTQgQEAgdm9pZCBTY3JvbGxp
bmdTdGF0ZVRyZWU6OmNsZWFyKCkKICAgICAgICAgcmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRz
KHJvb3RTdGF0ZU5vZGUoKSk7CiAKICAgICBtX3N0YXRlTm9kZU1hcC5jbGVhcigpOwotICAgIG1f
b3JwaGFuZWRTdWJmcmFtZU5vZGVzLmNsZWFyKCk7CisgICAgbV91bnBhcmVudGVkTm9kZXMuY2xl
YXIoKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gU2Nyb2xsaW5n
U3RhdGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSBwcmVmZXJyZWRMYXll
clJlcHJlc2VudGF0aW9uKQogewotICAgIGlmICghbV9vcnBoYW5lZFN1YmZyYW1lTm9kZXMuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIC8vIElmIHdlIHN0aWxsIGhhdmUgb3JwaGFuZWQgc3VidHJlZXMs
IHJlbW92ZSB0aGVtIGZyb20gbV9zdGF0ZU5vZGVNYXAgc2luY2UgdGhleSB3aWxsIGJlIGRlbGV0
ZWQgCi0gICAgICAgIC8vIHdoZW4gY2xlYXJpbmcgbV9vcnBoYW5lZFN1YmZyYW1lTm9kZXMuCi0g
ICAgICAgIGZvciAoYXV0byYgb3JwaGFuTm9kZSA6IG1fb3JwaGFuZWRTdWJmcmFtZU5vZGVzLnZh
bHVlcygpKQotICAgICAgICAgICAgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQob3JwaGFuTm9k
ZS5nZXQoKSwgU3ViZnJhbWVOb2RlUmVtb3ZhbDo6RGVsZXRlKTsKLSAgICAgICAgbV9vcnBoYW5l
ZFN1YmZyYW1lTm9kZXMuY2xlYXIoKTsKKyAgICBpZiAoIW1fdW5wYXJlbnRlZE5vZGVzLmlzRW1w
dHkoKSkgeworICAgICAgICAvLyBXZSBleHBlY3QgdGVtcG9yYXJpbHkgdG8gaGF2ZSB1bnBhcmVu
dGVkIG5vZGVzIHdoZW4gY29tbWl0dGluZyB3aGVuIGNvbm5lY3RpbmcgYWNyb3NzIGlmcmFtZSBi
b3VuZGFyaWVzLCBidXQgdW5wYXJlbnRlZCBub2RlcyBzaG91bGQgbm90IHN0aWNrIGFyb3VuZCBm
b3IgYSBsb25nIHRpbWUuCisgICAgICAgIExPRyhTY3JvbGxpbmcsICJDb21taXR0aW5nIHdpdGgg
JXUgdW5wYXJlbnRlZCBub2RlcyIsIG1fdW5wYXJlbnRlZE5vZGVzLnNpemUoKSk7CiAgICAgfQog
CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjbG9uZXMgYW5kIHJlc2V0cyB0aGUgY3VycmVudCBzdGF0
ZSB0cmVlLCBidXQgbGVhdmVzIHRoZSB0cmVlIHN0cnVjdHVyZSBpbnRhY3QuCkBAIC0yMzIsMTgg
KzI5MSwxOCBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6YWRkTm9kZShTY3JvbGxpbmdTdGF0
ZU5vZGUmIG5vZGUpCiAgICAgbV9zdGF0ZU5vZGVNYXAuYWRkKG5vZGUuc2Nyb2xsaW5nTm9kZUlE
KCksICZub2RlKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlbW92ZU5vZGVBbmRB
bGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUsIFN1YmZyYW1lTm9kZVJlbW92
YWwgc3ViZnJhbWVOb2RlUmVtb3ZhbCkKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVO
b2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQogewogICAgIGF1
dG8qIHBhcmVudCA9IG5vZGUtPnBhcmVudCgpOwogCi0gICAgcmVjdXJzaXZlTm9kZVdpbGxCZVJl
bW92ZWQobm9kZSwgc3ViZnJhbWVOb2RlUmVtb3ZhbCk7CisgICAgcmVjdXJzaXZlTm9kZVdpbGxC
ZVJlbW92ZWQobm9kZSk7CiAKICAgICBpZiAobm9kZSA9PSBtX3Jvb3RTdGF0ZU5vZGUpCiAgICAg
ICAgIG1fcm9vdFN0YXRlTm9kZSA9IG51bGxwdHI7CiAgICAgZWxzZSBpZiAocGFyZW50KSB7CiAg
ICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOwogICAgICAgICBBU1NFUlQocGFyZW50
LT5jaGlsZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKLSAgICAgICAgaWYgKGF1dG8g
Y2hpbGRyZW4gPSBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNoaWxk
cmVuID0gcGFyZW50LT5jaGlsZHJlbigpKSB7CiAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSBj
aGlsZHJlbi0+ZmluZChub2RlKTsKICAgICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkK
ICAgICAgICAgICAgICAgICBjaGlsZHJlbi0+cmVtb3ZlKGluZGV4KTsKQEAgLTI1MSwxOSArMzEw
LDE0IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFu
dHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlLCBTCiAgICAgfQogfQogCi12b2lkIFNjcm9sbGlu
Z1N0YXRlVHJlZTo6cmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVOb2Rl
KiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCBzdWJmcmFtZU5vZGVSZW1vdmFsKQordm9p
ZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKFNjcm9sbGlu
Z1N0YXRlTm9kZSogY3Vyck5vZGUpCiB7CiAgICAgY3Vyck5vZGUtPnNldFBhcmVudChudWxscHRy
KTsKLSAgICBpZiAoc3ViZnJhbWVOb2RlUmVtb3ZhbCA9PSBTdWJmcmFtZU5vZGVSZW1vdmFsOjpP
cnBoYW4gJiYgY3Vyck5vZGUgIT0gbV9yb290U3RhdGVOb2RlICYmIGN1cnJOb2RlLT5pc0ZyYW1l
U2Nyb2xsaW5nTm9kZSgpKSB7Ci0gICAgICAgIG1fb3JwaGFuZWRTdWJmcmFtZU5vZGVzLmFkZChj
dXJyTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGN1cnJOb2RlKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIHdpbGxSZW1vdmVOb2RlKGN1cnJOb2RlKTsKIAotICAgIGlmIChhdXRvIGNo
aWxkcmVuID0gY3Vyck5vZGUtPmNoaWxkcmVuKCkpIHsKKyAgICBpZiAoYXV0byogY2hpbGRyZW4g
PSBjdXJyTm9kZS0+Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogKmNo
aWxkcmVuKQotICAgICAgICAgICAgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoY2hpbGQuZ2V0
KCksIHN1YmZyYW1lTm9kZVJlbW92YWwpOworICAgICAgICAgICAgcmVjdXJzaXZlTm9kZVdpbGxC
ZVJlbW92ZWQoY2hpbGQuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMzAyLDEyICszNTYsMTIgQEAg
dm9pZCBzaG93U2Nyb2xsaW5nU3RhdGVUcmVlKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
VHJlZSogdHJlZSkKIAogICAgIGF1dG8gcm9vdE5vZGUgPSB0cmVlLT5yb290U3RhdGVOb2RlKCk7
CiAgICAgaWYgKCFyb290Tm9kZSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNjcm9sbGlu
ZyBzdGF0ZSB0cmVlICVwIHdpdGggbm8gcm9vdCBub2RlXG4iLCB0cmVlKTsKKyAgICAgICAgV1RG
TG9nQWx3YXlzKCJTY3JvbGxpbmcgc3RhdGUgdHJlZSAlcCB3aXRoIG5vIHJvb3Qgbm9kZVxuIiwg
dHJlZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBTdHJpbmcgb3V0cHV0ID0gcm9v
dE5vZGUtPnNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvckRlYnVnKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBvdXRw
dXQudXRmOCgpLmRhdGEoKSk7CisgICAgV1RGTG9nQWx3YXlzKCIlc1xuIiwgb3V0cHV0LnV0Zjgo
KS5kYXRhKCkpOwogfQogCiB2b2lkIHNob3dTY3JvbGxpbmdTdGF0ZVRyZWUoY29uc3QgV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAppbmRleCA1ODc1NTg2ZWRjZWY5MGFjMDE2
YmEwMGUyMzA2YmVjNmMxNGQ1YjJmLi5hN2U1ZjI1OGNhMjA1NGEzYTY3MWExOGI2ODI5MzUxODY3
MGJlOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVRyZWUuaApAQCAtNTEsOCArNTEsMTEgQEAgcHVibGljOgogICAgIFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlKiByb290U3RhdGVOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9y
b290U3RhdGVOb2RlLmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nU3RhdGVO
b2RlKiBzdGF0ZU5vZGVGb3JJRChTY3JvbGxpbmdOb2RlSUQpIGNvbnN0OwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nTm9kZUlEIGF0dGFjaE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCwgU2Nyb2xsaW5nTm9kZUlEIHBhcmVudElELCBzaXplX3QgY2hpbGRJbmRl
eCk7Ci0gICAgdm9pZCBkZXRhY2hOb2RlKFNjcm9sbGluZ05vZGVJRCk7CisgICAgU2Nyb2xsaW5n
Tm9kZUlEIGNyZWF0ZVVucGFyZW50ZWROb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ05vZGVJRCBpbnNlcnROb2RlKFNj
cm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJ
RCwgc2l6ZV90IGNoaWxkSW5kZXgpOworICAgIHZvaWQgdW5wYXJlbnROb2RlKFNjcm9sbGluZ05v
ZGVJRCk7CisgICAgdm9pZCB1bnBhcmVudENoaWxkcmVuQW5kRGVzdHJveU5vZGUoU2Nyb2xsaW5n
Tm9kZUlEKTsKKyAgICB2b2lkIGRldGFjaEFuZERlc3Ryb3lTdWJ0cmVlKFNjcm9sbGluZ05vZGVJ
RCk7CiAgICAgdm9pZCBjbGVhcigpOwogICAgIAogICAgIGNvbnN0IEhhc2hTZXQ8U2Nyb2xsaW5n
Tm9kZUlEPiYgcmVtb3ZlZE5vZGVzKCkgY29uc3QgeyByZXR1cm4gbV9ub2Rlc1JlbW92ZWRTaW5j
ZUxhc3RDb21taXQ7IH0KQEAgLTY2LDggKzY5LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNO
ZXdSb290U3RhdGVOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNOZXdSb290U3RhdGVOb2RlOyB9
CiAgICAgdm9pZCBzZXRIYXNOZXdSb290U3RhdGVOb2RlKGJvb2wgaGFzTmV3Um9vdCkgeyBtX2hh
c05ld1Jvb3RTdGF0ZU5vZGUgPSBoYXNOZXdSb290OyB9Ci0gICAgCi0gICAgaW50IG5vZGVDb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVOb2RlTWFwLnNpemUoKTsgfQorCisgICAgdW5zaWdu
ZWQgbm9kZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZU5vZGVNYXAuc2l6ZSgpOyB9CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBTY3JvbGxpbmdTdGF0ZU5vZGUq
PiBTdGF0ZU5vZGVNYXA7CiAgICAgY29uc3QgU3RhdGVOb2RlTWFwJiBub2RlTWFwKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZU5vZGVNYXA7IH0KQEAgLTgzLDIwICs4NiwyMiBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVudE1hdGNoKFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNj
cm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHBhcmVudE5vZGUpIGNvbnN0Owog
Ci0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsgRGVsZXRlLCBPcnBoYW4gfTsK
LSAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUq
LCBTdWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJhbWVOb2RlUmVtb3ZhbDo6RGVsZXRlKTsKKyAg
ICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUqKTsK
IAotICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVOb2Rl
KiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7CisgICAgdm9pZCByZWN1cnNpdmVOb2Rl
V2lsbEJlUmVtb3ZlZChTY3JvbGxpbmdTdGF0ZU5vZGUqIGN1cnJOb2RlKTsKICAgICB2b2lkIHdp
bGxSZW1vdmVOb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSopOwogCiAgICAgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvciogbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKKyAgICAvLyBDb250YWlucyBhbGwg
dGhlIG5vZGVzIHdlIGtub3cgYWJvdXQgKHRob3NlIGluIHRoZSBtX3Jvb3RTdGF0ZU5vZGUgdHJl
ZSwgYW5kIGluIG1fdW5wYXJlbnRlZE5vZGVzIHN1YnRyZWVzKS4KICAgICBTdGF0ZU5vZGVNYXAg
bV9zdGF0ZU5vZGVNYXA7CisgICAgLy8gT3ducyByb290cyBvZiB1bnBhcmVudGVkIHN1YnRyZWVz
LgorICAgIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2Rl
Pj4gbV91bnBhcmVudGVkTm9kZXM7CisKICAgICBSZWZQdHI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU+IG1fcm9vdFN0YXRlTm9kZTsKICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJ
RD4gbV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQ7Ci0gICAgSGFzaE1hcDxTY3JvbGxpbmdO
b2RlSUQsIFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiBtX29ycGhhbmVkU3ViZnJhbWVOb2Rl
czsKLSAgICBib29sIG1faGFzQ2hhbmdlZFByb3BlcnRpZXM7Ci0gICAgYm9vbCBtX2hhc05ld1Jv
b3RTdGF0ZU5vZGU7Ci0gICAgTGF5ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSBtX3ByZWZlcnJlZExh
eWVyUmVwcmVzZW50YXRpb247CisgICAgYm9vbCBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faGFzTmV3Um9vdFN0YXRlTm9kZSB7IGZhbHNlIH07CisgICAgTGF5
ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSBtX3ByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24geyBM
YXllclJlcHJlc2VudGF0aW9uOjpHcmFwaGljc0xheWVyUmVwcmVzZW50YXRpb24gfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZGFjYWEzZGRkYTAwNmM5ZDRmYmExNGM0MWZlZjU3
YTIzMTM2ZDExYS4uODE4ZTdiYTc0ZGMzMWM1Y2Y0MzNjZDVjNTg2NThlNTBkOTJhMDczZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE3NzgsMTkgKzE3NzgsMTkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmRldGFjaEZyb21T
Y3JvbGxpbmdDb29yZGluYXRvcihPcHRpb25TZXQ8U2Nyb2xsQ29vcmRpbmEKIAogICAgIGlmIChy
b2xlcy5jb250YWlucyhTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpICYmIG1fc2Ny
b2xsaW5nTm9kZUlEKSB7CiAgICAgICAgIExPRyhDb21wb3NpdGluZywgIkRldGFjaGluZyBTY3Jv
bGxpbmcgbm9kZSAlIiBQUkl1NjQsIG1fc2Nyb2xsaW5nTm9kZUlEKTsKLSAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmRldGFjaEZyb21TdGF0ZVRyZWUobV9zY3JvbGxpbmdOb2RlSUQpOwor
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+dW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lO
b2RlKG1fc2Nyb2xsaW5nTm9kZUlEKTsKICAgICAgICAgbV9zY3JvbGxpbmdOb2RlSUQgPSAwOwog
ICAgIH0KIAogICAgIGlmIChyb2xlcy5jb250YWlucyhTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpT
Y3JvbGxpbmcpICYmIG1fZnJhbWVIb3N0aW5nTm9kZUlEKSB7CiAgICAgICAgIExPRyhDb21wb3Np
dGluZywgIkRldGFjaGluZyBGcmFtZUhvc3Rpbmcgbm9kZSAlIiBQUkl1NjQsIG1fZnJhbWVIb3N0
aW5nTm9kZUlEKTsKLSAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmRldGFjaEZyb21TdGF0
ZVRyZWUobV9mcmFtZUhvc3RpbmdOb2RlSUQpOworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRv
ci0+dW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lOb2RlKG1fZnJhbWVIb3N0aW5nTm9kZUlEKTsK
ICAgICAgICAgbV9mcmFtZUhvc3RpbmdOb2RlSUQgPSAwOwogICAgIH0KIAogICAgIGlmIChyb2xl
cy5jb250YWlucyhTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpWaWV3cG9ydENvbnN0cmFpbmVkKSAm
JiBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQpIHsKICAgICAgICAgTE9HKENvbXBvc2l0aW5n
LCAiRGV0YWNoaW5nIFZpZXdwb3J0Q29uc3RyYWluZWQgbm9kZSAlIiBQUkl1NjQsIG1fdmlld3Bv
cnRDb25zdHJhaW5lZE5vZGVJRCk7Ci0gICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5kZXRh
Y2hGcm9tU3RhdGVUcmVlKG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJRCk7CisgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT51bnBhcmVudENoaWxkcmVuQW5kRGVzdHJveU5vZGUobV92aWV3
cG9ydENvbnN0cmFpbmVkTm9kZUlEKTsKICAgICAgICAgbV92aWV3cG9ydENvbnN0cmFpbmVkTm9k
ZUlEID0gMDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDJlNTA3OTBmYWFmNWQ5YzY1YWEwZjlhMGVlYjE0
MjY0NDYwNWE1ZTYuLjI4YzgyMzgxOTY0YzBlNWVlOTJmZTViZjFjY2Q5OWJlODllYzY5MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCkBAIC0zNzg4LDcgKzM3ODgsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVh
dHRhY2hTdWJmcmFtZVNjcm9sbExheWVycygpCiAgICAgICAgIGlmICghcGFyZW50Tm9kZUlEKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmF0
dGFjaFRvU3RhdGVUcmVlKGNoaWxkLT5pc01haW5GcmFtZSgpID8gU2Nyb2xsaW5nTm9kZVR5cGU6
Ok1haW5GcmFtZSA6IFNjcm9sbGluZ05vZGVUeXBlOjpTdWJmcmFtZSwgZnJhbWVTY3JvbGxpbmdO
b2RlSUQsIHBhcmVudE5vZGVJRCk7CisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5pbnNl
cnROb2RlKGNoaWxkLT5pc01haW5GcmFtZSgpID8gU2Nyb2xsaW5nTm9kZVR5cGU6Ok1haW5GcmFt
ZSA6IFNjcm9sbGluZ05vZGVUeXBlOjpTdWJmcmFtZSwgZnJhbWVTY3JvbGxpbmdOb2RlSUQsIHBh
cmVudE5vZGVJRCk7CiAgICAgfQogfQogCkBAIC0zODIzLDcgKzM4MjMsNyBAQCBTY3JvbGxpbmdO
b2RlSUQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hTY3JvbGxpbmdOb2RlKFJlbmRlckxh
eWVyJiBsYXllciwgUwogICAgIGlmICghbm9kZUlEKQogICAgICAgICBub2RlSUQgPSBzY3JvbGxp
bmdDb29yZGluYXRvci0+dW5pcXVlU2Nyb2xsaW5nTm9kZUlEKCk7CiAKLSAgICBub2RlSUQgPSBz
Y3JvbGxpbmdDb29yZGluYXRvci0+YXR0YWNoVG9TdGF0ZVRyZWUobm9kZVR5cGUsIG5vZGVJRCwg
cGFyZW50Tm9kZUlEKTsKKyAgICBub2RlSUQgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+aW5zZXJ0
Tm9kZShub2RlVHlwZSwgbm9kZUlELCBwYXJlbnROb2RlSUQpOwogICAgIGlmICghbm9kZUlEKQog
ICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGU5NWNhNWJhNTMzN2QwMzkyODQxYTExMTNiODZl
MDY0YTE5YmQ5ODMuLjMwMjIxZTQ3ODYzMWE2MzU5NTQ1YmFlZDViN2Q3MjY2YmM1ZWY5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5j
cHAKQEAgLTQ1NCw3ICs0NTQsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyZW50Tm9kZUlEKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+YXR0YWNoTm9kZShub2RlVHlwZSwgbm9kZUlE
LCBwYXJlbnROb2RlSUQsIG5vdEZvdW5kKTsgLy8gQXBwZW5kIG5ldyBub2RlLgorICAgICAgICBt
X3Njcm9sbGluZ1N0YXRlVHJlZS0+aW5zZXJ0Tm9kZShub2RlVHlwZSwgbm9kZUlELCBwYXJlbnRO
b2RlSUQsIG5vdEZvdW5kKTsKICAgICAgICAgU2Nyb2xsaW5nU3RhdGVOb2RlKiBuZXdOb2RlID0g
bV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKG5vZGVJRCk7CiAgICAgICAgIEFT
U0VSVChuZXdOb2RlKTsKICAgICAgICAgQVNTRVJUKCFwYXJlbnROb2RlSUQgfHwgbmV3Tm9kZS0+
cGFyZW50KCkpOwo=
</data>
<flag name="review"
          id="376968"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>