<?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>232897</bug_id>
          
          <creation_ts>2021-11-09 11:28:16 -0800</creation_ts>
          <short_desc>Run a ScrollAnimationMomentum for the momentum phase of a scroll</short_desc>
          <delta_ts>2021-11-13 23:37:45 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>jonlee</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813242</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-09 11:28:16 -0800</bug_when>
    <thetext>Run a ScrollAnimationMomentum for the momentum phase of a scroll</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813243</commentid>
    <comment_count>1</comment_count>
      <attachid>443711</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-09 11:29:23 -0800</bug_when>
    <thetext>Created attachment 443711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813372</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-09 15:36:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/85226827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813445</commentid>
    <comment_count>3</comment_count>
      <attachid>443763</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-09 18:22:57 -0800</bug_when>
    <thetext>Created attachment 443763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814822</commentid>
    <comment_count>4</comment_count>
      <attachid>444160</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-13 18:39:47 -0800</bug_when>
    <thetext>Created attachment 444160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814829</commentid>
    <comment_count>5</comment_count>
      <attachid>444160</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-13 20:38:20 -0800</bug_when>
    <thetext>Comment on attachment 444160
Patch

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

&gt; Source/WebCore/platform/ScrollingEffectsController.cpp:151
&gt; +        auto contrainedOffset = currentOffset.constrainedBetween(extents.minimumScrollOffset(), extents.maximumScrollOffset());

sp. &quot;contrainedOffset&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814832</commentid>
    <comment_count>6</comment_count>
      <attachid>444164</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-13 21:10:07 -0800</bug_when>
    <thetext>Created attachment 444164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814838</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-13 23:37:43 -0800</bug_when>
    <thetext>Committed r285787 (244231@main): &lt;https://commits.webkit.org/244231@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444164.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443711</attachid>
            <date>2021-11-09 11:29:23 -0800</date>
            <delta_ts>2021-11-09 18:22:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232897-20211109112922.patch</filename>
            <type>text/plain</type>
            <size>17780</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2
ZW50RGVsdGFGaWx0ZXIuaAppbmRleCA4YjRkN2UxYzc5ZWU5N2NlNTI5ZjRjM2Y4MjljMzc5YzE1
ZGRhMjJkLi5iMDFlNTU1YzExNWY1YmY3ZDU2NmVkMjExZGU5NTBhNmVmMDVjMGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8U2Nyb2xsRXZlbnRBeGlz
PiBkb21pbmFudEF4aXMoKSBjb25zdDsKLSAgICAKKwogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2
b2lkIHVwZGF0ZVdpdGhEZWx0YShGbG9hdFNpemUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oCmluZGV4IDc1ZmFmYjMzYjM1MzBi
ZWY1ZGUxYmU2OWVjYmQ2MDZkNDk1ZjkxNWEuLmRiMDNlZTZmMjcwZGZjMjAxMGFiODEzZWEyNmIy
OTlmYjVkODc5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZl
bnREZWx0YUZpbHRlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZl
bnREZWx0YUZpbHRlck1hYy5oCkBAIC00NCw5ICs0NCwyMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgdm9pZCByZXNldCgpOworICAgIAorICAgIHZvaWQgY29tcHV0ZU1vbWVudHVtVmVsb2Np
dHkoV2FsbFRpbWUsIEZsb2F0U2l6ZSBmaWx0ZXJlZERlbHRhKTsKIAogICAgIFJldGFpblB0cjxf
TlNTY3JvbGxpbmdQcmVkb21pbmFudEF4aXNGaWx0ZXI+IG1fcHJlZG9taW5hbnRBeGlzRmlsdGVy
OwogICAgIFdhbGxUaW1lIG1faW5pdGlhbFdhbGxUaW1lOworICAgIAorICAgIHN0cnVjdCBFdmVu
dEluZm8geworICAgICAgICBTZWNvbmRzIGRlbGF5RnJvbVByZXZpb3VzOworICAgICAgICBXYWxs
VGltZSB0aW1lc3RhbXA7CisgICAgICAgIEZsb2F0U2l6ZSB3aGVlbERlbHRhOworICAgIH07Cisg
ICAgRGVxdWU8RXZlbnRJbmZvPiBtX3JlY2VudFdoZWVsRXZlbnRJbmZvOworCisgICAgV2FsbFRp
bWUgbV9sYXN0RXZlbnRUaW1lOyAvLyBUZXN0aW5nCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFG
aWx0ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0
ZXJNYWMubW0KaW5kZXggNDFjMTE1YTc4OGFmMTU4NjA2MmQwNjY1MDA4MmUyMGM3N2I2MDllMy4u
YTk5NWU1ZTZiZGIxOGUwZTc4NDMxMzgyMzk0ZmZjOWQ5ZWNmOGZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbQpAQCAtMjks
OCArMjksMTAgQEAKICNpbXBvcnQgIldoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oIgogCiAjaW1w
b3J0ICJGbG9hdFBvaW50LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsaW5nSW5wdXRGaWx0
ZXJTUEkuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00Myw4ICs0NSwxNCBAQCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6Oldo
ZWVsRXZlbnREZWx0YUZpbHRlck1hYygpCiAKIHZvaWQgV2hlZWxFdmVudERlbHRhRmlsdGVyTWFj
Ojp1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKIHsKLSAg
ICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpO
b25lKQorICAgIGF1dG8gZGVsdGFGcm9tTGFzdEV2ZW50ID0gZXZlbnQudGltZXN0YW1wKCkgLSBt
X2xhc3RFdmVudFRpbWU7CisgCisgICAgaWYgKGV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Tm9uZSkgeworICAgICAgICBhdXRvIGV2ZW50VmVsb2NpdHkg
PSBldmVudC5kZWx0YSgpIC8gZGVsdGFGcm9tTGFzdEV2ZW50LnNlY29uZHMoKTsKKyAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8PCAiV2hlZWxFdmVudERl
bHRhRmlsdGVyTWFjOjp1cGRhdGVGcm9tRXZlbnQoKSAiIDw8IGV2ZW50IDw8ICIgbW9tZW50dW0g
ZXZlbnQgdmVsb2NpdHkgIiA8PCBldmVudFZlbG9jaXR5KTsKKyAgICAgICAgbV9sYXN0RXZlbnRU
aW1lID0gZXZlbnQudGltZXN0YW1wKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICAv
LyBUaGUgYWJzb2x1dGUgdmFsdWUgb2YgdGltZXN0YW1wIGRvZXNuJ3QgbWF0dGVyOyB0aGUgZmls
dGVyIGxvb2tzIGF0IGRlbHRhcyBmcm9tIHRoZSBwcmV2aW91cyBldmVudC4KICAgICBhdXRvIHRp
bWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFtcCgpIC0gbV9pbml0aWFsV2FsbFRpbWU7CkBAIC01OSw4
ICs2NywxNiBAQCB2b2lkIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgICAgIE5TUG9pbnQgZmlsdGVy
ZWRWZWxvY2l0eVJlc3VsdDsKIAogICAgICAgICBbbV9wcmVkb21pbmFudEF4aXNGaWx0ZXIgZmls
dGVySW5wdXREZWx0YTp0b0Zsb2F0UG9pbnQoZXZlbnQuZGVsdGEoKSkgdGltZXN0YW1wOnRpbWVz
dGFtcC5zZWNvbmRzKCkgb3V0cHV0RGVsdGE6JmZpbHRlcmVkRGVsdGFSZXN1bHQgdmVsb2NpdHk6
JmZpbHRlcmVkVmVsb2NpdHlSZXN1bHRdOworICAgIAogICAgICAgICBtX2N1cnJlbnRGaWx0ZXJl
ZFZlbG9jaXR5ID0gdG9GbG9hdFNpemUoZmlsdGVyZWRWZWxvY2l0eVJlc3VsdCk7CiAgICAgICAg
IG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSB0b0Zsb2F0U2l6ZShmaWx0ZXJlZERlbHRhUmVzdWx0
KTsKKworICAgICAgICAvLyBBcHBLaXQncyB2ZWxvY2l0eSBmaWx0ZXJpbmcgaGFzIGlzc3VlcyA8
cmRhcjovLzg1MDM3MTAxPiBzbyB3ZSByb2xsIG91ciBvd24uCisgICAgICAgIGF1dG8gYXBwa2l0
VmVsb2NpdHkgPSBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5OworICAgICAgICBjb21wdXRlTW9t
ZW50dW1WZWxvY2l0eShldmVudC50aW1lc3RhbXAoKSwgbV9jdXJyZW50RmlsdGVyZWREZWx0YSk7
CisKKyAgICAgICAgYXV0byBldmVudFZlbG9jaXR5ID0gZXZlbnQuZGVsdGEoKSAvIGRlbHRhRnJv
bUxhc3RFdmVudC5zZWNvbmRzKCk7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmlt
YXRpb25zLCBzdHJlYW0gPDwgIldoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2
ZW50KCkgIiA8PCBldmVudCA8PCAiIGZpbHRlcmVkIHZlbG9jaXR5ICIgPDwgbV9jdXJyZW50Rmls
dGVyZWRWZWxvY2l0eSA8PCAiIChhcHBraXQgdmVsb2NpdHkgIiA8PCBhcHBraXRWZWxvY2l0eSA8
PCAiLCBldmVudCB2ZWxvY2l0eSAiIDw8IGV2ZW50VmVsb2NpdHkgPDwgIikgdGltZSBkZWx0YSAi
IDw8IGRlbHRhRnJvbUxhc3RFdmVudC5taWxsaXNlY29uZHMoKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbjoKQEAgLTcw
LDExICs4NiwzNyBAQCB2b2lkIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgICAgIHJlc2V0KCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KKyAgICAKKyAgICBtX2xhc3RFdmVudFRpbWUgPSBldmVudC50
aW1lc3RhbXAoKTsKK30KKwordm9pZCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OmNvbXB1dGVN
b21lbnR1bVZlbG9jaXR5KFdhbGxUaW1lIGV2ZW50VGltZXN0YW1wLCBGbG9hdFNpemUgZmlsdGVy
ZWREZWx0YSkKK3sKKyAgICBjb25zdGV4cHIgc2l6ZV90IHdoZWVsRXZlbnRIaXN0b3J5U2l6ZSA9
IDM7CisgICAgCisgICAgU2Vjb25kcyBkZWxheUZyb21QcmV2aW91c0V2ZW50OworICAgIGlmICgh
bV9yZWNlbnRXaGVlbEV2ZW50SW5mby5pc0VtcHR5KCkpCisgICAgICAgIGRlbGF5RnJvbVByZXZp
b3VzRXZlbnQgPSBzdGQ6Om1heChldmVudFRpbWVzdGFtcCAtIG1fcmVjZW50V2hlZWxFdmVudElu
Zm8ubGFzdCgpLnRpbWVzdGFtcCwgMF9zKTsKKyAgICAKKyAgICBtX3JlY2VudFdoZWVsRXZlbnRJ
bmZvLmFwcGVuZCh7IGRlbGF5RnJvbVByZXZpb3VzRXZlbnQsIGV2ZW50VGltZXN0YW1wLCBmaWx0
ZXJlZERlbHRhIH0pOworICAgIGlmIChtX3JlY2VudFdoZWVsRXZlbnRJbmZvLnNpemUoKSA+IHdo
ZWVsRXZlbnRIaXN0b3J5U2l6ZSkKKyAgICAgICAgbV9yZWNlbnRXaGVlbEV2ZW50SW5mby5yZW1v
dmVGaXJzdCgpOworCisgICAgYXV0byBldmVudENvdW50ID0gbV9yZWNlbnRXaGVlbEV2ZW50SW5m
by5zaXplKCk7CisgICAgaWYgKGV2ZW50Q291bnQgPCAyKSB7CisgICAgICAgIG1fY3VycmVudEZp
bHRlcmVkVmVsb2NpdHkgPSB7IH07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25z
dCBhdXRvJiBsYXN0RXZlbnRJbmZvID0gbV9yZWNlbnRXaGVlbEV2ZW50SW5mby5sYXN0KCk7Cisg
ICAgaWYgKGxhc3RFdmVudEluZm8uZGVsYXlGcm9tUHJldmlvdXMpCisgICAgICAgIG1fY3VycmVu
dEZpbHRlcmVkVmVsb2NpdHkgPSBsYXN0RXZlbnRJbmZvLndoZWVsRGVsdGEgLyBsYXN0RXZlbnRJ
bmZvLmRlbGF5RnJvbVByZXZpb3VzLnNlY29uZHMoKTsKIH0KIAogdm9pZCBXaGVlbEV2ZW50RGVs
dGFGaWx0ZXJNYWM6OnJlc2V0KCkKIHsKICAgICBbbV9wcmVkb21pbmFudEF4aXNGaWx0ZXIgcmVz
ZXRdOworICAgIG1fcmVjZW50V2hlZWxFdmVudEluZm8uY2xlYXIoKTsKICAgICBtX2N1cnJlbnRG
aWx0ZXJlZFZlbG9jaXR5ID0geyB9OwogICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSB7IH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDRiMWNmMjQzYTYzN2E4ZmM0MDUyNzRiZWM3
NTAyNzRlY2U4Yzk5YTAuLmM4Y2UzM2M1ZjE1YmQ2OGEwYjgwNDEzZmE3NDQwNTNjMGMwMGRmNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC02MCw2ICs2MCw4IEBAIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkKICAgICA6
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZSht
YWtlVW5pcXVlPFNjcm9sbGluZ1N0YXRlVHJlZT4odGhpcykpCiB7CisvLyAgICBMb2dTY3JvbGxp
bmcuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uOworLy8gICAgTG9nU2Nyb2xsQW5pbWF0
aW9ucy5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiB9CiAKIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6On5Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXggYmQ3
ZWVjMTgyMzA2Y2UxMTdhM2E3NjlmYTk5YzZlNjQ0MmNkMTQ3OC4uZDU1ZTU2ZDQ2YWM1ZjU4YWY2
ZjFlOTAwYjQ3NTU1ZTA0MTVkMTBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkK
ICNpZiBFTkFCTEUoS0lORVRJQ19TQ1JPTExJTkcpCiAgICAgdHMgPDwgIiBwaGFzZSBcIiIgPDwg
ZXZlbnQucGhhc2UoKSA8PCAiXCIgbW9tZW50dW0gcGhhc2UgXCIiIDw8IGV2ZW50Lm1vbWVudHVt
UGhhc2UoKSA8PCAiXCIiOwogI2VuZGlmCisgICAgdHMgPDwgIiB2ZWxvY2l0eSAiIDw8IGV2ZW50
LnNjcm9sbGluZ1ZlbG9jaXR5KCk7CiAKICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaAppbmRleCA3ZTc4YmY4
M2U2NDhlNTkyNWFiMzJiZTgwYTdiYTE5NmJhNTg3Y2MyLi5iN2U5MGZmYzBhMmFmNDViZDVlYTQ4
YzBiY2QzMjQzYmMwZDZlZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRpb25Nb21lbnR1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdGlvbk1vbWVudHVtLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIFNjcm9sbENs
YW1waW5nIGNsYW1waW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU2Nyb2xsQ2xhbXBpbmc6OlVu
Y2xhbXBlZDsgfQogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPiBtX21vbWVu
dHVtQ2FsY3VsYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAppbmRleCAzMWMxN2RiMDFmMzY2NzAwYjE0YjFiM2Ey
Mzk2ODRjNGYyNzRjOGJkLi5jZDA3ZmE1ZDRiM2U1NjAyYzEyZGZjOTlmNjNhN2UxOTcyNDZmMjg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNiArMTMxLDI0IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnJldGFyZ2V0QW5pbWF0ZWRTY3JvbGxCeShGbG9hdFNpemUgb2Zmc2V0KQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6
c3RvcEFuaW1hdGVkTm9uUnViYmVyYmFuZGluZ1Njcm9sbCgpCit7CisgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xs
ZXIgIiA8PCB0aGlzIDw8ICIgc3RvcEFuaW1hdGVkTm9uUnViYmVyYmFuZGluZ1Njcm9sbCIpOwor
ICAgIGlmICghbV9jdXJyZW50QW5pbWF0aW9uIHx8IGlzPFNjcm9sbEFuaW1hdGlvblJ1YmJlckJh
bmQ+KG1fY3VycmVudEFuaW1hdGlvbikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpczxT
Y3JvbGxBbmltYXRpb25Nb21lbnR1bT4obV9jdXJyZW50QW5pbWF0aW9uKSkgeworICAgICAgICAv
LyBJZiB0aGUgYW5pbWF0aW9uIGlzIGN1cnJlbnRseSB0cmlnZ2VyaW5nIHJ1YmJlcmJhbmRpbmcs
IGxldCBpdCBydW4uIElkZWFsbHkgd2UnZCBjaGVjayBpZiB0aGUgYW5pbWF0aW9uIHdpbGwgY2F1
c2UgcnViYmVyYmFuZGluZyBhdCBhbnkgdGltZSBpbiB0aGUgZnV0dXJlLgorICAgICAgICBhdXRv
IGN1cnJlbnRPZmZzZXQgPSBtX2N1cnJlbnRBbmltYXRpb24tPmN1cnJlbnRPZmZzZXQoKTsKKyAg
ICAgICAgYXV0byBleHRlbnRzID0gbV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpOworICAgICAgICBh
dXRvIGNvbnRyYWluZWRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2Vlbihl
eHRlbnRzLm1pbmltdW1TY3JvbGxPZmZzZXQoKSwgZXh0ZW50cy5tYXhpbXVtU2Nyb2xsT2Zmc2V0
KCkpOworICAgICAgICBpZiAoY3VycmVudE9mZnNldCAhPSBjb250cmFpbmVkT2Zmc2V0KQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY3VycmVudEFuaW1hdGlvbi0+c3RvcCgp
OworfQorCiB2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdG9wQW5pbWF0ZWRTY3Jv
bGwoKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwg
IlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHN0b3BBbmltYXRlZFNj
cm9sbCIpOwpAQCAtMTUxLDcgKzE2OSw3IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xs
ZXI6OnN0YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KGNvbnN0IEZsCiAgICAg
ICAgIG1fY3VycmVudEFuaW1hdGlvbiA9IG1ha2VVbmlxdWU8U2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0+KCp0aGlzKTsKIAogICAgIGJvb2wgc3RhcnRlZCA9IGRvd25jYXN0PFNjcm9sbEFuaW1hdGlv
bk1vbWVudHVtPigqbV9jdXJyZW50QW5pbWF0aW9uKS5zdGFydEFuaW1hdGVkU2Nyb2xsV2l0aElu
aXRpYWxWZWxvY2l0eShpbml0aWFsT2Zmc2V0LCBpbml0aWFsVmVsb2NpdHksIGluaXRpYWxEZWx0
YSwgZGVzdGluYXRpb25Nb2RpZmllcik7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1h
dGlvbnMsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0TW9tZW50
dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KCkgLSBhbmltYXRpb24gIiA8PCAqbV9jdXJyZW50
QW5pbWF0aW9uIDw8ICIgc3RhcnRlZCAiIDw8IHN0YXJ0ZWQpOworICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVy
OjpzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSgpIC0gYW5pbWF0aW9uICIg
PDwgKm1fY3VycmVudEFuaW1hdGlvbiA8PCAiIGluaXRpYWxWZWxvY2l0eSAiIDw8IGluaXRpYWxW
ZWxvY2l0eSA8PCAiIGluaXRpYWxEZWx0YSAiIDw8IGluaXRpYWxEZWx0YSA8PCAiIHN0YXJ0ZWQg
IiA8PCBzdGFydGVkKTsKICAgICByZXR1cm4gc3RhcnRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgKaW5kZXggMGI5
YzlmZmU0YTc4MWE1Y2VkYzY2ZTRmYzUwZDUwMWE3MDc4MDVhZC4uYjMzMmE3Mjg1YTE0YjIzODFl
YjllMzE4ZGU2Yzg0NDY2MGJjYTE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5oCkBAIC0xMzYsNyArMTM2LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvRGVzdGluYXRpb24oRmxvYXRQb2lu
dCBzdGFydE9mZnNldCwgRmxvYXRQb2ludCBkZXN0aW5hdGlvbk9mZnNldCk7CiAgICAgYm9vbCBy
ZXRhcmdldEFuaW1hdGVkU2Nyb2xsKEZsb2F0UG9pbnQgbmV3RGVzdGluYXRpb25PZmZzZXQpOwog
ICAgIGJvb2wgcmV0YXJnZXRBbmltYXRlZFNjcm9sbEJ5KEZsb2F0U2l6ZSk7CisKICAgICB2b2lk
IHN0b3BBbmltYXRlZFNjcm9sbCgpOworICAgIHZvaWQgc3RvcEFuaW1hdGVkTm9uUnViYmVyYmFu
ZGluZ1Njcm9sbCgpOwogCiAgICAgdm9pZCBzdG9wS2V5Ym9hcmRTY3JvbGxpbmcoKTsKIApAQCAt
MjUzLDExICsyNTUsMTMgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgbV9zdHJldGNoU2Nyb2xs
Rm9yY2U7CiAgICAgRmxvYXRTaXplIG1fbW9tZW50dW1WZWxvY2l0eTsKIAorICAgIEZsb2F0U2l6
ZSBtX2FjdGl2ZVBoYXNlVmVsb2NpdHk7IC8vIENvbWJpbmUgdGhpcywgbV9tb21lbnR1bVZlbG9j
aXR5PworICAgIEZsb2F0UG9pbnQgbV9zY3JvbGxEZXN0aW5hdGlvblZpYU1vbWVudHVtRXZlbnRz
OyAvLyBUZXN0aW5nCisKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzIHsgZmFs
c2UgfTsKICAgICBib29sIG1faWdub3JlTW9tZW50dW1TY3JvbGxzIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNSdWJiZXJCYW5kaW5nIHsgZmFsc2UgfTsKIAotICAgIEZsb2F0U2l6ZSBtX2RyYWdF
bmRlZFNjcm9sbGluZ1ZlbG9jaXR5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlclRpbWVyPiBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXI7CiAKICNp
ZiBIQVZFKFJVQkJFUl9CQU5ESU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1tCmluZGV4IDUyZTFhNTk1OThi
YjNlMzQ5NmZkMDFiMjk4NzYzMjg4MDZkNDNmMTkuLmQxZGZjMjI0MmE1NWY3YWM2Nzk5M2I4YWEz
NzNkYjMwMTZkNzU5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiU2Nyb2xsQW5pbWF0aW9uUnVi
YmVyQmFuZC5oIgogI2ltcG9ydCAiU2Nyb2xsRXh0ZW50cy5oIgorI2ltcG9ydCAiV2hlZWxFdmVu
dERlbHRhRmlsdGVyLmgiCiAjaW1wb3J0ICJXaGVlbEV2ZW50VGVzdE1vbml0b3IuaCIKICNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsVmlld1NQSS5oPgogI2ltcG9ydCA8c3lzL3N5c2N0bC5o
PgpAQCAtMTEyLDEzICsxMTMsMjAgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94U2lkZT4gYWZm
ZWN0ZWRTaWRlT25Eb21pbmFudEF4aXMoRmxvYXRTaXplIGRlbHRhKQogCiBib29sIFNjcm9sbGlu
Z0VmZmVjdHNDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKIHsKKyAgICBpZiAoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91
bGRBcHBseUZpbHRlcmluZ0ZvckV2ZW50KHdoZWVsRXZlbnQpKQorICAgICAgICBtX2FjdGl2ZVBo
YXNlVmVsb2NpdHkgPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpOyAvLyBOb3RlIHRo
YXQgZXZlbnQgZGVsdGEgaXMgcmV2ZXJzZWQgZnJvbSBzY3JvbGwgZGlyZWN0aW9uLgorCiAgICAg
aWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkKKyAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpID09
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkg
PT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkgeworICAgICAgICBzdG9wQW5p
bWF0ZWRTY3JvbGwoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGlmICh3
aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuKSB7Cisg
ICAgICAgIHN0b3BBbmltYXRlZFNjcm9sbCgpOworCiAgICAgICAgIC8vIEZJWE1FOiBUcnlpbmcg
dG8gZGVjaWRlIGlmIGEgZ2VzdHVyZSBpcyBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGF0IHRoZSAi
YmVnYW4iIHBoYXNlIGlzIHZlcnkgZXJyb3ItcHJvbmUuCiAgICAgICAgIGF1dG8gaG9yaXpvbnRh
bFNpZGUgPSBTY3JvbGxhYmxlQXJlYTo6dGFyZ2V0U2lkZUZvclNjcm9sbERlbHRhKC13aGVlbEV2
ZW50LmRlbHRhKCksIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCk7CiAgICAgICAgIGlmICho
b3Jpem9udGFsU2lkZSAmJiBtX2NsaWVudC5pc1Bpbm5lZE9uU2lkZSgqaG9yaXpvbnRhbFNpZGUp
ICYmICFzaG91bGRSdWJiZXJCYW5kT25TaWRlKCpob3Jpem9udGFsU2lkZSkpCkBAIC0xNTAsNiAr
MTU4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAorICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZTo6RW5kZWQpIHsKKworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0
IGhhdmUgdG8gc3RvcCB0aGUgbW9tZW50dW0gc2Nyb2xsIGFuaW1hdGlvbiBoZXJlLCBidXQgaW4g
bWFjT1MgTW9udGVyZXkgd2UgZG9uJ3QgZ2V0IHRoZSBNYXlCZWdpbgorICAgICAgICAvLyBldmVu
dHMgdGhhdCB3ZSdkIG5vcm1hbGx5IHVzZSB0byBzdG9wIGEgbW9tZW50dW0gc2Nyb2xsIG9uIGZp
bmdlcnMgZG93biAocmRhcjovLzg0ODkwNjQwKS4KKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8PCAiTW9tZW50dW0gcGhhc2UgZW5kZWQsIHN0b3BwaW5n
IGFueSBub24tcnViYmVyYmFuZCBzY3JvbGwgYW5pbWF0aW9ucyIpOworICAgICAgICBzdG9wQW5p
bWF0ZWROb25SdWJiZXJiYW5kaW5nU2Nyb2xsKCk7CisgICAgfQorCiAgICAgYm9vbCBpc01vbWVu
dHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2U6Ok5vbmUpOwogICAgIGlmIChtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyAm
JiAoaXNNb21lbnR1bVNjcm9sbEV2ZW50IHx8IG1faXNBbmltYXRpbmdSdWJiZXJCYW5kKSkgewog
ICAgICAgICBpZiAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2U6OkVuZGVkKSB7CkBAIC0xNzcsOSArMTkzLDIxIEBAIGJvb2wgU2Nyb2xsaW5nRWZm
ZWN0c0NvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlCiAgICAgZGVsdGEgPSBkZWx0YUFsaWduZWRUb0RvbWluYW50QXhpcyhkZWx0YSk7CiAK
ICAgICBhdXRvIG1vbWVudHVtUGhhc2UgPSB3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKTsKLSAg
ICBpZiAoIW1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlOjpCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkKSkKKyAgICBpZiAoIW1fbW9tZW50dW1TY3JvbGxJblBy
b2dyZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpCZWdh
biB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkKSkg
ewogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKKyAgICAgICAg
Ly8gVGVzdGluZworICAgICAgICBtX3Njcm9sbERlc3RpbmF0aW9uVmlhTW9tZW50dW1FdmVudHMg
PSBtX2NsaWVudC5zY3JvbGxPZmZzZXQoKTsKKworICAgICAgICBzdGFydE1vbWVudHVtU2Nyb2xs
V2l0aEluaXRpYWxWZWxvY2l0eShtX2NsaWVudC5zY3JvbGxPZmZzZXQoKSwgbV9hY3RpdmVQaGFz
ZVZlbG9jaXR5LCAtd2hlZWxFdmVudC5kZWx0YSgpLCBbXShjb25zdCBGbG9hdFBvaW50JiB0YXJn
ZXRPZmZzZXQpIHsgcmV0dXJuIHRhcmdldE9mZnNldDsgfSk7CisgICAgfQorCisgICAgaWYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQpIHsKKyAgICAg
ICAgbV9zY3JvbGxEZXN0aW5hdGlvblZpYU1vbWVudHVtRXZlbnRzIC09IHdoZWVsRXZlbnQuZGVs
dGEoKTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8
PCAiSWdub3JpbmcgbW9tZW50dW0gY2hhbmdlZCBldmVudCAiIDw8IHdoZWVsRXZlbnQgPDwgIiAo
d291bGQgaGF2ZSBzY3JvbGxlZCB0byAiIDw8IG1fc2Nyb2xsRGVzdGluYXRpb25WaWFNb21lbnR1
bUV2ZW50cyA8PCAiKSIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29s
IHNob3VsZFN0cmV0Y2ggPSBmYWxzZTsKICAgICBhdXRvIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQu
dGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9p
blNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpIHsKQEAgLTM5Myw2
ICs0MjEsMTEgQEAgdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcFJ1YmJlckJh
bmRpbmcoKQogCiBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydFJ1YmJlckJh
bmRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsT3ZlcnNjcm9sbCkK
IHsKKyAgICBpZiAoaXM8U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+KG1fY3VycmVudEFuaW1hdGlv
bikgJiYgbV9jdXJyZW50QW5pbWF0aW9uLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250
cm9sbGVyOjpzdGFydFJ1YmJlckJhbmRBbmltYXRpb24oKSAtIG1vbWVudHVtIGFuaW1hdGlvbiBp
cyBwcmVzZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAobV9j
dXJyZW50QW5pbWF0aW9uKQogICAgICAgICBtX2N1cnJlbnRBbmltYXRpb24tPnN0b3AoKTsKIApA
QCAtNDM5LDkgKzQ3Miw2IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0
UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkKICAgICBib29sIHdpbGxPdmVyc2Nyb2xs
ID0gdGFyZ2V0T2Zmc2V0ICE9IGNvbnRyYWluZWRPZmZzZXQ7CiAKICAgICBhdXRvIHN0cmV0Y2hB
bW91bnQgPSBtX2NsaWVudC5zdHJldGNoQW1vdW50KCk7Ci0KLSAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6
c3RhcnRSdWJiZXJCYW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRBbmltYXRp
b25SdW5uaW5nICIgPDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNoQW1vdW50
ICIgPDwgc3RyZXRjaEFtb3VudCA8PCAiIHRhcmdldE9mZnNldCAiIDw8IHRhcmdldE9mZnNldCk7
Ci0KICAgICBpZiAoc3RyZXRjaEFtb3VudC5pc1plcm8oKSAmJiAhd2lsbE92ZXJzY3JvbGwpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtNDU5LDYgKzQ4OSw3IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkKICAgICBp
ZiAoIW1fY2xpZW50LmFsbG93c1ZlcnRpY2FsU2Nyb2xsaW5nKCkpCiAgICAgICAgIGluaXRpYWxW
ZWxvY2l0eS5zZXRIZWlnaHQoMCk7CiAKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsQW5pbWF0
aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRSdWJiZXJC
YW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRBbmltYXRpb25SdW5uaW5nICIg
PDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNoQW1vdW50ICIgPDwgc3RyZXRj
aEFtb3VudCA8PCAiIGNvbnRyYWluZWRPZmZzZXQgIiA8PCBjb250cmFpbmVkT2Zmc2V0IDw8ICIg
aW5pdGlhbFZlbG9jaXR5ICIgPDwgaW5pdGlhbFZlbG9jaXR5KTsKICAgICBzdGFydFJ1YmJlckJh
bmRBbmltYXRpb24oY29udHJhaW5lZE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBzdHJldGNoQW1v
dW50KTsKIH0KIApAQCAtNjM1LDE4ICs2NjYsMTYgQEAgYm9vbCBTY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2gK
ICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3JvbGxpbmc6CiAgICAgICAgIHN0b3BT
Y3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAgICAgICAgIG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0
aW9uVG9Vc2VySW50ZXJhY3Rpb25TdGF0ZSgpOwotICAgICAgICBtX2RyYWdFbmRlZFNjcm9sbGlu
Z1ZlbG9jaXR5ID0gLXdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHkoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsRW5kOgogICAgICAgICBp
ZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0ZShtX2Ns
aWVudC5zY3JvbGxFeHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVu
dC5zY3JvbGxPZmZzZXQoKSkpCiAgICAgICAgICAgICBzdGFydFNjcm9sbFNuYXBBbmltYXRpb24o
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpNb21lbnR1bVNj
cm9sbEJlZ2luOgotICAgICAgICBpZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub0ds
aWRlQW5pbWF0aW9uU3RhdGUobV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpLCBtX2NsaWVudC5wYWdl
U2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fZHJhZ0VuZGVkU2Nyb2xs
aW5nVmVsb2NpdHksIEZsb2F0U2l6ZSgtd2hlZWxFdmVudC5kZWx0YVgoKSwgLXdoZWVsRXZlbnQu
ZGVsdGFZKCkpKSkgeworICAgICAgICBpZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25U
b0dsaWRlQW5pbWF0aW9uU3RhdGUobV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpLCBtX2NsaWVudC5w
YWdlU2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fYWN0aXZlUGhhc2VW
ZWxvY2l0eSwgLXdoZWVsRXZlbnQuZGVsdGEoKSkpIHsKICAgICAgICAgICAgIHN0YXJ0U2Nyb2xs
U25hcEFuaW1hdGlvbigpOwogICAgICAgICAgICAgaXNNb21lbnR1bVNjcm9sbGluZyA9IHRydWU7
CiAgICAgICAgIH0KLSAgICAgICAgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSA9IHsgfTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpNb21lbnR1bVNjcm9s
bGluZzoKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsRW5kOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443763</attachid>
            <date>2021-11-09 18:22:57 -0800</date>
            <delta_ts>2021-11-13 18:39:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232897-20211109182256.patch</filename>
            <type>text/plain</type>
            <size>19955</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MwYzA2NjM2MTc4MjI5
