<?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>236694</bug_id>
          
          <creation_ts>2022-02-16 00:46:16 -0800</creation_ts>
          <short_desc>[css-grid] Simplify RTL handling</short_desc>
          <delta_ts>2022-02-24 19:12:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236626</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Woodrow">mattwoodrow</reporter>
          <assigned_to name="Matt Woodrow">mattwoodrow</assigned_to>
          <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>obrufau</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842161</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 00:46:16 -0800</bug_when>
    <thetext>We currently store columns in logical order (column 0 is the rightmost physical column), but we offset these positions using the physical left border, padding and content distribution offset.

This makes for some tricky conversions to get into the final coordinates to set on the RenderElement.

I think we can store purely logical coordinates, and subtract that from the width to get the final coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842164</commentid>
    <comment_count>1</comment_count>
      <attachid>452156</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 00:50:20 -0800</bug_when>
    <thetext>Created attachment 452156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842245</commentid>
    <comment_count>2</comment_count>
      <attachid>452156</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-02-16 05:09:40 -0800</bug_when>
    <thetext>Comment on attachment 452156
Patch

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

This is a great cleanup, if all tests keep passing (EWS are red now as the patch doesn&apos;t apply), it&apos;d be nice to get it landed.

&gt; Source/WebCore/rendering/RenderGrid.cpp:1575
&gt; +LayoutUnit RenderGrid::resolveAutoStartGridPosition(GridTrackSizingDirection) const

This method doesn&apos;t use the param, please remove it.

Also this method just returns zero, do we need a method for this?

&gt; Source/WebCore/rendering/RenderGrid.cpp:1584
&gt;      return clientLogicalWidth();

This method is now very simple, maybe we don&apos;t need it like resolveAutoStartGridPosition().

&gt; Source/WebCore/rendering/RenderGrid.cpp:1651
&gt; +

Nit: Extra line not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842413</commentid>
    <comment_count>3</comment_count>
      <attachid>452219</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 11:39:12 -0800</bug_when>
    <thetext>Created attachment 452219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842415</commentid>
    <comment_count>4</comment_count>
      <attachid>452220</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 11:40:30 -0800</bug_when>
    <thetext>Created attachment 452220
Patch for EWS including bug 236626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842417</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 11:42:24 -0800</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #2)
&gt; Comment on attachment 452156 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=452156&amp;action=review
&gt; 
&gt; This is a great cleanup, if all tests keep passing (EWS are red now as the
&gt; patch doesn&apos;t apply), it&apos;d be nice to get it landed.

Hopefully the &apos;Patch for EWS&apos; is green now, it depends on bug 236626 (which is a bit ugly, but adds a test, and inspired this cleanup).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842420</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-02-16 11:44:18 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842908</commentid>
    <comment_count>7</comment_count>
      <attachid>452219</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-02-17 08:08:00 -0800</bug_when>
    <thetext>Comment on attachment 452219
Patch

rs=me but it seems iOS isn&apos;t quite happy applying the landing patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844353</commentid>
    <comment_count>8</comment_count>
      <attachid>452765</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-21 13:31:20 -0800</bug_when>
    <thetext>Created attachment 452765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844459</commentid>
    <comment_count>9</comment_count>
      <attachid>452765</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-02-21 17:10:26 -0800</bug_when>
    <thetext>Comment on attachment 452765
Patch

Assuming the bots get another crack at this after the WebGPU breakage is cleared...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845039</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 00:47:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/89342456&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845796</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-24 15:19:14 -0800</bug_when>
    <thetext>mattwoodrow@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/metadata/contributors.json.

Rejecting attachment 452765 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845879</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-24 19:11:54 -0800</bug_when>
    <thetext>Committed r290491 (247781@main): &lt;https://commits.webkit.org/247781@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452765.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452156</attachid>
            <date>2022-02-16 00:50:20 -0800</date>
            <delta_ts>2022-02-16 11:39:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236694-20220216215018.patch</filename>
            <type>text/plain</type>
            <size>12411</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EwNzMxMjJkODY5N2Rh
