<?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>220395</bug_id>
          
          <creation_ts>2021-01-06 19:45:56 -0800</creation_ts>
          <short_desc>[JSC] DateTimeFormat#formatRange should generate the same output to DateTimeFormat#format if startDate and endDate are &quot;practically-equal&quot;</short_desc>
          <delta_ts>2021-01-07 09:28:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220419</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717833</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-06 19:45:56 -0800</bug_when>
    <thetext>https://github.com/tc39/proposal-intl-DateTimeFormat-formatRange/issues/19</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717840</commentid>
    <comment_count>1</comment_count>
      <attachid>417149</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-06 20:18:52 -0800</bug_when>
    <thetext>Created attachment 417149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717846</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-06 20:38:01 -0800</bug_when>
    <thetext>jsc-armv7-tests are because of icu versions. I&apos;ll skip them based on linked ICU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717848</commentid>
    <comment_count>3</comment_count>
      <attachid>417151</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-06 20:47:47 -0800</bug_when>
    <thetext>Created attachment 417151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717849</commentid>
    <comment_count>4</comment_count>
      <attachid>417151</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-01-06 20:52:25 -0800</bug_when>
    <thetext>Comment on attachment 417151
Patch

Seems good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717856</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-06 22:11:52 -0800</bug_when>
    <thetext>Committed r271224: &lt;https://trac.webkit.org/changeset/271224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717857</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-06 22:12:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/72877650&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417149</attachid>
            <date>2021-01-06 20:18:52 -0800</date>
            <delta_ts>2021-01-06 20:51:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220395-20210106201851.patch</filename>
            <type>text/plain</type>
            <size>21531</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWNmMmM4NTIwMThjM2ViMGZiMGMxNzVlMDNlOTRlYzFkNDZmNDI3Li5iZmEwY2Q3NWJmMTM0OTI1
