<?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>114336</bug_id>
          
          <creation_ts>2013-04-09 23:18:04 -0700</creation_ts>
          <short_desc>Removed bitrotted TimeoutChecker code</short_desc>
          <delta_ts>2013-04-10 11:50:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dgrogan</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>872616</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-09 23:18:04 -0700</bug_when>
    <thetext>Removed bitrotted TimeoutChecker code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872619</commentid>
    <comment_count>1</comment_count>
      <attachid>197214</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-09 23:21:35 -0700</bug_when>
    <thetext>Created attachment 197214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872674</commentid>
    <comment_count>2</comment_count>
      <attachid>197214</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-10 02:32:05 -0700</bug_when>
    <thetext>Comment on attachment 197214
Patch

Attachment 197214 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17710082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872701</commentid>
    <comment_count>3</comment_count>
      <attachid>197214</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-10 03:58:18 -0700</bug_when>
    <thetext>Comment on attachment 197214
Patch

Attachment 197214 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17604070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872812</commentid>
    <comment_count>4</comment_count>
      <attachid>197273</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-10 08:49:33 -0700</bug_when>
    <thetext>Created attachment 197273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872908</commentid>
    <comment_count>5</comment_count>
      <attachid>197273</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-04-10 09:47:15 -0700</bug_when>
    <thetext>Comment on attachment 197273
Patch

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

Oh, this smell of bitrot in the morning...

&gt; Source/JavaScriptCore/ChangeLog:31
&gt; +        * dfg/DFGGPRInfo.h:
&gt; +        (GPRInfo):
&gt; +        * jit/JIT.cpp:
&gt; +        (JSC):
&gt; +        * jit/JIT.h:
&gt; +        (JIT):
&gt; +        * jit/JITStubs.cpp:
&gt; +        (JSC):

This is so unhelpful. Personally, I think that even file lists are unnecessary in ChangeLogs for patches like this, but listing namespaces is just wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873066</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-10 11:50:14 -0700</bug_when>
    <thetext>Committed r148119: &lt;http://trac.webkit.org/changeset/148119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197214</attachid>
            <date>2013-04-09 23:21:35 -0700</date>
            <delta_ts>2013-04-10 08:49:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114336-20130409232117.patch</filename>
            <type>text/plain</type>
            <size>58489</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDEzLTA0LTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBiaXRyb3R0ZWQgVGltZW91dENoZWNrZXIgY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtZWNoYW5pc20gaGFzbid0IHdv