Yzg5NzAzOGVjZWZlNzYwZGI4M2ZjZmJhYS4uNjI0YTczOTgzMzY1NjI2N2MwMDBhYTFhNzI3NWE2
MDgwNDA0Y2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE2ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgZ3Jp
ZCBSVEwgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjY5NCAgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIHByZXZpb3VzIGNvZGUgc3RvcmVkIGNvbHVtbnMgaW4gbG9naWNhbCBvcmRl
ciAoY29sdW1uIDAgaXMgdGhlIHJpZ2h0bW9zdCBwaHlzaWNhbCBjb2x1bW4pLCBidXQgdGhlIHBv
c2l0aW9ucyB3ZXJlIG9mZnNldAorICAgICAgICB1c2luZyB0aGUgcGh5c2ljYWwgbGVmdCBib3Jk
ZXIsIHBhZGRpbmcgYW5kIGNvbnRlbnQgZGlzdHJpYnV0aW9uIG9mZnNldC4gVGhpcyBoeWJyaWQg
cGh5c2ljYWwvbG9naWNhbCBjb29yZGluYXRlIHNwYWNlCisgICAgICAgIG1hZGUgZm9yIHRyaWNr
eSBjb252ZXJzaW9ucyBpbnRvIHRoZSBmaW5hbCBjb29yZGluYXRlIHNwYWNlLgorICAgICAgICBU
aGlzIGNoYW5nZXMgdGhlIHN0b3JlZCBjb2x1bW4gcG9zaXRpb25zIHRvIHVzZSBwdXJlbHkgbG9n
aWNhbCBjb29yZGluYXRlcywgYW5kIGRvZXMgYSBzaW5nbGUgZGlyZWN0aW9uIHN3YXAgKGJ5IHN1
YnRyYWN0aW5nCisgICAgICAgIGZyb20gdGhlIHdpZHRoKSBhdCB0aGUgZW5kLgorCisgICAgICAg
IE5vIHRlc3RzIGFkZGVkLCB0aGlzIHJlZmFjdG9yaW5nIGlzIGNvdmVyZWQgYnkgYSBsYXJnZSBu
dW1iZXIgb2YgZXhpc3RpbmcgV1BUcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9u
c0ZvckRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQXV0
b1N0YXJ0R3JpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxPZmZzZXRGb3JPdXRPZkZsb3dDaGlsZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpncmlkQXJlYVBvc2l0aW9uRm9yT3V0T2ZG
bG93Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUNv
bnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjp0cmFuc2xhdGVSVExDb29yZGluYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxPZmZzZXRGb3JDaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjp0cmFuc2xhdGVPdXRPZkZsb3dSVExDb29yZGluYXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorCiAyMDIyLTAy
LTE0ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IGFicy1wb3MgYnJlYWR0aCBpc3N1ZSB3aGVuIHVzaW5nICdhdXRvJwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGZhOTI0YzljODdiZDU3MjdkZWFiZjJhMjEyODk1
NjgyODU4OGFkYzAuLmE4ZGIzODBkZDRjY2Y2MjFjYjNkZTkxNGJjMmYzYTU3YmM0NjlkY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTExMDEsMTUgKzExMDEs
NyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9uc0ZvckRpcmVjdGlvbihH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZQogICAgIGF1dG8mIHBvc2l0aW9ucyA9IGlzUm93
QXhpcyA/IG1fY29sdW1uUG9zaXRpb25zIDogbV9yb3dQb3NpdGlvbnM7CiAgICAgcG9zaXRpb25z
LnJlc2l6ZShudW1iZXJPZkxpbmVzKTsKIAotICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlz
Um93QXhpcyA/IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgpIDogYm9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpOwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIC8vIEZJWE1FOiBJZGVh
bGx5IHNjcm9sbGJhckxvZ2ljYWxXaWR0aCgpIHNob3VsZCByZXR1cm4gemVybyBpbiBpT1Mgc28g
d2UgZG9uJ3QgbmVlZCB0aGlzCi0gICAgLy8gKHNlZSBidWcgaHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTkxODU3KS4KLSAgICAvLyBJZiB3ZSBhcmUgaW4gaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUgYW5k
IFJUTCBkaXJlY3Rpb24gdGhlIHNjcm9sbGJhciBpcyBwYWludGVkIG9uIHRoZSBsZWZ0LAotICAg
IC8vIHNvIHdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIHBv
c2l0aW9uIG9mIHRoZSBjb2x1bW5zLgotICAgIGlmIChpc1Jvd0F4aXMgJiYgc3R5bGUoKS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpICYmICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkKLSAgICAgICAgYm9yZGVyQW5kUGFkZGluZyArPSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsK
LSNlbmRpZgorICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlzUm93QXhpcyA/IGJvcmRlckFu
ZFBhZGRpbmdTdGFydCgpIDogYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwogCiAgICAgcG9zaXRp
b25zWzBdID0gYm9yZGVyQW5kUGFkZGluZyArIG9mZnNldC5wb3NpdGlvbk9mZnNldDsKICAgICBp
ZiAobnVtYmVyT2ZMaW5lcyA+IDEpIHsKQEAgLTE1ODAsMTcgKzE1NzIsOCBAQCBMYXlvdXRVbml0
IFJlbmRlckdyaWQ6OnJvd0F4aXNPZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxk
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckdyaWQ6OnJlc29s
dmVBdXRvU3RhcnRHcmlkUG9zaXRpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyR3JpZDo6cmVzb2x2ZUF1dG9TdGFydEdyaWRQb3Np
dGlvbihHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKGRpcmVjdGlv
biA9PSBGb3JSb3dzIHx8IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAg
ICByZXR1cm4gMF9sdTsKLQotICAgIGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhGb3JDb2x1bW5z
LCBtX2dyaWQpOwotICAgIENvbnRlbnRQb3NpdGlvbiBwb3NpdGlvbiA9IHN0eWxlKCkucmVzb2x2
ZWRKdXN0aWZ5Q29udGVudFBvc2l0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdy
aWQoKSk7Ci0gICAgaWYgKHBvc2l0aW9uID09IENvbnRlbnRQb3NpdGlvbjo6RW5kKQotICAgICAg
ICByZXR1cm4gbV9jb2x1bW5Qb3NpdGlvbnNbbGFzdExpbmVdIC0gY2xpZW50TG9naWNhbFdpZHRo
KCk7Ci0gICAgaWYgKHBvc2l0aW9uID09IENvbnRlbnRQb3NpdGlvbjo6U3RhcnQgfHwgc3R5bGUo
KS5yZXNvbHZlZEp1c3RpZnlDb250ZW50RGlzdHJpYnV0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3Jt
YWxCZWhhdmlvckdyaWQoKSkgPT0gQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaCkKLSAgICAg
ICAgcmV0dXJuIG1fY29sdW1uUG9zaXRpb25zWzBdIC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxM
ZWZ0KCk7CiAgICAgcmV0dXJuIDBfbHU7CiB9CiAKQEAgLTE1OTgsMTUgKzE1ODEsNiBAQCBMYXlv
dXRVbml0IFJlbmRlckdyaWQ6OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlYwogewogICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yUm93cykKICAg
ICAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxIZWlnaHQoKTsKLSAgICBpZiAoc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAgICAgIHJldHVybiBjbGllbnRMb2dpY2FsV2lkdGgo
KTsKLQotICAgIGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhGb3JDb2x1bW5zLCBtX2dyaWQpOwot
ICAgIENvbnRlbnRQb3NpdGlvbiBwb3NpdGlvbiA9IHN0eWxlKCkucmVzb2x2ZWRKdXN0aWZ5Q29u
dGVudFBvc2l0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKSk7Ci0gICAg
aWYgKHBvc2l0aW9uID09IENvbnRlbnRQb3NpdGlvbjo6RW5kKQotICAgICAgICByZXR1cm4gbV9j
b2x1bW5Qb3NpdGlvbnNbbGFzdExpbmVdOwotICAgIGlmIChwb3NpdGlvbiA9PSBDb250ZW50UG9z
aXRpb246OlN0YXJ0IHx8IHN0eWxlKCkucmVzb2x2ZWRKdXN0aWZ5Q29udGVudERpc3RyaWJ1dGlv
bihjb250ZW50QWxpZ25tZW50Tm9ybWFsQmVoYXZpb3JHcmlkKCkpID09IENvbnRlbnREaXN0cmli
dXRpb246OlN0cmV0Y2gpCi0gICAgICAgIHJldHVybiBtX2NvbHVtblBvc2l0aW9uc1swXSAtIGJv
cmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgpICsgY2xpZW50TG9naWNhbFdpZHRoKCk7CiAgICAg
cmV0dXJuIGNsaWVudExvZ2ljYWxXaWR0aCgpOwogfQogCkBAIC0xNjM1LDE2ICsxNjA5LDEyIEBA
IExheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQo
Y29uc3QgUmVuZGVyQm94JiBjaGlsZCwKICAgICBMYXlvdXRVbml0IGVuZDsKICAgICBhdXRvJiBw
b3NpdGlvbnMgPSBpc1Jvd0F4aXMgPyBtX2NvbHVtblBvc2l0aW9ucyA6IG1fcm93UG9zaXRpb25z
OwogICAgIGF1dG8mIG91dE9mRmxvd0l0ZW1MaW5lID0gaXNSb3dBeGlzID8gbV9vdXRPZkZsb3dJ
dGVtQ29sdW1uIDogbV9vdXRPZkZsb3dJdGVtUm93OwotICAgIExheW91dFVuaXQgYm9yZGVyRWRn
ZSA9IGlzUm93QXhpcyA/IChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGJvcmRl
ckxvZ2ljYWxMZWZ0KCkgOiBib3JkZXJMb2dpY2FsUmlnaHQoKSkgOiBib3JkZXJCZWZvcmUoKTsK
KyAgICBMYXlvdXRVbml0IGJvcmRlckVkZ2UgPSBpc1Jvd0F4aXMgPyBib3JkZXJTdGFydCgpIDog
Ym9yZGVyQmVmb3JlKCk7CiAgICAgaWYgKHN0YXJ0SXNBdXRvKQogICAgICAgICBzdGFydCA9IHJl
c29sdmVBdXRvU3RhcnRHcmlkUG9zaXRpb24oZGlyZWN0aW9uKSArIGJvcmRlckVkZ2U7CiAgICAg
ZWxzZSB7CiAgICAgICAgIG91dE9mRmxvd0l0ZW1MaW5lLnNldCgmY2hpbGQsIHN0YXJ0TGluZSk7
CiAgICAgICAgIHN0YXJ0ID0gcG9zaXRpb25zW3N0YXJ0TGluZV07Ci0gICAgICAgIGlmIChpc1Jv
d0F4aXMgJiYgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKSB7Ci0gICAgICAgICAg
ICBzdGFydCAtPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKTsKLSAgICAgICAgICAgIHN0
YXJ0ICs9IGJvcmRlckxvZ2ljYWxSaWdodCgpICsgcGFkZGluZ0xvZ2ljYWxSaWdodCgpOwotICAg
ICAgICB9CiAgICAgfQogICAgIGlmIChlbmRJc0F1dG8pCiAgICAgICAgIGVuZCA9IHJlc29sdmVB
dXRvRW5kR3JpZFBvc2l0aW9uKGRpcmVjdGlvbikgKyBib3JkZXJFZGdlOwpAQCAtMTY1NywxMSAr
MTYyNyw2IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZG
bG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwKICAgICAgICAgICAgIGVuZCAtPSBndXR0
ZXJzU2l6ZShtX2dyaWQsIGRpcmVjdGlvbiwgZW5kTGluZSAtIDEsIDIsIGF2YWlsYWJsZVNpemVG
b3JHdXR0ZXJzKTsKICAgICAgICAgICAgIGVuZCAtPSBpc1Jvd0F4aXMgPyBtX29mZnNldEJldHdl
ZW5Db2x1bW5zLmRpc3RyaWJ1dGlvbk9mZnNldCA6IG1fb2Zmc2V0QmV0d2VlblJvd3MuZGlzdHJp
YnV0aW9uT2Zmc2V0OwogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzUm93QXhpcyAmJiAhc3R5
bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpIHsKLSAgICAgICAgICAgIGVuZCAtPSBib3Jk
ZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKTsKLSAgICAgICAgICAgIGVuZCArPSBib3JkZXJMb2dp
Y2FsUmlnaHQoKSArIHBhZGRpbmdMb2dpY2FsUmlnaHQoKTsKLSAgICAgICAgfQogICAgIH0KICAg
ICByZXR1cm4gc3RkOjptYXgoZW5kIC0gc3RhcnQsIDBfbHUpOwogfQpAQCAtMTY4Myw2ICsxNjQ4
LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpsb2dpY2FsT2Zmc2V0Rm9yT3V0T2ZGbG93Q2hp
bGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3IKIAogICAgIExheW91dFVuaXQgY2hpbGRCcmVh
ZHRoID0gaXNGbG93QXdhcmVSb3dBeGlzID8gY2hpbGQubG9naWNhbFdpZHRoKCkgKyBjaGlsZC5t
YXJnaW5Mb2dpY2FsV2lkdGgoKSA6IGNoaWxkLmxvZ2ljYWxIZWlnaHQoKSArIGNoaWxkLm1hcmdp
bkxvZ2ljYWxIZWlnaHQoKTsKICAgICByZXR1cm4gdHJhY2tCcmVhZHRoIC0gb2Zmc2V0IC0gY2hp
bGRCcmVhZHRoOworCiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFQb3NpdGlvbkZvck91
dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlY3Rpb24sIExheW91dFVuaXQmIHN0YXJ0LCBMYXlvdXRVbml0JiBlbmQpIGNvbnN0
CkBAIC0xNjkyLDcgKzE2NTgsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmdyaWRBcmVhUG9zaXRpb25G
b3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVAogICAgIExheW91
dFVuaXQgdHJhY2tCcmVhZHRoID0gR3JpZExheW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGRpcmVjdGlvbikudmFsdWUoKTsK
ICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zOwogICAgIGF1dG8m
IG91dE9mRmxvd0l0ZW1MaW5lID0gaXNSb3dBeGlzID8gbV9vdXRPZkZsb3dJdGVtQ29sdW1uIDog
bV9vdXRPZkZsb3dJdGVtUm93OwotICAgIHN0YXJ0ID0gaXNSb3dBeGlzID8gKHN0eWxlKCkuaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpID8gYm9yZGVyTG9naWNhbExlZnQoKSA6IGJvcmRlckxvZ2lj
YWxSaWdodCgpKSA6IGJvcmRlckJlZm9yZSgpOworICAgIHN0YXJ0ID0gaXNSb3dBeGlzID8gYm9y
ZGVyU3RhcnQoKSA6IGJvcmRlckJlZm9yZSgpOwogICAgIGlmIChhdXRvIGxpbmUgPSBvdXRPZkZs
b3dJdGVtTGluZS5nZXQoJmNoaWxkKSkgewogICAgICAgICBhdXRvJiBwb3NpdGlvbnMgPSBpc1Jv
d0F4aXMgPyBtX2NvbHVtblBvc2l0aW9ucyA6IG1fcm93UG9zaXRpb25zOwogICAgICAgICBzdGFy
dCA9IHBvc2l0aW9uc1tsaW5lLnZhbHVlKCldOwpAQCAtMTgxOSwzMiArMTc4NSwzMCBAQCB2b2lk
IFJlbmRlckdyaWQ6OmNvbXB1dGVDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25PZmZzZXQo
R3JpZFRyYWNrU2l6aW5nRGlyZQogICAgIHN3aXRjaCAocG9zaXRpb24pIHsKICAgICBjYXNlIENv
bnRlbnRQb3NpdGlvbjo6TGVmdDoKICAgICAgICAgQVNTRVJUKGlzUm93QXhpcyk7CisgICAgICAg
IHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1
IDogYXZhaWxhYmxlRnJlZVNwYWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6UmlnaHQ6CiAgICAgICAgIEFTU0VSVChpc1Jvd0F4aXMpOwotICAgICAgICBwb3Np
dGlvbk9mZnNldCA9IGF2YWlsYWJsZUZyZWVTcGFjZTsKKyAgICAgICAgcG9zaXRpb25PZmZzZXQg
PSBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGF2YWlsYWJsZUZyZWVTcGFjZSA6
IDBfbHU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpDZW50ZXI6
CiAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gYXZhaWxhYmxlRnJlZVNwYWNlIC8gMjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkZsZXhFbmQ6IC8vIE9ubHkgdXNl
ZCBpbiBmbGV4IGxheW91dCwgZm9yIG90aGVyIGxheW91dCwgaXQncyBlcXVpdmFsZW50IHRvICdl
bmQnLgogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpFbmQ6Ci0gICAgICAgIGlmIChpc1Jvd0F4
aXMpCi0gICAgICAgICAgICBwb3NpdGlvbk9mZnNldCA9IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpID8gYXZhaWxhYmxlRnJlZVNwYWNlIDogMF9sdTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBhdmFpbGFibGVGcmVlU3BhY2U7CisgICAgICAgIHBv
c2l0aW9uT2Zmc2V0ID0gYXZhaWxhYmxlRnJlZVNwYWNlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENvbnRlbnRQb3NpdGlvbjo6RmxleFN0YXJ0OiAvLyBPbmx5IHVzZWQgaW4gZmxleCBsYXlv
dXQsIGZvciBvdGhlciBsYXlvdXQsIGl0J3MgZXF1aXZhbGVudCB0byAnc3RhcnQnLgogICAgIGNh
c2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoKICAgICAgICAgaWYgKGlzUm93QXhpcykKLSAgICAg
ICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
PyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOworICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQg
PSAwX2x1OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6QmFzZWxp
bmU6CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246Okxhc3RCYXNlbGluZToKICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGUgcHJldmlvdXMgdmFsdWVzLiBGb3Igbm93LCB3ZSBhbHdheXMg
J3N0YXJ0JyBhbGlnbi4KICAgICAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi8xNDU1NjYKICAg
ICAgICAgaWYgKGlzUm93QXhpcykKLSAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUo
KS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOwor
ICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSAwX2x1OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENvbnRlbnRQb3NpdGlvbjo6Tm9ybWFsOgogICAgIGRlZmF1bHQ6CkBAIC0xODU2LDI0ICsx
ODIwLDIwIEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3Ry
aWJ1dGlvbk9mZnNldChHcmlkVHJhY2tTaXppbmdEaXJlCiAgICAgb2Zmc2V0LmRpc3RyaWJ1dGlv
bk9mZnNldCA9IDBfbHU7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6dHJhbnNsYXRlT3V0
T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGNv
b3JkaW5hdGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpKTsKLSAgICBBU1NFUlQoIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKLQot
ICAgIGlmIChtX291dE9mRmxvd0l0ZW1Db2x1bW4uZ2V0KCZjaGlsZCkpCi0gICAgICAgIHJldHVy
biB0cmFuc2xhdGVSVExDb29yZGluYXRlKGNvb3JkaW5hdGUpOwotCi0gICAgcmV0dXJuIGJvcmRl
ckxvZ2ljYWxMZWZ0KCkgKyBib3JkZXJMb2dpY2FsUmlnaHQoKSArIGNsaWVudExvZ2ljYWxXaWR0
aCgpIC0gY29vcmRpbmF0ZTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjp0cmFuc2xhdGVS
VExDb29yZGluYXRlKExheW91dFVuaXQgY29vcmRpbmF0ZSkgY29uc3QKIHsKLSAgICBBU1NFUlQo
IXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKKyAgICBMYXlvdXRVbml0IHdpZHRo
ID0gYm9yZGVyTG9naWNhbExlZnQoKSArIGJvcmRlckxvZ2ljYWxSaWdodCgpICsgY2xpZW50TG9n
aWNhbFdpZHRoKCk7CisKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBGSVhNRTog
SWRlYWxseSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKSBzaG91bGQgcmV0dXJuIHplcm8gaW4gaU9T
IHNvIHdlIGRvbid0IG5lZWQgdGhpcworICAgIC8vIChzZWUgYnVnIGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE5MTg1NykuCisgICAgLy8gSWYgd2UgYXJlIGluIGhvcml6b250YWwgd3JpdGluZyBtb2Rl
IGFuZCBSVEwgZGlyZWN0aW9uIHRoZSBzY3JvbGxiYXIgaXMgcGFpbnRlZCBvbiB0aGUgbGVmdCwK
KyAgICAvLyBzbyB3ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHdoZW4gY29tcHV0aW5nIHRo
ZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4KKyAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQorICAgICAgICB3aWR0aCArPSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsK
KyNlbmRpZgogCi0gICAgTGF5b3V0VW5pdCBhbGlnbm1lbnRPZmZzZXQgPSBtX2NvbHVtblBvc2l0
aW9uc1swXTsKLSAgICBMYXlvdXRVbml0IHJpZ2h0R3JpZEVkZ2VQb3NpdGlvbiA9IG1fY29sdW1u
UG9zaXRpb25zW21fY29sdW1uUG9zaXRpb25zLnNpemUoKSAtIDFdOwotICAgIHJldHVybiByaWdo
dEdyaWRFZGdlUG9zaXRpb24gKyBhbGlnbm1lbnRPZmZzZXQgLSBjb29yZGluYXRlOworICAgIHJl
dHVybiB3aWR0aCAtIGNvb3JkaW5hdGU7CiB9CiAKIC8vIEZJWE1FOiBTZXRMb2dpY2FsUG9zaXRp
b25Gb3JDaGlsZCBoYXMgb25seSBvbmUgY2FsbGVyLCBjb25zaWRlciBpdHMgcmVmYWN0b3Jpbmcg
aW4gdGhlIGZ1dHVyZS4KQEAgLTE5MDQsNyArMTg2NCw3IEBAIExheW91dFVuaXQgUmVuZGVyR3Jp
ZDo6bG9naWNhbE9mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFj
a1NpCiAgICAgLy8gV2Ugc3RvcmVkIG1fY29sdW1uUG9zaXRpb25zJ3MgZGF0YSBpZ25vcmluZyB0
aGUgZGlyZWN0aW9uLCBoZW5jZSB3ZSBtaWdodCBuZWVkIG5vdwogICAgIC8vIHRvIHRyYW5zbGF0
ZSBwb3NpdGlvbnMgZnJvbSBSVEwgdG8gTFRSLCBhcyBpdCdzIG1vcmUgY29udmVuaWVudCBmb3Ig
cGFpbnRpbmcuCiAgICAgaWYgKCFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKLSAg
ICAgICAgcm93QXhpc09mZnNldCA9IChjaGlsZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSA/IHRy
YW5zbGF0ZU91dE9mRmxvd1JUTENvb3JkaW5hdGUoY2hpbGQsIHJvd0F4aXNPZmZzZXQpIDogdHJh
bnNsYXRlUlRMQ29vcmRpbmF0ZShyb3dBeGlzT2Zmc2V0KSkgLSAoR3JpZExheW91dEZ1bmN0aW9u
czo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMsIGNoaWxkKSA/IGNoaWxkLmxvZ2ljYWxIZWlnaHQo
KSAgOiBjaGlsZC5sb2dpY2FsV2lkdGgoKSk7CisgICAgICAgIHJvd0F4aXNPZmZzZXQgPSB0cmFu
c2xhdGVSVExDb29yZGluYXRlKHJvd0F4aXNPZmZzZXQpIC0gKEdyaWRMYXlvdXRGdW5jdGlvbnM6
OmlzT3J0aG9nb25hbENoaWxkKCp0aGlzLCBjaGlsZCkgPyBjaGlsZC5sb2dpY2FsSGVpZ2h0KCkg
IDogY2hpbGQubG9naWNhbFdpZHRoKCkpOwogICAgIHJldHVybiByb3dBeGlzT2Zmc2V0OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBlMjMwYjEzZGE4YTJkY2Vl
OTRhOTcxNmQ0MTBkODYxNDlhZWQ5YWI0Li5kYjRkNDUwYzgzZDkwNTY4YzM3MmQ5NjVlNjJiMDE1
ZTI1YTk5NWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTE4NCw3
ICsxODQsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG5vbkNvbGxhcHNlZFRyYWNrcyhHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWQmKSBjb25zdDsKIAotICAgIExheW91dFVu
aXQgdHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gmLCBMYXlv
dXRVbml0KSBjb25zdDsKICAgICBMYXlvdXRVbml0IHRyYW5zbGF0ZVJUTENvb3JkaW5hdGUoTGF5
b3V0VW5pdCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFJlc2V0TG9naWNhbEhlaWdodEJlZm9y
ZUxheW91dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452219</attachid>
            <date>2022-02-16 11:39:12 -0800</date>
            <delta_ts>2022-02-21 13:31:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236694-20220217083910.patch</filename>
            <type>text/plain</type>
            <size>12924</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EwNzMxMjJkODY5N2Rh