OTA2NGRmYjMwMWQ5MzNkYThmMWRkMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMS0wMS0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERhdGVUaW1lRm9ybWF0I2Zvcm1hdFJhbmdlIHNob3VsZCBnZW5l
cmF0ZSB0aGUgc2FtZSBvdXRwdXQgdG8gRGF0ZVRpbWVGb3JtYXQjZm9ybWF0IGlmIHN0YXJ0RGF0
ZSBhbmQgZW5kRGF0ZSBhcmUgInByYWN0aWNhbGx5LWVxdWFsIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXRS
YW5nZShzdGFydERhdGUsIGVuZERhdGUpIGFsc28gbmVlZHMgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
Zm9ybWF0dGVkIHN0cmluZyB0byB0aGUgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXQKKyAgICAg
ICAgaWYgc3RhcnREYXRlIGFuZCBlbmREYXRlIGFyZSAqcHJhY3RpY2FsbHktZXF1YWwqIChzcGVj
IHRlcm0pLiBIb3dldmVyLCBkdWUgdG8gQ0xEUiwganVzdCB1c2luZyB1ZHRpdHZmbXRfZm9ybWF0
IGdlbmVyYXRlcyBkaWZmZXJlbnQKKyAgICAgICAgZm9ybWF0dGVkIHN0cmluZyB0byB1ZGF0X2Zv
cm1hdCdzIHJlc3VsdCBldmVuIHRob3VnaCBzdGFydERhdGUgYW5kIGVuZERhdGUgYXJlIHRoZSBz
YW1lLgorCisgICAgICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVT
dHlsZTogImxvbmciLCB0aW1lU3R5bGU6ICJzaG9ydCIgfSkuZm9ybWF0KG5ldyBEYXRlKCkpCisg
ICAgICAgICAgICAvLyAiRGVjZW1iZXIgMTIsIDIwMTkgYXQgMTE6NDggQU0iCisgICAgICAgICAg
ICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxvbmciLCB0aW1l
U3R5bGU6ICJzaG9ydCIgfSkuZm9ybWF0UmFuZ2UobmV3IERhdGUoKSwgbmV3IERhdGUoKSkKKyAg
ICAgICAgICAgIC8vICJEZWNlbWJlciAxMiwgMjAxOSwgMTE6NDggQU0iCisKKyAgICAgICAgSW4g
SW50bC5EYXRlVGltZUZvcm1hdCNmb3JtYXRSYW5nZVRvUGFydHMsIHdlIGRlcGxveXMgKnByYWN0
aWNhbGx5LWVxdWFsKiBjaGVja2luZyB0byBhdm9pZCB0aGlzIGlzc3VlLiBUaGUgc2FtZSB0aGlu
ZyBzaG91bGQgYmUgZG9uZSBpbgorICAgICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0I2Zvcm1hdFJh
bmdlIHRvby4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBzdG9wIHVzaW5nIHVkdGl0dmZt
dF9mb3JtYXQgaWYgSUNVIHZlcnNpb24gaXMgNjQgb3IgbGF0ZXIgdG8gcGVyZm9ybSAqcHJhY3Rp
Y2FsbHktZXF1YWwqIGNoZWNraW5nLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29t
L3RjMzkvcHJvcG9zYWwtaW50bC1EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZS9pc3N1ZXMvMTkK
KworICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpT
Qzo6Zm9ybWF0dGVkVmFsdWVGcm9tRGF0ZVJhbmdlKToKKyAgICAgICAgKEpTQzo6ZGF0ZUZpZWxk
c1ByYWN0aWNhbGx5RXF1YWwpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmZv
cm1hdFJhbmdlKToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5n
ZVRvUGFydHMpOgorICAgICAgICAoSlNDOjpkZWZpbml0ZWx5QWZ0ZXJHcmVnb3JpYW5DYWxlbmRh
ckNoYW5nZURhdGUpOiBEZWxldGVkLgorCiAyMDIxLTAxLTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVwbGFjZSBKU0JpZ0ludDo6dG9VaW50
NjQgd2l0aCBKU0JpZ0ludDo6dG9CaWdVSW50NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGEzMjM0M2UwODEwZGRj
M2RmOGYzNjM0OWUyODU0YWYwZmExMjRkZjQuLmQyODY1NDJjMDY0OWU1OTJkZTVlNWZmMTI4ZTc4
NTVlMWFlZWVlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtMTM4MiwxNiArMTM4Miw2IEBAIFVEYXRlSW50ZXJ2
YWxGb3JtYXQqIEludGxEYXRlVGltZUZvcm1hdDo6Y3JlYXRlRGF0ZUludGVydmFsRm9ybWF0SWZO
ZWNlc3NhcnkoSlNHCiAKICNpZiBIQVZFKElDVV9VX0RBVEVfSU5URVJWQUxfRk9STUFUX0ZPUk1B
VF9SQU5HRV9UT19QQVJUUykKIAotLy8gSWYgYSBkYXRlIGlzIGFmdGVyIE9jdCAxNSwgMTU4Miwg
dGhlIGNvbmZpZ3VyYXRpb24gb2YgZ3JlZ29yaWFuIGNhbGVuZGFyIGNoYW5nZSBkYXRlIGluIFVD
YWxlbmRhciBkb2VzIG5vdCBhZmZlY3QKLS8vIG9uIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLiBUbyBl
bnN1cmUgdGhhdCBpdCBpcyBhZnRlciBPY3QgMTUgaW4gYWxsIHRpbWV6b25lcywgd2UgYWRkIG9u
ZSBkYXkgdG8gZ3JlZ29yaWFuIGNhbGVuZGFyCi0vLyBjaGFuZ2UgZGF0ZSBpbiBVVEMsIHNvIHRo
YXQgdGhpcyBjaGVjayBjYW4gY29uc2VydmF0aXZlbHkgYW5zd2VyIHdoZXRoZXIgdGhlIGRhdGUg
aXMgZGVmaW5pdGVseSBhZnRlciBncmVnb3JpYW4KLS8vIGNhbGVuZGFyIGNoYW5nZSBkYXRlLgot
c3RhdGljIGlubGluZSBib29sIGRlZmluaXRlbHlBZnRlckdyZWdvcmlhbkNhbGVuZGFyQ2hhbmdl
RGF0ZShkb3VibGUgbWlsbGlzZWNvbmRzRnJvbUVwb2NoKQotewotICAgIGNvbnN0ZXhwciBkb3Vi
bGUgZ3JlZ29yaWFuQ2FsZW5kYXJSZWZvcm1EYXRlSW5VVEMgPSAtMTIyMTkyOTI4MDAwMDAuMDsK
LSAgICByZXR1cm4gbWlsbGlzZWNvbmRzRnJvbUVwb2NoID49IChncmVnb3JpYW5DYWxlbmRhclJl
Zm9ybURhdGVJblVUQyArIG1zUGVyRGF5KTsKLX0KLQogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxV
Rm9ybWF0dGVkRGF0ZUludGVydmFsLCBJQ1VEZWxldGVyPHVkdGl0dmZtdF9jbG9zZVJlc3VsdD4+
IGZvcm1hdHRlZFZhbHVlRnJvbURhdGVSYW5nZShVRGF0ZUludGVydmFsRm9ybWF0JiBkYXRlSW50
ZXJ2YWxGb3JtYXQsIFVEYXRlRm9ybWF0JiBkYXRlRm9ybWF0LCBkb3VibGUgc3RhcnREYXRlLCBk
b3VibGUgZW5kRGF0ZSwgVUVycm9yQ29kZSYgc3RhdHVzKQogewogICAgIGF1dG8gcmVzdWx0ID0g
c3RkOjp1bmlxdWVfcHRyPFVGb3JtYXR0ZWREYXRlSW50ZXJ2YWwsIElDVURlbGV0ZXI8dWR0aXR2
Zm10X2Nsb3NlUmVzdWx0Pj4odWR0aXR2Zm10X29wZW5SZXN1bHQoJnN0YXR1cykpOwpAQCAtMTQw
MCw2ICsxMzkwLDE1IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8VUZvcm1hdHRlZERhdGVJbnRl
cnZhbCwgSUNVRGVsZXRlcjx1ZHRpdHZmbXRfY2xvc2VSZXN1bHQ+CiAKICAgICAvLyBBZnRlciBJ
Q1UgNjcsIHVkdGl0dmZtdF9mb3JtYXRUb1Jlc3VsdCdzIHNpZ25hdHVyZSBpcyBjaGFuZ2VkLgog
I2lmIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDY3CisgICAgLy8gSWYgYSBkYXRlIGlzIGFm
dGVyIE9jdCAxNSwgMTU4MiwgdGhlIGNvbmZpZ3VyYXRpb24gb2YgZ3JlZ29yaWFuIGNhbGVuZGFy
IGNoYW5nZSBkYXRlIGluIFVDYWxlbmRhciBkb2VzIG5vdCBhZmZlY3QKKyAgICAvLyBvbiB0aGUg
Zm9ybWF0dGVkIHN0cmluZy4gVG8gZW5zdXJlIHRoYXQgaXQgaXMgYWZ0ZXIgT2N0IDE1IGluIGFs
bCB0aW1lem9uZXMsIHdlIGFkZCBvbmUgZGF5IHRvIGdyZWdvcmlhbiBjYWxlbmRhcgorICAgIC8v
IGNoYW5nZSBkYXRlIGluIFVUQywgc28gdGhhdCB0aGlzIGNoZWNrIGNhbiBjb25zZXJ2YXRpdmVs
eSBhbnN3ZXIgd2hldGhlciB0aGUgZGF0ZSBpcyBkZWZpbml0ZWx5IGFmdGVyIGdyZWdvcmlhbgor
ICAgIC8vIGNhbGVuZGFyIGNoYW5nZSBkYXRlLgorICAgIGF1dG8gZGVmaW5pdGVseUFmdGVyR3Jl
Z29yaWFuQ2FsZW5kYXJDaGFuZ2VEYXRlID0gW10oZG91YmxlIG1pbGxpc2Vjb25kc0Zyb21FcG9j
aCkgeworICAgICAgICBjb25zdGV4cHIgZG91YmxlIGdyZWdvcmlhbkNhbGVuZGFyUmVmb3JtRGF0
ZUluVVRDID0gLTEyMjE5MjkyODAwMDAwLjA7CisgICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNG
cm9tRXBvY2ggPj0gKGdyZWdvcmlhbkNhbGVuZGFyUmVmb3JtRGF0ZUluVVRDICsgbXNQZXJEYXkp
OworICAgIH07CisKICAgICAvLyBVRm9ybWF0dGVkRGF0ZUludGVydmFsIGRvZXMgbm90IGhhdmUg
YSB3YXkgdG8gY29uZmlndXJlIGdyZWdvcmlhbiBjYWxlbmRhciBjaGFuZ2UgZGF0ZSB3aGlsZSBF
Q01BU2NyaXB0IHJlcXVpcmVzIHRoYXQKICAgICAvLyBncmVnb3JpYW4gY2FsZW5kYXIgY2hhbmdl
IHNob3VsZCBub3QgaGF2ZSBlZmZlY3QgKHdlIGFyZSBzZXR0aW5nIHVjYWxfc2V0R3JlZ29yaWFu
Q2hhbmdlKGNhbCwgbWluRUNNQVNjcmlwdFRpbWUsICZzdGF0dXMpIGV4cGxpY2l0bHkpLgogICAg
IC8vIEFzIGEgcmVzdWx0LCBpZiB0aGUgaW5wdXQgZGF0ZSBpcyBvbGRlciB0aGFuIGdyZWdvcmlh
biBjYWxlbmRhciBjaGFuZ2UgZGF0ZSAoT2N0IDE1LCAxNTgyKSwgdGhlIGZvcm1hdHRlZCBzdHJp
bmcgYmVjb21lcwpAQCAtMTQ0Myw2ICsxNDQyLDI0IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
VUZvcm1hdHRlZERhdGVJbnRlcnZhbCwgSUNVRGVsZXRlcjx1ZHRpdHZmbXRfY2xvc2VSZXN1bHQ+
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGJvb2wgZGF0ZUZpZWxkc1ByYWN0aWNh
bGx5RXF1YWwoY29uc3QgVUZvcm1hdHRlZFZhbHVlKiBmb3JtYXR0ZWRWYWx1ZSwgVUVycm9yQ29k
ZSYgc3RhdHVzKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8VUNvbnN0
cmFpbmVkRmllbGRQb3NpdGlvbiwgSUNVRGVsZXRlcjx1Y2Zwb3NfY2xvc2U+Pih1Y2Zwb3Nfb3Bl
bigmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgVUZJRUxEX0NBVEVHT1JZX0RBVEVf
SU5URVJWQUxfU1BBTiBjYXRlZ29yeS4KKyAgICB1Y2Zwb3NfY29uc3RyYWluQ2F0ZWdvcnkoaXRl
cmF0b3IuZ2V0KCksIFVGSUVMRF9DQVRFR09SWV9EQVRFX0lOVEVSVkFMX1NQQU4sICZzdGF0dXMp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYm9vbCBoYXNTcGFuID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVkVmFsdWUsIGl0
ZXJhdG9yLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhaGFzU3BhbjsKK30KKwogI2VuZGlmIC8v
IEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JNQVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQog
CiBKU1ZhbHVlIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0UmFuZ2UoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgZG91YmxlIHN0YXJ0RGF0ZSwgZG91YmxlIGVuZERhdGUpCkBAIC0xNDY0
LDM1ICsxNDgxLDQyIEBAIEpTVmFsdWUgSW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5nZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgc3RhCiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAogI2lmIEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JN
QVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQotICAgIC8vIElmIHRoZSBkYXRlIGlzIG9sZGVyIHRo
YW4gZ3JlZ29yaWFuIGNhbGVuZGFyIGNoYW5nZSBkYXRlLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkg
cGFzcyBjb25maWd1cmVkIFVDYWxlbmRhciB0bwotICAgIC8vIHVkdGl0dmZtdF9mb3JtYXRDYWxl
bmRhclRvUmVzdWx0IHRvIGdlbmVyYXRlIGEgY29ycmVjdCBmb3JtYXR0ZWQgc3RyaW5nLgotICAg
IC8vIFRoZSBjb21tZW50IGluIGZvcm1hdHRlZFZhbHVlRnJvbURhdGVSYW5nZSBkZXNjcmliZXMg
dGhlIGRldGFpbHMuCi0gICAgaWYgKCFkZWZpbml0ZWx5QWZ0ZXJHcmVnb3JpYW5DYWxlbmRhckNo
YW5nZURhdGUoc3RhcnREYXRlKSkgewotICAgICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVS
T19FUlJPUjsKLSAgICAgICAgYXV0byByZXN1bHQgPSBmb3JtYXR0ZWRWYWx1ZUZyb21EYXRlUmFu
Z2UoKmRhdGVJbnRlcnZhbEZvcm1hdCwgKm1fZGF0ZUZvcm1hdCwgc3RhcnREYXRlLCBlbmREYXRl
LCBzdGF0dXMpOwotICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgICAg
IHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IGRh
dGUgaW50ZXJ2YWwiX3MpOwotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfQorICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gcmVzdWx0ID0gZm9y
bWF0dGVkVmFsdWVGcm9tRGF0ZVJhbmdlKCpkYXRlSW50ZXJ2YWxGb3JtYXQsICptX2RhdGVGb3Jt
YXQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxl
ZCB0byBmb3JtYXQgZGF0ZSBpbnRlcnZhbCJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQogCi0gICAgICAgIC8vIFVGb3JtYXR0ZWRWYWx1ZSBpcyBvd25lZCBieSBVRm9ybWF0dGVkRGF0
ZUludGVydmFsLiBXZSBkbyBub3QgbmVlZCB0byBjbG9zZSBpdC4KLSAgICAgICAgYXV0byBmb3Jt
YXR0ZWRWYWx1ZSA9IHVkdGl0dmZtdF9yZXN1bHRBc1ZhbHVlKHJlc3VsdC5nZXQoKSwgJnN0YXR1
cyk7Ci0gICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgZGF0ZSBpbnRl
cnZhbCJfcyk7Ci0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB9CisgICAgLy8gVUZv
cm1hdHRlZFZhbHVlIGlzIG93bmVkIGJ5IFVGb3JtYXR0ZWREYXRlSW50ZXJ2YWwuIFdlIGRvIG5v
dCBuZWVkIHRvIGNsb3NlIGl0LgorICAgIGF1dG8gZm9ybWF0dGVkVmFsdWUgPSB1ZHRpdHZmbXRf
cmVzdWx0QXNWYWx1ZShyZXN1bHQuZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUo
c3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
RmFpbGVkIHRvIGZvcm1hdCBkYXRlIGludGVydmFsIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9CiAKLSAgICAgICAgaW50MzJfdCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGggPSAwOwotICAg
ICAgICBjb25zdCBVQ2hhciogZm9ybWF0dGVkU3RyaW5nUG9pbnRlciA9IHVmbXR2YWxfZ2V0U3Ry
aW5nKGZvcm1hdHRlZFZhbHVlLCAmZm9ybWF0dGVkU3RyaW5nTGVuZ3RoLCAmc3RhdHVzKTsKLSAg
ICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBkYXRlIGludGVydmFsIl9z
KTsKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIH0KKyAgICAvLyBJZiB0aGUgZm9y
bWF0dGVkIHBhcnRzIG9mIHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZSBhcmUgdGhlIHNhbWUsIGl0IGlz
IHBvc3NpYmxlIHRoYXQgdGhlIHJlc3VsdGVkIHN0cmluZyBkb2VzIG5vdCBsb29rIGxpa2UgcmFu
Z2UuCisgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSByZXF1ZXN0ZWQgZm9ybWF0IG9ubHkgaW5j
bHVkZXMgInllYXIiIGFuZCBzdGFydERhdGUgYW5kIGVuZERhdGUgYXJlIHRoZSBzYW1lIHllYXIs
IHRoZSByZXN1bHQganVzdCBjb250YWlucyBvbmUgeWVhci4KKyAgICAvLyBJbiB0aGF0IGNhc2Us
IHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZSBhcmUgKnByYWN0aWNhbGx5LWVxdWFsKiAoc3BlYyB0ZXJt
KSwgYW5kIHdlIGdlbmVyYXRlIHBhcnRzIGFzIHdlIGNhbGwgYGZvcm1hdFRvUGFydHMoc3RhcnRE
YXRlKWAgd2l0aAorICAgIC8vIGBzb3VyY2U6ICJzaGFyZWQiYCBhZGRpdGlvbmFsIGZpZWxkcy4K
KyAgICBib29sIGVxdWFsID0gZGF0ZUZpZWxkc1ByYWN0aWNhbGx5RXF1YWwoZm9ybWF0dGVkVmFs
dWUsIHN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IGRhdGUgaW50
ZXJ2YWwiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGlmIChlcXVhbCkK
KyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmb3JtYXQoZ2xvYmFsT2JqZWN0LCBz
dGFydERhdGUpKTsKIAotICAgICAgICByZXR1cm4ganNTdHJpbmcodm0sIFN0cmluZyhmb3JtYXR0
ZWRTdHJpbmdQb2ludGVyLCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGgpKTsKKyAgICBpbnQzMl90IGZv
cm1hdHRlZFN0cmluZ0xlbmd0aCA9IDA7CisgICAgY29uc3QgVUNoYXIqIGZvcm1hdHRlZFN0cmlu
Z1BvaW50ZXIgPSB1Zm10dmFsX2dldFN0cmluZyhmb3JtYXR0ZWRWYWx1ZSwgJmZvcm1hdHRlZFN0
cmluZ0xlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAg
ICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0
IGRhdGUgaW50ZXJ2YWwiX3MpOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSNlbmRpZgog
CisgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCBTdHJpbmcoZm9ybWF0dGVkU3RyaW5nUG9pbnRlciwg
Zm9ybWF0dGVkU3RyaW5nTGVuZ3RoKSk7CisjZWxzZQogICAgIFZlY3RvcjxVQ2hhciwgMzI+IGJ1
ZmZlcjsKICAgICBhdXRvIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1ZHRp
dHZmbXRfZm9ybWF0LCBkYXRlSW50ZXJ2YWxGb3JtYXQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYnVm
ZmVyLCBudWxscHRyKTsKICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKQEAgLTE1MDEsNiAr
MTUyNSw3IEBAIEpTVmFsdWUgSW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5nZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgc3RhCiAgICAgfQogCiAgICAgcmV0dXJuIGpz
U3RyaW5nKHZtLCBTdHJpbmcoYnVmZmVyKSk7CisjZW5kaWYKIH0KIAogSlNWYWx1ZSBJbnRsRGF0
ZVRpbWVGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgc3RhcnREYXRlLCBkb3VibGUgZW5kRGF0ZSkKQEAgLTE1MjIsMjMgKzE1NDcs
NiBAQCBKU1ZhbHVlIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdQogICAgIGF1dG8qIGRhdGVJbnRlcnZhbEZvcm1h
dCA9IGNyZWF0ZURhdGVJbnRlcnZhbEZvcm1hdElmTmVjZXNzYXJ5KGdsb2JhbE9iamVjdCk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIGF1dG8gZGF0ZUZpZWxk
c1ByYWN0aWNhbGx5RXF1YWwgPSBbXShjb25zdCBVRm9ybWF0dGVkVmFsdWUqIGZvcm1hdHRlZFZh
bHVlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6
dW5pcXVlX3B0cjxVQ29uc3RyYWluZWRGaWVsZFBvc2l0aW9uLCBJQ1VEZWxldGVyPHVjZnBvc19j
bG9zZT4+KHVjZnBvc19vcGVuKCZzdGF0dXMpKTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0
dXMpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIC8vIFdlIG9ubHkgY2Fy
ZSBhYm91dCBVRklFTERfQ0FURUdPUllfREFURV9JTlRFUlZBTF9TUEFOIGNhdGVnb3J5LgotICAg
ICAgICB1Y2Zwb3NfY29uc3RyYWluQ2F0ZWdvcnkoaXRlcmF0b3IuZ2V0KCksIFVGSUVMRF9DQVRF
R09SWV9EQVRFX0lOVEVSVkFMX1NQQU4sICZzdGF0dXMpOwotICAgICAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgYm9vbCBoYXNT
cGFuID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVkVmFsdWUsIGl0ZXJhdG9yLmdldCgp
LCAmc3RhdHVzKTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiAhaGFzU3BhbjsKLSAgICB9OwotCiAgICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgYXV0byByZXN1bHQgPSBmb3Jt
YXR0ZWRWYWx1ZUZyb21EYXRlUmFuZ2UoKmRhdGVJbnRlcnZhbEZvcm1hdCwgKm1fZGF0ZUZvcm1h
dCwgc3RhcnREYXRlLCBlbmREYXRlLCBzdGF0dXMpOwogICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVz
KSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBhZTM0NDI0MjhlOTdhYmY5N2UzZjJlYjdiODY5Y2JmZmZmNjEwMTJiLi5iZTgzMzJjMTcy
NzlmOTg0ODJjN2U1YzMxODA5YmE5NzI0NWMxODJmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAxLTA2
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gRGF0
ZVRpbWVGb3JtYXQjZm9ybWF0UmFuZ2Ugc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dCB0
byBEYXRlVGltZUZvcm1hdCNmb3JtYXQgaWYgc3RhcnREYXRlIGFuZCBlbmREYXRlIGFyZSAicHJh
Y3RpY2FsbHktZXF1YWwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjAzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBvcnRlZCBzb21lIHRlc3QyNjIgdGVzdHMuIFVwZGF0ZWQsIGZpeGVkIHNvbWUg
aXNzdWVzIChgZm9ybWF0VG9QYXJ0c2AgdGVzdCB3YXMgdXNpbmcgYGZvcm1hdGAsIHdlIHNob3Vs
ZCB1cHN0cmVhbSBpdCB0byB0ZXN0MjYyKSwgYW5kIGFkZGVkIG1vcmUgdGVzdHMuCisKKyAgICAg
ICAgKiBzdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2Utc2hvdWxkLWNoZWNr
LXByYWN0aWNhbGx5LWVxdWFsLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgICogc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3Jt
YXQtZm9ybWF0LXJhbmdlLXRvLXBhcnRzLXNob3VsZC1jaGVjay1wcmFjdGljYWxseS1lcXVhbC5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh6aXApOgorICAgICAgICAo
Y29tcGFyZSk6CisKIDIwMjEtMDEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0FTTV0gW0JpZ0ludF0gQWRkIEk2NCB0byBCaWdJbnQgY29udmVyc2lv
bgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQt
cmFuZ2Utc2hvdWxkLWNoZWNrLXByYWN0aWNhbGx5LWVxdWFsLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
aW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2Utc2hvdWxkLWNoZWNrLXByYWN0aWNhbGx5
LWVxdWFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YjM4ZDRhY2VmODE3NDg0ZDU1OTRkODY0YWQyZmE5NzY1
YzUyODcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9y
bWF0LWZvcm1hdC1yYW5nZS1zaG91bGQtY2hlY2stcHJhY3RpY2FsbHktZXF1YWwuanMKQEAgLTAs
MCArMSw3MSBAQAorLy8gVGhlIDw8IFNvZnR3YXJlIGlkZW50aWZpZWQgYnkgcmVmZXJlbmNlIHRv
IHRoZSBFY21hIFN0YW5kYXJkKiAoIlNvZnR3YXJlKSI+PiAgaXMgcHJvdGVjdGVkIGJ5IGNvcHly
aWdodCBhbmQgaXMgYmVpbmcKKy8vIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAgIkJTRCBMaWNl
bnNlIiwgaW5jbHVkZWQgYmVsb3cuIFRoaXMgU29mdHdhcmUgbWF5IGJlIHN1YmplY3QgdG8gdGhp
cmQgcGFydHkgcmlnaHRzIChyaWdodHMKKy8vIGZyb20gcGFydGllcyBvdGhlciB0aGFuIEVjbWEg
SW50ZXJuYXRpb25hbCksIGluY2x1ZGluZyBwYXRlbnQgcmlnaHRzLCBhbmQgbm8gbGljZW5zZXMg
dW5kZXIgc3VjaCB0aGlyZCBwYXJ0eSByaWdodHMKKy8vIGFyZSBncmFudGVkIHVuZGVyIHRoaXMg
bGljZW5zZSBldmVuIGlmIHRoZSB0aGlyZCBwYXJ0eSBjb25jZXJuZWQgaXMgYSBtZW1iZXIgb2Yg
RWNtYSBJbnRlcm5hdGlvbmFsLiAgU0VFIFRIRSBFQ01BCisvLyBDT0RFIE9GIENPTkRVQ1QgSU4g
UEFURU5UIE1BVFRFUlMgQVZBSUxBQkxFIEFUIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFs
Lm9yZy9tZW1lbnRvL2NvZGVvZmNvbmR1Y3QuaHRtIEZPUgorLy8gSU5GT1JNQVRJT04gUkVHQVJE
SU5HIFRIRSBMSUNFTlNJTkcgT0YgUEFURU5UIENMQUlNUyBUSEFUIEFSRSBSRVFVSVJFRCBUTyBJ
TVBMRU1FTlQgRUNNQSBJTlRFUk5BVElPTkFMIFNUQU5EQVJEUyouCisvLworLy8gQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTMgRWNtYSBJbnRlcm5hdGlvbmFsCisvLyBDb3B5cmlnaHQgKEMpIDIwMjEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUKKy8vIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisvLyAxLiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKy8vICAgICAg
ZGlzY2xhaW1lci4KKy8vIDIuICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlCisvLyAgICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorLy8gMy4gICBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhdXRob3JzIG5vciBFY21hIElu
dGVybmF0aW9uYWwgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorLy8gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIEVDTUEgSU5URVJOQVRJT05BTCAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorLy8gU0hBTEwgRUNNQSBJ
TlRFUk5BVElPTkFMIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisvLyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORworLy8gTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0gKKy8vIERBTUFHRS4KKy8vCisvLyAqIEVjbWEgSW50ZXJuYXRp
b25hbCBTdGFuZGFyZHMgaGVyZWFmdGVyIG1lYW5zIEVjbWEgSW50ZXJuYXRpb25hbCBTdGFuZGFy
ZHMgYXMgd2VsbCBhcyBFY21hIFRlY2huaWNhbCBSZXBvcnRzCisKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit7CisgICAg
Y29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM0KTsKKworICAg
IGxldCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IHllYXI6ICJudW1lcmlj
IiwgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVyaWMiIH0pOworICAgIHNob3VsZEJlKGR0Zi5m
b3JtYXRSYW5nZShkYXRlLCBkYXRlKSwgZHRmLmZvcm1hdChkYXRlKSk7CisKKyAgICBkdGYgPSBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1pbnV0ZTogIm51bWVyaWMiLCBzZWNvbmQ6
ICJudW1lcmljIiB9KTsKKyAgICBzaG91bGRCZShkdGYuZm9ybWF0UmFuZ2UoZGF0ZSwgZGF0ZSks
IGR0Zi5mb3JtYXQoZGF0ZSkpOworCisgICAgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQo
ImVuIiwgeyBtb250aDogInNob3J0IiwgZGF5OiAibnVtZXJpYyIsIG1pbnV0ZTogIm51bWVyaWMi
IH0pOworICAgIHNob3VsZEJlKGR0Zi5mb3JtYXRSYW5nZShkYXRlLCBkYXRlKSwgZHRmLmZvcm1h
dChkYXRlKSk7CisKKyAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRh
dGVTdHlsZTogImxvbmciLCB0aW1lU3R5bGU6ICJzaG9ydCIgfSk7CisgICAgc2hvdWxkQmUoZHRm
LmZvcm1hdFJhbmdlKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0KGRhdGUpKTsKK30KKworeworICAg
IC8vIGRhdGUxIGFuZCBkYXRlMiBhcmUgcHJhY3RpY2FsbHkgZXF1YWwgc2luY2UgdGhlIGZvbGxv
d2luZyBmb3JtYXRzIGRvIG5vdCBzaG93IG1pbGxpc2Vjb25kcy4KKyAgICBjb25zdCBkYXRlMSA9
IG5ldyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM0KTsKKyAgICBjb25zdCBkYXRlMiA9
IG5ldyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM1KTsKKworICAgIHNob3VsZEJlKGRh
dGUxLmdldFRpbWUoKSAhPT0gZGF0ZTIuZ2V0VGltZSgpLCB0cnVlKTsKKworICAgIGxldCBkdGYg
PSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IHllYXI6ICJudW1lcmljIiwgbW9udGg6
ICJzaG9ydCIsIGRheTogIm51bWVyaWMiIH0pOworICAgIHNob3VsZEJlKGR0Zi5mb3JtYXRSYW5n
ZShkYXRlMSwgZGF0ZTIpLCBkdGYuZm9ybWF0KGRhdGUxKSk7CisKKyAgICBkdGYgPSBuZXcgSW50
bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1pbnV0ZTogIm51bWVyaWMiLCBzZWNvbmQ6ICJudW1l
cmljIiB9KTsKKyAgICBzaG91bGRCZShkdGYuZm9ybWF0UmFuZ2UoZGF0ZTEsIGRhdGUyKSwgZHRm
LmZvcm1hdChkYXRlMSkpOworCisgICAgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVu
IiwgeyBtb250aDogInNob3J0IiwgZGF5OiAibnVtZXJpYyIsIG1pbnV0ZTogIm51bWVyaWMiIH0p
OworICAgIHNob3VsZEJlKGR0Zi5mb3JtYXRSYW5nZShkYXRlMSwgZGF0ZTIpLCBkdGYuZm9ybWF0
KGRhdGUxKSk7CisKKyAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRh
dGVTdHlsZTogImxvbmciLCB0aW1lU3R5bGU6ICJzaG9ydCIgfSk7CisgICAgc2hvdWxkQmUoZHRm
LmZvcm1hdFJhbmdlKGRhdGUxLCBkYXRlMiksIGR0Zi5mb3JtYXQoZGF0ZTEpKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQtZm9ybWF0LXJhbmdlLXRv
LXBhcnRzLXNob3VsZC1jaGVjay1wcmFjdGljYWxseS1lcXVhbC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2ludGwtZGF0ZXRpbWVmb3JtYXQtZm9ybWF0LXJhbmdlLXRvLXBhcnRzLXNob3VsZC1jaGVjay1w
cmFjdGljYWxseS1lcXVhbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjBkZDFjNTk5ZDE0OTdmMWMzMmM0YWIx
NTYwZWZjMjE0YTNiYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1k
YXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2UtdG8tcGFydHMtc2hvdWxkLWNoZWNrLXByYWN0aWNh
bGx5LWVxdWFsLmpzCkBAIC0wLDAgKzEsODIgQEAKKy8vIFRoZSA8PCBTb2Z0d2FyZSBpZGVudGlm
aWVkIGJ5IHJlZmVyZW5jZSB0byB0aGUgRWNtYSBTdGFuZGFyZCogKCJTb2Z0d2FyZSkiPj4gIGlz
IHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIGlzIGJlaW5nCisvLyBtYWRlIGF2YWlsYWJsZSB1
bmRlciB0aGUgICJCU0QgTGljZW5zZSIsIGluY2x1ZGVkIGJlbG93LiBUaGlzIFNvZnR3YXJlIG1h
eSBiZSBzdWJqZWN0IHRvIHRoaXJkIHBhcnR5IHJpZ2h0cyAocmlnaHRzCisvLyBmcm9tIHBhcnRp
ZXMgb3RoZXIgdGhhbiBFY21hIEludGVybmF0aW9uYWwpLCBpbmNsdWRpbmcgcGF0ZW50IHJpZ2h0
cywgYW5kIG5vIGxpY2Vuc2VzIHVuZGVyIHN1Y2ggdGhpcmQgcGFydHkgcmlnaHRzCisvLyBhcmUg
Z3JhbnRlZCB1bmRlciB0aGlzIGxpY2Vuc2UgZXZlbiBpZiB0aGUgdGhpcmQgcGFydHkgY29uY2Vy
bmVkIGlzIGEgbWVtYmVyIG9mIEVjbWEgSW50ZXJuYXRpb25hbC4gIFNFRSBUSEUgRUNNQQorLy8g
Q09ERSBPRiBDT05EVUNUIElOIFBBVEVOVCBNQVRURVJTIEFWQUlMQUJMRSBBVCBodHRwOi8vd3d3
LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvbWVtZW50by9jb2Rlb2Zjb25kdWN0Lmh0bSBGT1IKKy8v
IElORk9STUFUSU9OIFJFR0FSRElORyBUSEUgTElDRU5TSU5HIE9GIFBBVEVOVCBDTEFJTVMgVEhB
VCBBUkUgUkVRVUlSRUQgVE8gSU1QTEVNRU5UIEVDTUEgSU5URVJOQVRJT05BTCBTVEFOREFSRFMq
LgorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIEVjbWEgSW50ZXJuYXRpb25hbAorLy8g
Q29weXJpZ2h0IChDKSAyMDIxIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlCisvLyBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0
OgorLy8gMS4gICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisvLyAgICAgIGRpc2NsYWltZXIuCisvLyAyLiAgIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorLy8gICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vIDMuICAgTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
YXV0aG9ycyBub3IgRWNtYSBJbnRlcm5hdGlvbmFsIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBFQ01BIElOVEVSTkFUSU9OQUwgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQKKy8vIFNIQUxMIEVDTUEgSU5URVJOQVRJT05BTCBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworLy8gKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKy8vIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKy8vIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisvLyBEQU1BR0UuCisvLwor
Ly8gKiBFY21hIEludGVybmF0aW9uYWwgU3RhbmRhcmRzIGhlcmVhZnRlciBtZWFucyBFY21hIElu
dGVybmF0aW9uYWwgU3RhbmRhcmRzIGFzIHdlbGwgYXMgRWNtYSBUZWNobmljYWwgUmVwb3J0cwor
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKworZnVuY3Rpb24qIHppcChhLCBiKSB7CisgICAgc2hvdWxkQmUoYS5sZW5ndGgs
IGIubGVuZ3RoKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgeWllbGQgW2ksIGFbaV0sIGJbaV1dOworICAgIH0KK30KKworZnVuY3Rpb24gY29tcGFy
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgZm9yIChjb25zdCBbaSwgYWN0dWFsRW50cnksIGV4
cGVjdGVkRW50cnldIG9mIHppcChhY3R1YWwsIGV4cGVjdGVkKSkgeworICAgICAgICBzaG91bGRC
ZShhY3R1YWxFbnRyeS50eXBlLCBleHBlY3RlZEVudHJ5LnR5cGUpOworICAgICAgICBzaG91bGRC
ZShhY3R1YWxFbnRyeS52YWx1ZSwgZXhwZWN0ZWRFbnRyeS52YWx1ZSk7CisgICAgfQorfQorCit7
CisgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM0KTsK
KworICAgIGxldCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IHllYXI6ICJu
dW1lcmljIiwgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVyaWMiIH0pOworICAgIGNvbXBhcmUo
ZHRmLmZvcm1hdFJhbmdlVG9QYXJ0cyhkYXRlLCBkYXRlKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0
ZSkpOworCisgICAgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwgeyBtaW51dGU6
ICJudW1lcmljIiwgc2Vjb25kOiAibnVtZXJpYyIgfSk7CisgICAgY29tcGFyZShkdGYuZm9ybWF0
UmFuZ2VUb1BhcnRzKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSk7CisKKyAg
ICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1vbnRoOiAic2hvcnQiLCBk
YXk6ICJudW1lcmljIiwgbWludXRlOiAibnVtZXJpYyIgfSk7CisgICAgY29tcGFyZShkdGYuZm9y
bWF0UmFuZ2VUb1BhcnRzKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSk7CisK
KyAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxv
bmciLCB0aW1lU3R5bGU6ICJzaG9ydCIgfSk7CisgICAgY29tcGFyZShkdGYuZm9ybWF0UmFuZ2VU
b1BhcnRzKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSk7Cit9Cit7CisgICAg
Ly8gZGF0ZTEgYW5kIGRhdGUyIGFyZSBwcmFjdGljYWxseSBlcXVhbCBzaW5jZSB0aGUgZm9sbG93
aW5nIGZvcm1hdHMgZG8gbm90IHNob3cgbWlsbGlzZWNvbmRzLgorICAgIGNvbnN0IGRhdGUxID0g
bmV3IERhdGUoMjAxOSwgNywgMTAsICAxLCAyLCAzLCAyMzQpOworICAgIGNvbnN0IGRhdGUyID0g
bmV3IERhdGUoMjAxOSwgNywgMTAsICAxLCAyLCAzLCAyMzUpOworCisgICAgbGV0IGR0ZiA9IG5l
dyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsgeWVhcjogIm51bWVyaWMiLCBtb250aDogInNo
b3J0IiwgZGF5OiAibnVtZXJpYyIgfSk7CisgICAgY29tcGFyZShkdGYuZm9ybWF0UmFuZ2VUb1Bh
cnRzKGRhdGUxLCBkYXRlMiksIGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUxKSk7CisKKyAgICBkdGYg
PSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1pbnV0ZTogIm51bWVyaWMiLCBzZWNv
bmQ6ICJudW1lcmljIiB9KTsKKyAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFydHMoZGF0
ZTEsIGRhdGUyKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0ZTEpKTsKKworICAgIGR0ZiA9IG5ldyBJ
bnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVyaWMi
LCBtaW51dGU6ICJudW1lcmljIiB9KTsKKyAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFy
dHMoZGF0ZTEsIGRhdGUyKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0ZTEpKTsKKworICAgIGR0ZiA9
IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsgZGF0ZVN0eWxlOiAibG9uZyIsIHRpbWVT
dHlsZTogInNob3J0IiB9KTsKKyAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFydHMoZGF0
ZTEsIGRhdGUyKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0ZTEpKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417151</attachid>
            <date>2021-01-06 20:47:47 -0800</date>
            <delta_ts>2021-01-06 22:11:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220395-20210106204746.patch</filename>
            <type>text/plain</type>
            <size>21819</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWNmMmM4NTIwMThjM2ViMGZiMGMxNzVlMDNlOTRlYzFkNDZmNDI3Li5iZmEwY2Q3NWJmMTM0OTI1