cmtlZCBmb3IgYSB3aGlsZS4KKworICAgICAgICBNYXJrTCBpcyB3b3JraW5nIG9uIGEgbmV3IHZl
cnNpb24gb2YgdGhpcyBmZWF0dXJlIHdpdGggYSBkaXN0aW5jdAorICAgICAgICBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAqIEFQSS9BUElTaGltcy5oOgorICAgICAgICAoSlNDOjpBUElFbnRy
eVNoaW06On5BUElFbnRyeVNoaW0pOgorICAgICAgICAoSlNDOjpBUElFbnRyeVNoaW06OmluaXQp
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVFeHBv
cnRzLmRlZjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZUV4cG9ydEdlbmVyYXRvci9KYXZhU2NyaXB0Q29yZUV4cG9ydHMuZGVmLmluOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBkZmcvREZHR1BSSW5mby5oOgorICAgICAgICAo
R1BSSW5mbyk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAg
ICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpJVCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNw
cDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICog
aml0L0pTSW50ZXJmYWNlSklULmg6CisgICAgICAgIChKU0ludGVyZmFjZUpJVCk6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6
OkpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAg
ICAgKEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OlN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKToKKyAgICAgICAg
KEpTQyk6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9UaW1lb3V0Q2hl
Y2tlci5oOiBSZW1vdmVkLgorCiAyMDEzLTA0LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGxpdmVuZXNzIHRlc3RzIHRvIEpTQyBBUEkgZW50cnkgcG9p
bnRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2
aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0JKHdvcmtpbmcgY29weSkKQEAgLTc4Miw4ICs3ODIsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlcm1pbmF0b3IuaCBcCi0JU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UcmFjaW5nLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJy
YXlEZXNjcmlwdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VpbnQxNldp
dGhGcmFjdGlvbi5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAx
NDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5
KQpAQCAtMzIzLDcgKzMyMyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJ1bnRpbWUvU3RydWN0dXJl
LmNwcCBcCiAgICAgcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgXAogICAgIHJ1bnRpbWUv
U3ltYm9sVGFibGUuY3BwIFwKLSAgICBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcCBcCiAgICAg
dG9vbHMvQ29kZVByb2ZpbGUuY3BwIFwKICAgICB0b29scy9Db2RlUHJvZmlsaW5nLmNwcCBcCiAg
ICAgeWFyci9ZYXJySklULmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0FQ
SVNoaW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElTaGlt
cy5oCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0FQSVNo
aW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDcgKzkyLDYgQEAgcHVibGljOgogCiAgICAgfkFQ
SUVudHJ5U2hpbSgpCiAgICAgewotICAgICAgICBtX2dsb2JhbERhdGEtPnRpbWVvdXRDaGVja2Vy
LnN0b3AoKTsKICAgICAgICAgbV9nbG9iYWxEYXRhLT5hcGlMb2NrKCkudW5sb2NrKCk7CiAgICAg
fQogCkBAIC0xMDAsNyArOTksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdCgpCiAgICAgewog
ICAgICAgICBtX2dsb2JhbERhdGEtPmFwaUxvY2soKS5sb2NrKCk7Ci0gICAgICAgIG1fZ2xvYmFs
RGF0YS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICB9CiB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagko
cmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEzNzQsMTQgKzEzNzQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFRpbWVvdXRDaGVja2VyLmNwcCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxU
aW1lb3V0Q2hlY2tlci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxydW50aW1lXFR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAJCQkJPgogCQkJ
PC9GaWxlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUV4cG9ydHMuZGVmCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZgkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZUV4cG9ydHMuZGVmCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNyArMTg5LDYgQEAg
RVhQT1JUUwogICAgID9kZXN0cm95QE91dE9mTGluZUJpdHNAQml0VmVjdG9yQFdURkBAU0FYUEFW
MTIzQEBaCiAgICAgP2RldGFjaEBEZWJ1Z2dlckBKU0NAQFVBRVhQQVZKU0dsb2JhbE9iamVjdEAy
QEBaCiAgICAgP2RldGFjaFRocmVhZEBXVEZAQFlBWElAWgotICAgID9kaWRUaW1lT3V0QFRpbWVv
dXRDaGVja2VyQEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBAWgogICAgID9kaXNjYXJkQWxsQ29k
ZUBKU0dsb2JhbERhdGFASlNDQEBRQUVYWFoKICAgICA/ZGlzcGxheU5hbWVASlNGdW5jdGlvbkBK
U0NAQFFBRT9BVlN0cmluZ0BXVEZAQFBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP2R0b2FAV1RGQEBZ
QVhRQUROQUFfTkFBSEFBSUBaCkBAIC0zNDYsNyArMzQ1LDYgQEAgRVhQT1JUUwogICAgID9yZXNl
cnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQQVhJVzRVc2FnZUAxMkBfTjExQFoKICAg
ICA/cmVzZXJ2ZUNhcGFjaXR5QFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYSUBaCiAgICAgP3Jlc2V0
QFBhcnNlckFyZW5hQEpTQ0BAUUFFWFhaCi0gICAgP3Jlc2V0QFRpbWVvdXRDaGVja2VyQEpTQ0BA
UUFFWFhaCiAgICAgP3Jlc2V0RGF0ZUNhY2hlQEpTR2xvYmFsRGF0YUBKU0NAQFFBRVhYWgogICAg
ID9yZXNpemVAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhJQFoKICAgICA/cmVzaXplT3V0T2ZMaW5l
QEJpdFZlY3RvckBXVEZAQEFBRVhJQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvagkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzY5LDcgKzM2OSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XFN0cnVjdHVyZUNoYWluLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXFN0cnVjdHVyZVJhcmVEYXRhLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXFN5bWJvbFRhYmxlLmNwcCIgLz4NCi0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXFRpbWVvdXRDaGVja2VyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlx0b29sc1xDb2RlUHJvZmlsZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cdG9vbHNcQ29kZVByb2ZpbGluZy5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ceWFyclxZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAiIC8+DQpAQCAtNzUzLDcgKzc1Miw2IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFN0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU3ltYm9sVGFi
bGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFRlcm1pbmF0b3Iu
aCIgLz4NCi0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFRpbWVvdXRDaGVja2Vy
LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxUcmFjaW5nLmgiIC8+
DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxUeXBlZEFycmF5RGVzY3JpcHRv
ci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVWludDE2V2l0aEZy
YWN0aW9uLmgiIC8+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
CSh3b3JraW5nIGNvcHkpCkBAIC03MTQsOSArNzE0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcU3ltYm9sVGFibGUuY3BwIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8
L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxUaW1lb3V0Q2hlY2tlci5jcHAiPg0KLSAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmls
dGVyPg0KLSAgICA8L0NsQ29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29s
c1xDb2RlUHJvZmlsZS5jcHAiPg0KICAgICAgIDxGaWx0ZXI+dG9vbHM8L0ZpbHRlcj4NCiAgICAg
PC9DbENvbXBpbGU+DQpAQCAtMTc5Myw5ICsxNzkwLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcVGVybWluYXRvci5oIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0Zp
bHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxUaW1lb3V0Q2hlY2tlci5oIj4NCi0gICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4N
Ci0gICAgPC9DbEluY2x1ZGU+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxU
cmFjaW5nLmgiPg0KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KICAgICA8L0NsSW5j
bHVkZT4NCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZUV4cG9ydEdlbmVyYXRvci9KYXZhU2NyaXB0Q29yZUV4cG9ydHMuZGVm
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlRXhwb3J0R2VuZXJhdG9yL0phdmFTY3JpcHRDb3JlRXhwb3J0
cy5kZWYuaW4JKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlRXhwb3J0R2VuZXJhdG9yL0phdmFTY3Jp
cHRDb3JlRXhwb3J0cy5kZWYuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE4OSw3ICsxODksNiBAQCBF
WFBPUlRTCiAgICAgP2Rlc3Ryb3lAT3V0T2ZMaW5lQml0c0BCaXRWZWN0b3JAV1RGQEBTQVhQQVYx
MjNAQFoKICAgICA/ZGV0YWNoQERlYnVnZ2VyQEpTQ0BAVUFFWFBBVkpTR2xvYmFsT2JqZWN0QDJA
QFoKICAgICA/ZGV0YWNoVGhyZWFkQFdURkBAWUFYSUBaCi0gICAgP2RpZFRpbWVPdXRAVGltZW91
dENoZWNrZXJASlNDQEBRQUVfTlBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP2Rpc2NhcmRBbGxDb2Rl
QEpTR2xvYmFsRGF0YUBKU0NAQFFBRVhYWgogICAgID9kaXNwbGF5TmFtZUBKU0Z1bmN0aW9uQEpT
Q0BAUUFFP0FWU3RyaW5nQFdURkBAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/ZHRvYUBXVEZAQFlB
WFFBRE5BQV9OQUFIQUFJQFoKQEAgLTM0NSw3ICszNDQsNiBAQCBFWFBPUlRTCiAgICAgP3Jlc2Vy
dmVBbmRDb21taXRAT1NBbGxvY2F0b3JAV1RGQEBTQVBBWElXNFVzYWdlQDEyQF9OMTFAWgogICAg
ID9yZXNlcnZlQ2FwYWNpdHlAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhJQFoKICAgICA/cmVzZXRA
UGFyc2VyQXJlbmFASlNDQEBRQUVYWFoKLSAgICA/cmVzZXRAVGltZW91dENoZWNrZXJASlNDQEBR
QUVYWFoKICAgICA/cmVzZXREYXRlQ2FjaGVASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAgICAg
P3Jlc2l6ZUBTdHJpbmdCdWlsZGVyQFdURkBAUUFFWElAWgogICAgID9yZXNpemVPdXRPZkxpbmVA
Qml0VmVjdG9yQFdURkBAQUFFWElAWgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NzksOCArNDc5
LDYgQEAKIAkJMTQ5NzIwOTExNEVCODMxNTAwRkVCMUI3IC8qIFBhc3NXZWFrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk3MjA5MDE0RUI4MzE1MDBG
RUIxQjcgLyogUGFzc1dlYWsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxNEExNTYzMjEwOTY2MzY1MDA2RkEyNjAgLyogRGF0ZUluc3RhbmNlQ2Fj
aGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QTE1
NjMwMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRlSW5zdGFuY2VDYWNoZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0QTIzRDc1MEY0RTFBQkIwMDIz
Q0RBRCAvKiBKSVRTdHVicy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNEEyM0Q2QzBGNEUxOUNFMDAyM0NEQUQgLyogSklUU3R1YnMuY3BwICovOyB9
OwotCQkxNEE0MkUzRjBGNEY2MEVFMDA1OTkwOTkgLyogVGltZW91dENoZWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBNDJFM0QwRjRGNjBF
RTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmNwcCAqLzsgfTsKLQkJMTRBNDJFNDAwRjRGNjBF
RTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNEE0MkUzRTBGNEY2MEVFMDA1OTkwOTkgLyogVGltZW91dENo
ZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxNEFCREY2MDBBNDM3RkVGMDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFCREY1RTBBNDM3RkVG
MDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVjdC5jcHAgKi87IH07CiAJCTE0QjcyM0IyMTJEN0RB
NDYwMDNCRDVFRCAvKiBNYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCNzIzM0YxMkQ3RDBEQTAwM0JENUVEIC8qIE1h
Y2hpbmVTdGFja01hcmtlci5jcHAgKi87IH07CiAJCTE0QjcyM0I4MTJEN0RBNkYwMDNCRDVFRCAv
KiBNYWNoaW5lU3RhY2tNYXJrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0QjcyMzQwMTJEN0QwREEwMDNCRDVFRCAvKiBNYWNoaW5lU3RhY2tNYXJr
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTMzNyw4ICsxMzM1LDYgQEAKIAkJMTRBMTU2MzAxMDk2NjM2NTAwNkZBMjYwIC8qIERhdGVJbnN0
YW5jZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVJbnN0YW5j
ZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTIzRDZDMEY0RTE5Q0Uw
MDIzQ0RBRCAvKiBKSVRTdHVicy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKSVRTdHVicy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTM5NkE2
MENEMjkzMzEwMEI1QjRGRiAvKiBTeW1ib2xUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTeW1ib2xUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkx
NEE0MkUzRDBGNEY2MEVFMDA1OTkwOTkgLyogVGltZW91dENoZWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZW91dENoZWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkxNEE0MkUzRTBGNEY2MEVFMDA1OTkwOTkgLyogVGltZW91dENo
ZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZW91dENoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRBNjU4MUEwRjRFMzZGNDAwMDE1MEZE
IC8qIEpJVFN0dWJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVFN0dWJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUJCMzZFMDk5QzA3NjQwMEUyQTI0
RiAvKiBKU0NKU1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NK
U1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUJCNDU0MDk5QzJBMEYw
MEUyQTI0RiAvKiBKU1R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2LDggKzI1OTIsNiBAQAog
CQkJCTBGOTE5RDI3MTU4NTY3NzAwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgKi8sCiAJCQkJ
MTRBMzk2QTYwQ0QyOTMzMTAwQjVCNEZGIC8qIFN5bWJvbFRhYmxlLmggKi8sCiAJCQkJOTdGNjkw
M0ExMTY5REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLywKLQkJCQkxNEE0MkUzRDBGNEY2
MEVFMDA1OTkwOTkgLyogVGltZW91dENoZWNrZXIuY3BwICovLAotCQkJCTE0QTQyRTNFMEY0RjYw
RUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5oICovLAogCQkJCTVENTM3MjZEMEUxQzU0NkIw
MDIxRTU0OSAvKiBUcmFjaW5nLmQgKi8sCiAJCQkJNUQ1MzcyNkUwRTFDNTQ4ODAwMjFFNTQ5IC8q
IFRyYWNpbmcuaCAqLywKIAkJCQkwRkVCM0VDQjE2MjM3RjQ3MDBBQjY3QUQgLyogVHlwZWRBcnJh
eURlc2NyaXB0b3IuaCAqLywKQEAgLTMzODIsNyArMzM3Niw2IEBACiAJCQkJOTcxRURFQTYxMTY5
RTBEMzAwNUU0MjYyIC8qIFRlcm1pbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTcyRDRG
MTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTczODY1NTYxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMTRBNDJFNDAwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDE0NDhDRDEzQTE3ODM3MDBGNUJBMUEgLyogVGlueUJsb29tRmls
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDUzNzI2RjBFMUM1NDg4MDAyMUU1NDkgLyogVHJh
Y2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQjNFQ0QxNjIzN0Y0RDAwQUI2N0FEIC8qIFR5
cGVkQXJyYXlEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTQwNTQsNyArNDA0Nyw2IEBA
CiAJCQkJMEY5MTlEMjgxNTg1Njc3MzAwNEE0RTdEIC8qIFN5bWJvbFRhYmxlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3Mzg2NTU1MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI1RDcwOUIxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFu
YWdlZFZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMTRBNDJFM0YwRjRGNjBFRTAwNTk5MDk5
IC8qIFRpbWVvdXRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzRBMTU4RUJF
OTEwMDRDQjlGRiAvKiB1ZGlzODYuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQwMTU4RUJF
OEIwMDRDQjlGRiAvKiB1ZGlzODZfZGVjb2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0
MzE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2X2lucHV0LmMgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR1BSSW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR1BSSW5mby5oCShyZXZpc2lvbiAxNDgwNzcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtMzI0LDcgKzMyNCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRj
aCB0aGUgYmFzZWxpbmUgSklULgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0
UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRp
bWVvdXRDaGVja1JlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTI7CiAgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjEzOwogICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgdGFnVHlwZU51bWJlclJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTQ7
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OnIxNTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDE0ODA3NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE4LDM4ICsxMTgsNiBAQCB2b2lkIEpJVDo6ZW1pdE9wdGltaXphdGlvbkNoZWNrKE9wdGltaXph
CiB9CiAjZW5kaWYKIAotI2lmIENQVShYODYpCi12b2lkIEpJVDo6ZW1pdFRpbWVvdXRDaGVjaygp
Ci17Ci0gICAgSnVtcCBza2lwVGltZW91dCA9IGJyYW5jaFN1YjMyKE5vblplcm8sIFRydXN0ZWRJ
bW0zMigxKSwgQWJzb2x1dGVBZGRyZXNzKCZtX2dsb2JhbERhdGEtPm1fdGltZW91dENvdW50KSk7
Ci0gICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX3RpbWVvdXRfY2hlY2spOwotICAg
IHN0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QxLCByZWdUMCk7IC8vIHNhdmUgbGFzdCByZXN1bHQg
cmVnaXN0ZXJzLgotICAgIHN0dWJDYWxsLmNhbGwocmVnVDApOwotICAgIHN0b3JlMzIocmVnVDAs
ICZtX2dsb2JhbERhdGEtPm1fdGltZW91dENvdW50KTsKLSAgICBzdHViQ2FsbC5nZXRBcmd1bWVu
dCgwLCByZWdUMSwgcmVnVDApOyAvLyByZWxvYWQgbGFzdCByZXN1bHQgcmVnaXN0ZXJzLgotICAg
IHNraXBUaW1lb3V0LmxpbmsodGhpcyk7Ci19Ci0jZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotdm9p
ZCBKSVQ6OmVtaXRUaW1lb3V0Q2hlY2soKQotewotICAgIEp1bXAgc2tpcFRpbWVvdXQgPSBicmFu
Y2hTdWIzMihOb25aZXJvLCBUcnVzdGVkSW1tMzIoMSksIHRpbWVvdXRDaGVja1JlZ2lzdGVyKTsK
LSAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfdGltZW91dF9jaGVjayk7Ci0gICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDEsIHJlZ1QwKTsgLy8gc2F2ZSBsYXN0IHJlc3VsdCBy
ZWdpc3RlcnMuCi0gICAgc3R1YkNhbGwuY2FsbCh0aW1lb3V0Q2hlY2tSZWdpc3Rlcik7Ci0gICAg
c3R1YkNhbGwuZ2V0QXJndW1lbnQoMCwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVsb2FkIGxhc3QgcmVz
dWx0IHJlZ2lzdGVycy4KLSAgICBza2lwVGltZW91dC5saW5rKHRoaXMpOwotfQotI2Vsc2UKLXZv
aWQgSklUOjplbWl0VGltZW91dENoZWNrKCkKLXsKLSAgICBKdW1wIHNraXBUaW1lb3V0ID0gYnJh
bmNoU3ViMzIoTm9uWmVybywgVHJ1c3RlZEltbTMyKDEpLCB0aW1lb3V0Q2hlY2tSZWdpc3Rlcik7
Ci0gICAgSklUU3R1YkNhbGwodGhpcywgY3RpX3RpbWVvdXRfY2hlY2spLmNhbGwodGltZW91dENo
ZWNrUmVnaXN0ZXIpOwotICAgIHNraXBUaW1lb3V0LmxpbmsodGhpcyk7Ci0KLSAgICBraWxsTGFz
dFJlc3VsdFJlZ2lzdGVyKCk7Ci19Ci0jZW5kaWYKLQogI2RlZmluZSBORVhUX09QQ09ERShuYW1l
KSBcCiAgICAgbV9ieXRlY29kZU9mZnNldCArPSBPUENPREVfTEVOR1RIKG5hbWUpOyBcCiAgICAg
YnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE0ODA3NykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTg1OSw3
ICs4NTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0T3B0aW1pemF0aW9u
Q2hlY2soT3B0aW1pemF0aW9uQ2hlY2tLaW5kKSB7IH0KICNlbmRpZgogICAgICAgICAKLSAgICAg
ICAgdm9pZCBlbWl0VGltZW91dENoZWNrKCk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICB2b2lk
IHByaW50Qnl0ZWNvZGVPcGVyYW5kVHlwZXModW5zaWduZWQgc3JjMSwgdW5zaWduZWQgc3JjMik7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZp
c2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDcxLDcgKzQ3MSw2IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIjoiICJcbiIKICAgICAic3cgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIgogI2VuZGlmCiAgICAgIm1vdmUgICQxNiwkNiAg
ICAgICAjIHNldCBjYWxsRnJhbWVSZWdpc3RlciIgIlxuIgotICAgICJsaSAgICAkMTcsNTEyICAg
ICAgIyBzZXQgdGltZW91dENoZWNrUmVnaXN0ZXIiICJcbiIKICAgICAibW92ZSAgJDI1LCQ0ICAg
ICAgICMgbW92ZSBleGVjdXRhYmxlQWRkcmVzcyB0byB0OSIgIlxuIgogICAgICJzdyAgICAkNSwi
IFNUUklOR0laRV9WQUxVRV9PRihSRUdJU1RFUl9GSUxFX09GRlNFVCkgIigkMjkpICMgc3RvcmUg
SlNTdGFjayB0byBjdXJyZW50IHN0YWNrIiAiXG4iCiAgICAgImx3ICAgICQ5LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDIwKSAiKCQyOSkgICAgIyBsb2FkIGdsb2JhbERhdGEg
ZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgpAQCAtMTM3MywyNCArMTM3Miw2IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLURFRklORV9TVFVCX0ZVTkNUSU9OKGludCwgdGltZW91dF9jaGVj
aykKLXsKLSAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7Ci0KLSAgICBKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEgPSBzdGFja0ZyYW1lLmdsb2JhbERhdGE7Ci0gICAgVGltZW91
dENoZWNrZXImIHRpbWVvdXRDaGVja2VyID0gZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXI7Ci0K
LSAgICBpZiAoZ2xvYmFsRGF0YS0+dGVybWluYXRvci5zaG91bGRUZXJtaW5hdGUoKSkgewotICAg
ICAgICBnbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKGdsb2JhbERhdGEpOwotICAgICAgICBWTV9USFJPV19FWENFUFRJT05fQVRfRU5EKCk7
Ci0gICAgfSBlbHNlIGlmICh0aW1lb3V0Q2hlY2tlci5kaWRUaW1lT3V0KHN0YWNrRnJhbWUuY2Fs
bEZyYW1lKSkgewotICAgICAgICBnbG9iYWxEYXRhLT5leGNlcHRpb24gPSBjcmVhdGVJbnRlcnJ1
cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihnbG9iYWxEYXRhKTsKLSAgICAgICAgVk1fVEhST1dfRVhD
RVBUSU9OX0FUX0VORCgpOwotICAgIH0KLQotICAgIHJldHVybiB0aW1lb3V0Q2hlY2tlci50aWNr
c1VudGlsTmV4dENoZWNrKCk7Ci19Ci0KIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQqLCBzdGFj
a19jaGVjaykKIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxNDgwNzcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
Niw3ICs0MDYsNiBAQCBpbnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyKFNUVUJfQVJHU19ECiBp
bnQgSklUX1NUVUIgY3RpX29wX2pncmVhdGVyZXEoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZf
SU5URVJOQUw7CiBpbnQgSklUX1NUVUIgY3RpX29wX2p0cnVlKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwogdm9pZCogSklUX1NUVUIgY3RpX29wX2xvYWRfdmFyYXJncyhTVFVC
X0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLWludCBKSVRfU1RVQiBjdGlfdGltZW91
dF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKIGludCBKSVRfU1RV
QiBjdGlfaGFzX3Byb3BlcnR5KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfU1RVQiBjdGlfb3BfZGVidWcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5U
RVJOQUw7CiB2b2lkIEpJVF9TVFVCIGN0aV9vcF9lbmQoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBX
VEZfSU5URVJOQUw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNl
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFj
ZUpJVC5oCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pT
SW50ZXJmYWNlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGJ1Y2tldENvdW50ZXJSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6cjEwOwogI2VuZGlmCiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMjsKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdp
c3RlcnM6OnIxMzsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGFnVHlwZU51bWJl
clJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHRhZ01hc2tSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjE1OwpAQCAtMTE4LDcgKzEx
Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIFVwZGF0ZSBjdGlUcmFtcG9saW5l
IGluIEpJVFN0dWJzLmNwcCBpZiB0aGVzZSB2YWx1ZXMgYXJlIGNoYW5nZWQhCiAgICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpy
NTsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0ZXIg
PSBBUk1SZWdpc3RlcnM6OnI2OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQg
ZnBSZWdUMCA9IEFSTVJlZ2lzdGVyczo6ZDA7CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lz
dGVySUQgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6ZDE7CkBAIC0xNDUsMTQgKzE0MywxMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDMgPSBN
SVBTUmVnaXN0ZXJzOjpzMjsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6czA7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6
czE7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDAg
PSBNSVBTUmVnaXN0ZXJzOjpmNDsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBm
cFJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6ZjY7CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lz
dGVySUQgZnBSZWdUMiA9IE1JUFNSZWdpc3RlcnM6OmY4OwogICAgICAgICBzdGF0aWMgY29uc3Qg
RlBSZWdpc3RlcklEIGZwUmVnVDMgPSBNSVBTUmVnaXN0ZXJzOjpmMTA7CiAjZWxpZiBDUFUoU0g0
KQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9
IFNINFJlZ2lzdGVyczo6cjg7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxG
cmFtZVJlZ2lzdGVyID0gU0g0UmVnaXN0ZXJzOjpmcDsKIAogICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZWdUMCA9IFNINFJlZ2lzdGVyczo6cjA7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDE0ODA3NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4MCw5ICsxODAsNiBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShH
bG9iYWxEYXRhVHlwCiAjaWZuZGVmIE5ERUJVRwogICAgICwgZXhjbHVzaXZlVGhyZWFkKDApCiAj
ZW5kaWYKLSNpZiBDUFUoWDg2KSAmJiBFTkFCTEUoSklUKQotICAgICwgbV90aW1lb3V0Q291bnQo
NTEyKQotI2VuZGlmCiAgICAgLCBtX25ld1N0cmluZ3NTaW5jZUxhc3RIYXNoQ29ucygwKQogI2lm
IEVOQUJMRShBU1NFTUJMRVIpCiAgICAgLCBtX2NhblVzZUFzc2VtYmxlcihlbmFibGVBc3NlbWJs
ZXIoZXhlY3V0YWJsZUFsbG9jYXRvcikpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcg
KzQ4LDYgQEAKICNpbmNsdWRlICJTdHJvbmcuaCIKICNpbmNsdWRlICJUZXJtaW5hdG9yLmgiCiAj
aW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0jaW5jbHVkZSAiVGltZW91dENoZWNrZXIuaCIK
ICNpbmNsdWRlICJUeXBlZEFycmF5RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYWtSYW5kb20u
aCIKICNpbmNsdWRlIDx3dGYvQnVtcFBvaW50ZXJBbGxvY2F0b3IuaD4KQEAgLTMyNiw3ICszMjUs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBn
ZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9y
KTsKIAotICAgICAgICBUaW1lb3V0Q2hlY2tlciB0aW1lb3V0Q2hlY2tlcjsKICAgICAgICAgVGVy
bWluYXRvciB0ZXJtaW5hdG9yOwogCiAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOwpAQCAtNDE0
LDEwICs0MTIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRJbml0aWFsaXpp
bmdPYmplY3RDbGFzcyhjb25zdCBDbGFzc0luZm8qKTsKICNlbmRpZgogCi0jaWYgQ1BVKFg4Nikg
JiYgRU5BQkxFKEpJVCkKLSAgICAgICAgdW5zaWduZWQgbV90aW1lb3V0Q291bnQ7Ci0jZW5kaWYK
LQogICAgICAgICB1bnNpZ25lZCBtX25ld1N0cmluZ3NTaW5jZUxhc3RIYXNoQ29uczsKIAogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19taW5OdW1iZXJPZk5ld1N0cmluZ3NUb0hhc2hD
b25zID0gMTAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsMTIg
KzEwNSw2IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2IKIEBlbmQK
ICovCiAKLS8vIERlZmF1bHQgbnVtYmVyIG9mIHRpY2tzIGJlZm9yZSBhIHRpbWVvdXQgY2hlY2sg
c2hvdWxkIGJlIGRvbmUuCi1zdGF0aWMgY29uc3QgaW50IGluaXRpYWxUaWNrQ291bnRUaHJlc2hv
bGQgPSAyNTU7Ci0KLS8vIFByZWZlcnJlZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4g
ZWFjaCB0aW1lb3V0IGNoZWNrCi1zdGF0aWMgY29uc3QgaW50IHByZWZlcnJlZFNjcmlwdENoZWNr
VGltZUludGVydmFsID0gMTAwMDsKLQogSlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKICAgICA6IEJhc2Uo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlLCAwKQogICAgICwgbV9tYXNxdWVyYWRlc0FzVW5kZWZpbmVk
V2F0Y2hwb2ludChhZG9wdFJlZihuZXcgV2F0Y2hwb2ludFNldChJbml0aWFsaXplZFdhdGNoaW5n
KSkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMCwyMSArNDIwLDEwIEBAIFN0cmluZ2lm
aWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5naWZpZXIKICAgICBpZiAoIWhvbGRlclN0YWNrV2Fz
RW1wdHkpCiAgICAgICAgIHJldHVybiBTdHJpbmdpZnlTdWNjZWVkZWQ7CiAKLSAgICAvLyBJZiB0
aGlzIGlzIHRoZSBvdXRlcm1vc3QgY2FsbCwgdGhlbiBsb29wIHRvIGhhbmRsZSBldmVyeXRoaW5n
IG9uIHRoZSBob2xkZXIgc3RhY2suCi0gICAgVGltZW91dENoZWNrZXIgbG9jYWxUaW1lb3V0Q2hl
Y2tlcihtX2V4ZWMtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlcik7Ci0gICAgbG9jYWxUaW1l
b3V0Q2hlY2tlci5yZXNldCgpOwotICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IGxvY2FsVGltZW91
dENoZWNrZXIudGlja3NVbnRpbE5leHRDaGVjaygpOwogICAgIGRvIHsKICAgICAgICAgd2hpbGUg
KG1faG9sZGVyU3RhY2subGFzdCgpLmFwcGVuZE5leHRQcm9wZXJ0eSgqdGhpcywgYnVpbGRlcikp
IHsKICAgICAgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7Ci0gICAgICAgICAgICBpZiAoIS0tdGlja0NvdW50
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGxvY2FsVGltZW91dENoZWNrZXIuZGlkVGltZU91dCht
X2V4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVJ
bnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmbV9leGVjLT5nbG9iYWxEYXRhKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZ2lmeUZhaWxlZDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgdGlja0NvdW50ID0gbG9jYWxUaW1lb3V0Q2hlY2tlci50aWNr
c1VudGlsTmV4dENoZWNrKCk7Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbV9o
b2xkZXJTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3aGlsZSAoIW1faG9sZGVyU3RhY2suaXNF
bXB0eSgpKTsKQEAgLTYzOCw4ICs2MjcsNyBAQCBwcml2YXRlOgogICAgIENhbGxEYXRhIG1fY2Fs
bERhdGE7CiB9OwogCi0vLyBXZSBjbGFtcCByZWN1cnNpb24gd2VsbCBiZXlvbmQgYW55dGhpbmcg
cmVhc29uYWJsZSwgYnV0IHdlIGFsc28gaGF2ZSBhIHRpbWVvdXQgY2hlY2sKLS8vIHRvIGd1YXJk
IGFnYWluc3QgImluZmluaXRlIiBleGVjdXRpb24gYnkgaW5zZXJ0aW5nIGFyYml0cmFyaWx5IGxh
cmdlIG9iamVjdHMuCisvLyBXZSBjbGFtcCByZWN1cnNpb24gd2VsbCBiZXlvbmQgYW55dGhpbmcg
cmVhc29uYWJsZS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtRmlsdGVyUmVjdXJzaW9u
ID0gNDAwMDA7CiBlbnVtIFdhbGtlclN0YXRlIHsgU3RhdGVVbmtub3duLCBBcnJheVN0YXJ0U3Rh
dGUsIEFycmF5U3RhcnRWaXNpdE1lbWJlciwgQXJyYXlFbmRWaXNpdE1lbWJlciwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RTdGFydFN0YXRlLCBPYmplY3RTdGFydFZp
c2l0TWVtYmVyLCBPYmplY3RFbmRWaXNpdE1lbWJlciB9OwpAQCAtNjU1LDkgKzY0Myw2IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICBKU1ZhbHVlIGluVmFs
dWUgPSB1bmZpbHRlcmVkOwogICAgIEpTVmFsdWUgb3V0VmFsdWUgPSBqc051bGwoKTsKICAgICAK
LSAgICBUaW1lb3V0Q2hlY2tlciBsb2NhbFRpbWVvdXRDaGVja2VyKG1fZXhlYy0+Z2xvYmFsRGF0
YSgpLnRpbWVvdXRDaGVja2VyKTsKLSAgICBsb2NhbFRpbWVvdXRDaGVja2VyLnJlc2V0KCk7Ci0g
ICAgdW5zaWduZWQgdGlja0NvdW50ID0gbG9jYWxUaW1lb3V0Q2hlY2tlci50aWNrc1VudGlsTmV4
dENoZWNrKCk7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAg
ICAgICAgICAgYXJyYXlTdGFydFN0YXRlOgpAQCAtNjc0LDEyICs2NTksNiBAQCBORVZFUl9JTkxJ
TkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBhcnJheVN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAgICAgICBjYXNlIEFycmF5U3RhcnRWaXNp
dE1lbWJlcjogewotICAgICAgICAgICAgICAgIGlmICghLS10aWNrQ291bnQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGxvY2FsVGltZW91dENoZWNrZXIuZGlkVGltZU91dChtX2V4ZWMpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVJ
bnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmbV9leGVjLT5nbG9iYWxEYXRhKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgdGlja0NvdW50ID0gbG9jYWxUaW1lb3V0Q2hlY2tlci50aWNrc1Vu
dGlsTmV4dENoZWNrKCk7Ci0gICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgSlNB
cnJheSogYXJyYXkgPSBhcnJheVN0YWNrLnBlZWsoKTsKICAgICAgICAgICAgICAgICB1aW50MzJf
dCBpbmRleCA9IGluZGV4U3RhY2subGFzdCgpOwogICAgICAgICAgICAgICAgIGlmIChpbmRleCA9
PSBhcnJheS0+bGVuZ3RoKCkpIHsKQEAgLTczMywxMiArNzEyLDYgQEAgTkVWRVJfSU5MSU5FIEpT
VmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAgfQogICAgICAgICAgICAgb2Jq
ZWN0U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAgICAgIGNhc2UgT2JqZWN0U3RhcnRWaXNpdE1l
bWJlcjogewotICAgICAgICAgICAgICAgIGlmICghLS10aWNrQ291bnQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGxvY2FsVGltZW91dENoZWNrZXIuZGlkVGltZU91dChtX2V4ZWMpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmbV9leGVjLT5nbG9iYWxEYXRhKCkpKTsKLSAgICAg
ICAgICAgICAgICAgICAgdGlja0NvdW50ID0gbG9jYWxUaW1lb3V0Q2hlY2tlci50aWNrc1VudGls
TmV4dENoZWNrKCk7Ci0gICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IG9iamVjdFN0YWNrLnBlZWsoKTsKICAgICAgICAgICAgICAgICB1aW50MzJf
dCBpbmRleCA9IGluZGV4U3RhY2subGFzdCgpOwogICAgICAgICAgICAgICAgIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0aWVzID0gcHJvcGVydHlTdGFjay5sYXN0KCk7CkBAIC03OTYsMTIgKzc2
OSw2IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKIAogICAgICAg
ICBzdGF0ZSA9IHN0YXRlU3RhY2subGFzdCgpOwogICAgICAgICBzdGF0ZVN0YWNrLnJlbW92ZUxh
c3QoKTsKLQotICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICBpZiAobG9j
YWxUaW1lb3V0Q2hlY2tlci5kaWRUaW1lT3V0KG1fZXhlYykpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlv
bigmbV9leGVjLT5nbG9iYWxEYXRhKCkpKTsKLSAgICAgICAgICAgIHRpY2tDb3VudCA9IGxvY2Fs
VGltZW91dENoZWNrZXIudGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICB9CiAgICAgfQog
ICAgIEpTT2JqZWN0KiBmaW5hbEhvbGRlciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KG1fZXhlYyk7
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IENh
bWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiVGltZW91dENoZWNrZXIuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgot
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgotCi0j
aWYgT1MoREFSV0lOKQotI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgotI2VsaWYgT1MoV0lORE9XUykK
LSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jZWxzZQotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0v
LyBOdW1iZXIgb2YgdGlja3MgYmVmb3JlIHRoZSBmaXJzdCB0aW1lb3V0IGNoZWNrIGlzIGRvbmUu
Ci1zdGF0aWMgY29uc3QgaW50IHRpY2tzVW50aWxGaXJzdENoZWNrID0gMTAyNDsKLQotLy8gTnVt
YmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGVhY2ggdGltZW91dCBjaGVjay4KLXN0YXRpYyBj
b25zdCBpbnQgaW50ZXJ2YWxCZXR3ZWVuQ2hlY2tzID0gMTAwMDsKLQotLy8gUmV0dXJucyB0aGUg
dGltZSB0aGUgY3VycmVudCB0aHJlYWQgaGFzIHNwZW50IGV4ZWN1dGluZywgaW4gbWlsbGlzZWNv
bmRzLgotc3RhdGljIGlubGluZSB1bnNpZ25lZCBnZXRDUFVUaW1lKCkKLXsKLSNpZiBPUyhEQVJX
SU4pCi0gICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBpbmZvQ291bnQgPSBUSFJFQURfQkFTSUNf
SU5GT19DT1VOVDsKLSAgICB0aHJlYWRfYmFzaWNfaW5mb19kYXRhX3QgaW5mbzsKLQotICAgIC8v
IEdldCB0aHJlYWQgaW5mb3JtYXRpb24KLSAgICBtYWNoX3BvcnRfdCB0aHJlYWRQb3J0ID0gbWFj
aF90aHJlYWRfc2VsZigpOwotICAgIHRocmVhZF9pbmZvKHRocmVhZFBvcnQsIFRIUkVBRF9CQVNJ
Q19JTkZPLCByZWludGVycHJldF9jYXN0PHRocmVhZF9pbmZvX3Q+KCZpbmZvKSwgJmluZm9Db3Vu
dCk7Ci0gICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgdGhyZWFkUG9y
dCk7Ci0gICAgCi0gICAgdW5zaWduZWQgdGltZSA9IGluZm8udXNlcl90aW1lLnNlY29uZHMgKiAx
MDAwICsgaW5mby51c2VyX3RpbWUubWljcm9zZWNvbmRzIC8gMTAwMDsKLSAgICB0aW1lICs9IGlu
Zm8uc3lzdGVtX3RpbWUuc2Vjb25kcyAqIDEwMDAgKyBpbmZvLnN5c3RlbV90aW1lLm1pY3Jvc2Vj
b25kcyAvIDEwMDA7Ci0gICAgCi0gICAgcmV0dXJuIHRpbWU7Ci0jZWxpZiBPUyhXSU5ET1dTKQot
ICAgIHVuaW9uIHsKLSAgICAgICAgRklMRVRJTUUgZmlsZVRpbWU7Ci0gICAgICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBmaWxlVGltZUFzTG9uZzsKLSAgICB9IHVzZXJUaW1lLCBrZXJuZWxUaW1lOwot
ICAgIAotICAgIC8vIEdldFRocmVhZFRpbWVzIHdvbid0IGFjY2VwdCBOVUxMIGFyZ3VtZW50cyBz
byB3ZSBwYXNzIHRoZXNlIGV2ZW4gdGhvdWdoCi0gICAgLy8gdGhleSdyZSBub3QgdXNlZC4KLSAg
ICBGSUxFVElNRSBjcmVhdGlvblRpbWUsIGV4aXRUaW1lOwotICAgIAotICAgIEdldFRocmVhZFRp
bWVzKEdldEN1cnJlbnRUaHJlYWQoKSwgJmNyZWF0aW9uVGltZSwgJmV4aXRUaW1lLCAma2VybmVs
VGltZS5maWxlVGltZSwgJnVzZXJUaW1lLmZpbGVUaW1lKTsKLSAgICAKLSAgICByZXR1cm4gdXNl
clRpbWUuZmlsZVRpbWVBc0xvbmcgLyAxMDAwMCArIGtlcm5lbFRpbWUuZmlsZVRpbWVBc0xvbmcg
LyAxMDAwMDsKLSNlbGlmIE9TKFFOWCkKLSAgICBzdHJ1Y3QgdGltZXNwZWMgdGltZTsKLSAgICBp
ZiAoY2xvY2tfZ2V0dGltZShDTE9DS19USFJFQURfQ1BVVElNRV9JRCwgJnRpbWUpKQotICAgICAg
ICBDUkFTSCgpOwotICAgIHJldHVybiB0aW1lLnR2X3NlYyAqIDEwMDAuMCArIHRpbWUudHZfbnNl
YyAvIDEuMGU2OwotI2Vsc2UKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJldHVybiB0aGUgdGlt
ZSB0aGUgY3VycmVudCB0aHJlYWQgaGFzIHNwZW50IGV4ZWN1dGluZy4KLQotICAgIC8vIHVzZSBh
IHJlbGF0aXZlIHRpbWUgZnJvbSBmaXJzdCBjYWxsIGluIG9yZGVyIHRvIGF2b2lkIGFuIG92ZXJm
bG93Ci0gICAgc3RhdGljIGRvdWJsZSBmaXJzdFRpbWUgPSBjdXJyZW50VGltZSgpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4gKChjdXJyZW50VGltZSgpIC0gZmlyc3RUaW1lKSAq
IDEwMDApOwotI2VuZGlmCi19Ci0KLVRpbWVvdXRDaGVja2VyOjpUaW1lb3V0Q2hlY2tlcigpCi0g
ICAgOiBtX3RpbWVvdXRJbnRlcnZhbCgwKQotICAgICwgbV9zdGFydENvdW50KDApCi17Ci0gICAg
cmVzZXQoKTsKLX0KLQotdm9pZCBUaW1lb3V0Q2hlY2tlcjo6cmVzZXQoKQotewotICAgIG1fdGlj
a3NVbnRpbE5leHRDaGVjayA9IHRpY2tzVW50aWxGaXJzdENoZWNrOwotICAgIG1fdGltZUF0TGFz
dENoZWNrID0gMDsKLSAgICBtX3RpbWVFeGVjdXRpbmcgPSAwOwotfQotCi1ib29sIFRpbWVvdXRD
aGVja2VyOjpkaWRUaW1lT3V0KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICB1bnNpZ25lZCBjdXJy
ZW50VGltZSA9IGdldENQVVRpbWUoKTsKLSAgICAKLSAgICBpZiAoIW1fdGltZUF0TGFzdENoZWNr
KSB7Ci0gICAgICAgIC8vIFN1c3BpY2lvdXMgYW1vdW50IG9mIGxvb3BpbmcgaW4gYSBzY3JpcHQg
LS0gc3RhcnQgdGltaW5nIGl0Ci0gICAgICAgIG1fdGltZUF0TGFzdENoZWNrID0gY3VycmVudFRp
bWU7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgdW5zaWduZWQgdGlt
ZURpZmYgPSBjdXJyZW50VGltZSAtIG1fdGltZUF0TGFzdENoZWNrOwotICAgIAotICAgIGlmICh0
aW1lRGlmZiA9PSAwKQotICAgICAgICB0aW1lRGlmZiA9IDE7Ci0gICAgCi0gICAgbV90aW1lRXhl
Y3V0aW5nICs9IHRpbWVEaWZmOwotICAgIG1fdGltZUF0TGFzdENoZWNrID0gY3VycmVudFRpbWU7
Ci0gICAgCi0gICAgLy8gQWRqdXN0IHRoZSB0aWNrIHRocmVzaG9sZCBzbyB3ZSBnZXQgdGhlIG5l
eHQgY2hlY2tUaW1lb3V0IGNhbGwgaW4gdGhlCi0gICAgLy8gaW50ZXJ2YWwgc3BlY2lmaWVkIGlu
IGludGVydmFsQmV0d2VlbkNoZWNrcy4KLSAgICBtX3RpY2tzVW50aWxOZXh0Q2hlY2sgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oKHN0YXRpY19jYXN0PGZsb2F0PihpbnRlcnZhbEJldHdlZW5DaGVj
a3MpIC8gdGltZURpZmYpICogbV90aWNrc1VudGlsTmV4dENoZWNrKTsKLSAgICAvLyBJZiB0aGUg
bmV3IHRocmVzaG9sZCBpcyAwIHJlc2V0IGl0IHRvIHRoZSBkZWZhdWx0IHRocmVzaG9sZC4gVGhp
cyBjYW4gaGFwcGVuIGlmIHRoZSB0aW1lRGlmZiBpcyBoaWdoZXIgdGhhbiB0aGUKLSAgICAvLyBw
cmVmZXJyZWQgc2NyaXB0IGNoZWNrIHRpbWUgaW50ZXJ2YWwuCi0gICAgaWYgKG1fdGlja3NVbnRp
bE5leHRDaGVjayA9PSAwKQotICAgICAgICBtX3RpY2tzVW50aWxOZXh0Q2hlY2sgPSB0aWNrc1Vu
dGlsRmlyc3RDaGVjazsKLSAgICAKLSAgICBpZiAobV90aW1lb3V0SW50ZXJ2YWwgJiYgbV90aW1l
RXhlY3V0aW5nID4gbV90aW1lb3V0SW50ZXJ2YWwpIHsKLSAgICAgICAgaWYgKGV4ZWMtPmR5bmFt
aWNHbG9iYWxPYmplY3QoKS0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c2hvdWxkSW50ZXJy
dXB0U2NyaXB0KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIHJlc2V0KCk7Ci0gICAgfQotICAgIAotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmgJKHJldmlzaW9uIDE0ODA3NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUaW1lb3V0Q2hlY2tlcl9oCi0jZGVm
aW5lIFRpbWVvdXRDaGVja2VyX2gKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLW5h
bWVzcGFjZSBKU0MgewotCi0gICAgY2xhc3MgRXhlY1N0YXRlOwotCi0gICAgY2xhc3MgVGltZW91
dENoZWNrZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgVGltZW91dENoZWNrZXIoKTsKLQotICAg
ICAgICB2b2lkIHNldFRpbWVvdXRJbnRlcnZhbCh1bnNpZ25lZCB0aW1lb3V0SW50ZXJ2YWwpIHsg
bV90aW1lb3V0SW50ZXJ2YWwgPSB0aW1lb3V0SW50ZXJ2YWw7IH0KLSAgICAgICAgdW5zaWduZWQg
dGltZW91dEludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV90aW1lb3V0SW50ZXJ2YWw7IH0KLSAg
ICAgICAgCi0gICAgICAgIHVuc2lnbmVkIHRpY2tzVW50aWxOZXh0Q2hlY2soKSB7IHJldHVybiBt
X3RpY2tzVW50aWxOZXh0Q2hlY2s7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc3RhcnQoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fc3RhcnRDb3VudCkKLSAgICAgICAgICAgICAg
ICByZXNldCgpOwotICAgICAgICAgICAgKyttX3N0YXJ0Q291bnQ7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIHN0b3AoKQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9zdGFydENv
dW50KTsKLSAgICAgICAgICAgIC0tbV9zdGFydENvdW50OwotICAgICAgICB9Ci0KLSAgICAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXNldCgpOwotCi0gICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgZGlkVGltZU91dChFeGVjU3RhdGUqKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IHVuc2lnbmVkIG1fdGltZW91dEludGVydmFsOwotICAgICAgICB1bnNpZ25lZCBtX3RpbWVBdExh
c3RDaGVjazsKLSAgICAgICAgdW5zaWduZWQgbV90aW1lRXhlY3V0aW5nOwotICAgICAgICB1bnNp
Z25lZCBtX3N0YXJ0Q291bnQ7Ci0gICAgICAgIHVuc2lnbmVkIG1fdGlja3NVbnRpbE5leHRDaGVj
azsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIFRpbWVvdXRDaGVj
a2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEzLTA0LTA5ICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBiaXRy
b3R0ZWQgVGltZW91dENoZWNrZXIgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBtZWNoYW5pc20gaGFzbid0IHdvcmtlZCBmb3IgYSB3aGls
ZS4KKworICAgICAgICBNYXJrTCBpcyB3b3JraW5nIG9uIGEgbmV3IHZlcnNpb24gb2YgdGhpcyBm
ZWF0dXJlIHdpdGggYSBkaXN0aW5jdAorICAgICAgICBpbXBsZW1lbnRhdGlvbi4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
Q2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
Y29tbW9uSlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbkNh
bGxiYWNrOjpjYWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlRnVuY3Rpb25JbkNv
bnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVCYXNlOjpDbG9uZUJhc2UpOgorICAgICAgICAoQ2xvbmVCYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBjYWxsV2ViU2NyaXB0
TWV0aG9kOndpdGhBcmd1bWVudHM6XSk6CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBldmFs
dWF0ZVdlYlNjcmlwdDpdKToKKwogMjAxMy0wNC0wOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFNjcmlwdCBydW4gZnJvbSBhbiBpc29sYXRlZCB3
b3JsZCBzaG91bGQgYnlwYXNzIGEgcGFnZSdzIENTUApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03MCw3ICs3MCw2IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNr
KEoKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAKLSAgICBn
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEpTTWFpblRocmVhZEV4ZWNT
dGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChjb250ZXh0LCBjYWxsVHlwZSwgY2FsbERhdGEp
OwogCiAgICAgYm9vbCBjb250ZXh0SXNEb2N1bWVudCA9IGNvbnRleHQtPmlzRG9jdW1lbnQoKTsK
QEAgLTc5LDcgKzc4LDYgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2so
SgogICAgICAgICA6IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzVmFsdWUsIGFyZ3MpOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
YWxsRnVuY3Rpb24oY29va2llKTsKLSAgICBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRGF0YSgpLnRp
bWVvdXRDaGVja2VyLnN0b3AoKTsKIAogICAgIGlmIChjb250ZXh0SXNEb2N1bWVudCkKICAgICAg
ICAgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDkgKzkxLDcgQEAg
U3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYQogICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywg
cHJlZml4KSk7CiAKLSAgICBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVj
a2VyLnN0YXJ0KCk7CiAgICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jdXN0b21SZXNvbHZl
ci5nZXQoKSwgYXJncyk7Ci0gICAgbV9nbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS50aW1lb3V0
Q2hlY2tlci5zdG9wKCk7CiAKICAgICBTdHJpbmcgcmVzdWx0OwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw2
IEBAIEpTR2xvYmFsRGF0YSogSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0cKICAgICBpZiAoIWds
b2JhbERhdGEpIHsKICAgICAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogICAgICAgICBnbG9iYWxEYXRhID0gSlNHbG9iYWxEYXRhOjpjcmVhdGVMZWFrZWQoTGFy
Z2VIZWFwKS5sZWFrUmVmKCk7Ci0gICAgICAgIGdsb2JhbERhdGEtPnRpbWVvdXRDaGVja2VyLnNl
dFRpbWVvdXRJbnRlcnZhbCgxMDAwMCk7IC8vIDEwIHNlY29uZHMKICNpZm5kZWYgTkRFQlVHCiAg
ICAgICAgIGdsb2JhbERhdGEtPmV4Y2x1c2l2ZVRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVy
LmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxMSArOTQsOSBAQCB2b2lkIEpT
RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFCiAKICAgICAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBnbG9iYWxPYmplY3QtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChnbG9iYWxP
YmplY3QsIGV4ZWMpOwogCi0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3RhcnQo
KTsKICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmlzRG9jdW1lbnQoKQogICAgICAgICAgICAgPyBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwo
ZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpCiAg
ICAgICAgICAgICA6IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERh
dGEsIHRoaXNWYWx1ZSwgYXJncyk7Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIu
c3RvcCgpOwogCiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZl
bnQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNiBAQCB2
b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0CiAgICAgICAgIEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpOwogICAgICAgICBE
eW5hbWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2NvcGUoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0ID8gZ2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2Jq
ZWN0IDogZ2xvYmFsT2JqZWN0KTsKIAotICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2Vy
LnN0YXJ0KCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUg
PSBKU01haW5UaHJlYWRFeGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbkNhbGwoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgY2FsbFR5cGUsIGNhbGxEYXRhKTsKIAogICAgICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGhhbmRsZUV2ZW50RnVuY3Rpb24gPT0ganNGdW5jdGlvbiA/IHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBldmVudC0+Y3VycmVudFRhcmdldCgpKSA6IGpzRnVuY3Rpb247CkBAIC0x
MzAsNyArMTI5LDYgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdAog
ICAgICAgICAgICAgOiBKU0M6OmNhbGwoZXhlYywgaGFuZGxlRXZlbnRGdW5jdGlvbiwgY2FsbFR5
cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpOwogCiAgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSk7Ci0gICAgICAgIGdsb2JhbERhdGEu
dGltZW91dENoZWNrZXIuc3RvcCgpOwogCiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVu
dEV2ZW50KHNhdmVkRXZlbnQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U011dGF0aW9uQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg0LDEzICs4NCwxMSBAQCB2b2lkIEpTTXV0YXRpb25DYWxsYmFjazo6Y2FsbChjb25z
dCBWZWN0CiAgICAgYXJncy5hcHBlbmQoanNBcnJheShleGVjLCBnbG9iYWxPYmplY3QsIG11dGF0
aW9ucykpOwogICAgIGFyZ3MuYXBwZW5kKGpzT2JzZXJ2ZXIpOwogCi0gICAgZ2xvYmFsT2JqZWN0
LT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgY29va2llID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjppbnN0cnVt
ZW50RnVuY3Rpb25DYWxsKGNvbnRleHQsIGNhbGxUeXBlLCBjYWxsRGF0YSk7CiAKICAgICBKU01h
aW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgY2FsbGJhY2ssIGNhbGxUeXBlLCBjYWxsRGF0
YSwganNPYnNlcnZlciwgYXJncyk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENhbGxGdW5jdGlvbihjb29raWUpOwotICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLnRp
bWVvdXRDaGVja2VyLnN0b3AoKTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihleGVjKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAkocmV2aXNpb24gMTQ4MDc3KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw2IEBAIHZvaWQgU2NoZWR1bGVkQWN0aW9uOjpleGVjdXRl
RnVuY3Rpb25JbkMKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAg
ICAgYXJncy5hcHBlbmQobV9hcmdzW2ldLmdldCgpKTsKIAotICAgIGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIGNvb2tpZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1
bmN0aW9uQ2FsbChjb250ZXh0LCBjYWxsVHlwZSwgY2FsbERhdGEpOwogCiAgICAgaWYgKGNvbnRl
eHQtPmlzRG9jdW1lbnQoKSkKQEAgLTExNCw3ICsxMTMsNiBAQCB2b2lkIFNjaGVkdWxlZEFjdGlv
bjo6ZXhlY3V0ZUZ1bmN0aW9uSW5DCiAgICAgICAgIEpTQzo6Y2FsbChleGVjLCBtX2Z1bmN0aW9u
LmdldCgpLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncyk7CiAKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUpOwotICAgIGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKIAogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihleGVj
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDkgKzEzNyw3IEBAIFNj
cmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW4KIAogICAgIEpTVmFsdWUgZXZh
bHVhdGlvbkV4Y2VwdGlvbjsKIAotICAgIGV4ZWMtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tl
ci5zdGFydCgpOwogICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBKU01haW5UaHJlYWRFeGVjU3Rh
dGU6OmV2YWx1YXRlKGV4ZWMsIGpzU291cmNlQ29kZSwgc2hlbGwsICZldmFsdWF0aW9uRXhjZXB0
aW9uKTsKLSAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RvcCgpOwogCiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChjb29raWUpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Nyw3
ICsyNTcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgQ2xvbmVCYXNlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgOiBtX2V4ZWMoZXhlYykKICAgICAgICAgLCBtX2ZhaWxlZChmYWxzZSkKLSAgICAgICAg
LCBtX3RpbWVvdXRDaGVja2VyKGV4ZWMtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlcikKICAg
ICB7CiAgICAgfQogCkBAIC0yNjYsMjYgKzI2NSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJl
dHVybiBtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIHRpY2tz
VW50aWxOZXh0Q2hlY2soKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdGltZW91dENoZWNrZXIu
dGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgIH0KLQotICAgIGJvb2wgZGlkVGltZU91dCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gbV90aW1lb3V0Q2hlY2tlci5kaWRUaW1lT3V0KG1fZXhlYyk7
Ci0gICAgfQotCiAgICAgdm9pZCB0aHJvd1N0YWNrT3ZlcmZsb3coKQogICAgIHsKICAgICAgICAg
dGhyb3dFcnJvcihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKICAg
ICB9CiAKLSAgICB2b2lkIHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKQotICAgIHsKLSAgICAg
ICAgdGhyb3dFcnJvcihtX2V4ZWMsIGNyZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9u
KCZtX2V4ZWMtPmdsb2JhbERhdGEoKSkpOwotICAgIH0KLQogICAgIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUCiAgICAgdm9pZCBmYWlsKCkKICAgICB7CkBAIC0yOTUsNyArMjc5LDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgRXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgYm9vbCBtX2ZhaWxlZDsKLSAgICBU
aW1lb3V0Q2hlY2tlciBtX3RpbWVvdXRDaGVja2VyOwogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IG1fZ2NCdWZmZXI7CiB9OwogCkBAIC04NDcsNyArODMwLDYgQEAgU2VyaWFsaXphdGlvblJldHVy
bkNvZGUgQ2xvbmVTZXJpYWxpemVyOgogICAgIFZlY3RvcjxXYWxrZXJTdGF0ZSwgMTY+IHN0YXRl
U3RhY2s7CiAgICAgV2Fsa2VyU3RhdGUgc3RhdGUgPSBTdGF0ZVVua25vd247CiAgICAgSlNWYWx1
ZSBpblZhbHVlID0gaW47Ci0gICAgdW5zaWduZWQgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRD
aGVjaygpOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAg
ICAgICAgIGFycmF5U3RhcnRTdGF0ZToKQEAgLTg2NywxMiArODQ5LDYgQEAgU2VyaWFsaXphdGlv
blJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOgogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YXJyYXlTdGFydFZpc2l0TWVtYmVyOgogICAgICAgICAgICAgY2FzZSBBcnJheVN0YXJ0VmlzaXRN
ZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgdGlja0Nv
dW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICAgICAgICAgIH0KLQogICAgICAg
ICAgICAgICAgIEpTT2JqZWN0KiBhcnJheSA9IGlucHV0T2JqZWN0U3RhY2subGFzdCgpOwogICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gaW5kZXhTdGFjay5sYXN0KCk7CiAgICAgICAg
ICAgICAgICAgaWYgKGluZGV4ID09IGxlbmd0aFN0YWNrLmxhc3QoKSkgewpAQCAtOTM1LDEyICs5
MTEsNiBAQCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBvYmplY3RTdGFydFZpc2l0TWVtYmVyOgogICAgICAgICAgICAg
Y2FzZSBPYmplY3RTdGFydFZpc2l0TWVtYmVyOiB7Ci0gICAgICAgICAgICAgICAgaWYgKCEtLXRp
Y2tDb3VudCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I7Ci0gICAg
ICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKLSAgICAg
ICAgICAgICAgICB9Ci0KICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRP
YmplY3RTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgaW5kZXggPSBpbmRl
eFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVy
dGllcyA9IHByb3BlcnR5U3RhY2subGFzdCgpOwpAQCAtMTAwMCwxMiArOTcwLDYgQEAgU2VyaWFs
aXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOgogCiAgICAgICAgIHN0YXRlID0gc3Rh
dGVTdGFjay5sYXN0KCk7CiAgICAgICAgIHN0YXRlU3RhY2sucmVtb3ZlTGFzdCgpOwotCi0gICAg
ICAgIGlmICghLS10aWNrQ291bnQpIHsKLSAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I7Ci0gICAgICAg
ICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENoZWNrKCk7Ci0gICAgICAgIH0KICAgICB9
CiAgICAgaWYgKG1fZmFpbGVkKQogICAgICAgICByZXR1cm4gVW5zcGVjaWZpZWRFcnJvcjsKQEAg
LTE2MTksNyArMTU4Myw2IEBAIERlc2VyaWFsaXphdGlvblJlc3VsdCBDbG9uZURlc2VyaWFsaXpl
cjoKICAgICBXYWxrZXJTdGF0ZSBzdGF0ZSA9IFN0YXRlVW5rbm93bjsKICAgICBKU1ZhbHVlIG91
dFZhbHVlOwogCi0gICAgdW5zaWduZWQgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygp
OwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAgICAgYXJy
YXlTdGFydFN0YXRlOgpAQCAtMTYzNiwxMiArMTU5OSw2IEBAIERlc2VyaWFsaXphdGlvblJlc3Vs
dCBDbG9uZURlc2VyaWFsaXplcjoKICAgICAgICAgfQogICAgICAgICBhcnJheVN0YXJ0VmlzaXRN
ZW1iZXI6CiAgICAgICAgIGNhc2UgQXJyYXlTdGFydFZpc2l0TWVtYmVyOiB7Ci0gICAgICAgICAg
ICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihKU1ZhbHVlKCksIEludGVycnVw
dGVkRXhlY3V0aW9uRXJyb3IpOwotICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IHRpY2tzVW50
aWxOZXh0Q2hlY2soKTsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgdWludDMyX3QgaW5k
ZXg7CiAgICAgICAgICAgICBpZiAoIXJlYWQoaW5kZXgpKSB7CiAgICAgICAgICAgICAgICAgZmFp
bCgpOwpAQCAtMTY4MywxMiArMTY0MCw2IEBAIERlc2VyaWFsaXphdGlvblJlc3VsdCBDbG9uZURl
c2VyaWFsaXplcjoKICAgICAgICAgfQogICAgICAgICBvYmplY3RTdGFydFZpc2l0TWVtYmVyOgog
ICAgICAgICBjYXNlIE9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6IHsKLSAgICAgICAgICAgIGlmICgh
LS10aWNrQ291bnQpIHsKLSAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUoKSwgSW50ZXJydXB0ZWRFeGVj
dXRpb25FcnJvcik7Ci0gICAgICAgICAgICAgICAgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRD
aGVjaygpOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBDYWNoZWRTdHJpbmdSZWYgY2Fj
aGVkU3RyaW5nOwogICAgICAgICAgICAgYm9vbCB3YXNUZXJtaW5hdG9yID0gZmFsc2U7CiAgICAg
ICAgICAgICBpZiAoIXJlYWRTdHJpbmdEYXRhKGNhY2hlZFN0cmluZywgd2FzVGVybWluYXRvcikp
IHsKQEAgLTE3MzIsMTIgKzE2ODMsNiBAQCBEZXNlcmlhbGl6YXRpb25SZXN1bHQgQ2xvbmVEZXNl
cmlhbGl6ZXI6CiAKICAgICAgICAgc3RhdGUgPSBzdGF0ZVN0YWNrLmxhc3QoKTsKICAgICAgICAg
c3RhdGVTdGFjay5yZW1vdmVMYXN0KCk7Ci0KLSAgICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewot
ICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbWFr
ZV9wYWlyKEpTVmFsdWUoKSwgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik7Ci0gICAgICAgICAg
ICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENoZWNrKCk7Ci0gICAgICAgIH0KICAgICB9CiAg
ICAgQVNTRVJUKG91dFZhbHVlKTsKICAgICBBU1NFUlQoIW1fZmFpbGVkKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDEzICsxMzQsOSBA
QCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvCiAgICAgRXhlY1N0YXRl
KiBleGVjID0gbV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsRXhlYygpOwogICAgIEpTTG9j
a0hvbGRlciBsb2NrKGV4ZWMpOwogCi0gICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFs
RGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7Ci0KICAgICBKU1ZhbHVlIGV2YWx1YXRpb25F
eGNlcHRpb247CiAgICAgSlNDOjpldmFsdWF0ZShleGVjLCBzb3VyY2VDb2RlLmpzU291cmNlQ29k
ZSgpLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpLCAmZXZhbHVhdGlvbkV4Y2VwdGlvbik7
CiAKLSAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNr
ZXIuc3RvcCgpOwotCiAgICAgaWYgKChldmFsdWF0aW9uRXhjZXB0aW9uICYmIGlzVGVybWluYXRl
ZEV4ZWN1dGlvbkV4Y2VwdGlvbihldmFsdWF0aW9uRXhjZXB0aW9uKSkgfHwgIG1fd29ya2VyQ29u
dGV4dFdyYXBwZXItPmdsb2JhbERhdGEoKS50ZXJtaW5hdG9yLnNob3VsZFRlcm1pbmF0ZSgpKSB7
CiAgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkocmV2aXNp
b24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmpl
Y3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzNyw5ICszMzcsNyBAQCAtIChpZCljYWxsV2ViU2Ny
aXB0TWV0aG9kOihOU1N0cmluZyAqKW5hCiAgICAgaWYgKCFbc2VsZiBfaXNTYWZlU2NyaXB0XSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFtzZWxmIF9yb290T2JqZWN0XS0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24s
IGNhbGxUeXBlLCBjYWxsRGF0YSwgW3NlbGYgX2ltcF0sIGFyZ0xpc3QpOwotICAgIFtzZWxmIF9y
b290T2JqZWN0XS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5z
dG9wKCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhj
ZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpAQCAtMzYzLDkgKzM2MSw3IEBAIC0gKGlkKWV2YWx1YXRl
V2ViU2NyaXB0OihOU1N0cmluZyAqKXNjcmkKIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMp
OwogICAgIAotICAgIFtzZWxmIF9yb290T2JqZWN0XS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbERh
dGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIEpTQzo6SlNWYWx1ZSByZXR1cm5WYWx1
ZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6ZXZhbHVhdGUoZXhlYywgbWFrZVNvdXJjZShTdHJp
bmcoc2NyaXB0KSksIEpTQzo6SlNWYWx1ZSgpLCAwKTsKLSAgICBbc2VsZiBfcm9vdE9iamVjdF0t
Pmdsb2JhbE9iamVjdCgpLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RvcCgpOwogCiAg
ICAgaWQgcmVzdWx0T2JqID0gW1dlYlNjcmlwdE9iamVjdCBfY29udmVydFZhbHVlVG9PYmpjVmFs
dWU6cmV0dXJuVmFsdWUgb3JpZ2luUm9vdE9iamVjdDpbc2VsZiBfb3JpZ2luUm9vdE9iamVjdF0g
cm9vdE9iamVjdDpbc2VsZiBfcm9vdE9iamVjdF1dOwogICAgIApJbmRleDogU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2
aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDQtMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIGJpdHJvdHRlZCBUaW1lb3V0Q2hlY2tlciBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQzMzYK
KworICAgICAgICBUaGlzIG1lY2hhbmlzbSBoYXNuJ3Qgd29ya2VkIGZvciBhIHdoaWxlLgorCisg
ICAgICAgIE1hcmtMIGlzIHdvcmtpbmcgb24gYSBuZXcgdmVyc2lvbiBvZiB0aGlzIGZlYXR1cmUg
d2l0aCBhIGRpc3RpbmN0CisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOUEpTT2JqZWN0Ojpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0Ojpp
bnZva2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVP
YmplY3RNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUFJ1bnRpbWVPYmplY3RNYXA6OmV2YWx1
YXRlKToKKwogMjAxMy0wNC0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNDc0NTQpOiBZb3V0dWJlIGFubm90YXRpb24gbGlu
a3MgdG8gbmV3IHdpbmRvdyBicm9rZW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAJKHJldmlzaW9u
IDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
UEpTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY5LDkgKzI2OSw3IEBAIGJvb2wgTlBK
U09iamVjdDo6Y29uc3RydWN0KGNvbnN0IE5QVmFyaWEKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmd1bWVudExpc3QuYXBwZW5kKG1f
b2JqZWN0TWFwLT5jb252ZXJ0TlBWYXJpYW50VG9KU1ZhbHVlKGV4ZWMsIG1fb2JqZWN0TWFwLT5n
bG9iYWxPYmplY3QoKSwgYXJndW1lbnRzW2ldKSk7CiAKLSAgICBleGVjLT5nbG9iYWxEYXRhKCku
dGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNDOjpjb25zdHJ1
Y3QoZXhlYywgbV9qc09iamVjdC5nZXQoKSwgY29uc3RydWN0VHlwZSwgY29uc3RydWN0RGF0YSwg
YXJndW1lbnRMaXN0KTsKLSAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3Rv
cCgpOwogICAgIAogICAgIC8vIENvbnZlcnQgYW5kIHJldHVybiB0aGUgbmV3IG9iamVjdC4KICAg
ICBtX29iamVjdE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFudChleGVjLCB2YWx1ZSwgKnJl
c3VsdCk7CkBAIC0yOTIsOSArMjkwLDcgQEAgYm9vbCBOUEpTT2JqZWN0OjppbnZva2UoRXhlY1N0
YXRlKiBleGVjLAogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50OyAr
K2kpCiAgICAgICAgIGFyZ3VtZW50TGlzdC5hcHBlbmQobV9vYmplY3RNYXAtPmNvbnZlcnROUFZh
cmlhbnRUb0pTVmFsdWUoZXhlYywgZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbaV0pKTsKIAotICAg
IGV4ZWMtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9q
c09iamVjdC0+bWV0aG9kVGFibGUoKS0+dG9UaGlzT2JqZWN0KG1fanNPYmplY3QuZ2V0KCksIGV4
ZWMpLCBhcmd1bWVudExpc3QpOwotICAgIGV4ZWMtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tl
ci5zdG9wKCk7CiAKICAgICAvLyBDb252ZXJ0IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUg
ZnVuY3Rpb24gY2FsbC4KICAgICBtX29iamVjdE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFu
dChleGVjLCB2YWx1ZSwgKnJlc3VsdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0
TWFwLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4OSw5ICsxODksNyBAQCBib29sIE5QUnVudGltZU9iamVjdE1hcDo6ZXZhbHVhdGUoTlBPYmpl
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBn
ZXRPckNyZWF0ZUpTT2JqZWN0KGdsb2JhbE9iamVjdC5nZXQoKSwgbnBPYmplY3QpOwogCi0gICAg
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBK
U1ZhbHVlIHJlc3VsdFZhbHVlID0gSlNDOjpldmFsdWF0ZShleGVjLCBtYWtlU291cmNlKHNjcmlw
dFN0cmluZyksIHRoaXNWYWx1ZSk7Ci0gICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkudGlt
ZW91dENoZWNrZXIuc3RvcCgpOwogCiAgICAgY29udmVydEpTVmFsdWVUb05QVmFyaWFudChleGVj
LCByZXN1bHRWYWx1ZSwgKnJlc3VsdCk7CiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
My0wNC0wOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJl
bW92ZWQgYml0cm90dGVkIFRpbWVvdXRDaGVja2VyIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDMzNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRUaW1lb3V0Rm9ySmF2YVNjcmlwdEV4ZWN1
dGlvbik6CisKIDIwMTMtMDQtMDkgIEphY2t5IEppYW5nICA8emhhamlhbmdAcmltLmNvbT4KIAog
ICAgICAgICBbQmxhY2tCZXJyeV0gTWFpbiBwYWdlIGlzIHJlbmRlcmVkIGF0IHdyb25nIGxhcmdl
IHNjYWxlIGFmdGVyIGJhY2sgZnJvbSBhbnkgem9vbWluZyBhcnRpY2xlIGF0IHJlYWQudGhlc3Rh
ci5jb20KSW5kZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDczMSwxMiArNDczMSw2IEBAIHVuc2lnbmVkIFdlYlBhZ2U6
OnRpbWVvdXRGb3JKYXZhU2NyaXB0RXgKIHZvaWQgV2ViUGFnZTo6c2V0VGltZW91dEZvckphdmFT
Y3JpcHRFeGVjdXRpb24odW5zaWduZWQgbXMpCiB7CiAgICAgU2V0dGluZ3M6OnNldFRpbWVvdXRG
b3JKYXZhU2NyaXB0RXhlY3V0aW9uKGQtPm1fcGFnZS0+Z3JvdXBOYW1lKCksIG1zKTsKLQotICAg
IERvY3VtZW50KiBkb2MgPSBkLT5tX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOwotICAg
IGlmICghZG9jKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkb2MtPmdsb2JhbERhdGEoKS0+dGlt
ZW91dENoZWNrZXIuc2V0VGltZW91dEludGVydmFsKG1zKTsKIH0KIAogSlNHbG9iYWxDb250ZXh0
UmVmIFdlYlBhZ2U6Omdsb2JhbENvbnRleHQoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
cmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDQtMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIGJpdHJvdHRlZCBUaW1lb3V0Q2hlY2tl
ciBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTQzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIG1lY2hhbmlzbSBoYXNuJ3Qgd29ya2VkIGZvciBhIHdoaWxlLgorCisgICAgICAgIE1hcmtM
IGlzIHdvcmtpbmcgb24gYSBuZXcgdmVyc2lvbiBvZiB0aGlzIGZlYXR1cmUgd2l0aCBhIGRpc3Rp
bmN0CisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHk6OmV2YWx1YXRlKToKKwogMjAxMy0wNC0wOCAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEhUTUwgTm90
aWZpY2F0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCShyZXZpc2lvbiAx
NDgwNzcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTg3MSwxNCArODcxLDEwIEBAIGJv
b2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpldmFsdWEKICAgICBTdHJvbmc8SlNHbG9i
YWxPYmplY3Q+IGdsb2JhbE9iamVjdCgqcGx1Z2luV29ybGQoKS0+Z2xvYmFsRGF0YSgpLCBmcmFt
ZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChwbHVnaW5Xb3JsZCgpKSk7CiAgICAgRXhlY1N0YXRl
KiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKLSAgICBnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwotCiAgICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihhbGxvd1BvcHVwcyA/IERlZmluaXRlbHlQcm9jZXNz
aW5nTmV3VXNlckdlc3R1cmUgOiBQb3NzaWJseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAg
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBKU0M6OmV2YWx1YXRlKGV4ZWMsIG1ha2VTb3VyY2Uoc2Ny
aXB0KSk7CiAgICAgCi0gICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNr
ZXIuc3RvcCgpOwotICAgIAogICAgIG1hcnNoYWxWYWx1ZShleGVjLCByZXN1bHQsIHJlc3VsdERh
dGEsIHJlc3VsdExlbmd0aCk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1
cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTA0LTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVt
b3ZlZCBiaXRyb3R0ZWQgVGltZW91dENoZWNrZXIgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0
ZURvY3VtZW50TG9hZGVyKToKKwogMjAxMy0wNC0wOSAgUmFmYWVsIEJyYW5kYW8gIDxyYWZhZWwu
bG9ib0BvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBzZXJ2
aWNlU2NyaXB0ZWRBbmltYXRpb25zIGV4cGVjdHMgdGltZSBpbiBzZWNvbmRzCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3MSwxNCAr
OTcxLDkgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpzaG91bGRGYWxsQmFjawogV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyPiBGcmFtZUxvYWRlckNsaWVudFF0Ojpj
cmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKIHsKICAgICBSZWZQdHI8
RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IERvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwg
c3Vic3RpdHV0ZURhdGEpOwotICAgIGlmICghZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCB8fCBz
dWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIWRlZmVyTWFpblJlc291cmNlRGF0
YUxvYWQgfHwgc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKQogICAgICAgICBsb2FkZXItPnNldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmFsc2UpOwotICAgICAgICAvLyBVc2UgdGhlIGRlZmF1
bHQgdGltZW91dCBpbnRlcnZhbCBmb3IgSlMgYXMgdGhlIEhUTUwgdG9rZW5pemVyIGRlbGF5LiBU
aGlzIGVuc3VyZXMKLSAgICAgICAgLy8gdGhhdCBsb25nLXJ1bm5pbmcgSmF2YVNjcmlwdCB3aWxs
IHN0aWxsIGFsbG93IHNldEh0bWwoKSB0byBiZSBzeW5jaHJvbm91cywgd2hpbGUKLSAgICAgICAg
Ly8gc3RpbGwgZ2l2aW5nIGEgcmVhc29uYWJsZSB0aW1lb3V0IHRvIHByZXZlbnQgZGVhZGxvY2su
Ci0gICAgICAgIGRvdWJsZSBkZWxheSA9IEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxE
YXRhKCktPnRpbWVvdXRDaGVja2VyLnRpbWVvdXRJbnRlcnZhbCgpIC8gMTAwMC4wZjsKLSAgICAg
ICAgbV9mcmFtZS0+cGFnZSgpLT5zZXRDdXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5KGRlbGF5
KTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+c2V0Q3Vz
dG9tSFRNTFRva2VuaXplclRpbWVEZWxheSgtMSk7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNl
KCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197273</attachid>
            <date>2013-04-10 08:49:33 -0700</date>
            <delta_ts>2013-04-10 09:47:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114336-20130410084914.patch</filename>
            <type>text/plain</type>
            <size>58949</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDEzLTA0LTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBiaXRyb3R0ZWQgVGltZW91dENoZWNrZXIgY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtZWNoYW5pc20gaGFzbid0IHdv