Yzg5NzAzOGVjZWZlNzYwZGI4M2ZjZmJhYS4uNjI0YTczOTgzMzY1NjI2N2MwMDBhYTFhNzI3NWE2
MDgwNDA0Y2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE2ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgZ3Jp
ZCBSVEwgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjY5NCAgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIHByZXZpb3VzIGNvZGUgc3RvcmVkIGNvbHVtbnMgaW4gbG9naWNhbCBvcmRl
ciAoY29sdW1uIDAgaXMgdGhlIHJpZ2h0bW9zdCBwaHlzaWNhbCBjb2x1bW4pLCBidXQgdGhlIHBv
c2l0aW9ucyB3ZXJlIG9mZnNldAorICAgICAgICB1c2luZyB0aGUgcGh5c2ljYWwgbGVmdCBib3Jk
ZXIsIHBhZGRpbmcgYW5kIGNvbnRlbnQgZGlzdHJpYnV0aW9uIG9mZnNldC4gVGhpcyBoeWJyaWQg
cGh5c2ljYWwvbG9naWNhbCBjb29yZGluYXRlIHNwYWNlCisgICAgICAgIG1hZGUgZm9yIHRyaWNr
eSBjb252ZXJzaW9ucyBpbnRvIHRoZSBmaW5hbCBjb29yZGluYXRlIHNwYWNlLgorICAgICAgICBU
aGlzIGNoYW5nZXMgdGhlIHN0b3JlZCBjb2x1bW4gcG9zaXRpb25zIHRvIHVzZSBwdXJlbHkgbG9n
aWNhbCBjb29yZGluYXRlcywgYW5kIGRvZXMgYSBzaW5nbGUgZGlyZWN0aW9uIHN3YXAgKGJ5IHN1
YnRyYWN0aW5nCisgICAgICAgIGZyb20gdGhlIHdpZHRoKSBhdCB0aGUgZW5kLgorCisgICAgICAg
IE5vIHRlc3RzIGFkZGVkLCB0aGlzIHJlZmFjdG9yaW5nIGlzIGNvdmVyZWQgYnkgYSBsYXJnZSBu
dW1iZXIgb2YgZXhpc3RpbmcgV1BUcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9u
c0ZvckRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlQXV0
b1N0YXJ0R3JpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxPZmZzZXRGb3JPdXRPZkZsb3dDaGlsZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpncmlkQXJlYVBvc2l0aW9uRm9yT3V0T2ZG
bG93Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUNv
bnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjp0cmFuc2xhdGVSVExDb29yZGluYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxPZmZzZXRGb3JDaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjp0cmFuc2xhdGVPdXRPZkZsb3dSVExDb29yZGluYXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorCiAyMDIyLTAy
LTE0ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IGFicy1wb3MgYnJlYWR0aCBpc3N1ZSB3aGVuIHVzaW5nICdhdXRvJwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGZhOTI0YzljODdiZDU3MjdkZWFiZjJhMjEyODk1
NjgyODU4OGFkYzAuLjA4NDhmOGE4NmE1M2ZlMGVkNDYxODRkNmI4Yzk1Zjg0MDM1NDQ3YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTExMDEsMTUgKzExMDEs
NyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9uc0ZvckRpcmVjdGlvbihH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZQogICAgIGF1dG8mIHBvc2l0aW9ucyA9IGlzUm93
QXhpcyA/IG1fY29sdW1uUG9zaXRpb25zIDogbV9yb3dQb3NpdGlvbnM7CiAgICAgcG9zaXRpb25z
LnJlc2l6ZShudW1iZXJPZkxpbmVzKTsKIAotICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlz
Um93QXhpcyA/IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgpIDogYm9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpOwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIC8vIEZJWE1FOiBJZGVh
bGx5IHNjcm9sbGJhckxvZ2ljYWxXaWR0aCgpIHNob3VsZCByZXR1cm4gemVybyBpbiBpT1Mgc28g
d2UgZG9uJ3QgbmVlZCB0aGlzCi0gICAgLy8gKHNlZSBidWcgaHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTkxODU3KS4KLSAgICAvLyBJZiB3ZSBhcmUgaW4gaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUgYW5k
IFJUTCBkaXJlY3Rpb24gdGhlIHNjcm9sbGJhciBpcyBwYWludGVkIG9uIHRoZSBsZWZ0LAotICAg
IC8vIHNvIHdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIHBv
c2l0aW9uIG9mIHRoZSBjb2x1bW5zLgotICAgIGlmIChpc1Jvd0F4aXMgJiYgc3R5bGUoKS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpICYmICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkKLSAgICAgICAgYm9yZGVyQW5kUGFkZGluZyArPSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsK
LSNlbmRpZgorICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlzUm93QXhpcyA/IGJvcmRlckFu
ZFBhZGRpbmdTdGFydCgpIDogYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwogCiAgICAgcG9zaXRp
b25zWzBdID0gYm9yZGVyQW5kUGFkZGluZyArIG9mZnNldC5wb3NpdGlvbk9mZnNldDsKICAgICBp
ZiAobnVtYmVyT2ZMaW5lcyA+IDEpIHsKQEAgLTE1ODAsMzYgKzE1NzIsNiBAQCBMYXlvdXRVbml0
IFJlbmRlckdyaWQ6OnJvd0F4aXNPZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxk
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckdyaWQ6OnJlc29s
dmVBdXRvU3RhcnRHcmlkUG9zaXRpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikgY29uc3QKLXsKLSAgICBpZiAoZGlyZWN0aW9uID09IEZvclJvd3MgfHwgc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAgICAgIHJldHVybiAwX2x1OwotCi0gICAgaW50IGxh
c3RMaW5lID0gbnVtVHJhY2tzKEZvckNvbHVtbnMsIG1fZ3JpZCk7Ci0gICAgQ29udGVudFBvc2l0
aW9uIHBvc2l0aW9uID0gc3R5bGUoKS5yZXNvbHZlZEp1c3RpZnlDb250ZW50UG9zaXRpb24oY29u
dGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKTsKLSAgICBpZiAocG9zaXRpb24gPT0g
Q29udGVudFBvc2l0aW9uOjpFbmQpCi0gICAgICAgIHJldHVybiBtX2NvbHVtblBvc2l0aW9uc1ts
YXN0TGluZV0gLSBjbGllbnRMb2dpY2FsV2lkdGgoKTsKLSAgICBpZiAocG9zaXRpb24gPT0gQ29u
dGVudFBvc2l0aW9uOjpTdGFydCB8fCBzdHlsZSgpLnJlc29sdmVkSnVzdGlmeUNvbnRlbnREaXN0
cmlidXRpb24oY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKSA9PSBDb250ZW50
RGlzdHJpYnV0aW9uOjpTdHJldGNoKQotICAgICAgICByZXR1cm4gbV9jb2x1bW5Qb3NpdGlvbnNb
MF0gLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKTsKLSAgICByZXR1cm4gMF9sdTsKLX0K
LQotTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpyZXNvbHZlQXV0b0VuZEdyaWRQb3NpdGlvbihHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAotewotICAgIGlmIChkaXJlY3Rp
b24gPT0gRm9yUm93cykKLSAgICAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxIZWlnaHQoKTsKLSAg
ICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAgICAgIHJldHVybiBj
bGllbnRMb2dpY2FsV2lkdGgoKTsKLQotICAgIGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhGb3JD
b2x1bW5zLCBtX2dyaWQpOwotICAgIENvbnRlbnRQb3NpdGlvbiBwb3NpdGlvbiA9IHN0eWxlKCku
cmVzb2x2ZWRKdXN0aWZ5Q29udGVudFBvc2l0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhh
dmlvckdyaWQoKSk7Ci0gICAgaWYgKHBvc2l0aW9uID09IENvbnRlbnRQb3NpdGlvbjo6RW5kKQot
ICAgICAgICByZXR1cm4gbV9jb2x1bW5Qb3NpdGlvbnNbbGFzdExpbmVdOwotICAgIGlmIChwb3Np
dGlvbiA9PSBDb250ZW50UG9zaXRpb246OlN0YXJ0IHx8IHN0eWxlKCkucmVzb2x2ZWRKdXN0aWZ5
Q29udGVudERpc3RyaWJ1dGlvbihjb250ZW50QWxpZ25tZW50Tm9ybWFsQmVoYXZpb3JHcmlkKCkp
ID09IENvbnRlbnREaXN0cmlidXRpb246OlN0cmV0Y2gpCi0gICAgICAgIHJldHVybiBtX2NvbHVt
blBvc2l0aW9uc1swXSAtIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgpICsgY2xpZW50TG9n
aWNhbFdpZHRoKCk7Ci0gICAgcmV0dXJuIGNsaWVudExvZ2ljYWxXaWR0aCgpOwotfQotCiBMYXlv
dXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKGNvbnN0
IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
CiAgICAgQVNTRVJUKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKQEAgLTE2MzUsMTkg
KzE1OTcsMTUgQEAgTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhGb3JPdXRP
ZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLAogICAgIExheW91dFVuaXQgZW5kOwog
ICAgIGF1dG8mIHBvc2l0aW9ucyA9IGlzUm93QXhpcyA/IG1fY29sdW1uUG9zaXRpb25zIDogbV9y
b3dQb3NpdGlvbnM7CiAgICAgYXV0byYgb3V0T2ZGbG93SXRlbUxpbmUgPSBpc1Jvd0F4aXMgPyBt
X291dE9mRmxvd0l0ZW1Db2x1bW4gOiBtX291dE9mRmxvd0l0ZW1Sb3c7Ci0gICAgTGF5b3V0VW5p
dCBib3JkZXJFZGdlID0gaXNSb3dBeGlzID8gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlv
bigpID8gYm9yZGVyTG9naWNhbExlZnQoKSA6IGJvcmRlckxvZ2ljYWxSaWdodCgpKSA6IGJvcmRl
ckJlZm9yZSgpOworICAgIExheW91dFVuaXQgYm9yZGVyRWRnZSA9IGlzUm93QXhpcyA/IGJvcmRl
clN0YXJ0KCkgOiBib3JkZXJCZWZvcmUoKTsKICAgICBpZiAoc3RhcnRJc0F1dG8pCi0gICAgICAg
IHN0YXJ0ID0gcmVzb2x2ZUF1dG9TdGFydEdyaWRQb3NpdGlvbihkaXJlY3Rpb24pICsgYm9yZGVy
RWRnZTsKKyAgICAgICAgc3RhcnQgPSBib3JkZXJFZGdlOwogICAgIGVsc2UgewogICAgICAgICBv
dXRPZkZsb3dJdGVtTGluZS5zZXQoJmNoaWxkLCBzdGFydExpbmUpOwogICAgICAgICBzdGFydCA9
IHBvc2l0aW9uc1tzdGFydExpbmVdOwotICAgICAgICBpZiAoaXNSb3dBeGlzICYmICFzdHlsZSgp
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkgewotICAgICAgICAgICAgc3RhcnQgLT0gYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxMZWZ0KCk7Ci0gICAgICAgICAgICBzdGFydCArPSBib3JkZXJMb2dp
Y2FsUmlnaHQoKSArIHBhZGRpbmdMb2dpY2FsUmlnaHQoKTsKLSAgICAgICAgfQogICAgIH0KICAg
ICBpZiAoZW5kSXNBdXRvKQotICAgICAgICBlbmQgPSByZXNvbHZlQXV0b0VuZEdyaWRQb3NpdGlv
bihkaXJlY3Rpb24pICsgYm9yZGVyRWRnZTsKKyAgICAgICAgZW5kID0gKChkaXJlY3Rpb24gPT0g
Rm9yUm93cykgPyBjbGllbnRMb2dpY2FsSGVpZ2h0KCkgOiBjbGllbnRMb2dpY2FsV2lkdGgoKSkg
KyBib3JkZXJFZGdlOwogICAgIGVsc2UgewogICAgICAgICBlbmQgPSBwb3NpdGlvbnNbZW5kTGlu
ZV07CiAgICAgICAgIC8vIFRoZXNlIHZlY3RvcnMgc3RvcmUgbGluZSBwb3NpdGlvbnMgaW5jbHVk
aW5nIGdhcHMsIGJ1dCB3ZSBzaG91bGRuJ3QgY29uc2lkZXIgdGhlbSBmb3IgdGhlIGVkZ2VzIG9m
IHRoZSBncmlkLgpAQCAtMTY1NywxMSArMTYxNSw2IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6
Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwK
ICAgICAgICAgICAgIGVuZCAtPSBndXR0ZXJzU2l6ZShtX2dyaWQsIGRpcmVjdGlvbiwgZW5kTGlu
ZSAtIDEsIDIsIGF2YWlsYWJsZVNpemVGb3JHdXR0ZXJzKTsKICAgICAgICAgICAgIGVuZCAtPSBp
c1Jvd0F4aXMgPyBtX29mZnNldEJldHdlZW5Db2x1bW5zLmRpc3RyaWJ1dGlvbk9mZnNldCA6IG1f
b2Zmc2V0QmV0d2VlblJvd3MuZGlzdHJpYnV0aW9uT2Zmc2V0OwogICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKGlzUm93QXhpcyAmJiAhc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpIHsK
LSAgICAgICAgICAgIGVuZCAtPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKTsKLSAgICAg
ICAgICAgIGVuZCArPSBib3JkZXJMb2dpY2FsUmlnaHQoKSArIHBhZGRpbmdMb2dpY2FsUmlnaHQo
KTsKLSAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gc3RkOjptYXgoZW5kIC0gc3RhcnQsIDBf
bHUpOwogfQpAQCAtMTY5Miw3ICsxNjQ1LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpncmlkQXJlYVBv
c2l0aW9uRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFQKICAg
ICBMYXlvdXRVbml0IHRyYWNrQnJlYWR0aCA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6Om92ZXJyaWRp
bmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBkaXJlY3Rpb24pLnZh
bHVlKCk7CiAgICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsKICAg
ICBhdXRvJiBvdXRPZkZsb3dJdGVtTGluZSA9IGlzUm93QXhpcyA/IG1fb3V0T2ZGbG93SXRlbUNv
bHVtbiA6IG1fb3V0T2ZGbG93SXRlbVJvdzsKLSAgICBzdGFydCA9IGlzUm93QXhpcyA/IChzdHls
ZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGJvcmRlckxvZ2ljYWxMZWZ0KCkgOiBib3Jk
ZXJMb2dpY2FsUmlnaHQoKSkgOiBib3JkZXJCZWZvcmUoKTsKKyAgICBzdGFydCA9IGlzUm93QXhp
cyA/IGJvcmRlclN0YXJ0KCkgOiBib3JkZXJCZWZvcmUoKTsKICAgICBpZiAoYXV0byBsaW5lID0g
b3V0T2ZGbG93SXRlbUxpbmUuZ2V0KCZjaGlsZCkpIHsKICAgICAgICAgYXV0byYgcG9zaXRpb25z
ID0gaXNSb3dBeGlzID8gbV9jb2x1bW5Qb3NpdGlvbnMgOiBtX3Jvd1Bvc2l0aW9uczsKICAgICAg
ICAgc3RhcnQgPSBwb3NpdGlvbnNbbGluZS52YWx1ZSgpXTsKQEAgLTE4MTksMzIgKzE3NzIsMzAg
QEAgdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9u
T2Zmc2V0KEdyaWRUcmFja1NpemluZ0RpcmUKICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246OkxlZnQ6CiAgICAgICAgIEFTU0VSVChpc1Jvd0F4aXMpOwor
ICAgICAgICBwb3NpdGlvbk9mZnNldCA9IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
ID8gMF9sdSA6IGF2YWlsYWJsZUZyZWVTcGFjZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b250ZW50UG9zaXRpb246OlJpZ2h0OgogICAgICAgICBBU1NFUlQoaXNSb3dBeGlzKTsKLSAgICAg
ICAgcG9zaXRpb25PZmZzZXQgPSBhdmFpbGFibGVGcmVlU3BhY2U7CisgICAgICAgIHBvc2l0aW9u
T2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBhdmFpbGFibGVGcmVl
U3BhY2UgOiAwX2x1OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6
Q2VudGVyOgogICAgICAgICBwb3NpdGlvbk9mZnNldCA9IGF2YWlsYWJsZUZyZWVTcGFjZSAvIDI7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpGbGV4RW5kOiAvLyBP
bmx5IHVzZWQgaW4gZmxleCBsYXlvdXQsIGZvciBvdGhlciBsYXlvdXQsIGl0J3MgZXF1aXZhbGVu
dCB0byAnZW5kJy4KICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RW5kOgotICAgICAgICBpZiAo
aXNSb3dBeGlzKQotICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBzdHlsZSgpLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IGF2YWlsYWJsZUZyZWVTcGFjZSA6IDBfbHU7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gYXZhaWxhYmxlRnJlZVNwYWNlOworICAg
ICAgICBwb3NpdGlvbk9mZnNldCA9IGF2YWlsYWJsZUZyZWVTcGFjZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkZsZXhTdGFydDogLy8gT25seSB1c2VkIGluIGZs
ZXggbGF5b3V0LCBmb3Igb3RoZXIgbGF5b3V0LCBpdCdzIGVxdWl2YWxlbnQgdG8gJ3N0YXJ0Jy4K
ICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6U3RhcnQ6CiAgICAgICAgIGlmIChpc1Jvd0F4aXMp
Ci0gICAgICAgICAgICBwb3NpdGlvbk9mZnNldCA9IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpID8gMF9sdSA6IGF2YWlsYWJsZUZyZWVTcGFjZTsKKyAgICAgICAgICAgIHBvc2l0aW9u
T2Zmc2V0ID0gMF9sdTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246
OkJhc2VsaW5lOgogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpMYXN0QmFzZWxpbmU6CiAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlIHByZXZpb3VzIHZhbHVlcy4gRm9yIG5vdywgd2Ug
YWx3YXlzICdzdGFydCcgYWxpZ24uCiAgICAgICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvMTQ1
NTY2CiAgICAgICAgIGlmIChpc1Jvd0F4aXMpCi0gICAgICAgICAgICBwb3NpdGlvbk9mZnNldCA9
IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMF9sdSA6IGF2YWlsYWJsZUZyZWVT
cGFjZTsKKyAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gMF9sdTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246Ok5vcm1hbDoKICAgICBkZWZhdWx0OgpAQCAtMTg1
NiwyNCArMTgwNywyMCBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVDb250ZW50UG9zaXRpb25B
bmREaXN0cmlidXRpb25PZmZzZXQoR3JpZFRyYWNrU2l6aW5nRGlyZQogICAgIG9mZnNldC5kaXN0
cmlidXRpb25PZmZzZXQgPSAwX2x1OwogfQogCi1MYXlvdXRVbml0IFJlbmRlckdyaWQ6OnRyYW5z
bGF0ZU91dE9mRmxvd1JUTENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0
VW5pdCBjb29yZGluYXRlKSBjb25zdAotewotICAgIEFTU0VSVChjaGlsZC5pc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSk7Ci0gICAgQVNTRVJUKCFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSk7Ci0KLSAgICBpZiAobV9vdXRPZkZsb3dJdGVtQ29sdW1uLmdldCgmY2hpbGQpKQotICAgICAg
ICByZXR1cm4gdHJhbnNsYXRlUlRMQ29vcmRpbmF0ZShjb29yZGluYXRlKTsKLQotICAgIHJldHVy
biBib3JkZXJMb2dpY2FsTGVmdCgpICsgYm9yZGVyTG9naWNhbFJpZ2h0KCkgKyBjbGllbnRMb2dp
Y2FsV2lkdGgoKSAtIGNvb3JkaW5hdGU7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6dHJh
bnNsYXRlUlRMQ29vcmRpbmF0ZShMYXlvdXRVbml0IGNvb3JkaW5hdGUpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUKCFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7CisgICAgTGF5b3V0VW5p
dCB3aWR0aCA9IGJvcmRlckxvZ2ljYWxMZWZ0KCkgKyBib3JkZXJMb2dpY2FsUmlnaHQoKSArIGNs
aWVudExvZ2ljYWxXaWR0aCgpOworCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8g
RklYTUU6IElkZWFsbHkgc2Nyb2xsYmFyTG9naWNhbFdpZHRoKCkgc2hvdWxkIHJldHVybiB6ZXJv
IGluIGlPUyBzbyB3ZSBkb24ndCBuZWVkIHRoaXMKKyAgICAvLyAoc2VlIGJ1ZyBodHRwczovL3dl
YmtpdC5vcmcvYi8xOTE4NTcpLgorICAgIC8vIElmIHdlIGFyZSBpbiBob3Jpem9udGFsIHdyaXRp
bmcgbW9kZSBhbmQgUlRMIGRpcmVjdGlvbiB0aGUgc2Nyb2xsYmFyIGlzIHBhaW50ZWQgb24gdGhl
IGxlZnQsCisgICAgLy8gc28gd2UgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudCB3aGVuIGNvbXB1
dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuCisgICAgaWYgKHN0eWxlKCkuaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgd2lkdGggKz0gc2Nyb2xsYmFyTG9naWNhbFdp
ZHRoKCk7CisjZW5kaWYKIAotICAgIExheW91dFVuaXQgYWxpZ25tZW50T2Zmc2V0ID0gbV9jb2x1
bW5Qb3NpdGlvbnNbMF07Ci0gICAgTGF5b3V0VW5pdCByaWdodEdyaWRFZGdlUG9zaXRpb24gPSBt
X2NvbHVtblBvc2l0aW9uc1ttX2NvbHVtblBvc2l0aW9ucy5zaXplKCkgLSAxXTsKLSAgICByZXR1
cm4gcmlnaHRHcmlkRWRnZVBvc2l0aW9uICsgYWxpZ25tZW50T2Zmc2V0IC0gY29vcmRpbmF0ZTsK
KyAgICByZXR1cm4gd2lkdGggLSBjb29yZGluYXRlOwogfQogCiAvLyBGSVhNRTogU2V0TG9naWNh
bFBvc2l0aW9uRm9yQ2hpbGQgaGFzIG9ubHkgb25lIGNhbGxlciwgY29uc2lkZXIgaXRzIHJlZmFj
dG9yaW5nIGluIHRoZSBmdXR1cmUuCkBAIC0xOTA0LDcgKzE4NTEsNyBAQCBMYXlvdXRVbml0IFJl
bmRlckdyaWQ6OmxvZ2ljYWxPZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBH
cmlkVHJhY2tTaQogICAgIC8vIFdlIHN0b3JlZCBtX2NvbHVtblBvc2l0aW9ucydzIGRhdGEgaWdu
b3JpbmcgdGhlIGRpcmVjdGlvbiwgaGVuY2Ugd2UgbWlnaHQgbmVlZCBub3cKICAgICAvLyB0byB0
cmFuc2xhdGUgcG9zaXRpb25zIGZyb20gUlRMIHRvIExUUiwgYXMgaXQncyBtb3JlIGNvbnZlbmll
bnQgZm9yIHBhaW50aW5nLgogICAgIGlmICghc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkpCi0gICAgICAgIHJvd0F4aXNPZmZzZXQgPSAoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgPyB0cmFuc2xhdGVPdXRPZkZsb3dSVExDb29yZGluYXRlKGNoaWxkLCByb3dBeGlzT2Zmc2V0
KSA6IHRyYW5zbGF0ZVJUTENvb3JkaW5hdGUocm93QXhpc09mZnNldCkpIC0gKEdyaWRMYXlvdXRG
dW5jdGlvbnM6OmlzT3J0aG9nb25hbENoaWxkKCp0aGlzLCBjaGlsZCkgPyBjaGlsZC5sb2dpY2Fs
SGVpZ2h0KCkgIDogY2hpbGQubG9naWNhbFdpZHRoKCkpOworICAgICAgICByb3dBeGlzT2Zmc2V0
ID0gdHJhbnNsYXRlUlRMQ29vcmRpbmF0ZShyb3dBeGlzT2Zmc2V0KSAtIChHcmlkTGF5b3V0RnVu
Y3Rpb25zOjppc09ydGhvZ29uYWxDaGlsZCgqdGhpcywgY2hpbGQpID8gY2hpbGQubG9naWNhbEhl
aWdodCgpICA6IGNoaWxkLmxvZ2ljYWxXaWR0aCgpKTsKICAgICByZXR1cm4gcm93QXhpc09mZnNl
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggZTIzMGIxM2Rh
OGEyZGNlZTk0YTk3MTZkNDEwZDg2MTQ5YWVkOWFiNC4uMDU5YzU1Zjg0NzgyYjExZTcxYzhlMmE1
MDJjNDA3OTRkNWUyOWRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBA
IC0xMzQsOCArMTM0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dEdyaWRJdGVtcygpOwog
ICAgIHZvaWQgcG9wdWxhdGVHcmlkUG9zaXRpb25zRm9yRGlyZWN0aW9uKEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbik7CiAKLSAgICBMYXlvdXRVbml0IHJlc29sdmVBdXRvU3RhcnRHcmlkUG9zaXRp
b24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IHJlc29s
dmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAg
ICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5k
ZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOwogICAgIExheW91dFVuaXQgbG9naWNh
bE9mZnNldEZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiwgTGF5b3V0VW5pdCkgY29uc3Q7CiAgICAgdm9pZCBncmlkQXJlYVBvc2l0aW9u
Rm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uLCBMYXlvdXRVbml0JiBzdGFydCwgTGF5b3V0VW5pdCYgZW5kKSBjb25zdDsKQEAgLTE4NCw3
ICsxODIsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG5vbkNvbGxhcHNlZFRyYWNrcyhHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWQmKSBjb25zdDsKIAotICAgIExheW91dFVu
aXQgdHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gmLCBMYXlv
dXRVbml0KSBjb25zdDsKICAgICBMYXlvdXRVbml0IHRyYW5zbGF0ZVJUTENvb3JkaW5hdGUoTGF5
b3V0VW5pdCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFJlc2V0TG9naWNhbEhlaWdodEJlZm9y
ZUxheW91dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452220</attachid>
            <date>2022-02-16 11:40:30 -0800</date>
            <delta_ts>2022-02-21 13:31:15 -0800</delta_ts>
            <desc>Patch for EWS including bug 236626</desc>
            <filename>ews-patch</filename>
            <type>text/plain</type>
            <size>15678</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQ2ODgwNGYzNDU4MC4uMGM3ODYzMzQz
ZGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
Mi0wMi0xNCAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgorCisgICAgICAg
IEZpeCBhYnMtcG9zIGJyZWFkdGggaXNzdWUgd2hlbiB1c2luZyAnYXV0bycKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjYyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgbmV3IHRlc3QgdGhhdCB1
c2VzIFJUTCBhbmQgYWJzLXBvcyBpdGVtcyBvdmVyIHRoZSBwYWRkaW5nIGFyZWEsIHdpdGgKKyAg
ICAgICAgcGFkZGluZyBkZWZpbmVkIGluIHBoeXNpY2FsIGNvb3Jkcy4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWJzcG9zL3Bvc2l0aW9uZWQtZ3JpZC1pdGVt
cy0wMjUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9hYnNwb3MvcG9zaXRpb25lZC1ncmlkLWl0ZW1zLTAyNS5odG1sOiBBZGRl
ZC4KKwogMjAyMi0wMi0wOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBEaWFsb2cgZWxlbWVudCBvbmx5IGFuaW1hdGVzIG9uY2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fi
c3Bvcy9wb3NpdGlvbmVkLWdyaWQtaXRlbXMtMDI1LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9hYnNwb3MvcG9z
aXRpb25lZC1ncmlkLWl0ZW1zLTAyNS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uODAzNTM5YTA2OWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWJz
cG9zL3Bvc2l0aW9uZWQtZ3JpZC1pdGVtcy0wMjUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1hdHQgV29vZHJvdyIgaHJlZj0ibXdvb2Ryb3dAYXBwbGUuY29tIj4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Ymx1ZTsgaGVpZ2h0OiAx
MDBweDsgd2lkdGg6IDUwcHg7ZGlzcGxheTogaW5saW5lLWJsb2NrOyI+PC9kaXY+CisgICAgPGRp
diBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpibHVlOyBoZWlnaHQ6IDEwMHB4OyB3aWR0aDogODBw
eDtwb3NpdGlvbjogcmVsYXRpdmU7ZGlzcGxheTogaW5saW5lLWJsb2NrO2xlZnQ6IDE0NnB4OyI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9hYnNwb3MvcG9zaXRpb25lZC1n
cmlkLWl0ZW1zLTAyNS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWdyaWQvYWJzcG9zL3Bvc2l0aW9uZWQtZ3JpZC1pdGVtcy0wMjUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0YzFiMDFhNTNkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2Fic3Bvcy9wb3NpdGlvbmVkLWdyaWQtaXRlbXMtMDI1Lmh0bWwK
QEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PkNTUyBHcmlkIExheW91dCBUZXN0OiBQb3NpdGlvbmVkIGdyaWQgaXRlbXM8L3RpdGxlPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQtMi8j
YWJzcG9zIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InBvc2l0aW9uZWQtZ3JpZC1pdGVtcy0w
MjUtcmVmLmh0bWwiPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJDaGVja3MgdGhhdCBh
YnNvbHV0ZWx5IHBvc2l0aW9uZWQgaXRlbXMgYXJlIHByb3Blcmx5IHBsYWNlZCBhbmQgc2l6ZWQu
Ij4KKzxzdHlsZT4KKyAgI2dyaWQgeworICAgIGRpc3BsYXk6IGdyaWQ7CisgICAgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zOiA1MHB4IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6
IDE1MHB4OworICAgIGRpcmVjdGlvbjogcnRsOworICAgIHBhZGRpbmctbGVmdDogNTBweDsKKyAg
ICBwYWRkaW5nLXJpZ2h0OiA4MHB4OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgfQorCisg
ICNncmlkID4gZGl2IHsKKyAgICB0b3A6IDBweDsKKyAgICByaWdodDogMHB4OworICAgIGJvdHRv
bTogMHB4OworICAgIGxlZnQ6IDBweDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgfQorPC9zdHlsZT4KKworPC9oZWFkPjxib2R5PjxkaXYg
aWQ9ImdyaWQiPgorICA8ZGl2IHN0eWxlPSJncmlkLWNvbHVtbjogYXV0byAvIDE7Ij48L2Rpdj4K
KyAgPGRpdiBzdHlsZT0iZ3JpZC1jb2x1bW46IC0xIC8gYXV0bzsiPjwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZjNjI1MTFhZWQ5Zi4uNjI0YTczOTgzMzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjItMDItMTYgIE1hdHQgV29vZHJvdyAgPG1h
dHR3b29kcm93QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBncmlkIFJUTCBoYW5kbGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2Njk0
ICAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
cHJldmlvdXMgY29kZSBzdG9yZWQgY29sdW1ucyBpbiBsb2dpY2FsIG9yZGVyIChjb2x1bW4gMCBp
cyB0aGUgcmlnaHRtb3N0IHBoeXNpY2FsIGNvbHVtbiksIGJ1dCB0aGUgcG9zaXRpb25zIHdlcmUg
b2Zmc2V0CisgICAgICAgIHVzaW5nIHRoZSBwaHlzaWNhbCBsZWZ0IGJvcmRlciwgcGFkZGluZyBh
bmQgY29udGVudCBkaXN0cmlidXRpb24gb2Zmc2V0LiBUaGlzIGh5YnJpZCBwaHlzaWNhbC9sb2dp
Y2FsIGNvb3JkaW5hdGUgc3BhY2UKKyAgICAgICAgbWFkZSBmb3IgdHJpY2t5IGNvbnZlcnNpb25z
IGludG8gdGhlIGZpbmFsIGNvb3JkaW5hdGUgc3BhY2UuCisgICAgICAgIFRoaXMgY2hhbmdlcyB0
aGUgc3RvcmVkIGNvbHVtbiBwb3NpdGlvbnMgdG8gdXNlIHB1cmVseSBsb2dpY2FsIGNvb3JkaW5h
dGVzLCBhbmQgZG9lcyBhIHNpbmdsZSBkaXJlY3Rpb24gc3dhcCAoYnkgc3VidHJhY3RpbmcKKyAg
ICAgICAgZnJvbSB0aGUgd2lkdGgpIGF0IHRoZSBlbmQuCisKKyAgICAgICAgTm8gdGVzdHMgYWRk
ZWQsIHRoaXMgcmVmYWN0b3JpbmcgaXMgY292ZXJlZCBieSBhIGxhcmdlIG51bWJlciBvZiBleGlz
dGluZyBXUFRzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVHcmlkUG9zaXRpb25zRm9yRGlyZWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVBdXRvU3RhcnRHcmlkUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUF1dG9F
bmRHcmlkUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3Jp
ZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
R3JpZDo6bG9naWNhbE9mZnNldEZvck91dE9mRmxvd0NoaWxkIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhUG9zaXRpb25Gb3JPdXRPZkZsb3dDaGlsZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlQ29udGVudFBvc2l0aW9u
QW5kRGlzdHJpYnV0aW9uT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnRy
YW5zbGF0ZVJUTENvb3JkaW5hdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6bG9naWNhbE9mZnNldEZvckNoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnRyYW5zbGF0ZU91dE9mRmxvd1JUTENvb3JkaW5hdGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisKKzIwMjItMDItMTQgIE1hdHQgV29v
ZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggYWJzLXBvcyBicmVh
ZHRoIGlzc3VlIHdoZW4gdXNpbmcgJ2F1dG8nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgdmFsdWUgcmV0dXJuZWQgd2hlbiByZXNvbHZpbmcgYW4g
J2F1dG8nIHN0YXJ0L2VuZCBpcyBpbiBsb2dpY2FsIGNvb3JkcywgYnV0IHRoZSBsaW5lCisgICAg
ICAgIHBvc2l0aW9ucyBhcmUgaW4gYSBoeWJyaWQgc3BhY2UgdXNpbmcgbG9naWNhbCBjb2x1bW4g
c2l6ZXMsIGJ1dCBwaHlzaWNhbCBib3JkZXIvcGFkZGluZyBvZmZzZXQuCisgICAgICAgIFRoaXMg
YWRqdXN0cyBmb3IgdGhpcywgc28gdGhhdCB3ZSBjYW4gY29tcHV0ZSB0aGUgYnJlYWR0aCBjb3Jy
ZWN0bHkuCisKKyAgICAgICAgQWRkcyBuZXcgdGVzdCB0aGF0IHVzZXMgUlRMIGFuZCBhYnMtcG9z
IGl0ZW1zIG92ZXIgdGhlIHBhZGRpbmcgYXJlYSwgd2l0aAorICAgICAgICBwYWRkaW5nIGRlZmlu
ZWQgaW4gcGh5c2ljYWwgY29vcmRzLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fic3Bvcy9wb3NpdGlvbmVkLWdyaWQtaXRlbXMt
MDI1Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKToK
KwogMjAyMi0wMi0wOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSUZDXSBWZXJ0aWNhbCB3cml0aW5nIG1vZGUgd2l0aCBSVEwgdGV4dCBjb250ZW50IGhh
cyBpbmNvcnJlY3QgYWR2YW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cAppbmRleCA3ZmZiNjIzNzQ4ZjAuLjA4NDhmOGE4NmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTEwMSwxNSArMTEwMSw3IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6cG9wdWxhdGVHcmlkUG9zaXRpb25zRm9yRGlyZWN0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlCiAgICAgYXV0byYgcG9zaXRpb25zID0gaXNSb3dBeGlzID8gbV9jb2x1bW5Qb3Np
dGlvbnMgOiBtX3Jvd1Bvc2l0aW9uczsKICAgICBwb3NpdGlvbnMucmVzaXplKG51bWJlck9mTGlu
ZXMpOwogCi0gICAgYXV0byBib3JkZXJBbmRQYWRkaW5nID0gaXNSb3dBeGlzID8gYm9yZGVyQW5k
UGFkZGluZ0xvZ2ljYWxMZWZ0KCkgOiBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7Ci0jaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gRklYTUU6IElkZWFsbHkgc2Nyb2xsYmFyTG9naWNh
bFdpZHRoKCkgc2hvdWxkIHJldHVybiB6ZXJvIGluIGlPUyBzbyB3ZSBkb24ndCBuZWVkIHRoaXMK
LSAgICAvLyAoc2VlIGJ1ZyBodHRwczovL3dlYmtpdC5vcmcvYi8xOTE4NTcpLgotICAgIC8vIElm
IHdlIGFyZSBpbiBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSBhbmQgUlRMIGRpcmVjdGlvbiB0aGUg
c2Nyb2xsYmFyIGlzIHBhaW50ZWQgb24gdGhlIGxlZnQsCi0gICAgLy8gc28gd2UgbmVlZCB0byB0
YWtlIGludG8gYWNjb3VudCB3aGVuIGNvbXB1dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVt
bnMuCi0gICAgaWYgKGlzUm93QXhpcyAmJiBzdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgJiYgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICBib3JkZXJB
bmRQYWRkaW5nICs9IHNjcm9sbGJhckxvZ2ljYWxXaWR0aCgpOwotI2VuZGlmCisgICAgYXV0byBi
b3JkZXJBbmRQYWRkaW5nID0gaXNSb3dBeGlzID8gYm9yZGVyQW5kUGFkZGluZ1N0YXJ0KCkgOiBi
b3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7CiAKICAgICBwb3NpdGlvbnNbMF0gPSBib3JkZXJBbmRQ
YWRkaW5nICsgb2Zmc2V0LnBvc2l0aW9uT2Zmc2V0OwogICAgIGlmIChudW1iZXJPZkxpbmVzID4g
MSkgewpAQCAtMTU4MCwzNiArMTU3Miw2IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6cm93QXhp
c09mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJu
IDA7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6cmVzb2x2ZUF1dG9TdGFydEdyaWRQb3Np
dGlvbihHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAotewotICAgIGlm
IChkaXJlY3Rpb24gPT0gRm9yUm93cyB8fCBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkKLSAgICAgICAgcmV0dXJuIDBfbHU7Ci0KLSAgICBpbnQgbGFzdExpbmUgPSBudW1UcmFja3Mo
Rm9yQ29sdW1ucywgbV9ncmlkKTsKLSAgICBDb250ZW50UG9zaXRpb24gcG9zaXRpb24gPSBzdHls
ZSgpLnJlc29sdmVkSnVzdGlmeUNvbnRlbnRQb3NpdGlvbihjb250ZW50QWxpZ25tZW50Tm9ybWFs
QmVoYXZpb3JHcmlkKCkpOwotICAgIGlmIChwb3NpdGlvbiA9PSBDb250ZW50UG9zaXRpb246OkVu
ZCkKLSAgICAgICAgcmV0dXJuIG1fY29sdW1uUG9zaXRpb25zW2xhc3RMaW5lXSAtIGNsaWVudExv
Z2ljYWxXaWR0aCgpOwotICAgIGlmIChwb3NpdGlvbiA9PSBDb250ZW50UG9zaXRpb246OlN0YXJ0
IHx8IHN0eWxlKCkucmVzb2x2ZWRKdXN0aWZ5Q29udGVudERpc3RyaWJ1dGlvbihjb250ZW50QWxp
Z25tZW50Tm9ybWFsQmVoYXZpb3JHcmlkKCkpID09IENvbnRlbnREaXN0cmlidXRpb246OlN0cmV0
Y2gpCi0gICAgICAgIHJldHVybiBtX2NvbHVtblBvc2l0aW9uc1swXSAtIGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsTGVmdCgpOwotICAgIHJldHVybiAwX2x1OwotfQotCi1MYXlvdXRVbml0IFJlbmRl
ckdyaWQ6OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JSb3dzKQotICAg
ICAgICByZXR1cm4gY2xpZW50TG9naWNhbEhlaWdodCgpOwotICAgIGlmIChzdHlsZSgpLmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxXaWR0aCgp
OwotCi0gICAgaW50IGxhc3RMaW5lID0gbnVtVHJhY2tzKEZvckNvbHVtbnMsIG1fZ3JpZCk7Ci0g
ICAgQ29udGVudFBvc2l0aW9uIHBvc2l0aW9uID0gc3R5bGUoKS5yZXNvbHZlZEp1c3RpZnlDb250
ZW50UG9zaXRpb24oY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKTsKLSAgICBp
ZiAocG9zaXRpb24gPT0gQ29udGVudFBvc2l0aW9uOjpFbmQpCi0gICAgICAgIHJldHVybiBtX2Nv
bHVtblBvc2l0aW9uc1tsYXN0TGluZV07Ci0gICAgaWYgKHBvc2l0aW9uID09IENvbnRlbnRQb3Np
dGlvbjo6U3RhcnQgfHwgc3R5bGUoKS5yZXNvbHZlZEp1c3RpZnlDb250ZW50RGlzdHJpYnV0aW9u
KGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKSkgPT0gQ29udGVudERpc3RyaWJ1
dGlvbjo6U3RyZXRjaCkKLSAgICAgICAgcmV0dXJuIG1fY29sdW1uUG9zaXRpb25zWzBdIC0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxMZWZ0KCkgKyBjbGllbnRMb2dpY2FsV2lkdGgoKTsKLSAgICBy
ZXR1cm4gY2xpZW50TG9naWNhbFdpZHRoKCk7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6
Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY2hpbGQu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwpAQCAtMTYzNSwxNSArMTU5NywxNSBAQCBMYXlvdXRV
bml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJl
bmRlckJveCYgY2hpbGQsCiAgICAgTGF5b3V0VW5pdCBlbmQ7CiAgICAgYXV0byYgcG9zaXRpb25z
ID0gaXNSb3dBeGlzID8gbV9jb2x1bW5Qb3NpdGlvbnMgOiBtX3Jvd1Bvc2l0aW9uczsKICAgICBh
dXRvJiBvdXRPZkZsb3dJdGVtTGluZSA9IGlzUm93QXhpcyA/IG1fb3V0T2ZGbG93SXRlbUNvbHVt
biA6IG1fb3V0T2ZGbG93SXRlbVJvdzsKLSAgICBMYXlvdXRVbml0IGJvcmRlckVkZ2UgPSBpc1Jv
d0F4aXMgPyAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBib3JkZXJMb2dpY2Fs
TGVmdCgpIDogYm9yZGVyTG9naWNhbFJpZ2h0KCkpIDogYm9yZGVyQmVmb3JlKCk7CisgICAgTGF5
b3V0VW5pdCBib3JkZXJFZGdlID0gaXNSb3dBeGlzID8gYm9yZGVyU3RhcnQoKSA6IGJvcmRlckJl
Zm9yZSgpOwogICAgIGlmIChzdGFydElzQXV0bykKLSAgICAgICAgc3RhcnQgPSByZXNvbHZlQXV0
b1N0YXJ0R3JpZFBvc2l0aW9uKGRpcmVjdGlvbikgKyBib3JkZXJFZGdlOworICAgICAgICBzdGFy
dCA9IGJvcmRlckVkZ2U7CiAgICAgZWxzZSB7CiAgICAgICAgIG91dE9mRmxvd0l0ZW1MaW5lLnNl
dCgmY2hpbGQsIHN0YXJ0TGluZSk7CiAgICAgICAgIHN0YXJ0ID0gcG9zaXRpb25zW3N0YXJ0TGlu
ZV07CiAgICAgfQogICAgIGlmIChlbmRJc0F1dG8pCi0gICAgICAgIGVuZCA9IHJlc29sdmVBdXRv
RW5kR3JpZFBvc2l0aW9uKGRpcmVjdGlvbikgKyBib3JkZXJFZGdlOworICAgICAgICBlbmQgPSAo
KGRpcmVjdGlvbiA9PSBGb3JSb3dzKSA/IGNsaWVudExvZ2ljYWxIZWlnaHQoKSA6IGNsaWVudExv
Z2ljYWxXaWR0aCgpKSArIGJvcmRlckVkZ2U7CiAgICAgZWxzZSB7CiAgICAgICAgIGVuZCA9IHBv
c2l0aW9uc1tlbmRMaW5lXTsKICAgICAgICAgLy8gVGhlc2UgdmVjdG9ycyBzdG9yZSBsaW5lIHBv
c2l0aW9ucyBpbmNsdWRpbmcgZ2FwcywgYnV0IHdlIHNob3VsZG4ndCBjb25zaWRlciB0aGVtIGZv
ciB0aGUgZWRnZXMgb2YgdGhlIGdyaWQuCkBAIC0xNjgzLDcgKzE2NDUsNyBAQCB2b2lkIFJlbmRl
ckdyaWQ6OmdyaWRBcmVhUG9zaXRpb25Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gm
IGNoaWxkLCBHcmlkVAogICAgIExheW91dFVuaXQgdHJhY2tCcmVhZHRoID0gR3JpZExheW91dEZ1
bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hp
bGQsIGRpcmVjdGlvbikudmFsdWUoKTsKICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVjdGlvbiA9
PSBGb3JDb2x1bW5zOwogICAgIGF1dG8mIG91dE9mRmxvd0l0ZW1MaW5lID0gaXNSb3dBeGlzID8g
bV9vdXRPZkZsb3dJdGVtQ29sdW1uIDogbV9vdXRPZkZsb3dJdGVtUm93OwotICAgIHN0YXJ0ID0g
aXNSb3dBeGlzID8gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gYm9yZGVyTG9n
aWNhbExlZnQoKSA6IGJvcmRlckxvZ2ljYWxSaWdodCgpKSA6IGJvcmRlckJlZm9yZSgpOworICAg
IHN0YXJ0ID0gaXNSb3dBeGlzID8gYm9yZGVyU3RhcnQoKSA6IGJvcmRlckJlZm9yZSgpOwogICAg
IGlmIChhdXRvIGxpbmUgPSBvdXRPZkZsb3dJdGVtTGluZS5nZXQoJmNoaWxkKSkgewogICAgICAg
ICBhdXRvJiBwb3NpdGlvbnMgPSBpc1Jvd0F4aXMgPyBtX2NvbHVtblBvc2l0aW9ucyA6IG1fcm93
UG9zaXRpb25zOwogICAgICAgICBzdGFydCA9IHBvc2l0aW9uc1tsaW5lLnZhbHVlKCldOwpAQCAt
MTgxMCwzMiArMTc3MiwzMCBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVDb250ZW50UG9zaXRp
b25BbmREaXN0cmlidXRpb25PZmZzZXQoR3JpZFRyYWNrU2l6aW5nRGlyZQogICAgIHN3aXRjaCAo
cG9zaXRpb24pIHsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6TGVmdDoKICAgICAgICAgQVNT
RVJUKGlzUm93QXhpcyk7CisgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6UmlnaHQ6CiAgICAgICAgIEFTU0VSVChp
c1Jvd0F4aXMpOwotICAgICAgICBwb3NpdGlvbk9mZnNldCA9IGF2YWlsYWJsZUZyZWVTcGFjZTsK
KyAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGF2YWlsYWJsZUZyZWVTcGFjZSA6IDBfbHU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q29udGVudFBvc2l0aW9uOjpDZW50ZXI6CiAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gYXZhaWxh
YmxlRnJlZVNwYWNlIC8gMjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRp
b246OkZsZXhFbmQ6IC8vIE9ubHkgdXNlZCBpbiBmbGV4IGxheW91dCwgZm9yIG90aGVyIGxheW91
dCwgaXQncyBlcXVpdmFsZW50IHRvICdlbmQnLgogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpF
bmQ6Ci0gICAgICAgIGlmIChpc1Jvd0F4aXMpCi0gICAgICAgICAgICBwb3NpdGlvbk9mZnNldCA9
IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gYXZhaWxhYmxlRnJlZVNwYWNlIDog
MF9sdTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBhdmFpbGFi
bGVGcmVlU3BhY2U7CisgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gYXZhaWxhYmxlRnJlZVNwYWNl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RmxleFN0YXJ0OiAv
LyBPbmx5IHVzZWQgaW4gZmxleCBsYXlvdXQsIGZvciBvdGhlciBsYXlvdXQsIGl0J3MgZXF1aXZh
bGVudCB0byAnc3RhcnQnLgogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoKICAgICAg
ICAgaWYgKGlzUm93QXhpcykKLSAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOworICAg
ICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSAwX2x1OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRlbnRQb3NpdGlvbjo6QmFzZWxpbmU6CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246Okxh
c3RCYXNlbGluZToKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgcHJldmlvdXMgdmFs
dWVzLiBGb3Igbm93LCB3ZSBhbHdheXMgJ3N0YXJ0JyBhbGlnbi4KICAgICAgICAgLy8gaHR0cDov
L3dlYmtpdC5vcmcvYi8xNDU1NjYKICAgICAgICAgaWYgKGlzUm93QXhpcykKLSAgICAgICAgICAg
IHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1
IDogYXZhaWxhYmxlRnJlZVNwYWNlOworICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSAwX2x1
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6Tm9ybWFsOgogICAg
IGRlZmF1bHQ6CkBAIC0xODQ3LDI0ICsxODA3LDIwIEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0
ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldChHcmlkVHJhY2tTaXppbmdEaXJl
CiAgICAgb2Zmc2V0LmRpc3RyaWJ1dGlvbk9mZnNldCA9IDBfbHU7CiB9CiAKLUxheW91dFVuaXQg
UmVuZGVyR3JpZDo6dHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJC
b3gmIGNoaWxkLCBMYXlvdXRVbml0IGNvb3JkaW5hdGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGNo
aWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKLSAgICBBU1NFUlQoIXN0eWxlKCkuaXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpKTsKLQotICAgIGlmIChtX291dE9mRmxvd0l0ZW1Db2x1bW4uZ2V0
KCZjaGlsZCkpCi0gICAgICAgIHJldHVybiB0cmFuc2xhdGVSVExDb29yZGluYXRlKGNvb3JkaW5h
dGUpOwotCi0gICAgcmV0dXJuIGJvcmRlckxvZ2ljYWxMZWZ0KCkgKyBib3JkZXJMb2dpY2FsUmln
aHQoKSArIGNsaWVudExvZ2ljYWxXaWR0aCgpIC0gY29vcmRpbmF0ZTsKLX0KLQogTGF5b3V0VW5p
dCBSZW5kZXJHcmlkOjp0cmFuc2xhdGVSVExDb29yZGluYXRlKExheW91dFVuaXQgY29vcmRpbmF0
ZSkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
KTsKKyAgICBMYXlvdXRVbml0IHdpZHRoID0gYm9yZGVyTG9naWNhbExlZnQoKSArIGJvcmRlckxv
Z2ljYWxSaWdodCgpICsgY2xpZW50TG9naWNhbFdpZHRoKCk7CisKKyNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAvLyBGSVhNRTogSWRlYWxseSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKSBz
aG91bGQgcmV0dXJuIHplcm8gaW4gaU9TIHNvIHdlIGRvbid0IG5lZWQgdGhpcworICAgIC8vIChz
ZWUgYnVnIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MTg1NykuCisgICAgLy8gSWYgd2UgYXJlIGlu
IGhvcml6b250YWwgd3JpdGluZyBtb2RlIGFuZCBSVEwgZGlyZWN0aW9uIHRoZSBzY3JvbGxiYXIg
aXMgcGFpbnRlZCBvbiB0aGUgbGVmdCwKKyAgICAvLyBzbyB3ZSBuZWVkIHRvIHRha2UgaW50byBh
Y2NvdW50IHdoZW4gY29tcHV0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4KKyAgICBp
ZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICB3aWR0aCArPSBz
Y3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsKKyNlbmRpZgogCi0gICAgTGF5b3V0VW5pdCBhbGlnbm1l
bnRPZmZzZXQgPSBtX2NvbHVtblBvc2l0aW9uc1swXTsKLSAgICBMYXlvdXRVbml0IHJpZ2h0R3Jp
ZEVkZ2VQb3NpdGlvbiA9IG1fY29sdW1uUG9zaXRpb25zW21fY29sdW1uUG9zaXRpb25zLnNpemUo
KSAtIDFdOwotICAgIHJldHVybiByaWdodEdyaWRFZGdlUG9zaXRpb24gKyBhbGlnbm1lbnRPZmZz
ZXQgLSBjb29yZGluYXRlOworICAgIHJldHVybiB3aWR0aCAtIGNvb3JkaW5hdGU7CiB9CiAKIC8v
IEZJWE1FOiBTZXRMb2dpY2FsUG9zaXRpb25Gb3JDaGlsZCBoYXMgb25seSBvbmUgY2FsbGVyLCBj
b25zaWRlciBpdHMgcmVmYWN0b3JpbmcgaW4gdGhlIGZ1dHVyZS4KQEAgLTE4OTUsNyArMTg1MSw3
IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6bG9naWNhbE9mZnNldEZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpCiAgICAgLy8gV2Ugc3RvcmVkIG1fY29sdW1uUG9z
aXRpb25zJ3MgZGF0YSBpZ25vcmluZyB0aGUgZGlyZWN0aW9uLCBoZW5jZSB3ZSBtaWdodCBuZWVk
IG5vdwogICAgIC8vIHRvIHRyYW5zbGF0ZSBwb3NpdGlvbnMgZnJvbSBSVEwgdG8gTFRSLCBhcyBp
dCdzIG1vcmUgY29udmVuaWVudCBmb3IgcGFpbnRpbmcuCiAgICAgaWYgKCFzdHlsZSgpLmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSkKLSAgICAgICAgcm93QXhpc09mZnNldCA9IChjaGlsZC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSA/IHRyYW5zbGF0ZU91dE9mRmxvd1JUTENvb3JkaW5hdGUoY2hp
bGQsIHJvd0F4aXNPZmZzZXQpIDogdHJhbnNsYXRlUlRMQ29vcmRpbmF0ZShyb3dBeGlzT2Zmc2V0
KSkgLSAoR3JpZExheW91dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMsIGNoaWxk
KSA/IGNoaWxkLmxvZ2ljYWxIZWlnaHQoKSAgOiBjaGlsZC5sb2dpY2FsV2lkdGgoKSk7CisgICAg
ICAgIHJvd0F4aXNPZmZzZXQgPSB0cmFuc2xhdGVSVExDb29yZGluYXRlKHJvd0F4aXNPZmZzZXQp
IC0gKEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENoaWxkKCp0aGlzLCBjaGlsZCkg
PyBjaGlsZC5sb2dpY2FsSGVpZ2h0KCkgIDogY2hpbGQubG9naWNhbFdpZHRoKCkpOwogICAgIHJl
dHVybiByb3dBeGlzT2Zmc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAppbmRleCBlMjMwYjEzZGE4YTIuLjA1OWM1NWY4NDc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oCkBAIC0xMzQsOCArMTM0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxh
eW91dEdyaWRJdGVtcygpOwogICAgIHZvaWQgcG9wdWxhdGVHcmlkUG9zaXRpb25zRm9yRGlyZWN0
aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7CiAKLSAgICBMYXlvdXRVbml0IHJlc29sdmVB
dXRvU3RhcnRHcmlkUG9zaXRpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAg
ICBMYXlvdXRVbml0IHJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbikgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZs
b3dDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOwogICAg
IExheW91dFVuaXQgbG9naWNhbE9mZnNldEZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgTGF5b3V0VW5pdCkgY29uc3Q7CiAgICAgdm9p
ZCBncmlkQXJlYVBvc2l0aW9uRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBMYXlvdXRVbml0JiBzdGFydCwgTGF5b3V0VW5pdCYgZW5k
KSBjb25zdDsKQEAgLTE4NCw3ICsxODIsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG5vbkNv
bGxhcHNlZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogICAgIHVuc2ln
bmVkIG51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWQmKSBjb25z
dDsKIAotICAgIExheW91dFVuaXQgdHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25z
dCBSZW5kZXJCb3gmLCBMYXlvdXRVbml0KSBjb25zdDsKICAgICBMYXlvdXRVbml0IHRyYW5zbGF0
ZVJUTENvb3JkaW5hdGUoTGF5b3V0VW5pdCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFJlc2V0
TG9naWNhbEhlaWdodEJlZm9yZUxheW91dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452765</attachid>
            <date>2022-02-21 13:31:20 -0800</date>
            <delta_ts>2022-02-24 19:11:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236694-20220222103118.patch</filename>
            <type>text/plain</type>
            <size>12890</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllNzVlNjI3OTI0ZDFl