ZWM3NGQ1MWUyZGI1OGQ2NzY2MjljMTJmZS4uNDA2NDdkZThiNzNkZTdmMmMwMTRmN2VmOWEzYzNj
YzYxZTdhZGQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJ1biBhIFNjcm9s
bEFuaW1hdGlvbk1vbWVudHVtIGZvciB0aGUgbW9tZW50dW0gcGhhc2Ugb2YgYSBzY3JvbGwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDx3cml0ZSBtZT4K
KworICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlcjo6c2hvdWxkQXBwbHlGaWx0ZXJpbmdGb3JFdmVu
dCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaDoKKyAgICAgICAgKiBw
YWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaDoKKyAgICAgICAgKiBwYWdlL21hYy9X
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
RGVsdGFGaWx0ZXJNYWM6OnVwZGF0ZUZyb21FdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdG9wQW5pbWF0
ZWROb25SdWJiZXJiYW5kaW5nU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Vm
ZmVjdHNDb250cm9sbGVyOjpzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjptb21lbnR1bVNjcm9sbGlu
Z0FuaW1hdG9yRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGlu
Z0VmZmVjdHNDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRSdWJiZXJCYW5kQW5p
bWF0aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0Nv
bnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCk6CisKIDIwMjEtMTEtMDkg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjg1MjQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2
ZW50RGVsdGFGaWx0ZXIuY3BwCmluZGV4IDM2ZGI2YmE3OGQ3OWU2YjJlYzQ5Y2EwOTVhYTg3OGY2
MzI3MTc3YjkuLjI1M2FkNzE3NTE0ZjMxMWM5MWQwMDg4MzgyOTc1YTQwMmFjYWVmMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKQEAgLTU0LDgg
KzU0LDEwIEBAIGJvb2wgV2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91bGRBcHBseUZpbHRlcmlu
Z0ZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVuCiB7CiAjaWYgRU5BQkxFKEtJTkVUSUNf
U0NST0xMSU5HKQogICAgIC8vIE1heWJlIGl0J3MgYSBwZXItcGxhdGZvcm0gZGVjaXNpb24gYWJv
dXQgd2hpY2ggZXZlbnQgcGhhc2VzIGdldCBmaWx0ZXJlZC4gSWRlYWxseSB3ZSdkIGZpbHRlciBt
b21lbnR1bSBldmVudHMgdG9vIChidXQgdGhhdCBicmVha3Mgc29tZSBkaWFnb25hbCBzY3JvbGxp
bmcgY2FzZXMpLgorICAgIC8vIElkZWFsbHkgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIgd291
bGQgYXNrIFdoZWVsRXZlbnREZWx0YUZpbHRlciBkaXJlY3RseSBmb3IgdGhlIGZpbHRlcmVkIHZl
bG9jaXR5LCByYXRoZXIgdGhhbiBzZW5kaW5nIHRoZSB2ZWxvY2l0eSB2aWEgUGxhdGZvcm1XaGVl
bEV2ZW50LgorICAgIC8vIEZJWE1FOiBNYWtlIHN1cmUgdGhpcyBkb2Vzbid0IGJyZWFrIG1haW4g
dGhyZWFkIHVzZSBvZiBmaWx0ZXJlZCB2ZWxvY2l0eS4KICAgICBhdXRvIHBoYXNlID0gZXZlbnQu
cGhhc2UoKTsKLSAgICByZXR1cm4gcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJl
Z2FuIHx8IHBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkOworICAgIHJl
dHVybiBwaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgcGhhc2UgPT0g
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQgfHwgKHBoYXNlID09IFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlOjpOb25lICYmIGV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZTo6QmVnYW4pOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCmluZGV4IDhiNGQ3
ZTFjNzllZTk3Y2U1MjlmNGMzZjgyOWMzNzljMTVkZGEyMmQuLmIwMWU1NTVjMTE1ZjViZjdkNTY2
ZWQyMTFkZTk1MGE2ZWYwNWMwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50
RGVsdGFGaWx0ZXIuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
c3RkOjpvcHRpb25hbDxTY3JvbGxFdmVudEF4aXM+IGRvbWluYW50QXhpcygpIGNvbnN0OwotICAg
IAorCiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgdXBkYXRlV2l0aERlbHRhKEZsb2F0U2l6
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0
YUZpbHRlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmls
dGVyTWFjLmgKaW5kZXggNzVmYWZiMzNiMzUzMGJlZjVkZTFiZTY5ZWNiZDYwNmQ0OTVmOTE1YS4u
YzFmNTY5NDEzMjRmMDJkOTkwOWY4OWNhYzNlZmZjNzFjMmI4OWM3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxfTlNTY3JvbGxpbmdQcmVkb21pbmFu
dEF4aXNGaWx0ZXI+IG1fcHJlZG9taW5hbnRBeGlzRmlsdGVyOwogICAgIFdhbGxUaW1lIG1faW5p
dGlhbFdhbGxUaW1lOworICAgIFdhbGxUaW1lIG1fbGFzdEV2ZW50VGltZXN0YW1wOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCmluZGV4IDQxYzExNWE3ODhhZjE1ODYwNjJkMDY2
NTAwODJlMjBjNzdiNjA5ZTMuLmYxN2RlMDk2MDFlMjYzNmRhY2NlNDdiNDEyNDk3YjEwNmVlZTQy
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZp
bHRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFG
aWx0ZXJNYWMubW0KQEAgLTQzLDE3ICs0MywzOCBAQCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6
OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYygpCiAKIHZvaWQgV2hlZWxFdmVudERlbHRhRmlsdGVy
TWFjOjp1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKIHsK
LSAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpOb25lKQorICAgIGF1dG8gbW9tZW50dW1QaGFzZSA9IGV2ZW50Lm1vbWVudHVtUGhhc2UoKTsK
KyAgICBpZiAobW9tZW50dW1QaGFzZSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Tm9uZSkg
eworICAgICAgICBpZiAobW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6
QmVnYW4pIHsKKyAgICAgICAgICAgIGF1dG8gZGVsdGFGcm9tTGFzdEV2ZW50ID0gc3RkOjptYXgo
ZXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RFdmVudFRpbWVzdGFtcCwgMl9tcyk7IC8vIDJtcyBm
bG9vciBpcyByZWFsbHkganVzdCB0byBhdm9pZCBkaXZpZGUgYnkgemVyby4KKyAgICAgICAgICAg
IGF1dG8gZXZlbnRWZWxvY2l0eSA9IGV2ZW50LmRlbHRhKCkgLyBkZWx0YUZyb21MYXN0RXZlbnQu
c2Vjb25kcygpOworCisgICAgICAgICAgICAvLyBldmVudC5kZWx0YSgpIGhhcyBwb3RlbnRpYWwg
Y3Jvc3MtYXhpcyBkcmlmdC4gVXNlIEFwcEtpdC1maWx0ZXJlZCBkZWx0YXMgdG8gYXBwbHkgdGhl
IGF4aXMgbG9ja2luZyBkb25lIGJ5IG1fcHJlZG9taW5hbnRBeGlzRmlsdGVyLgorICAgICAgICAg
ICAgaWYgKCFtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5LndpZHRoKCkpCisgICAgICAgICAgICAg
ICAgZXZlbnRWZWxvY2l0eS5zZXRXaWR0aCgwKTsKKyAgICAgICAgICAgIGlmICghbV9jdXJyZW50
RmlsdGVyZWRWZWxvY2l0eS5oZWlnaHQoKSkKKyAgICAgICAgICAgICAgICBldmVudFZlbG9jaXR5
LnNldEhlaWdodCgwKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGZ1ZGdlIHRvIGdldCBt
b21lbnR1bSBhbmltYXRpb25zIGRyaXZlbiB2aWEgdG8gU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yIHRvIGFwcHJveGltYXRlbHkgbWF0Y2ggZXZlbnQtZHJpdmVuIHNjcm9sbGluZy4gU2VlIDxy
ZGFyOi8vODUwMzcxMDE+LgorICAgICAgICAgICAgY29uc3RleHByIGZsb2F0IHZlbG9jaXR5TXVs
dGlwbGllckZvclNjcm9sbGluZ01vbWVudHVtID0gMS4zOyAvLyBEZXJpdmVkIGVtcGlyaWNhbGx5
LgorICAgICAgICAgICAgbV9jdXJyZW50RmlsdGVyZWRWZWxvY2l0eSA9IHZlbG9jaXR5TXVsdGlw
bGllckZvclNjcm9sbGluZ01vbWVudHVtICogZXZlbnRWZWxvY2l0eTsKKyAgICAgICAgfQorCisg
ICAgICAgIG1fbGFzdEV2ZW50VGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1wKCk7CiAgICAgICAg
IHJldHVybjsKKyAgICB9CiAKICAgICAvLyBUaGUgYWJzb2x1dGUgdmFsdWUgb2YgdGltZXN0YW1w
IGRvZXNuJ3QgbWF0dGVyOyB0aGUgZmlsdGVyIGxvb2tzIGF0IGRlbHRhcyBmcm9tIHRoZSBwcmV2
aW91cyBldmVudC4KICAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFtcCgpIC0gbV9p
bml0aWFsV2FsbFRpbWU7CiAKICAgICBzd2l0Y2ggKGV2ZW50LnBoYXNlKCkpIHsKICAgICBjYXNl
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpOb25lOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2U6OkVuZGVkOgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUGxhdGZvcm1XaGVl
bEV2ZW50UGhhc2U6OkJlZ2FuOgorICAgICAgICByZXNldCgpOworICAgICAgICBGQUxMVEhST1VH
SDsKICAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkOiB7CiAgICAgICAg
IE5TUG9pbnQgZmlsdGVyZWREZWx0YVJlc3VsdDsKICAgICAgICAgTlNQb2ludCBmaWx0ZXJlZFZl
bG9jaXR5UmVzdWx0OwpAQCAtNjYsMTAgKzg3LDExIEBAIHZvaWQgV2hlZWxFdmVudERlbHRhRmls
dGVyTWFjOjp1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkK
ICAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbjoKICAgICBjYXNlIFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDYW5jZWxsZWQ6CiAgICAgY2FzZSBQbGF0Zm9ybVdoZWVs
RXZlbnRQaGFzZTo6U3RhdGlvbmFyeToKLSAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpFbmRlZDoKICAgICAgICAgcmVzZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAg
bV9sYXN0RXZlbnRUaW1lc3RhbXAgPSBldmVudC50aW1lc3RhbXAoKTsKIH0KIAogdm9pZCBXaGVl
bEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCmluZGV4IGJkN2VlYzE4MjMwNmNlMTE3YTNhNzY5ZmE5
OWM2ZTY0NDJjZDE0NzguLmQ1NWU1NmQ0NmFjNWY1OGFmNmYxZTkwMGI0NzU1NWUwNDE1ZDEwZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcApA
QCAtMTA4LDYgKzEwOCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAjaWYgRU5BQkxFKEtJTkVUSUNfU0NS
T0xMSU5HKQogICAgIHRzIDw8ICIgcGhhc2UgXCIiIDw8IGV2ZW50LnBoYXNlKCkgPDwgIlwiIG1v
bWVudHVtIHBoYXNlIFwiIiA8PCBldmVudC5tb21lbnR1bVBoYXNlKCkgPDwgIlwiIjsKICNlbmRp
ZgorICAgIHRzIDw8ICIgdmVsb2NpdHkgIiA8PCBldmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpOwog
CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdGlvbk1vbWVudHVtLmgKaW5kZXggN2U3OGJmODNlNjQ4ZTU5MjVhYjMyYmU4MGE3YmEx
OTZiYTU4N2NjMi4uYjdlOTBmZmMwYTJhZjQ1YmQ1ZWE0OGMwYmNkMzI0M2JjMGQ2ZWZiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5o
CkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEV4dGVudHMo
KSBmaW5hbDsKIAogcHJpdmF0ZToKKyAgICBTY3JvbGxDbGFtcGluZyBjbGFtcGluZygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQ7IH0KICAgICBTdHJpbmcg
ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcj4gbV9tb21lbnR1bUNhbGN1bGF0b3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5j
cHAKaW5kZXggMzFjMTdkYjAxZjM2NjcwMGIxNGIxYjNhMjM5Njg0YzRmMjc0YzhiZC4uMzhiOGMz
MDJjODEwZGFjOGQ5M2IxZDNkMDVkMGZhODMxOGExOWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcApAQCAtNDks
NiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcihTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
ckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9tb21lbnR1
bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxlZChjbGllbnQubW9tZW50dW1TY3JvbGxpbmdBbmltYXRv
ckVuYWJsZWQoKSkKIHsKIH0KIApAQCAtMTMxLDYgKzEzMiwzMCBAQCBib29sIFNjcm9sbGluZ0Vm
ZmVjdHNDb250cm9sbGVyOjpyZXRhcmdldEFuaW1hdGVkU2Nyb2xsQnkoRmxvYXRTaXplIG9mZnNl
dCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xs
ZXI6OnN0b3BBbmltYXRlZE5vblJ1YmJlcmJhbmRpbmdTY3JvbGwoKQoreworICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250
cm9sbGVyICIgPDwgdGhpcyA8PCAiIHN0b3BBbmltYXRlZE5vblJ1YmJlcmJhbmRpbmdTY3JvbGwi
KTsKKworICAgIGlmICghbV9jdXJyZW50QW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyNp
ZiBIQVZFKFJVQkJFUl9CQU5ESU5HKQorICAgIGlmIChpczxTY3JvbGxBbmltYXRpb25SdWJiZXJC
YW5kPihtX2N1cnJlbnRBbmltYXRpb24pKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKworICAg
IGlmIChpczxTY3JvbGxBbmltYXRpb25Nb21lbnR1bT4obV9jdXJyZW50QW5pbWF0aW9uKSkgewor
ICAgICAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGlzIGN1cnJlbnRseSB0cmlnZ2VyaW5nIHJ1YmJl
cmJhbmRpbmcsIGxldCBpdCBydW4uIElkZWFsbHkgd2UnZCBjaGVjayBpZiB0aGUgYW5pbWF0aW9u
IHdpbGwgY2F1c2UgcnViYmVyYmFuZGluZyBhdCBhbnkgdGltZSBpbiB0aGUgZnV0dXJlLgorICAg
ICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBtX2N1cnJlbnRBbmltYXRpb24tPmN1cnJlbnRPZmZz
ZXQoKTsKKyAgICAgICAgYXV0byBleHRlbnRzID0gbV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpOwor
ICAgICAgICBhdXRvIGNvbnRyYWluZWRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0LmNvbnN0cmFpbmVk
QmV0d2VlbihleHRlbnRzLm1pbmltdW1TY3JvbGxPZmZzZXQoKSwgZXh0ZW50cy5tYXhpbXVtU2Ny
b2xsT2Zmc2V0KCkpOworICAgICAgICBpZiAoY3VycmVudE9mZnNldCAhPSBjb250cmFpbmVkT2Zm
c2V0KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY3VycmVudEFuaW1hdGlv
bi0+c3RvcCgpOworfQorCiB2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdG9wQW5p
bWF0ZWRTY3JvbGwoKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBz
dHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHN0b3BB
bmltYXRlZFNjcm9sbCIpOwpAQCAtMTUxLDcgKzE3Niw3IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnN0YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KGNvbnN0
IEZsCiAgICAgICAgIG1fY3VycmVudEFuaW1hdGlvbiA9IG1ha2VVbmlxdWU8U2Nyb2xsQW5pbWF0
aW9uTW9tZW50dW0+KCp0aGlzKTsKIAogICAgIGJvb2wgc3RhcnRlZCA9IGRvd25jYXN0PFNjcm9s
bEFuaW1hdGlvbk1vbWVudHVtPigqbV9jdXJyZW50QW5pbWF0aW9uKS5zdGFydEFuaW1hdGVkU2Ny
b2xsV2l0aEluaXRpYWxWZWxvY2l0eShpbml0aWFsT2Zmc2V0LCBpbml0aWFsVmVsb2NpdHksIGlu
aXRpYWxEZWx0YSwgZGVzdGluYXRpb25Nb2RpZmllcik7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0
YXJ0TW9tZW50dW1TY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KCkgLSBhbmltYXRpb24gIiA8PCAq
bV9jdXJyZW50QW5pbWF0aW9uIDw8ICIgc3RhcnRlZCAiIDw8IHN0YXJ0ZWQpOworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHND
b250cm9sbGVyOjpzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSgpIC0gYW5p
bWF0aW9uICIgPDwgKm1fY3VycmVudEFuaW1hdGlvbiA8PCAiIGluaXRpYWxWZWxvY2l0eSAiIDw8
IGluaXRpYWxWZWxvY2l0eSA8PCAiIGluaXRpYWxEZWx0YSAiIDw8IGluaXRpYWxEZWx0YSA8PCAi
IHN0YXJ0ZWQgIiA8PCBzdGFydGVkKTsKICAgICByZXR1cm4gc3RhcnRlZDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgK
aW5kZXggNjBiYmNkNWE0NzI3NDEyMDdlNTIzYjUyNzNlMDEwMjk3ZDllOTI2Mi4uMGQxOTFhMzcw
NjFmNGYzZDFhZmZlOGJiNDkyNDcxYmVmMzZkMDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5oCkBAIC0xMzgsNyArMTM4
LDkgQEAgcHVibGljOgogICAgIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvRGVzdGluYXRpb24o
RmxvYXRQb2ludCBzdGFydE9mZnNldCwgRmxvYXRQb2ludCBkZXN0aW5hdGlvbk9mZnNldCk7CiAg
ICAgYm9vbCByZXRhcmdldEFuaW1hdGVkU2Nyb2xsKEZsb2F0UG9pbnQgbmV3RGVzdGluYXRpb25P
ZmZzZXQpOwogICAgIGJvb2wgcmV0YXJnZXRBbmltYXRlZFNjcm9sbEJ5KEZsb2F0U2l6ZSk7CisK
ICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpOworICAgIHZvaWQgc3RvcEFuaW1hdGVkTm9u
UnViYmVyYmFuZGluZ1Njcm9sbCgpOwogCiAgICAgdm9pZCBzdG9wS2V5Ym9hcmRTY3JvbGxpbmco
KTsKIApAQCAtMjIxLDYgKzIyMyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0T3JTdG9w
QW5pbWF0aW9uQ2FsbGJhY2tzKCk7CiAKKyAgICBib29sIG1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0
b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5h
YmxlZDsgfQorCiAgICAgLy8gU2Nyb2xsQW5pbWF0aW9uQ2xpZW50CiAgICAgdm9pZCBzY3JvbGxB
bmltYXRpb25EaWRVcGRhdGUoU2Nyb2xsQW5pbWF0aW9uJiwgY29uc3QgRmxvYXRQb2ludCYgLyog
Y3VycmVudE9mZnNldCAqLykgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxBbmltYXRpb25XaWxsU3Rh
cnQoU2Nyb2xsQW5pbWF0aW9uJikgZmluYWw7CkBAIC0yNDgsNiArMjUyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNBbmltYXRpbmdTY3JvbGxTbmFwIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNBbmltYXRpbmdLZXlib2FyZFNjcm9sbGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luU2Ny
b2xsR2VzdHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX21vbWVudHVtU2Nyb2xsaW5nQW5pbWF0
b3JFbmFibGVkIHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBXYWxsVGltZSBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKQEAgLTI1NSwxMSArMjYwLDE2IEBAIHByaXZh
dGU6CiAgICAgRmxvYXRTaXplIG1fc3RyZXRjaFNjcm9sbEZvcmNlOwogICAgIEZsb2F0U2l6ZSBt
X21vbWVudHVtVmVsb2NpdHk7CiAKKyAgICBGbG9hdFNpemUgbV9zY3JvbGxpbmdWZWxvY2l0eUZv
ck1vbWVudHVtQW5pbWF0aW9uOyAvLyBEbyB3ZSBuZWVkIGJvdGggdGhpcywgbV9zY3JvbGxpbmdW
ZWxvY2l0eUZvclNjcm9sbFNuYXAgYW5kIG1fbW9tZW50dW1WZWxvY2l0eT8KKyAgICBGbG9hdFNp
emUgbV9zY3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXA7CisjaWYgIUxPR19ESVNBQkxFRAor
ICAgIEZsb2F0UG9pbnQgbV9ldmVudERyaXZlblNjcm9sbE9mZnNldDsKKyNlbmRpZgorCiAgICAg
Ym9vbCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ln
bm9yZU1vbWVudHVtU2Nyb2xscyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUnViYmVyQmFuZGlu
ZyB7IGZhbHNlIH07CiAKLSAgICBGbG9hdFNpemUgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0
eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJUaW1lcj4g
bV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyOwogCiAjaWYgSEFWRShSVUJCRVJfQkFORElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdF
ZmZlY3RzQ29udHJvbGxlci5tbQppbmRleCA1MmUxYTU5NTk4YmIzZTM0OTZmZDAxYjI5ODc2MzI4
ODA2ZDQzZjE5Li4yMTZmZWUzZjJmZTRhYmU0YTkwOWNmMmYxYjkwNzliMzg1NmNlZTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ0VmZmVj
dHNDb250cm9sbGVyLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJQbGF0Zm9ybVdoZWVs
RXZlbnQuaCIKICNpbXBvcnQgIlNjcm9sbEFuaW1hdGlvblJ1YmJlckJhbmQuaCIKICNpbXBvcnQg
IlNjcm9sbEV4dGVudHMuaCIKKyNpbXBvcnQgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2lt
cG9ydCAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1Nj
cm9sbFZpZXdTUEkuaD4KICNpbXBvcnQgPHN5cy9zeXNjdGwuaD4KQEAgLTExNSwxMCArMTE2LDE2
IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlCiAgICAgaWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsU25hcCh3aGVlbEV2ZW50KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8
fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxl
ZCkKKyAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2U6OkNhbmNlbGxlZCkgeworICAgICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVu
YWJsZWQoKSkKKyAgICAgICAgICAgIHN0b3BBbmltYXRlZFNjcm9sbCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQogCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4pIHsKKyAgICAgICAgaWYgKG1vbWVudHVtU2Nyb2xsaW5n
QW5pbWF0b3JFbmFibGVkKCkpCisgICAgICAgICAgICBzdG9wQW5pbWF0ZWRTY3JvbGwoKTsKKwog
ICAgICAgICAvLyBGSVhNRTogVHJ5aW5nIHRvIGRlY2lkZSBpZiBhIGdlc3R1cmUgaXMgaG9yaXpv
bnRhbCBvciB2ZXJ0aWNhbCBhdCB0aGUgImJlZ2FuIiBwaGFzZSBpcyB2ZXJ5IGVycm9yLXByb25l
LgogICAgICAgICBhdXRvIGhvcml6b250YWxTaWRlID0gU2Nyb2xsYWJsZUFyZWE6OnRhcmdldFNp
ZGVGb3JTY3JvbGxEZWx0YSgtd2hlZWxFdmVudC5kZWx0YSgpLCBTY3JvbGxFdmVudEF4aXM6Okhv
cml6b250YWwpOwogICAgICAgICBpZiAoaG9yaXpvbnRhbFNpZGUgJiYgbV9jbGllbnQuaXNQaW5u
ZWRPblNpZGUoKmhvcml6b250YWxTaWRlKSAmJiAhc2hvdWxkUnViYmVyQmFuZE9uU2lkZSgqaG9y
aXpvbnRhbFNpZGUpKQpAQCAtMTUwLDYgKzE1NywxMyBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHND
b250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAod2hlZWxFdmVudC5tb21l
bnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVkICYmIG1vbWVudHVt
U2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZG4ndCBoYXZlIHRvIHN0b3AgdGhlIG1vbWVudHVtIHNjcm9sbCBhbmltYXRpb24gaGVyZSwgYnV0
IGluIG1hY09TIE1vbnRlcmV5IHdlIGRvbid0IGdldCB0aGUgTWF5QmVnaW4KKyAgICAgICAgLy8g
ZXZlbnRzIHRoYXQgd2UnZCBub3JtYWxseSB1c2UgdG8gc3RvcCBhIG1vbWVudHVtIHNjcm9sbCBv
biBmaW5nZXJzIGRvd24gKHJkYXI6Ly84NDg5MDY0MCkuCisgICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIk1vbWVudHVtIHBoYXNlIGVuZGVkLCBzdG9w
cGluZyBhbnkgbm9uLXJ1YmJlcmJhbmQgc2Nyb2xsIGFuaW1hdGlvbnMiKTsKKyAgICAgICAgc3Rv
cEFuaW1hdGVkTm9uUnViYmVyYmFuZGluZ1Njcm9sbCgpOworICAgIH0KKwogICAgIGJvb2wgaXNN
b21lbnR1bVNjcm9sbEV2ZW50ID0gKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlOjpOb25lKTsKICAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9s
bHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX2lzQW5pbWF0aW5nUnViYmVyQmFuZCkp
IHsKICAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlOjpFbmRlZCkgewpAQCAtMTc3LDggKzE5MSwyNiBAQCBib29sIFNjcm9sbGlu
Z0VmZmVjdHNDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZQogICAgIGRlbHRhID0gZGVsdGFBbGlnbmVkVG9Eb21pbmFudEF4aXMoZGVsdGEp
OwogCiAgICAgYXV0byBtb21lbnR1bVBoYXNlID0gd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCk7
Ci0gICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1QaGFzZSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZCkpCisgICAgaWYgKG1vbWVudHVtUGhhc2UgPT0g
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuKQorICAgICAgICBtX3Njcm9sbGluZ1ZlbG9j
aXR5Rm9yTW9tZW50dW1BbmltYXRpb24gPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgp
OyAvLyBOb3RlIHRoYXQgZXZlbnQgZGVsdGEgaXMgcmV2ZXJzZWQgZnJvbSBzY3JvbGwgZGlyZWN0
aW9uLgorCisgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1Q
aGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZCkpIHsKICAgICAgICAgbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOworICAgICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdB
bmltYXRvckVuYWJsZWQoKSkgeworICAgICAgICAgICAgc3RhcnRNb21lbnR1bVNjcm9sbFdpdGhJ
bml0aWFsVmVsb2NpdHkobV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fc2Nyb2xsaW5nVmVsb2Np
dHlGb3JNb21lbnR1bUFuaW1hdGlvbiwgLXdoZWVsRXZlbnQuZGVsdGEoKSwgW10oY29uc3QgRmxv
YXRQb2ludCYgdGFyZ2V0T2Zmc2V0KSB7IHJldHVybiB0YXJnZXRPZmZzZXQ7IH0pOworI2lmICFM
T0dfRElTQUJMRUQKKyAgICAgICAgICAgIG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQgPSBtX2Ns
aWVudC5zY3JvbGxPZmZzZXQoKTsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQgJiYgbW9t
ZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQoKSkgeworI2lmICFMT0dfRElTQUJMRUQKKyAg
ICAgICAgbV9ldmVudERyaXZlblNjcm9sbE9mZnNldCAtPSB3aGVlbEV2ZW50LmRlbHRhKCk7Cisj
ZW5kaWYKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8
PCAiSWdub3JpbmcgbW9tZW50dW0gY2hhbmdlZCBldmVudCAiIDw8IHdoZWVsRXZlbnQgPDwgIiAo
d291bGQgaGF2ZSBzY3JvbGxlZCB0byAiIDw8IG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQgPDwg
IikiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCiAgICAgYm9vbCBzaG91bGRTdHJl
dGNoID0gZmFsc2U7CiAgICAgYXV0byB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
IC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CkBAIC0zOTMsNiArNDI1LDExIEBAIHZv
aWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0b3BSdWJiZXJCYW5kaW5nKCkKIAogYm9v
bCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRSdWJiZXJCYW5kQW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHRhcmdldE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVs
b2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbE92ZXJzY3JvbGwpCiB7CisgICAgaWYgKGlz
PFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtPihtX2N1cnJlbnRBbmltYXRpb24pICYmIG1fY3VycmVu
dEFuaW1hdGlvbi0+aXNBY3RpdmUoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
QW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRS
dWJiZXJCYW5kQW5pbWF0aW9uKCkgLSBtb21lbnR1bSBhbmltYXRpb24gaXMgcHJlc2VudCIpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKG1fY3VycmVudEFuaW1hdGlv
bikKICAgICAgICAgbV9jdXJyZW50QW5pbWF0aW9uLT5zdG9wKCk7CiAKQEAgLTQzOSw5ICs0NzYs
NiBAQCB2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydFJ1YmJlckJhbmRBbmlt
YXRpb25JZk5lY2Vzc2FyeSgpCiAgICAgYm9vbCB3aWxsT3ZlcnNjcm9sbCA9IHRhcmdldE9mZnNl
dCAhPSBjb250cmFpbmVkT2Zmc2V0OwogCiAgICAgYXV0byBzdHJldGNoQW1vdW50ID0gbV9jbGll
bnQuc3RyZXRjaEFtb3VudCgpOwotCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlv
bnMsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFu
ZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkgLSBydWJiZXJCYW5kQW5pbWF0aW9uUnVubmluZyAiIDw8
IG1faXNBbmltYXRpbmdSdWJiZXJCYW5kIDw8ICIgc3RyZXRjaEFtb3VudCAiIDw8IHN0cmV0Y2hB
bW91bnQgPDwgIiB0YXJnZXRPZmZzZXQgIiA8PCB0YXJnZXRPZmZzZXQpOwotCiAgICAgaWYgKHN0
cmV0Y2hBbW91bnQuaXNaZXJvKCkgJiYgIXdpbGxPdmVyc2Nyb2xsKQogICAgICAgICByZXR1cm47
CiAKQEAgLTQ1OSw2ICs0OTMsNyBAQCB2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpz
dGFydFJ1YmJlckJhbmRBbmltYXRpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYgKCFtX2NsaWVudC5h
bGxvd3NWZXJ0aWNhbFNjcm9sbGluZygpKQogICAgICAgICBpbml0aWFsVmVsb2NpdHkuc2V0SGVp
Z2h0KDApOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFuaW1hdGlvbnMsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbklm
TmVjZXNzYXJ5KCkgLSBydWJiZXJCYW5kQW5pbWF0aW9uUnVubmluZyAiIDw8IG1faXNBbmltYXRp
bmdSdWJiZXJCYW5kIDw8ICIgc3RyZXRjaEFtb3VudCAiIDw8IHN0cmV0Y2hBbW91bnQgPDwgIiBj
b250cmFpbmVkT2Zmc2V0ICIgPDwgY29udHJhaW5lZE9mZnNldCA8PCAiIGluaXRpYWxWZWxvY2l0
eSAiIDw8IGluaXRpYWxWZWxvY2l0eSk7CiAgICAgc3RhcnRSdWJiZXJCYW5kQW5pbWF0aW9uKGNv
bnRyYWluZWRPZmZzZXQsIGluaXRpYWxWZWxvY2l0eSwgc3RyZXRjaEFtb3VudCk7CiB9CiAKQEAg
LTYzNSwxOCArNjcwLDE4IEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnByb2Nl
c3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoCiAgICAgY2FzZSBXaGVl
bEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsaW5nOgogICAgICAgICBzdG9wU2Nyb2xsU25hcEFuaW1h
dGlvbigpOwogICAgICAgICBtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvVXNlckludGVy
YWN0aW9uU3RhdGUoKTsKLSAgICAgICAgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSA9IC13
aGVlbEV2ZW50LnNjcm9sbGluZ1ZlbG9jaXR5KCk7CisgICAgICAgIG1fc2Nyb2xsaW5nVmVsb2Np
dHlGb3JTY3JvbGxTbmFwID0gLXdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHkoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsRW5kOgogICAg
ICAgICBpZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0
ZShtX2NsaWVudC5zY3JvbGxFeHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBt
X2NsaWVudC5zY3JvbGxPZmZzZXQoKSkpCiAgICAgICAgICAgICBzdGFydFNjcm9sbFNuYXBBbmlt
YXRpb24oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpNb21l
bnR1bVNjcm9sbEJlZ2luOgotICAgICAgICBpZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRp
b25Ub0dsaWRlQW5pbWF0aW9uU3RhdGUobV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpLCBtX2NsaWVu
dC5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fZHJhZ0VuZGVk
U2Nyb2xsaW5nVmVsb2NpdHksIEZsb2F0U2l6ZSgtd2hlZWxFdmVudC5kZWx0YVgoKSwgLXdoZWVs
RXZlbnQuZGVsdGFZKCkpKSkgeworICAgICAgICBpZiAobV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5z
aXRpb25Ub0dsaWRlQW5pbWF0aW9uU3RhdGUobV9jbGllbnQuc2Nyb2xsRXh0ZW50cygpLCBtX2Ns
aWVudC5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fc2Nyb2xs
aW5nVmVsb2NpdHlGb3JTY3JvbGxTbmFwLCAtd2hlZWxFdmVudC5kZWx0YSgpKSkgewogICAgICAg
ICAgICAgc3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAgICAgICAgICAgICBpc01vbWVudHVt
U2Nyb2xsaW5nID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBtX2RyYWdFbmRlZFNjcm9sbGlu
Z1ZlbG9jaXR5ID0geyB9OworICAgICAgICBtX3Njcm9sbGluZ1ZlbG9jaXR5Rm9yU2Nyb2xsU25h
cCA9IHsgfTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpNb21l
bnR1bVNjcm9sbGluZzoKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xs
RW5kOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444160</attachid>
            <date>2021-11-13 18:39:47 -0800</date>
            <delta_ts>2021-11-13 20:14:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232897-20211113183946.patch</filename>
            <type>text/plain</type>
            <size>28474</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDliNDEwNGJiNjE1YTEwMTI4OWM4Y2Y3
