<?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>202662</bug_id>
          
          <creation_ts>2019-10-07 17:33:28 -0700</creation_ts>
          <short_desc>Copying white text from dark mode WebKit apps and pasting in a light mode app results in white (invisible) text</short_desc>
          <delta_ts>2019-10-08 14:56:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Safari Technology Preview</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577582</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-07 17:33:28 -0700</bug_when>
    <thetext>HTMLConverter needs to strip white colors when the document is in dark mode, like it does for black in light mode.

&lt;rdar://problem/48677354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577583</commentid>
    <comment_count>1</comment_count>
      <attachid>380377</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-07 17:36:33 -0700</bug_when>
    <thetext>Created attachment 380377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577597</commentid>
    <comment_count>2</comment_count>
      <attachid>380381</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-07 18:34:00 -0700</bug_when>
    <thetext>Created attachment 380381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577804</commentid>
    <comment_count>3</comment_count>
      <attachid>380438</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-08 09:49:58 -0700</bug_when>
    <thetext>Created attachment 380438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577930</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-08 13:54:22 -0700</bug_when>
    <thetext>Web Inspector layout test failure on WK1 is unrelated. Ready to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577934</commentid>
    <comment_count>5</comment_count>
      <attachid>380438</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-10-08 14:05:30 -0700</bug_when>
    <thetext>Comment on attachment 380438
Patch

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

&gt; Source/WebCore/editing/cocoa/HTMLConverter.mm:-864
&gt; -    if (red &lt; ColorEpsilon &amp;&amp; green &lt; ColorEpsilon &amp;&amp; blue &lt; ColorEpsilon &amp;&amp; (ignoreBlack || alpha &lt; ColorEpsilon))

I&apos;m guessing this was basically looking for &apos;black&apos;. I don&apos;t know what the trade off for looking for &apos;probably almost black&apos; and &apos;true black&apos; is, but I&apos;m trusting this is equal or better than Color::isBlackColor.

&gt; Source/WebCore/editing/cocoa/HTMLConverter.mm:882
&gt; +

nit whitespace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577942</commentid>
    <comment_count>6</comment_count>
      <attachid>380438</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-10-08 14:14:49 -0700</bug_when>
    <thetext>Comment on attachment 380438
Patch

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

&gt;&gt; Source/WebCore/editing/cocoa/HTMLConverter.mm:-864
&gt;&gt; -    if (red &lt; ColorEpsilon &amp;&amp; green &lt; ColorEpsilon &amp;&amp; blue &lt; ColorEpsilon &amp;&amp; (ignoreBlack || alpha &lt; ColorEpsilon))
&gt; 
&gt; I&apos;m guessing this was basically looking for &apos;black&apos;. I don&apos;t know what the trade off for looking for &apos;probably almost black&apos; and &apos;true black&apos; is, but I&apos;m trusting this is equal or better than Color::isBlackColor.

Yes, this was looking for black. However, since getRGBA does a division by 255 to convert the hex to a float, so there was this logic to avoid floating point issues. Using Color::isBlackColor is better because it looks at the internal hex, and supports extended color too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577965</commentid>
    <comment_count>7</comment_count>
      <attachid>380438</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 14:56:36 -0700</bug_when>
    <thetext>Comment on attachment 380438
Patch

Clearing flags on attachment: 380438

Committed r250863: &lt;https://trac.webkit.org/changeset/250863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577966</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 14:56:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380377</attachid>
            <date>2019-10-07 17:36:33 -0700</date>
            <delta_ts>2019-10-07 18:33:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202662-20191007173632.patch</filename>
            <type>text/plain</type>
            <size>13077</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFlZjcwNWFkYjZiNmE3
Y2U3NTc0MDY5OGMyNDk5Zjc0ZGFjMjJlMi4uMTQ0ODdjOWMwZGFlYmUwMjRjNGI3ZDUyMGFmZjE3
MzI5ZDM4N2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTA3ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRl
IHRleHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBt
b2RlIGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgSFRNTENvbnZl
cnRlciBuZWVkcyB0byBzdHJpcCB3aGl0ZSB0ZXh0IGNvbG9ycyB3aGVuIHRoZSBkb2N1bWVudCBp
cyBpbiBkYXJrIG1vZGUsIGxpa2UgaXQgZG9lcyBmb3IgYmxhY2sgaW4gbGlnaHQgbW9kZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKG5vcm1h
bGl6ZWRDb2xvcik6IEhhbmRsZSBkYXJrIG1vZGUgYW5kIGlnbm9yZSB3aGl0ZS4KKyAgICAgICAg
KEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUpOiBQYXNzIGVs
ZW1lbnQgdG8gbm9ybWFsaXplZENvbG9yLgorCiAyMDE5LTEwLTA3ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gQWRkIGNvbnN0IHZlcnNpb24gb2YgTGF5
b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA5Y2Y4NmE0YTE1ZjFjN2M2ZjAyODE1NTY0
N2FmYTAwNTlhZTNiNmZmLi5jYmFmNGI0ZWUzYmEyMmM1ZjIwNDAzYmI5ZDdkZjFlZGQ1MTUwZGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBA
IC04NTUsMTUgKzg1NSwxOCBAQCBFbGVtZW50KiBIVE1MQ29udmVydGVyOjpfYmxvY2tMZXZlbEVs
ZW1lbnRGb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKLXN0YXRp
YyBDb2xvciBub3JtYWxpemVkQ29sb3IoQ29sb3IgY29sb3IsIGJvb2wgaWdub3JlQmxhY2spCitz
dGF0aWMgQ29sb3Igbm9ybWFsaXplZENvbG9yKENvbG9yIGNvbG9yLCBib29sIGlnbm9yZURlZmF1
bHRDb2xvciwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBjb25zdCBkb3VibGUgQ29sb3JFcHNp
bG9uID0gMSAvICgyICogKGRvdWJsZSkyNTUuMCk7Ci0gICAgCi0gICAgZG91YmxlIHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhOwotICAgIGNvbG9yLmdldFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxw
aGEpOwotICAgIGlmIChyZWQgPCBDb2xvckVwc2lsb24gJiYgZ3JlZW4gPCBDb2xvckVwc2lsb24g
JiYgYmx1ZSA8IENvbG9yRXBzaWxvbiAmJiAoaWdub3JlQmxhY2sgfHwgYWxwaGEgPCBDb2xvckVw
c2lsb24pKQorICAgIGlmICghaWdub3JlRGVmYXVsdENvbG9yKQorICAgICAgICByZXR1cm4gY29s
b3I7CisKKyAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gZWxlbWVudC5kb2N1bWVudCgpLnVz
ZURhcmtBcHBlYXJhbmNlKGVsZW1lbnQuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCkpOworICAgIGlm
ICh1c2VEYXJrQXBwZWFyYW5jZSAmJiBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbG9yKSkKICAgICAg
ICAgcmV0dXJuIENvbG9yKCk7Ci0gICAgCisKKyAgICBpZiAoIXVzZURhcmtBcHBlYXJhbmNlICYm
IENvbG9yOjppc0JsYWNrQ29sb3IoY29sb3IpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKwog
ICAgIHJldHVybiBjb2xvcjsKIH0KIApAQCAtODc1LDE2ICs4NzgsMTggQEAgQ29sb3IgSFRNTENv
bnZlcnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQ
cm9wZXJ0eUlEIHAKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAgICAgfQogCisgICAgYm9vbCBp
Z25vcmVEZWZhdWx0Q29sb3IgPSBwcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3I7CisKICAg
ICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4obm9kZSk7CiAgICAgaWYgKFJl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBjb21wdXRlZFN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVs
ZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5pc1JHQkNvbG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENvbG9yKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBwcm9wZXJ0eUlkID09IENT
U1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRDb2xvcihDb2xv
cihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigpLnJnYigpKSwgaWdu
b3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICB9CiAKICAgICBib29sIGluaGVyaXQgPSBm
YWxzZTsKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVy
dHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZh
bHVlKS5pc1JHQkNvbG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENv
bG9yKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBw
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1h
bGl6ZWRDb2xvcihDb2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xv
cigpLnJnYigpKSwgaWdub3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICAgICAgaWYgKHZh
bHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MWRiYjM4OGM1MjliY2FjN2VlMzc4ZGM0MjRlNGNjMzQ5MDBkYjVjYS4uNzZkYTcyMWZiZDc1ZGU5
ZWU3ZWUwMGEyMjM2OTg1OTdjNDcxNDMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA3ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRlIHRl
eHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBtb2Rl
IGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJU
Ri5tbTogQWRkZWQuCisgICAgICAgIChyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKToKKyAgICAg
ICAgKGNvcHlBdHRyaWJ1dGVkU3RyaW5nRnJvbUhUTUwpOgorICAgICAgICAoY2hlY2tDb2xvcik6
CisgICAgICAgIChURVNUKToKKwogMjAxOS0xMC0wNyAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTA3NTAuCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDhmMGNiNDg0MjA2ODVkN2FiMTVlZTA2OTFhYjM5ZDQzZGZl
ZGNmNzkuLjNhNjY3NWM1MGJiNTBiN2NmNzdjNTRlYTNkZGU2NWJjODAzZGRjM2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMDMsNiArMTAzLDcgQEAKIAkJMUMyQjgxODYxQzg5MjU5RDAw
QTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzJCODE4NDFDODkyNEEyMDBBNTUyOUYgLyogd2ViZm9udC5o
dG1sICovOyB9OwogCQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50dGYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyQjgxODUx
Qzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovOyB9OwogCQkxQzczNEI1MzIwNzg4QzQ4MDBG
NDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM3MzRCNTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5c3RlbUNvbG9ycy5t
bSAqLzsgfTsKKwkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzc5MjAxQjIzNEJERDlC
MDAxRUFGMjMgLyogQ29weVJURi5tbSAqLzsgfTsKIAkJMUM3RkVCMjAyMDdDMEYyRTAwRDIzMjc4
IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3Iu
bW0gKi87IH07CiAJCTFDOTA0MjBDMjMyNkUwM0MwMEJFRjkxRSAvKiBTZWxlY3Rpb25CeVdvcmQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzkwNDIw
QjIzMjZFMDNDMDBCRUY5MUUgLyogU2VsZWN0aW9uQnlXb3JkLm1tICovOyB9OwogCQkxQzlFQjg0
MTFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOUVCODQwMUUzODBEQTEwMDVD
NjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTUzNSw2ICsxNTM2
LDcgQEAKIAkJMUMyQjgxODQxQzg5MjRBMjAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IHdlYmZvbnQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUMyQjgxODUxQzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFoZW0u
dHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzczNEI1MjIwNzg4QzQ4MDBGNDMw
RUEgLyogU3lzdGVtQ29sb3JzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU3lzdGVtQ29sb3JzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzc5
MjAxQjIzNEJERDlCMDAxRUFGMjMgLyogQ29weVJURi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IENvcHlSVEYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYWNrZ3JvdW5kQ29sb3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0MjBCMjMyNkUwM0MwMEJFRjkxRSAvKiBT
ZWxlY3Rpb25CeVdvcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBTZWxlY3Rpb25CeVdvcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUVC
ODQwMUUzODBEQTEwMDVDNjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzksNiArMjc4MSw3IEBACiAJCQkJNUMx
OUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSAqLywKIAkJ
CQk5QjEwNTY0MTFGOTA0NUM3MDBENTU4M0YgLyogQ29weUhUTUwubW0gKi8sCiAJCQkJOTk5OTEw
OEExRjM5M0M4QjAwOEFENDU1IC8qIENvcHlpbmcubW0gKi8sCisJCQkJMUM3OTIwMUIyMzRCREQ5
QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhBRUJBNTAwNEFBMjI4
IC8qIENvcHlVUkwubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhENDBEIC8qIEN1c3Rv
bVVzZXJBZ2VudC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURl
dGVjdGlvbi5tbSAqLywKQEAgLTQ0NjMsNiArNDQ2Niw3IEBACiAJCQkJNUMxOUE1MjQxRkQwRjYw
MTAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTlCMUY2Rjc4MUY5MDU1ODQwMEI1NTc0NCAvKiBDb3B5SFRNTC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTk5OTkxMDhCMUYzOTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5QjdBMzdDNDFGOEFFQkE1MDA0QUEyMjggLyogQ29weVVSTC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25G
aWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZjNzFkNzYwNGY1
NzFhMTRiZDQ4YWNkNWZjNjhjZTkxYTBjM2YzOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJURi5tbQpAQCAtMCwwICsxLDEzNyBA
QAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNp
ZiBVU0UoQVBQS0lUKQordXNpbmcgUGxhdGZvcm1Db2xvciA9IE5TQ29sb3I7CisjZWxzZQordXNp
bmcgUGxhdGZvcm1Db2xvciA9IFVJQ29sb3I7CisjZW5kaWYKKworI2lmIFVTRShBUFBLSVQpCitz
dGF0aWMgTlNEYXRhICpyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKCkKK3sKKyAgICByZXR1cm4g
W1tOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdIGRhdGFGb3JUeXBlOk5TUGFzdGVib2Fy
ZFR5cGVSVEZdOworfQorI2Vsc2UKK3N0YXRpYyBOU0RhdGEgKnJlYWRSVEZEYXRhRnJvbVBhc3Rl
Ym9hcmQoKQoreworICAgIGlkIHZhbHVlID0gW1tVSVBhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9h
cmRdIHZhbHVlRm9yUGFzdGVib2FyZFR5cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVJU
Rl07CisgICAgQVNTRVJUKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RhdGEgY2xhc3NdXSk7Cisg
ICAgcmV0dXJuIHZhbHVlOworfQorI2VuZGlmCisKK3N0YXRpYyBSZXRhaW5QdHI8TlNBdHRyaWJ1
dGVkU3RyaW5nPiBjb3B5QXR0cmlidXRlZFN0cmluZ0Zyb21IVE1MKE5TU3RyaW5nICpodG1sU3Ry
aW5nLCBib29sIGZvcmNlRGFya01vZGUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAs
IDQwMCldKTsKKworICAgIGlmIChmb3JjZURhcmtNb2RlKQorICAgICAgICBbd2ViVmlldyBmb3Jj
ZURhcmtNb2RlXTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpo
dG1sU3RyaW5nXTsKKworICAgIFt3ZWJWaWV3IHNlbGVjdEFsbDpuaWxdOworICAgIFt3ZWJWaWV3
IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiQ29weSIgYXJndW1lbnQ6bmlsXTsK
KworICAgIE5TRGF0YSAqcnRmRGF0YSA9IHJlYWRSVEZEYXRhRnJvbVBhc3RlYm9hcmQoKTsKKyAg
ICBFWFBFQ1RfTk9UX05VTEwocnRmRGF0YSk7CisKKyAgICBhdXRvIGF0dHJpYnV0ZWRTdHJpbmcg
PSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6cnRmRGF0
YSBvcHRpb25zOkB7IH0gZG9jdW1lbnRBdHRyaWJ1dGVzOm5pbCBlcnJvcjpudWxscHRyXSk7Cisg
ICAgRVhQRUNUX05PVF9OVUxMKGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkpOworCisgICAgcmV0dXJu
IGF0dHJpYnV0ZWRTdHJpbmc7Cit9CisKK3N0YXRpYyB2b2lkIGNoZWNrQ29sb3IoUGxhdGZvcm1D
b2xvciAqY29sb3IsIENHRmxvYXQgcmVkLCBDR0Zsb2F0IGdyZWVuLCBDR0Zsb2F0IGJsdWUsIENH
RmxvYXQgYWxwaGEpCit7CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbG9yKTsKKworICAgIENHRmxv
YXQgb2JzZXJ2ZWRSZWQgPSAwOworICAgIENHRmxvYXQgb2JzZXJ2ZWRHcmVlbiA9IDA7CisgICAg
Q0dGbG9hdCBvYnNlcnZlZEJsdWUgPSAwOworICAgIENHRmxvYXQgb2JzZXJ2ZWRBbHBoYSA9IDA7
CisgICAgW2NvbG9yIGdldFJlZDomb2JzZXJ2ZWRSZWQgZ3JlZW46Jm9ic2VydmVkR3JlZW4gYmx1
ZTomb2JzZXJ2ZWRCbHVlIGFscGhhOiZvYnNlcnZlZEFscGhhXTsKKworICAgIEVYUEVDVF9FUShy
ZWQsIG9ic2VydmVkUmVkKTsKKyAgICBFWFBFQ1RfRVEoZ3JlZW4sIG9ic2VydmVkUmVkKTsKKyAg
ICBFWFBFQ1RfRVEoYmx1ZSwgb2JzZXJ2ZWRCbHVlKTsKKyAgICBFWFBFQ1RfRVEoYWxwaGEsIG9i
c2VydmVkQWxwaGEpOworfQorCitURVNUKENvcHlSVEYsIFN0cmlwc0RlZmF1bHRUZXh0Q29sb3JP
ZkRhcmtDb250ZW50KQoreworICAgIGF1dG8gYXR0cmlidXRlZFN0cmluZyA9IGNvcHlBdHRyaWJ1
dGVkU3RyaW5nRnJvbUhUTUwoQCI8c3R5bGU+OnJvb3QgeyBjb2xvci1zY2hlbWU6IGRhcmsgfTwv
c3R5bGU+IERlZmF1bHQgPHNwYW4gc3R5bGU9XCJjb2xvcjogYmxhY2tcIj5CbGFjazwvc3Bhbj4g
PHNwYW4gc3R5bGU9XCJjb2xvcjogd2hpdGVcIj5XaGl0ZTwvc3Bhbj4iLCB0cnVlKTsKKworICAg
IF9fYmxvY2sgc2l6ZV90IGkgPSAwOworICAgIFthdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0
dHJpYnV0ZTpOU0ZvcmVncm91bmRDb2xvckF0dHJpYnV0ZU5hbWUgaW5SYW5nZTpOU01ha2VSYW5n
ZSgwLCBbYXR0cmlidXRlZFN0cmluZyBsZW5ndGhdKSBvcHRpb25zOjAgdXNpbmdCbG9jazpeKGlk
IHZhbHVlLCBOU1JhbmdlIGF0dHJpYnV0ZVJhbmdlLCBCT09MICpzdG9wKSB7CisgICAgICAgIGlm
ICghaSkKKyAgICAgICAgICAgIEVYUEVDVF9OVUxMKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAo
aSA9PSAxKSB7CisgICAgICAgICAgICBFWFBFQ1RfTk9UX05VTEwodmFsdWUpOworICAgICAgICAg
ICAgY2hlY2tDb2xvcih2YWx1ZSwgMCwgMCwgMCwgMSk7CisgICAgICAgIH0gZWxzZSBpZiAoaSA9
PSAyKQorICAgICAgICAgICAgRVhQRUNUX05VTEwodmFsdWUpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgICAgICArK2k7CisgICAgfV07CisK
KyAgICBFWFBFQ1RfRVEoaSwgM1VMKTsKK30KKworVEVTVChDb3B5UlRGLCBTdHJpcHNEZWZhdWx0
VGV4dENvbG9yT2ZMaWdodENvbnRlbnQpCit7CisgICAgYXV0byBhdHRyaWJ1dGVkU3RyaW5nID0g
Y29weUF0dHJpYnV0ZWRTdHJpbmdGcm9tSFRNTChAIkRlZmF1bHQgPHNwYW4gc3R5bGU9XCJjb2xv
cjogd2hpdGVcIj5XaGl0ZTwvc3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjogYmxhY2tcIj5CbGFj
azwvc3Bhbj4iLCBmYWxzZSk7CisKKyAgICBfX2Jsb2NrIHNpemVfdCBpID0gMDsKKyAgICBbYXR0
cmlidXRlZFN0cmluZyBlbnVtZXJhdGVBdHRyaWJ1dGU6TlNGb3JlZ3JvdW5kQ29sb3JBdHRyaWJ1
dGVOYW1lIGluUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW2F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkg
b3B0aW9uczowIHVzaW5nQmxvY2s6XihpZCB2YWx1ZSwgTlNSYW5nZSBhdHRyaWJ1dGVSYW5nZSwg
Qk9PTCAqc3RvcCkgeworICAgICAgICBpZiAoIWkpCisgICAgICAgICAgICBFWFBFQ1RfTlVMTCh2
YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgRVhQRUNUX05P
VF9OVUxMKHZhbHVlKTsKKyAgICAgICAgICAgIGNoZWNrQ29sb3IodmFsdWUsIDEsIDEsIDEsIDEp
OworICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMikKKyAgICAgICAgICAgIEVYUEVDVF9OVUxMKHZh
bHVlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisK
KyAgICAgICAgKytpOworICAgIH1dOworCisgICAgRVhQRUNUX0VRKGksIDNVTCk7Cit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380381</attachid>
            <date>2019-10-07 18:34:00 -0700</date>
            <delta_ts>2019-10-08 09:49:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202662-20191007183359.patch</filename>
            <type>text/plain</type>
            <size>13165</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFlZjcwNWFkYjZiNmE3
Y2U3NTc0MDY5OGMyNDk5Zjc0ZGFjMjJlMi4uMTQ0ODdjOWMwZGFlYmUwMjRjNGI3ZDUyMGFmZjE3
MzI5ZDM4N2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTA3ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRl
IHRleHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBt
b2RlIGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgSFRNTENvbnZl
cnRlciBuZWVkcyB0byBzdHJpcCB3aGl0ZSB0ZXh0IGNvbG9ycyB3aGVuIHRoZSBkb2N1bWVudCBp
cyBpbiBkYXJrIG1vZGUsIGxpa2UgaXQgZG9lcyBmb3IgYmxhY2sgaW4gbGlnaHQgbW9kZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKG5vcm1h
bGl6ZWRDb2xvcik6IEhhbmRsZSBkYXJrIG1vZGUgYW5kIGlnbm9yZSB3aGl0ZS4KKyAgICAgICAg
KEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUpOiBQYXNzIGVs
ZW1lbnQgdG8gbm9ybWFsaXplZENvbG9yLgorCiAyMDE5LTEwLTA3ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gQWRkIGNvbnN0IHZlcnNpb24gb2YgTGF5
b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA5Y2Y4NmE0YTE1ZjFjN2M2ZjAyODE1NTY0
N2FmYTAwNTlhZTNiNmZmLi5jYmFmNGI0ZWUzYmEyMmM1ZjIwNDAzYmI5ZDdkZjFlZGQ1MTUwZGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBA
IC04NTUsMTUgKzg1NSwxOCBAQCBFbGVtZW50KiBIVE1MQ29udmVydGVyOjpfYmxvY2tMZXZlbEVs
ZW1lbnRGb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKLXN0YXRp
YyBDb2xvciBub3JtYWxpemVkQ29sb3IoQ29sb3IgY29sb3IsIGJvb2wgaWdub3JlQmxhY2spCitz
dGF0aWMgQ29sb3Igbm9ybWFsaXplZENvbG9yKENvbG9yIGNvbG9yLCBib29sIGlnbm9yZURlZmF1
bHRDb2xvciwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBjb25zdCBkb3VibGUgQ29sb3JFcHNp
bG9uID0gMSAvICgyICogKGRvdWJsZSkyNTUuMCk7Ci0gICAgCi0gICAgZG91YmxlIHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhOwotICAgIGNvbG9yLmdldFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxw
aGEpOwotICAgIGlmIChyZWQgPCBDb2xvckVwc2lsb24gJiYgZ3JlZW4gPCBDb2xvckVwc2lsb24g
JiYgYmx1ZSA8IENvbG9yRXBzaWxvbiAmJiAoaWdub3JlQmxhY2sgfHwgYWxwaGEgPCBDb2xvckVw
c2lsb24pKQorICAgIGlmICghaWdub3JlRGVmYXVsdENvbG9yKQorICAgICAgICByZXR1cm4gY29s
b3I7CisKKyAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gZWxlbWVudC5kb2N1bWVudCgpLnVz
ZURhcmtBcHBlYXJhbmNlKGVsZW1lbnQuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCkpOworICAgIGlm
ICh1c2VEYXJrQXBwZWFyYW5jZSAmJiBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbG9yKSkKICAgICAg
ICAgcmV0dXJuIENvbG9yKCk7Ci0gICAgCisKKyAgICBpZiAoIXVzZURhcmtBcHBlYXJhbmNlICYm
IENvbG9yOjppc0JsYWNrQ29sb3IoY29sb3IpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKwog
ICAgIHJldHVybiBjb2xvcjsKIH0KIApAQCAtODc1LDE2ICs4NzgsMTggQEAgQ29sb3IgSFRNTENv
bnZlcnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQ
cm9wZXJ0eUlEIHAKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAgICAgfQogCisgICAgYm9vbCBp
Z25vcmVEZWZhdWx0Q29sb3IgPSBwcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3I7CisKICAg
ICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4obm9kZSk7CiAgICAgaWYgKFJl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBjb21wdXRlZFN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVs
ZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5pc1JHQkNvbG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENvbG9yKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBwcm9wZXJ0eUlkID09IENT
U1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRDb2xvcihDb2xv
cihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigpLnJnYigpKSwgaWdu
b3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICB9CiAKICAgICBib29sIGluaGVyaXQgPSBm
YWxzZTsKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVy
dHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZh
bHVlKS5pc1JHQkNvbG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENv
bG9yKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBw
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1h
bGl6ZWRDb2xvcihDb2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xv
cigpLnJnYigpKSwgaWdub3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICAgICAgaWYgKHZh
bHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MWRiYjM4OGM1MjliY2FjN2VlMzc4ZGM0MjRlNGNjMzQ5MDBkYjVjYS4uNzZkYTcyMWZiZDc1ZGU5
ZWU3ZWUwMGEyMjM2OTg1OTdjNDcxNDMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA3ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRlIHRl
eHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBtb2Rl
IGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJU
Ri5tbTogQWRkZWQuCisgICAgICAgIChyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKToKKyAgICAg
ICAgKGNvcHlBdHRyaWJ1dGVkU3RyaW5nRnJvbUhUTUwpOgorICAgICAgICAoY2hlY2tDb2xvcik6
CisgICAgICAgIChURVNUKToKKwogMjAxOS0xMC0wNyAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTA3NTAuCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDhmMGNiNDg0MjA2ODVkN2FiMTVlZTA2OTFhYjM5ZDQzZGZl
ZGNmNzkuLjNhNjY3NWM1MGJiNTBiN2NmNzdjNTRlYTNkZGU2NWJjODAzZGRjM2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMDMsNiArMTAzLDcgQEAKIAkJMUMyQjgxODYxQzg5MjU5RDAw
QTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzJCODE4NDFDODkyNEEyMDBBNTUyOUYgLyogd2ViZm9udC5o
dG1sICovOyB9OwogCQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50dGYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyQjgxODUx
Qzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovOyB9OwogCQkxQzczNEI1MzIwNzg4QzQ4MDBG
NDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM3MzRCNTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5c3RlbUNvbG9ycy5t
bSAqLzsgfTsKKwkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzc5MjAxQjIzNEJERDlC
MDAxRUFGMjMgLyogQ29weVJURi5tbSAqLzsgfTsKIAkJMUM3RkVCMjAyMDdDMEYyRTAwRDIzMjc4
IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3Iu
bW0gKi87IH07CiAJCTFDOTA0MjBDMjMyNkUwM0MwMEJFRjkxRSAvKiBTZWxlY3Rpb25CeVdvcmQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzkwNDIw
QjIzMjZFMDNDMDBCRUY5MUUgLyogU2VsZWN0aW9uQnlXb3JkLm1tICovOyB9OwogCQkxQzlFQjg0
MTFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOUVCODQwMUUzODBEQTEwMDVD
NjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTUzNSw2ICsxNTM2
LDcgQEAKIAkJMUMyQjgxODQxQzg5MjRBMjAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IHdlYmZvbnQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUMyQjgxODUxQzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFoZW0u
dHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzczNEI1MjIwNzg4QzQ4MDBGNDMw
RUEgLyogU3lzdGVtQ29sb3JzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU3lzdGVtQ29sb3JzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzc5
MjAxQjIzNEJERDlCMDAxRUFGMjMgLyogQ29weVJURi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IENvcHlSVEYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYWNrZ3JvdW5kQ29sb3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0MjBCMjMyNkUwM0MwMEJFRjkxRSAvKiBT
ZWxlY3Rpb25CeVdvcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBTZWxlY3Rpb25CeVdvcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUVC
ODQwMUUzODBEQTEwMDVDNjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzksNiArMjc4MSw3IEBACiAJCQkJNUMx
OUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSAqLywKIAkJ
CQk5QjEwNTY0MTFGOTA0NUM3MDBENTU4M0YgLyogQ29weUhUTUwubW0gKi8sCiAJCQkJOTk5OTEw
OEExRjM5M0M4QjAwOEFENDU1IC8qIENvcHlpbmcubW0gKi8sCisJCQkJMUM3OTIwMUIyMzRCREQ5
QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhBRUJBNTAwNEFBMjI4
IC8qIENvcHlVUkwubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhENDBEIC8qIEN1c3Rv
bVVzZXJBZ2VudC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURl
dGVjdGlvbi5tbSAqLywKQEAgLTQ0NjMsNiArNDQ2Niw3IEBACiAJCQkJNUMxOUE1MjQxRkQwRjYw
MTAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTlCMUY2Rjc4MUY5MDU1ODQwMEI1NTc0NCAvKiBDb3B5SFRNTC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTk5OTkxMDhCMUYzOTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5QjdBMzdDNDFGOEFFQkE1MDA0QUEyMjggLyogQ29weVVSTC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25G
aWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDhjMWI0OTUxMzYx
YmM3ZTEyOTE2NjY1YTg2YjUzYTdiMDZhODUwZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJURi5tbQpAQCAtMCwwICsxLDE0MSBA
QAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2Jp
bGVDb3JlU2VydmljZXMuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFQUEtJVCkKK3VzaW5nIFBsYXRm
b3JtQ29sb3IgPSBOU0NvbG9yOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtQ29sb3IgPSBVSUNvbG9y
OworI2VuZGlmCisKKyNpZiBVU0UoQVBQS0lUKQorc3RhdGljIE5TRGF0YSAqcmVhZFJURkRhdGFG
cm9tUGFzdGVib2FyZCgpCit7CisgICAgcmV0dXJuIFtbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0
ZWJvYXJkXSBkYXRhRm9yVHlwZTpOU1Bhc3RlYm9hcmRUeXBlUlRGXTsKK30KKyNlbHNlCitzdGF0
aWMgTlNEYXRhICpyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKCkKK3sKKyAgICBpZCB2YWx1ZSA9
IFtbVUlQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSB2YWx1ZUZvclBhc3RlYm9hcmRUeXBl
OihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVSVEZdOworICAgIEFTU0VSVChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pOworICAgIHJldHVybiB2YWx1ZTsKK30KKyNlbmRp
ZgorCitzdGF0aWMgUmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4gY29weUF0dHJpYnV0ZWRT
dHJpbmdGcm9tSFRNTChOU1N0cmluZyAqaHRtbFN0cmluZywgYm9vbCBmb3JjZURhcmtNb2RlKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisKKyAgICBpZiAoZm9yY2VE
YXJrTW9kZSkKKyAgICAgICAgW3dlYlZpZXcgZm9yY2VEYXJrTW9kZV07CisKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZ107CisKKyAgICBbd2ViVmll
dyBzZWxlY3RBbGw6bmlsXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0
Q29tbWFuZDpAIkNvcHkiIGFyZ3VtZW50Om5pbF07CisKKyAgICBOU0RhdGEgKnJ0ZkRhdGEgPSBy
ZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKCk7CisgICAgRVhQRUNUX05PVF9OVUxMKHJ0ZkRhdGEp
OworCisgICAgYXV0byBhdHRyaWJ1dGVkU3RyaW5nID0gYWRvcHROUyhbW05TQXR0cmlidXRlZFN0
cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJ0ZkRhdGEgb3B0aW9uczpAeyB9IGRvY3VtZW50QXR0
cmlidXRlczpuaWwgZXJyb3I6bnVsbHB0cl0pOworICAgIEVYUEVDVF9OT1RfTlVMTChhdHRyaWJ1
dGVkU3RyaW5nLmdldCgpKTsKKworICAgIHJldHVybiBhdHRyaWJ1dGVkU3RyaW5nOworfQorCitz
dGF0aWMgdm9pZCBjaGVja0NvbG9yKFBsYXRmb3JtQ29sb3IgKmNvbG9yLCBDR0Zsb2F0IHJlZCwg
Q0dGbG9hdCBncmVlbiwgQ0dGbG9hdCBibHVlLCBDR0Zsb2F0IGFscGhhKQoreworICAgIEVYUEVD
VF9OT1RfTlVMTChjb2xvcik7CisKKyAgICBDR0Zsb2F0IG9ic2VydmVkUmVkID0gMDsKKyAgICBD
R0Zsb2F0IG9ic2VydmVkR3JlZW4gPSAwOworICAgIENHRmxvYXQgb2JzZXJ2ZWRCbHVlID0gMDsK
KyAgICBDR0Zsb2F0IG9ic2VydmVkQWxwaGEgPSAwOworICAgIFtjb2xvciBnZXRSZWQ6Jm9ic2Vy
dmVkUmVkIGdyZWVuOiZvYnNlcnZlZEdyZWVuIGJsdWU6Jm9ic2VydmVkQmx1ZSBhbHBoYTomb2Jz
ZXJ2ZWRBbHBoYV07CisKKyAgICBFWFBFQ1RfRVEocmVkLCBvYnNlcnZlZFJlZCk7CisgICAgRVhQ
RUNUX0VRKGdyZWVuLCBvYnNlcnZlZFJlZCk7CisgICAgRVhQRUNUX0VRKGJsdWUsIG9ic2VydmVk
Qmx1ZSk7CisgICAgRVhQRUNUX0VRKGFscGhhLCBvYnNlcnZlZEFscGhhKTsKK30KKworVEVTVChD
b3B5UlRGLCBTdHJpcHNEZWZhdWx0VGV4dENvbG9yT2ZEYXJrQ29udGVudCkKK3sKKyAgICBhdXRv
IGF0dHJpYnV0ZWRTdHJpbmcgPSBjb3B5QXR0cmlidXRlZFN0cmluZ0Zyb21IVE1MKEAiPHN0eWxl
Pjpyb290IHsgY29sb3Itc2NoZW1lOiBkYXJrIH08L3N0eWxlPiBEZWZhdWx0IDxzcGFuIHN0eWxl
PVwiY29sb3I6IGJsYWNrXCI+QmxhY2s8L3NwYW4+IDxzcGFuIHN0eWxlPVwiY29sb3I6IHdoaXRl
XCI+V2hpdGU8L3NwYW4+IiwgdHJ1ZSk7CisKKyAgICBfX2Jsb2NrIHNpemVfdCBpID0gMDsKKyAg
ICBbYXR0cmlidXRlZFN0cmluZyBlbnVtZXJhdGVBdHRyaWJ1dGU6TlNGb3JlZ3JvdW5kQ29sb3JB
dHRyaWJ1dGVOYW1lIGluUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW2F0dHJpYnV0ZWRTdHJpbmcgbGVu
Z3RoXSkgb3B0aW9uczowIHVzaW5nQmxvY2s6XihpZCB2YWx1ZSwgTlNSYW5nZSBhdHRyaWJ1dGVS
YW5nZSwgQk9PTCAqc3RvcCkgeworICAgICAgICBpZiAoIWkpCisgICAgICAgICAgICBFWFBFQ1Rf
TlVMTCh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgRVhQ
RUNUX05PVF9OVUxMKHZhbHVlKTsKKyAgICAgICAgICAgIGNoZWNrQ29sb3IodmFsdWUsIDAsIDAs
IDAsIDEpOworICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMikKKyAgICAgICAgICAgIEVYUEVDVF9O
VUxMKHZhbHVlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisKKyAgICAgICAgKytpOworICAgIH1dOworCisgICAgRVhQRUNUX0VRKGksIDNVTCk7Cit9
CisKK1RFU1QoQ29weVJURiwgU3RyaXBzRGVmYXVsdFRleHRDb2xvck9mTGlnaHRDb250ZW50KQor
eworICAgIGF1dG8gYXR0cmlidXRlZFN0cmluZyA9IGNvcHlBdHRyaWJ1dGVkU3RyaW5nRnJvbUhU
TUwoQCJEZWZhdWx0IDxzcGFuIHN0eWxlPVwiY29sb3I6IHdoaXRlXCI+V2hpdGU8L3NwYW4+IDxz
cGFuIHN0eWxlPVwiY29sb3I6IGJsYWNrXCI+QmxhY2s8L3NwYW4+IiwgZmFsc2UpOworCisgICAg
X19ibG9jayBzaXplX3QgaSA9IDA7CisgICAgW2F0dHJpYnV0ZWRTdHJpbmcgZW51bWVyYXRlQXR0
cmlidXRlOk5TRm9yZWdyb3VuZENvbG9yQXR0cmlidXRlTmFtZSBpblJhbmdlOk5TTWFrZVJhbmdl
KDAsIFthdHRyaWJ1dGVkU3RyaW5nIGxlbmd0aF0pIG9wdGlvbnM6MCB1c2luZ0Jsb2NrOl4oaWQg
dmFsdWUsIE5TUmFuZ2UgYXR0cmlidXRlUmFuZ2UsIEJPT0wgKnN0b3ApIHsKKyAgICAgICAgaWYg
KCFpKQorICAgICAgICAgICAgRVhQRUNUX05VTEwodmFsdWUpOworICAgICAgICBlbHNlIGlmIChp
ID09IDEpIHsKKyAgICAgICAgICAgIEVYUEVDVF9OT1RfTlVMTCh2YWx1ZSk7CisgICAgICAgICAg
ICBjaGVja0NvbG9yKHZhbHVlLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgfSBlbHNlIGlmIChpID09
IDIpCisgICAgICAgICAgICBFWFBFQ1RfTlVMTCh2YWx1ZSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgICAgICsraTsKKyAgICB9XTsKKwor
ICAgIEVYUEVDVF9FUShpLCAzVUwpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380438</attachid>
            <date>2019-10-08 09:49:58 -0700</date>
            <delta_ts>2019-10-08 14:56:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202662-20191008094957.patch</filename>
            <type>text/plain</type>
            <size>13205</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFlZjcwNWFkYjZiNmE3
Y2U3NTc0MDY5OGMyNDk5Zjc0ZGFjMjJlMi4uMTQ0ODdjOWMwZGFlYmUwMjRjNGI3ZDUyMGFmZjE3
MzI5ZDM4N2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTA3ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRl
IHRleHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBt
b2RlIGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgSFRNTENvbnZl
cnRlciBuZWVkcyB0byBzdHJpcCB3aGl0ZSB0ZXh0IGNvbG9ycyB3aGVuIHRoZSBkb2N1bWVudCBp
cyBpbiBkYXJrIG1vZGUsIGxpa2UgaXQgZG9lcyBmb3IgYmxhY2sgaW4gbGlnaHQgbW9kZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKG5vcm1h
bGl6ZWRDb2xvcik6IEhhbmRsZSBkYXJrIG1vZGUgYW5kIGlnbm9yZSB3aGl0ZS4KKyAgICAgICAg
KEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUpOiBQYXNzIGVs
ZW1lbnQgdG8gbm9ybWFsaXplZENvbG9yLgorCiAyMDE5LTEwLTA3ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gQWRkIGNvbnN0IHZlcnNpb24gb2YgTGF5
b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA5Y2Y4NmE0YTE1ZjFjN2M2ZjAyODE1NTY0
N2FmYTAwNTlhZTNiNmZmLi5jYmFmNGI0ZWUzYmEyMmM1ZjIwNDAzYmI5ZDdkZjFlZGQ1MTUwZGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBA
IC04NTUsMTUgKzg1NSwxOCBAQCBFbGVtZW50KiBIVE1MQ29udmVydGVyOjpfYmxvY2tMZXZlbEVs
ZW1lbnRGb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKLXN0YXRp
YyBDb2xvciBub3JtYWxpemVkQ29sb3IoQ29sb3IgY29sb3IsIGJvb2wgaWdub3JlQmxhY2spCitz
dGF0aWMgQ29sb3Igbm9ybWFsaXplZENvbG9yKENvbG9yIGNvbG9yLCBib29sIGlnbm9yZURlZmF1
bHRDb2xvciwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBjb25zdCBkb3VibGUgQ29sb3JFcHNp
bG9uID0gMSAvICgyICogKGRvdWJsZSkyNTUuMCk7Ci0gICAgCi0gICAgZG91YmxlIHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhOwotICAgIGNvbG9yLmdldFJHQkEocmVkLCBncmVlbiwgYmx1ZSwgYWxw
aGEpOwotICAgIGlmIChyZWQgPCBDb2xvckVwc2lsb24gJiYgZ3JlZW4gPCBDb2xvckVwc2lsb24g
JiYgYmx1ZSA8IENvbG9yRXBzaWxvbiAmJiAoaWdub3JlQmxhY2sgfHwgYWxwaGEgPCBDb2xvckVw
c2lsb24pKQorICAgIGlmICghaWdub3JlRGVmYXVsdENvbG9yKQorICAgICAgICByZXR1cm4gY29s
b3I7CisKKyAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gZWxlbWVudC5kb2N1bWVudCgpLnVz
ZURhcmtBcHBlYXJhbmNlKGVsZW1lbnQuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCkpOworICAgIGlm
ICh1c2VEYXJrQXBwZWFyYW5jZSAmJiBDb2xvcjo6aXNXaGl0ZUNvbG9yKGNvbG9yKSkKICAgICAg
ICAgcmV0dXJuIENvbG9yKCk7Ci0gICAgCisKKyAgICBpZiAoIXVzZURhcmtBcHBlYXJhbmNlICYm
IENvbG9yOjppc0JsYWNrQ29sb3IoY29sb3IpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKwog
ICAgIHJldHVybiBjb2xvcjsKIH0KIApAQCAtODc1LDE2ICs4NzgsMTggQEAgQ29sb3IgSFRNTENv
bnZlcnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQ
cm9wZXJ0eUlEIHAKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAgICAgfQogCisgICAgYm9vbCBp
Z25vcmVEZWZhdWx0Q29sb3IgPSBwcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3I7CisKICAg
ICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4obm9kZSk7CiAgICAgaWYgKFJl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBjb21wdXRlZFN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVs
ZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5pc1JHQkNvbG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENvbG9yKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBwcm9wZXJ0eUlkID09IENT
U1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRDb2xvcihDb2xv
cihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigpLnJnYigpKSwgaWdu
b3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICB9CiAKICAgICBib29sIGluaGVyaXQgPSBm
YWxzZTsKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVy
dHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZh
bHVlKS5pc1JHQkNvbG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKENv
bG9yKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCkucmdiKCkpLCBw
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q29sb3IpOworICAgICAgICAgICAgcmV0dXJuIG5vcm1h
bGl6ZWRDb2xvcihDb2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xv
cigpLnJnYigpKSwgaWdub3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKICAgICAgICAgaWYgKHZh
bHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MWRiYjM4OGM1MjliY2FjN2VlMzc4ZGM0MjRlNGNjMzQ5MDBkYjVjYS4uNzZkYTcyMWZiZDc1ZGU5
ZWU3ZWUwMGEyMjM2OTg1OTdjNDcxNDMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA3ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDb3B5aW5nIHdoaXRlIHRl
eHQgZnJvbSBkYXJrIG1vZGUgV2ViS2l0IGFwcHMgYW5kIHBhc3RpbmcgaW4gYSBsaWdodCBtb2Rl
IGFwcCByZXN1bHRzIGluIHdoaXRlIChpbnZpc2libGUpIHRleHQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI2NjIKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vNDg2NzczNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJU
Ri5tbTogQWRkZWQuCisgICAgICAgIChyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKToKKyAgICAg
ICAgKGNvcHlBdHRyaWJ1dGVkU3RyaW5nRnJvbUhUTUwpOgorICAgICAgICAoY2hlY2tDb2xvcik6
CisgICAgICAgIChURVNUKToKKwogMjAxOS0xMC0wNyAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTA3NTAuCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDhmMGNiNDg0MjA2ODVkN2FiMTVlZTA2OTFhYjM5ZDQzZGZl
ZGNmNzkuLjNhNjY3NWM1MGJiNTBiN2NmNzdjNTRlYTNkZGU2NWJjODAzZGRjM2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMDMsNiArMTAzLDcgQEAKIAkJMUMyQjgxODYxQzg5MjU5RDAw
QTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzJCODE4NDFDODkyNEEyMDBBNTUyOUYgLyogd2ViZm9udC5o
dG1sICovOyB9OwogCQkxQzJCODE4NzFDODkyNUEwMDBBNTUyOUYgLyogQWhlbS50dGYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyQjgxODUx
Qzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovOyB9OwogCQkxQzczNEI1MzIwNzg4QzQ4MDBG
NDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM3MzRCNTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5c3RlbUNvbG9ycy5t
bSAqLzsgfTsKKwkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzc5MjAxQjIzNEJERDlC
MDAxRUFGMjMgLyogQ29weVJURi5tbSAqLzsgfTsKIAkJMUM3RkVCMjAyMDdDMEYyRTAwRDIzMjc4
IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3Iu
bW0gKi87IH07CiAJCTFDOTA0MjBDMjMyNkUwM0MwMEJFRjkxRSAvKiBTZWxlY3Rpb25CeVdvcmQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzkwNDIw
QjIzMjZFMDNDMDBCRUY5MUUgLyogU2VsZWN0aW9uQnlXb3JkLm1tICovOyB9OwogCQkxQzlFQjg0
MTFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOUVCODQwMUUzODBEQTEwMDVD
NjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTUzNSw2ICsxNTM2
LDcgQEAKIAkJMUMyQjgxODQxQzg5MjRBMjAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IHdlYmZvbnQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUMyQjgxODUxQzg5MjUyMzAwQTU1MjlGIC8qIEFoZW0udHRmICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEFoZW0u
dHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzczNEI1MjIwNzg4QzQ4MDBGNDMw
RUEgLyogU3lzdGVtQ29sb3JzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU3lzdGVtQ29sb3JzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzc5
MjAxQjIzNEJERDlCMDAxRUFGMjMgLyogQ29weVJURi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IENvcHlSVEYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDN0ZFQjFGMjA3QzBGMkQwMEQyMzI3OCAvKiBCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYWNrZ3JvdW5kQ29sb3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA0MjBCMjMyNkUwM0MwMEJFRjkxRSAvKiBT
ZWxlY3Rpb25CeVdvcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBTZWxlY3Rpb25CeVdvcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUVC
ODQwMUUzODBEQTEwMDVDNjQ0MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzksNiArMjc4MSw3IEBACiAJCQkJNUMx
OUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSAqLywKIAkJ
CQk5QjEwNTY0MTFGOTA0NUM3MDBENTU4M0YgLyogQ29weUhUTUwubW0gKi8sCiAJCQkJOTk5OTEw
OEExRjM5M0M4QjAwOEFENDU1IC8qIENvcHlpbmcubW0gKi8sCisJCQkJMUM3OTIwMUIyMzRCREQ5
QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gKi8sCiAJCQkJOUI3QTM3QzIxRjhBRUJBNTAwNEFBMjI4
IC8qIENvcHlVUkwubW0gKi8sCiAJCQkJNDZBOTExNTgyMTA4RTY2QjAwNzhENDBEIC8qIEN1c3Rv
bVVzZXJBZ2VudC5tbSAqLywKIAkJCQkyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURl
dGVjdGlvbi5tbSAqLywKQEAgLTQ0NjMsNiArNDQ2Niw3IEBACiAJCQkJNUMxOUE1MjQxRkQwRjYw
MTAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTlCMUY2Rjc4MUY5MDU1ODQwMEI1NTc0NCAvKiBDb3B5SFRNTC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTk5OTkxMDhCMUYzOTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM3OTIwMUMyMzRCREQ5QjAwMUVBRjIzIC8qIENvcHlSVEYubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5QjdBMzdDNDFGOEFFQkE1MDA0QUEyMjggLyogQ29weVVSTC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25G
aWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlSVEYubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VhMzgwM2ZjNjUw
ZDRlODM2YjU3OWYzYjQ3MTJkZmUwNDlkYTI3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVJURi5tbQpAQCAtMCwwICsxLDE0MyBA
QAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2Jp
bGVDb3JlU2VydmljZXMuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFQUEtJVCkKK3VzaW5nIFBsYXRm
b3JtQ29sb3IgPSBOU0NvbG9yOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtQ29sb3IgPSBVSUNvbG9y
OworI2VuZGlmCisKKyNpZiBVU0UoQVBQS0lUKQorc3RhdGljIE5TRGF0YSAqcmVhZFJURkRhdGFG
cm9tUGFzdGVib2FyZCgpCit7CisgICAgcmV0dXJuIFtbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0
ZWJvYXJkXSBkYXRhRm9yVHlwZTpOU1Bhc3RlYm9hcmRUeXBlUlRGXTsKK30KKyNlbHNlCitzdGF0
aWMgTlNEYXRhICpyZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKCkKK3sKKyAgICBpZCB2YWx1ZSA9
IFtbVUlQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSB2YWx1ZUZvclBhc3RlYm9hcmRUeXBl
OihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVSVEZdOworICAgIEFTU0VSVChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pOworICAgIHJldHVybiB2YWx1ZTsKK30KKyNlbmRp
ZgorCitzdGF0aWMgUmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4gY29weUF0dHJpYnV0ZWRT
dHJpbmdGcm9tSFRNTChOU1N0cmluZyAqaHRtbFN0cmluZywgYm9vbCBmb3JjZURhcmtNb2RlKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisKKyAgICBpZiAoZm9yY2VE
YXJrTW9kZSkKKyAgICAgICAgW3dlYlZpZXcgZm9yY2VEYXJrTW9kZV07CisKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZ107CisKKyAgICBbd2ViVmll
dyBzZWxlY3RBbGw6bmlsXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0
Q29tbWFuZDpAIkNvcHkiIGFyZ3VtZW50Om5pbF07CisKKyAgICBOU0RhdGEgKnJ0ZkRhdGEgPSBy
ZWFkUlRGRGF0YUZyb21QYXN0ZWJvYXJkKCk7CisgICAgRVhQRUNUX05PVF9OVUxMKHJ0ZkRhdGEp
OworCisgICAgYXV0byBhdHRyaWJ1dGVkU3RyaW5nID0gYWRvcHROUyhbW05TQXR0cmlidXRlZFN0
cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJ0ZkRhdGEgb3B0aW9uczpAeyB9IGRvY3VtZW50QXR0
cmlidXRlczpuaWwgZXJyb3I6bnVsbHB0cl0pOworICAgIEVYUEVDVF9OT1RfTlVMTChhdHRyaWJ1
dGVkU3RyaW5nLmdldCgpKTsKKworICAgIHJldHVybiBhdHRyaWJ1dGVkU3RyaW5nOworfQorCitz
dGF0aWMgdm9pZCBjaGVja0NvbG9yKFBsYXRmb3JtQ29sb3IgKmNvbG9yLCBDR0Zsb2F0IHJlZCwg
Q0dGbG9hdCBncmVlbiwgQ0dGbG9hdCBibHVlLCBDR0Zsb2F0IGFscGhhKQoreworICAgIEVYUEVD
VF9OT1RfTlVMTChjb2xvcik7CisKKyAgICBDR0Zsb2F0IG9ic2VydmVkUmVkID0gMDsKKyAgICBD
R0Zsb2F0IG9ic2VydmVkR3JlZW4gPSAwOworICAgIENHRmxvYXQgb2JzZXJ2ZWRCbHVlID0gMDsK
KyAgICBDR0Zsb2F0IG9ic2VydmVkQWxwaGEgPSAwOworICAgIFtjb2xvciBnZXRSZWQ6Jm9ic2Vy
dmVkUmVkIGdyZWVuOiZvYnNlcnZlZEdyZWVuIGJsdWU6Jm9ic2VydmVkQmx1ZSBhbHBoYTomb2Jz
ZXJ2ZWRBbHBoYV07CisKKyAgICBFWFBFQ1RfRVEocmVkLCBvYnNlcnZlZFJlZCk7CisgICAgRVhQ
RUNUX0VRKGdyZWVuLCBvYnNlcnZlZFJlZCk7CisgICAgRVhQRUNUX0VRKGJsdWUsIG9ic2VydmVk
Qmx1ZSk7CisgICAgRVhQRUNUX0VRKGFscGhhLCBvYnNlcnZlZEFscGhhKTsKK30KKworI2lmIEhB
VkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCitURVNUKENvcHlSVEYsIFN0cmlwc0RlZmF1bHRUZXh0
Q29sb3JPZkRhcmtDb250ZW50KQoreworICAgIGF1dG8gYXR0cmlidXRlZFN0cmluZyA9IGNvcHlB
dHRyaWJ1dGVkU3RyaW5nRnJvbUhUTUwoQCI8c3R5bGU+OnJvb3QgeyBjb2xvci1zY2hlbWU6IGRh
cmsgfTwvc3R5bGU+IERlZmF1bHQgPHNwYW4gc3R5bGU9XCJjb2xvcjogYmxhY2tcIj5CbGFjazwv
c3Bhbj4gPHNwYW4gc3R5bGU9XCJjb2xvcjogd2hpdGVcIj5XaGl0ZTwvc3Bhbj4iLCB0cnVlKTsK
KworICAgIF9fYmxvY2sgc2l6ZV90IGkgPSAwOworICAgIFthdHRyaWJ1dGVkU3RyaW5nIGVudW1l
cmF0ZUF0dHJpYnV0ZTpOU0ZvcmVncm91bmRDb2xvckF0dHJpYnV0ZU5hbWUgaW5SYW5nZTpOU01h
a2VSYW5nZSgwLCBbYXR0cmlidXRlZFN0cmluZyBsZW5ndGhdKSBvcHRpb25zOjAgdXNpbmdCbG9j
azpeKGlkIHZhbHVlLCBOU1JhbmdlIGF0dHJpYnV0ZVJhbmdlLCBCT09MICpzdG9wKSB7CisgICAg
ICAgIGlmICghaSkKKyAgICAgICAgICAgIEVYUEVDVF9OVUxMKHZhbHVlKTsKKyAgICAgICAgZWxz
ZSBpZiAoaSA9PSAxKSB7CisgICAgICAgICAgICBFWFBFQ1RfTk9UX05VTEwodmFsdWUpOworICAg
ICAgICAgICAgY2hlY2tDb2xvcih2YWx1ZSwgMCwgMCwgMCwgMSk7CisgICAgICAgIH0gZWxzZSBp
ZiAoaSA9PSAyKQorICAgICAgICAgICAgRVhQRUNUX05VTEwodmFsdWUpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgICAgICArK2k7CisgICAg
fV07CisKKyAgICBFWFBFQ1RfRVEoaSwgM1VMKTsKK30KKyNlbmRpZgorCitURVNUKENvcHlSVEYs
IFN0cmlwc0RlZmF1bHRUZXh0Q29sb3JPZkxpZ2h0Q29udGVudCkKK3sKKyAgICBhdXRvIGF0dHJp
YnV0ZWRTdHJpbmcgPSBjb3B5QXR0cmlidXRlZFN0cmluZ0Zyb21IVE1MKEAiRGVmYXVsdCA8c3Bh
biBzdHlsZT1cImNvbG9yOiB3aGl0ZVwiPldoaXRlPC9zcGFuPiA8c3BhbiBzdHlsZT1cImNvbG9y
OiBibGFja1wiPkJsYWNrPC9zcGFuPiIsIGZhbHNlKTsKKworICAgIF9fYmxvY2sgc2l6ZV90IGkg
PSAwOworICAgIFthdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0ZTpOU0ZvcmVncm91
bmRDb2xvckF0dHJpYnV0ZU5hbWUgaW5SYW5nZTpOU01ha2VSYW5nZSgwLCBbYXR0cmlidXRlZFN0
cmluZyBsZW5ndGhdKSBvcHRpb25zOjAgdXNpbmdCbG9jazpeKGlkIHZhbHVlLCBOU1JhbmdlIGF0
dHJpYnV0ZVJhbmdlLCBCT09MICpzdG9wKSB7CisgICAgICAgIGlmICghaSkKKyAgICAgICAgICAg
IEVYUEVDVF9OVUxMKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoaSA9PSAxKSB7CisgICAgICAg
ICAgICBFWFBFQ1RfTk9UX05VTEwodmFsdWUpOworICAgICAgICAgICAgY2hlY2tDb2xvcih2YWx1
ZSwgMSwgMSwgMSwgMSk7CisgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAyKQorICAgICAgICAgICAg
RVhQRUNUX05VTEwodmFsdWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKworICAgICAgICArK2k7CisgICAgfV07CisKKyAgICBFWFBFQ1RfRVEoaSwg
M1VMKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>