OTA2NGRmYjMwMWQ5MzNkYThmMWRkMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMS0wMS0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERhdGVUaW1lRm9ybWF0I2Zvcm1hdFJhbmdlIHNob3VsZCBnZW5l
cmF0ZSB0aGUgc2FtZSBvdXRwdXQgdG8gRGF0ZVRpbWVGb3JtYXQjZm9ybWF0IGlmIHN0YXJ0RGF0
ZSBhbmQgZW5kRGF0ZSBhcmUgInByYWN0aWNhbGx5LWVxdWFsIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXRS
YW5nZShzdGFydERhdGUsIGVuZERhdGUpIGFsc28gbmVlZHMgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
Zm9ybWF0dGVkIHN0cmluZyB0byB0aGUgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXQKKyAgICAg
ICAgaWYgc3RhcnREYXRlIGFuZCBlbmREYXRlIGFyZSAqcHJhY3RpY2FsbHktZXF1YWwqIChzcGVj
IHRlcm0pLiBIb3dldmVyLCBkdWUgdG8gQ0xEUiwganVzdCB1c2luZyB1ZHRpdHZmbXRfZm9ybWF0
IGdlbmVyYXRlcyBkaWZmZXJlbnQKKyAgICAgICAgZm9ybWF0dGVkIHN0cmluZyB0byB1ZGF0X2Zv
cm1hdCdzIHJlc3VsdCBldmVuIHRob3VnaCBzdGFydERhdGUgYW5kIGVuZERhdGUgYXJlIHRoZSBz
YW1lLgorCisgICAgICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVT
dHlsZTogImxvbmciLCB0aW1lU3R5bGU6ICJzaG9ydCIgfSkuZm9ybWF0KG5ldyBEYXRlKCkpCisg
ICAgICAgICAgICAvLyAiRGVjZW1iZXIgMTIsIDIwMTkgYXQgMTE6NDggQU0iCisgICAgICAgICAg
ICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxvbmciLCB0aW1l
U3R5bGU6ICJzaG9ydCIgfSkuZm9ybWF0UmFuZ2UobmV3IERhdGUoKSwgbmV3IERhdGUoKSkKKyAg
ICAgICAgICAgIC8vICJEZWNlbWJlciAxMiwgMjAxOSwgMTE6NDggQU0iCisKKyAgICAgICAgSW4g
SW50bC5EYXRlVGltZUZvcm1hdCNmb3JtYXRSYW5nZVRvUGFydHMsIHdlIGRlcGxveXMgKnByYWN0
aWNhbGx5LWVxdWFsKiBjaGVja2luZyB0byBhdm9pZCB0aGlzIGlzc3VlLiBUaGUgc2FtZSB0aGlu
ZyBzaG91bGQgYmUgZG9uZSBpbgorICAgICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0I2Zvcm1hdFJh
bmdlIHRvby4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBzdG9wIHVzaW5nIHVkdGl0dmZt
dF9mb3JtYXQgaWYgSUNVIHZlcnNpb24gaXMgNjQgb3IgbGF0ZXIgdG8gcGVyZm9ybSAqcHJhY3Rp
Y2FsbHktZXF1YWwqIGNoZWNraW5nLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29t
L3RjMzkvcHJvcG9zYWwtaW50bC1EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZS9pc3N1ZXMvMTkK
KworICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpT
Qzo6Zm9ybWF0dGVkVmFsdWVGcm9tRGF0ZVJhbmdlKToKKyAgICAgICAgKEpTQzo6ZGF0ZUZpZWxk
c1ByYWN0aWNhbGx5RXF1YWwpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmZv
cm1hdFJhbmdlKToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5n
ZVRvUGFydHMpOgorICAgICAgICAoSlNDOjpkZWZpbml0ZWx5QWZ0ZXJHcmVnb3JpYW5DYWxlbmRh
ckNoYW5nZURhdGUpOiBEZWxldGVkLgorCiAyMDIxLTAxLTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVwbGFjZSBKU0JpZ0ludDo6dG9VaW50
NjQgd2l0aCBKU0JpZ0ludDo6dG9CaWdVSW50NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGEzMjM0M2UwODEwZGRj
M2RmOGYzNjM0OWUyODU0YWYwZmExMjRkZjQuLmQyODY1NDJjMDY0OWU1OTJkZTVlNWZmMTI4ZTc4
NTVlMWFlZWVlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtMTM4MiwxNiArMTM4Miw2IEBAIFVEYXRlSW50ZXJ2
YWxGb3JtYXQqIEludGxEYXRlVGltZUZvcm1hdDo6Y3JlYXRlRGF0ZUludGVydmFsRm9ybWF0SWZO
ZWNlc3NhcnkoSlNHCiAKICNpZiBIQVZFKElDVV9VX0RBVEVfSU5URVJWQUxfRk9STUFUX0ZPUk1B
VF9SQU5HRV9UT19QQVJUUykKIAotLy8gSWYgYSBkYXRlIGlzIGFmdGVyIE9jdCAxNSwgMTU4Miwg
dGhlIGNvbmZpZ3VyYXRpb24gb2YgZ3JlZ29yaWFuIGNhbGVuZGFyIGNoYW5nZSBkYXRlIGluIFVD
YWxlbmRhciBkb2VzIG5vdCBhZmZlY3QKLS8vIG9uIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLiBUbyBl
bnN1cmUgdGhhdCBpdCBpcyBhZnRlciBPY3QgMTUgaW4gYWxsIHRpbWV6b25lcywgd2UgYWRkIG9u
ZSBkYXkgdG8gZ3JlZ29yaWFuIGNhbGVuZGFyCi0vLyBjaGFuZ2UgZGF0ZSBpbiBVVEMsIHNvIHRo
YXQgdGhpcyBjaGVjayBjYW4gY29uc2VydmF0aXZlbHkgYW5zd2VyIHdoZXRoZXIgdGhlIGRhdGUg
aXMgZGVmaW5pdGVseSBhZnRlciBncmVnb3JpYW4KLS8vIGNhbGVuZGFyIGNoYW5nZSBkYXRlLgot
c3RhdGljIGlubGluZSBib29sIGRlZmluaXRlbHlBZnRlckdyZWdvcmlhbkNhbGVuZGFyQ2hhbmdl
RGF0ZShkb3VibGUgbWlsbGlzZWNvbmRzRnJvbUVwb2NoKQotewotICAgIGNvbnN0ZXhwciBkb3Vi
bGUgZ3JlZ29yaWFuQ2FsZW5kYXJSZWZvcm1EYXRlSW5VVEMgPSAtMTIyMTkyOTI4MDAwMDAuMDsK
LSAgICByZXR1cm4gbWlsbGlzZWNvbmRzRnJvbUVwb2NoID49IChncmVnb3JpYW5DYWxlbmRhclJl
Zm9ybURhdGVJblVUQyArIG1zUGVyRGF5KTsKLX0KLQogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxV
Rm9ybWF0dGVkRGF0ZUludGVydmFsLCBJQ1VEZWxldGVyPHVkdGl0dmZtdF9jbG9zZVJlc3VsdD4+
IGZvcm1hdHRlZFZhbHVlRnJvbURhdGVSYW5nZShVRGF0ZUludGVydmFsRm9ybWF0JiBkYXRlSW50
ZXJ2YWxGb3JtYXQsIFVEYXRlRm9ybWF0JiBkYXRlRm9ybWF0LCBkb3VibGUgc3RhcnREYXRlLCBk
b3VibGUgZW5kRGF0ZSwgVUVycm9yQ29kZSYgc3RhdHVzKQogewogICAgIGF1dG8gcmVzdWx0ID0g
c3RkOjp1bmlxdWVfcHRyPFVGb3JtYXR0ZWREYXRlSW50ZXJ2YWwsIElDVURlbGV0ZXI8dWR0aXR2
Zm10X2Nsb3NlUmVzdWx0Pj4odWR0aXR2Zm10X29wZW5SZXN1bHQoJnN0YXR1cykpOwpAQCAtMTQw
MCw2ICsxMzkwLDE1IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8VUZvcm1hdHRlZERhdGVJbnRl
cnZhbCwgSUNVRGVsZXRlcjx1ZHRpdHZmbXRfY2xvc2VSZXN1bHQ+CiAKICAgICAvLyBBZnRlciBJ
Q1UgNjcsIHVkdGl0dmZtdF9mb3JtYXRUb1Jlc3VsdCdzIHNpZ25hdHVyZSBpcyBjaGFuZ2VkLgog
I2lmIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDY3CisgICAgLy8gSWYgYSBkYXRlIGlzIGFm
dGVyIE9jdCAxNSwgMTU4MiwgdGhlIGNvbmZpZ3VyYXRpb24gb2YgZ3JlZ29yaWFuIGNhbGVuZGFy
IGNoYW5nZSBkYXRlIGluIFVDYWxlbmRhciBkb2VzIG5vdCBhZmZlY3QKKyAgICAvLyBvbiB0aGUg
Zm9ybWF0dGVkIHN0cmluZy4gVG8gZW5zdXJlIHRoYXQgaXQgaXMgYWZ0ZXIgT2N0IDE1IGluIGFs
bCB0aW1lem9uZXMsIHdlIGFkZCBvbmUgZGF5IHRvIGdyZWdvcmlhbiBjYWxlbmRhcgorICAgIC8v
IGNoYW5nZSBkYXRlIGluIFVUQywgc28gdGhhdCB0aGlzIGNoZWNrIGNhbiBjb25zZXJ2YXRpdmVs
eSBhbnN3ZXIgd2hldGhlciB0aGUgZGF0ZSBpcyBkZWZpbml0ZWx5IGFmdGVyIGdyZWdvcmlhbgor
ICAgIC8vIGNhbGVuZGFyIGNoYW5nZSBkYXRlLgorICAgIGF1dG8gZGVmaW5pdGVseUFmdGVyR3Jl
Z29yaWFuQ2FsZW5kYXJDaGFuZ2VEYXRlID0gW10oZG91YmxlIG1pbGxpc2Vjb25kc0Zyb21FcG9j
aCkgeworICAgICAgICBjb25zdGV4cHIgZG91YmxlIGdyZWdvcmlhbkNhbGVuZGFyUmVmb3JtRGF0
ZUluVVRDID0gLTEyMjE5MjkyODAwMDAwLjA7CisgICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNG
cm9tRXBvY2ggPj0gKGdyZWdvcmlhbkNhbGVuZGFyUmVmb3JtRGF0ZUluVVRDICsgbXNQZXJEYXkp
OworICAgIH07CisKICAgICAvLyBVRm9ybWF0dGVkRGF0ZUludGVydmFsIGRvZXMgbm90IGhhdmUg
YSB3YXkgdG8gY29uZmlndXJlIGdyZWdvcmlhbiBjYWxlbmRhciBjaGFuZ2UgZGF0ZSB3aGlsZSBF
Q01BU2NyaXB0IHJlcXVpcmVzIHRoYXQKICAgICAvLyBncmVnb3JpYW4gY2FsZW5kYXIgY2hhbmdl
IHNob3VsZCBub3QgaGF2ZSBlZmZlY3QgKHdlIGFyZSBzZXR0aW5nIHVjYWxfc2V0R3JlZ29yaWFu
Q2hhbmdlKGNhbCwgbWluRUNNQVNjcmlwdFRpbWUsICZzdGF0dXMpIGV4cGxpY2l0bHkpLgogICAg
IC8vIEFzIGEgcmVzdWx0LCBpZiB0aGUgaW5wdXQgZGF0ZSBpcyBvbGRlciB0aGFuIGdyZWdvcmlh
biBjYWxlbmRhciBjaGFuZ2UgZGF0ZSAoT2N0IDE1LCAxNTgyKSwgdGhlIGZvcm1hdHRlZCBzdHJp
bmcgYmVjb21lcwpAQCAtMTQ0Myw2ICsxNDQyLDI0IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
VUZvcm1hdHRlZERhdGVJbnRlcnZhbCwgSUNVRGVsZXRlcjx1ZHRpdHZmbXRfY2xvc2VSZXN1bHQ+
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGJvb2wgZGF0ZUZpZWxkc1ByYWN0aWNh
bGx5RXF1YWwoY29uc3QgVUZvcm1hdHRlZFZhbHVlKiBmb3JtYXR0ZWRWYWx1ZSwgVUVycm9yQ29k
ZSYgc3RhdHVzKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8VUNvbnN0
cmFpbmVkRmllbGRQb3NpdGlvbiwgSUNVRGVsZXRlcjx1Y2Zwb3NfY2xvc2U+Pih1Y2Zwb3Nfb3Bl
bigmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgVUZJRUxEX0NBVEVHT1JZX0RBVEVf
SU5URVJWQUxfU1BBTiBjYXRlZ29yeS4KKyAgICB1Y2Zwb3NfY29uc3RyYWluQ2F0ZWdvcnkoaXRl
cmF0b3IuZ2V0KCksIFVGSUVMRF9DQVRFR09SWV9EQVRFX0lOVEVSVkFMX1NQQU4sICZzdGF0dXMp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYm9vbCBoYXNTcGFuID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVkVmFsdWUsIGl0
ZXJhdG9yLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhaGFzU3BhbjsKK30KKwogI2VuZGlmIC8v
IEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JNQVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQog
CiBKU1ZhbHVlIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0UmFuZ2UoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgZG91YmxlIHN0YXJ0RGF0ZSwgZG91YmxlIGVuZERhdGUpCkBAIC0xNDY0
LDM1ICsxNDgxLDQyIEBAIEpTVmFsdWUgSW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5nZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgc3RhCiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAogI2lmIEhBVkUoSUNVX1VfREFURV9JTlRFUlZBTF9GT1JN
QVRfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQotICAgIC8vIElmIHRoZSBkYXRlIGlzIG9sZGVyIHRo
YW4gZ3JlZ29yaWFuIGNhbGVuZGFyIGNoYW5nZSBkYXRlLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkg
cGFzcyBjb25maWd1cmVkIFVDYWxlbmRhciB0bwotICAgIC8vIHVkdGl0dmZtdF9mb3JtYXRDYWxl
bmRhclRvUmVzdWx0IHRvIGdlbmVyYXRlIGEgY29ycmVjdCBmb3JtYXR0ZWQgc3RyaW5nLgotICAg
IC8vIFRoZSBjb21tZW50IGluIGZvcm1hdHRlZFZhbHVlRnJvbURhdGVSYW5nZSBkZXNjcmliZXMg
dGhlIGRldGFpbHMuCi0gICAgaWYgKCFkZWZpbml0ZWx5QWZ0ZXJHcmVnb3JpYW5DYWxlbmRhckNo
YW5nZURhdGUoc3RhcnREYXRlKSkgewotICAgICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVS
T19FUlJPUjsKLSAgICAgICAgYXV0byByZXN1bHQgPSBmb3JtYXR0ZWRWYWx1ZUZyb21EYXRlUmFu
Z2UoKmRhdGVJbnRlcnZhbEZvcm1hdCwgKm1fZGF0ZUZvcm1hdCwgc3RhcnREYXRlLCBlbmREYXRl
LCBzdGF0dXMpOwotICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgICAg
IHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IGRh
dGUgaW50ZXJ2YWwiX3MpOwotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfQorICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gcmVzdWx0ID0gZm9y
bWF0dGVkVmFsdWVGcm9tRGF0ZVJhbmdlKCpkYXRlSW50ZXJ2YWxGb3JtYXQsICptX2RhdGVGb3Jt
YXQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxl
ZCB0byBmb3JtYXQgZGF0ZSBpbnRlcnZhbCJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQogCi0gICAgICAgIC8vIFVGb3JtYXR0ZWRWYWx1ZSBpcyBvd25lZCBieSBVRm9ybWF0dGVkRGF0
ZUludGVydmFsLiBXZSBkbyBub3QgbmVlZCB0byBjbG9zZSBpdC4KLSAgICAgICAgYXV0byBmb3Jt
YXR0ZWRWYWx1ZSA9IHVkdGl0dmZtdF9yZXN1bHRBc1ZhbHVlKHJlc3VsdC5nZXQoKSwgJnN0YXR1
cyk7Ci0gICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgZGF0ZSBpbnRl
cnZhbCJfcyk7Ci0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB9CisgICAgLy8gVUZv
cm1hdHRlZFZhbHVlIGlzIG93bmVkIGJ5IFVGb3JtYXR0ZWREYXRlSW50ZXJ2YWwuIFdlIGRvIG5v
dCBuZWVkIHRvIGNsb3NlIGl0LgorICAgIGF1dG8gZm9ybWF0dGVkVmFsdWUgPSB1ZHRpdHZmbXRf
cmVzdWx0QXNWYWx1ZShyZXN1bHQuZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUo
c3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
RmFpbGVkIHRvIGZvcm1hdCBkYXRlIGludGVydmFsIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9CiAKLSAgICAgICAgaW50MzJfdCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGggPSAwOwotICAg
ICAgICBjb25zdCBVQ2hhciogZm9ybWF0dGVkU3RyaW5nUG9pbnRlciA9IHVmbXR2YWxfZ2V0U3Ry
aW5nKGZvcm1hdHRlZFZhbHVlLCAmZm9ybWF0dGVkU3RyaW5nTGVuZ3RoLCAmc3RhdHVzKTsKLSAg
ICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBkYXRlIGludGVydmFsIl9z
KTsKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIH0KKyAgICAvLyBJZiB0aGUgZm9y
bWF0dGVkIHBhcnRzIG9mIHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZSBhcmUgdGhlIHNhbWUsIGl0IGlz
IHBvc3NpYmxlIHRoYXQgdGhlIHJlc3VsdGVkIHN0cmluZyBkb2VzIG5vdCBsb29rIGxpa2UgcmFu
Z2UuCisgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSByZXF1ZXN0ZWQgZm9ybWF0IG9ubHkgaW5j
bHVkZXMgInllYXIiIGFuZCBzdGFydERhdGUgYW5kIGVuZERhdGUgYXJlIHRoZSBzYW1lIHllYXIs
IHRoZSByZXN1bHQganVzdCBjb250YWlucyBvbmUgeWVhci4KKyAgICAvLyBJbiB0aGF0IGNhc2Us
IHN0YXJ0RGF0ZSBhbmQgZW5kRGF0ZSBhcmUgKnByYWN0aWNhbGx5LWVxdWFsKiAoc3BlYyB0ZXJt
KSwgYW5kIHdlIGdlbmVyYXRlIHBhcnRzIGFzIHdlIGNhbGwgYGZvcm1hdFRvUGFydHMoc3RhcnRE
YXRlKWAgd2l0aAorICAgIC8vIGBzb3VyY2U6ICJzaGFyZWQiYCBhZGRpdGlvbmFsIGZpZWxkcy4K
KyAgICBib29sIGVxdWFsID0gZGF0ZUZpZWxkc1ByYWN0aWNhbGx5RXF1YWwoZm9ybWF0dGVkVmFs
dWUsIHN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IGRhdGUgaW50
ZXJ2YWwiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGlmIChlcXVhbCkK
KyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmb3JtYXQoZ2xvYmFsT2JqZWN0LCBz
dGFydERhdGUpKTsKIAotICAgICAgICByZXR1cm4ganNTdHJpbmcodm0sIFN0cmluZyhmb3JtYXR0
ZWRTdHJpbmdQb2ludGVyLCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGgpKTsKKyAgICBpbnQzMl90IGZv
cm1hdHRlZFN0cmluZ0xlbmd0aCA9IDA7CisgICAgY29uc3QgVUNoYXIqIGZvcm1hdHRlZFN0cmlu
Z1BvaW50ZXIgPSB1Zm10dmFsX2dldFN0cmluZyhmb3JtYXR0ZWRWYWx1ZSwgJmZvcm1hdHRlZFN0
cmluZ0xlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAg
ICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0
IGRhdGUgaW50ZXJ2YWwiX3MpOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSNlbmRpZgog
CisgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCBTdHJpbmcoZm9ybWF0dGVkU3RyaW5nUG9pbnRlciwg
Zm9ybWF0dGVkU3RyaW5nTGVuZ3RoKSk7CisjZWxzZQogICAgIFZlY3RvcjxVQ2hhciwgMzI+IGJ1
ZmZlcjsKICAgICBhdXRvIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1ZHRp
dHZmbXRfZm9ybWF0LCBkYXRlSW50ZXJ2YWxGb3JtYXQsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYnVm
ZmVyLCBudWxscHRyKTsKICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKQEAgLTE1MDEsNiAr
MTUyNSw3IEBAIEpTVmFsdWUgSW50bERhdGVUaW1lRm9ybWF0Ojpmb3JtYXRSYW5nZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgc3RhCiAgICAgfQogCiAgICAgcmV0dXJuIGpz
U3RyaW5nKHZtLCBTdHJpbmcoYnVmZmVyKSk7CisjZW5kaWYKIH0KIAogSlNWYWx1ZSBJbnRsRGF0
ZVRpbWVGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgc3RhcnREYXRlLCBkb3VibGUgZW5kRGF0ZSkKQEAgLTE1MjIsMjMgKzE1NDcs
NiBAQCBKU1ZhbHVlIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdQogICAgIGF1dG8qIGRhdGVJbnRlcnZhbEZvcm1h
dCA9IGNyZWF0ZURhdGVJbnRlcnZhbEZvcm1hdElmTmVjZXNzYXJ5KGdsb2JhbE9iamVjdCk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIGF1dG8gZGF0ZUZpZWxk
c1ByYWN0aWNhbGx5RXF1YWwgPSBbXShjb25zdCBVRm9ybWF0dGVkVmFsdWUqIGZvcm1hdHRlZFZh
bHVlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6
dW5pcXVlX3B0cjxVQ29uc3RyYWluZWRGaWVsZFBvc2l0aW9uLCBJQ1VEZWxldGVyPHVjZnBvc19j
bG9zZT4+KHVjZnBvc19vcGVuKCZzdGF0dXMpKTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0
dXMpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIC8vIFdlIG9ubHkgY2Fy
ZSBhYm91dCBVRklFTERfQ0FURUdPUllfREFURV9JTlRFUlZBTF9TUEFOIGNhdGVnb3J5LgotICAg
ICAgICB1Y2Zwb3NfY29uc3RyYWluQ2F0ZWdvcnkoaXRlcmF0b3IuZ2V0KCksIFVGSUVMRF9DQVRF
R09SWV9EQVRFX0lOVEVSVkFMX1NQQU4sICZzdGF0dXMpOwotICAgICAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgYm9vbCBoYXNT
cGFuID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVkVmFsdWUsIGl0ZXJhdG9yLmdldCgp
LCAmc3RhdHVzKTsKLSAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiAhaGFzU3BhbjsKLSAgICB9OwotCiAgICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgYXV0byByZXN1bHQgPSBmb3Jt
YXR0ZWRWYWx1ZUZyb21EYXRlUmFuZ2UoKmRhdGVJbnRlcnZhbEZvcm1hdCwgKm1fZGF0ZUZvcm1h
dCwgc3RhcnREYXRlLCBlbmREYXRlLCBzdGF0dXMpOwogICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVz
KSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBhZTM0NDI0MjhlOTdhYmY5N2UzZjJlYjdiODY5Y2JmZmZmNjEwMTJiLi4xNTI2MTM1NzBk
YWQ5NTRhYjMxNTQ2ZDFiZTlmYTE5ODAzOGVlYmY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTA2
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gRGF0
ZVRpbWVGb3JtYXQjZm9ybWF0UmFuZ2Ugc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dCB0
byBEYXRlVGltZUZvcm1hdCNmb3JtYXQgaWYgc3RhcnREYXRlIGFuZCBlbmREYXRlIGFyZSAicHJh
Y3RpY2FsbHktZXF1YWwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjAzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBvcnRlZCBzb21lIHRlc3QyNjIgdGVzdHMuIFVwZGF0ZWQsIGZpeGVkIHNvbWUg
aXNzdWVzIChgZm9ybWF0VG9QYXJ0c2AgdGVzdCB3YXMgdXNpbmcgYGZvcm1hdGAsIHdlIHNob3Vs
ZCB1cHN0cmVhbSBpdCB0byB0ZXN0MjYyKSwgYW5kIGFkZGVkIG1vcmUgdGVzdHMuCisKKyAgICAg
ICAgKiBzdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2Utc2hvdWxkLWNoZWNr
LXByYWN0aWNhbGx5LWVxdWFsLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHZtLmljdVZlcnNpb24pOgorICAgICAgICAqIHN0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0
LWZvcm1hdC1yYW5nZS10by1wYXJ0cy1zaG91bGQtY2hlY2stcHJhY3RpY2FsbHktZXF1YWwuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoemlwKToKKyAgICAgICAgKGNv
bXBhcmUpOgorICAgICAgICAodm0uaWN1VmVyc2lvbik6CisKIDIwMjEtMDEtMDUgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0FTTV0gW0JpZ0ludF0gQWRk
IEk2NCB0byBCaWdJbnQgY29udmVyc2lvbgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50
bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2Utc2hvdWxkLWNoZWNrLXByYWN0aWNhbGx5LWVx
dWFsLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2Ut
c2hvdWxkLWNoZWNrLXByYWN0aWNhbGx5LWVxdWFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5OTY5OTU3NjU2
NDViMTAxY2JiZmY1NjA2MTJlYjFhNjQwZmQ4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0LWZvcm1hdC1yYW5nZS1zaG91bGQtY2hlY2stcHJh
Y3RpY2FsbHktZXF1YWwuanMKQEAgLTAsMCArMSw3MyBAQAorLy8gVGhlIDw8IFNvZnR3YXJlIGlk
ZW50aWZpZWQgYnkgcmVmZXJlbmNlIHRvIHRoZSBFY21hIFN0YW5kYXJkKiAoIlNvZnR3YXJlKSI+
PiAgaXMgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgaXMgYmVpbmcKKy8vIG1hZGUgYXZhaWxh
YmxlIHVuZGVyIHRoZSAgIkJTRCBMaWNlbnNlIiwgaW5jbHVkZWQgYmVsb3cuIFRoaXMgU29mdHdh
cmUgbWF5IGJlIHN1YmplY3QgdG8gdGhpcmQgcGFydHkgcmlnaHRzIChyaWdodHMKKy8vIGZyb20g
cGFydGllcyBvdGhlciB0aGFuIEVjbWEgSW50ZXJuYXRpb25hbCksIGluY2x1ZGluZyBwYXRlbnQg
cmlnaHRzLCBhbmQgbm8gbGljZW5zZXMgdW5kZXIgc3VjaCB0aGlyZCBwYXJ0eSByaWdodHMKKy8v
IGFyZSBncmFudGVkIHVuZGVyIHRoaXMgbGljZW5zZSBldmVuIGlmIHRoZSB0aGlyZCBwYXJ0eSBj
b25jZXJuZWQgaXMgYSBtZW1iZXIgb2YgRWNtYSBJbnRlcm5hdGlvbmFsLiAgU0VFIFRIRSBFQ01B
CisvLyBDT0RFIE9GIENPTkRVQ1QgSU4gUEFURU5UIE1BVFRFUlMgQVZBSUxBQkxFIEFUIGh0dHA6
Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9tZW1lbnRvL2NvZGVvZmNvbmR1Y3QuaHRtIEZP
UgorLy8gSU5GT1JNQVRJT04gUkVHQVJESU5HIFRIRSBMSUNFTlNJTkcgT0YgUEFURU5UIENMQUlN
UyBUSEFUIEFSRSBSRVFVSVJFRCBUTyBJTVBMRU1FTlQgRUNNQSBJTlRFUk5BVElPTkFMIFNUQU5E
QVJEUyouCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgRWNtYSBJbnRlcm5hdGlvbmFs
CisvLyBDb3B5cmlnaHQgKEMpIDIwMjEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUKKy8vIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6CisvLyAxLiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKy8vICAgICAgZGlzY2xhaW1lci4KKy8vIDIuICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisvLyAgICAgIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8gMy4gICBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBhdXRob3JzIG5vciBFY21hIEludGVybmF0aW9uYWwgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gICAgICB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEVDTUEgSU5URVJOQVRJT05BTCAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVAorLy8gU0hBTEwgRUNNQSBJTlRFUk5BVElPTkFMIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisvLyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworLy8gTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKy8vIERBTUFHRS4K
Ky8vCisvLyAqIEVjbWEgSW50ZXJuYXRpb25hbCBTdGFuZGFyZHMgaGVyZWFmdGVyIG1lYW5zIEVj
bWEgSW50ZXJuYXRpb25hbCBTdGFuZGFyZHMgYXMgd2VsbCBhcyBFY21hIFRlY2huaWNhbCBSZXBv
cnRzCisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitpZiAoJHZtLmljdVZlcnNpb24oKSA+PSA2NCkgeworICAgIHsKKyAg
ICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM0KTsK
KworICAgICAgICBsZXQgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwgeyB5ZWFy
OiAibnVtZXJpYyIsIG1vbnRoOiAic2hvcnQiLCBkYXk6ICJudW1lcmljIiB9KTsKKyAgICAgICAg
c2hvdWxkQmUoZHRmLmZvcm1hdFJhbmdlKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0KGRhdGUpKTsK
KworICAgICAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1pbnV0ZTog
Im51bWVyaWMiLCBzZWNvbmQ6ICJudW1lcmljIiB9KTsKKyAgICAgICAgc2hvdWxkQmUoZHRmLmZv
cm1hdFJhbmdlKGRhdGUsIGRhdGUpLCBkdGYuZm9ybWF0KGRhdGUpKTsKKworICAgICAgICBkdGYg
PSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1vbnRoOiAic2hvcnQiLCBkYXk6ICJu
dW1lcmljIiwgbWludXRlOiAibnVtZXJpYyIgfSk7CisgICAgICAgIHNob3VsZEJlKGR0Zi5mb3Jt
YXRSYW5nZShkYXRlLCBkYXRlKSwgZHRmLmZvcm1hdChkYXRlKSk7CisKKyAgICAgICAgZHRmID0g
bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwgeyBkYXRlU3R5bGU6ICJsb25nIiwgdGltZVN0
eWxlOiAic2hvcnQiIH0pOworICAgICAgICBzaG91bGRCZShkdGYuZm9ybWF0UmFuZ2UoZGF0ZSwg
ZGF0ZSksIGR0Zi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gZGF0
ZTEgYW5kIGRhdGUyIGFyZSBwcmFjdGljYWxseSBlcXVhbCBzaW5jZSB0aGUgZm9sbG93aW5nIGZv
cm1hdHMgZG8gbm90IHNob3cgbWlsbGlzZWNvbmRzLgorICAgICAgICBjb25zdCBkYXRlMSA9IG5l
dyBEYXRlKDIwMTksIDcsIDEwLCAgMSwgMiwgMywgMjM0KTsKKyAgICAgICAgY29uc3QgZGF0ZTIg
PSBuZXcgRGF0ZSgyMDE5LCA3LCAxMCwgIDEsIDIsIDMsIDIzNSk7CisKKyAgICAgICAgc2hvdWxk
QmUoZGF0ZTEuZ2V0VGltZSgpICE9PSBkYXRlMi5nZXRUaW1lKCksIHRydWUpOworCisgICAgICAg
IGxldCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IHllYXI6ICJudW1lcmlj
IiwgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVyaWMiIH0pOworICAgICAgICBzaG91bGRCZShk
dGYuZm9ybWF0UmFuZ2UoZGF0ZTEsIGRhdGUyKSwgZHRmLmZvcm1hdChkYXRlMSkpOworCisgICAg
ICAgIGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsgbWludXRlOiAibnVtZXJp
YyIsIHNlY29uZDogIm51bWVyaWMiIH0pOworICAgICAgICBzaG91bGRCZShkdGYuZm9ybWF0UmFu
Z2UoZGF0ZTEsIGRhdGUyKSwgZHRmLmZvcm1hdChkYXRlMSkpOworCisgICAgICAgIGR0ZiA9IG5l
dyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVy
aWMiLCBtaW51dGU6ICJudW1lcmljIiB9KTsKKyAgICAgICAgc2hvdWxkQmUoZHRmLmZvcm1hdFJh
bmdlKGRhdGUxLCBkYXRlMiksIGR0Zi5mb3JtYXQoZGF0ZTEpKTsKKworICAgICAgICBkdGYgPSBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxvbmciLCB0aW1lU3R5
bGU6ICJzaG9ydCIgfSk7CisgICAgICAgIHNob3VsZEJlKGR0Zi5mb3JtYXRSYW5nZShkYXRlMSwg
ZGF0ZTIpLCBkdGYuZm9ybWF0KGRhdGUxKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXQtcmFuZ2UtdG8tcGFydHMtc2hvdWxk
LWNoZWNrLXByYWN0aWNhbGx5LWVxdWFsLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRldGlt
ZWZvcm1hdC1mb3JtYXQtcmFuZ2UtdG8tcGFydHMtc2hvdWxkLWNoZWNrLXByYWN0aWNhbGx5LWVx
dWFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5YmE2OTA4ZTk2MzU0NDIxOTRjMTljMTk1NzlkMDc4ZWM5OTAz
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0
LWZvcm1hdC1yYW5nZS10by1wYXJ0cy1zaG91bGQtY2hlY2stcHJhY3RpY2FsbHktZXF1YWwuanMK
QEAgLTAsMCArMSw4NCBAQAorLy8gVGhlIDw8IFNvZnR3YXJlIGlkZW50aWZpZWQgYnkgcmVmZXJl
bmNlIHRvIHRoZSBFY21hIFN0YW5kYXJkKiAoIlNvZnR3YXJlKSI+PiAgaXMgcHJvdGVjdGVkIGJ5
IGNvcHlyaWdodCBhbmQgaXMgYmVpbmcKKy8vIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAgIkJT
RCBMaWNlbnNlIiwgaW5jbHVkZWQgYmVsb3cuIFRoaXMgU29mdHdhcmUgbWF5IGJlIHN1YmplY3Qg
dG8gdGhpcmQgcGFydHkgcmlnaHRzIChyaWdodHMKKy8vIGZyb20gcGFydGllcyBvdGhlciB0aGFu
IEVjbWEgSW50ZXJuYXRpb25hbCksIGluY2x1ZGluZyBwYXRlbnQgcmlnaHRzLCBhbmQgbm8gbGlj
ZW5zZXMgdW5kZXIgc3VjaCB0aGlyZCBwYXJ0eSByaWdodHMKKy8vIGFyZSBncmFudGVkIHVuZGVy
IHRoaXMgbGljZW5zZSBldmVuIGlmIHRoZSB0aGlyZCBwYXJ0eSBjb25jZXJuZWQgaXMgYSBtZW1i
ZXIgb2YgRWNtYSBJbnRlcm5hdGlvbmFsLiAgU0VFIFRIRSBFQ01BCisvLyBDT0RFIE9GIENPTkRV
Q1QgSU4gUEFURU5UIE1BVFRFUlMgQVZBSUxBQkxFIEFUIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5h
dGlvbmFsLm9yZy9tZW1lbnRvL2NvZGVvZmNvbmR1Y3QuaHRtIEZPUgorLy8gSU5GT1JNQVRJT04g
UkVHQVJESU5HIFRIRSBMSUNFTlNJTkcgT0YgUEFURU5UIENMQUlNUyBUSEFUIEFSRSBSRVFVSVJF
RCBUTyBJTVBMRU1FTlQgRUNNQSBJTlRFUk5BVElPTkFMIFNUQU5EQVJEUyouCisvLworLy8gQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTMgRWNtYSBJbnRlcm5hdGlvbmFsCisvLyBDb3B5cmlnaHQgKEMp
IDIwMjEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUKKy8vIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisvLyAxLiAgIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKy8v
ICAgICAgZGlzY2xhaW1lci4KKy8vIDIuICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlCisvLyAgICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorLy8gMy4gICBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhdXRob3JzIG5vciBF
Y21hIEludGVybmF0aW9uYWwgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorLy8gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIEVDTUEgSU5URVJOQVRJT05BTCAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorLy8gU0hBTEwg
RUNNQSBJTlRFUk5BVElPTkFMIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisv
LyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORworLy8gTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKy8vIERBTUFHRS4KKy8vCisvLyAqIEVjbWEgSW50
ZXJuYXRpb25hbCBTdGFuZGFyZHMgaGVyZWFmdGVyIG1lYW5zIEVjbWEgSW50ZXJuYXRpb25hbCBT
dGFuZGFyZHMgYXMgd2VsbCBhcyBFY21hIFRlY2huaWNhbCBSZXBvcnRzCisKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiogemlwKGEsIGIpIHsKKyAgICBzaG91bGRCZShhLmxlbmd0aCwgYi5sZW5ndGgpOwor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICB5aWVsZCBb
aSwgYVtpXSwgYltpXV07CisgICAgfQorfQorCitmdW5jdGlvbiBjb21wYXJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBmb3IgKGNvbnN0IFtpLCBhY3R1YWxFbnRyeSwgZXhwZWN0ZWRFbnRyeV0g
b2YgemlwKGFjdHVhbCwgZXhwZWN0ZWQpKSB7CisgICAgICAgIHNob3VsZEJlKGFjdHVhbEVudHJ5
LnR5cGUsIGV4cGVjdGVkRW50cnkudHlwZSk7CisgICAgICAgIHNob3VsZEJlKGFjdHVhbEVudHJ5
LnZhbHVlLCBleHBlY3RlZEVudHJ5LnZhbHVlKTsKKyAgICB9Cit9CisKK2lmICgkdm0uaWN1VmVy
c2lvbigpID49IDY0KSB7CisgICAgeworICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMjAx
OSwgNywgMTAsICAxLCAyLCAzLCAyMzQpOworCisgICAgICAgIGxldCBkdGYgPSBuZXcgSW50bC5E
YXRlVGltZUZvcm1hdCgiZW4iLCB7IHllYXI6ICJudW1lcmljIiwgbW9udGg6ICJzaG9ydCIsIGRh
eTogIm51bWVyaWMiIH0pOworICAgICAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFydHMo
ZGF0ZSwgZGF0ZSksIGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpKTsKKworICAgICAgICBkdGYgPSBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IG1pbnV0ZTogIm51bWVyaWMiLCBzZWNvbmQ6
ICJudW1lcmljIiB9KTsKKyAgICAgICAgY29tcGFyZShkdGYuZm9ybWF0UmFuZ2VUb1BhcnRzKGRh
dGUsIGRhdGUpLCBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSk7CisKKyAgICAgICAgZHRmID0gbmV3
IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwgeyBtb250aDogInNob3J0IiwgZGF5OiAibnVtZXJp
YyIsIG1pbnV0ZTogIm51bWVyaWMiIH0pOworICAgICAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5n
ZVRvUGFydHMoZGF0ZSwgZGF0ZSksIGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpKTsKKworICAgICAg
ICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxvbmci
LCB0aW1lU3R5bGU6ICJzaG9ydCIgfSk7CisgICAgICAgIGNvbXBhcmUoZHRmLmZvcm1hdFJhbmdl
VG9QYXJ0cyhkYXRlLCBkYXRlKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0ZSkpOworICAgIH0KKyAg
ICB7CisgICAgICAgIC8vIGRhdGUxIGFuZCBkYXRlMiBhcmUgcHJhY3RpY2FsbHkgZXF1YWwgc2lu
Y2UgdGhlIGZvbGxvd2luZyBmb3JtYXRzIGRvIG5vdCBzaG93IG1pbGxpc2Vjb25kcy4KKyAgICAg
ICAgY29uc3QgZGF0ZTEgPSBuZXcgRGF0ZSgyMDE5LCA3LCAxMCwgIDEsIDIsIDMsIDIzNCk7Cisg
ICAgICAgIGNvbnN0IGRhdGUyID0gbmV3IERhdGUoMjAxOSwgNywgMTAsICAxLCAyLCAzLCAyMzUp
OworCisgICAgICAgIGxldCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IHll
YXI6ICJudW1lcmljIiwgbW9udGg6ICJzaG9ydCIsIGRheTogIm51bWVyaWMiIH0pOworICAgICAg
ICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFydHMoZGF0ZTEsIGRhdGUyKSwgZHRmLmZvcm1h
dFRvUGFydHMoZGF0ZTEpKTsKKworICAgICAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1h
dCgiZW4iLCB7IG1pbnV0ZTogIm51bWVyaWMiLCBzZWNvbmQ6ICJudW1lcmljIiB9KTsKKyAgICAg
ICAgY29tcGFyZShkdGYuZm9ybWF0UmFuZ2VUb1BhcnRzKGRhdGUxLCBkYXRlMiksIGR0Zi5mb3Jt
YXRUb1BhcnRzKGRhdGUxKSk7CisKKyAgICAgICAgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3Jt
YXQoImVuIiwgeyBtb250aDogInNob3J0IiwgZGF5OiAibnVtZXJpYyIsIG1pbnV0ZTogIm51bWVy
aWMiIH0pOworICAgICAgICBjb21wYXJlKGR0Zi5mb3JtYXRSYW5nZVRvUGFydHMoZGF0ZTEsIGRh
dGUyKSwgZHRmLmZvcm1hdFRvUGFydHMoZGF0ZTEpKTsKKworICAgICAgICBkdGYgPSBuZXcgSW50
bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7IGRhdGVTdHlsZTogImxvbmciLCB0aW1lU3R5bGU6ICJz
aG9ydCIgfSk7CisgICAgICAgIGNvbXBhcmUoZHRmLmZvcm1hdFJhbmdlVG9QYXJ0cyhkYXRlMSwg
ZGF0ZTIpLCBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlMSkpOworICAgIH0KK30K
</data>
<flag name="review"
          id="434795"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>