YzkyZGYwZjQ2YzczN2RiMDAuLjlkNDAxOGEwNDc4ZWRkNDcwZmZjNmE4NjQxZTRhOTIyOGI1Yjg2
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0gZm9yIHRoZSBtb21lbnR1bSBwaGFzZSBvZiBhIHNjcm9sbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V0IHRoZSBNb21lbnR1bVNjcm9sbGluZ0Fu
aW1hdG9yRW5hYmxlZCBpbnRlcm5hbCBzZXR0aW5nIHRvIG9mZiBieSBkZWZhdWx0CisgICAgICAg
IHdoaWxlIHdlIGJyaW5nIHVwIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWw6CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIE1hdGhNTCB3aGVuIGluIENh
cHRpdmUgUG9ydGFsIE1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjYxZDVjNmY0ZTE3OTlhMGZjYTg5MDA0
OWExZWFmMjZkOWU1ZDE3Li42OGU3ZDM5M2ZlNTMyYjQ0NWRkODhmNmVjMjgwOGQ5ZDExMzk4YThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMTEtMTMgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuIGEgU2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW0gZm9yIHRoZSBtb21lbnR1bSBwaGFzZSBvZiBhIHNjcm9sbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBSdW4gYW4gYW5pbWF0
aW9uIGZvciB0aGUgbW9tZW50dW0gcGhhc2Ugb2YgYSBzY3JvbGwsIHJhdGhlciB0aGFuIHNjcm9s
bGluZyBpbiByZXNwb25zZQorICAgICAgICB0byB3aGVlbCBldmVudHMsIGJlY2F1c2UgaXQgcHJv
ZHVjZXMgYSBzbW9vdGhlciByZXN1bHQgd2l0aCBmZXdlciBkcm9wcGVkIGZyYW1lcy4KKyAgICAg
ICAgCisgICAgICAgIFdlIHJlLXVzZSBTY3JvbGxBbmltYXRpb25Nb21lbnR1bSB3aGljaCBpcyBh
bHJlYWR5IHVzZWQgZm9yIHNjcm9sbCBzbmFwLCBidXQgaGF2ZSB0bworICAgICAgICBhbGxvdyBp
dCB0byB5aWVsZCB1bmNsYW1wZWQgY29vcmRpbmF0ZXMsIHNpbmNlIHVzaW5nIGl0IGZvciBtb21l
bnR1bSBjYW4gcmVzdWx0IGluCisgICAgICAgIHJ1YmJlci1iYW5kaW5nLgorICAgICAgICAKKyAg
ICAgICAgV2hlbiB3ZSBnZXQgdGhlIG1vbWVudHVtICJiZWdhbiIgZXZlbnQsIHdlIHN0YXJ0IHRo
ZSBTY3JvbGxBbmltYXRpb25Nb21lbnR1bQorICAgICAgICB1c2luZyBpbml0aWFsIHZlbG9jaXR5
IGNvbXB1dGVkIGZyb20gV2hlZWxFdmVudERlbHRhRmlsdGVyLiBTY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlciB0aGVuCisgICAgICAgIGlnbm9yZXMgdGhlIHJlc2V0IG9mIHRoZSBtb21lbnR1bSAi
Y2hhbmdlZCIgZXZlbnRzLgorCisgICAgICAgIFdlIGhhdmUgdG8gc3RvcCB0aGlzIGFuaW1hdGlv
biB3aGVuIHdlIHJlY2VpdmUgYSAiYmVnaW4iIG9yICJtYXlCZWdpbiIgZXZlbnQsIHNpbmNlCisg
ICAgICAgIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIHB1dCBmaW5nZXJzIGRvd24g
b24gdGhlIHRyYWNrcGFkLgorICAgICAgICAKKyAgICAgICAgUmVuYW1lIG1fZHJhZ0VuZGVkU2Ny
b2xsaW5nVmVsb2NpdHkgdG8gbV9zY3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXAgZm9yIGNs
YXJpdHkKKyAgICAgICAgKGF0IHNvbWUgcG9pbnQgd2Ugc2hvdWxkIG1lcmdlIHRoaXMgd2l0aCBt
X3Njcm9sbGluZ1ZlbG9jaXR5Rm9yTW9tZW50dW1BbmltYXRpb24pLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3ItaW4tb3ZlcmZsb3cuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLmh0bWwK
KworICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlcjo6c2hvdWxkQXBwbHlGaWx0ZXJpbmdGb3JFdmVu
dCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0ZWRT
Y3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dGlvbk1vbWVudHVtOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbk1v
bWVudHVtOjpzZXJ2aWNlQW5pbWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25Nb21lbnR1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVy
OjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcEFuaW1hdGVkTm9uUnViYmVyYmFuZGluZ1Njcm9sbCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRNb21l
bnR1bVNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlcjo6bW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnBoYXNlVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nRWZmZWN0c0NvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRSdWJi
ZXJCYW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
RWZmZWN0c0NvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCk6CisKIDIw
MjEtMTEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQXR0YWNoIElPSElERXZlbnQgdGltZXN0YW1wcyB0byB3aGVlbCBldmVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRl
cm5hbC55YW1sCmluZGV4IDdmZDJiNGVhMTRiZGQwMjU2MWFhY2RjYzhkNjc1MmM5OTU3MGE5NTAu
LjJjNDY0NWZiMTJmYjVhZjM0NmQzZmIxNDI4MTdiZTM2ZDNmYzVmZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
KysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJu
YWwueWFtbApAQCAtNTQyLDEzICs1NDIsMTAgQEAgTW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVu
YWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRyaXZlIG1vbWVudHVtIHNjcm9s
bGluZyB2aWEgYW4gaW50ZXJuYWwgYW5pbWF0b3IgaW5zdGVhZCBvZiB1c2luZyBtb21lbnR1bSBl
dmVudHMiCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICAiUExBVEZP
Uk0oTUFDKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgotICAgICAg
IlBMQVRGT1JNKE1BQykiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6
Ci0gICAgICAiUExBVEZPUk0oTUFDKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIE1v
dXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnREZWx0YUZpbHRlci5jcHAKaW5kZXggMzZkYjZiYTc4ZDc5ZTZiMmVjNDljYTA5NWFhODc4
ZjYzMjcxNzdiOS4uODM5MzIyODExNDYwM2NjNGEwOTE0OGY5ZjIzZGEwZjM2NTIxN2I2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcApAQCAtNTQs
NiArNTQsNyBAQCBib29sIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6c2hvdWxkQXBwbHlGaWx0ZXJp
bmdGb3JFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbgogewogI2lmIEVOQUJMRShLSU5FVElD
X1NDUk9MTElORykKICAgICAvLyBNYXliZSBpdCdzIGEgcGVyLXBsYXRmb3JtIGRlY2lzaW9uIGFi
b3V0IHdoaWNoIGV2ZW50IHBoYXNlcyBnZXQgZmlsdGVyZWQuIElkZWFsbHkgd2UnZCBmaWx0ZXIg
bW9tZW50dW0gZXZlbnRzIHRvbyAoYnV0IHRoYXQgYnJlYWtzIHNvbWUgZGlhZ29uYWwgc2Nyb2xs
aW5nIGNhc2VzKS4KKyAgICAvLyBBbHNvLCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciBzaG91
bGQgYXNrIFdoZWVsRXZlbnREZWx0YUZpbHRlciBkaXJlY3RseSBmb3IgdGhlIGZpbHRlcmVkIHZl
bG9jaXR5LCByYXRoZXIgdGhhbiBzZW5kaW5nIHRoZSB2ZWxvY2l0eSB2aWEgUGxhdGZvcm1XaGVl
bEV2ZW50LgogICAgIGF1dG8gcGhhc2UgPSBldmVudC5waGFzZSgpOwogICAgIHJldHVybiBwaGFz
ZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgcGhhc2UgPT0gUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQ7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgKaW5kZXggOGI0ZDdlMWM3OWVlOTdjZTUyOWY0YzNmODI5YzM3
OWMxNWRkYTIyZC4uYjAxZTU1NWMxMTVmNWJmN2Q1NjZlZDIxMWRlOTUwYTZlZjA1YzBlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCkBAIC02Miw3ICs2
Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFNjcm9sbEV2ZW50
QXhpcz4gZG9taW5hbnRBeGlzKCkgY29uc3Q7Ci0gICAgCisKICAgICB2b2lkIHJlc2V0KCk7CiAg
ICAgdm9pZCB1cGRhdGVXaXRoRGVsdGEoRmxvYXRTaXplKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXggYzFkMDQzYTcyMTQ4ZWJhZjc1
YThmMDliYWZiNmJlNGYyMGYzODM3Zi4uNTM4MmMzOTc5M2U5MGNhYjlkOWM0MzAzMmM4ZDc4YjJl
MDViMDIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVl
bEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICNpZiBFTkFCTEUoS0lO
RVRJQ19TQ1JPTExJTkcpCiAgICAgdHMgPDwgIiBwaGFzZSBcIiIgPDwgZXZlbnQucGhhc2UoKSA8
PCAiXCIgbW9tZW50dW0gcGhhc2UgXCIiIDw8IGV2ZW50Lm1vbWVudHVtUGhhc2UoKSA8PCAiXCIi
OwogI2VuZGlmCisgICAgdHMgPDwgIiB2ZWxvY2l0eSAiIDw8IGV2ZW50LnNjcm9sbGluZ1ZlbG9j
aXR5KCk7CiAKICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAKaW5kZXggMjYwMTkyNzUxYTgwZmM0NDBl
YjEzNWVjY2EyOTFjZTQzYjkzZWExYi4uZDFmYjk1MTM5YzU1MjhlNzhhNzU2MDJlYzE2NzM3MjM5
OGE3NjM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uTW9tZW50dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvbk1vbWVudHVtLmNwcApAQCAtNTUsNiArNTUsOSBAQCBib29sIFNjcm9sbEFuaW1hdGlvbk1v
bWVudHVtOjpzdGFydEFuaW1hdGVkU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eShjb25zdCBGbG9h
dAogICAgICAgICB9CiAgICAgfQogCisgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJTY3JvbGxB
bmltYXRpb25Nb21lbnR1bTo6c3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHk6
IHZlbG9jaXR5ICUuMmYsJS4yZiBmcm9tICUuMmYsJS4yZiB0byAlLjJmLCUuMmYiLAorICAgICAg
ICBpbml0aWFsVmVsb2NpdHkud2lkdGgoKSwgaW5pdGlhbFZlbG9jaXR5LmhlaWdodCgpLCBpbml0
aWFsT2Zmc2V0LngoKSwgaW5pdGlhbE9mZnNldC55KCksIGRlc3RpbmF0aW9uU2Nyb2xsT2Zmc2V0
LngoKSwgZGVzdGluYXRpb25TY3JvbGxPZmZzZXQueSgpKTsKKwogICAgIGlmIChkZXN0aW5hdGlv
blNjcm9sbE9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KSB7CiAgICAgICAgIG1fbW9tZW50dW1DYWxj
dWxhdG9yID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODEsNiArODQsOCBA
QCBib29sIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpyZXRhcmdldEFjdGl2ZUFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBuZXdEZXN0aQogCiB2b2lkIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVt
OjpzdG9wKCkKIHsKKyAgICBMT0coU2Nyb2xsQW5pbWF0aW9ucywgIlNjcm9sbEFuaW1hdGlvbk1v
bWVudHVtOjpzdG9wOiBvZmZzZXQgJS4yZiwlLjJmIiwgbV9jdXJyZW50T2Zmc2V0LngoKSwgbV9j
dXJyZW50T2Zmc2V0LnkoKSk7CisKICAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IG51bGxwdHI7
CiAgICAgU2Nyb2xsQW5pbWF0aW9uOjpzdG9wKCk7CiB9CkBAIC05OCw2ICsxMDMsOCBAQCB2b2lk
IFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzZXJ2aWNlQW5pbWF0aW9uKE1vbm90b25pY1RpbWUg
Y3VycmVudFRpbWUpCiAKICAgICBtX2NsaWVudC5zY3JvbGxBbmltYXRpb25EaWRVcGRhdGUoKnRo
aXMsIG1fY3VycmVudE9mZnNldCk7CiAKKyAgICBMT0coU2Nyb2xsQW5pbWF0aW9ucywgIlNjcm9s
bEFuaW1hdGlvbk1vbWVudHVtOjpzZXJ2aWNlQW5pbWF0aW9uOiBvZmZzZXQgJS4yZiwlLjJmIGNv
bXBsZXRlICVkIiwgbV9jdXJyZW50T2Zmc2V0LngoKSwgbV9jdXJyZW50T2Zmc2V0LnkoKSwgYW5p
bWF0aW9uQ29tcGxldGUpOworCiAgICAgaWYgKGFuaW1hdGlvbkNvbXBsZXRlKQogICAgICAgICBk
aWRFbmQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbk1vbWVudHVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25Nb21lbnR1bS5oCmluZGV4IDdlNzhiZjgzZTY0OGU1OTI1YWIzMmJlODBhN2JhMTk2YmE1ODdj
YzIuLmI3ZTkwZmZjMGEyYWY0NWJkNWVhNDhjMGJjZDMyNDNiYzBkNmVmYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaApAQCAtNDIs
NiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTY3JvbGxFeHRlbnRzKCkgZmluYWw7
CiAKIHByaXZhdGU6CisgICAgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkOyB9CiAgICAgU3RyaW5nIGRlYnVnRGVz
Y3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3I+IG1fbW9tZW50dW1DYWxjdWxhdG9yOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwCmluZGV4
IDMxYzE3ZGIwMWYzNjY3MDBiMTRiMWIzYTIzOTY4NGM0ZjI3NGM4YmQuLjM4YjhjMzAyYzgxMGRh
YzhkOTNiMWQzZDA1ZDBmYTgzMThhMTlmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKQEAgLTQ5LDYgKzQ5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6U2Ny
b2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIoU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXJDbGllbnQm
IGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fbW9tZW50dW1TY3JvbGxp
bmdBbmltYXRvckVuYWJsZWQoY2xpZW50Lm1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVk
KCkpCiB7CiB9CiAKQEAgLTEzMSw2ICsxMzIsMzAgQEAgYm9vbCBTY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlcjo6cmV0YXJnZXRBbmltYXRlZFNjcm9sbEJ5KEZsb2F0U2l6ZSBvZmZzZXQpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdG9w
QW5pbWF0ZWROb25SdWJiZXJiYW5kaW5nU2Nyb2xsKCkKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciAi
IDw8IHRoaXMgPDwgIiBzdG9wQW5pbWF0ZWROb25SdWJiZXJiYW5kaW5nU2Nyb2xsIik7CisKKyAg
ICBpZiAoIW1fY3VycmVudEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisjaWYgSEFWRShS
VUJCRVJfQkFORElORykKKyAgICBpZiAoaXM8U2Nyb2xsQW5pbWF0aW9uUnViYmVyQmFuZD4obV9j
dXJyZW50QW5pbWF0aW9uKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKKyAgICBpZiAoaXM8
U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+KG1fY3VycmVudEFuaW1hdGlvbikpIHsKKyAgICAgICAg
Ly8gSWYgdGhlIGFuaW1hdGlvbiBpcyBjdXJyZW50bHkgdHJpZ2dlcmluZyBydWJiZXJiYW5kaW5n
LCBsZXQgaXQgcnVuLiBJZGVhbGx5IHdlJ2QgY2hlY2sgaWYgdGhlIGFuaW1hdGlvbiB3aWxsIGNh
dXNlIHJ1YmJlcmJhbmRpbmcgYXQgYW55IHRpbWUgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgYXV0
byBjdXJyZW50T2Zmc2V0ID0gbV9jdXJyZW50QW5pbWF0aW9uLT5jdXJyZW50T2Zmc2V0KCk7Cisg
ICAgICAgIGF1dG8gZXh0ZW50cyA9IG1fY2xpZW50LnNjcm9sbEV4dGVudHMoKTsKKyAgICAgICAg
YXV0byBjb250cmFpbmVkT2Zmc2V0ID0gY3VycmVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4o
ZXh0ZW50cy5taW5pbXVtU2Nyb2xsT2Zmc2V0KCksIGV4dGVudHMubWF4aW11bVNjcm9sbE9mZnNl
dCgpKTsKKyAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgIT0gY29udHJhaW5lZE9mZnNldCkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRBbmltYXRpb24tPnN0b3Ao
KTsKK30KKwogdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcEFuaW1hdGVkU2Ny
b2xsKCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8
ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBzdG9wQW5pbWF0ZWRT
Y3JvbGwiKTsKQEAgLTE1MSw3ICsxNzYsNyBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyOjpzdGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eShjb25zdCBGbAogICAg
ICAgICBtX2N1cnJlbnRBbmltYXRpb24gPSBtYWtlVW5pcXVlPFNjcm9sbEFuaW1hdGlvbk1vbWVu
dHVtPigqdGhpcyk7CiAKICAgICBib29sIHN0YXJ0ZWQgPSBkb3duY2FzdDxTY3JvbGxBbmltYXRp
b25Nb21lbnR1bT4oKm1fY3VycmVudEFuaW1hdGlvbikuc3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJ
bml0aWFsVmVsb2NpdHkoaW5pdGlhbE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBpbml0aWFsRGVs
dGEsIGRlc3RpbmF0aW9uTW9kaWZpZXIpOwotICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmlt
YXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydE1vbWVu
dHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eSgpIC0gYW5pbWF0aW9uICIgPDwgKm1fY3VycmVu
dEFuaW1hdGlvbiA8PCAiIHN0YXJ0ZWQgIiA8PCBzdGFydGVkKTsKKyAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
cjo6c3RhcnRNb21lbnR1bVNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoKSAtIGFuaW1hdGlvbiAi
IDw8ICptX2N1cnJlbnRBbmltYXRpb24gPDwgIiBpbml0aWFsVmVsb2NpdHkgIiA8PCBpbml0aWFs
VmVsb2NpdHkgPDwgIiBpbml0aWFsRGVsdGEgIiA8PCBpbml0aWFsRGVsdGEgPDwgIiBzdGFydGVk
ICIgPDwgc3RhcnRlZCk7CiAgICAgcmV0dXJuIHN0YXJ0ZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5oCmluZGV4IDYw
YmJjZDVhNDcyNzQxMjA3ZTUyM2I1MjczZTAxMDI5N2Q5ZTkyNjIuLjBkMTkxYTM3MDYxZjRmM2Qx
YWZmZThiYjQ5MjQ3MWJlZjM2ZDA0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaApAQCAtMTM4LDcgKzEzOCw5IEBAIHB1
YmxpYzoKICAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb0Rlc3RpbmF0aW9uKEZsb2F0UG9p
bnQgc3RhcnRPZmZzZXQsIEZsb2F0UG9pbnQgZGVzdGluYXRpb25PZmZzZXQpOwogICAgIGJvb2wg
cmV0YXJnZXRBbmltYXRlZFNjcm9sbChGbG9hdFBvaW50IG5ld0Rlc3RpbmF0aW9uT2Zmc2V0KTsK
ICAgICBib29sIHJldGFyZ2V0QW5pbWF0ZWRTY3JvbGxCeShGbG9hdFNpemUpOworCiAgICAgdm9p
ZCBzdG9wQW5pbWF0ZWRTY3JvbGwoKTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZE5vblJ1YmJlcmJh
bmRpbmdTY3JvbGwoKTsKIAogICAgIHZvaWQgc3RvcEtleWJvYXJkU2Nyb2xsaW5nKCk7CiAKQEAg
LTIyMSw2ICsyMjMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydE9yU3RvcEFuaW1hdGlv
bkNhbGxiYWNrcygpOwogCisgICAgYm9vbCBtb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQ7IH0K
KwogICAgIC8vIFNjcm9sbEFuaW1hdGlvbkNsaWVudAogICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9u
RGlkVXBkYXRlKFNjcm9sbEFuaW1hdGlvbiYsIGNvbnN0IEZsb2F0UG9pbnQmIC8qIGN1cnJlbnRP
ZmZzZXQgKi8pIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uV2lsbFN0YXJ0KFNjcm9s
bEFuaW1hdGlvbiYpIGZpbmFsOwpAQCAtMjQ4LDYgKzI1Miw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzQW5pbWF0aW5nU2Nyb2xsU25hcCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQW5pbWF0
aW5nS2V5Ym9hcmRTY3JvbGxpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pblNjcm9sbEdlc3R1
cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgV2FsbFRpbWUgbV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXA7CkBAIC0yNTUsMTEgKzI2MCwxNiBAQCBwcml2YXRlOgogICAg
IEZsb2F0U2l6ZSBtX3N0cmV0Y2hTY3JvbGxGb3JjZTsKICAgICBGbG9hdFNpemUgbV9tb21lbnR1
bVZlbG9jaXR5OwogCisgICAgRmxvYXRTaXplIG1fc2Nyb2xsaW5nVmVsb2NpdHlGb3JNb21lbnR1
bUFuaW1hdGlvbjsgLy8gRG8gd2UgbmVlZCBib3RoIHRoaXMsIG1fc2Nyb2xsaW5nVmVsb2NpdHlG
b3JTY3JvbGxTbmFwIGFuZCBtX21vbWVudHVtVmVsb2NpdHk/CisgICAgRmxvYXRTaXplIG1fc2Ny
b2xsaW5nVmVsb2NpdHlGb3JTY3JvbGxTbmFwOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBGbG9h
dFBvaW50IG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQ7CisjZW5kaWYKKwogICAgIGJvb2wgbV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pZ25vcmVNb21l
bnR1bVNjcm9sbHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1J1YmJlckJhbmRpbmcgeyBmYWxz
ZSB9OwogCi0gICAgRmxvYXRTaXplIG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2NpdHk7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+IG1fc3RhdGVs
ZXNzU25hcFRyYW5zaXRpb25UaW1lcjsKIAogI2lmIEhBVkUoUlVCQkVSX0JBTkRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0Nv
bnRyb2xsZXIubW0KaW5kZXggNTJlMWE1OTU5OGJiM2UzNDk2ZmQwMWIyOTg3NjMyODgwNmQ0M2Yx
OS4uZTM0Y2IzMDRiYTcyZjQ2NTUxNDBjMTM2OTA1YzA1YTAzMzA5YjdiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdFZmZlY3RzQ29udHJv
bGxlci5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1XaGVlbEV2ZW50Lmgi
CiAjaW1wb3J0ICJTY3JvbGxBbmltYXRpb25SdWJiZXJCYW5kLmgiCiAjaW1wb3J0ICJTY3JvbGxF
eHRlbnRzLmgiCisjaW1wb3J0ICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCIKICNpbXBvcnQgIldo
ZWVsRXZlbnRUZXN0TW9uaXRvci5oIgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3
U1BJLmg+CiAjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CkBAIC0xMTAsMTUgKzExMSw0NCBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxCb3hTaWRlPiBhZmZlY3RlZFNpZGVPbkRvbWluYW50QXhpcyhGbG9h
dFNpemUgZGVsdGEpCiAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjp0YXJnZXRTaWRlRm9yU2Ny
b2xsRGVsdGEoZGVsdGEsIGRvbWluYW50QXhpcyk7CiB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECitz
dGF0aWMgY29uc3QgY2hhciogcGhhc2VUb1N0cmluZyhQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBw
aGFzZSkKK3sKKyAgICBzd2l0Y2ggKHBoYXNlKSB7CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZTo6Tm9uZTogcmV0dXJuICJub25lIjsKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlOjpCZWdhbjogcmV0dXJuICJiZWdhbiI7CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZTo6U3RhdGlvbmFyeTogcmV0dXJuICJzdGF0aW9uYXJ5IjsKKyAgICBjYXNlIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkOiByZXR1cm4gImNoYW5nZWQiOworICAgIGNhc2Ug
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVkOiByZXR1cm4gImVuZGVkIjsKKyAgICBjYXNl
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDYW5jZWxsZWQ6IHJldHVybiAiY2FuY2VsbGVkIjsK
KyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbjogcmV0dXJuICJtYXlC
ZWdpbiI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKyNlbmRpZgorCiBib29sIFNjcm9sbGlu
Z0VmZmVjdHNDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKIHsKKyAgICBpZiAoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91
bGRBcHBseUZpbHRlcmluZ0ZvckV2ZW50KHdoZWVsRXZlbnQpKQorICAgICAgICBtX3Njcm9sbGlu
Z1ZlbG9jaXR5Rm9yTW9tZW50dW1BbmltYXRpb24gPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxv
Y2l0eSgpOyAvLyBOb3RlIHRoYXQgZXZlbnQgZGVsdGEgaXMgcmV2ZXJzZWQgZnJvbSBzY3JvbGwg
ZGlyZWN0aW9uLgorCiAgICAgaWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVl
bEV2ZW50KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAod2hlZWxFdmVudC5waGFz
ZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBo
YXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkKKyAgICBpZiAod2hl
ZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3
aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkg
eworICAgICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQoKSkgeworICAg
ICAgICAgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJFdmVudCAoJXMsICVzKTogc3RvcHBpbmcg
YW5pbWF0ZWQgc2Nyb2xsIiwgcGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50LnBoYXNlKCkpLCBwaGFz
ZVRvU3RyaW5nKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpKSk7CisgICAgICAgICAgICBzdG9w
QW5pbWF0ZWRTY3JvbGwoKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQogCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZTo6QmVnYW4pIHsKKyAgICAgICAgaWYgKG1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVk
KCkpIHsKKyAgICAgICAgICAgIExPRyhTY3JvbGxBbmltYXRpb25zLCAiRXZlbnQgKCVzLCAlcyk6
IHN0b3BwaW5nIGFuaW1hdGVkIHNjcm9sbCIsIHBoYXNlVG9TdHJpbmcod2hlZWxFdmVudC5waGFz
ZSgpKSwgcGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSkpOworICAgICAg
ICAgICAgc3RvcEFuaW1hdGVkU2Nyb2xsKCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBGSVhN
RTogVHJ5aW5nIHRvIGRlY2lkZSBpZiBhIGdlc3R1cmUgaXMgaG9yaXpvbnRhbCBvciB2ZXJ0aWNh
bCBhdCB0aGUgImJlZ2FuIiBwaGFzZSBpcyB2ZXJ5IGVycm9yLXByb25lLgogICAgICAgICBhdXRv
IGhvcml6b250YWxTaWRlID0gU2Nyb2xsYWJsZUFyZWE6OnRhcmdldFNpZGVGb3JTY3JvbGxEZWx0
YSgtd2hlZWxFdmVudC5kZWx0YSgpLCBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpOwogICAg
ICAgICBpZiAoaG9yaXpvbnRhbFNpZGUgJiYgbV9jbGllbnQuaXNQaW5uZWRPblNpZGUoKmhvcml6
b250YWxTaWRlKSAmJiAhc2hvdWxkUnViYmVyQmFuZE9uU2lkZSgqaG9yaXpvbnRhbFNpZGUpKQpA
QCAtMTc3LDggKzIwNywyNCBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZQogICAgIGRlbHRhID0g
ZGVsdGFBbGlnbmVkVG9Eb21pbmFudEF4aXMoZGVsdGEpOwogCiAgICAgYXV0byBtb21lbnR1bVBo
YXNlID0gd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCk7Ci0gICAgaWYgKCFtX21vbWVudHVtU2Ny
b2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZTo6QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hh
bmdlZCkpCisgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1Q
aGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZCkpIHsKICAgICAgICAgbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOworICAgICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdB
bmltYXRvckVuYWJsZWQoKSkgeworICAgICAgICAgICAgc3RhcnRNb21lbnR1bVNjcm9sbFdpdGhJ
bml0aWFsVmVsb2NpdHkobV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fc2Nyb2xsaW5nVmVsb2Np
dHlGb3JNb21lbnR1bUFuaW1hdGlvbiwgLXdoZWVsRXZlbnQuZGVsdGEoKSwgW10oY29uc3QgRmxv
YXRQb2ludCYgdGFyZ2V0T2Zmc2V0KSB7IHJldHVybiB0YXJnZXRPZmZzZXQ7IH0pOworI2lmICFM
T0dfRElTQUJMRUQKKyAgICAgICAgICAgIG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQgPSBtX2Ns
aWVudC5zY3JvbGxPZmZzZXQoKTsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQgJiYgbW9t
ZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQoKSkgeworI2lmICFMT0dfRElTQUJMRUQKKyAg
ICAgICAgbV9ldmVudERyaXZlblNjcm9sbE9mZnNldCAtPSB3aGVlbEV2ZW50LmRlbHRhKCk7Cisj
ZW5kaWYKKyAgICAgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJFdmVudCAoJXMsICVzKTogaWdu
b3JpbmcgLSB3b3VsZCBoYXZlIHNjcm9sbGVkIHRvICUuMmYsJS4yZiIsIHBoYXNlVG9TdHJpbmco
d2hlZWxFdmVudC5waGFzZSgpKSwgcGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50Lm1vbWVudHVtUGhh
c2UoKSksCisgICAgICAgICAgICBtX2V2ZW50RHJpdmVuU2Nyb2xsT2Zmc2V0LngoKSwgbV9ldmVu
dERyaXZlblNjcm9sbE9mZnNldC55KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAK
ICAgICBib29sIHNob3VsZFN0cmV0Y2ggPSBmYWxzZTsKICAgICBhdXRvIHRpbWVEZWx0YSA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKQEAg
LTM5Myw2ICs0MzksMTEgQEAgdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcFJ1
YmJlckJhbmRpbmcoKQogCiBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydFJ1
YmJlckJhbmRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBG
bG9hdFNpemUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsT3ZlcnNj
cm9sbCkKIHsKKyAgICBpZiAoaXM8U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+KG1fY3VycmVudEFu
aW1hdGlvbikgJiYgbV9jdXJyZW50QW5pbWF0aW9uLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVj
dHNDb250cm9sbGVyOjpzdGFydFJ1YmJlckJhbmRBbmltYXRpb24oKSAtIG1vbWVudHVtIGFuaW1h
dGlvbiBpcyBwcmVzZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBp
ZiAobV9jdXJyZW50QW5pbWF0aW9uKQogICAgICAgICBtX2N1cnJlbnRBbmltYXRpb24tPnN0b3Ao
KTsKIApAQCAtNDM5LDkgKzQ5MCw2IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6
OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkKICAgICBib29sIHdpbGxPdmVy
c2Nyb2xsID0gdGFyZ2V0T2Zmc2V0ICE9IGNvbnRyYWluZWRPZmZzZXQ7CiAKICAgICBhdXRvIHN0
cmV0Y2hBbW91bnQgPSBtX2NsaWVudC5zdHJldGNoQW1vdW50KCk7Ci0KLSAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJv
bGxlcjo6c3RhcnRSdWJiZXJCYW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRB
bmltYXRpb25SdW5uaW5nICIgPDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNo
QW1vdW50ICIgPDwgc3RyZXRjaEFtb3VudCA8PCAiIHRhcmdldE9mZnNldCAiIDw8IHRhcmdldE9m
ZnNldCk7Ci0KICAgICBpZiAoc3RyZXRjaEFtb3VudC5pc1plcm8oKSAmJiAhd2lsbE92ZXJzY3Jv
bGwpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDU5LDYgKzUwNyw3IEBAIHZvaWQgU2Nyb2xsaW5n
RWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkK
ICAgICBpZiAoIW1fY2xpZW50LmFsbG93c1ZlcnRpY2FsU2Nyb2xsaW5nKCkpCiAgICAgICAgIGlu
aXRpYWxWZWxvY2l0eS5zZXRIZWlnaHQoMCk7CiAKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
QW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRS
dWJiZXJCYW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRBbmltYXRpb25SdW5u
aW5nICIgPDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNoQW1vdW50ICIgPDwg
c3RyZXRjaEFtb3VudCA8PCAiIGNvbnRyYWluZWRPZmZzZXQgIiA8PCBjb250cmFpbmVkT2Zmc2V0
IDw8ICIgaW5pdGlhbFZlbG9jaXR5ICIgPDwgaW5pdGlhbFZlbG9jaXR5KTsKICAgICBzdGFydFJ1
YmJlckJhbmRBbmltYXRpb24oY29udHJhaW5lZE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBzdHJl
dGNoQW1vdW50KTsKIH0KIApAQCAtNjM1LDE4ICs2ODQsMTggQEAgYm9vbCBTY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRm
b3JtV2gKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3JvbGxpbmc6CiAgICAgICAg
IHN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAgICAgICAgIG1fc2Nyb2xsU25hcFN0YXRlLT50
cmFuc2l0aW9uVG9Vc2VySW50ZXJhY3Rpb25TdGF0ZSgpOwotICAgICAgICBtX2RyYWdFbmRlZFNj
cm9sbGluZ1ZlbG9jaXR5ID0gLXdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHkoKTsKKyAgICAg
ICAgbV9zY3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXAgPSAtd2hlZWxFdmVudC5zY3JvbGxp
bmdWZWxvY2l0eSgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6
OlVzZXJTY3JvbGxFbmQ6CiAgICAgICAgIGlmIChtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlv
blRvU25hcEFuaW1hdGlvblN0YXRlKG1fY2xpZW50LnNjcm9sbEV4dGVudHMoKSwgbV9jbGllbnQu
cGFnZVNjYWxlRmFjdG9yKCksIG1fY2xpZW50LnNjcm9sbE9mZnNldCgpKSkKICAgICAgICAgICAg
IHN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdo
ZWVsRXZlbnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsQmVnaW46Ci0gICAgICAgIGlmIChtX3Njcm9s
bFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShtX2NsaWVudC5zY3Jv
bGxFeHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxP
ZmZzZXQoKSwgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSwgRmxvYXRTaXplKC13aGVlbEV2
ZW50LmRlbHRhWCgpLCAtd2hlZWxFdmVudC5kZWx0YVkoKSkpKSB7CisgICAgICAgIGlmIChtX3Nj
cm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShtX2NsaWVudC5z
Y3JvbGxFeHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3Jv
bGxPZmZzZXQoKSwgbV9zY3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXAsIC13aGVlbEV2ZW50
LmRlbHRhKCkpKSB7CiAgICAgICAgICAgICBzdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKTsKICAg
ICAgICAgICAgIGlzTW9tZW50dW1TY3JvbGxpbmcgPSB0cnVlOwogICAgICAgICB9Ci0gICAgICAg
IG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2NpdHkgPSB7IH07CisgICAgICAgIG1fc2Nyb2xsaW5n
VmVsb2NpdHlGb3JTY3JvbGxTbmFwID0geyB9OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdo
ZWVsRXZlbnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsaW5nOgogICAgIGNhc2UgV2hlZWxFdmVudFN0
YXR1czo6TW9tZW50dW1TY3JvbGxFbmQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGI3MmM1NDRjMzY3N2NmYWEzOTQxN2U5
MDAzNTFlY2ViZTJjMmU0NS4uY2U2Njg2NTE4NzY0MzZmZTA1Y2Y2MmI3ZDU0ZGY3ZjJjNGJlNjZh
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJ1biBhIFNjcm9sbEFuaW1hdGlvbk1vbWVu
dHVtIGZvciB0aGUgbW9tZW50dW0gcGhhc2Ugb2YgYSBzY3JvbGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgdGVzdHMgdGhhdCBlbmFibGUgdGhl
IG1vbWVudHVtIGFuaW1hdG9yLgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVu
dHVtLWFuaW1hdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJm
bG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1bS1h
bmltYXRvci5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgVUlTY3JpcHRDb250cm9sbGVy
LnNlbmRFdmVudFN0cmVhbSgpIGZvciBEdW1wUmVuZGVyVHJlZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1bS1hbmltYXRvci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTdmY2E4ZmE5ZTZlM2IwNDkyNDg3YmU4NjE1ZTFhMWMzZGY3NDE3
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb21l
bnR1bS1hbmltYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHdpbmRvdy5z
Y3JvbGxZID4gMTUwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9t
YWMvbW9tZW50dW0tYW5pbWF0b3ItaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzU4MDIzYjU4NTQzYjYwNjczZGZlZTI4ZTMxOGRmNTE2YTM4
OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21v
bWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1BBU1Mgd2luZG93LnNjcm9sbFkgaXMgMAorUEFTUyBzY3JvbGxlci5zY3JvbGxUb3AgPiAyMDAg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1bS1h
bmltYXRvci1pbi1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFj
L21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5NWJjM2Ew
ODUzMTg4ODQ0NjUyZjM3ZTdhMjZkOGI0MmVhNDI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1bS1hbmltYXRvci1pbi1vdmVyZmxvdy5o
dG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIE1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVkPXRydWUgQXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgICAg
ICB3aWR0aDogMjAwJTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnNjcm9sbGVyIHsK
KyAgICAgICAgICAgIGhlaWdodDogNTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7Cisg
ICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAgIG92ZXJmbG93
OiBhdXRvOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuY29udGVudCB7CisgICAgICAg
ICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgICAgIGhlaWdodDogNTAwJTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGxldCBzY3JvbGxlcjsKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gdGVzdEV2ZW50U2VxdWVuY2UoKQorICAgICAgICB7CisgICAgICAgICAg
ICBjb25zdCB3aGVlbEV2ZW50U3F1ZW5jZSA9IHsKKyAgICAgICAgICAgICAgICAiZXZlbnRzIiA6
IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA6
ICJ3aGVlbCIsCisgICAgICAgICAgICAgICAgICAgICAgICB2aWV3WCA6IDEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZpZXdZIDogMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVs
dGFZIDogLTEwLCAvLyBOb3RlIHRoYXQgdGhpcyBkZWx0YSBpcyBjdXJyZW50bHkgaWdub3JlZC4K
KyAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogImJlZ2FuIgorICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhWSA6IC0xMDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICBwaGFzZSA6ICJjaGFuZ2VkIgorICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogImVuZGVkIgor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRl
bHRhWSA6IC0xMDAsCisgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnR1bVBoYXNlIDogImJl
Z2FuIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlbHRhWSA6IC04MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudHVtUGhhc2Ug
OiAiY2hhbmdlZCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICBtb21lbnR1bVBoYXNlIDogImVuZGVkIgorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIubW91c2VXaGVlbFNlcXVlbmNlKHdoZWVsRXZlbnRTcXVlbmNlKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICcwJyk7CisgICAgICAgICAgICBzY3JvbGxl
ciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zY3JvbGxlcicpOworICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIHdlIHNjcm9sbGVkIHNvbWUgbm9uLXRyaXZpYWwgYW1vdW50LgorICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCdzY3JvbGxlci5zY3JvbGxUb3AgPiAyMDAnKTsKKyAgICAgICAgfQor
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7CisgICAgICAg
ICAgICBhd2FpdCB0ZXN0RXZlbnRTZXF1ZW5jZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
ICgpID0+IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAgICAg
IH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xh
c3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAg
PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODll
ZmMxNDcxZGQ3MTgzOGEyZTJkZDAxNDkzZjNmYmQ4Y2U3YzdkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLmh0bWwKQEAg
LTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
TW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAw
cHg7CisgICAgICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KyAgICAgICAgCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RFdmVudFNlcXVlbmNlKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgY29uc3Qgd2hlZWxFdmVudFNxdWVuY2UgPSB7CisgICAgICAg
ICAgICAgICAgImV2ZW50cyIgOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgOiAid2hlZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgdmll
d1ggOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICB2aWV3WSA6IDEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRlbHRhWSA6IC0xMCwgLy8gTm90ZSB0aGF0IHRoaXMgZGVsdGEgaXMg
Y3VycmVudGx5IGlnbm9yZWQuCisgICAgICAgICAgICAgICAgICAgICAgICBwaGFzZSA6ICJiZWdh
biIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBkZWx0YVkgOiAtMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAiY2hhbmdl
ZCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBwaGFzZSA6ICJlbmRlZCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBkZWx0YVkgOiAtMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
bW9tZW50dW1QaGFzZSA6ICJiZWdhbiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogIndoZWVsIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRlbHRhWTogLTgwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgbW9tZW50dW1QaGFzZTogImNoYW5nZWQiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgOiAid2hlZWwi
LAorICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50dW1QaGFzZSA6ICJlbmRlZCIKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH07CisKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTZXF1ZW5jZSh3aGVlbEV2ZW50U3F1
ZW5jZSk7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2Ugc2Nyb2xsZWQgc29tZSBub24tdHJp
dmlhbCBhbW91bnQuCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3dpbmRvdy5zY3JvbGxZID4g
MTUwJyk7CisgICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkK
KyAgICAgICAgeworICAgICAgICAgICAgYXdhaXQgdGVzdEV2ZW50U2VxdWVuY2UoKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9s
bFRlc3QsIDApOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="469112"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444164</attachid>
            <date>2021-11-13 21:10:07 -0800</date>
            <delta_ts>2021-11-13 23:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232897-20211113211007.patch</filename>
            <type>text/plain</type>
            <size>28464</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDliNDEwNGJiNjE1YTEwMTI4OWM4Y2Y3