cmtlZCBmb3IgYSB3aGlsZS4KKworICAgICAgICBNYXJrTCBpcyB3b3JraW5nIG9uIGEgbmV3IHZl
cnNpb24gb2YgdGhpcyBmZWF0dXJlIHdpdGggYSBkaXN0aW5jdAorICAgICAgICBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAqIEFQSS9BUElTaGltcy5oOgorICAgICAgICAoSlNDOjpBUElFbnRy
eVNoaW06On5BUElFbnRyeVNoaW0pOgorICAgICAgICAoSlNDOjpBUElFbnRyeVNoaW06OmluaXQp
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVFeHBv
cnRzLmRlZjoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZUV4cG9ydEdlbmVyYXRvci9KYXZhU2NyaXB0Q29yZUV4cG9ydHMuZGVmLmluOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBkZmcvREZHR1BSSW5mby5oOgorICAgICAgICAo
R1BSSW5mbyk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAg
ICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpJVCk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNw
cDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICog
aml0L0pTSW50ZXJmYWNlSklULmg6CisgICAgICAgIChKU0ludGVyZmFjZUpJVCk6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6
OkpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAg
ICAgKEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OlN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKToKKyAgICAgICAg
KEpTQyk6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9U
aW1lb3V0Q2hlY2tlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9UaW1lb3V0Q2hl
Y2tlci5oOiBSZW1vdmVkLgorCiAyMDEzLTA0LTA5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGxpdmVuZXNzIHRlc3RzIHRvIEpTQyBBUEkgZW50cnkgcG9p
bnRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNDgw
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTMwNCw3ICszMDQsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCiAgICAgcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5j
cHAKICAgICBydW50aW1lL1N5bWJvbFRhYmxlLmNwcAotICAgIHJ1bnRpbWUvVGltZW91dENoZWNr
ZXIuY3BwCiAKICAgICB0b29scy9Db2RlUHJvZmlsZS5jcHAKICAgICB0b29scy9Db2RlUHJvZmls
aW5nLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0J
KHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC03ODIsOCArNzgyLDYgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXJtaW5hdG9yLmggXAotCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcCBcCi0JU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHJhY2luZy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBl
ZEFycmF5RGVzY3JpcHRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VaW50
MTZXaXRoRnJhY3Rpb24uaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkocmV2aXNp
b24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTMyMyw3ICszMjMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBydW50aW1lL1N0cnVj
dHVyZS5jcHAgXAogICAgIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIFwKICAgICBydW50
aW1lL1N5bWJvbFRhYmxlLmNwcCBcCi0gICAgcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAgXAog
ICAgIHRvb2xzL0NvZGVQcm9maWxlLmNwcCBcCiAgICAgdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAg
XAogICAgIHlhcnIvWWFyckpJVC5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9BUElTaGltcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJ
U2hpbXMuaAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9B
UElTaGltcy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw2IEBAIHB1YmxpYzoKIAogICAg
IH5BUElFbnRyeVNoaW0oKQogICAgIHsKLSAgICAgICAgbV9nbG9iYWxEYXRhLT50aW1lb3V0Q2hl
Y2tlci5zdG9wKCk7CiAgICAgICAgIG1fZ2xvYmFsRGF0YS0+YXBpTG9jaygpLnVubG9jaygpOwog
ICAgIH0KIApAQCAtMTAwLDcgKzk5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXQoKQogICAg
IHsKICAgICAgICAgbV9nbG9iYWxEYXRhLT5hcGlMb2NrKCkubG9jaygpOwotICAgICAgICBtX2ds
b2JhbERhdGEtPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgfQogfTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2oJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzc0LDE0ICsxMzc0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxUaW1lb3V0Q2hlY2tlci5jcHAiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRp
bWVcVGltZW91dENoZWNrZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxUeXBlZEFycmF5RGVzY3JpcHRvci5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlRXhwb3J0cy5kZWYJKHJldmlzaW9uIDE0ODA3NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZgkod29ya2luZyBjb3B5KQpAQCAtMTg5LDcgKzE4OSw2
IEBAIEVYUE9SVFMKICAgICA/ZGVzdHJveUBPdXRPZkxpbmVCaXRzQEJpdFZlY3RvckBXVEZAQFNB
WFBBVjEyM0BAWgogICAgID9kZXRhY2hARGVidWdnZXJASlNDQEBVQUVYUEFWSlNHbG9iYWxPYmpl
Y3RAMkBAWgogICAgID9kZXRhY2hUaHJlYWRAV1RGQEBZQVhJQFoKLSAgICA/ZGlkVGltZU91dEBU
aW1lb3V0Q2hlY2tlckBKU0NAQFFBRV9OUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/ZGlzY2FyZEFs
bENvZGVASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAgICAgP2Rpc3BsYXlOYW1lQEpTRnVuY3Rp
b25ASlNDQEBRQUU/QVZTdHJpbmdAV1RGQEBQQVZFeGVjU3RhdGVAMkBAWgogICAgID9kdG9hQFdU
RkBAWUFYUUFETkFBX05BQUhBQUlAWgpAQCAtMzQ2LDcgKzM0NSw2IEBAIEVYUE9SVFMKICAgICA/
cmVzZXJ2ZUFuZENvbW1pdEBPU0FsbG9jYXRvckBXVEZAQFNBUEFYSVc0VXNhZ2VAMTJAX04xMUBa
CiAgICAgP3Jlc2VydmVDYXBhY2l0eUBTdHJpbmdCdWlsZGVyQFdURkBAUUFFWElAWgogICAgID9y
ZXNldEBQYXJzZXJBcmVuYUBKU0NAQFFBRVhYWgotICAgID9yZXNldEBUaW1lb3V0Q2hlY2tlckBK
U0NAQFFBRVhYWgogICAgID9yZXNldERhdGVDYWNoZUBKU0dsb2JhbERhdGFASlNDQEBRQUVYWFoK
ICAgICA/cmVzaXplQFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYSUBaCiAgICAgP3Jlc2l6ZU91dE9m
TGluZUBCaXRWZWN0b3JAV1RGQEBBQUVYSUBaCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTM2OSw3ICszNjksNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxTdHJ1Y3R1cmVDaGFpbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxTeW1ib2xUYWJsZS5jcHAiIC8+DQotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxUaW1lb3V0Q2hlY2tlci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxpbmcuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHlhcnJcWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIiAvPg0KQEAgLTc1Myw3ICs3NTIs
NiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxTdHJ1Y3R1cmVUcmFuc2l0
aW9uVGFibGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFN5bWJv
bFRhYmxlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxUZXJtaW5h
dG9yLmgiIC8+DQotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxUaW1lb3V0Q2hl
Y2tlci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVHJhY2luZy5o
IiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcVHlwZWRBcnJheURlc2Ny
aXB0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFVpbnQxNldp
dGhGcmFjdGlvbi5oIiAvPg0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVycwkod29ya2luZyBjb3B5KQpAQCAtNzE0LDkgKzcxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXFN5bWJvbFRhYmxlLmNwcCI+DQogICAgICAgPEZpbHRlcj5ydW50
aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcVGltZW91dENoZWNrZXIuY3BwIj4NCi0gICAgICA8RmlsdGVyPnJ1bnRpbWU8
L0ZpbHRlcj4NCi0gICAgPC9DbENvbXBpbGU+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
dG9vbHNcQ29kZVByb2ZpbGUuY3BwIj4NCiAgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0ZXI+DQog
ICAgIDwvQ2xDb21waWxlPg0KQEAgLTE3OTMsOSArMTc5MCw2IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXFRlcm1pbmF0b3IuaCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcVGltZW91dENoZWNrZXIuaCI+DQotICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0
ZXI+DQotICAgIDwvQ2xJbmNsdWRlPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcVHJhY2luZy5oIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmVFeHBvcnRHZW5lcmF0b3IvSmF2YVNjcmlwdENvcmVFeHBvcnRz
LmRlZi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZUV4cG9ydEdlbmVyYXRvci9KYXZhU2NyaXB0Q29yZUV4
cG9ydHMuZGVmLmluCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZUV4cG9ydEdlbmVyYXRvci9KYXZh
U2NyaXB0Q29yZUV4cG9ydHMuZGVmLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNyArMTg5LDYg
QEAgRVhQT1JUUwogICAgID9kZXN0cm95QE91dE9mTGluZUJpdHNAQml0VmVjdG9yQFdURkBAU0FY
UEFWMTIzQEBaCiAgICAgP2RldGFjaEBEZWJ1Z2dlckBKU0NAQFVBRVhQQVZKU0dsb2JhbE9iamVj
dEAyQEBaCiAgICAgP2RldGFjaFRocmVhZEBXVEZAQFlBWElAWgotICAgID9kaWRUaW1lT3V0QFRp
bWVvdXRDaGVja2VyQEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBAWgogICAgID9kaXNjYXJkQWxs
Q29kZUBKU0dsb2JhbERhdGFASlNDQEBRQUVYWFoKICAgICA/ZGlzcGxheU5hbWVASlNGdW5jdGlv
bkBKU0NAQFFBRT9BVlN0cmluZ0BXVEZAQFBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP2R0b2FAV1RG
QEBZQVhRQUROQUFfTkFBSEFBSUBaCkBAIC0zNDUsNyArMzQ0LDYgQEAgRVhQT1JUUwogICAgID9y
ZXNlcnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQQVhJVzRVc2FnZUAxMkBfTjExQFoK
ICAgICA/cmVzZXJ2ZUNhcGFjaXR5QFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYSUBaCiAgICAgP3Jl
c2V0QFBhcnNlckFyZW5hQEpTQ0BAUUFFWFhaCi0gICAgP3Jlc2V0QFRpbWVvdXRDaGVja2VyQEpT
Q0BAUUFFWFhaCiAgICAgP3Jlc2V0RGF0ZUNhY2hlQEpTR2xvYmFsRGF0YUBKU0NAQFFBRVhYWgog
ICAgID9yZXNpemVAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhJQFoKICAgICA/cmVzaXplT3V0T2ZM
aW5lQEJpdFZlY3RvckBXVEZAQEFBRVhJQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDc5LDgg
KzQ3OSw2IEBACiAJCTE0OTcyMDkxMTRFQjgzMTUwMEZFQjFCNyAvKiBQYXNzV2Vhay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5NzIwOTAxNEVCODMx
NTAwRkVCMUI3IC8qIFBhc3NXZWFrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTRBMTU2MzIxMDk2NjM2NTAwNkZBMjYwIC8qIERhdGVJbnN0YW5j
ZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NEExNTYzMDEwOTY2MzY1MDA2RkEyNjAgLyogRGF0ZUluc3RhbmNlQ2FjaGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEEyM0Q3NTBGNEUxQUJC
MDAyM0NEQUQgLyogSklUU3R1YnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTRBMjNENkMwRjRFMTlDRTAwMjNDREFEIC8qIEpJVFN0dWJzLmNwcCAq
LzsgfTsKLQkJMTRBNDJFM0YwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QTQyRTNEMEY0
RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5jcHAgKi87IH07Ci0JCTE0QTQyRTQwMEY0
RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBNDJFM0UwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVv
dXRDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBQkRGNUUwQTQz
N0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwICovOyB9OwogCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QjcyMzNGMTJEN0QwREEwMDNCRDVFRCAv
KiBNYWNoaW5lU3RhY2tNYXJrZXIuY3BwICovOyB9OwogCQkxNEI3MjNCODEyRDdEQTZGMDAzQkQ1
RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNEI3MjM0MDEyRDdEMERBMDAzQkQ1RUQgLyogTWFjaGluZVN0YWNr
TWFya2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTEzMzcsOCArMTMzNSw2IEBACiAJCTE0QTE1NjMwMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRl
SW5zdGFuY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlSW5z
dGFuY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEEyM0Q2QzBGNEUx
OUNFMDAyM0NEQUQgLyogSklUU3R1YnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSklUU3R1YnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEEz
OTZBNjBDRDI5MzMxMDBCNUI0RkYgLyogU3ltYm9sVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3ltYm9sVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMTRBNDJFM0QwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVvdXRDaGVja2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTRBNDJFM0UwRjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVv
dXRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVvdXRDaGVj
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTY1ODFBMEY0RTM2RjQwMDAx
NTBGRCAvKiBKSVRTdHVicy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRT
dHVicy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEFCQjM2RTA5OUMwNzY0MDBF
MkEyNEYgLyogSlNDSlNWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNDSlNWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEFCQjQ1NDA5OUMy
QTBGMDBFMkEyNEYgLyogSlNUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU5Niw4ICsyNTkyLDYg
QEAKIAkJCQkwRjkxOUQyNzE1ODU2NzcwMDA0QTRFN0QgLyogU3ltYm9sVGFibGUuY3BwICovLAog
CQkJCTE0QTM5NkE2MENEMjkzMzEwMEI1QjRGRiAvKiBTeW1ib2xUYWJsZS5oICovLAogCQkJCTk3
RjY5MDNBMTE2OURGN0YwMEE2QkI0NiAvKiBUZXJtaW5hdG9yLmggKi8sCi0JCQkJMTRBNDJFM0Qw
RjRGNjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmNwcCAqLywKLQkJCQkxNEE0MkUzRTBG
NEY2MEVFMDA1OTkwOTkgLyogVGltZW91dENoZWNrZXIuaCAqLywKIAkJCQk1RDUzNzI2RDBFMUM1
NDZCMDAyMUU1NDkgLyogVHJhY2luZy5kICovLAogCQkJCTVENTM3MjZFMEUxQzU0ODgwMDIxRTU0
OSAvKiBUcmFjaW5nLmggKi8sCiAJCQkJMEZFQjNFQ0IxNjIzN0Y0NzAwQUI2N0FEIC8qIFR5cGVk
QXJyYXlEZXNjcmlwdG9yLmggKi8sCkBAIC0zMzgyLDcgKzMzNzYsNiBAQAogCQkJCTk3MUVERUE2
MTE2OUUwRDMwMDVFNDI2MiAvKiBUZXJtaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3
MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3Mzg2NTU2MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTE0QTQyRTQwMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDQ4Q0QxM0ExNzgzNzAwRjVCQTFBIC8qIFRpbnlCbG9v
bUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ1MzcyNkYwRTFDNTQ4ODAwMjFFNTQ5IC8q
IFRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUIzRUNEMTYyMzdGNEQwMEFCNjdBRCAv
KiBUeXBlZEFycmF5RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC00MDU0LDcgKzQwNDcs
NiBAQAogCQkJCTBGOTE5RDI4MTU4NTY3NzMwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNzM4NjU1NTExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0
b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUQ3MDlCMTZERTk5RjQwMEZDQTZCQyAvKiBK
U01hbmFnZWRWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTE0QTQyRTNGMEY0RjYwRUUwMDU5
OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0QTE1
OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0MDE1
OEVCRThCMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZG
NDI3NDMxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9pbnB1dC5jIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dQUkluZm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dQUkluZm8uaAkocmV2aXNpb24gMTQ4MDc3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHUFJJbmZvLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNCw3ICszMjQsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGVzZSByZWdpc3RlcnMg
bWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJl
c3VsdFJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjEyOwogICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMzsKICAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6
cjE0OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gWDg2UmVnaXN0
ZXJzOjpyMTU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxNDgw
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExOCwzOCArMTE4LDYgQEAgdm9pZCBKSVQ6OmVtaXRPcHRpbWl6YXRpb25DaGVjayhPcHRp
bWl6YQogfQogI2VuZGlmCiAKLSNpZiBDUFUoWDg2KQotdm9pZCBKSVQ6OmVtaXRUaW1lb3V0Q2hl
Y2soKQotewotICAgIEp1bXAgc2tpcFRpbWVvdXQgPSBicmFuY2hTdWIzMihOb25aZXJvLCBUcnVz
dGVkSW1tMzIoMSksIEFic29sdXRlQWRkcmVzcygmbV9nbG9iYWxEYXRhLT5tX3RpbWVvdXRDb3Vu
dCkpOwotICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV90aW1lb3V0X2NoZWNrKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChyZWdUMSwgcmVnVDApOyAvLyBzYXZlIGxhc3QgcmVz
dWx0IHJlZ2lzdGVycy4KLSAgICBzdHViQ2FsbC5jYWxsKHJlZ1QwKTsKLSAgICBzdG9yZTMyKHJl
Z1QwLCAmbV9nbG9iYWxEYXRhLT5tX3RpbWVvdXRDb3VudCk7Ci0gICAgc3R1YkNhbGwuZ2V0QXJn
dW1lbnQoMCwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVsb2FkIGxhc3QgcmVzdWx0IHJlZ2lzdGVycy4K
LSAgICBza2lwVGltZW91dC5saW5rKHRoaXMpOwotfQotI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkK
LXZvaWQgSklUOjplbWl0VGltZW91dENoZWNrKCkKLXsKLSAgICBKdW1wIHNraXBUaW1lb3V0ID0g
YnJhbmNoU3ViMzIoTm9uWmVybywgVHJ1c3RlZEltbTMyKDEpLCB0aW1lb3V0Q2hlY2tSZWdpc3Rl
cik7Ci0gICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX3RpbWVvdXRfY2hlY2spOwot
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QxLCByZWdUMCk7IC8vIHNhdmUgbGFzdCByZXN1
bHQgcmVnaXN0ZXJzLgotICAgIHN0dWJDYWxsLmNhbGwodGltZW91dENoZWNrUmVnaXN0ZXIpOwot
ICAgIHN0dWJDYWxsLmdldEFyZ3VtZW50KDAsIHJlZ1QxLCByZWdUMCk7IC8vIHJlbG9hZCBsYXN0
IHJlc3VsdCByZWdpc3RlcnMuCi0gICAgc2tpcFRpbWVvdXQubGluayh0aGlzKTsKLX0KLSNlbHNl
Ci12b2lkIEpJVDo6ZW1pdFRpbWVvdXRDaGVjaygpCi17Ci0gICAgSnVtcCBza2lwVGltZW91dCA9
IGJyYW5jaFN1YjMyKE5vblplcm8sIFRydXN0ZWRJbW0zMigxKSwgdGltZW91dENoZWNrUmVnaXN0
ZXIpOwotICAgIEpJVFN0dWJDYWxsKHRoaXMsIGN0aV90aW1lb3V0X2NoZWNrKS5jYWxsKHRpbWVv
dXRDaGVja1JlZ2lzdGVyKTsKLSAgICBza2lwVGltZW91dC5saW5rKHRoaXMpOwotCi0gICAga2ls
bExhc3RSZXN1bHRSZWdpc3RlcigpOwotfQotI2VuZGlmCi0KICNkZWZpbmUgTkVYVF9PUENPREUo
bmFtZSkgXAogICAgIG1fYnl0ZWNvZGVPZmZzZXQgKz0gT1BDT0RFX0xFTkdUSChuYW1lKTsgXAog
ICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAxNDgwNzcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC04
NTksNyArODU5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdE9wdGltaXph
dGlvbkNoZWNrKE9wdGltaXphdGlvbkNoZWNrS2luZCkgeyB9CiAjZW5kaWYKICAgICAgICAgCi0g
ICAgICAgIHZvaWQgZW1pdFRpbWVvdXRDaGVjaygpOwogI2lmbmRlZiBOREVCVUcKICAgICAgICAg
dm9pZCBwcmludEJ5dGVjb2RlT3BlcmFuZFR5cGVzKHVuc2lnbmVkIHNyYzEsIHVuc2lnbmVkIHNy
YzIpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAko
cmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw3ICs0NzEsNiBAQCBTWU1CT0xfU1RSSU5HKGN0aVRy
YW1wb2xpbmUpICI6IiAiXG4iCiAgICAgInN3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICNlbmRpZgogICAgICJtb3ZlICAkMTYs
JDYgICAgICAgIyBzZXQgY2FsbEZyYW1lUmVnaXN0ZXIiICJcbiIKLSAgICAibGkgICAgJDE3LDUx
MiAgICAgICMgc2V0IHRpbWVvdXRDaGVja1JlZ2lzdGVyIiAiXG4iCiAgICAgIm1vdmUgICQyNSwk
NCAgICAgICAjIG1vdmUgZXhlY3V0YWJsZUFkZHJlc3MgdG8gdDkiICJcbiIKICAgICAic3cgICAg
JDUsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUkVHSVNURVJfRklMRV9PRkZTRVQpICIoJDI5KSAjIHN0
b3JlIEpTU3RhY2sgdG8gY3VycmVudCBzdGFjayIgIlxuIgogICAgICJsdyAgICAkOSwiIFNUUklO
R0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEggKyAyMCkgIigkMjkpICAgICMgbG9hZCBnbG9iYWxE
YXRhIGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKQEAgLTEzNzMsMjQgKzEzNzIsNiBAQCBERUZJ
TkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCi1ERUZJTkVfU1RVQl9GVU5DVElPTihpbnQsIHRpbWVvdXRf
Y2hlY2spCi17Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwotCi0gICAg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gc3RhY2tGcmFtZS5nbG9iYWxEYXRhOwotICAgIFRp
bWVvdXRDaGVja2VyJiB0aW1lb3V0Q2hlY2tlciA9IGdsb2JhbERhdGEtPnRpbWVvdXRDaGVja2Vy
OwotCi0gICAgaWYgKGdsb2JhbERhdGEtPnRlcm1pbmF0b3Iuc2hvdWxkVGVybWluYXRlKCkpIHsK
LSAgICAgICAgZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlv
bkV4Y2VwdGlvbihnbG9iYWxEYXRhKTsKLSAgICAgICAgVk1fVEhST1dfRVhDRVBUSU9OX0FUX0VO
RCgpOwotICAgIH0gZWxzZSBpZiAodGltZW91dENoZWNrZXIuZGlkVGltZU91dChzdGFja0ZyYW1l
LmNhbGxGcmFtZSkpIHsKLSAgICAgICAgZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlSW50
ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgICAgIFZNX1RIUk9X
X0VYQ0VQVElPTl9BVF9FTkQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdGltZW91dENoZWNrZXIu
dGlja3NVbnRpbE5leHRDaGVjaygpOwotfQotCiBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkKiwg
c3RhY2tfY2hlY2spCiB7CiAgICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gMTQ4MDc3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MDYsNyArNDA2LDYgQEAgaW50IEpJVF9TVFVCIGN0aV9vcF9qZ3JlYXRlcihTVFVCX0FSR1Nf
RAogaW50IEpJVF9TVFVCIGN0aV9vcF9qZ3JlYXRlcmVxKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwogaW50IEpJVF9TVFVCIGN0aV9vcF9qdHJ1ZShTVFVCX0FSR1NfREVDTEFS
QVRJT04pIFdURl9JTlRFUk5BTDsKIHZvaWQqIEpJVF9TVFVCIGN0aV9vcF9sb2FkX3ZhcmFyZ3Mo
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7Ci1pbnQgSklUX1NUVUIgY3RpX3Rp
bWVvdXRfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiBpbnQgSklU
X1NUVUIgY3RpX2hhc19wcm9wZXJ0eShTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5B
TDsKIHZvaWQgSklUX1NUVUIgY3RpX29wX2RlYnVnKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RG
X0lOVEVSTkFMOwogdm9pZCBKSVRfU1RVQiBjdGlfb3BfZW5kKFNUVUJfQVJHU19ERUNMQVJBVElP
TikgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVy
ZmFjZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRl
cmZhY2VKSVQuaAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KU0ludGVyZmFjZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBidWNrZXRDb3VudGVy
UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMDsKICNlbmRpZgogCi0gICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTI7
CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjpyMTM7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRhZ1R5cGVO
dW1iZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjE0OwogICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsKQEAgLTExOCw3
ICsxMTcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAvLyBVcGRhdGUgY3RpVHJhbXBv
bGluZSBpbiBKSVRTdHVicy5jcHAgaWYgdGhlc2UgdmFsdWVzIGFyZSBjaGFuZ2VkIQogICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVy
czo6cjU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lz
dGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAogICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3Rl
cklEIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOwogICAgICAgICBzdGF0aWMgY29uc3QgRlBS
ZWdpc3RlcklEIGZwUmVnVDEgPSBBUk1SZWdpc3RlcnM6OmQxOwpAQCAtMTQ1LDE0ICsxNDMsMTIg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Qz
ID0gTUlQU1JlZ2lzdGVyczo6czI7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnMwOwotICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IE1JUFNSZWdpc3Rl
cnM6OnMxOwogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJl
Z1QwID0gTUlQU1JlZ2lzdGVyczo6ZjQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVy
SUQgZnBSZWdUMSA9IE1JUFNSZWdpc3RlcnM6OmY2OwogICAgICAgICBzdGF0aWMgY29uc3QgRlBS
ZWdpc3RlcklEIGZwUmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjpmODsKICAgICAgICAgc3RhdGljIGNv
bnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6ZjEwOwogI2VsaWYgQ1BV
KFNINCkKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0
ZXIgPSBTSDRSZWdpc3RlcnM6OnI4OwogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBj
YWxsRnJhbWVSZWdpc3RlciA9IFNINFJlZ2lzdGVyczo6ZnA7CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVnVDAgPSBTSDRSZWdpc3RlcnM6OnIwOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCShyZXZpc2lvbiAxNDgw
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODAsOSArMTgwLDYgQEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERh
dGEoR2xvYmFsRGF0YVR5cAogI2lmbmRlZiBOREVCVUcKICAgICAsIGV4Y2x1c2l2ZVRocmVhZCgw
KQogI2VuZGlmCi0jaWYgQ1BVKFg4NikgJiYgRU5BQkxFKEpJVCkKLSAgICAsIG1fdGltZW91dENv
dW50KDUxMikKLSNlbmRpZgogICAgICwgbV9uZXdTdHJpbmdzU2luY2VMYXN0SGFzaENvbnMoMCkK
ICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICwgbV9jYW5Vc2VBc3NlbWJsZXIoZW5hYmxlQXNz
ZW1ibGVyKGV4ZWN1dGFibGVBbGxvY2F0b3IpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiU3Ryb25nLmgiCiAjaW5jbHVkZSAiVGVybWluYXRvci5o
IgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgotI2luY2x1ZGUgIlRpbWVvdXRDaGVja2Vy
LmgiCiAjaW5jbHVkZSAiVHlwZWRBcnJheURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWFrUmFu
ZG9tLmgiCiAjaW5jbHVkZSA8d3RmL0J1bXBQb2ludGVyQWxsb2NhdG9yLmg+CkBAIC0zMjYsNyAr
MzI1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgTmF0aXZlRXhlY3V0YWJs
ZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1
Y3Rvcik7CiAKLSAgICAgICAgVGltZW91dENoZWNrZXIgdGltZW91dENoZWNrZXI7CiAgICAgICAg
IFRlcm1pbmF0b3IgdGVybWluYXRvcjsKIAogICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKQEAg
LTQxNCwxMCArNDEyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0SW5pdGlh
bGl6aW5nT2JqZWN0Q2xhc3MoY29uc3QgQ2xhc3NJbmZvKik7CiAjZW5kaWYKIAotI2lmIENQVShY
ODYpICYmIEVOQUJMRShKSVQpCi0gICAgICAgIHVuc2lnbmVkIG1fdGltZW91dENvdW50OwotI2Vu
ZGlmCi0KICAgICAgICAgdW5zaWduZWQgbV9uZXdTdHJpbmdzU2luY2VMYXN0SGFzaENvbnM7CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfbWluTnVtYmVyT2ZOZXdTdHJpbmdzVG9I
YXNoQ29ucyA9IDEwMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1
LDEyICsxMDUsNiBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iCiBA
ZW5kCiAqLwogCi0vLyBEZWZhdWx0IG51bWJlciBvZiB0aWNrcyBiZWZvcmUgYSB0aW1lb3V0IGNo
ZWNrIHNob3VsZCBiZSBkb25lLgotc3RhdGljIGNvbnN0IGludCBpbml0aWFsVGlja0NvdW50VGhy
ZXNob2xkID0gMjU1OwotCi0vLyBQcmVmZXJyZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3
ZWVuIGVhY2ggdGltZW91dCBjaGVjawotc3RhdGljIGNvbnN0IGludCBwcmVmZXJyZWRTY3JpcHRD
aGVja1RpbWVJbnRlcnZhbCA9IDEwMDA7Ci0KIEpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVj
dChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCiAgICAgOiBC
YXNlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgMCkKICAgICAsIG1fbWFzcXVlcmFkZXNBc1VuZGVm
aW5lZFdhdGNocG9pbnQoYWRvcHRSZWYobmV3IFdhdGNocG9pbnRTZXQoSW5pdGlhbGl6ZWRXYXRj
aGluZykpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsMjEgKzQyMCwxMCBAQCBTdHJp
bmdpZmllcjo6U3RyaW5naWZ5UmVzdWx0IFN0cmluZ2lmaWVyCiAgICAgaWYgKCFob2xkZXJTdGFj
a1dhc0VtcHR5KQogICAgICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwogCi0gICAgLy8g
SWYgdGhpcyBpcyB0aGUgb3V0ZXJtb3N0IGNhbGwsIHRoZW4gbG9vcCB0byBoYW5kbGUgZXZlcnl0
aGluZyBvbiB0aGUgaG9sZGVyIHN0YWNrLgotICAgIFRpbWVvdXRDaGVja2VyIGxvY2FsVGltZW91
dENoZWNrZXIobV9leGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIpOwotICAgIGxvY2Fs
VGltZW91dENoZWNrZXIucmVzZXQoKTsKLSAgICB1bnNpZ25lZCB0aWNrQ291bnQgPSBsb2NhbFRp
bWVvdXRDaGVja2VyLnRpY2tzVW50aWxOZXh0Q2hlY2soKTsKICAgICBkbyB7CiAgICAgICAgIHdo
aWxlIChtX2hvbGRlclN0YWNrLmxhc3QoKS5hcHBlbmROZXh0UHJvcGVydHkoKnRoaXMsIGJ1aWxk
ZXIpKSB7CiAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gU3RyaW5naWZ5RmFpbGVkOwotICAgICAgICAgICAgaWYgKCEtLXRpY2tD
b3VudCkgewotICAgICAgICAgICAgICAgIGlmIChsb2NhbFRpbWVvdXRDaGVja2VyLmRpZFRpbWVP
dXQobV9leGVjKSkgewotICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKG1fZXhlYywgY3Jl
YXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oJm1fZXhlYy0+Z2xvYmFsRGF0YSgpKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IGxvY2FsVGltZW91dENoZWNrZXIu
dGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAg
IG1faG9sZGVyU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgIH0gd2hpbGUgKCFtX2hvbGRlclN0YWNr
LmlzRW1wdHkoKSk7CkBAIC02MzgsOCArNjI3LDcgQEAgcHJpdmF0ZToKICAgICBDYWxsRGF0YSBt
X2NhbGxEYXRhOwogfTsKIAotLy8gV2UgY2xhbXAgcmVjdXJzaW9uIHdlbGwgYmV5b25kIGFueXRo
aW5nIHJlYXNvbmFibGUsIGJ1dCB3ZSBhbHNvIGhhdmUgYSB0aW1lb3V0IGNoZWNrCi0vLyB0byBn
dWFyZCBhZ2FpbnN0ICJpbmZpbml0ZSIgZXhlY3V0aW9uIGJ5IGluc2VydGluZyBhcmJpdHJhcmls
eSBsYXJnZSBvYmplY3RzLgorLy8gV2UgY2xhbXAgcmVjdXJzaW9uIHdlbGwgYmV5b25kIGFueXRo
aW5nIHJlYXNvbmFibGUuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUZpbHRlclJlY3Vy
c2lvbiA9IDQwMDAwOwogZW51bSBXYWxrZXJTdGF0ZSB7IFN0YXRlVW5rbm93biwgQXJyYXlTdGFy
dFN0YXRlLCBBcnJheVN0YXJ0VmlzaXRNZW1iZXIsIEFycmF5RW5kVmlzaXRNZW1iZXIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0U3RhcnRTdGF0ZSwgT2JqZWN0U3Rh
cnRWaXNpdE1lbWJlciwgT2JqZWN0RW5kVmlzaXRNZW1iZXIgfTsKQEAgLTY1NSw5ICs2NDMsNiBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgSlNWYWx1ZSBp
blZhbHVlID0gdW5maWx0ZXJlZDsKICAgICBKU1ZhbHVlIG91dFZhbHVlID0ganNOdWxsKCk7CiAg
ICAgCi0gICAgVGltZW91dENoZWNrZXIgbG9jYWxUaW1lb3V0Q2hlY2tlcihtX2V4ZWMtPmdsb2Jh
bERhdGEoKS50aW1lb3V0Q2hlY2tlcik7Ci0gICAgbG9jYWxUaW1lb3V0Q2hlY2tlci5yZXNldCgp
OwotICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IGxvY2FsVGltZW91dENoZWNrZXIudGlja3NVbnRp
bE5leHRDaGVjaygpOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsK
ICAgICAgICAgICAgIGFycmF5U3RhcnRTdGF0ZToKQEAgLTY3NCwxMiArNjU5LDYgQEAgTkVWRVJf
SU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYXJyYXlTdGFydFZpc2l0TWVtYmVyOgogICAgICAgICAgICAgY2FzZSBBcnJheVN0YXJ0
VmlzaXRNZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChsb2NhbFRpbWVvdXRDaGVja2VyLmRpZFRpbWVPdXQobV9leGVj
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG1fZXhlYywgY3Jl
YXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oJm1fZXhlYy0+Z2xvYmFsRGF0YSgpKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IGxvY2FsVGltZW91dENoZWNrZXIudGlj
a3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgICAg
IEpTQXJyYXkqIGFycmF5ID0gYXJyYXlTdGFjay5wZWVrKCk7CiAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgaW5kZXggPSBpbmRleFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICBpZiAoaW5k
ZXggPT0gYXJyYXktPmxlbmd0aCgpKSB7CkBAIC03MzMsMTIgKzcxMiw2IEBAIE5FVkVSX0lOTElO
RSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0Vmlz
aXRNZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChsb2NhbFRpbWVvdXRDaGVja2VyLmRpZFRpbWVPdXQobV9leGVjKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG1fZXhlYywgY3JlYXRl
SW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oJm1fZXhlYy0+Z2xvYmFsRGF0YSgpKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IGxvY2FsVGltZW91dENoZWNrZXIudGlja3NV
bnRpbE5leHRDaGVjaygpOwotICAgICAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBvYmplY3RTdGFjay5wZWVrKCk7CiAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgaW5kZXggPSBpbmRleFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydGllcyA9IHByb3BlcnR5U3RhY2subGFzdCgpOwpAQCAtNzk2LDEy
ICs3NjksNiBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAKICAg
ICAgICAgc3RhdGUgPSBzdGF0ZVN0YWNrLmxhc3QoKTsKICAgICAgICAgc3RhdGVTdGFjay5yZW1v
dmVMYXN0KCk7Ci0KLSAgICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAgICAgICAgaWYg
KGxvY2FsVGltZW91dENoZWNrZXIuZGlkVGltZU91dChtX2V4ZWMpKQotICAgICAgICAgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKG1fZXhlYywgY3JlYXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNl
cHRpb24oJm1fZXhlYy0+Z2xvYmFsRGF0YSgpKSk7Ci0gICAgICAgICAgICB0aWNrQ291bnQgPSBs
b2NhbFRpbWVvdXRDaGVja2VyLnRpY2tzVW50aWxOZXh0Q2hlY2soKTsKLSAgICAgICAgfQogICAg
IH0KICAgICBKU09iamVjdCogZmluYWxIb2xkZXIgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChtX2V4
ZWMpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcAkocmV2aXNpb24gMTQ4MDc3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAw
OCBDYW1lcm9uIFp3YXJpY2ggPGN3endhcmljaEB1d2F0ZXJsb28uY2E+Ci0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlRpbWVvdXRDaGVja2VyLmgiCi0KLSNpbmNsdWRlICJDYWxsRnJhbWUu
aCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
LQotI2lmIE9TKERBUldJTikKLSNpbmNsdWRlIDxtYWNoL21hY2guaD4KLSNlbGlmIE9TKFdJTkRP
V1MpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2Vsc2UKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgSlNDIHsK
LQotLy8gTnVtYmVyIG9mIHRpY2tzIGJlZm9yZSB0aGUgZmlyc3QgdGltZW91dCBjaGVjayBpcyBk
b25lLgotc3RhdGljIGNvbnN0IGludCB0aWNrc1VudGlsRmlyc3RDaGVjayA9IDEwMjQ7Ci0KLS8v
IE51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiBlYWNoIHRpbWVvdXQgY2hlY2suCi1zdGF0
aWMgY29uc3QgaW50IGludGVydmFsQmV0d2VlbkNoZWNrcyA9IDEwMDA7Ci0KLS8vIFJldHVybnMg
dGhlIHRpbWUgdGhlIGN1cnJlbnQgdGhyZWFkIGhhcyBzcGVudCBleGVjdXRpbmcsIGluIG1pbGxp
c2Vjb25kcy4KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZ2V0Q1BVVGltZSgpCi17Ci0jaWYgT1Mo
REFSV0lOKQotICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgaW5mb0NvdW50ID0gVEhSRUFEX0JB
U0lDX0lORk9fQ09VTlQ7Ci0gICAgdGhyZWFkX2Jhc2ljX2luZm9fZGF0YV90IGluZm87Ci0KLSAg
ICAvLyBHZXQgdGhyZWFkIGluZm9ybWF0aW9uCi0gICAgbWFjaF9wb3J0X3QgdGhyZWFkUG9ydCA9
IG1hY2hfdGhyZWFkX3NlbGYoKTsKLSAgICB0aHJlYWRfaW5mbyh0aHJlYWRQb3J0LCBUSFJFQURf
QkFTSUNfSU5GTywgcmVpbnRlcnByZXRfY2FzdDx0aHJlYWRfaW5mb190PigmaW5mbyksICZpbmZv
Q291bnQpOwotICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIHRocmVh
ZFBvcnQpOwotICAgIAotICAgIHVuc2lnbmVkIHRpbWUgPSBpbmZvLnVzZXJfdGltZS5zZWNvbmRz
ICogMTAwMCArIGluZm8udXNlcl90aW1lLm1pY3Jvc2Vjb25kcyAvIDEwMDA7Ci0gICAgdGltZSAr
PSBpbmZvLnN5c3RlbV90aW1lLnNlY29uZHMgKiAxMDAwICsgaW5mby5zeXN0ZW1fdGltZS5taWNy
b3NlY29uZHMgLyAxMDAwOwotICAgIAotICAgIHJldHVybiB0aW1lOwotI2VsaWYgT1MoV0lORE9X
UykKLSAgICB1bmlvbiB7Ci0gICAgICAgIEZJTEVUSU1FIGZpbGVUaW1lOwotICAgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgZmlsZVRpbWVBc0xvbmc7Ci0gICAgfSB1c2VyVGltZSwga2VybmVsVGlt
ZTsKLSAgICAKLSAgICAvLyBHZXRUaHJlYWRUaW1lcyB3b24ndCBhY2NlcHQgTlVMTCBhcmd1bWVu
dHMgc28gd2UgcGFzcyB0aGVzZSBldmVuIHRob3VnaAotICAgIC8vIHRoZXkncmUgbm90IHVzZWQu
Ci0gICAgRklMRVRJTUUgY3JlYXRpb25UaW1lLCBleGl0VGltZTsKLSAgICAKLSAgICBHZXRUaHJl
YWRUaW1lcyhHZXRDdXJyZW50VGhyZWFkKCksICZjcmVhdGlvblRpbWUsICZleGl0VGltZSwgJmtl
cm5lbFRpbWUuZmlsZVRpbWUsICZ1c2VyVGltZS5maWxlVGltZSk7Ci0gICAgCi0gICAgcmV0dXJu
IHVzZXJUaW1lLmZpbGVUaW1lQXNMb25nIC8gMTAwMDAgKyBrZXJuZWxUaW1lLmZpbGVUaW1lQXNM
b25nIC8gMTAwMDA7Ci0jZWxpZiBPUyhRTlgpCi0gICAgc3RydWN0IHRpbWVzcGVjIHRpbWU7Ci0g
ICAgaWYgKGNsb2NrX2dldHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZ0aW1lKSkKLSAg
ICAgICAgQ1JBU0goKTsKLSAgICByZXR1cm4gdGltZS50dl9zZWMgKiAxMDAwLjAgKyB0aW1lLnR2
X25zZWMgLyAxLjBlNjsKLSNlbHNlCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXR1cm4gdGhl
IHRpbWUgdGhlIGN1cnJlbnQgdGhyZWFkIGhhcyBzcGVudCBleGVjdXRpbmcuCi0KLSAgICAvLyB1
c2UgYSByZWxhdGl2ZSB0aW1lIGZyb20gZmlyc3QgY2FsbCBpbiBvcmRlciB0byBhdm9pZCBhbiBv
dmVyZmxvdwotICAgIHN0YXRpYyBkb3VibGUgZmlyc3RUaW1lID0gY3VycmVudFRpbWUoKTsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+ICgoY3VycmVudFRpbWUoKSAtIGZpcnN0VGlt
ZSkgKiAxMDAwKTsKLSNlbmRpZgotfQotCi1UaW1lb3V0Q2hlY2tlcjo6VGltZW91dENoZWNrZXIo
KQotICAgIDogbV90aW1lb3V0SW50ZXJ2YWwoMCkKLSAgICAsIG1fc3RhcnRDb3VudCgwKQotewot
ICAgIHJlc2V0KCk7Ci19Ci0KLXZvaWQgVGltZW91dENoZWNrZXI6OnJlc2V0KCkKLXsKLSAgICBt
X3RpY2tzVW50aWxOZXh0Q2hlY2sgPSB0aWNrc1VudGlsRmlyc3RDaGVjazsKLSAgICBtX3RpbWVB
dExhc3RDaGVjayA9IDA7Ci0gICAgbV90aW1lRXhlY3V0aW5nID0gMDsKLX0KLQotYm9vbCBUaW1l
b3V0Q2hlY2tlcjo6ZGlkVGltZU91dChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgdW5zaWduZWQg
Y3VycmVudFRpbWUgPSBnZXRDUFVUaW1lKCk7Ci0gICAgCi0gICAgaWYgKCFtX3RpbWVBdExhc3RD
aGVjaykgewotICAgICAgICAvLyBTdXNwaWNpb3VzIGFtb3VudCBvZiBsb29waW5nIGluIGEgc2Ny
aXB0IC0tIHN0YXJ0IHRpbWluZyBpdAotICAgICAgICBtX3RpbWVBdExhc3RDaGVjayA9IGN1cnJl
bnRUaW1lOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVk
IHRpbWVEaWZmID0gY3VycmVudFRpbWUgLSBtX3RpbWVBdExhc3RDaGVjazsKLSAgICAKLSAgICBp
ZiAodGltZURpZmYgPT0gMCkKLSAgICAgICAgdGltZURpZmYgPSAxOwotICAgIAotICAgIG1fdGlt
ZUV4ZWN1dGluZyArPSB0aW1lRGlmZjsKLSAgICBtX3RpbWVBdExhc3RDaGVjayA9IGN1cnJlbnRU
aW1lOwotICAgIAotICAgIC8vIEFkanVzdCB0aGUgdGljayB0aHJlc2hvbGQgc28gd2UgZ2V0IHRo
ZSBuZXh0IGNoZWNrVGltZW91dCBjYWxsIGluIHRoZQotICAgIC8vIGludGVydmFsIHNwZWNpZmll
ZCBpbiBpbnRlcnZhbEJldHdlZW5DaGVja3MuCi0gICAgbV90aWNrc1VudGlsTmV4dENoZWNrID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KChzdGF0aWNfY2FzdDxmbG9hdD4oaW50ZXJ2YWxCZXR3ZWVu
Q2hlY2tzKSAvIHRpbWVEaWZmKSAqIG1fdGlja3NVbnRpbE5leHRDaGVjayk7Ci0gICAgLy8gSWYg
dGhlIG5ldyB0aHJlc2hvbGQgaXMgMCByZXNldCBpdCB0byB0aGUgZGVmYXVsdCB0aHJlc2hvbGQu
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgdGltZURpZmYgaXMgaGlnaGVyIHRoYW4gdGhlCi0gICAg
Ly8gcHJlZmVycmVkIHNjcmlwdCBjaGVjayB0aW1lIGludGVydmFsLgotICAgIGlmIChtX3RpY2tz
VW50aWxOZXh0Q2hlY2sgPT0gMCkKLSAgICAgICAgbV90aWNrc1VudGlsTmV4dENoZWNrID0gdGlj
a3NVbnRpbEZpcnN0Q2hlY2s7Ci0gICAgCi0gICAgaWYgKG1fdGltZW91dEludGVydmFsICYmIG1f
dGltZUV4ZWN1dGluZyA+IG1fdGltZW91dEludGVydmFsKSB7Ci0gICAgICAgIGlmIChleGVjLT5k
eW5hbWljR2xvYmFsT2JqZWN0KCktPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnNob3VsZElu
dGVycnVwdFNjcmlwdChleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIAotICAgICAgICByZXNldCgpOwotICAgIH0KLSAgICAKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5oCShyZXZpc2lvbiAxNDgw
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaW1lb3V0Q2hlY2tlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVGltZW91dENoZWNrZXJfaAot
I2RlZmluZSBUaW1lb3V0Q2hlY2tlcl9oCi0KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLQotICAgIGNsYXNzIFRp
bWVvdXRDaGVja2VyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFRpbWVvdXRDaGVja2VyKCk7Ci0K
LSAgICAgICAgdm9pZCBzZXRUaW1lb3V0SW50ZXJ2YWwodW5zaWduZWQgdGltZW91dEludGVydmFs
KSB7IG1fdGltZW91dEludGVydmFsID0gdGltZW91dEludGVydmFsOyB9Ci0gICAgICAgIHVuc2ln
bmVkIHRpbWVvdXRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZW91dEludGVydmFsOyB9
Ci0gICAgICAgIAotICAgICAgICB1bnNpZ25lZCB0aWNrc1VudGlsTmV4dENoZWNrKCkgeyByZXR1
cm4gbV90aWNrc1VudGlsTmV4dENoZWNrOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHN0YXJ0
KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX3N0YXJ0Q291bnQpCi0gICAgICAgICAg
ICAgICAgcmVzZXQoKTsKLSAgICAgICAgICAgICsrbV9zdGFydENvdW50OwotICAgICAgICB9Ci0K
LSAgICAgICAgdm9pZCBzdG9wKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fc3Rh
cnRDb3VudCk7Ci0gICAgICAgICAgICAtLW1fc3RhcnRDb3VudDsKLSAgICAgICAgfQotCi0gICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBib29sIGRpZFRpbWVPdXQoRXhlY1N0YXRlKik7Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICB1bnNpZ25lZCBtX3RpbWVvdXRJbnRlcnZhbDsKLSAgICAgICAgdW5zaWduZWQgbV90aW1l
QXRMYXN0Q2hlY2s7Ci0gICAgICAgIHVuc2lnbmVkIG1fdGltZUV4ZWN1dGluZzsKLSAgICAgICAg
dW5zaWduZWQgbV9zdGFydENvdW50OwotICAgICAgICB1bnNpZ25lZCBtX3RpY2tzVW50aWxOZXh0
Q2hlY2s7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBUaW1lb3V0
Q2hlY2tlcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wNC0w
OSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQg
Yml0cm90dGVkIFRpbWVvdXRDaGVja2VyIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbWVjaGFuaXNtIGhhc24ndCB3b3JrZWQgZm9yIGEg
d2hpbGUuCisKKyAgICAgICAgTWFya0wgaXMgd29ya2luZyBvbiBhIG5ldyB2ZXJzaW9uIG9mIHRo
aXMgZmVhdHVyZSB3aXRoIGEgZGlzdGluY3QKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jh
c2U6OmNvbW1vbkpTR2xvYmFsRGF0YSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRp
b25DYWxsYmFjazo6Y2FsbCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZUZ1bmN0aW9u
SW5Db250ZXh0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lQmFzZTo6Q2xvbmVCYXNlKToKKyAgICAgICAgKENsb25lQmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3QgY2FsbFdlYlNj
cmlwdE1ldGhvZDp3aXRoQXJndW1lbnRzOl0pOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3Qg
ZXZhbHVhdGVXZWJTY3JpcHQ6XSk6CisKIDIwMTMtMDQtMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBTY3JpcHQgcnVuIGZyb20gYW4gaXNvbGF0
ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2UncyBDU1AKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzAsNyArNzAsNiBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxs
YmFjayhKCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogCi0g
ICAgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBKU01haW5UaHJlYWRF
eGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbkNhbGwoY29udGV4dCwgY2FsbFR5cGUsIGNhbGxE
YXRhKTsKIAogICAgIGJvb2wgY29udGV4dElzRG9jdW1lbnQgPSBjb250ZXh0LT5pc0RvY3VtZW50
KCk7CkBAIC03OSw3ICs3OCw2IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxi
YWNrKEoKICAgICAgICAgOiBKU0M6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgdGhpc1ZhbHVlLCBhcmdzKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSk7Ci0gICAgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbERhdGEo
KS50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAKICAgICBpZiAoY29udGV4dElzRG9jdW1lbnQpCiAg
ICAgICAgIERvY3VtZW50Ojp1cGRhdGVTdHlsZUZvckFsbERvY3VtZW50cygpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw5ICs5MSw3
IEBAIFN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmEKICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4
ZWMsIHByZWZpeCkpOwogCi0gICAgbV9nbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS50aW1lb3V0
Q2hlY2tlci5zdGFydCgpOwogICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3VzdG9tUmVz
b2x2ZXIuZ2V0KCksIGFyZ3MpOwotICAgIG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkudGlt
ZW91dENoZWNrZXIuc3RvcCgpOwogCiAgICAgU3RyaW5nIHJlc3VsdDsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw3ICsx
ODUsNiBAQCBKU0dsb2JhbERhdGEqIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHCiAgICAgaWYg
KCFnbG9iYWxEYXRhKSB7CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICAgICAgZ2xvYmFsRGF0YSA9IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTGVha2Vk
KExhcmdlSGVhcCkubGVha1JlZigpOwotICAgICAgICBnbG9iYWxEYXRhLT50aW1lb3V0Q2hlY2tl
ci5zZXRUaW1lb3V0SW50ZXJ2YWwoMTAwMDApOyAvLyAxMCBzZWNvbmRzCiAjaWZuZGVmIE5ERUJV
RwogICAgICAgICBnbG9iYWxEYXRhLT5leGNsdXNpdmVUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFu
ZGxlci5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsMTEgKzk0LDkgQEAgdm9p
ZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RQogCiAgICAgICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZ2xvYmFsT2JqZWN0LT5tZXRob2RUYWJsZSgpLT50b1RoaXNPYmplY3QoZ2xv
YmFsT2JqZWN0LCBleGVjKTsKIAotICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0
YXJ0KCk7CiAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0RvY3VtZW50KCkKICAgICAgICAgICAgID8gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpj
YWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdz
KQogICAgICAgICAgICAgOiBKU0M6OmNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpOwotICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVj
a2VyLnN0b3AoKTsKIAogICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZl
ZEV2ZW50KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyArMTIxLDYg
QEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdAogICAgICAgICBKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKICAgICAg
ICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKGdsb2JhbERhdGEs
IGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA/IGdsb2JhbERhdGEuZHluYW1pY0dsb2Jh
bE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CiAKLSAgICAgICAgZ2xvYmFsRGF0YS50aW1lb3V0Q2hl
Y2tlci5zdGFydCgpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29v
a2llID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rpb25DYWxsKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIGNhbGxUeXBlLCBjYWxsRGF0YSk7CiAKICAgICAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBoYW5kbGVFdmVudEZ1bmN0aW9uID09IGpzRnVuY3Rpb24gPyB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgZXZlbnQtPmN1cnJlbnRUYXJnZXQoKSkgOiBqc0Z1bmN0aW9uOwpA
QCAtMTMwLDcgKzEyOSw2IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3Jp
cHQKICAgICAgICAgICAgIDogSlNDOjpjYWxsKGV4ZWMsIGhhbmRsZUV2ZW50RnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdzKTsKIAogICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbihjb29raWUpOwotICAgICAgICBnbG9iYWxE
YXRhLnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKIAogICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1
cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NCwxMyArODQsMTEgQEAgdm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNhbGwo
Y29uc3QgVmVjdAogICAgIGFyZ3MuYXBwZW5kKGpzQXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LCBt
dXRhdGlvbnMpKTsKICAgICBhcmdzLmFwcGVuZChqc09ic2VydmVyKTsKIAotICAgIGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6aW5z
dHJ1bWVudEZ1bmN0aW9uQ2FsbChjb250ZXh0LCBjYWxsVHlwZSwgY2FsbERhdGEpOwogCiAgICAg
SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGNhbGxiYWNrLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIGpzT2JzZXJ2ZXIsIGFyZ3MpOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDYWxsRnVuY3Rpb24oY29va2llKTsKLSAgICBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KS50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAJKHJldmlzaW9uIDE0ODA3
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNiBAQCB2b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhl
Y3V0ZUZ1bmN0aW9uSW5DCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAg
ICAgICAgIGFyZ3MuYXBwZW5kKG1fYXJnc1tpXS5nZXQoKSk7CiAKLSAgICBnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6Omluc3RydW1l
bnRGdW5jdGlvbkNhbGwoY29udGV4dCwgY2FsbFR5cGUsIGNhbGxEYXRhKTsKIAogICAgIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpCkBAIC0xMTQsNyArMTEzLDYgQEAgdm9pZCBTY2hlZHVsZWRB
Y3Rpb246OmV4ZWN1dGVGdW5jdGlvbkluQwogICAgICAgICBKU0M6OmNhbGwoZXhlYywgbV9mdW5j
dGlvbi5nZXQoKSwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpOwogCiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2llKTsKLSAgICBn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24o
ZXhlYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw5ICsxMzcsNyBA
QCBTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluCiAKICAgICBKU1ZhbHVl
IGV2YWx1YXRpb25FeGNlcHRpb247CiAKLSAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENo
ZWNrZXIuc3RhcnQoKTsKICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNNYWluVGhyZWFkRXhl
Y1N0YXRlOjpldmFsdWF0ZShleGVjLCBqc1NvdXJjZUNvZGUsIHNoZWxsLCAmZXZhbHVhdGlvbkV4
Y2VwdGlvbik7Ci0gICAgZXhlYy0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0b3AoKTsK
IAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2ll
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTcsNyArMjU3LDYgQEAgcHJvdGVjdGVkOgogICAgIENsb25lQmFzZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIDogbV9leGVjKGV4ZWMpCiAgICAgICAgICwgbV9mYWlsZWQoZmFsc2UpCi0gICAg
ICAgICwgbV90aW1lb3V0Q2hlY2tlcihleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIp
CiAgICAgewogICAgIH0KIApAQCAtMjY2LDI2ICsyNjUsMTEgQEAgcHJvdGVjdGVkOgogICAgICAg
ICByZXR1cm4gbV9leGVjLT5oYWRFeGNlcHRpb24oKTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCB0
aWNrc1VudGlsTmV4dENoZWNrKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3RpbWVvdXRDaGVj
a2VyLnRpY2tzVW50aWxOZXh0Q2hlY2soKTsKLSAgICB9Ci0KLSAgICBib29sIGRpZFRpbWVPdXQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdGltZW91dENoZWNrZXIuZGlkVGltZU91dChtX2V4
ZWMpOwotICAgIH0KLQogICAgIHZvaWQgdGhyb3dTdGFja092ZXJmbG93KCkKICAgICB7CiAgICAg
ICAgIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7
CiAgICAgfQogCi0gICAgdm9pZCB0aHJvd0ludGVycnVwdGVkRXhjZXB0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHRocm93RXJyb3IobV9leGVjLCBjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbigmbV9leGVjLT5nbG9iYWxEYXRhKCkpKTsKLSAgICB9Ci0KICAgICBOT19SRVRVUk5fRFVF
X1RPX0FTU0VSVAogICAgIHZvaWQgZmFpbCgpCiAgICAgewpAQCAtMjk1LDcgKzI3OSw2IEBAIHBy
b3RlY3RlZDoKIAogICAgIEV4ZWNTdGF0ZSogbV9leGVjOwogICAgIGJvb2wgbV9mYWlsZWQ7Ci0g
ICAgVGltZW91dENoZWNrZXIgbV90aW1lb3V0Q2hlY2tlcjsKICAgICBNYXJrZWRBcmd1bWVudEJ1
ZmZlciBtX2djQnVmZmVyOwogfTsKIApAQCAtODQ3LDcgKzgzMCw2IEBAIFNlcmlhbGl6YXRpb25S
ZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjoKICAgICBWZWN0b3I8V2Fsa2VyU3RhdGUsIDE2PiBz
dGF0ZVN0YWNrOwogICAgIFdhbGtlclN0YXRlIHN0YXRlID0gU3RhdGVVbmtub3duOwogICAgIEpT
VmFsdWUgaW5WYWx1ZSA9IGluOwotICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IHRpY2tzVW50aWxO
ZXh0Q2hlY2soKTsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAg
ICAgICAgICAgICBhcnJheVN0YXJ0U3RhdGU6CkBAIC04NjcsMTIgKzg0OSw2IEBAIFNlcmlhbGl6
YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjoKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGFycmF5U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFZp
c2l0TWVtYmVyOiB7Ci0gICAgICAgICAgICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAg
ICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIHRp
Y2tDb3VudCA9IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKLSAgICAgICAgICAgICAgICB9Ci0KICAg
ICAgICAgICAgICAgICBKU09iamVjdCogYXJyYXkgPSBpbnB1dE9iamVjdFN0YWNrLmxhc3QoKTsK
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IGluZGV4U3RhY2subGFzdCgpOwogICAg
ICAgICAgICAgICAgIGlmIChpbmRleCA9PSBsZW5ndGhTdGFjay5sYXN0KCkpIHsKQEAgLTkzNSwx
MiArOTExLDYgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOgogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgb2JqZWN0U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAg
ICAgIGNhc2UgT2JqZWN0U3RhcnRWaXNpdE1lbWJlcjogewotICAgICAgICAgICAgICAgIGlmICgh
LS10aWNrQ291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOwot
ICAgICAgICAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENoZWNrKCk7Ci0g
ICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGlu
cHV0T2JqZWN0U3RhY2subGFzdCgpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4ID0g
aW5kZXhTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnRpZXMgPSBwcm9wZXJ0eVN0YWNrLmxhc3QoKTsKQEAgLTEwMDAsMTIgKzk3MCw2IEBAIFNl
cmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjoKIAogICAgICAgICBzdGF0ZSA9
IHN0YXRlU3RhY2subGFzdCgpOwogICAgICAgICBzdGF0ZVN0YWNrLnJlbW92ZUxhc3QoKTsKLQot
ICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICBpZiAoZGlkVGltZU91dCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOwotICAg
ICAgICAgICAgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICB9CiAg
ICAgfQogICAgIGlmIChtX2ZhaWxlZCkKICAgICAgICAgcmV0dXJuIFVuc3BlY2lmaWVkRXJyb3I7
CkBAIC0xNjE5LDcgKzE1ODMsNiBAQCBEZXNlcmlhbGl6YXRpb25SZXN1bHQgQ2xvbmVEZXNlcmlh
bGl6ZXI6CiAgICAgV2Fsa2VyU3RhdGUgc3RhdGUgPSBTdGF0ZVVua25vd247CiAgICAgSlNWYWx1
ZSBvdXRWYWx1ZTsKIAotICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IHRpY2tzVW50aWxOZXh0Q2hl
Y2soKTsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgICAg
IGFycmF5U3RhcnRTdGF0ZToKQEAgLTE2MzYsMTIgKzE1OTksNiBAQCBEZXNlcmlhbGl6YXRpb25S
ZXN1bHQgQ2xvbmVEZXNlcmlhbGl6ZXI6CiAgICAgICAgIH0KICAgICAgICAgYXJyYXlTdGFydFZp
c2l0TWVtYmVyOgogICAgICAgICBjYXNlIEFycmF5U3RhcnRWaXNpdE1lbWJlcjogewotICAgICAg
ICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX3BhaXIoSlNWYWx1ZSgpLCBJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkVycm9yKTsKLSAgICAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNr
c1VudGlsTmV4dENoZWNrKCk7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIHVpbnQzMl90
IGluZGV4OwogICAgICAgICAgICAgaWYgKCFyZWFkKGluZGV4KSkgewogICAgICAgICAgICAgICAg
IGZhaWwoKTsKQEAgLTE2ODMsMTIgKzE2NDAsNiBAQCBEZXNlcmlhbGl6YXRpb25SZXN1bHQgQ2xv
bmVEZXNlcmlhbGl6ZXI6CiAgICAgICAgIH0KICAgICAgICAgb2JqZWN0U3RhcnRWaXNpdE1lbWJl
cjoKICAgICAgICAgY2FzZSBPYmplY3RTdGFydFZpc2l0TWVtYmVyOiB7Ci0gICAgICAgICAgICBp
ZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihKU1ZhbHVlKCksIEludGVycnVwdGVk
RXhlY3V0aW9uRXJyb3IpOwotICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9IHRpY2tzVW50aWxO
ZXh0Q2hlY2soKTsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgQ2FjaGVkU3RyaW5nUmVm
IGNhY2hlZFN0cmluZzsKICAgICAgICAgICAgIGJvb2wgd2FzVGVybWluYXRvciA9IGZhbHNlOwog
ICAgICAgICAgICAgaWYgKCFyZWFkU3RyaW5nRGF0YShjYWNoZWRTdHJpbmcsIHdhc1Rlcm1pbmF0
b3IpKSB7CkBAIC0xNzMyLDEyICsxNjgzLDYgQEAgRGVzZXJpYWxpemF0aW9uUmVzdWx0IENsb25l
RGVzZXJpYWxpemVyOgogCiAgICAgICAgIHN0YXRlID0gc3RhdGVTdGFjay5sYXN0KCk7CiAgICAg
ICAgIHN0YXRlU3RhY2sucmVtb3ZlTGFzdCgpOwotCi0gICAgICAgIGlmICghLS10aWNrQ291bnQp
IHsKLSAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IG1ha2VfcGFpcihKU1ZhbHVlKCksIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IpOwotICAgICAg
ICAgICAgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygpOwotICAgICAgICB9CiAgICAg
fQogICAgIEFTU0VSVChvdXRWYWx1ZSk7CiAgICAgQVNTRVJUKCFtX2ZhaWxlZCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMTQ4MDc3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCwxMyArMTM0
LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjbwogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IG1fd29ya2VyQ29udGV4dFdyYXBwZXItPmdsb2JhbEV4ZWMoKTsKICAgICBK
U0xvY2tIb2xkZXIgbG9jayhleGVjKTsKIAotICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPmds
b2JhbERhdGEoKS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwotCiAgICAgSlNWYWx1ZSBldmFsdWF0
aW9uRXhjZXB0aW9uOwogICAgIEpTQzo6ZXZhbHVhdGUoZXhlYywgc291cmNlQ29kZS5qc1NvdXJj
ZUNvZGUoKSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSwgJmV2YWx1YXRpb25FeGNlcHRp
b24pOwogCi0gICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRD
aGVja2VyLnN0b3AoKTsKLQogICAgIGlmICgoZXZhbHVhdGlvbkV4Y2VwdGlvbiAmJiBpc1Rlcm1p
bmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oZXZhbHVhdGlvbkV4Y2VwdGlvbikpIHx8ICBtX3dvcmtl
ckNvbnRleHRXcmFwcGVyLT5nbG9iYWxEYXRhKCkudGVybWluYXRvci5zaG91bGRUZXJtaW5hdGUo
KSkgewogICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHJl
dmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0
T2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsOSArMzM3LDcgQEAgLSAoaWQpY2FsbFdl
YlNjcmlwdE1ldGhvZDooTlNTdHJpbmcgKiluYQogICAgIGlmICghW3NlbGYgX2lzU2FmZVNjcmlw
dF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBbc2VsZiBfcm9vdE9iamVjdF0tPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBKU0M6
OkpTVmFsdWUgcmVzdWx0ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0
aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIFtzZWxmIF9pbXBdLCBhcmdMaXN0KTsKLSAgICBbc2Vs
ZiBfcm9vdE9iamVjdF0tPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNr
ZXIuc3RvcCgpOwogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGFk
ZEV4Y2VwdGlvblRvQ29uc29sZShleGVjKTsKQEAgLTM2Myw5ICszNjEsNyBAQCAtIChpZClldmFs
dWF0ZVdlYlNjcmlwdDooTlNTdHJpbmcgKilzY3JpCiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayhl
eGVjKTsKICAgICAKLSAgICBbc2VsZiBfcm9vdE9iamVjdF0tPmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBKU0M6OkpTVmFsdWUgcmV0dXJu
VmFsdWUgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmV2YWx1YXRlKGV4ZWMsIG1ha2VTb3VyY2Uo
U3RyaW5nKHNjcmlwdCkpLCBKU0M6OkpTVmFsdWUoKSwgMCk7Ci0gICAgW3NlbGYgX3Jvb3RPYmpl
Y3RdLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0b3AoKTsK
IAogICAgIGlkIHJlc3VsdE9iaiA9IFtXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1ZVRvT2Jq
Y1ZhbHVlOnJldHVyblZhbHVlIG9yaWdpblJvb3RPYmplY3Q6W3NlbGYgX29yaWdpblJvb3RPYmpl
Y3RdIHJvb3RPYmplY3Q6W3NlbGYgX3Jvb3RPYmplY3RdXTsKICAgICAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA0LTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBiaXRyb3R0ZWQgVGltZW91dENoZWNrZXIg
Y29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0
MzM2CisKKyAgICAgICAgVGhpcyBtZWNoYW5pc20gaGFzbid0IHdvcmtlZCBmb3IgYSB3aGlsZS4K
KworICAgICAgICBNYXJrTCBpcyB3b3JraW5nIG9uIGEgbmV3IHZlcnNpb24gb2YgdGhpcyBmZWF0
dXJlIHdpdGggYSBkaXN0aW5jdAorICAgICAgICBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TlBKU09iamVjdDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYktpdDo6TlBKU09iamVj
dDo6aW52b2tlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50
aW1lT2JqZWN0TWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBSdW50aW1lT2JqZWN0TWFwOjpl
dmFsdWF0ZSk6CisKIDIwMTMtMDQtMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTQ3NDU0KTogWW91dHViZSBhbm5vdGF0aW9u
IGxpbmtzIHRvIG5ldyB3aW5kb3cgYnJva2VuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCShyZXZp
c2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTlBKU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSw5ICsyNjksNyBAQCBib29s
IE5QSlNPYmplY3Q6OmNvbnN0cnVjdChjb25zdCBOUFZhcmlhCiAgICAgZm9yICh1aW50MzJfdCBp
ID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsraSkKICAgICAgICAgYXJndW1lbnRMaXN0LmFwcGVu
ZChtX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1ZShleGVjLCBtX29iamVjdE1h
cC0+Z2xvYmFsT2JqZWN0KCksIGFyZ3VtZW50c1tpXSkpOwogCi0gICAgZXhlYy0+Z2xvYmFsRGF0
YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTQzo6Y29u
c3RydWN0KGV4ZWMsIG1fanNPYmplY3QuZ2V0KCksIGNvbnN0cnVjdFR5cGUsIGNvbnN0cnVjdERh
dGEsIGFyZ3VtZW50TGlzdCk7Ci0gICAgZXhlYy0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2Vy
LnN0b3AoKTsKICAgICAKICAgICAvLyBDb252ZXJ0IGFuZCByZXR1cm4gdGhlIG5ldyBvYmplY3Qu
CiAgICAgbV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZhcmlhbnQoZXhlYywgdmFsdWUs
ICpyZXN1bHQpOwpAQCAtMjkyLDkgKzI5MCw3IEBAIGJvb2wgTlBKU09iamVjdDo6aW52b2tlKEV4
ZWNTdGF0ZSogZXhlYywKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgYXJndW1lbnRDb3Vu
dDsgKytpKQogICAgICAgICBhcmd1bWVudExpc3QuYXBwZW5kKG1fb2JqZWN0TWFwLT5jb252ZXJ0
TlBWYXJpYW50VG9KU1ZhbHVlKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXJndW1lbnRzW2ldKSk7CiAK
LSAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEs
IG1fanNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnRvVGhpc09iamVjdChtX2pzT2JqZWN0LmdldCgp
LCBleGVjKSwgYXJndW1lbnRMaXN0KTsKLSAgICBleGVjLT5nbG9iYWxEYXRhKCkudGltZW91dENo
ZWNrZXIuc3RvcCgpOwogCiAgICAgLy8gQ29udmVydCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2Yg
dGhlIGZ1bmN0aW9uIGNhbGwuCiAgICAgbV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZh
cmlhbnQoZXhlYywgdmFsdWUsICpyZXN1bHQpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9i
amVjdE1hcC5jcHAJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xODksOSArMTg5LDcgQEAgYm9vbCBOUFJ1bnRpbWVPYmplY3RNYXA6OmV2YWx1YXRlKE5Q
T2JqZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZ2V0T3JDcmVhdGVKU09iamVjdChnbG9iYWxPYmplY3QuZ2V0KCksIG5wT2JqZWN0KTsKIAot
ICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAg
ICAgSlNWYWx1ZSByZXN1bHRWYWx1ZSA9IEpTQzo6ZXZhbHVhdGUoZXhlYywgbWFrZVNvdXJjZShz
Y3JpcHRTdHJpbmcpLCB0aGlzVmFsdWUpOwotICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
LnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKIAogICAgIGNvbnZlcnRKU1ZhbHVlVG9OUFZhcmlhbnQo
ZXhlYywgcmVzdWx0VmFsdWUsICpyZXN1bHQpOwogICAgIHJldHVybiB0cnVlOwpJbmRleDogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTMtMDQtMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmVkIGJpdHJvdHRlZCBUaW1lb3V0Q2hlY2tlciBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQzMzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0VGltZW91dEZvckphdmFTY3JpcHRF
eGVjdXRpb24pOgorCiAyMDEzLTA0LTA5ICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+
CiAKICAgICAgICAgW0JsYWNrQmVycnldIE1haW4gcGFnZSBpcyByZW5kZXJlZCBhdCB3cm9uZyBs
YXJnZSBzY2FsZSBhZnRlciBiYWNrIGZyb20gYW55IHpvb21pbmcgYXJ0aWNsZSBhdCByZWFkLnRo
ZXN0YXIuY29tCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAJ
KHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MzEsMTIgKzQ3MzEsNiBAQCB1bnNpZ25lZCBXZWJQ
YWdlOjp0aW1lb3V0Rm9ySmF2YVNjcmlwdEV4CiB2b2lkIFdlYlBhZ2U6OnNldFRpbWVvdXRGb3JK
YXZhU2NyaXB0RXhlY3V0aW9uKHVuc2lnbmVkIG1zKQogewogICAgIFNldHRpbmdzOjpzZXRUaW1l
b3V0Rm9ySmF2YVNjcmlwdEV4ZWN1dGlvbihkLT5tX3BhZ2UtPmdyb3VwTmFtZSgpLCBtcyk7Ci0K
LSAgICBEb2N1bWVudCogZG9jID0gZC0+bV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsK
LSAgICBpZiAoIWRvYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZG9jLT5nbG9iYWxEYXRhKCkt
PnRpbWVvdXRDaGVja2VyLnNldFRpbWVvdXRJbnRlcnZhbChtcyk7CiB9CiAKIEpTR2xvYmFsQ29u
dGV4dFJlZiBXZWJQYWdlOjpnbG9iYWxDb250ZXh0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE0ODA3NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA0LTA5ICBHZW9mZnJleSBHYXJlbiAg
PGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBiaXRyb3R0ZWQgVGltZW91dENo
ZWNrZXIgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE0MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBtZWNoYW5pc20gaGFzbid0IHdvcmtlZCBmb3IgYSB3aGlsZS4KKworICAgICAgICBN
YXJrTCBpcyB3b3JraW5nIG9uIGEgbmV3IHZlcnNpb24gb2YgdGhpcyBmZWF0dXJlIHdpdGggYSBk
aXN0aW5jdAorICAgICAgICBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpldmFsdWF0ZSk6CisKIDIwMTMtMDQtMDggIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBIVE1M
IE5vdGlmaWNhdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQkocmV2aXNp
b24gMTQ4MDc3KQorKysgU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NzEsMTQgKzg3MSwxMCBA
QCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZXZhbHVhCiAgICAgU3Ryb25nPEpT
R2xvYmFsT2JqZWN0PiBnbG9iYWxPYmplY3QoKnBsdWdpbldvcmxkKCktPmdsb2JhbERhdGEoKSwg
ZnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSkpOwogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCi0gICAgZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCkudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLQogICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IoYWxsb3dQb3B1cHMgPyBEZWZpbml0ZWx5UHJv
Y2Vzc2luZ05ld1VzZXJHZXN0dXJlIDogUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwog
ICAgIAogICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpldmFsdWF0ZShleGVjLCBtYWtlU291cmNl
KHNjcmlwdCkpOwogICAgIAotICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLnRpbWVvdXRD
aGVja2VyLnN0b3AoKTsKLSAgICAKICAgICBtYXJzaGFsVmFsdWUoZXhlYywgcmVzdWx0LCByZXN1
bHREYXRhLCByZXN1bHRMZW5ndGgpOwogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAg
cmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MDc3KQorKysgU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAxMy0wNC0wOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZWQgYml0cm90dGVkIFRpbWVvdXRDaGVja2VyIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDMzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpj
cmVhdGVEb2N1bWVudExvYWRlcik6CisKIDIwMTMtMDQtMDkgIFJhZmFlbCBCcmFuZGFvICA8cmFm
YWVsLmxvYm9Ab3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbQ29vcmRpbmF0ZWRHcmFwaGljc10g
c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyBleHBlY3RzIHRpbWUgaW4gc2Vjb25kcwpJbmRleDog
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwCShyZXZpc2lvbiAxNDgwNzcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NzEs
MTQgKzk3MSw5IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2hvdWxkRmFsbEJhY2sKIFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4gRnJhbWVMb2FkZXJDbGllbnRR
dDo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7CiAgICAgUmVm
UHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVl
c3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAgICBpZiAoIWRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQg
fHwgc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFkZWZlck1haW5SZXNvdXJj
ZURhdGFMb2FkIHx8IHN1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkKICAgICAgICAgbG9hZGVyLT5z
ZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGZhbHNlKTsKLSAgICAgICAgLy8gVXNlIHRoZSBk
ZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwgZm9yIEpTIGFzIHRoZSBIVE1MIHRva2VuaXplciBkZWxh
eS4gVGhpcyBlbnN1cmVzCi0gICAgICAgIC8vIHRoYXQgbG9uZy1ydW5uaW5nIEphdmFTY3JpcHQg
d2lsbCBzdGlsbCBhbGxvdyBzZXRIdG1sKCkgdG8gYmUgc3luY2hyb25vdXMsIHdoaWxlCi0gICAg
ICAgIC8vIHN0aWxsIGdpdmluZyBhIHJlYXNvbmFibGUgdGltZW91dCB0byBwcmV2ZW50IGRlYWRs
b2NrLgotICAgICAgICBkb3VibGUgZGVsYXkgPSBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vbkpTR2xv
YmFsRGF0YSgpLT50aW1lb3V0Q2hlY2tlci50aW1lb3V0SW50ZXJ2YWwoKSAvIDEwMDAuMGY7Ci0g
ICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+c2V0Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheShk
ZWxheSk7Ci0gICAgfSBlbHNlCisgICAgZWxzZQogICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnNl
dEN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoLTEpOwogICAgIHJldHVybiBsb2FkZXIucmVs
ZWFzZSgpOwogfQo=
</data>
<flag name="review"
          id="219356"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>