NmRmMDRiZmRiZWMzZTlhYTJkZmQwYjhmNS4uMWNmZjA5NDhmZjkxMzYwOTcxMTEwNjVkN2ViNWZj
MGY1NzgzNDM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTIxICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgZ3Jp
ZCBSVEwgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjY5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBwcmV2aW91cyBjb2RlIHN0b3JlZCBjb2x1bW5zIGluIGxvZ2ljYWwgb3JkZXIg
KGNvbHVtbiAwIGlzIHRoZSByaWdodG1vc3QgcGh5c2ljYWwgY29sdW1uKSwgYnV0IHRoZSBwb3Np
dGlvbnMgd2VyZSBvZmZzZXQKKyAgICAgICAgdXNpbmcgdGhlIHBoeXNpY2FsIGxlZnQgYm9yZGVy
LCBwYWRkaW5nIGFuZCBjb250ZW50IGRpc3RyaWJ1dGlvbiBvZmZzZXQuIFRoaXMgaHlicmlkIHBo
eXNpY2FsL2xvZ2ljYWwgY29vcmRpbmF0ZSBzcGFjZQorICAgICAgICBtYWRlIGZvciB0cmlja3kg
Y29udmVyc2lvbnMgaW50byB0aGUgZmluYWwgY29vcmRpbmF0ZSBzcGFjZS4KKyAgICAgICAgVGhp
cyBjaGFuZ2VzIHRoZSBzdG9yZWQgY29sdW1uIHBvc2l0aW9ucyB0byB1c2UgcHVyZWx5IGxvZ2lj
YWwgY29vcmRpbmF0ZXMsIGFuZCBkb2VzIGEgc2luZ2xlIGRpcmVjdGlvbiBzd2FwIChieSBzdWJ0
cmFjdGluZworICAgICAgICBmcm9tIHRoZSB3aWR0aCkgYXQgdGhlIGVuZC4KKworICAgICAgICBO
byB0ZXN0cyBhZGRlZCwgdGhpcyByZWZhY3RvcmluZyBpcyBjb3ZlcmVkIGJ5IGEgbGFyZ2UgbnVt
YmVyIG9mIGV4aXN0aW5nIFdQVHMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnNG
b3JEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUF1dG9T
dGFydEdyaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpy
ZXNvbHZlQXV0b0VuZEdyaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpsb2dpY2FsT2Zmc2V0Rm9yT3V0T2ZGbG93Q2hpbGQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFQb3NpdGlvbkZvck91dE9mRmxv
d0NoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVDb250
ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25PZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6dHJhbnNsYXRlUlRMQ29vcmRpbmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpsb2dpY2FsT2Zmc2V0Rm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6dHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKwogMjAyMi0wMi0y
MSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDb250
YWluZXIgUXVlcmllc10gU3VwcG9ydCBuZXN0ZWQgY29udGFpbmVyIHF1ZXJpZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA3MTQ2N2NhODk4ZmVmNjI1NDcxODIx
NDI0OWQ0ZWQ0YzJjYzM0YzE1Li4wMjc0NWQ4ZWUyOTQwMzlmYzIzMmYyNzY1MDc0YzkzYjAwM2Zm
Y2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0xMTQxLDE1
ICsxMTQxLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnNGb3JEaXJl
Y3Rpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmUKICAgICBhdXRvJiBwb3NpdGlvbnMg
PSBpc1Jvd0F4aXMgPyBtX2NvbHVtblBvc2l0aW9ucyA6IG1fcm93UG9zaXRpb25zOwogICAgIHBv
c2l0aW9ucy5yZXNpemUobnVtYmVyT2ZMaW5lcyk7CiAKLSAgICBhdXRvIGJvcmRlckFuZFBhZGRp
bmcgPSBpc1Jvd0F4aXMgPyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKSA6IGJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKTsKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAvLyBGSVhN
RTogSWRlYWxseSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKSBzaG91bGQgcmV0dXJuIHplcm8gaW4g
aU9TIHNvIHdlIGRvbid0IG5lZWQgdGhpcwotICAgIC8vIChzZWUgYnVnIGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE5MTg1NykuCi0gICAgLy8gSWYgd2UgYXJlIGluIGhvcml6b250YWwgd3JpdGluZyBt
b2RlIGFuZCBSVEwgZGlyZWN0aW9uIHRoZSBzY3JvbGxiYXIgaXMgcGFpbnRlZCBvbiB0aGUgbGVm
dCwKLSAgICAvLyBzbyB3ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHdoZW4gY29tcHV0aW5n
IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4KLSAgICBpZiAoaXNSb3dBeGlzICYmIHN0eWxl
KCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkpCi0gICAgICAgIGJvcmRlckFuZFBhZGRpbmcgKz0gc2Nyb2xsYmFyTG9naWNhbFdp
ZHRoKCk7Ci0jZW5kaWYKKyAgICBhdXRvIGJvcmRlckFuZFBhZGRpbmcgPSBpc1Jvd0F4aXMgPyBi
b3JkZXJBbmRQYWRkaW5nU3RhcnQoKSA6IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKIAogICAg
IHBvc2l0aW9uc1swXSA9IGJvcmRlckFuZFBhZGRpbmcgKyBvZmZzZXQucG9zaXRpb25PZmZzZXQ7
CiAgICAgaWYgKG51bWJlck9mTGluZXMgPiAxKSB7CkBAIC0xNjIxLDM2ICsxNjEzLDYgQEAgTGF5
b3V0VW5pdCBSZW5kZXJHcmlkOjpyb3dBeGlzT2Zmc2V0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94
JiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJHcmlk
OjpyZXNvbHZlQXV0b1N0YXJ0R3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBk
aXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JSb3dzIHx8IHN0eWxl
KCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICByZXR1cm4gMF9sdTsKLQotICAg
IGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhGb3JDb2x1bW5zLCBtX2dyaWQpOwotICAgIENvbnRl
bnRQb3NpdGlvbiBwb3NpdGlvbiA9IHN0eWxlKCkucmVzb2x2ZWRKdXN0aWZ5Q29udGVudFBvc2l0
aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKSk7Ci0gICAgaWYgKHBvc2l0
aW9uID09IENvbnRlbnRQb3NpdGlvbjo6RW5kKQotICAgICAgICByZXR1cm4gbV9jb2x1bW5Qb3Np
dGlvbnNbbGFzdExpbmVdIC0gY2xpZW50TG9naWNhbFdpZHRoKCk7Ci0gICAgaWYgKHBvc2l0aW9u
ID09IENvbnRlbnRQb3NpdGlvbjo6U3RhcnQgfHwgc3R5bGUoKS5yZXNvbHZlZEp1c3RpZnlDb250
ZW50RGlzdHJpYnV0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKSkgPT0g
Q29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaCkKLSAgICAgICAgcmV0dXJuIG1fY29sdW1uUG9z
aXRpb25zWzBdIC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxMZWZ0KCk7Ci0gICAgcmV0dXJuIDBf
bHU7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6cmVzb2x2ZUF1dG9FbmRHcmlkUG9zaXRp
b24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAo
ZGlyZWN0aW9uID09IEZvclJvd3MpCi0gICAgICAgIHJldHVybiBjbGllbnRMb2dpY2FsSGVpZ2h0
KCk7Ci0gICAgaWYgKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICBy
ZXR1cm4gY2xpZW50TG9naWNhbFdpZHRoKCk7Ci0KLSAgICBpbnQgbGFzdExpbmUgPSBudW1UcmFj
a3MoRm9yQ29sdW1ucywgbV9ncmlkKTsKLSAgICBDb250ZW50UG9zaXRpb24gcG9zaXRpb24gPSBz
dHlsZSgpLnJlc29sdmVkSnVzdGlmeUNvbnRlbnRQb3NpdGlvbihjb250ZW50QWxpZ25tZW50Tm9y
bWFsQmVoYXZpb3JHcmlkKCkpOwotICAgIGlmIChwb3NpdGlvbiA9PSBDb250ZW50UG9zaXRpb246
OkVuZCkKLSAgICAgICAgcmV0dXJuIG1fY29sdW1uUG9zaXRpb25zW2xhc3RMaW5lXTsKLSAgICBp
ZiAocG9zaXRpb24gPT0gQ29udGVudFBvc2l0aW9uOjpTdGFydCB8fCBzdHlsZSgpLnJlc29sdmVk
SnVzdGlmeUNvbnRlbnREaXN0cmlidXRpb24oY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9y
R3JpZCgpKSA9PSBDb250ZW50RGlzdHJpYnV0aW9uOjpTdHJldGNoKQotICAgICAgICByZXR1cm4g
bV9jb2x1bW5Qb3NpdGlvbnNbMF0gLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKSArIGNs
aWVudExvZ2ljYWxXaWR0aCgpOwotICAgIHJldHVybiBjbGllbnRMb2dpY2FsV2lkdGgoKTsKLX0K
LQogYm9vbCBSZW5kZXJHcmlkOjppc1N1YmdyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKIHsKICAgICBpZiAoIW1heUJlU3ViZ3JpZEV4Y2x1ZGluZ0Fic1Bvcyhk
aXJlY3Rpb24pKQpAQCAtMTY5NiwxOSArMTY1OCwxNSBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6
OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQs
CiAgICAgTGF5b3V0VW5pdCBlbmQ7CiAgICAgYXV0byYgcG9zaXRpb25zID0gaXNSb3dBeGlzID8g
bV9jb2x1bW5Qb3NpdGlvbnMgOiBtX3Jvd1Bvc2l0aW9uczsKICAgICBhdXRvJiBvdXRPZkZsb3dJ
dGVtTGluZSA9IGlzUm93QXhpcyA/IG1fb3V0T2ZGbG93SXRlbUNvbHVtbiA6IG1fb3V0T2ZGbG93
SXRlbVJvdzsKLSAgICBMYXlvdXRVbml0IGJvcmRlckVkZ2UgPSBpc1Jvd0F4aXMgPyAoc3R5bGUo
KS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBib3JkZXJMb2dpY2FsTGVmdCgpIDogYm9yZGVy
TG9naWNhbFJpZ2h0KCkpIDogYm9yZGVyQmVmb3JlKCk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJF
ZGdlID0gaXNSb3dBeGlzID8gYm9yZGVyU3RhcnQoKSA6IGJvcmRlckJlZm9yZSgpOwogICAgIGlm
IChzdGFydElzQXV0bykKLSAgICAgICAgc3RhcnQgPSByZXNvbHZlQXV0b1N0YXJ0R3JpZFBvc2l0
aW9uKGRpcmVjdGlvbikgKyBib3JkZXJFZGdlOworICAgICAgICBzdGFydCA9IGJvcmRlckVkZ2U7
CiAgICAgZWxzZSB7CiAgICAgICAgIG91dE9mRmxvd0l0ZW1MaW5lLnNldCgmY2hpbGQsIHN0YXJ0
TGluZSk7CiAgICAgICAgIHN0YXJ0ID0gcG9zaXRpb25zW3N0YXJ0TGluZV07Ci0gICAgICAgIGlm
IChpc1Jvd0F4aXMgJiYgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKSB7Ci0gICAg
ICAgICAgICBzdGFydCAtPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbExlZnQoKTsKLSAgICAgICAg
ICAgIHN0YXJ0ICs9IGJvcmRlckxvZ2ljYWxSaWdodCgpICsgcGFkZGluZ0xvZ2ljYWxSaWdodCgp
OwotICAgICAgICB9CiAgICAgfQogICAgIGlmIChlbmRJc0F1dG8pCi0gICAgICAgIGVuZCA9IHJl
c29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKGRpcmVjdGlvbikgKyBib3JkZXJFZGdlOworICAgICAg
ICBlbmQgPSAoKGRpcmVjdGlvbiA9PSBGb3JSb3dzKSA/IGNsaWVudExvZ2ljYWxIZWlnaHQoKSA6
IGNsaWVudExvZ2ljYWxXaWR0aCgpKSArIGJvcmRlckVkZ2U7CiAgICAgZWxzZSB7CiAgICAgICAg
IGVuZCA9IHBvc2l0aW9uc1tlbmRMaW5lXTsKICAgICAgICAgLy8gVGhlc2UgdmVjdG9ycyBzdG9y
ZSBsaW5lIHBvc2l0aW9ucyBpbmNsdWRpbmcgZ2FwcywgYnV0IHdlIHNob3VsZG4ndCBjb25zaWRl
ciB0aGVtIGZvciB0aGUgZWRnZXMgb2YgdGhlIGdyaWQuCkBAIC0xNzE4LDExICsxNjc2LDYgQEAg
TGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dDaGlsZChj
b25zdCBSZW5kZXJCb3gmIGNoaWxkLAogICAgICAgICAgICAgZW5kIC09IGd1dHRlcnNTaXplKG1f
Z3JpZCwgZGlyZWN0aW9uLCBlbmRMaW5lIC0gMSwgMiwgYXZhaWxhYmxlU2l6ZUZvckd1dHRlcnMp
OwogICAgICAgICAgICAgZW5kIC09IGlzUm93QXhpcyA/IG1fb2Zmc2V0QmV0d2VlbkNvbHVtbnMu
ZGlzdHJpYnV0aW9uT2Zmc2V0IDogbV9vZmZzZXRCZXR3ZWVuUm93cy5kaXN0cmlidXRpb25PZmZz
ZXQ7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAoaXNSb3dBeGlzICYmICFzdHlsZSgpLmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSkgewotICAgICAgICAgICAgZW5kIC09IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsTGVmdCgpOwotICAgICAgICAgICAgZW5kICs9IGJvcmRlckxvZ2ljYWxSaWdodCgp
ICsgcGFkZGluZ0xvZ2ljYWxSaWdodCgpOwotICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBz
dGQ6Om1heChlbmQgLSBzdGFydCwgMF9sdSk7CiB9CkBAIC0xNzUzLDcgKzE3MDYsNyBAQCB2b2lk
IFJlbmRlckdyaWQ6OmdyaWRBcmVhUG9zaXRpb25Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5k
ZXJCb3gmIGNoaWxkLCBHcmlkVAogICAgIExheW91dFVuaXQgdHJhY2tCcmVhZHRoID0gR3JpZExh
eW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hp
bGQoY2hpbGQsIGRpcmVjdGlvbikudmFsdWUoKTsKICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVj
dGlvbiA9PSBGb3JDb2x1bW5zOwogICAgIGF1dG8mIG91dE9mRmxvd0l0ZW1MaW5lID0gaXNSb3dB
eGlzID8gbV9vdXRPZkZsb3dJdGVtQ29sdW1uIDogbV9vdXRPZkZsb3dJdGVtUm93OwotICAgIHN0
YXJ0ID0gaXNSb3dBeGlzID8gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gYm9y
ZGVyTG9naWNhbExlZnQoKSA6IGJvcmRlckxvZ2ljYWxSaWdodCgpKSA6IGJvcmRlckJlZm9yZSgp
OworICAgIHN0YXJ0ID0gaXNSb3dBeGlzID8gYm9yZGVyU3RhcnQoKSA6IGJvcmRlckJlZm9yZSgp
OwogICAgIGlmIChhdXRvIGxpbmUgPSBvdXRPZkZsb3dJdGVtTGluZS5nZXQoJmNoaWxkKSkgewog
ICAgICAgICBhdXRvJiBwb3NpdGlvbnMgPSBpc1Jvd0F4aXMgPyBtX2NvbHVtblBvc2l0aW9ucyA6
IG1fcm93UG9zaXRpb25zOwogICAgICAgICBzdGFydCA9IHBvc2l0aW9uc1tsaW5lLnZhbHVlKCld
OwpAQCAtMTg4NSwzMiArMTgzOCwzMCBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVDb250ZW50
UG9zaXRpb25BbmREaXN0cmlidXRpb25PZmZzZXQoR3JpZFRyYWNrU2l6aW5nRGlyZQogICAgIHN3
aXRjaCAocG9zaXRpb24pIHsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6TGVmdDoKICAgICAg
ICAgQVNTRVJUKGlzUm93QXhpcyk7CisgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6UmlnaHQ6CiAgICAgICAgIEFT
U0VSVChpc1Jvd0F4aXMpOwotICAgICAgICBwb3NpdGlvbk9mZnNldCA9IGF2YWlsYWJsZUZyZWVT
cGFjZTsKKyAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSA/IGF2YWlsYWJsZUZyZWVTcGFjZSA6IDBfbHU7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpDZW50ZXI6CiAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0g
YXZhaWxhYmxlRnJlZVNwYWNlIC8gMjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50
UG9zaXRpb246OkZsZXhFbmQ6IC8vIE9ubHkgdXNlZCBpbiBmbGV4IGxheW91dCwgZm9yIG90aGVy
IGxheW91dCwgaXQncyBlcXVpdmFsZW50IHRvICdlbmQnLgogICAgIGNhc2UgQ29udGVudFBvc2l0
aW9uOjpFbmQ6Ci0gICAgICAgIGlmIChpc1Jvd0F4aXMpCi0gICAgICAgICAgICBwb3NpdGlvbk9m
ZnNldCA9IHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gYXZhaWxhYmxlRnJlZVNw
YWNlIDogMF9sdTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSBh
dmFpbGFibGVGcmVlU3BhY2U7CisgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gYXZhaWxhYmxlRnJl
ZVNwYWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RmxleFN0
YXJ0OiAvLyBPbmx5IHVzZWQgaW4gZmxleCBsYXlvdXQsIGZvciBvdGhlciBsYXlvdXQsIGl0J3Mg
ZXF1aXZhbGVudCB0byAnc3RhcnQnLgogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoK
ICAgICAgICAgaWYgKGlzUm93QXhpcykKLSAgICAgICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5
bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNl
OworICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQgPSAwX2x1OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6QmFzZWxpbmU6CiAgICAgY2FzZSBDb250ZW50UG9zaXRp
b246Okxhc3RCYXNlbGluZToKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgcHJldmlv
dXMgdmFsdWVzLiBGb3Igbm93LCB3ZSBhbHdheXMgJ3N0YXJ0JyBhbGlnbi4KICAgICAgICAgLy8g
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDU1NjYKICAgICAgICAgaWYgKGlzUm93QXhpcykKLSAgICAg
ICAgICAgIHBvc2l0aW9uT2Zmc2V0ID0gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
PyAwX2x1IDogYXZhaWxhYmxlRnJlZVNwYWNlOworICAgICAgICAgICAgcG9zaXRpb25PZmZzZXQg
PSAwX2x1OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6Tm9ybWFs
OgogICAgIGRlZmF1bHQ6CkBAIC0xOTIyLDI0ICsxODczLDIwIEBAIHZvaWQgUmVuZGVyR3JpZDo6
Y29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldChHcmlkVHJhY2tTaXpp
bmdEaXJlCiAgICAgb2Zmc2V0LmRpc3RyaWJ1dGlvbk9mZnNldCA9IDBfbHU7CiB9CiAKLUxheW91
dFVuaXQgUmVuZGVyR3JpZDo6dHJhbnNsYXRlT3V0T2ZGbG93UlRMQ29vcmRpbmF0ZShjb25zdCBS
ZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGNvb3JkaW5hdGUpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKLSAgICBBU1NFUlQoIXN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKLQotICAgIGlmIChtX291dE9mRmxvd0l0ZW1Db2x1
bW4uZ2V0KCZjaGlsZCkpCi0gICAgICAgIHJldHVybiB0cmFuc2xhdGVSVExDb29yZGluYXRlKGNv
b3JkaW5hdGUpOwotCi0gICAgcmV0dXJuIGJvcmRlckxvZ2ljYWxMZWZ0KCkgKyBib3JkZXJMb2dp
Y2FsUmlnaHQoKSArIGNsaWVudExvZ2ljYWxXaWR0aCgpIC0gY29vcmRpbmF0ZTsKLX0KLQogTGF5
b3V0VW5pdCBSZW5kZXJHcmlkOjp0cmFuc2xhdGVSVExDb29yZGluYXRlKExheW91dFVuaXQgY29v
cmRpbmF0ZSkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpKTsKKyAgICBMYXlvdXRVbml0IHdpZHRoID0gYm9yZGVyTG9naWNhbExlZnQoKSArIGJv
cmRlckxvZ2ljYWxSaWdodCgpICsgY2xpZW50TG9naWNhbFdpZHRoKCk7CisKKyNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBGSVhNRTogSWRlYWxseSBzY3JvbGxiYXJMb2dpY2FsV2lk
dGgoKSBzaG91bGQgcmV0dXJuIHplcm8gaW4gaU9TIHNvIHdlIGRvbid0IG5lZWQgdGhpcworICAg
IC8vIChzZWUgYnVnIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MTg1NykuCisgICAgLy8gSWYgd2Ug
YXJlIGluIGhvcml6b250YWwgd3JpdGluZyBtb2RlIGFuZCBSVEwgZGlyZWN0aW9uIHRoZSBzY3Jv
bGxiYXIgaXMgcGFpbnRlZCBvbiB0aGUgbGVmdCwKKyAgICAvLyBzbyB3ZSBuZWVkIHRvIHRha2Ug
aW50byBhY2NvdW50IHdoZW4gY29tcHV0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4K
KyAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICB3aWR0
aCArPSBzY3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsKKyNlbmRpZgogCi0gICAgTGF5b3V0VW5pdCBh
bGlnbm1lbnRPZmZzZXQgPSBtX2NvbHVtblBvc2l0aW9uc1swXTsKLSAgICBMYXlvdXRVbml0IHJp
Z2h0R3JpZEVkZ2VQb3NpdGlvbiA9IG1fY29sdW1uUG9zaXRpb25zW21fY29sdW1uUG9zaXRpb25z
LnNpemUoKSAtIDFdOwotICAgIHJldHVybiByaWdodEdyaWRFZGdlUG9zaXRpb24gKyBhbGlnbm1l
bnRPZmZzZXQgLSBjb29yZGluYXRlOworICAgIHJldHVybiB3aWR0aCAtIGNvb3JkaW5hdGU7CiB9
CiAKIC8vIEZJWE1FOiBTZXRMb2dpY2FsUG9zaXRpb25Gb3JDaGlsZCBoYXMgb25seSBvbmUgY2Fs
bGVyLCBjb25zaWRlciBpdHMgcmVmYWN0b3JpbmcgaW4gdGhlIGZ1dHVyZS4KQEAgLTE5NzAsNyAr
MTkxNyw3IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6bG9naWNhbE9mZnNldEZvckNoaWxkKGNv
bnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpCiAgICAgLy8gV2Ugc3RvcmVkIG1fY29s
dW1uUG9zaXRpb25zJ3MgZGF0YSBpZ25vcmluZyB0aGUgZGlyZWN0aW9uLCBoZW5jZSB3ZSBtaWdo
dCBuZWVkIG5vdwogICAgIC8vIHRvIHRyYW5zbGF0ZSBwb3NpdGlvbnMgZnJvbSBSVEwgdG8gTFRS
LCBhcyBpdCdzIG1vcmUgY29udmVuaWVudCBmb3IgcGFpbnRpbmcuCiAgICAgaWYgKCFzdHlsZSgp
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKLSAgICAgICAgcm93QXhpc09mZnNldCA9IChjaGls
ZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSA/IHRyYW5zbGF0ZU91dE9mRmxvd1JUTENvb3JkaW5h
dGUoY2hpbGQsIHJvd0F4aXNPZmZzZXQpIDogdHJhbnNsYXRlUlRMQ29vcmRpbmF0ZShyb3dBeGlz
T2Zmc2V0KSkgLSAoR3JpZExheW91dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMs
IGNoaWxkKSA/IGNoaWxkLmxvZ2ljYWxIZWlnaHQoKSAgOiBjaGlsZC5sb2dpY2FsV2lkdGgoKSk7
CisgICAgICAgIHJvd0F4aXNPZmZzZXQgPSB0cmFuc2xhdGVSVExDb29yZGluYXRlKHJvd0F4aXNP
ZmZzZXQpIC0gKEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENoaWxkKCp0aGlzLCBj
aGlsZCkgPyBjaGlsZC5sb2dpY2FsSGVpZ2h0KCkgIDogY2hpbGQubG9naWNhbFdpZHRoKCkpOwog
ICAgIHJldHVybiByb3dBeGlzT2Zmc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaAppbmRleCBjOGZhM2FhY2Y0OTdlOGViZGFlYjM4MjNmZDAyY2M1ODZmNTA4YmI5Li4y
MzA2ZTdjMWNlY2FhYjdiNjYxMzMyNzU3NjQ1NjJlMTMxYjNmZTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTE2Nyw4ICsxNjcsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgbGF5b3V0R3JpZEl0ZW1zKCk7CiAgICAgdm9pZCBwb3B1bGF0ZUdyaWRQb3NpdGlvbnNGb3JE
aXJlY3Rpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKIAotICAgIExheW91dFVuaXQgcmVz
b2x2ZUF1dG9TdGFydEdyaWRQb3NpdGlvbihHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0
OwotICAgIExheW91dFVuaXQgcmVzb2x2ZUF1dG9FbmRHcmlkUG9zaXRpb24oR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aEZvck91
dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7
CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0Rm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVu
ZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBMYXlvdXRVbml0KSBjb25zdDsKICAg
ICB2b2lkIGdyaWRBcmVhUG9zaXRpb25Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gm
LCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIExheW91dFVuaXQmIHN0YXJ0LCBMYXlvdXRVbml0
JiBlbmQpIGNvbnN0OwpAQCAtMjEyLDcgKzIxMCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bm9uQ29sbGFwc2VkVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAgICAg
dW5zaWduZWQgbnVtVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3JpZCYp
IGNvbnN0OwogCi0gICAgTGF5b3V0VW5pdCB0cmFuc2xhdGVPdXRPZkZsb3dSVExDb29yZGluYXRl
KGNvbnN0IFJlbmRlckJveCYsIExheW91dFVuaXQpIGNvbnN0OwogICAgIExheW91dFVuaXQgdHJh
bnNsYXRlUlRMQ29vcmRpbmF0ZShMYXlvdXRVbml0KSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxk
UmVzZXRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>