YzkyZGYwZjQ2YzczN2RiMDAuLjExNDU0MWIwNzM1YjM2NzMzMmJiNGZhMjM0NzE1Y2JlOTY5MmI5
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0gZm9yIHRoZSBtb21lbnR1bSBwaGFzZSBvZiBhIHNjcm9sbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhvcnRvbi4KKworICAgICAgICBTZXQgdGhlIE1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0
b3JFbmFibGVkIGludGVybmFsIHNldHRpbmcgdG8gb2ZmIGJ5IGRlZmF1bHQKKyAgICAgICAgd2hp
bGUgd2UgYnJpbmcgdXAgdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMS0xMS0xMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgTWF0aE1MIHdoZW4gaW4gQ2FwdGl2
ZSBQb3J0YWwgTW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNmNjFkNWM2ZjRlMTc5OWEwZmNhODkwMDQ5YTFl
YWYyNmQ5ZTVkMTcuLmVmMzNkZDFhYmY4Mzg2MTc2NDIzNjYyM2Q4OWQ1NmJkNmY4ZDI3MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMS0xMyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSdW4gYSBTY3JvbGxBbmltYXRpb25Nb21l
bnR1bSBmb3IgdGhlIG1vbWVudHVtIHBoYXNlIG9mIGEgc2Nyb2xsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorICAgICAgICAKKyAgICAgICAgUnVuIGFuIGFuaW1hdGlvbiBmb3Ig
dGhlIG1vbWVudHVtIHBoYXNlIG9mIGEgc2Nyb2xsLCByYXRoZXIgdGhhbiBzY3JvbGxpbmcgaW4g
cmVzcG9uc2UKKyAgICAgICAgdG8gd2hlZWwgZXZlbnRzLCBiZWNhdXNlIGl0IHByb2R1Y2VzIGEg
c21vb3RoZXIgcmVzdWx0IHdpdGggZmV3ZXIgZHJvcHBlZCBmcmFtZXMuCisgICAgICAgIAorICAg
ICAgICBXZSByZS11c2UgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gd2hpY2ggaXMgYWxyZWFkeSB1
c2VkIGZvciBzY3JvbGwgc25hcCwgYnV0IGhhdmUgdG8KKyAgICAgICAgYWxsb3cgaXQgdG8geWll
bGQgdW5jbGFtcGVkIGNvb3JkaW5hdGVzLCBzaW5jZSB1c2luZyBpdCBmb3IgbW9tZW50dW0gY2Fu
IHJlc3VsdCBpbgorICAgICAgICBydWJiZXItYmFuZGluZy4KKyAgICAgICAgCisgICAgICAgIFdo
ZW4gd2UgZ2V0IHRoZSBtb21lbnR1bSAiYmVnYW4iIGV2ZW50LCB3ZSBzdGFydCB0aGUgU2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW0KKyAgICAgICAgdXNpbmcgaW5pdGlhbCB2ZWxvY2l0eSBjb21wdXRl
ZCBmcm9tIFdoZWVsRXZlbnREZWx0YUZpbHRlci4gU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIg
dGhlbgorICAgICAgICBpZ25vcmVzIHRoZSByZXNldCBvZiB0aGUgbW9tZW50dW0gImNoYW5nZWQi
IGV2ZW50cy4KKworICAgICAgICBXZSBoYXZlIHRvIHN0b3AgdGhpcyBhbmltYXRpb24gd2hlbiB3
ZSByZWNlaXZlIGEgImJlZ2luIiBvciAibWF5QmVnaW4iIGV2ZW50LCBzaW5jZQorICAgICAgICB0
aGlzIGluZGljYXRlcyB0aGF0IHRoZSB1c2VyIGhhcyBwdXQgZmluZ2VycyBkb3duIG9uIHRoZSB0
cmFja3BhZC4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBtX2RyYWdFbmRlZFNjcm9sbGluZ1Zl
bG9jaXR5IHRvIG1fc2Nyb2xsaW5nVmVsb2NpdHlGb3JTY3JvbGxTbmFwIGZvciBjbGFyaXR5Cisg
ICAgICAgIChhdCBzb21lIHBvaW50IHdlIHNob3VsZCBtZXJnZSB0aGlzIHdpdGggbV9zY3JvbGxp
bmdWZWxvY2l0eUZvck1vbWVudHVtQW5pbWF0aW9uKS4KKworICAgICAgICBUZXN0czogZmFzdC9z
Y3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1bS1hbmltYXRvci5odG1sCisKKyAgICAg
ICAgKiBwYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnNob3VsZEFwcGx5RmlsdGVyaW5nRm9yRXZlbnQpOgorICAg
ICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzdGFydEFuaW1hdGVkU2Nyb2xsV2l0
aEluaXRpYWxWZWxvY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21l
bnR1bTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6
c2VydmljZUFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9t
ZW50dW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6U2Nyb2xs
aW5nRWZmZWN0c0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnN0b3BBbmltYXRlZE5vblJ1YmJlcmJhbmRpbmdTY3JvbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0TW9tZW50dW1TY3Jv
bGxXaXRoSW5pdGlhbFZlbG9jaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXI6Om1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVkIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIubW06CisgICAgICAgIChX
ZWJDb3JlOjpwaGFzZVRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVj
dHNDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydFJ1YmJlckJhbmRBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFu
aW1hdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHND
b250cm9sbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOgorCiAyMDIxLTExLTEz
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGFj
aCBJT0hJREV2ZW50IHRpbWVzdGFtcHMgdG8gd2hlZWwgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFt
bAppbmRleCA3ZmQyYjRlYTE0YmRkMDI1NjFhYWNkY2M4ZDY3NTJjOTk1NzBhOTUwLi4yYzQ2NDVm
YjEyZmI1YWYzNDZkM2ZiMTQyODE3YmUzNmQzZmM1ZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
QEAgLTU0MiwxMyArNTQyLDEwIEBAIE1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVkOgog
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJEcml2ZSBtb21lbnR1bSBzY3JvbGxpbmcgdmlh
IGFuIGludGVybmFsIGFuaW1hdG9yIGluc3RlYWQgb2YgdXNpbmcgbW9tZW50dW0gZXZlbnRzIgog
ICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgotICAgICAgIlBMQVRGT1JNKE1BQyki
OiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYktpdDoKLSAgICAgICJQTEFURk9S
TShNQUMpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgotICAgICAg
IlBMQVRGT1JNKE1BQykiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogCiBNb3VzZUV2ZW50
c1NpbXVsYXRpb25FbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVl
bEV2ZW50RGVsdGFGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVs
dGFGaWx0ZXIuY3BwCmluZGV4IDM2ZGI2YmE3OGQ3OWU2YjJlYzQ5Y2EwOTVhYTg3OGY2MzI3MTc3
YjkuLjgzOTMyMjgxMTQ2MDNjYzRhMDkxNDhmOWYyM2RhMGYzNjUyMTdiNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAgYm9vbCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnNob3VsZEFwcGx5RmlsdGVyaW5nRm9yRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW4KIHsKICNpZiBFTkFCTEUoS0lORVRJQ19TQ1JPTExJ
TkcpCiAgICAgLy8gTWF5YmUgaXQncyBhIHBlci1wbGF0Zm9ybSBkZWNpc2lvbiBhYm91dCB3aGlj
aCBldmVudCBwaGFzZXMgZ2V0IGZpbHRlcmVkLiBJZGVhbGx5IHdlJ2QgZmlsdGVyIG1vbWVudHVt
IGV2ZW50cyB0b28gKGJ1dCB0aGF0IGJyZWFrcyBzb21lIGRpYWdvbmFsIHNjcm9sbGluZyBjYXNl
cykuCisgICAgLy8gQWxzbywgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIgc2hvdWxkIGFzayBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXIgZGlyZWN0bHkgZm9yIHRoZSBmaWx0ZXJlZCB2ZWxvY2l0eSwg
cmF0aGVyIHRoYW4gc2VuZGluZyB0aGUgdmVsb2NpdHkgdmlhIFBsYXRmb3JtV2hlZWxFdmVudC4K
ICAgICBhdXRvIHBoYXNlID0gZXZlbnQucGhhc2UoKTsKICAgICByZXR1cm4gcGhhc2UgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuIHx8IHBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlOjpDaGFuZ2VkOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudERlbHRhRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRE
ZWx0YUZpbHRlci5oCmluZGV4IDhiNGQ3ZTFjNzllZTk3Y2U1MjlmNGMzZjgyOWMzNzljMTVkZGEy
MmQuLmIwMWU1NTVjMTE1ZjViZjdkNTY2ZWQyMTFkZTk1MGE2ZWYwNWMwZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaApAQCAtNjIsNyArNjIsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxTY3JvbGxFdmVudEF4aXM+IGRv
bWluYW50QXhpcygpIGNvbnN0OwotICAgIAorCiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQg
dXBkYXRlV2l0aERlbHRhKEZsb2F0U2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCmluZGV4IGMxZDA0M2E3MjE0OGViYWY3NWE4ZjA5YmFm
YjZiZTRmMjBmMzgzN2YuLjUzODJjMzk3OTNlOTBjYWI5ZDljNDMwMzJjOGQ3OGIyZTA1YjAyMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcApA
QCAtMTA5LDYgKzEwOSw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAjaWYgRU5BQkxFKEtJTkVUSUNfU0NS
T0xMSU5HKQogICAgIHRzIDw8ICIgcGhhc2UgXCIiIDw8IGV2ZW50LnBoYXNlKCkgPDwgIlwiIG1v
bWVudHVtIHBoYXNlIFwiIiA8PCBldmVudC5tb21lbnR1bVBoYXNlKCkgPDwgIlwiIjsKICNlbmRp
ZgorICAgIHRzIDw8ICIgdmVsb2NpdHkgIiA8PCBldmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpOwog
CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwCmluZGV4IDI2MDE5Mjc1MWE4MGZjNDQwZWIxMzVlY2Nh
MjkxY2U0M2I5M2VhMWIuLmQxZmI5NTEzOWM1NTI4ZTc4YTc1NjAyZWMxNjczNzIzOThhNzYzNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVu
dHVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21l
bnR1bS5jcHAKQEAgLTU1LDYgKzU1LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6
c3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoY29uc3QgRmxvYXQKICAgICAg
ICAgfQogICAgIH0KIAorICAgIExPRyhTY3JvbGxBbmltYXRpb25zLCAiU2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW06OnN0YXJ0QW5pbWF0ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5OiB2ZWxvY2l0
eSAlLjJmLCUuMmYgZnJvbSAlLjJmLCUuMmYgdG8gJS4yZiwlLjJmIiwKKyAgICAgICAgaW5pdGlh
bFZlbG9jaXR5LndpZHRoKCksIGluaXRpYWxWZWxvY2l0eS5oZWlnaHQoKSwgaW5pdGlhbE9mZnNl
dC54KCksIGluaXRpYWxPZmZzZXQueSgpLCBkZXN0aW5hdGlvblNjcm9sbE9mZnNldC54KCksIGRl
c3RpbmF0aW9uU2Nyb2xsT2Zmc2V0LnkoKSk7CisKICAgICBpZiAoZGVzdGluYXRpb25TY3JvbGxP
ZmZzZXQgPT0gaW5pdGlhbE9mZnNldCkgewogICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzg0LDggQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25Nb21lbnR1bTo6cmV0YXJnZXRBY3RpdmVBbmltYXRpb24oY29uc3QgRmxv
YXRQb2ludCYgbmV3RGVzdGkKIAogdm9pZCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RvcCgp
CiB7CisgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6
c3RvcDogb2Zmc2V0ICUuMmYsJS4yZiIsIG1fY3VycmVudE9mZnNldC54KCksIG1fY3VycmVudE9m
ZnNldC55KCkpOworCiAgICAgbV9tb21lbnR1bUNhbGN1bGF0b3IgPSBudWxscHRyOwogICAgIFNj
cm9sbEFuaW1hdGlvbjo6c3RvcCgpOwogfQpAQCAtOTgsNiArMTAzLDggQEAgdm9pZCBTY3JvbGxB
bmltYXRpb25Nb21lbnR1bTo6c2VydmljZUFuaW1hdGlvbihNb25vdG9uaWNUaW1lIGN1cnJlbnRU
aW1lKQogCiAgICAgbV9jbGllbnQuc2Nyb2xsQW5pbWF0aW9uRGlkVXBkYXRlKCp0aGlzLCBtX2N1
cnJlbnRPZmZzZXQpOwogCisgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJTY3JvbGxBbmltYXRp
b25Nb21lbnR1bTo6c2VydmljZUFuaW1hdGlvbjogb2Zmc2V0ICUuMmYsJS4yZiBjb21wbGV0ZSAl
ZCIsIG1fY3VycmVudE9mZnNldC54KCksIG1fY3VycmVudE9mZnNldC55KCksIGFuaW1hdGlvbkNv
bXBsZXRlKTsKKwogICAgIGlmIChhbmltYXRpb25Db21wbGV0ZSkKICAgICAgICAgZGlkRW5kKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25N
b21lbnR1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0uaAppbmRleCA3ZTc4YmY4M2U2NDhlNTkyNWFiMzJiZTgwYTdiYTE5NmJhNTg3Y2MyLi5iN2U5
MGZmYzBhMmFmNDViZDVlYTQ4YzBiY2QzMjQzYmMwZDZlZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmgKQEAgLTQyLDYgKzQyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygpIGZpbmFsOwogCiBwcml2
YXRlOgorICAgIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZDsgfQogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yPiBtX21vbWVudHVtQ2FsY3VsYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAppbmRleCAzMWMxN2Ri
MDFmMzY2NzAwYjE0YjFiM2EyMzk2ODRjNGYyNzRjOGJkLi5kNGRjNGQzOWUxNmJkMTZiNjYzNTRj
NzdiZDRjZDRkZWJjNDRjOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OlNjcm9sbGluZ0Vm
ZmVjdHNDb250cm9sbGVyKFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyQ2xpZW50JiBjbGllbnQp
CiAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX21vbWVudHVtU2Nyb2xsaW5nQW5pbWF0
b3JFbmFibGVkKGNsaWVudC5tb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxlZCgpKQogewog
fQogCkBAIC0xMzEsNiArMTMyLDMwIEBAIGJvb2wgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6
OnJldGFyZ2V0QW5pbWF0ZWRTY3JvbGxCeShGbG9hdFNpemUgb2Zmc2V0KQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcEFuaW1hdGVk
Tm9uUnViYmVyYmFuZGluZ1Njcm9sbCgpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbEFu
aW1hdGlvbnMsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIgIiA8PCB0aGlz
IDw8ICIgc3RvcEFuaW1hdGVkTm9uUnViYmVyYmFuZGluZ1Njcm9sbCIpOworCisgICAgaWYgKCFt
X2N1cnJlbnRBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworI2lmIEhBVkUoUlVCQkVSX0JB
TkRJTkcpCisgICAgaWYgKGlzPFNjcm9sbEFuaW1hdGlvblJ1YmJlckJhbmQ+KG1fY3VycmVudEFu
aW1hdGlvbikpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgaWYgKGlzPFNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtPihtX2N1cnJlbnRBbmltYXRpb24pKSB7CisgICAgICAgIC8vIElmIHRo
ZSBhbmltYXRpb24gaXMgY3VycmVudGx5IHRyaWdnZXJpbmcgcnViYmVyYmFuZGluZywgbGV0IGl0
IHJ1bi4gSWRlYWxseSB3ZSdkIGNoZWNrIGlmIHRoZSBhbmltYXRpb24gd2lsbCBjYXVzZSBydWJi
ZXJiYW5kaW5nIGF0IGFueSB0aW1lIGluIHRoZSBmdXR1cmUuCisgICAgICAgIGF1dG8gY3VycmVu
dE9mZnNldCA9IG1fY3VycmVudEFuaW1hdGlvbi0+Y3VycmVudE9mZnNldCgpOworICAgICAgICBh
dXRvIGV4dGVudHMgPSBtX2NsaWVudC5zY3JvbGxFeHRlbnRzKCk7CisgICAgICAgIGF1dG8gY29u
c3RyYWluZWRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihleHRlbnRz
Lm1pbmltdW1TY3JvbGxPZmZzZXQoKSwgZXh0ZW50cy5tYXhpbXVtU2Nyb2xsT2Zmc2V0KCkpOwor
ICAgICAgICBpZiAoY3VycmVudE9mZnNldCAhPSBjb25zdHJhaW5lZE9mZnNldCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRBbmltYXRpb24tPnN0b3AoKTsKK30K
Kwogdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkK
IHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3Jv
bGxpbmdFZmZlY3RzQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBzdG9wQW5pbWF0ZWRTY3JvbGwi
KTsKQEAgLTE1MSw3ICsxNzYsNyBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpz
dGFydE1vbWVudHVtU2Nyb2xsV2l0aEluaXRpYWxWZWxvY2l0eShjb25zdCBGbAogICAgICAgICBt
X2N1cnJlbnRBbmltYXRpb24gPSBtYWtlVW5pcXVlPFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtPigq
dGhpcyk7CiAKICAgICBib29sIHN0YXJ0ZWQgPSBkb3duY2FzdDxTY3JvbGxBbmltYXRpb25Nb21l
bnR1bT4oKm1fY3VycmVudEFuaW1hdGlvbikuc3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFs
VmVsb2NpdHkoaW5pdGlhbE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBpbml0aWFsRGVsdGEsIGRl
c3RpbmF0aW9uTW9kaWZpZXIpOwotICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxBbmltYXRpb25z
LCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydE1vbWVudHVtU2Ny
b2xsV2l0aEluaXRpYWxWZWxvY2l0eSgpIC0gYW5pbWF0aW9uICIgPDwgKm1fY3VycmVudEFuaW1h
dGlvbiA8PCAiIHN0YXJ0ZWQgIiA8PCBzdGFydGVkKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3Rh
cnRNb21lbnR1bVNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoKSAtIGFuaW1hdGlvbiAiIDw8ICpt
X2N1cnJlbnRBbmltYXRpb24gPDwgIiBpbml0aWFsVmVsb2NpdHkgIiA8PCBpbml0aWFsVmVsb2Np
dHkgPDwgIiBpbml0aWFsRGVsdGEgIiA8PCBpbml0aWFsRGVsdGEgPDwgIiBzdGFydGVkICIgPDwg
c3RhcnRlZCk7CiAgICAgcmV0dXJuIHN0YXJ0ZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5oCmluZGV4IDYwYmJjZDVh
NDcyNzQxMjA3ZTUyM2I1MjczZTAxMDI5N2Q5ZTkyNjIuLjBkMTkxYTM3MDYxZjRmM2QxYWZmZThi
YjQ5MjQ3MWJlZjM2ZDA0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaApAQCAtMTM4LDcgKzEzOCw5IEBAIHB1YmxpYzoK
ICAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb0Rlc3RpbmF0aW9uKEZsb2F0UG9pbnQgc3Rh
cnRPZmZzZXQsIEZsb2F0UG9pbnQgZGVzdGluYXRpb25PZmZzZXQpOwogICAgIGJvb2wgcmV0YXJn
ZXRBbmltYXRlZFNjcm9sbChGbG9hdFBvaW50IG5ld0Rlc3RpbmF0aW9uT2Zmc2V0KTsKICAgICBi
b29sIHJldGFyZ2V0QW5pbWF0ZWRTY3JvbGxCeShGbG9hdFNpemUpOworCiAgICAgdm9pZCBzdG9w
QW5pbWF0ZWRTY3JvbGwoKTsKKyAgICB2b2lkIHN0b3BBbmltYXRlZE5vblJ1YmJlcmJhbmRpbmdT
Y3JvbGwoKTsKIAogICAgIHZvaWQgc3RvcEtleWJvYXJkU2Nyb2xsaW5nKCk7CiAKQEAgLTIyMSw2
ICsyMjMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydE9yU3RvcEFuaW1hdGlvbkNhbGxi
YWNrcygpOwogCisgICAgYm9vbCBtb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQ7IH0KKwogICAg
IC8vIFNjcm9sbEFuaW1hdGlvbkNsaWVudAogICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uRGlkVXBk
YXRlKFNjcm9sbEFuaW1hdGlvbiYsIGNvbnN0IEZsb2F0UG9pbnQmIC8qIGN1cnJlbnRPZmZzZXQg
Ki8pIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uV2lsbFN0YXJ0KFNjcm9sbEFuaW1h
dGlvbiYpIGZpbmFsOwpAQCAtMjQ4LDYgKzI1Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
QW5pbWF0aW5nU2Nyb2xsU25hcCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQW5pbWF0aW5nS2V5
Ym9hcmRTY3JvbGxpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pblNjcm9sbEdlc3R1cmUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbGluZ0FuaW1hdG9yRW5hYmxlZCB7IGZh
bHNlIH07CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgV2FsbFRpbWUgbV9sYXN0TW9tZW50dW1T
Y3JvbGxUaW1lc3RhbXA7CkBAIC0yNTUsMTEgKzI2MCwxNiBAQCBwcml2YXRlOgogICAgIEZsb2F0
U2l6ZSBtX3N0cmV0Y2hTY3JvbGxGb3JjZTsKICAgICBGbG9hdFNpemUgbV9tb21lbnR1bVZlbG9j
aXR5OwogCisgICAgRmxvYXRTaXplIG1fc2Nyb2xsaW5nVmVsb2NpdHlGb3JNb21lbnR1bUFuaW1h
dGlvbjsgLy8gRG8gd2UgbmVlZCBib3RoIHRoaXMsIG1fc2Nyb2xsaW5nVmVsb2NpdHlGb3JTY3Jv
bGxTbmFwIGFuZCBtX21vbWVudHVtVmVsb2NpdHk/CisgICAgRmxvYXRTaXplIG1fc2Nyb2xsaW5n
VmVsb2NpdHlGb3JTY3JvbGxTbmFwOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBGbG9hdFBvaW50
IG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQ7CisjZW5kaWYKKwogICAgIGJvb2wgbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pZ25vcmVNb21lbnR1bVNj
cm9sbHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1J1YmJlckJhbmRpbmcgeyBmYWxzZSB9Owog
Ci0gICAgRmxvYXRTaXplIG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2NpdHk7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyVGltZXI+IG1fc3RhdGVsZXNzU25h
cFRyYW5zaXRpb25UaW1lcjsKIAogI2lmIEhBVkUoUlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xs
ZXIubW0KaW5kZXggNTJlMWE1OTU5OGJiM2UzNDk2ZmQwMWIyOTg3NjMyODgwNmQ0M2YxOS4uZTM0
Y2IzMDRiYTcyZjQ2NTUxNDBjMTM2OTA1YzA1YTAzMzA5YjdiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5t
bQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW1w
b3J0ICJTY3JvbGxBbmltYXRpb25SdWJiZXJCYW5kLmgiCiAjaW1wb3J0ICJTY3JvbGxFeHRlbnRz
LmgiCisjaW1wb3J0ICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCIKICNpbXBvcnQgIldoZWVsRXZl
bnRUZXN0TW9uaXRvci5oIgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNTY3JvbGxWaWV3U1BJLmg+
CiAjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CkBAIC0xMTAsMTUgKzExMSw0NCBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxCb3hTaWRlPiBhZmZlY3RlZFNpZGVPbkRvbWluYW50QXhpcyhGbG9hdFNpemUg
ZGVsdGEpCiAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjp0YXJnZXRTaWRlRm9yU2Nyb2xsRGVs
dGEoZGVsdGEsIGRvbWluYW50QXhpcyk7CiB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECitzdGF0aWMg
Y29uc3QgY2hhciogcGhhc2VUb1N0cmluZyhQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkK
K3sKKyAgICBzd2l0Y2ggKHBoYXNlKSB7CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZTo6Tm9uZTogcmV0dXJuICJub25lIjsKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpCZWdhbjogcmV0dXJuICJiZWdhbiI7CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZTo6U3RhdGlvbmFyeTogcmV0dXJuICJzdGF0aW9uYXJ5IjsKKyAgICBjYXNlIFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlOjpDaGFuZ2VkOiByZXR1cm4gImNoYW5nZWQiOworICAgIGNhc2UgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVkOiByZXR1cm4gImVuZGVkIjsKKyAgICBjYXNlIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlOjpDYW5jZWxsZWQ6IHJldHVybiAiY2FuY2VsbGVkIjsKKyAgICBj
YXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbjogcmV0dXJuICJtYXlCZWdpbiI7
CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKyNlbmRpZgorCiBib29sIFNjcm9sbGluZ0VmZmVj
dHNDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKIHsKKyAgICBpZiAoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91bGRBcHBs
eUZpbHRlcmluZ0ZvckV2ZW50KHdoZWVsRXZlbnQpKQorICAgICAgICBtX3Njcm9sbGluZ1ZlbG9j
aXR5Rm9yTW9tZW50dW1BbmltYXRpb24gPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgp
OyAvLyBOb3RlIHRoYXQgZXZlbnQgZGVsdGEgaXMgcmV2ZXJzZWQgZnJvbSBzY3JvbGwgZGlyZWN0
aW9uLgorCiAgICAgaWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpID09
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkg
PT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkKKyAgICBpZiAod2hlZWxFdmVu
dC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2
ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZCkgeworICAg
ICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQoKSkgeworICAgICAgICAg
ICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJFdmVudCAoJXMsICVzKTogc3RvcHBpbmcgYW5pbWF0
ZWQgc2Nyb2xsIiwgcGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50LnBoYXNlKCkpLCBwaGFzZVRvU3Ry
aW5nKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpKSk7CisgICAgICAgICAgICBzdG9wQW5pbWF0
ZWRTY3JvbGwoKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAg
ICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVn
YW4pIHsKKyAgICAgICAgaWYgKG1vbWVudHVtU2Nyb2xsaW5nQW5pbWF0b3JFbmFibGVkKCkpIHsK
KyAgICAgICAgICAgIExPRyhTY3JvbGxBbmltYXRpb25zLCAiRXZlbnQgKCVzLCAlcyk6IHN0b3Bw
aW5nIGFuaW1hdGVkIHNjcm9sbCIsIHBoYXNlVG9TdHJpbmcod2hlZWxFdmVudC5waGFzZSgpKSwg
cGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSkpOworICAgICAgICAgICAg
c3RvcEFuaW1hdGVkU2Nyb2xsKCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBGSVhNRTogVHJ5
aW5nIHRvIGRlY2lkZSBpZiBhIGdlc3R1cmUgaXMgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBhdCB0
aGUgImJlZ2FuIiBwaGFzZSBpcyB2ZXJ5IGVycm9yLXByb25lLgogICAgICAgICBhdXRvIGhvcml6
b250YWxTaWRlID0gU2Nyb2xsYWJsZUFyZWE6OnRhcmdldFNpZGVGb3JTY3JvbGxEZWx0YSgtd2hl
ZWxFdmVudC5kZWx0YSgpLCBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpOwogICAgICAgICBp
ZiAoaG9yaXpvbnRhbFNpZGUgJiYgbV9jbGllbnQuaXNQaW5uZWRPblNpZGUoKmhvcml6b250YWxT
aWRlKSAmJiAhc2hvdWxkUnViYmVyQmFuZE9uU2lkZSgqaG9yaXpvbnRhbFNpZGUpKQpAQCAtMTc3
LDggKzIwNywyNCBAQCBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZQogICAgIGRlbHRhID0gZGVsdGFB
bGlnbmVkVG9Eb21pbmFudEF4aXMoZGVsdGEpOwogCiAgICAgYXV0byBtb21lbnR1bVBoYXNlID0g
d2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCk7Ci0gICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Q
cm9ncmVzcyAmJiAobW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVn
YW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZCkp
CisgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1QaGFzZSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZCkpIHsKICAgICAgICAgbV9tb21lbnR1bVNjcm9s
bEluUHJvZ3Jlc3MgPSB0cnVlOworICAgICAgICBpZiAobW9tZW50dW1TY3JvbGxpbmdBbmltYXRv
ckVuYWJsZWQoKSkgeworICAgICAgICAgICAgc3RhcnRNb21lbnR1bVNjcm9sbFdpdGhJbml0aWFs
VmVsb2NpdHkobV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fc2Nyb2xsaW5nVmVsb2NpdHlGb3JN
b21lbnR1bUFuaW1hdGlvbiwgLXdoZWVsRXZlbnQuZGVsdGEoKSwgW10oY29uc3QgRmxvYXRQb2lu
dCYgdGFyZ2V0T2Zmc2V0KSB7IHJldHVybiB0YXJnZXRPZmZzZXQ7IH0pOworI2lmICFMT0dfRElT
QUJMRUQKKyAgICAgICAgICAgIG1fZXZlbnREcml2ZW5TY3JvbGxPZmZzZXQgPSBtX2NsaWVudC5z
Y3JvbGxPZmZzZXQoKTsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1vbWVu
dHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQgJiYgbW9tZW50dW1T
Y3JvbGxpbmdBbmltYXRvckVuYWJsZWQoKSkgeworI2lmICFMT0dfRElTQUJMRUQKKyAgICAgICAg
bV9ldmVudERyaXZlblNjcm9sbE9mZnNldCAtPSB3aGVlbEV2ZW50LmRlbHRhKCk7CisjZW5kaWYK
KyAgICAgICAgTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJFdmVudCAoJXMsICVzKTogaWdub3Jpbmcg
LSB3b3VsZCBoYXZlIHNjcm9sbGVkIHRvICUuMmYsJS4yZiIsIHBoYXNlVG9TdHJpbmcod2hlZWxF
dmVudC5waGFzZSgpKSwgcGhhc2VUb1N0cmluZyh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSks
CisgICAgICAgICAgICBtX2V2ZW50RHJpdmVuU2Nyb2xsT2Zmc2V0LngoKSwgbV9ldmVudERyaXZl
blNjcm9sbE9mZnNldC55KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICBi
b29sIHNob3VsZFN0cmV0Y2ggPSBmYWxzZTsKICAgICBhdXRvIHRpbWVEZWx0YSA9IHdoZWVsRXZl
bnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKQEAgLTM5Myw2
ICs0MzksMTEgQEAgdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RvcFJ1YmJlckJh
bmRpbmcoKQogCiBib29sIFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGFydFJ1YmJlckJh
bmRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsT3ZlcnNjcm9sbCkK
IHsKKyAgICBpZiAoaXM8U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+KG1fY3VycmVudEFuaW1hdGlv
bikgJiYgbV9jdXJyZW50QW5pbWF0aW9uLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxBbmltYXRpb25zLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0VmZmVjdHNDb250
cm9sbGVyOjpzdGFydFJ1YmJlckJhbmRBbmltYXRpb24oKSAtIG1vbWVudHVtIGFuaW1hdGlvbiBp
cyBwcmVzZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAobV9j
dXJyZW50QW5pbWF0aW9uKQogICAgICAgICBtX2N1cnJlbnRBbmltYXRpb24tPnN0b3AoKTsKIApA
QCAtNDM5LDkgKzQ5MCw2IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnN0YXJ0
UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkKICAgICBib29sIHdpbGxPdmVyc2Nyb2xs
ID0gdGFyZ2V0T2Zmc2V0ICE9IGNvbnRyYWluZWRPZmZzZXQ7CiAKICAgICBhdXRvIHN0cmV0Y2hB
bW91bnQgPSBtX2NsaWVudC5zdHJldGNoQW1vdW50KCk7Ci0KLSAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsQW5pbWF0aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6
c3RhcnRSdWJiZXJCYW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRBbmltYXRp
b25SdW5uaW5nICIgPDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNoQW1vdW50
ICIgPDwgc3RyZXRjaEFtb3VudCA8PCAiIHRhcmdldE9mZnNldCAiIDw8IHRhcmdldE9mZnNldCk7
Ci0KICAgICBpZiAoc3RyZXRjaEFtb3VudC5pc1plcm8oKSAmJiAhd2lsbE92ZXJzY3JvbGwpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtNDU5LDYgKzUwNyw3IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnN0YXJ0UnViYmVyQmFuZEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkKICAgICBp
ZiAoIW1fY2xpZW50LmFsbG93c1ZlcnRpY2FsU2Nyb2xsaW5nKCkpCiAgICAgICAgIGluaXRpYWxW
ZWxvY2l0eS5zZXRIZWlnaHQoMCk7CiAKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsQW5pbWF0
aW9ucywgc3RyZWFtIDw8ICJTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnRSdWJiZXJC
YW5kQW5pbWF0aW9uSWZOZWNlc3NhcnkoKSAtIHJ1YmJlckJhbmRBbmltYXRpb25SdW5uaW5nICIg
PDwgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPDwgIiBzdHJldGNoQW1vdW50ICIgPDwgc3RyZXRj
aEFtb3VudCA8PCAiIGNvbnRyYWluZWRPZmZzZXQgIiA8PCBjb250cmFpbmVkT2Zmc2V0IDw8ICIg
aW5pdGlhbFZlbG9jaXR5ICIgPDwgaW5pdGlhbFZlbG9jaXR5KTsKICAgICBzdGFydFJ1YmJlckJh
bmRBbmltYXRpb24oY29udHJhaW5lZE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBzdHJldGNoQW1v
dW50KTsKIH0KIApAQCAtNjM1LDE4ICs2ODQsMTggQEAgYm9vbCBTY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2gK
ICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3JvbGxpbmc6CiAgICAgICAgIHN0b3BT
Y3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAgICAgICAgIG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0
aW9uVG9Vc2VySW50ZXJhY3Rpb25TdGF0ZSgpOwotICAgICAgICBtX2RyYWdFbmRlZFNjcm9sbGlu
Z1ZlbG9jaXR5ID0gLXdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHkoKTsKKyAgICAgICAgbV9z
Y3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXAgPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxv
Y2l0eSgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJT
Y3JvbGxFbmQ6CiAgICAgICAgIGlmIChtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvU25h
cEFuaW1hdGlvblN0YXRlKG1fY2xpZW50LnNjcm9sbEV4dGVudHMoKSwgbV9jbGllbnQucGFnZVNj
YWxlRmFjdG9yKCksIG1fY2xpZW50LnNjcm9sbE9mZnNldCgpKSkKICAgICAgICAgICAgIHN0YXJ0
U2Nyb2xsU25hcEFuaW1hdGlvbigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZl
bnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsQmVnaW46Ci0gICAgICAgIGlmIChtX3Njcm9sbFNuYXBT
dGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShtX2NsaWVudC5zY3JvbGxFeHRl
bnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZzZXQo
KSwgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSwgRmxvYXRTaXplKC13aGVlbEV2ZW50LmRl
bHRhWCgpLCAtd2hlZWxFdmVudC5kZWx0YVkoKSkpKSB7CisgICAgICAgIGlmIChtX3Njcm9sbFNu
YXBTdGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShtX2NsaWVudC5zY3JvbGxF
eHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZz
ZXQoKSwgbV9zY3JvbGxpbmdWZWxvY2l0eUZvclNjcm9sbFNuYXAsIC13aGVlbEV2ZW50LmRlbHRh
KCkpKSB7CiAgICAgICAgICAgICBzdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKTsKICAgICAgICAg
ICAgIGlzTW9tZW50dW1TY3JvbGxpbmcgPSB0cnVlOwogICAgICAgICB9Ci0gICAgICAgIG1fZHJh
Z0VuZGVkU2Nyb2xsaW5nVmVsb2NpdHkgPSB7IH07CisgICAgICAgIG1fc2Nyb2xsaW5nVmVsb2Np
dHlGb3JTY3JvbGxTbmFwID0geyB9OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZl
bnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsaW5nOgogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6
TW9tZW50dW1TY3JvbGxFbmQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGI3MmM1NDRjMzY3N2NmYWEzOTQxN2U5MDAzNTFl
Y2ViZTJjMmU0NS4uYzQ5OTkzMTRkZGY1NmI4NzcwMDIxZTY3NjQxNWUxYzJhYTIzYTNmNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJ1biBhIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtIGZv
ciB0aGUgbW9tZW50dW0gcGhhc2Ugb2YgYSBzY3JvbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjg5NworCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgU29tZSB0ZXN0cyB0aGF0IGVuYWJsZSB0aGUgbW9tZW50dW0g
YW5pbWF0b3IuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0
b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvbW9t
ZW50dW0tYW5pbWF0b3ItaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3ItaW4tb3ZlcmZsb3cuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLmh0
bWw6IEFkZGVkLgorCiAyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBVSVNjcmlwdENvbnRyb2xsZXIuc2VuZEV2ZW50
U3RyZWFtKCkgZm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hN2ZjYThmYTllNmUzYjA0OTI0ODdiZTg2MTVlMWExYzNkZjc0MTc4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1h
dG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgd2luZG93LnNjcm9sbFkgPiAx
NTAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb21lbnR1
bS1hbmltYXRvci1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3ItaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA3NTgwMjNiNTg1NDNiNjA2NzNkZmVlMjhlMzE4ZGY1MTZhMzg4YTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5p
bWF0b3ItaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyB3aW5k
b3cuc2Nyb2xsWSBpcyAwCitQQVNTIHNjcm9sbGVyLnNjcm9sbFRvcCA+IDIwMCBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWlu
LW92ZXJmbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0t
YW5pbWF0b3ItaW4tb3ZlcmZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDk1YmMzYTA4NTMxODg4NDQ2
NTJmMzdlN2EyNmQ4YjQyZWE0MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvbWFjL21vbWVudHVtLWFuaW1hdG9yLWluLW92ZXJmbG93Lmh0bWwKQEAgLTAs
MCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgTW9t
ZW50dW1TY3JvbGxpbmdBbmltYXRvckVuYWJsZWQ9dHJ1ZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAg
Ym9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAy
MDAlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAg
ICAgaGVpZ2h0OiA1MDBweDsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5jb250ZW50IHsKKyAgICAgICAgICAgIHdpZHRo
OiAyMDAlOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAlOworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICAKKyAgICAgICAgbGV0IHNjcm9sbGVyOworICAgICAgICBhc3luYyBmdW5j
dGlvbiB0ZXN0RXZlbnRTZXF1ZW5jZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IHdo
ZWVsRXZlbnRTcXVlbmNlID0geworICAgICAgICAgICAgICAgICJldmVudHMiIDogWworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIDogIndoZWVsIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdYIDogMTAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgdmlld1kgOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWx0YVkgOiAtMTAs
IC8vIE5vdGUgdGhhdCB0aGlzIGRlbHRhIGlzIGN1cnJlbnRseSBpZ25vcmVkLgorICAgICAgICAg
ICAgICAgICAgICAgICAgcGhhc2UgOiAiYmVnYW4iCisgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgOiAid2hl
ZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGFZIDogLTEwMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBoYXNlIDogImNoYW5nZWQiCisgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgOiAid2hl
ZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAiZW5kZWQiCisgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgOiAid2hlZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGFZIDogLTEw
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudHVtUGhhc2UgOiAiYmVnYW4iCisgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGUgOiAid2hlZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGFZ
IDogLTgwLAorICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50dW1QaGFzZSA6ICJjaGFuZ2Vk
IgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1vbWVudHVtUGhhc2UgOiAiZW5kZWQiCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5t
b3VzZVdoZWVsU2VxdWVuY2Uod2hlZWxFdmVudFNxdWVuY2UpOworICAgICAgICAgICAgc2hvdWxk
QmUoJ3dpbmRvdy5zY3JvbGxZJywgJzAnKTsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignLnNjcm9sbGVyJyk7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUg
d2Ugc2Nyb2xsZWQgc29tZSBub24tdHJpdmlhbCBhbW91bnQuCisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoJ3Njcm9sbGVyLnNjcm9sbFRvcCA+IDIwMCcpOworICAgICAgICB9CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0
IHRlc3RFdmVudFNlcXVlbmNlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gewor
ICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgfSwgZmFsc2Up
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xs
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL21hYy9tb21lbnR1bS1hbmltYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4OWVmYzE0NzFkZDcx
ODM4YTJlMmRkMDE0OTNmM2ZiZDhjZTdjN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9tYWMvbW9tZW50dW0tYW5pbWF0b3IuaHRtbApAQCAtMCwwICsxLDcx
IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb21lbnR1bVNj
cm9sbGluZ0FuaW1hdG9yRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
dHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAg
ICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAK
KyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdEV2ZW50U2VxdWVuY2UoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBjb25zdCB3aGVlbEV2ZW50U3F1ZW5jZSA9IHsKKyAgICAgICAgICAgICAgICAi
ZXZlbnRzIiA6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAgICAgICAgICAgICAgICAgICB2aWV3WCA6IDEwMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdZIDogMTAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZGVsdGFZIDogLTEwLCAvLyBOb3RlIHRoYXQgdGhpcyBkZWx0YSBpcyBjdXJyZW50bHkg
aWdub3JlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogImJlZ2FuIgorICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhWSA6
IC0xMDAsCisgICAgICAgICAgICAgICAgICAgICAgICBwaGFzZSA6ICJjaGFuZ2VkIgorICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDog
ImVuZGVkIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIDogIndoZWVsIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRlbHRhWSA6IC0xMDAsCisgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnR1bVBo
YXNlIDogImJlZ2FuIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAid2hlZWwiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgZGVsdGFZOiAtODAsCisgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnR1
bVBoYXNlOiAiY2hhbmdlZCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA6ICJ3aGVlbCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBtb21lbnR1bVBoYXNlIDogImVuZGVkIgorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNlcXVlbmNlKHdoZWVsRXZlbnRTcXVlbmNlKTsKKyAg
ICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBzY3JvbGxlZCBzb21lIG5vbi10cml2aWFsIGFtb3Vu
dC4KKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnd2luZG93LnNjcm9sbFkgPiAxNTAnKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7
CisgICAgICAgICAgICBhd2FpdCB0ZXN0RXZlbnRTZXF1ZW5jZSgpOworICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7
CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>