<?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>202318</bug_id>
          
          <creation_ts>2019-09-27 09:57:26 -0700</creation_ts>
          <short_desc>Pages using WebGLRenderingContext fail to enter the back/forward cache</short_desc>
          <delta_ts>2019-09-27 15:42:29 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574853</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 09:57:26 -0700</bug_when>
    <thetext>Pages using WebGLRenderingContext fail to enter the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574855</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 09:57:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/55783612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574889</commentid>
    <comment_count>2</comment_count>
      <attachid>379742</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 10:59:35 -0700</bug_when>
    <thetext>Created attachment 379742
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574899</commentid>
    <comment_count>3</comment_count>
      <attachid>379745</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 11:31:19 -0700</bug_when>
    <thetext>Created attachment 379745
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574913</commentid>
    <comment_count>4</comment_count>
      <attachid>379750</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 11:45:37 -0700</bug_when>
    <thetext>Created attachment 379750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574989</commentid>
    <comment_count>5</comment_count>
      <attachid>379769</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 14:58:24 -0700</bug_when>
    <thetext>Created attachment 379769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574990</commentid>
    <comment_count>6</comment_count>
      <attachid>379770</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 14:59:22 -0700</bug_when>
    <thetext>Created attachment 379770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574991</commentid>
    <comment_count>7</comment_count>
      <attachid>379771</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 15:00:39 -0700</bug_when>
    <thetext>Created attachment 379771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575003</commentid>
    <comment_count>8</comment_count>
      <attachid>379771</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-27 15:42:27 -0700</bug_when>
    <thetext>Comment on attachment 379771
Patch

Clearing flags on attachment: 379771

Committed r250464: &lt;https://trac.webkit.org/changeset/250464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575004</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-27 15:42:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379742</attachid>
            <date>2019-09-27 10:59:35 -0700</date>
            <delta_ts>2019-09-27 11:31:19 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202318_WebGLRenderingContext_wip.patch</filename>
            <type>text/plain</type>
            <size>15921</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKaW5kZXggMDM3MDNiNjJi
YzYuLmNlYWViY2Q5NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVl
LmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWNs
YXNzIERvY3VtZW50RXZlbnRRdWV1ZTo6VGltZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFibGVU
aW1lciB7CitjbGFzcyBEb2N1bWVudEV2ZW50UXVldWU6OlRpbWVyIGZpbmFsIDogcHVibGljIFN1
c3BlbmRhYmxlVGltZXJCYXNlIHsKIHB1YmxpYzoKICAgICBUaW1lcihEb2N1bWVudEV2ZW50UXVl
dWUmIGV2ZW50UXVldWUpCi0gICAgICAgIDogU3VzcGVuZGFibGVUaW1lcihldmVudFF1ZXVlLm1f
ZG9jdW1lbnQpCisgICAgICAgIDogU3VzcGVuZGFibGVUaW1lckJhc2UoJmV2ZW50UXVldWUubV9k
b2N1bWVudCkKICAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRRdWV1ZSkKICAgICB7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCA2ZWVhOTFmYjE5OS4uNDcyN2RmNmQxNWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCkBAIC02MzIsOCArNjMyLDkgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShDYW4KIAog
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52
YXNCYXNlJiBjYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6
IEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCi0gICAgLCBtX2Rpc3BhdGNo
Q29udGV4dExvc3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQorICAgICwgbV9k
aXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExv
c3RFdmVudCkKKyAgICAsIG1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXIoY2FudmFz
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnQpCisgICAgLCBtX3Jlc3RvcmVUaW1lcihj
YW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmli
dXRlcykKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxs
b3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbih0cnVlKQpA
QCAtNjQ2LDggKzY0Nyw5IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZh
cywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMgYXR0cmlidXRlcykKICAgICA6IEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52
YXMpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKLSAgICAsIG1fZGlzcGF0Y2hD
b250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
aXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCisgICAgLCBtX2Rp
c3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9z
dEV2ZW50KQorICAgICwgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lcihjYW52YXMu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCkKKyAgICAsIG1fcmVzdG9yZVRpbWVyKGNh
bnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VDYWNo
ZSg0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiAgICAgLCBtX251bUdMRXJyb3Jz
VG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCkBAIC01MTk3LDgg
KzUxOTksMTcgQEAgY29uc3QgY2hhciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6
IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit7CisgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Cit9
CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdW1lKCkKK3sKKyAgICBtX2lz
U3VzcGVuZGVkID0gZmFsc2U7CiB9CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKQEAgLTYxNTEsNiArNjE2Miw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdG9yZVN0YXRlc0FmdGVyVmVydGV4
QXR0cmliMFNpbXVsYXRpb24oKQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRp
c3BhdGNoQ29udGV4dExvc3RFdmVudCgpCiB7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1faXNTdXNw
ZW5kZWQpOwogICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKICAgICBpZiAoIWNhbnZh
cykKICAgICAgICAgcmV0dXJuOwpAQCAtNjE2NCw2ICs2MTc2LDcgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQoKQogCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQoKQogeworICAgIFJFTEVB
U0VfQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKICAgICBBU1NFUlQobV9jb250ZXh0TG9zdCk7CiAg
ICAgaWYgKCFtX2NvbnRleHRMb3N0KQogICAgICAgICByZXR1cm47CkBAIC02NTQ1LDYgKzY1NTgs
MTMgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWN5Y2xlQ29udGV4dCgpCiAK
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbigpCiB7CisgICAgaWYgKCFtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGlt
ZXIuc3RhcnRPbmVTaG90KDBfcyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCgh
bV9pc1N1c3BlbmRlZCk7CiAgICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOwogICAgIGlm
ICghY2FudmFzKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggNzlmZDRlN2QzMjAu
LjcwZGI2ZjhjMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlN1c3BlbmRhYmxl
VGltZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5j
bHVkZSAiV2ViR0xCdWZmZXIuaCIKQEAgLTM5MSw2ICszOTIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVu
c2lvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBh
ZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKICAgICB2b2lkIGFkZENvbnRleHRP
YmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CkBAIC00NTEsOSArNDU0LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICAvLyBsaWtlbHkgdGhhdCB0aGVyZSdzIG5vIEphdmFTY3JpcHQgb24gdGhlIHN0YWNr
LCBidXQgdGhhdCBtaWdodCBiZSBkZXBlbmRlbnQKICAgICAvLyBvbiBob3cgZXhhY3RseSB0aGUg
cGxhdGZvcm0gZGlzY292ZXJzIHRoYXQgdGhlIGNvbnRleHQgd2FzIGxvc3QuIEZvciBiZXR0ZXIK
ICAgICAvLyBwb3J0YWJpbGl0eSB3ZSBhbHdheXMgZGVmZXIgdGhlIGRpc3BhdGNoIG9mIHRoZSBl
dmVudC4KLSAgICBUaW1lciBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyOworICAgIFN1
c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsKKyAgICBTdXNw
ZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXI7CiAgICAgYm9v
bCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKLSAgICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsK
KyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fcmVzdG9yZVRpbWVyOwogCiAgICAgYm9vbCBtX25lZWRz
VXBkYXRlOwogICAgIGJvb2wgbV9tYXJrZWRDYW52YXNEaXJ0eTsKQEAgLTgwNiwxMCArODEwLDYg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgdmFsaWRhdGVTaW11bGF0ZWRWZXJ0ZXhBdHRyaWIwKEdD
M0R1aW50IG51bVZlcnRleCk7CiAgICAgdm9pZCByZXN0b3JlU3RhdGVzQWZ0ZXJWZXJ0ZXhBdHRy
aWIwU2ltdWxhdGlvbigpOwogCi0gICAgdm9pZCBkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQoKTsK
LSAgICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9uIGFmdGVyIGNvbnRleHQgbG9zdC4KLSAgICB2
b2lkIG1heWJlUmVzdG9yZUNvbnRleHQoKTsKLQogICAgIC8vIFdyYXBwZXIgZm9yIEdyYXBoaWNz
Q29udGV4dDNEOjpzeW50aGVzaXplR0xFcnJvciB0aGF0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUg
SmF2YVNjcmlwdCBjb25zb2xlLgogICAgIGVudW0gQ29uc29sZURpc3BsYXlQcmVmZXJlbmNlIHsg
RGlzcGxheUluQ29uc29sZSwgRG9udERpc3BsYXlJbkNvbnNvbGUgfTsKICAgICB2b2lkIHN5bnRo
ZXNpemVHTEVycm9yKEdDM0RlbnVtLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNo
YXIqIGRlc2NyaXB0aW9uLCBDb25zb2xlRGlzcGxheVByZWZlcmVuY2UgPSBEaXNwbGF5SW5Db25z
b2xlKTsKQEAgLTg0Miw2ICs4NDIsMTEgQEAgcHJvdGVjdGVkOgogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiB1bnNpZ25lZCBnZXRNYXhJbmRleChjb25zdCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4gZWxlbWVudEFycmF5QnVmZmVyLCBHQzNEaW50cHRyIHVvZmZzZXQsIEdDM0RzaXplaSBuKTsK
IAogcHJpdmF0ZToKKyAgICB2b2lkIGRpc3BhdGNoQ29udGV4dExvc3RFdmVudCgpOworICAgIHZv
aWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KCk7CisgICAgLy8gSGVscGVyIGZvciByZXN0
b3JhdGlvbiBhZnRlciBjb250ZXh0IGxvc3QuCisgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0
KCk7CisKICAgICBib29sIHZhbGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmFtZSwgR0MzRGVudW0gdHlwZSwgT3B0aW9uYWw8SlNDOjpUeXBlZEFycmF5VHlwZT4pOwog
ICAgIHZvaWQgcmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKTsKICAgICB2b2lkIGNoZWNr
Rm9yQ29udGV4dExvc3NIYW5kbGluZygpOwpAQCAtODUwLDYgKzg1NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBXZWJHTFN0YXRlVHJhY2tlcjo6VG9rZW4gbV90cmFja2VyVG9rZW47CiAgICAgVGltZXIg
bV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lcjsKKyAgICBib29sIG1faXNTdXNwZW5k
ZWQgeyBmYWxzZSB9OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCmluZGV4IDdmNTc1MzdkMzQzLi5kZDFlOWRiYTE5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01UaW1lci5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOgogYm9vbCBOZXN0ZWRUaW1l
cnNNYXA6OmlzVHJhY2tpbmdOZXN0ZWRUaW1lcnMgPSBmYWxzZTsKIAogRE9NVGltZXI6OkRPTVRp
bWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQot
ICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0KQorICAgIDogU3VzcGVuZGFibGVUaW1lckJh
c2UoJmNvbnRleHQpCiAgICAgLCBtX25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xl
dmVsKCkpCiAgICAgLCBtX2FjdGlvbihXVEZNb3ZlKGFjdGlvbikpCiAgICAgLCBtX29yaWdpbmFs
SW50ZXJ2YWwoaW50ZXJ2YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKaW5kZXggYjk3NTVhNzk1YjYu
LjdkNDgwMWZmMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCkBAIC00MCw3ICs0MCw3IEBAIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBTY2hlZHVsZWRB
Y3Rpb247CiAKLWNsYXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NVGlt
ZXI+LCBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CitjbGFzcyBET01UaW1lciBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXJCYXNlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShET01UaW1lcik7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBp
c0RPTVRpbWVyc1Rocm90dGxpbmdFbmFibGVkKERvY3VtZW50JikgY29uc3Q7CiAgICAgdm9pZCB1
cGRhdGVUaHJvdHRsaW5nU3RhdGVJZk5lY2Vzc2FyeShjb25zdCBET01UaW1lckZpcmVTdGF0ZSYp
OwogCi0gICAgLy8gU3VzcGVuZGFibGVUaW1lcgorICAgIC8vIFN1c3BlbmRhYmxlVGltZXJCYXNl
CiAgICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRl
OwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPE1vbm90b25pY1RpbWU+IGFsaWduZWRGaXJl
VGltZShNb25vdG9uaWNUaW1lKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuY3BwCmluZGV4IDc2ZWQxOTdhZmJhLi5lN2U1MTdiMzNhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCkBAIC0zMSwxOSArMzEsMTkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TdXNwZW5kYWJsZVRpbWVyOjpTdXNwZW5kYWJsZVRp
bWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmpl
Y3QoJmNvbnRleHQpCitTdXNwZW5kYWJsZVRpbWVyQmFzZTo6U3VzcGVuZGFibGVUaW1lckJhc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogewogfQogCi1TdXNwZW5kYWJsZVRpbWVyOjp+U3VzcGVuZGFibGVUaW1lcigpID0g
ZGVmYXVsdDsKK1N1c3BlbmRhYmxlVGltZXJCYXNlOjp+U3VzcGVuZGFibGVUaW1lckJhc2UoKSA9
IGRlZmF1bHQ7CiAKLWJvb2wgU3VzcGVuZGFibGVUaW1lcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKK2Jvb2wgU3VzcGVuZGFibGVUaW1lckJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGlzQWN0aXZlKCk7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1l
cjo6c3RvcCgpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpzdG9wKCkKIHsKICAgICBpZiAo
IW1fc3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKQEAgLTU2LDcgKzU2LDcg
QEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdG9wKCkKICAgICBkaWRTdG9wKCk7CiB9CiAKLXZv
aWQgU3VzcGVuZGFibGVUaW1lcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQordm9pZCBT
dXNwZW5kYWJsZVRpbWVyQmFzZTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogewogICAg
IEFTU0VSVCghbV9zdXNwZW5kZWQpOwogICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKQEAgLTY5LDcg
KzY5LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNp
b24pCiAgICAgfQogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnJlc3VtZSgpCit2b2lkIFN1
c3BlbmRhYmxlVGltZXJCYXNlOjpyZXN1bWUoKQogewogICAgIEFTU0VSVChtX3N1c3BlbmRlZCk7
CiAgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKQEAgLTc4LDE2ICs3OCwxNiBAQCB2b2lkIFN1c3Bl
bmRhYmxlVGltZXI6OnJlc3VtZSgpCiAgICAgICAgIHN0YXJ0KG1fc2F2ZWROZXh0RmlyZUludGVy
dmFsLCBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwpOwogfQogCi1ib29sIFN1c3BlbmRhYmxlVGltZXI6
OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAorYm9vbCBTdXNwZW5kYWJs
ZVRpbWVyQmFzZTo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6ZGlkU3RvcCgpCit2
b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpkaWRTdG9wKCkKIHsKIH0KIAotdm9pZCBTdXNwZW5k
YWJsZVRpbWVyOjpjYW5jZWwoKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y2FuY2VsKCkK
IHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKQEAg
LTk1LDcgKzk1LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpjYW5jZWwoKQogICAgICAgICBt
X3N1c3BlbmRlZCA9IGZhbHNlOwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVw
ZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNl
OjpzdGFydFJlcGVhdGluZyhTZWNvbmRzIHJlcGVhdEludGVydmFsKQogewogICAgIGlmICghbV9z
dXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2
YWwpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBl
YXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkKICAgICB9CiB9CiAKLXZvaWQgU3VzcGVuZGFi
bGVUaW1lcjo6c3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwpCit2b2lkIFN1c3BlbmRhYmxl
VGltZXJCYXNlOjpzdGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkKIHsKICAgICBpZiAoIW1f
c3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CkBA
IC0xMTcsNyArMTE3LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QoU2Vj
b25kcyBpbnRlcnZhbCkKICAgICB9CiB9CiAKLVNlY29uZHMgU3VzcGVuZGFibGVUaW1lcjo6cmVw
ZWF0SW50ZXJ2YWwoKSBjb25zdAorU2Vjb25kcyBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6cmVwZWF0
SW50ZXJ2YWwoKSBjb25zdAogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIHJldHVy
biBUaW1lckJhc2U6OnJlcGVhdEludGVydmFsKCk7CkBAIC0xMjYsNyArMTI2LDcgQEAgU2Vjb25k
cyBTdXNwZW5kYWJsZVRpbWVyOjpyZXBlYXRJbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIDBf
czsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKFNlY29u
ZHMgZGVsdGEpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFs
KFNlY29uZHMgZGVsdGEpCiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJC
YXNlOjphdWdtZW50RmlyZUludGVydmFsKGRlbHRhKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lk
IFN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKICAg
ICB9CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudFJlcGVhdEludGVydmFsKFNl
Y29uZHMgZGVsdGEpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50
ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBU
aW1lckJhc2U6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChkZWx0YSk7CkBAIC0xNTMsNCArMTUzLDkg
QEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBk
ZWx0YSkKICAgICB9CiB9CiAKK2NvbnN0IGNoYXIqIFN1c3BlbmRhYmxlVGltZXI6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiU3VzcGVuZGFibGVUaW1lciI7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3VzcGVuZGFibGVUaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmgKaW5kZXggM2MzZDQ5ZTA1OGEuLmYzZWYxMjMwMGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1N1c3BlbmRhYmxlVGltZXIuaApAQCAtMjksMjAgKzI5LDIxIEBACiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgU3VzcGVuZGFibGVUaW1lciA6IHByaXZhdGUgVGltZXJCYXNlLCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0IHsKK2NsYXNzIFN1c3BlbmRhYmxlVGltZXJCYXNlIDogcHJpdmF0ZSBUaW1lckJh
c2UsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IFN1c3BlbmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflN1c3BlbmRhYmxlVGltZXIoKTsKKyAgICBleHBsaWNp
dCBTdXNwZW5kYWJsZVRpbWVyQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmly
dHVhbCB+U3VzcGVuZGFibGVUaW1lckJhc2UoKTsKIAogICAgIC8vIEEgaG9vayBmb3IgZGVyaXZl
ZCBjbGFzc2VzIHRvIHBlcmZvcm0gY2xlYW51cC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgp
OwogCi0gICAgLy8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFi
bGVUaW1lciBjbGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgorICAgIC8v
IFBhcnQgb2YgVGltZXJCYXNlIGludGVyZmFjZSB1c2VkIGJ5IFN1c3BlbmRhYmxlVGltZXJCYXNl
IGNsaWVudHMsIG1vZGlmaWVkIHRvIHdvcmsgd2hlbiBzdXNwZW5kZWQuCiAgICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIFRpbWVyQmFzZTo6aXNBY3RpdmUoKSB8fCAobV9zdXNwZW5k
ZWQgJiYgbV9zYXZlZElzQWN0aXZlKTsgfQogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX3N1c3BlbmRlZDsgfQogCkBAIC03Nyw0ICs3OCwzMSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zYXZlZElzQWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKK2NsYXNzIFN1c3BlbmRhYmxl
VGltZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lckJhc2UgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZp
cmVkQ2xhc3MsIHR5cGVuYW1lIFRpbWVyRmlyZWRCYXNlQ2xhc3M+CisgICAgU3VzcGVuZGFibGVU
aW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaW1lckZpcmVkQ2xhc3MmIG9i
amVjdCwgdm9pZCAoVGltZXJGaXJlZEJhc2VDbGFzczo6KmZ1bmN0aW9uKSgpKQorICAgICAgICA6
IFN1c3BlbmRhYmxlVGltZXJCYXNlKGNvbnRleHQpCisgICAgICAgICwgbV9mdW5jdGlvbihzdGQ6
OmJpbmQoZnVuY3Rpb24sICZvYmplY3QpKQorICAgIHsKKyAgICB9CisKKyAgICBTdXNwZW5kYWJs
ZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFdURjo6RnVuY3Rpb248dm9p
ZCAoKT4mJiBmdW5jdGlvbikKKyAgICAgICAgOiBTdXNwZW5kYWJsZVRpbWVyQmFzZShjb250ZXh0
KQorICAgICAgICAsIG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCisgICAgeworICAgIH0K
KworcHJpdmF0ZToKKyAgICB2b2lkIGZpcmVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIG1fZnVu
Y3Rpb24oKTsKKyAgICB9CisKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CisKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IDA2YzcwMjU1MzA5Li5lZWI0OWFlMWJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAKQEAgLTE0NTUsNyArMTQ1NSw3IEBAIHZvaWQgV2ViVmlldzo6ZnJhbWVSZWN0KFJF
Q1QqIHJlY3QpCiAgICAgOjpHZXRXaW5kb3dSZWN0KG1fdmlld1dpbmRvdywgcmVjdCk7CiB9CiAK
LWNsYXNzIFdpbmRvd0Nsb3NlVGltZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3VzcGVuZGFi
bGVUaW1lciB7CitjbGFzcyBXaW5kb3dDbG9zZVRpbWVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXJCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2luZG93Q2xvc2VU
aW1lciogY3JlYXRlKFdlYlZpZXcqKTsKIApAQCAtMTQ2Niw3ICsxNDY2LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKICAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIldpbmRvd0Nsb3Nl
VGltZXIiOyB9CiAKLSAgICAvLyBTdXNwZW5kYWJsZVRpbWVyIEFQSS4KKyAgICAvLyBTdXNwZW5k
YWJsZVRpbWVyQmFzZSBBUEkuCiAgICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRlOwogCiAgICAgV2Vi
VmlldyogbV93ZWJWaWV3OwpAQCAtMTQ5MSw3ICsxNDkxLDcgQEAgV2luZG93Q2xvc2VUaW1lciog
V2luZG93Q2xvc2VUaW1lcjo6Y3JlYXRlKFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAKIFdpbmRvd0Ns
b3NlVGltZXI6OldpbmRvd0Nsb3NlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgV2ViVmlldyogd2ViVmlldykKLSAgICA6IFN1c3BlbmRhYmxlVGltZXIoY29udGV4dCkKKyAg
ICA6IFN1c3BlbmRhYmxlVGltZXJCYXNlKCZjb250ZXh0KQogICAgICwgbV93ZWJWaWV3KHdlYlZp
ZXcpCiB7CiAgICAgQVNTRVJUX0FSRyh3ZWJWaWV3LCB3ZWJWaWV3KTsKQEAgLTE0OTksNyArMTQ5
OSw3IEBAIFdpbmRvd0Nsb3NlVGltZXI6OldpbmRvd0Nsb3NlVGltZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgV2ViVmlldyogd2ViCiAKIHZvaWQgV2luZG93Q2xvc2VUaW1lcjo6
Y29udGV4dERlc3Ryb3llZCgpCiB7Ci0gICAgU3VzcGVuZGFibGVUaW1lcjo6Y29udGV4dERlc3Ry
b3llZCgpOworICAgIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpjb250ZXh0RGVzdHJveWVkKCk7CiAg
ICAgZGVsZXRlIHRoaXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAppbmRleCAzNTgx
NzQzNzU0OS4uMjM0ODBiNjhiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKQEAgLTY4
MCw3ICs2ODAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgYm9vbCBzX2FsbG93U2l0ZVNw
ZWNpZmljSGFja3M7CiAKLSAgICBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyKiBtX2Nsb3NlV2lu
ZG93VGltZXIgeyBudWxscHRyIH07CisgICAgV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lckJhc2Uq
IG1fY2xvc2VXaW5kb3dUaW1lciB7IG51bGxwdHIgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VFJB
Q0tNT1VTRUVWRU5UPiBtX21vdXNlT3V0VHJhY2tlcjsKIAogICAgIEhXTkQgbV90b3BMZXZlbFBh
cmVudCB7IG51bGxwdHIgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379745</attachid>
            <date>2019-09-27 11:31:19 -0700</date>
            <delta_ts>2019-09-27 11:45:36 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202318_WebGLRenderingContext_wip.patch</filename>
            <type>text/plain</type>
            <size>16678</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKaW5kZXggMDM3MDNiNjJi
YzYuLmNlYWViY2Q5NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVl
LmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWNs
YXNzIERvY3VtZW50RXZlbnRRdWV1ZTo6VGltZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFibGVU
aW1lciB7CitjbGFzcyBEb2N1bWVudEV2ZW50UXVldWU6OlRpbWVyIGZpbmFsIDogcHVibGljIFN1
c3BlbmRhYmxlVGltZXJCYXNlIHsKIHB1YmxpYzoKICAgICBUaW1lcihEb2N1bWVudEV2ZW50UXVl
dWUmIGV2ZW50UXVldWUpCi0gICAgICAgIDogU3VzcGVuZGFibGVUaW1lcihldmVudFF1ZXVlLm1f
ZG9jdW1lbnQpCisgICAgICAgIDogU3VzcGVuZGFibGVUaW1lckJhc2UoJmV2ZW50UXVldWUubV9k
b2N1bWVudCkKICAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRRdWV1ZSkKICAgICB7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCA2ZWVhOTFmYjE5OS4uMmQxNTBjNzExYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCkBAIC02MzIsMTMgKzYzMiwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKENhbgog
CiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAg
IDogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKLSAgICAsIG1fZGlzcGF0
Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywg
JldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCisgICAgLCBt
X2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0
TG9zdEV2ZW50KQorICAgICwgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lcihjYW52
YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCkKKyAgICAsIG1fcmVzdG9yZVRpbWVy
KGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRy
aWJ1dGVzKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUp
CiAgICAgLCBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyKCp0aGlzLCAmV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nKQogeworICAg
IG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CisgICAg
bV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICBtX3Jlc3RvcmVUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKwogICAgIHJlZ2lzdGVyV2l0aFdl
YkdMU3RhdGVUcmFja2VyKCk7CiAgICAgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1l
ci5zdGFydE9uZVNob3QoY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkpOwogfQpAQCAtNjQ2
LDEzICs2NTEsMTggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdMQ28KIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBS
ZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykK
ICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQotICAgICwgbV9kaXNwYXRjaENvbnRl
eHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3Bh
dGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKKyAgICAsIG1fZGlzcGF0
Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
KnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZl
bnQpCisgICAgLCBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRpbWVyKGNhbnZhcy5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KQorICAgICwgbV9yZXN0b3JlVGltZXIoY2FudmFz
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDQp
CiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKICAgICAsIG1fbnVtR0xFcnJvcnNUb0Nv
bnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1fY2hlY2tG
b3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmcpCiB7CisgICAgbV9kaXNwYXRjaENvbnRl
eHRMb3N0RXZlbnRUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBtX2Rpc3BhdGNoQ29udGV4
dENoYW5nZWRFdmVudFRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOworICAgIG1fcmVzdG9yZVRpbWVy
LnN1c3BlbmRJZk5lZWRlZCgpOworCiAgICAgbV9jb250ZXh0R3JvdXAgPSBXZWJHTENvbnRleHRH
cm91cDo6Y3JlYXRlKCk7CiAgICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRleHQoKnRoaXMpOwog
ICAgIApAQCAtNTE5Nyw4ICs1MjA3LDE3IEBAIGNvbnN0IGNoYXIqIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiBib29sIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAog
ewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlc3Vt
ZSgpCit7CisgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogfQogCiBib29sIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCkBAIC02
MTUxLDYgKzYxNzAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlc3RvcmVT
dGF0ZXNBZnRlclZlcnRleEF0dHJpYjBTaW11bGF0aW9uKCkKIAogdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQoKQogeworICAgIFJFTEVBU0Vf
QVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7
CiAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgIHJldHVybjsKQEAgLTYxNjQsNiArNjE4NCw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50
KCkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0
KCkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9pc1N1c3BlbmRlZCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dExvc3QpOwogICAgIGlmICghbV9jb250ZXh0TG9zdCkKICAgICAgICAgcmV0dXJuOwpA
QCAtNjU0NSw2ICs2NTY2LDEzIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVj
eWNsZUNvbnRleHQoKQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNo
Q29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKQogeworICAgIGlmICghbV9kaXNwYXRjaENvbnRl
eHRDaGFuZ2VkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2Rpc3BhdGNoQ29udGV4
dENoYW5nZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCgpCit7CisgICAg
UkVMRUFTRV9BU1NFUlQoIW1faXNTdXNwZW5kZWQpOwogICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxD
YW52YXMoKTsKICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmlu
ZGV4IDc5ZmQ0ZTdkMzIwLi43MGRiNmY4YzAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNs
dWRlICJTdXNwZW5kYWJsZVRpbWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJX
ZWJHTEFueS5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCkBAIC0zOTEsNiArMzkyLDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRG
b3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN1bWUoKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CiAgICAg
dm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwpAQCAtNDUxLDkgKzQ1
NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gbGlrZWx5IHRoYXQgdGhlcmUncyBubyBKYXZhU2Ny
aXB0IG9uIHRoZSBzdGFjaywgYnV0IHRoYXQgbWlnaHQgYmUgZGVwZW5kZW50CiAgICAgLy8gb24g
aG93IGV4YWN0bHkgdGhlIHBsYXRmb3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBs
b3N0LiBGb3IgYmV0dGVyCiAgICAgLy8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBk
aXNwYXRjaCBvZiB0aGUgZXZlbnQuCi0gICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZl
bnRUaW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50
VGltZXI7CisgICAgU3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVu
dFRpbWVyOwogICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZCB7IGZhbHNlIH07Ci0gICAgVGltZXIg
bV9yZXN0b3JlVGltZXI7CisgICAgU3VzcGVuZGFibGVUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAog
ICAgIGJvb2wgbV9uZWVkc1VwZGF0ZTsKICAgICBib29sIG1fbWFya2VkQ2FudmFzRGlydHk7CkBA
IC04MDYsMTAgKzgxMCw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIHZhbGlkYXRlU2ltdWxhdGVk
VmVydGV4QXR0cmliMChHQzNEdWludCBudW1WZXJ0ZXgpOwogICAgIHZvaWQgcmVzdG9yZVN0YXRl
c0FmdGVyVmVydGV4QXR0cmliMFNpbXVsYXRpb24oKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hDb250
ZXh0TG9zdEV2ZW50KCk7Ci0gICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250
ZXh0IGxvc3QuCi0gICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KCk7Ci0KICAgICAvLyBXcmFw
cGVyIGZvciBHcmFwaGljc0NvbnRleHQzRDo6c3ludGhlc2l6ZUdMRXJyb3IgdGhhdCBzZW5kcyBh
IG1lc3NhZ2UgdG8gdGhlIEphdmFTY3JpcHQgY29uc29sZS4KICAgICBlbnVtIENvbnNvbGVEaXNw
bGF5UHJlZmVyZW5jZSB7IERpc3BsYXlJbkNvbnNvbGUsIERvbnREaXNwbGF5SW5Db25zb2xlIH07
CiAgICAgdm9pZCBzeW50aGVzaXplR0xFcnJvcihHQzNEZW51bSwgY29uc3QgY2hhciogZnVuY3Rp
b25OYW1lLCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiwgQ29uc29sZURpc3BsYXlQcmVmZXJlbmNl
ID0gRGlzcGxheUluQ29uc29sZSk7CkBAIC04NDIsNiArODQyLDExIEBAIHByb3RlY3RlZDoKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdW5zaWduZWQgZ2V0TWF4SW5kZXgoY29uc3QgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciwgR0MzRGludHB0ciB1b2Zmc2V0
LCBHQzNEc2l6ZWkgbik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBkaXNwYXRjaENvbnRleHRMb3N0
RXZlbnQoKTsKKyAgICB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCgpOworICAgIC8v
IEhlbHBlciBmb3IgcmVzdG9yYXRpb24gYWZ0ZXIgY29udGV4dCBsb3N0LgorICAgIHZvaWQgbWF5
YmVSZXN0b3JlQ29udGV4dCgpOworCiAgICAgYm9vbCB2YWxpZGF0ZUFycmF5QnVmZmVyVHlwZShj
b25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHR5cGUsIE9wdGlvbmFsPEpTQzo6VHlw
ZWRBcnJheVR5cGU+KTsKICAgICB2b2lkIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7
CiAgICAgdm9pZCBjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmcoKTsKQEAgLTg1MCw2ICs4NTUs
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRva2VuIG1fdHJhY2tlclRv
a2VuOwogICAgIFRpbWVyIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXI7CisgICAg
Ym9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCA3ZjU3NTM3ZDM0My4uZGQxZTlkYmExOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToK
IGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNraW5nTmVzdGVkVGltZXJzID0gZmFsc2U7CiAK
IERPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6
OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIFNlY29uZHMgaW50ZXJ2YWwsIGJv
b2wgc2luZ2xlU2hvdCkKLSAgICA6IFN1c3BlbmRhYmxlVGltZXIoY29udGV4dCkKKyAgICA6IFN1
c3BlbmRhYmxlVGltZXJCYXNlKCZjb250ZXh0KQogICAgICwgbV9uZXN0aW5nTGV2ZWwoY29udGV4
dC50aW1lck5lc3RpbmdMZXZlbCgpKQogICAgICwgbV9hY3Rpb24oV1RGTW92ZShhY3Rpb24pKQog
ICAgICwgbV9vcmlnaW5hbEludGVydmFsKGludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmlu
ZGV4IGI5NzU1YTc5NWI2Li43ZDQ4MDFmZjMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApAQCAt
NDAsNyArNDAsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50Owog
Y2xhc3MgU2NoZWR1bGVkQWN0aW9uOwogCi1jbGFzcyBET01UaW1lciBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXIgeworY2xhc3MgRE9N
VGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01UaW1lcj4sIHB1YmxpYyBTdXNwZW5k
YWJsZVRpbWVyQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9NVGltZXIpOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNzIsNyArNzIsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgaXNET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9N
VGltZXJGaXJlU3RhdGUmKTsKIAotICAgIC8vIFN1c3BlbmRhYmxlVGltZXIKKyAgICAvLyBTdXNw
ZW5kYWJsZVRpbWVyQmFzZQogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZFN0b3AoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxNb25vdG9uaWNU
aW1lPiBhbGlnbmVkRmlyZVRpbWUoTW9ub3RvbmljVGltZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAppbmRleCA3NmVkMTk3YWZiYS4uZTdl
NTE3YjMzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcApAQCAt
MzEsMTkgKzMxLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3VzcGVuZGFibGVUaW1l
cjo6U3VzcGVuZGFibGVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQotICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorU3VzcGVuZGFibGVUaW1lckJhc2U6OlN1c3Bl
bmRhYmxlVGltZXJCYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCkKIHsKIH0KIAotU3VzcGVuZGFibGVUaW1lcjo6flN1c3Bl
bmRhYmxlVGltZXIoKSA9IGRlZmF1bHQ7CitTdXNwZW5kYWJsZVRpbWVyQmFzZTo6flN1c3BlbmRh
YmxlVGltZXJCYXNlKCkgPSBkZWZhdWx0OwogCi1ib29sIFN1c3BlbmRhYmxlVGltZXI6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0Citib29sIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpoYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiBpc0FjdGl2ZSgpOwogfQogCi12b2lk
IFN1c3BlbmRhYmxlVGltZXI6OnN0b3AoKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6c3Rv
cCgpCiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjpzdG9wKCk7
CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RvcCgpCiAgICAgZGlk
U3RvcCgpOwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikKIHsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKICAgICBtX3N1c3BlbmRlZCA9
IHRydWU7CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3VzcGVuZChS
ZWFzb25Gb3JTdXNwZW5zaW9uKQogICAgIH0KIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpy
ZXN1bWUoKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6cmVzdW1lKCkKIHsKICAgICBBU1NF
UlQobV9zdXNwZW5kZWQpOwogICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CkBAIC03OCwxNiArNzgs
MTYgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpyZXN1bWUoKQogICAgICAgICBzdGFydChtX3Nh
dmVkTmV4dEZpcmVJbnRlcnZhbCwgbV9zYXZlZFJlcGVhdEludGVydmFsKTsKIH0KIAotYm9vbCBT
dXNwZW5kYWJsZVRpbWVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QK
K2Jvb2wgU3VzcGVuZGFibGVUaW1lckJhc2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNp
b24oKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGlt
ZXI6OmRpZFN0b3AoKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6ZGlkU3RvcCgpCiB7CiB9
CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6Y2FuY2VsKCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1l
ckJhc2U6OmNhbmNlbCgpCiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJC
YXNlOjpzdG9wKCk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6Y2Fu
Y2VsKCkKICAgICAgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKIH0KIAotdm9pZCBTdXNwZW5kYWJs
ZVRpbWVyOjpzdGFydFJlcGVhdGluZyhTZWNvbmRzIHJlcGVhdEludGVydmFsKQordm9pZCBTdXNw
ZW5kYWJsZVRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkK
IHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0YXJ0UmVwZWF0
aW5nKHJlcGVhdEludGVydmFsKTsKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFN1c3BlbmRhYmxl
VGltZXI6OnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpCiAgICAgfQogfQog
Ci12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKQor
dm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwp
CiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjpzdGFydE9uZVNo
b3QoaW50ZXJ2YWwpOwpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6
c3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwpCiAgICAgfQogfQogCi1TZWNvbmRzIFN1c3Bl
bmRhYmxlVGltZXI6OnJlcGVhdEludGVydmFsKCkgY29uc3QKK1NlY29uZHMgU3VzcGVuZGFibGVU
aW1lckJhc2U6OnJlcGVhdEludGVydmFsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVk
KQogICAgICAgICByZXR1cm4gVGltZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCgpOwpAQCAtMTI2LDcg
KzEyNiw3IEBAIFNlY29uZHMgU3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWwoKSBjb25z
dAogICAgIHJldHVybiAwX3M7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudEZp
cmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6YXVn
bWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogewogICAgIGlmICghbV9zdXNwZW5kZWQp
CiAgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudEZpcmVJbnRlcnZhbChkZWx0YSk7CkBAIC0xMzks
NyArMTM5LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKFNl
Y29uZHMgZGVsdGEpCiAgICAgfQogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRS
ZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6
YXVnbWVudFJlcGVhdEludGVydmFsKFNlY29uZHMgZGVsdGEpCiB7CiAgICAgaWYgKCFtX3N1c3Bl
bmRlZCkKICAgICAgICAgVGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoZGVsdGEpOwpA
QCAtMTUzLDQgKzE1Myw5IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudFJlcGVhdElu
dGVydmFsKFNlY29uZHMgZGVsdGEpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBTdXNwZW5kYWJs
ZVRpbWVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlN1c3Bl
bmRhYmxlVGltZXIiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3VzcGVuZGFibGVUaW1lci5oCmluZGV4IDNjM2Q0OWUwNThhLi5mM2VmMTIzMDBlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKQEAgLTI5LDIwICsyOSwyMSBAQAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFN1c3BlbmRhYmxlVGltZXIgOiBwcml2YXRlIFRpbWVyQmFz
ZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBTdXNwZW5kYWJsZVRpbWVyQmFzZSA6
IHByaXZhdGUgVGltZXJCYXNlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTdXNwZW5kYWJsZVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5TdXNwZW5kYWJsZVRpbWVy
KCk7CisgICAgZXhwbGljaXQgU3VzcGVuZGFibGVUaW1lckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOworICAgIHZpcnR1YWwgflN1c3BlbmRhYmxlVGltZXJCYXNlKCk7CiAKICAgICAvLyBB
IGhvb2sgZm9yIGRlcml2ZWQgY2xhc3NlcyB0byBwZXJmb3JtIGNsZWFudXAuCiAgICAgdmlydHVh
bCB2b2lkIGRpZFN0b3AoKTsKIAotICAgIC8vIFBhcnQgb2YgVGltZXJCYXNlIGludGVyZmFjZSB1
c2VkIGJ5IFN1c3BlbmRhYmxlVGltZXIgY2xpZW50cywgbW9kaWZpZWQgdG8gd29yayB3aGVuIHN1
c3BlbmRlZC4KKyAgICAvLyBQYXJ0IG9mIFRpbWVyQmFzZSBpbnRlcmZhY2UgdXNlZCBieSBTdXNw
ZW5kYWJsZVRpbWVyQmFzZSBjbGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVk
LgogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBUaW1lckJhc2U6OmlzQWN0aXZl
KCkgfHwgKG1fc3VzcGVuZGVkICYmIG1fc2F2ZWRJc0FjdGl2ZSk7IH0KICAgICBib29sIGlzU3Vz
cGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KIApAQCAtNzcsNCArNzgsMzEg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2F2ZWRJc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCitj
bGFzcyBTdXNwZW5kYWJsZVRpbWVyIGZpbmFsIDogcHVibGljIFN1c3BlbmRhYmxlVGltZXJCYXNl
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzLCB0eXBlbmFtZSBUaW1lckZpcmVkQmFzZUNsYXNzPgor
ICAgIFN1c3BlbmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGlt
ZXJGaXJlZENsYXNzJiBvYmplY3QsIHZvaWQgKFRpbWVyRmlyZWRCYXNlQ2xhc3M6OipmdW5jdGlv
bikoKSkKKyAgICAgICAgOiBTdXNwZW5kYWJsZVRpbWVyQmFzZShjb250ZXh0KQorICAgICAgICAs
IG1fZnVuY3Rpb24oc3RkOjpiaW5kKGZ1bmN0aW9uLCAmb2JqZWN0KSkKKyAgICB7CisgICAgfQor
CisgICAgU3VzcGVuZGFibGVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBX
VEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCisgICAgICAgIDogU3VzcGVuZGFibGVU
aW1lckJhc2UoY29udGV4dCkKKyAgICAgICAgLCBtX2Z1bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24p
KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBmaXJlZCgpIGZpbmFsCisgICAg
eworICAgICAgICBtX2Z1bmN0aW9uKCk7CisgICAgfQorCisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgV1RGOjpGdW5jdGlvbjx2b2lkICgp
PiBtX2Z1bmN0aW9uOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAppbmRleCAwNmM3MDI1NTMwOS4uZWViNDlhZTFiYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCB2b2lkIFdlYlZp
ZXc6OmZyYW1lUmVjdChSRUNUKiByZWN0KQogICAgIDo6R2V0V2luZG93UmVjdChtX3ZpZXdXaW5k
b3csIHJlY3QpOwogfQogCi1jbGFzcyBXaW5kb3dDbG9zZVRpbWVyIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OlN1c3BlbmRhYmxlVGltZXIgeworY2xhc3MgV2luZG93Q2xvc2VUaW1lciBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFdpbmRvd0Nsb3NlVGltZXIqIGNyZWF0ZShXZWJWaWV3Kik7CiAKQEAgLTE0NjYsNyArMTQ2
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICJXaW5kb3dDbG9zZVRpbWVyIjsgfQogCi0gICAgLy8gU3VzcGVuZGFibGVUaW1lciBBUEku
CisgICAgLy8gU3VzcGVuZGFibGVUaW1lckJhc2UgQVBJLgogICAgIHZvaWQgZmlyZWQoKSBvdmVy
cmlkZTsKIAogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKQEAgLTE0OTEsNyArMTQ5MSw3IEBAIFdp
bmRvd0Nsb3NlVGltZXIqIFdpbmRvd0Nsb3NlVGltZXI6OmNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3
KQogfQogCiBXaW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dDbG9zZVRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBTdXNwZW5kYWJsZVRp
bWVyKGNvbnRleHQpCisgICAgOiBTdXNwZW5kYWJsZVRpbWVyQmFzZSgmY29udGV4dCkKICAgICAs
IG1fd2ViVmlldyh3ZWJWaWV3KQogewogICAgIEFTU0VSVF9BUkcod2ViVmlldywgd2ViVmlldyk7
CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBXaW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dDbG9zZVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlZpZXcqIHdlYgogCiB2b2lkIFdp
bmRvd0Nsb3NlVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKQogewotICAgIFN1c3BlbmRhYmxlVGlt
ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKKyAgICBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y29udGV4
dERlc3Ryb3llZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgKaW5kZXggMzU4MTc0Mzc1NDkuLjIzNDgwYjY4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5oCkBAIC02ODAsNyArNjgwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgc3RhdGljIGJv
b2wgc19hbGxvd1NpdGVTcGVjaWZpY0hhY2tzOwogCi0gICAgV2ViQ29yZTo6U3VzcGVuZGFibGVU
aW1lciogbV9jbG9zZVdpbmRvd1RpbWVyIHsgbnVsbHB0ciB9OworICAgIFdlYkNvcmU6OlN1c3Bl
bmRhYmxlVGltZXJCYXNlKiBtX2Nsb3NlV2luZG93VGltZXIgeyBudWxscHRyIH07CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFRSQUNLTU9VU0VFVkVOVD4gbV9tb3VzZU91dFRyYWNrZXI7CiAKICAgICBI
V05EIG1fdG9wTGV2ZWxQYXJlbnQgeyBudWxscHRyIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379750</attachid>
            <date>2019-09-27 11:45:37 -0700</date>
            <delta_ts>2019-09-27 14:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202318-20190927114536.patch</filename>
            <type>text/plain</type>
            <size>23977</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM0Mzc3NTNkZjljMjYy
ZDAxN2Y4MWRiYWJmNDlmMGEwMzIxNzViOC4uN2YxZTQ3NzE3NTYyMTYyNTVhZGFhMjlhZDA3ODBi
M2E0NTJlYmU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgdXNpbmcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IGZhaWwgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4MzYxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBwYWdlcyB3aXRoIGEgV2ViR0xSZW5kZXJpbmdD
b250ZXh0IHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgYnkgdXBkYXRpbmcgdGhlCisg
ICAgICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZSBTdXNwZW5kYWJsZVRpbWVycyB0byBmaXJlIEpT
IGV2ZW50cy4gVGhpcyBndWFyYW50ZWVzIHRoYXQgbm8gZXZlbnRzCisgICAgICAgIHdpbGwgYmUg
ZmlyZWQgKGFuZCB0aHVzIG5vIEpTIHdpbGwgcnVuKSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4K
KworICAgICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRo
ZXIuY29tIGFuZCBmYWNlYm9vay5jb20gZnJvbSBlbnRlcmluZyB0aGUKKyAgICAgICAgYmFjay9m
b3J3YXJkIGNhY2hlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13
ZWJnbC1wYWdlLWNhY2hlLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUu
Y3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN1c3BlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJl
c3RvcmVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6
RE9NVGltZXIpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgKiBwYWdlL1N1
c3BlbmRhYmxlVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lckJh
c2U6OlN1c3BlbmRhYmxlVGltZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxl
VGltZXJCYXNlOjpoYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFi
bGVUaW1lckJhc2U6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1l
ckJhc2U6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZTo6
Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdXNwZW5kYWJsZVRpbWVyQmFzZTo6ZGlkU3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyQmFzZTo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxl
VGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJs
ZVRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxl
VGltZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyQmFzZTo6YXVnbWVudEZpcmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdXNwZW5kYWJsZVRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgor
ICAgICAgICAqIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oOgorCiAyMDE5LTA5LTI3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29ya2Vy
cyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggMTc3NTc2NDE2ZjhmYzBhZGU1YTI1MGViMjBmZDQ2Yjk4NDAwNzNlZS4u
ZDdjMTYxMTQzNTkxM2QzNzU4YzNiYTNhNTgyMTkzNWFkNWE5MGMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTI3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgdXNpbmcgV2ViR0xSZW5kZXJpbmdD
b250ZXh0IGZhaWwgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzE4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NTc4MzYxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2luZG93Q2xvc2VUaW1lcjo6
V2luZG93Q2xvc2VUaW1lcik6CisgICAgICAgIChXaW5kb3dDbG9zZVRpbWVyOjpjb250ZXh0RGVz
dHJveWVkKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTktMDktMjUgIEZ1amlpIEhpcm9u
b3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggZm9yIFdpbmRvd3MgcG9ydHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50
UXVldWUuY3BwCmluZGV4IDAzNzAzYjYyYmM2NTA1NTc4YjM4OWI5OTkzOGE0ZGFhYjZkNzZjN2Eu
LmNlYWViY2Q5NjZhM2Q4NGExNDAyYzQzMjhlOWRiYmI4ODhhMTIxYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAotY2xhc3MgRG9jdW1lbnRFdmVudFF1ZXVlOjpUaW1lciBm
aW5hbCA6IHB1YmxpYyBTdXNwZW5kYWJsZVRpbWVyIHsKK2NsYXNzIERvY3VtZW50RXZlbnRRdWV1
ZTo6VGltZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lckJhc2UgewogcHVibGljOgog
ICAgIFRpbWVyKERvY3VtZW50RXZlbnRRdWV1ZSYgZXZlbnRRdWV1ZSkKLSAgICAgICAgOiBTdXNw
ZW5kYWJsZVRpbWVyKGV2ZW50UXVldWUubV9kb2N1bWVudCkKKyAgICAgICAgOiBTdXNwZW5kYWJs
ZVRpbWVyQmFzZSgmZXZlbnRRdWV1ZS5tX2RvY3VtZW50KQogICAgICAgICAsIG1fZXZlbnRRdWV1
ZShldmVudFF1ZXVlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDZlZWE5MWZi
MTk5M2IwNGNlZTM4MDMwMGRhYjc1ZjAyMGVhOTM4YjYuLjJkMTUwYzcxMWMyZGZkOGU4NzNmM2Iw
YzNmMGI2MTk3MDdhZWZjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC02MzIsMTMgKzYzMiwxOCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlKENhbgogCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDb250ZXh0
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250
ZXh0KGNhbnZhcykKLSAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMs
ICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0g
ICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1h
eWJlUmVzdG9yZUNvbnRleHQpCisgICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVy
KGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQorICAgICwgbV9kaXNwYXRjaENv
bnRleHRDaGFuZ2VkRXZlbnRUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWRF
dmVudCkKKyAgICAsIG1fcmVzdG9yZVRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4
dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQogICAgICwgbV9udW1HTEVycm9yc1Rv
Q29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUpCiAgICAgLCBtX2NoZWNrRm9yQ29udGV4dExvc3NI
YW5kbGluZ1RpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tGb3JD
b250ZXh0TG9zc0hhbmRsaW5nKQogeworICAgIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGlt
ZXIuc3VzcGVuZElmTmVlZGVkKCk7CisgICAgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRU
aW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBtX3Jlc3RvcmVUaW1lci5zdXNwZW5kSWZOZWVk
ZWQoKTsKKwogICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7CiAgICAgbV9jaGVj
a0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lci5zdGFydE9uZVNob3QoY2hlY2tDb250ZXh0TG9z
c0hhbmRsaW5nRGVsYXkpOwogfQpAQCAtNjQ2LDEzICs2NTEsMTggQEAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMs
IFdlYkdMQ28KIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4
dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52
YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRl
eHQpKQotICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1f
cmVzdG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0
b3JlQ29udGV4dCkKKyAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoY2FudmFz
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCisgICAgLCBtX2Rpc3BhdGNoQ29udGV4dENo
YW5nZWRFdmVudFRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAm
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KQor
ICAgICwgbV9yZXN0b3JlVGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRo
aXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAg
ICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRl
cykKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dl
ZFRvQ29uc29sZSkKICAgICAsIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIoKnRo
aXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxp
bmcpCiB7CisgICAgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lci5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRpbWVyLnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIG1fcmVzdG9yZVRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOworCiAgICAgbV9j
b250ZXh0R3JvdXAgPSBXZWJHTENvbnRleHRHcm91cDo6Y3JlYXRlKCk7CiAgICAgbV9jb250ZXh0
R3JvdXAtPmFkZENvbnRleHQoKnRoaXMpOwogICAgIApAQCAtNTE5Nyw4ICs1MjA3LDE3IEBAIGNv
bnN0IGNoYXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNhblN1c3BlbmRGb3JE
b2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5
IGFuZCBkbyBiZXR0ZXIgaGVyZS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c3VzcGVuZChSZWFzb25Gb3JT
dXNwZW5zaW9uKQoreworICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOworfQorCit2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlc3VtZSgpCit7CisgICAgbV9pc1N1c3BlbmRlZCA9IGZh
bHNlOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCkBAIC02MTUxLDYgKzYxNzAsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnJlc3RvcmVTdGF0ZXNBZnRlclZlcnRleEF0dHJpYjBTaW11bGF0
aW9uKCkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRM
b3N0RXZlbnQoKQogeworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKICAgICBh
dXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7CiAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgIHJl
dHVybjsKQEAgLTYxNjQsNiArNjE4NCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KCkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9p
c1N1c3BlbmRlZCk7CiAgICAgQVNTRVJUKG1fY29udGV4dExvc3QpOwogICAgIGlmICghbV9jb250
ZXh0TG9zdCkKICAgICAgICAgcmV0dXJuOwpAQCAtNjU0NSw2ICs2NTY2LDEzIEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVjeWNsZUNvbnRleHQoKQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKQog
eworICAgIGlmICghbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRpbWVyLnN0YXJ0T25lU2hv
dCgwX3MpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29u
dGV4dENoYW5nZWRFdmVudCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1faXNTdXNwZW5kZWQp
OwogICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKICAgICBpZiAoIWNhbnZhcykKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDc5ZmQ0ZTdkMzIwNjA5YTQwMTc4YTk0NTlm
OTg2MTM5ZGVmZDVkNzkuLjcwZGI2ZjhjMDJiNDU1YmY1OTA1MjQ1NmI3NzE4YTlhNDA5NWZiYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHUFVCYXNlZENhbnZh
c1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViR0xBbnkuaCIKICNpbmNsdWRlICJXZWJHTEJ1
ZmZlci5oIgpAQCAtMzkxLDYgKzM5Miw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHN0b3AoKSBv
dmVycmlkZTsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRl
OworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFkZFNoYXJlZE9iamVj
dChXZWJHTFNoYXJlZE9iamVjdCYpOwogICAgIHZvaWQgYWRkQ29udGV4dE9iamVjdChXZWJHTENv
bnRleHRPYmplY3QmKTsKQEAgLTQ1MSw5ICs0NTQsMTAgQEAgcHJvdGVjdGVkOgogICAgIC8vIGxp
a2VseSB0aGF0IHRoZXJlJ3Mgbm8gSmF2YVNjcmlwdCBvbiB0aGUgc3RhY2ssIGJ1dCB0aGF0IG1p
Z2h0IGJlIGRlcGVuZGVudAogICAgIC8vIG9uIGhvdyBleGFjdGx5IHRoZSBwbGF0Zm9ybSBkaXNj
b3ZlcnMgdGhhdCB0aGUgY29udGV4dCB3YXMgbG9zdC4gRm9yIGJldHRlcgogICAgIC8vIHBvcnRh
YmlsaXR5IHdlIGFsd2F5cyBkZWZlciB0aGUgZGlzcGF0Y2ggb2YgdGhlIGV2ZW50LgotICAgIFRp
bWVyIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXI7CisgICAgU3VzcGVuZGFibGVUaW1l
ciBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyOworICAgIFN1c3BlbmRhYmxlVGltZXIg
bV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lcjsKICAgICBib29sIG1fcmVzdG9yZUFs
bG93ZWQgeyBmYWxzZSB9OwotICAgIFRpbWVyIG1fcmVzdG9yZVRpbWVyOworICAgIFN1c3BlbmRh
YmxlVGltZXIgbV9yZXN0b3JlVGltZXI7CiAKICAgICBib29sIG1fbmVlZHNVcGRhdGU7CiAgICAg
Ym9vbCBtX21hcmtlZENhbnZhc0RpcnR5OwpAQCAtODA2LDEwICs4MTAsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCB2YWxpZGF0ZVNpbXVsYXRlZFZlcnRleEF0dHJpYjAoR0MzRHVpbnQgbnVtVmVy
dGV4KTsKICAgICB2b2lkIHJlc3RvcmVTdGF0ZXNBZnRlclZlcnRleEF0dHJpYjBTaW11bGF0aW9u
KCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoQ29udGV4dExvc3RFdmVudCgpOwotICAgIC8vIEhlbHBl
ciBmb3IgcmVzdG9yYXRpb24gYWZ0ZXIgY29udGV4dCBsb3N0LgotICAgIHZvaWQgbWF5YmVSZXN0
b3JlQ29udGV4dCgpOwotCiAgICAgLy8gV3JhcHBlciBmb3IgR3JhcGhpY3NDb250ZXh0M0Q6OnN5
bnRoZXNpemVHTEVycm9yIHRoYXQgc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBKYXZhU2NyaXB0IGNv
bnNvbGUuCiAgICAgZW51bSBDb25zb2xlRGlzcGxheVByZWZlcmVuY2UgeyBEaXNwbGF5SW5Db25z
b2xlLCBEb250RGlzcGxheUluQ29uc29sZSB9OwogICAgIHZvaWQgc3ludGhlc2l6ZUdMRXJyb3Io
R0MzRGVudW0sIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZGVzY3JpcHRp
b24sIENvbnNvbGVEaXNwbGF5UHJlZmVyZW5jZSA9IERpc3BsYXlJbkNvbnNvbGUpOwpAQCAtODQy
LDYgKzg0MiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHVuc2ln
bmVkIGdldE1heEluZGV4KGNvbnN0IFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBlbGVtZW50QXJy
YXlCdWZmZXIsIEdDM0RpbnRwdHIgdW9mZnNldCwgR0MzRHNpemVpIG4pOwogCiBwcml2YXRlOgor
ICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KCk7CisgICAgdm9pZCBkaXNwYXRjaENv
bnRleHRDaGFuZ2VkRXZlbnQoKTsKKyAgICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9uIGFmdGVy
IGNvbnRleHQgbG9zdC4KKyAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRleHQoKTsKKwogICAgIGJv
b2wgdmFsaWRhdGVBcnJheUJ1ZmZlclR5cGUoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNE
ZW51bSB0eXBlLCBPcHRpb25hbDxKU0M6OlR5cGVkQXJyYXlUeXBlPik7CiAgICAgdm9pZCByZWdp
c3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOwogICAgIHZvaWQgY2hlY2tGb3JDb250ZXh0TG9z
c0hhbmRsaW5nKCk7CkBAIC04NTAsNiArODU1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkdMU3Rh
dGVUcmFja2VyOjpUb2tlbiBtX3RyYWNrZXJUb2tlbjsKICAgICBUaW1lciBtX2NoZWNrRm9yQ29u
dGV4dExvc3NIYW5kbGluZ1RpbWVyOworICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07
CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5k
ZXggN2Y1NzUzN2QzNDM0ZGIwNTA0OWMwM2NiNzdkMmEyZjUwZTQzNTQ5OC4uZGQxZTlkYmExOThh
OGQyNDk5OGMzODdhY2EwZGIzYzIzZWYzYWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAK
QEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOgogYm9vbCBOZXN0ZWRUaW1lcnNNYXA6OmlzVHJh
Y2tpbmdOZXN0ZWRUaW1lcnMgPSBmYWxzZTsKIAogRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+
IGFjdGlvbiwgU2Vjb25kcyBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQotICAgIDogU3VzcGVu
ZGFibGVUaW1lcihjb250ZXh0KQorICAgIDogU3VzcGVuZGFibGVUaW1lckJhc2UoJmNvbnRleHQp
CiAgICAgLCBtX25lc3RpbmdMZXZlbChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAg
LCBtX2FjdGlvbihXVEZNb3ZlKGFjdGlvbikpCiAgICAgLCBtX29yaWdpbmFsSW50ZXJ2YWwoaW50
ZXJ2YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKaW5kZXggYjk3NTVhNzk1YjY1NmVjNTQyMzQ4Zjgw
M2Y2ZGNhNjVkNjlhNmQyMy4uN2Q0ODAxZmYzMTJlOTJhMGIzOWQyYjAwYzIyMjQ3MTE2OGJhOWYy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwogCi1j
bGFzcyBET01UaW1lciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGlj
IFN1c3BlbmRhYmxlVGltZXIgeworY2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxET01UaW1lcj4sIHB1YmxpYyBTdXNwZW5kYWJsZVRpbWVyQmFzZSB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoRE9NVGltZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNET01UaW1lcnNU
aHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVGhyb3R0
bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKIAotICAgIC8v
IFN1c3BlbmRhYmxlVGltZXIKKyAgICAvLyBTdXNwZW5kYWJsZVRpbWVyQmFzZQogICAgIHZvaWQg
ZmlyZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKICAgICBXRUJD
T1JFX0VYUE9SVCBPcHRpb25hbDxNb25vdG9uaWNUaW1lPiBhbGlnbmVkRmlyZVRpbWUoTW9ub3Rv
bmljVGltZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1N1c3BlbmRhYmxlVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmNwcAppbmRleCA3NmVkMTk3YWZiYTMyMzYyYTQxZTIwNjMzNTAxZGUzYzQyMThjMmIyLi5l
N2U1MTdiMzNhYTYxNWNhZmI3NTJlYjkwODVjMjA5ZDExODI0ZDU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKQEAgLTMxLDE5ICszMSwxOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVN1c3BlbmRhYmxlVGltZXI6OlN1c3BlbmRhYmxlVGltZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4
dCkKK1N1c3BlbmRhYmxlVGltZXJCYXNlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiB7
CiB9CiAKLVN1c3BlbmRhYmxlVGltZXI6On5TdXNwZW5kYWJsZVRpbWVyKCkgPSBkZWZhdWx0Owor
U3VzcGVuZGFibGVUaW1lckJhc2U6On5TdXNwZW5kYWJsZVRpbWVyQmFzZSgpID0gZGVmYXVsdDsK
IAotYm9vbCBTdXNwZW5kYWJsZVRpbWVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAorYm9v
bCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gaXNBY3RpdmUoKTsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdG9wKCkK
K3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnN0b3AoKQogewogICAgIGlmICghbV9zdXNwZW5k
ZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6c3RvcCgpOwpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFN1
c3BlbmRhYmxlVGltZXI6OnN0b3AoKQogICAgIGRpZFN0b3AoKTsKIH0KIAotdm9pZCBTdXNwZW5k
YWJsZVRpbWVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit2b2lkIFN1c3BlbmRhYmxl
VGltZXJCYXNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiB7CiAgICAgQVNTRVJUKCFt
X3N1c3BlbmRlZCk7CiAgICAgbV9zdXNwZW5kZWQgPSB0cnVlOwpAQCAtNjksNyArNjksNyBAQCB2
b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKICAgICB9
CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6cmVzdW1lKCkKK3ZvaWQgU3VzcGVuZGFibGVU
aW1lckJhc2U6OnJlc3VtZSgpCiB7CiAgICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKICAgICBtX3N1
c3BlbmRlZCA9IGZhbHNlOwpAQCAtNzgsMTYgKzc4LDE2IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1l
cjo6cmVzdW1lKCkKICAgICAgICAgc3RhcnQobV9zYXZlZE5leHRGaXJlSW50ZXJ2YWwsIG1fc2F2
ZWRSZXBlYXRJbnRlcnZhbCk7CiB9CiAKLWJvb2wgU3VzcGVuZGFibGVUaW1lcjo6Y2FuU3VzcGVu
ZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0Citib29sIFN1c3BlbmRhYmxlVGltZXJCYXNl
OjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpkaWRTdG9wKCkKK3ZvaWQgU3VzcGVu
ZGFibGVUaW1lckJhc2U6OmRpZFN0b3AoKQogewogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6
OmNhbmNlbCgpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpjYW5jZWwoKQogewogICAgIGlm
ICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6c3RvcCgpOwpAQCAtOTUsNyArOTUs
NyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OmNhbmNlbCgpCiAgICAgICAgIG1fc3VzcGVuZGVk
ID0gZmFsc2U7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRpbmcoU2Vj
b25kcyByZXBlYXRJbnRlcnZhbCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnN0YXJ0UmVw
ZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpCiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkK
ICAgICAgICAgVGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyhyZXBlYXRJbnRlcnZhbCk7CkBAIC0x
MDYsNyArMTA2LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyhTZWNv
bmRzIHJlcGVhdEludGVydmFsKQogICAgIH0KIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpz
dGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6
OnN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKQogewogICAgIGlmICghbV9zdXNwZW5kZWQp
CiAgICAgICAgIFRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTExNyw3ICsx
MTcsNyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVy
dmFsKQogICAgIH0KIH0KIAotU2Vjb25kcyBTdXNwZW5kYWJsZVRpbWVyOjpyZXBlYXRJbnRlcnZh
bCgpIGNvbnN0CitTZWNvbmRzIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgcmV0dXJuIFRpbWVyQmFz
ZTo6cmVwZWF0SW50ZXJ2YWwoKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBTZWNvbmRzIFN1c3BlbmRh
YmxlVGltZXI6OnJlcGVhdEludGVydmFsKCkgY29uc3QKICAgICByZXR1cm4gMF9zOwogfQogCi12
b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkK
K3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBk
ZWx0YSkKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OmF1Z21l
bnRGaXJlSW50ZXJ2YWwoZGVsdGEpOwpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgU3VzcGVuZGFi
bGVUaW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogICAgIH0KIH0KIAot
dm9pZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0
YSkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNv
bmRzIGRlbHRhKQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6
YXVnbWVudFJlcGVhdEludGVydmFsKGRlbHRhKTsKQEAgLTE1Myw0ICsxNTMsOSBAQCB2b2lkIFN1
c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogICAg
IH0KIH0KIAorY29uc3QgY2hhciogU3VzcGVuZGFibGVUaW1lcjo6YWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJTdXNwZW5kYWJsZVRpbWVyIjsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5k
YWJsZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAppbmRl
eCAzYzNkNDllMDU4YWIxMzE3NDdlYjQ5YmIwYzkzYTBmZDI5NDUxOGZkLi5mM2VmMTIzMDBlNWE1
NjU5ZDg4NTE4MWZjMDgzNjU2ODliMDYxZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRh
YmxlVGltZXIuaApAQCAtMjksMjAgKzI5LDIxIEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU3Vz
cGVuZGFibGVUaW1lciA6IHByaXZhdGUgVGltZXJCYXNlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKK2NsYXNzIFN1c3BlbmRhYmxlVGltZXJCYXNlIDogcHJpdmF0ZSBUaW1lckJhc2UsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIGV4cGxpY2l0IFN1c3BlbmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwotICAgIHZpcnR1YWwgflN1c3BlbmRhYmxlVGltZXIoKTsKKyAgICBleHBsaWNpdCBTdXNwZW5k
YWJsZVRpbWVyQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgdmlydHVhbCB+U3Vz
cGVuZGFibGVUaW1lckJhc2UoKTsKIAogICAgIC8vIEEgaG9vayBmb3IgZGVyaXZlZCBjbGFzc2Vz
IHRvIHBlcmZvcm0gY2xlYW51cC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgpOwogCi0gICAg
Ly8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFibGVUaW1lciBj
bGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgorICAgIC8vIFBhcnQgb2Yg
VGltZXJCYXNlIGludGVyZmFjZSB1c2VkIGJ5IFN1c3BlbmRhYmxlVGltZXJCYXNlIGNsaWVudHMs
IG1vZGlmaWVkIHRvIHdvcmsgd2hlbiBzdXNwZW5kZWQuCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIFRpbWVyQmFzZTo6aXNBY3RpdmUoKSB8fCAobV9zdXNwZW5kZWQgJiYgbV9z
YXZlZElzQWN0aXZlKTsgfQogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBt
X3N1c3BlbmRlZDsgfQogCkBAIC03Nyw0ICs3OCwzMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9z
YXZlZElzQWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKK2NsYXNzIFN1c3BlbmRhYmxlVGltZXIgZmlu
YWwgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lckJhc2UgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3Ms
IHR5cGVuYW1lIFRpbWVyRmlyZWRCYXNlQ2xhc3M+CisgICAgU3VzcGVuZGFibGVUaW1lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaW1lckZpcmVkQ2xhc3MmIG9iamVjdCwgdm9p
ZCAoVGltZXJGaXJlZEJhc2VDbGFzczo6KmZ1bmN0aW9uKSgpKQorICAgICAgICA6IFN1c3BlbmRh
YmxlVGltZXJCYXNlKGNvbnRleHQpCisgICAgICAgICwgbV9mdW5jdGlvbihzdGQ6OmJpbmQoZnVu
Y3Rpb24sICZvYmplY3QpKQorICAgIHsKKyAgICB9CisKKyAgICBTdXNwZW5kYWJsZVRpbWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBm
dW5jdGlvbikKKyAgICAgICAgOiBTdXNwZW5kYWJsZVRpbWVyQmFzZShjb250ZXh0KQorICAgICAg
ICAsIG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCisgICAgeworICAgIH0KKworcHJpdmF0
ZToKKyAgICB2b2lkIGZpcmVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIG1fZnVuY3Rpb24oKTsK
KyAgICB9CisKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmlu
YWw7CisKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDA2
YzcwMjU1MzA5NzRkYTk4ZDc3NGVkYjNlNGIxMTExYzIyN2IyMzEuLmVlYjQ5YWUxYmI3ZjkxOGZk
MGIzMTQwNzQyYmUwOGI3ZWY5NGYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CkBAIC0xNDU1LDcgKzE0NTUsNyBAQCB2b2lkIFdlYlZpZXc6OmZyYW1lUmVjdChSRUNUKiByZWN0
KQogICAgIDo6R2V0V2luZG93UmVjdChtX3ZpZXdXaW5kb3csIHJlY3QpOwogfQogCi1jbGFzcyBX
aW5kb3dDbG9zZVRpbWVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXIg
eworY2xhc3MgV2luZG93Q2xvc2VUaW1lciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdXNwZW5k
YWJsZVRpbWVyQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdpbmRvd0Nsb3NlVGltZXIqIGNy
ZWF0ZShXZWJWaWV3Kik7CiAKQEAgLTE0NjYsNyArMTQ2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJXaW5kb3dDbG9zZVRpbWVyIjsg
fQogCi0gICAgLy8gU3VzcGVuZGFibGVUaW1lciBBUEkuCisgICAgLy8gU3VzcGVuZGFibGVUaW1l
ckJhc2UgQVBJLgogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlZpZXcqIG1f
d2ViVmlldzsKQEAgLTE0OTEsNyArMTQ5MSw3IEBAIFdpbmRvd0Nsb3NlVGltZXIqIFdpbmRvd0Ns
b3NlVGltZXI6OmNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQogfQogCiBXaW5kb3dDbG9zZVRpbWVy
OjpXaW5kb3dDbG9zZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlZp
ZXcqIHdlYlZpZXcpCi0gICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCisgICAgOiBTdXNw
ZW5kYWJsZVRpbWVyQmFzZSgmY29udGV4dCkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQogewog
ICAgIEFTU0VSVF9BUkcod2ViVmlldywgd2ViVmlldyk7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBX
aW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dDbG9zZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFdlYlZpZXcqIHdlYgogCiB2b2lkIFdpbmRvd0Nsb3NlVGltZXI6OmNvbnRleHRE
ZXN0cm95ZWQoKQogewotICAgIFN1c3BlbmRhYmxlVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKTsK
KyAgICBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y29udGV4dERlc3Ryb3llZCgpOwogICAgIGRlbGV0
ZSB0aGlzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKaW5kZXggMzU4MTc0Mzc1NDlk
NmNkOTc2NjA2YjQ1ZjRjMjUxYzBhMmViODdiZS4uMjM0ODBiNjhiZTZkM2FlNTJmNjNlN2Q0YWUx
NmVjZDA5MGZkODc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaApAQCAtNjgwLDcgKzY4
MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHN0YXRpYyBib29sIHNfYWxsb3dTaXRlU3BlY2lmaWNI
YWNrczsKIAotICAgIFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXIqIG1fY2xvc2VXaW5kb3dUaW1l
ciB7IG51bGxwdHIgfTsKKyAgICBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZSogbV9jbG9z
ZVdpbmRvd1RpbWVyIHsgbnVsbHB0ciB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUUkFDS01PVVNF
RVZFTlQ+IG1fbW91c2VPdXRUcmFja2VyOwogCiAgICAgSFdORCBtX3RvcExldmVsUGFyZW50IHsg
bnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDFjZTAzNGVhNDJmZTUwOTlkYjg4Zjc4ZDEwZjkxOTNjYzY5Y2Nh
YWQuLjE4ZTJmYTBhYmJjNmUzY2MxMTVhMmRiZjgyZTAxZTU2ZjQ4ZmQyYTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wOS0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFBhZ2VzIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBmYWlsIHRvIGVudGVy
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjMxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3ODM2MTI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxh
eW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFz
LXdlYmdsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKwogMjAxOS0w
OS0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2VzIHdp
dGggV2ViIFdvcmtlcnMgY2Fubm90IGVudGVyIHRoZSBiYWNrIC8gZm9yd2FyZCBjYWNoZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2Ut
Y2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFz
LXdlYmdsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MjU1MzdlM2JiNmMy
YTgyNWU2NjllNjViYTU3NGRmNWE4M2YyMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBpcyBhYmxlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENhbnZhcyBkaWQgbm90IGNyYXNoIG9uIHJl
c2l6ZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gcGFnZSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmlu
ZyBwYWdlIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gcGFnZSBjYWNoZQorUEFTUyBQYWdlIGVudGVy
ZWQgcGFnZSBjYWNoZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZh
cy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9j
YW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYTMyNzkzMTMwZWRhYzU2
ZWJjYjIwOTY5NTg4Yjk0YzdjNjg0NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEs
NTAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjZXhhbXBsZSB7CisgIHdpZHRoOiAxMDAlOwor
ICBoZWlnaHQ6IDEwMCU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0
aGF0IGEgcGFnZSB3aXRoIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGlzIGFibGUgdG8gZW50ZXIg
dGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICBkZWJ1
ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9t
IHBhZ2UgY2FjaGUiKTsKKyAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgdGVzdFBhc3Nl
ZCgiUGFnZSBlbnRlcmVkIHBhZ2UgY2FjaGUiKTsKKyAgICAgIGZpbmlzaEpTVGVzdCgpOworICB9
Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJlbnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0
ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNo
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gc3Rh
cnQoKQoreworICAgIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7
CisgICAgZ2wgPSBXZWJHTFRlc3RVdGlscy5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKKworICAg
IHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiLi4vLi4vaGlz
dG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgfSwgMCk7Cit9CisK
K3Rlc3RQYXNzZWQoIkNhbnZhcyBkaWQgbm90IGNyYXNoIG9uIHJlc2l6ZS4iKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxjYW52YXMgaWQ9ImV4
YW1wbGUiPjwvY2FudmFzPgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379769</attachid>
            <date>2019-09-27 14:58:24 -0700</date>
            <delta_ts>2019-09-27 14:59:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202318-20190927145823.patch</filename>
            <type>text/plain</type>
            <size>80005</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzVhN2M0NDE0MmI3Y2E0
YjVlNWViNjg3N2ZkNTYxYmVmMDFhMDZkNC4uY2M5YjdkMDhjMWIxMjdlZjcxODA3NTA5OGNhMDIw
NmZkZGQ2MzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNCBAQAorMjAxOS0wOS0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VzIHVzaW5nIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCBmYWlsIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjMxOAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTU3ODM2MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhvcnRvbi4KKworICAgICAgICBBbGxvdyBwYWdlcyB3aXRoIGEgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgYnkgdXBkYXRpbmcgdGhlCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZSBTdXNwZW5kYWJsZVRpbWVycyB0byBmaXJlIEpTIGV2
ZW50cy4gVGhpcyBndWFyYW50ZWVzIHRoYXQgbm8gZXZlbnRzCisgICAgICAgIHdpbGwgYmUgZmly
ZWQgKGFuZCB0aHVzIG5vIEpTIHdpbGwgcnVuKSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4KKwor
ICAgICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRoZXIu
Y29tIGFuZCBmYWNlYm9vay5jb20gZnJvbSBlbnRlcmluZyB0aGUKKyAgICAgICAgYmFjay9mb3J3
YXJkIGNhY2hlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJn
bC1wYWdlLWNhY2hlLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3Bw
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN1c3BlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3Rv
cmVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6CisgICAg
ICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6RE9N
VGltZXIpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgKiBwYWdlL1N1c3Bl
bmRhYmxlVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lckJhc2U6
OlN1c3BlbmRhYmxlVGltZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXJCYXNlOjpoYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Vz
cGVuZGFibGVUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVU
aW1lckJhc2U6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lckJh
c2U6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y2Fu
U3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyQmFzZTo6ZGlkU3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5k
YWJsZVRpbWVyQmFzZTo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXJCYXNlOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRp
bWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5k
YWJsZVRpbWVyQmFzZTo6YXVnbWVudEZpcmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oOgorCisyMDE5LTA5LTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29ya2VycyBj
YW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFsbG93IHBhZ2VzIHRoYXQgdXNlIFdlYiBXb3JrZXJzIHRvIGVudGVyIHRoZSBiYWNr
IC8gZm9yd2FyZCBjYWNoZS4KKyAgICAgICAgVGhpcyBpbnZvbHZlcyBhZGRpbmcgYW4gRXZlbnRR
dWV1ZSBmb3IgYWxsIGV2ZW50IGZpcmluZyBvbiBXb2tlcgorICAgICAgICBvYmplY3RzIGFuZCBz
dXNwZW5kaW5nIHRoaXMgRXZlbnRRdWV1ZSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4KKworICAg
ICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRoZXIuY29t
IHRvIGVudGVyIHRoZQorICAgICAgICBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKworICAgICAgICBU
ZXN0OiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAgICogTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBh
bmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaDoKKworICAgICAgICAqIGRvbS9HZW5lcmlj
RXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUYXNrUXVldWVDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tRdWV1ZUNvbnN0cnVjdG9yPFRpbWVy
Pjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxU
Pjo6R2VuZXJpY0V2ZW50UXVldWVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVu
dFF1ZXVlQmFzZTxUPjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNF
dmVudFF1ZXVlQmFzZTxUPjo6ZGlzcGF0Y2hPbmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVy
aWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2FuY2VsQWxsRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46Omhhc1BlbmRpbmdFdmVudHNP
ZlR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+
OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6
cmVzdW1lKToKKyAgICAgICAgKiBkb20vR2VuZXJpY0V2ZW50UXVldWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTo6aXNTdXNwZW5kZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6OkdlbmVy
aWNFdmVudFF1ZXVlKToKKyAgICAgICAgUmVuYW1lIEdlbmVyaWNFdmVudFF1ZXVlIHRvIE1haW5U
aHJlYWRHZW5lcmljRXZlbnRRdWV1ZSBzaW5jZSBpdHMgaW1wbGVtZW50YXRpb24gcmVsaWVzCisg
ICAgICAgIG9uIGEgZ2xvYmFsIHNoYXJlZCBUaW1lciB0byBmaXJlIGV2ZW50cy4gSW50cm9kdWNl
IGEgbmV3IEdlbmVyaWNFdmVudFF1ZXVlIHdoaWNoIGNhbgorICAgICAgICBhY3R1YWxseSBiZSB1
c2VkIGZyb20gYW55IHRocmVhZC4gVGhpcyBpcyB1c2VmdWwgZm9yIE1lc3NhZ2VQb3J0LCB3aGlj
aCBpcyB1c2VkIGJvdGgKKyAgICAgICAgb24gdGhlIG1haW4gdGhyZWFkIGFuZCBvbiB3b3JrZXIg
dGhyZWFkcy4KKworICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2Fn
ZVBvcnQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpzdXNwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVzc2FnZVBvcnQ6OmRpc3BhdGNoTWVzc2FnZXMpOgorICAgICAgICAqIGRvbS9NZXNzYWdl
UG9ydC5oOgorICAgICAgICBVc2UgYW4gR2VuZXJpY0V2ZW50UXVldWUgaW4gTWVzc2FnZVBvcnQg
Zm9yIGNvbnNpc3RlbmN5IHdpdGggV29ya2VyLgorICAgICAgICBNZXNzYWdlUG9ydCBpcyBhbiBB
Y3RpdmVET01vYmplY3Qgd2hpY2ggcmV0dXJucyB0cnVlIGluIGNhblN1c3BlbmQoKSwKKyAgICAg
ICAgd2UgdGhlcmVmb3JlIG5lZWQgdG8gbWFrZSBzdXJlIGl0IHN1c3BlbmRzIGV2ZW50IGZpcmlu
ZyB3aGlsZQorICAgICAgICBzdXNwZW5kZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldvcmtlcik6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6
cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6c3RvcCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6ZW5x
dWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6ZGlzcGF0Y2hFdmVudCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorCisyMDE5LTA5LTI2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSURCVHJhbnNhY3Rpb24g
LyBJREJPYmplY3RTdG9yZSBzaG91bGQgbm90IHByZXZlbnQgYSBwYWdlIGZyb20gZW50ZXJpbmcg
dGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDIyOTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzYwMTA2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElEQk9i
amVjdFN0b3JlIGRvZXMgbm90IGZpcmUgYW55IGV2ZW50cyBhbmQgc2hvdWxkIHRoZXJlZm9yZSBu
b3QgY2F1c2UgYW55IHByb2JsZW0gd2hpbGUgaW4gUGFnZUNhY2hlLgorICAgICAgICBJREJUcmFu
c2FjdGlvbiBjYW4gb25seSBmaXJlIGFib3J0L2NvbXBsZXRlL2Vycm9yIGV2ZW50cywgYWxsIG9m
IHdoaWNoIGFyZSBiZWluZyBlbnF1ZXVlZCB0byB0aGUKKyAgICAgICAgRG9jdW1lbnRFdmVudFF1
ZXVlLiBUaGUgRG9jdW1lbnRFdmVudFF1ZXVlIHN1YmNsYXNzZXMgU3VzcGVuZGFibGVUaW1lciB3
aGljaCB3aWxsIGNvcnJlY3RseSBzdXNwZW5kCisgICAgICAgIHdoaWxlIHRoZSBkb2N1bWVudCBp
cyBpbiBwYWdlIGNhY2hlLiBJREJUcmFuc2FjdGlvbiB3aWxsIHRoZXJlZm9yZSBub3QgY2F1c2Ug
ZXZlbnRzIHRvIGZpcmUgKGFuZCBKUworICAgICAgICB0byBydW4pIHdoaWxlIGluIHBhZ2UgY2Fj
aGUuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24tcGFn
ZS1jYWNoZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y2FuU3VzcGVuZEZvckRv
Y3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNhblN1
c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24gY29uc3QpOgorCisyMDE5LTA5LTI2ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgZnJlcXVlbnRseSBmYWls
cyB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIGR1ZSB0byBwZW5kaW5nIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzU4NTA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHBhZ2VzIHRvIGVudGVyIHRoZSBiYWNrIC8g
Zm9yd2FyZCBjYWNoZSwgZXZlbiBpZiB0aGV5IGhhdmUgcGVuZGluZyBsb2Fkcy4KKyAgICAgICAg
Tm90ZSB0aGF0IHRoZXNlIHBlbmRpbmcgbG9hZHMgZ2V0IGNhbmNlbGxlZC4gQWxzbyBub3RlIHRo
YXQgd2Ugd29uJ3QgZW50ZXIgcGFnZQorICAgICAgICBjYWNoZSB1bmxlc3MgdGhlICdsb2FkJyBl
dmVudCBoYXMgYmVlbiBmaXJlZCBpbiB0aGUgbWFpbiBmcmFtZSwgc2luY2UgYQorICAgICAgICBI
aXN0b3J5SXRlbSB3b3VsZCBub3QgZ2V0IGNyZWF0ZWQgb3RoZXJ3aXNlLiBUaGlzIHdhcyBjYXVz
aW5nIGZyZXF1ZW50IHRyYW5zaWVudAorICAgICAgICBmYWlsdXJlcyB0byBlbnRlciB0aGUgYmFj
ayAvIGZvcndhcmQgY2FjaGUgd2hpbGUgYnJvd3NpbmcgKGUuZy4gb24gd2VhdGhlci5jb20pLgor
CisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmct
bG9hZC5odG1sCisKKyAgICAgICAgKiBoaXN0b3J5L1BhZ2VDYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYW5DYWNoZUZyYW1lKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRD
aGVja2VyLmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcpOgorICAgICAgICAqIGxvYWRl
ci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaDoK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VDbGll
bnQ6OmRlcHJlY2F0ZWREaWRSZWNlaXZlQ2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6bWFpbkZyYW1lSGFzTm90RmluaXNoZWRMb2FkaW5nS2V5KToKKyAgICAgICAg
KiBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oOgorCisyMDE5LTA5LTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSURCUmVxdWVzdCBzaG91bGQgbm90IHBy
ZXZlbnQgYSBwYWdlIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMjcwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NTc0NDcxNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgSURCUmVxdWVzdDo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbigpIHRvIHJldHVybiB0cnVlIGluc3RlYWQgb2YKKyAgICAgICAgZmFsc2Uu
IElEQlJlcXVlc3QgY2FuIG9ubHkgZmlyZSAyIGV2ZW50cyAoZXJyb3IgLyBzdWNjZXNzKSBhbmQg
Zm9yIGJvdGggaXRzCisgICAgICAgIG1lcmVseSBlbnF1ZXVlcyB0aGUgRXZlbnQgdG8gdGhlIERv
Y3VtZW50RXZlbnRRdWV1ZS4gVGhlIERvY3VtZW50RXZlbnRRdWV1ZQorICAgICAgICB1c2VzIGEg
U3VzcGVuZGFibGVUaW1lciAod2hpY2ggd2lsbCBiZSBzdXNwZW5kZWQgd2hpbGUgdGhlIGRvY3Vt
ZW50IGlzIGluIHRoZQorICAgICAgICBwYWdlIGNhY2hlKSBzbyB0aGVyZSBpcyBubyByaXNrIG9m
IGZpcmluZyB0aGUgZXZlbnRzIChhbmQgdGh1cyBydW5uaW5nIHNjcmlwdCkKKyAgICAgICAgd2hp
bGUgaW4gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIv
SURCUmVxdWVzdC1wYWdlLWNhY2hlLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6Y2FuU3VzcGVu
ZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisKIDIwMTktMDktMjYgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBbIENhdGFsaW5h
IFdLMiBdIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3Vj
Y2Vzcy11MmYuaHR0cHMuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
aW5kZXggMTc3NTc2NDE2ZjhmYzBhZGU1YTI1MGViMjBmZDQ2Yjk4NDAwNzNlZS4uZGNlOWRjM2Fl
ZDFlNzkyMmQ4OGExNTQ0NDk1NzEwYTYxOWY3ZWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGZh
aWwgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NTc4MzYxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXaW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dDbG9zZVRp
bWVyKToKKyAgICAgICAgKFdpbmRvd0Nsb3NlVGltZXI6OmNvbnRleHREZXN0cm95ZWQpOgorICAg
ICAgICAqIFdlYlZpZXcuaDoKKwogMjAxOS0wOS0yNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9y
aS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgV2lu
ZG93cyBwb3J0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGJlOGMwZGQ2YmQzOGM2YTExYmNkOWJjNWNh
OTVmZjFiYzNlNDRkYzguLjVhNjJlYWMyZDdmZTYzMDM1ZDBmY2VjY2IwYTY1YzNiYmE2Y2U0ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVNlc3Npb24uaApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFL
ZXlTZXNzaW9uVHlwZSBtX3Nlc3Npb25UeXBlOwogICAgIFJlZjxDRE0+IG1faW1wbGVtZW50YXRp
b247CiAgICAgUmVmPENETUluc3RhbmNlU2Vzc2lvbj4gbV9pbnN0YW5jZVNlc3Npb247Ci0gICAg
R2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOworICAgIE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZSBtX2V2ZW50UXVldWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNr
UXVldWU7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBtX3JlY29yZE9mS2V5VXNhZ2U7
CiAgICAgZG91YmxlIG1fZmlyc3REZWNyeXB0VGltZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggOWI2MzIzNWE1NjgzZTYzYzdlNWEwMmExMTFlOGJh
YjNkZjMyYzVlZi4uZGRhOGZlZjM2MTNkNzZjNDBkMjQyMTdjNGU1ZmIwMWUzNzBjMzU1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2Vi
S2l0TWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmgKQEAgLTkwLDcgKzkwLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklk
OwogICAgIFJlZlB0cjxXZWJLaXRNZWRpYUtleUVycm9yPiBtX2Vycm9yOwotICAgIEdlbmVyaWNF
dmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOworICAgIE1haW5UaHJlYWRHZW5lcmljRXZlbnRR
dWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vz
c2lvbj4gbV9zZXNzaW9uOwogCiAgICAgc3RydWN0IFBlbmRpbmdLZXlSZXF1ZXN0IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApp
bmRleCA5YTc4MTI3ODQ2M2VkMGE0YTBhZGRkM2Y3ZGIwYzU2NTY5NjJiOWNmLi5hNTk3YWMxOWI2
M2I4ODhjMTIyZjkyODNhN2RjYTJlZjk3NGZlZTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IGNvbnN0IGNoYXIqIElEQk9iamVjdFN0b3JlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
IAogYm9vbCBJREJPYmplY3RTdG9yZTo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29s
IElEQk9iamVjdFN0b3JlOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBhODI4Y2UwOTli
MTZkNmY3YTUzOTFkM2FmM2Q1N2U3NDQ1MWM4Njg3Li5hMjQ2MWZjM2Y3MWEyNGFlOWM4MjhkODhi
Nzg3MDJjNDdmNjBkZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIGNvbnN0IGNoYXIqIElEQlJlcXVl
c3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogYm9vbCBJREJSZXF1ZXN0OjpjYW5TdXNw
ZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoJm9yaWdpblRo
cmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBib29sIElEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAKaW5kZXggNGI4ZmU3M2QxMzFkZTUyMzI1MWFhNDVkNDY0ODQwZGI0YTFiMzQzZi4u
NzUyNGUwZDliNTA1MGYxMmEyOTU3MGU5YjAwMWEzOWVkZjE3NTc2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzI2
LDcgKzMyNiw3IEBAIGNvbnN0IGNoYXIqIElEQlRyYW5zYWN0aW9uOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKIGJvb2wgSURCVHJhbnNhY3Rpb246OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1
c3BlbnNpb24oKSBjb25zdAogewogICAgIEFTU0VSVCgmbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFk
KCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHRydWU7CiB9CiAKIGJvb2wgSURCVHJhbnNhY3Rpb246Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmgKaW5kZXggZmRjNjQ3YjdhY2JmNzMyYzUwY2JlZTNhYzFjMDIzZjgxZTVkMDljMS4uMmZlYjAw
YmZjNWZkOTA2MTAwZDIwNTNiY2VjNDEyMzJiYTg4ZGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtMTY4LDcgKzE2OCw3IEBA
IHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFUaW1lIG1fcGVu
ZGluZ1NlZWtUaW1lOwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVhZHlTdGF0ZTo6
Q2xvc2VkIH07Ci0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CisgICAg
TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNv
bnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IGE0NTAyYjViNjc1
YzZmMDA3MjRmOGE2OTA3NjlkNjk2MDZlNGNmM2YuLjA4YzQ2MWRiM2Q5OWNiNWIzZGVhNzdmMWE4
NGU0NWVhZjBlZjhhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAKICAgICBS
ZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291cmNlKiBtX3Nv
dXJjZTsKLSAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAgICAgQXBwZW5kTW9k
ZSBtX21vZGUgeyBBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9yPHVuc2lnbmVk
IGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGY4M2MxODQzMjIxYWNi
MjMxZjU0MjZhN2EzMmViMGIyMjkxNGEzNmYuLjI2ZDBhZWFjN2E1M2Q0MmQwYmU4MzE1MmRhMjQx
NGUxZTIxMGMyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0IGZpbmFsOwogCi0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7
CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogCiAg
ICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiBtX2xpc3Q7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGQ0Y2RiNzY1
OGMwZjM1YjVmYzlhMjJjZTg5OGJjYjJiOTllZTRkZDguLjlmMjMwOWNjZjM5MmJlNzhjMmFjZWZl
MTM5ZDY4ZDI5NjRmMzFhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBBdWRpb0NvbnRleHQ6OkF1
ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5p
cXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSkKLSAgICAsIG1fZXZlbnRRdWV1ZShtYWtlVW5p
cXVlPEdlbmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCisgICAgLCBtX2V2ZW50UXVldWUobWFrZVVu
aXF1ZTxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+KCp0aGlzKSkKIHsKICAgICAvLyBBY2Nv
cmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRlciBwYWdlIG5hdmln
YXRlLgogICAgIC8vIExldHMgbWFyayBpdCBhcyBBY3RpdmVET01PYmplY3Qgd2l0aCBwZW5kaW5n
IGFjdGl2aXR5IGFuZCB1bm1hcmsgaXQgaW4gY2xlYXIgbWV0aG9kLgpAQCAtMTY2LDcgKzE2Niw3
IEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90CiAjZW5kaWYKICAgICAsIG1faXNPZmZsaW5lQ29u
dGV4dCh0cnVlKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OmNy
ZWF0ZSgqdGhpcykpCi0gICAgLCBtX2V2ZW50UXVldWUobWFrZVVuaXF1ZTxHZW5lcmljRXZlbnRR
dWV1ZT4oKnRoaXMpKQorICAgICwgbV9ldmVudFF1ZXVlKG1ha2VVbmlxdWU8TWFpblRocmVhZEdl
bmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCiB7CiAgICAgY29uc3RydWN0Q29tbW9uKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDlk
NzdjOTcwNzI0M2Y5MGMzYTlmNDM2YWZkNjRiZDY5OWFhMWM2MzguLmQ5OTEyOTQ5YTM5NGFiODEz
NGUxOTViMWM5ZjI5Mzc5NDMwNzkzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtNjQsOCArNjQsOCBAQCBjbGFzcyBEZWxheU5vZGU7
CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIER5bmFtaWNzQ29tcHJlc3Nvck5vZGU7CiBjbGFzcyBH
YWluTm9kZTsKLWNsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgSFRNTE1lZGlhRWxlbWVu
dDsKK2NsYXNzIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTsKIGNsYXNzIE1lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZTsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVkaWFTdHJlYW1B
dWRpb0Rlc3RpbmF0aW9uTm9kZTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxWZWN0b3I8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+Pj4gbV9zdGF0ZVJlYWN0aW9uczsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4gbV9tZWRpYVNlc3Np
b247Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdlbmVyaWNFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7
CisgICAgc3RkOjp1bmlxdWVfcHRyPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVu
dFF1ZXVlOwogCiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX3JlbmRlclRhcmdldDsKICAgICBS
ZWZQdHI8QXVkaW9EZXN0aW5hdGlvbk5vZGU+IG1fZGVzdGluYXRpb25Ob2RlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAppbmRleCBjNmE3NDBh
NjU4MmU0NTZiZGJhZDhiM2E1MmM5N2NkNTc2MDE0MTcwLi40MDdlOTAwMzMxOWQyNWM5Zjc3Y2Zi
Y2I4M2VmZGNjMmNlM2U5Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVj
bGFyYXRpdmVBbmltYXRpb24uaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV93YXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBBbmltYXRpb25FZmZlY3RQaGFzZSBtX3ByZXZp
b3VzUGhhc2UgeyBBbmltYXRpb25FZmZlY3RQaGFzZTo6SWRsZSB9OwogCi0gICAgR2VuZXJpY0V2
ZW50UXVldWUgbV9ldmVudFF1ZXVlOworICAgIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSBt
X2V2ZW50UXVldWU7CiAKICAgICBFbGVtZW50KiBtX293bmluZ0VsZW1lbnQ7CiAgICAgUmVmPEFu
aW1hdGlvbj4gbV9iYWNraW5nQW5pbWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmNwcAppbmRleCAwMzcwM2I2MmJjNjUwNTU3OGIzODliOTk5MzhhNGRhYWI2ZDc2
YzdhLi5jZWFlYmNkOTY2YTNkODRhMTQwMmM0MzI4ZTlkYmJiODg4YTEyMWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWNsYXNzIERvY3VtZW50RXZlbnRRdWV1ZTo6VGlt
ZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CitjbGFzcyBEb2N1bWVudEV2ZW50
UXVldWU6OlRpbWVyIGZpbmFsIDogcHVibGljIFN1c3BlbmRhYmxlVGltZXJCYXNlIHsKIHB1Ymxp
YzoKICAgICBUaW1lcihEb2N1bWVudEV2ZW50UXVldWUmIGV2ZW50UXVldWUpCi0gICAgICAgIDog
U3VzcGVuZGFibGVUaW1lcihldmVudFF1ZXVlLm1fZG9jdW1lbnQpCisgICAgICAgIDogU3VzcGVu
ZGFibGVUaW1lckJhc2UoJmV2ZW50UXVldWUubV9kb2N1bWVudCkKICAgICAgICAgLCBtX2V2ZW50
UXVldWUoZXZlbnRRdWV1ZSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmlj
RXZlbnRRdWV1ZS5jcHAKaW5kZXggN2EwODQ4MmU3N2NjNDAzZDJmMDllZTQ0YjNhY2RlNzAzNzIz
N2U1Zi4uZTc4YmU0ODFlOWYxZDIzNjg4ZWE5ZGRlNmM2YWJkZjI3M2IxMTcwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCkBAIC0zNiwxNSArMzYsMjYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2ZW50UXVl
dWUoRXZlbnRUYXJnZXQmIG93bmVyKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFRhc2tR
dWV1ZUNvbnN0cnVjdG9yIHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUPiBjb25zdHJ1
Y3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgeyByZXR1cm4gR2VuZXJpY1Rhc2tR
dWV1ZTxUPihjb250ZXh0KTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgVGFza1F1ZXVlQ29u
c3RydWN0b3I8VGltZXI+IHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gY29u
c3RydWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IHJldHVybiBHZW5lcmljVGFza1F1ZXVl
PFRpbWVyPigpOyB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2ZW50UXVl
dWVCYXNlPFQ+OjpHZW5lcmljRXZlbnRRdWV1ZUJhc2UoRXZlbnRUYXJnZXQmIG93bmVyKQogICAg
IDogbV9vd25lcihvd25lcikKLSAgICAsIG1faXNDbG9zZWQoZmFsc2UpCisgICAgLCBtX3Rhc2tR
dWV1ZShUYXNrUXVldWVDb25zdHJ1Y3RvcjxUPjo6Y29uc3RydWN0KG93bmVyLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCiB7CiB9CiAKLUdlbmVyaWNFdmVudFF1ZXVlOjp+R2VuZXJpY0V2ZW50
UXVldWUoKSA9IGRlZmF1bHQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2ZW50UXVl
dWVCYXNlPFQ+Ojp+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCkgPSBkZWZhdWx0OwogCi12b2lkIEdl
bmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50KQordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjplbnF1ZXVl
RXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50KQogewogICAgIGlmIChtX2lzQ2xvc2VkKQogICAg
ICAgICByZXR1cm47CkBAIC01NywxMCArNjgsMTEgQEAgdm9pZCBHZW5lcmljRXZlbnRRdWV1ZTo6
ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKICAgICBpZiAobV9pc1N1c3BlbmRl
ZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soc3RkOjpi
aW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOworICAgIG1f
dGFza1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmR2VuZXJpY0V2ZW50UXVldWVCYXNlOjpk
aXNwYXRjaE9uZUV2ZW50LCB0aGlzKSk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OmRp
c3BhdGNoT25lRXZlbnQoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50
UXVldWVCYXNlPFQ+OjpkaXNwYXRjaE9uZUV2ZW50KCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGlu
Z0V2ZW50cy5pc0VtcHR5KCkpOwogCkBAIC03Myw3ICs4NSw4IEBAIHZvaWQgR2VuZXJpY0V2ZW50
UXVldWU6OmRpc3BhdGNoT25lRXZlbnQoKQogICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KCpldmVu
dCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OmNsb3NlKCkKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2xvc2UoKQogewogICAgIG1f
aXNDbG9zZWQgPSB0cnVlOwogCkBAIC04MSwxOCArOTQsMjEgQEAgdm9pZCBHZW5lcmljRXZlbnRR
dWV1ZTo6Y2xvc2UoKQogICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogfQogCi12b2lkIEdl
bmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpjYW5jZWxBbGxFdmVudHMoKQogewogICAg
IG1fdGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiAgICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFy
KCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVudHMoKSBjb25z
dAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2Jvb2wgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+Ojpo
YXNQZW5kaW5nRXZlbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ0V2ZW50cy5p
c0VtcHR5KCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVudHNP
ZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
Citib29sIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50c09mVHlwZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZXZlbnQgOiBt
X3BlbmRpbmdFdmVudHMpIHsKICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gdHlwZSkKQEAg
LTEwMiwxNCArMTE4LDE2IEBAIGJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVu
dHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnN1c3BlbmQoKQordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpzdXNwZW5kKCkKIHsKICAgICBB
U1NFUlQoIW1faXNTdXNwZW5kZWQpOwogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIG1f
dGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6
OnJlc3VtZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBHZW5lcmljRXZlbnRRdWV1ZUJh
c2U8VD46OnJlc3VtZSgpCiB7CiAgICAgaWYgKCFtX2lzU3VzcGVuZGVkKQogICAgICAgICByZXR1
cm47CkBAIC0xMTcsNyArMTM1LDEwIEBAIHZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnJlc3VtZSgp
CiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV90YXNrUXVldWUuZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwg
dGhpcykpOworICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJkdlbmVy
aWNFdmVudFF1ZXVlQmFzZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOwogfQogCit0ZW1wbGF0
ZSBjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VGltZXI+OwordGVtcGxhdGUgY2xhc3MgR2Vu
ZXJpY0V2ZW50UXVldWVCYXNlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OworCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4IGI3YjY1OWYzMmUwYWE1YjZjODkxN2I0
MjcxM2I1YzUzZGFlMzZiOGUuLjRjNTY0MjNhOWUxZTQ3YTkzNmMwOTRlYzRmZjU0N2IyM2RjMTEz
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0zNSwxMiArMzUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudFRhcmdl
dDsKIGNsYXNzIFRpbWVyOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3Mg
R2VuZXJpY0V2ZW50UXVldWUgewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEdlbmVyaWNF
dmVudFF1ZXVlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgR2VuZXJpY0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmKTsKLSAgICB+R2VuZXJp
Y0V2ZW50UXVldWUoKTsKKyAgICBleHBsaWNpdCBHZW5lcmljRXZlbnRRdWV1ZUJhc2UoRXZlbnRU
YXJnZXQmKTsKKyAgICB+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCk7CiAKICAgICB2b2lkIGVucXVl
dWVFdmVudChSZWZQdHI8RXZlbnQ+JiYpOwogICAgIHZvaWQgY2xvc2UoKTsKQEAgLTUyLDE0ICs1
NCwzNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsK
IAorICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVuZGVkOyB9
CisKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE9uZUV2ZW50KCk7CiAKICAgICBFdmVudFRh
cmdldCYgbV9vd25lcjsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsK
KyAgICBHZW5lcmljVGFza1F1ZXVlPFQ+IG1fdGFza1F1ZXVlOwogICAgIERlcXVlPFJlZlB0cjxF
dmVudD4+IG1fcGVuZGluZ0V2ZW50czsKLSAgICBib29sIG1faXNDbG9zZWQ7CisgICAgYm9vbCBt
X2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9Owog
fTsKIAorLy8gQWxsIGluc3RhbmNlcyBvZiBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgdXNl
IGEgc2hhcmVkIFRpbWVyIGZvciBkaXNwYXRjaGluZyBldmVudHMuCitjbGFzcyBNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFRpbWVyPiB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlKEV2ZW50
VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAgICAgOiBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VGlt
ZXI+KGV2ZW50VGFyZ2V0KQorICAgIHsKKyAgICB9Cit9OworCitjbGFzcyBHZW5lcmljRXZlbnRR
dWV1ZSA6IHB1YmxpYyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IEdlbmVyaWNFdmVudFF1ZXVlKEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAgICAgOiBH
ZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4oZXZlbnRUYXJnZXQp
CisgICAgeworICAgIH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwCmluZGV4IGQ2N2NlMjc4ZmRhNGZiMzRmMzNmMTQ2ZmMxODcyNDYyZWUx
NTY5MzAuLjg0MmVlMjk0M2RmY2Q2NzBhYjgwOTI2MGRjMTE1MmEwNDU2MTJiYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBNZXNzYWdlUG9ydDo6TWVz
c2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
Y29uc3QgTQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQog
ICAgICwgbV9pZGVudGlmaWVyKGxvY2FsKQogICAgICwgbV9yZW1vdGVJZGVudGlmaWVyKHJlbW90
ZSkKKyAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKIHsKICAgICBMT0coTWVzc2FnZVBvcnRzLCAi
Q3JlYXRlZCBNZXNzYWdlUG9ydCAlcyAoJXApIGluIHByb2Nlc3MgJSIgUFJJdTY0LCBtX2lkZW50
aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgUHJvY2Vzczo6aWRlbnRpZmll
cigpLnRvVUludDY0KCkpOwogCkBAIC0yMjcsNiArMjI4LDE3IEBAIHZvaWQgTWVzc2FnZVBvcnQ6
OmNsb3NlKCkKIAogICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpmcm9tQ29udGV4dCgq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS5tZXNzYWdlUG9ydENsb3NlZChtX2lkZW50aWZpZXIp
OwogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisgICAgbV9ldmVudFF1ZXVlLmNsb3Nl
KCk7Cit9CisKK3ZvaWQgTWVzc2FnZVBvcnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikK
K3sKKyAgICBtX2V2ZW50UXVldWUuc3VzcGVuZCgpOworfQorCit2b2lkIE1lc3NhZ2VQb3J0Ojpy
ZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogdm9pZCBNZXNzYWdl
UG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0yNjgsNyArMjgwLDcgQEAgdm9pZCBNZXNzYWdl
UG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICBpZiAoY29udGV4dElzV29ya2Vy
ICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KS5pc0Nsb3NpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBhdXRv
IHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgICAgIGRp
c3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1lc3NhZ2Uu
bWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICBtX2V2ZW50UXVldWUuZW5x
dWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1l
c3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuaAppbmRleCBkYmQ1NTNiZDA1ZmRhOGY2NzMzMmYxZjM1NDAxYTM2OWMxZTkz
MGYwLi5hNGRjMjJhNzZkNmNiOWNmZWI0ZjBmYmVhMzc4N2ZmOWFkNzliYmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
Q2hhbm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBAIC04NCw2ICs4NSw4IEBAIHB1YmxpYzoKICAg
ICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZp
bmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVk
KCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBjbG9zZSgpOyB9CiAgICAgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKQEAgLTEyNiw2ICsxMjksNyBAQCBwcml2
YXRlOgogICAgIE1lc3NhZ2VQb3J0SWRlbnRpZmllciBtX3JlbW90ZUlkZW50aWZpZXI7CiAKICAg
ICBtdXRhYmxlIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNvdW50IHsgMSB9OworICAgIEdl
bmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCBhZjZkYzQ3YzNhYWZjMWUy
ODI2MDk1NzZiYmFiYTk4NDg0YWQ1MDQ0Li42YjkwMWZiNTFiM2VkM2Q5YTU2Y2QyMTk0NWQwOGIx
ZWM1YzkyYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC01Nyw3ICs1
Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2RlZmluZSBQQ0xPRyguLi4pIExPRyhQ
YWdlQ2FjaGUsICIlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBtYWtlU3RyaW5nKF9fVkFfQVJH
U19fKS51dGY4KCkuZGF0YSgpKQorI2RlZmluZSBQQ0xPRyguLi4pIFdURkxvZ0Fsd2F5cygiUGFn
ZUNhY2hlOiAlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBtYWtlU3RyaW5nKF9fVkFfQVJHU19f
KS51dGY4KCkuZGF0YSgpKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBjbGllbnQsIGNvbnN0
IFN0cmluZyYgcmVhc29uKQogewpAQCAtMTE2LDE1ICsxMTYsNiBAQCBzdGF0aWMgYm9vbCBjYW5D
YWNoZUZyYW1lKEZyYW1lJiBmcmFtZSwgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0
aWNMb2dnaQogICAgICAgICBQQ0xPRygiIERldGVybWluaW5nIGlmIHN1YmZyYW1lIHdpdGggVVJM
ICgiLCBjdXJyZW50VVJMLnN0cmluZygpLCAiKSBjYW4gYmUgY2FjaGVkOiIpOwogICAgICAKICAg
ICBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyLT5tYWlu
RG9jdW1lbnRFcnJvcigpLmlzTnVsbCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtTWFpbiBkb2N1
bWVudCBoYXMgYW4gZXJyb3IiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0
aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
Om1haW5Eb2N1bWVudEVycm9yS2V5KCkpOwotCi0gICAgICAgIGlmIChkb2N1bWVudExvYWRlci0+
bWFpbkRvY3VtZW50RXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpICYmIGRvY3VtZW50TG9hZGVyLT5z
dWJyZXNvdXJjZUxvYWRlcnNBcmVQYWdlQ2FjaGVBY2NlcHRhYmxlKCkpCi0gICAgICAgICAgICBQ
Q0xPRygiICAgIC1CdXQsIGl0IHdhcyBhIGNhbmNlbGxhdGlvbiBhbmQgYWxsIGxvYWRlcnMgZHVy
aW5nIHRoZSBjYW5jZWxhdGlvbiB3ZXJlIGxvYWRpbmcgaW1hZ2VzIG9yIFhIUi4iKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9CiAgICAgLy8g
RG8gbm90IGNhY2hlIGVycm9yIHBhZ2VzICh0aGVzZSBjYW4gYmUgcmVjb2duaXplZCBhcyBwYWdl
cyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBvciB1bnJlYWNoYWJsZSBVUkxzKS4KICAgICBpZiAoZG9j
dW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpICYmICFkb2N1bWVudExvYWRl
ci0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFBD
TE9HKCIgICAtRnJhbWUgaXMgYW4gZXJyb3IgcGFnZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCBkZTY2MmMxZDEzMjlhZWQwYTQxMjg0MGJjYTdkMzQxOTc3MmEw
ZWVjLi42MWRiYWQ1YjI4MDFkNDk1OWE3NjI3NzhlOGE2NzExNzJiNTRiODhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtOTcyLDcgKzk3Miw3IEBAIHByaXZhdGU6
CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9mdWxsc2NyZWVuVGFza1F1ZXVlOwogICAg
IEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzUXVldWU7
CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IG1fcGxheWVkVGltZVJhbmdlczsKLSAgICBHZW5lcmlj
RXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWluVGhyZWFkR2VuZXJpY0V2ZW50
UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBE
ZWZlcnJhYmxlVGFzazxUaW1lcj4gbV92b2x1bWVSZXZlcnRUYXNrUXVldWU7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKaW5kZXggNmVlYTkxZmIxOTkzYjA0Y2VlMzgwMzAwZGFiNzVmMDIwZWE5Mzhi
Ni4uMmQxNTBjNzExYzJkZmQ4ZTg3M2YzYjBjM2YwYjYxOTcwN2FlZmNiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAKQEAgLTYzMiwxMyArNjMyLDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoQ2FuCiAKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFz
QmFzZSYgY2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBH
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQotICAgICwgbV9kaXNwYXRjaENv
bnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRp
c3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKKyAgICAsIG1fZGlz
cGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0
RXZlbnQpCisgICAgLCBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRpbWVyKGNhbnZhcy5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KQorICAgICwgbV9yZXN0b3JlVGltZXIoY2Fu
dmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0
ZXMpCiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93
ZWRUb0NvbnNvbGUpCiAgICAgLCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24odHJ1ZSkKICAg
ICAsIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIoKnRoaXMsICZXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmcpCiB7CisgICAgbV9k
aXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBtX2Rp
c3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOworICAgIG1f
cmVzdG9yZVRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOworCiAgICAgcmVnaXN0ZXJXaXRoV2ViR0xT
dGF0ZVRyYWNrZXIoKTsKICAgICBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyLnN0
YXJ0T25lU2hvdChjaGVja0NvbnRleHRMb3NzSGFuZGxpbmdEZWxheSk7CiB9CkBAIC02NDYsMTMg
KzY1MSwxOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDbwogV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxH
cmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCiAgICAgOiBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQogICAg
ICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCi0gICAgLCBtX2Rpc3BhdGNoQ29udGV4dExv
c3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hD
b250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQorICAgICwgbV9kaXNwYXRjaENv
bnRleHRMb3N0RXZlbnRUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkK
KyAgICAsIG1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXIoY2FudmFzLnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNw
YXRjaENvbnRleHRDaGFuZ2VkRXZlbnQpCisgICAgLCBtX3Jlc3RvcmVUaW1lcihjYW52YXMuc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKICAg
ICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29s
ZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9jaGVja0ZvckNv
bnRleHRMb3NzSGFuZGxpbmdUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZykKIHsKKyAgICBtX2Rpc3BhdGNoQ29udGV4dExv
c3RFdmVudFRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOworICAgIG1fZGlzcGF0Y2hDb250ZXh0Q2hh
bmdlZEV2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CisgICAgbV9yZXN0b3JlVGltZXIuc3Vz
cGVuZElmTmVlZGVkKCk7CisKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdyb3Vw
OjpjcmVhdGUoKTsKICAgICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCgqdGhpcyk7CiAgICAg
CkBAIC01MTk3LDggKzUyMDcsMTcgQEAgY29uc3QgY2hhciogV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7Ci0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit7CisgICAgbV9pc1N1c3BlbmRl
ZCA9IHRydWU7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdW1lKCkK
K3sKKyAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7CiB9CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKQEAgLTYxNTEs
NiArNjE3MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzdG9yZVN0YXRl
c0FmdGVyVmVydGV4QXR0cmliMFNpbXVsYXRpb24oKQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCgpCiB7CisgICAgUkVMRUFTRV9BU1NF
UlQoIW1faXNTdXNwZW5kZWQpOwogICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKICAg
ICBpZiAoIWNhbnZhcykKICAgICAgICAgcmV0dXJuOwpAQCAtNjE2NCw2ICs2MTg0LDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQoKQog
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQoKQog
eworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKICAgICBBU1NFUlQobV9jb250
ZXh0TG9zdCk7CiAgICAgaWYgKCFtX2NvbnRleHRMb3N0KQogICAgICAgICByZXR1cm47CkBAIC02
NTQ1LDYgKzY1NjYsMTMgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWN5Y2xl
Q29udGV4dCgpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250
ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCiB7CisgICAgaWYgKCFtX2Rpc3BhdGNoQ29udGV4dENo
YW5nZWRFdmVudFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZGlzcGF0Y2hDb250ZXh0Q2hh
bmdlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50KCkKK3sKKyAgICBSRUxF
QVNFX0FTU0VSVCghbV9pc1N1c3BlbmRlZCk7CiAgICAgYXV0byogY2FudmFzID0gaHRtbENhbnZh
cygpOwogICAgIGlmICghY2FudmFzKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXgg
NzlmZDRlN2QzMjA2MDlhNDAxNzhhOTQ1OWY5ODYxMzlkZWZkNWQ3OS4uNzBkYjZmOGMwMmI0NTVi
ZjU5MDUyNDU2Yjc3MThhOWE0MDk1ZmJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNpbmNsdWRl
ICJTdXNwZW5kYWJsZVRpbWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJH
TEFueS5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCkBAIC0zOTEsNiArMzkyLDggQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JE
b2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN1c3BlbmQoUmVh
c29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CiAgICAgdm9p
ZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwpAQCAtNDUxLDkgKzQ1NCwx
MCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gbGlrZWx5IHRoYXQgdGhlcmUncyBubyBKYXZhU2NyaXB0
IG9uIHRoZSBzdGFjaywgYnV0IHRoYXQgbWlnaHQgYmUgZGVwZW5kZW50CiAgICAgLy8gb24gaG93
IGV4YWN0bHkgdGhlIHBsYXRmb3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0
LiBGb3IgYmV0dGVyCiAgICAgLy8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNw
YXRjaCBvZiB0aGUgZXZlbnQuCi0gICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRU
aW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGlt
ZXI7CisgICAgU3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudFRp
bWVyOwogICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZCB7IGZhbHNlIH07Ci0gICAgVGltZXIgbV9y
ZXN0b3JlVGltZXI7CisgICAgU3VzcGVuZGFibGVUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAg
IGJvb2wgbV9uZWVkc1VwZGF0ZTsKICAgICBib29sIG1fbWFya2VkQ2FudmFzRGlydHk7CkBAIC04
MDYsMTAgKzgxMCw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIHZhbGlkYXRlU2ltdWxhdGVkVmVy
dGV4QXR0cmliMChHQzNEdWludCBudW1WZXJ0ZXgpOwogICAgIHZvaWQgcmVzdG9yZVN0YXRlc0Fm
dGVyVmVydGV4QXR0cmliMFNpbXVsYXRpb24oKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0
TG9zdEV2ZW50KCk7Ci0gICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250ZXh0
IGxvc3QuCi0gICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KCk7Ci0KICAgICAvLyBXcmFwcGVy
IGZvciBHcmFwaGljc0NvbnRleHQzRDo6c3ludGhlc2l6ZUdMRXJyb3IgdGhhdCBzZW5kcyBhIG1l
c3NhZ2UgdG8gdGhlIEphdmFTY3JpcHQgY29uc29sZS4KICAgICBlbnVtIENvbnNvbGVEaXNwbGF5
UHJlZmVyZW5jZSB7IERpc3BsYXlJbkNvbnNvbGUsIERvbnREaXNwbGF5SW5Db25zb2xlIH07CiAg
ICAgdm9pZCBzeW50aGVzaXplR0xFcnJvcihHQzNEZW51bSwgY29uc3QgY2hhciogZnVuY3Rpb25O
YW1lLCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiwgQ29uc29sZURpc3BsYXlQcmVmZXJlbmNlID0g
RGlzcGxheUluQ29uc29sZSk7CkBAIC04NDIsNiArODQyLDExIEBAIHByb3RlY3RlZDoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdW5zaWduZWQgZ2V0TWF4SW5kZXgoY29uc3QgUmVmUHRyPEpT
Qzo6QXJyYXlCdWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciwgR0MzRGludHB0ciB1b2Zmc2V0LCBH
QzNEc2l6ZWkgbik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBkaXNwYXRjaENvbnRleHRMb3N0RXZl
bnQoKTsKKyAgICB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCgpOworICAgIC8vIEhl
bHBlciBmb3IgcmVzdG9yYXRpb24gYWZ0ZXIgY29udGV4dCBsb3N0LgorICAgIHZvaWQgbWF5YmVS
ZXN0b3JlQ29udGV4dCgpOworCiAgICAgYm9vbCB2YWxpZGF0ZUFycmF5QnVmZmVyVHlwZShjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHR5cGUsIE9wdGlvbmFsPEpTQzo6VHlwZWRB
cnJheVR5cGU+KTsKICAgICB2b2lkIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7CiAg
ICAgdm9pZCBjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmcoKTsKQEAgLTg1MCw2ICs4NTUsNyBA
QCBwcml2YXRlOgogCiAgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRva2VuIG1fdHJhY2tlclRva2Vu
OwogICAgIFRpbWVyIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXI7CisgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAppbmRleCAzY2RlODhkY2M0
YWZkNTQwN2IwOGM2OGFkOWMyZjE5MzY4NThhMjMwLi4wYmJkODU4MmY1OWYxMWEzNjkyM2ZjODU3
Zjc2YzMyODhlMmZmOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrTGlzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJh
c2UuaApAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogCiAgICAgSFRNTE1lZGlhRWxlbWVudCog
bV9lbGVtZW50OwogCi0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7Cisg
ICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCBkMjEzZjFhNjQyYWVlN2Y4NDRk
YTkwZDU2ZDE1NGNhNTYwNDcxMmExLi5iM2RmNDExMDdkZGJlZmQwM2UzYmQ0NGJmZDI1YTgzZTli
YTgxYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRDaGVja2VyLmNwcApAQCAtMTY5LDkgKzE2OSw0IEBAIHZvaWQgQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRDaGVja2VyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgICAgIG1f
cmVzb3VyY2UtPnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwogfQogCi1ib29sIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0Q2hlY2tlcjo6aXNYTUxIdHRwUmVxdWVzdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbG9hZGVyLmlzWE1MSHR0cFJlcXVlc3QoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0
Q2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hl
Y2tlci5oCmluZGV4IDlhNDAwMjYwODQ3MWJjODg1ODI5ZGE1YzZjMTc0ZGJhZmVmZmQ0NTkuLjFh
N2Y0ZTIxYTk2N2QxZmM1OThlMzUzYmU3Y2QyOTgyYzRhOWQwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmgKQEAgLTU5LDgg
KzU5LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBoYW5kbGVMb2FkaW5nRmFpbHVyZShE
b2N1bWVudFRocmVhZGFibGVMb2FkZXImLCB1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7CiAgICAgc3RhdGljIHZvaWQgdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXImLCBSZXNvdXJjZVJlcXVlc3QmJiwgdW5zaWduZWQgbG9uZywgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgYm9vbCBpc1hNTEh0dHBSZXF1ZXN0KCkgY29u
c3QgZmluYWw7Ci0KICAgICBEb2N1bWVudFRocmVhZGFibGVMb2FkZXImIG1fbG9hZGVyOwogICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOwogICAg
IFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCBmM2EwNjNjNGVjMGViZjQyNWVkNTQxNzdlMGQwNDU2MTM0OWI3OWNk
Li5jNDgxNmQ0M2IyZTkzMDUwZGQ3YzQyMzczMzc5ZWQ1ZDIxYTk1MmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEyNSw2MCArMTI1LDYgQEAgc3RhdGlj
IHZvaWQgc2V0QWxsRGVmZXJzTG9hZGluZyhjb25zdCBSZXNvdXJjZUxvYWRlck1hcCYgbG9hZGVy
cywgYm9vbCBkZWZlcnMpCiAgICAgICAgIGxvYWRlci0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMp
OwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRQZW5kaW5nQ2FjaGVkUmVzb3VyY2VMb2FkUHJldmVu
dFBhZ2VDYWNoZShDYWNoZWRSZXNvdXJjZSYgY2FjaGVkUmVzb3VyY2UpCi17Ci0gICAgaWYgKCFj
YWNoZWRSZXNvdXJjZS5pc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
c3dpdGNoIChjYWNoZWRSZXNvdXJjZS50eXBlKCkpIHsKLSAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpUeXBlOjpJbWFnZVJlc291cmNlOgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Oklj
b246Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6QmVhY29uOgotICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlR5cGU6OlBpbmc6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6
TGlua1ByZWZldGNoOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6VHlwZTo6TWFpblJlc291cmNlOgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6
OkNTU1N0eWxlU2hlZXQ6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6U2NyaXB0Ogot
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkZvbnRSZXNvdXJjZToKLSNpZiBFTkFCTEUo
U1ZHX0ZPTlRTKQotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlNWR0ZvbnRSZXNvdXJj
ZToKLSNlbmRpZgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1lZGlhUmVzb3VyY2U6
Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6UmF3UmVzb3VyY2U6Ci0gICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6VHlwZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZToKLSNpZiBFTkFCTEUoWFNM
VCkKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpYU0xTdHlsZVNoZWV0OgotI2VuZGlm
Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6
OlRleHRUcmFja1Jlc291cmNlOgotI2VuZGlmCi0jaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklG
RVNUKQotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q6
Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgfTsKLSAgICByZXR1cm4gIWNhY2hlZFJlc291
cmNlLmFyZUFsbENsaWVudHNYTUxIdHRwUmVxdWVzdHMoKTsKLX0KLQotc3RhdGljIGJvb2wgYXJl
QWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFibGUoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxv
YWRlcnMpCi17Ci0gICAgZm9yIChhdXRvJiBsb2FkZXIgOiBjb3B5VG9WZWN0b3IobG9hZGVycy52
YWx1ZXMoKSkpIHsKLSAgICAgICAgaWYgKCFsb2FkZXItPmZyYW1lTG9hZGVyKCkgfHwgIWxvYWRl
ci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gTWVtb3J5Q2Fj
aGU6OnNpbmdsZXRvbigpLnJlc291cmNlRm9yUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSwgbG9h
ZGVyLT5mcmFtZUxvYWRlcigpLT5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwotICAgICAg
ICBpZiAoIWNhY2hlZFJlc291cmNlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIC8vIE9ubHkgaW1hZ2UgYW5kIFhIUiBsb2FkcyBkbyBub3QgcHJldmVudCB0aGUgcGFnZSBm
cm9tIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCi0gICAgICAgIC8vIEFsbCBub24taW1hZ2UgbG9h
ZHMgd2lsbCBwcmV2ZW50IHRoZSBwYWdlIGZyb20gZW50ZXJpbmcgdGhlIFBhZ2VDYWNoZS4KLSAg
ICAgICAgaWYgKHNob3VsZFBlbmRpbmdDYWNoZWRSZXNvdXJjZUxvYWRQcmV2ZW50UGFnZUNhY2hl
KCpjYWNoZWRSZXNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAg
IHJldHVybiB0cnVlOwotfQotCiBEb2N1bWVudExvYWRlcjo6RG9jdW1lbnRMb2FkZXIoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0
ZURhdGEpCiAgICAgOiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSh0aGlzKSkK
QEAgLTMxNCwxMyArMjYwLDYgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKQog
ICAgIC8vIHRvIHN0b3AgbG9hZGluZy4gQmVjYXVzZSBvZiB0aGlzLCB3ZSBuZWVkIHRvIHNhdmUg
aXQgc28gd2UgZG9uJ3QgcmV0dXJuIGVhcmx5LgogICAgIGJvb2wgbG9hZGluZyA9IGlzTG9hZGlu
ZygpOwogCi0gICAgLy8gV2UgbWF5IHdhbnQgdG8gYXVkaXQgdGhlIGV4aXN0aW5nIHN1YnJlc291
cmNlIGxvYWRlcnMgd2hlbiB3ZSBhcmUgb24gYSBwYWdlIHdoaWNoIGhhcyBjb21wbGV0ZWQKLSAg
ICAvLyBsb2FkaW5nIGJ1dCB0aGVyZSBhcmUgc3VicmVzb3VyY2UgbG9hZHMgZHVyaW5nIGNhbmNl
bGxhdGlvbi4gVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHRoZQotICAgIC8vIGZyYW1lLT5zdG9w
TG9hZGluZygpIGNhbGwsIHdoaWNoIG1heSBldmljdCB0aGUgQ2FjaGVkUmVzb3VyY2VzLCB3aGlj
aCB3ZSByZWx5IG9uIHRvIGNoZWNrCi0gICAgLy8gdGhlIHR5cGUgb2YgdGhlIHJlc291cmNlIGxv
YWRzLgotICAgIGlmIChsb2FkaW5nICYmIG1fY29tbWl0dGVkICYmICFtYWluUmVzb3VyY2VMb2Fk
ZXIoKSAmJiAhbV9zdWJyZXNvdXJjZUxvYWRlcnMuaXNFbXB0eSgpKQotICAgICAgICBtX3N1YnJl
c291cmNlTG9hZGVyc0FyZVBhZ2VDYWNoZUFjY2VwdGFibGUgPSBhcmVBbGxMb2FkZXJzUGFnZUNh
Y2hlQWNjZXB0YWJsZShtX3N1YnJlc291cmNlTG9hZGVycyk7Ci0KICAgICBpZiAobV9jb21taXR0
ZWQpIHsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBzdG9wIHRoZSBmcmFtZSBpZiB0aGUgZG9jdW1l
bnQgbG9hZGVyIGlzIGxvYWRpbmcsIG9yIGlmIGl0IGlzIGRvbmUgbG9hZGluZyBidXQKICAgICAg
ICAgLy8gc3RpbGwgIHBhcnNpbmcuIEZhaWx1cmUgdG8gZG8gc28gY2FuIGNhdXNlIGEgd29ybGQg
bGVhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggOTk4ZmY1YTk3
Yzg2NzBiZDBiY2M2Njc0OTJiMDc5OTJiZTg0MDcyMS4uYTg1YTA3NjVmNmY2YjgxNmRlMmFjZTNk
NTdjY2QwYjA0YmI2MmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
QEAgLTI2OCw4ICsyNjgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaWRDcmVhdGVHbG9iYWxIaXN0
b3J5RW50cnkoKSBjb25zdCB7IHJldHVybiBtX2RpZENyZWF0ZUdsb2JhbEhpc3RvcnlFbnRyeTsg
fQogICAgIHZvaWQgc2V0RGlkQ3JlYXRlR2xvYmFsSGlzdG9yeUVudHJ5KGJvb2wgZGlkQ3JlYXRl
R2xvYmFsSGlzdG9yeUVudHJ5KSB7IG1fZGlkQ3JlYXRlR2xvYmFsSGlzdG9yeUVudHJ5ID0gZGlk
Q3JlYXRlR2xvYmFsSGlzdG9yeUVudHJ5OyB9CiAKLSAgICBib29sIHN1YnJlc291cmNlTG9hZGVy
c0FyZVBhZ2VDYWNoZUFjY2VwdGFibGUoKSBjb25zdCB7IHJldHVybiBtX3N1YnJlc291cmNlTG9h
ZGVyc0FyZVBhZ2VDYWNoZUFjY2VwdGFibGU7IH0KLQogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGlu
Zyhib29sKTsKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZURhdGFCdWZmZXJpbmdQb2xpY3koRGF0
YUJ1ZmZlcmluZ1BvbGljeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNWU3OTkxNjgwMGFlODYwNjE0NzQ2YzlkMTUx
MTM5NTk1MDEwNDNhYS4uYTliZjRiNzEzODJlYTY0YzE5YjMwOThmYjZkMzU2YjY3MmZlNTNkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHAKQEAgLTY1NSwxMSArNjU1LDYgQEAgYm9vbCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6
OmlzQWxsb3dlZFJlZGlyZWN0KGNvbnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBtX3NhbWVPcmln
aW5SZXF1ZXN0ICYmIHNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdCh1cmwpOwogfQogCi1ib29s
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6aXNYTUxIdHRwUmVxdWVzdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fb3B0aW9ucy5pbml0aWF0b3IgPT0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycygpLnhtbGh0dHByZXF1ZXN0OwotfQotCiBTZWN1cml0eU9yaWdpbiYgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
b3JpZ2luID8gKm1fb3JpZ2luIDogbV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGNh
MjVlYzViZDcxZGM5YTg5ZTE4NTVmYjZmMGE2ZmJiMzNkOWUyOTMuLmU5ZTQ4ZDJjYmEwMGM2OWU5
MTc5NmYyOWQ3OTYzNmZiYTI5ZWM1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgaXNBbGxvd2VkUmVkaXJlY3QoY29uc3QgVVJMJik7CiAg
ICAgICAgIGJvb2wgaXNBbGxvd2VkQnlDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgVVJMJiwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQpOwogCi0gICAg
ICAgIGJvb2wgaXNYTUxIdHRwUmVxdWVzdCgpIGNvbnN0IGZpbmFsOwotCiAgICAgICAgIFNlY3Vy
aXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogICAgICAgICBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3kmIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA3NjFhMTBi
YjhkMTgzNjk4YTY4OTA4NzMyMTNmOWQ0ODg0NjFhNzU1Li43MDMzYzUxZGQ5ZGI3OTExMTAwZWNl
YzJmN2UyNmRjNzhjNjgwMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKQEAgLTg2OSwxOCArODY5LDYgQEAgdW5zaWduZWQgQ2FjaGVkUmVz
b3VyY2U6Om92ZXJoZWFkU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNpemVvZihDYWNoZWRSZXNv
dXJjZSkgKyBtX3Jlc3BvbnNlLm1lbW9yeVVzYWdlKCkgKyBrQXZlcmFnZUNsaWVudHNIYXNoTWFw
U2l6ZSArIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxlbmd0aCgpICogMjsKIH0K
IAotYm9vbCBDYWNoZWRSZXNvdXJjZTo6YXJlQWxsQ2xpZW50c1hNTEh0dHBSZXF1ZXN0cygpIGNv
bnN0Ci17Ci0gICAgaWYgKHR5cGUoKSAhPSBUeXBlOjpSYXdSZXNvdXJjZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpIHsKLSAgICAg
ICAgaWYgKCFjbGllbnQua2V5LT5pc1hNTEh0dHBSZXF1ZXN0KCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIENhY2hlZFJlc291
cmNlOjpzZXRMb2FkUHJpb3JpdHkoY29uc3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+
JiBsb2FkUHJpb3JpdHkpCiB7CiAgICAgaWYgKGxvYWRQcmlvcml0eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggMmZmZTJiNDE4Nzk5N2VlZmRk
NDE1ZTBlZGJlODAyZGMxNzJjYWU2YS4uZmMzMGIwZjI0Mjc5MTI5MTc0ZDhhNDI2OGU1Y2RhOTgw
MDRhZDBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmgKQEAgLTE2NSw4ICsxNjUsNiBAQCBwdWJsaWM6CiAKICAgICBTdWJyZXNvdXJjZUxvYWRlciog
bG9hZGVyKCkgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KIAotICAgIGJvb2wgYXJlQWxsQ2xp
ZW50c1hNTEh0dHBSZXF1ZXN0cygpIGNvbnN0OwotCiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3Qg
eyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkltYWdlUmVzb3VyY2U7IH0KICAgICAvLyBGSVhNRTog
Q2FjaGVkUmF3UmVzb3VyY2UgY291bGQgYmUgYSBtYWluIHJlc291cmNlLCBhbiBhdWRpby92aWRl
byByZXNvdXJjZSwgb3IgYSByYXcgWEhSL2ljb24gcmVzb3VyY2UuCiAgICAgYm9vbCBpc01haW5P
ck1lZGlhT3JJY29uT3JSYXdSZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBl
OjpNYWluUmVzb3VyY2UgfHwgdHlwZSgpID09IFR5cGU6Ok1lZGlhUmVzb3VyY2UgfHwgdHlwZSgp
ID09IFR5cGU6Okljb24gfHwgdHlwZSgpID09IFR5cGU6OlJhd1Jlc291cmNlIHx8IHR5cGUoKSA9
PSBUeXBlOjpCZWFjb24gfHwgdHlwZSgpID09IFR5cGU6OlBpbmc7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKaW5kZXggMzBiYjFl
ODc2NWIxYTcyMWE1NzM1ODI5MTE5Y2RiNDI5OTFhYWI5Ni4uNzkzNjc3ZGI1ZTc0YzEwMjFjOGU2
YTJlYzk4ZGZkODA4NzFhY2I0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfkNhY2hlZFJlc291cmNlQ2xpZW50KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlJikgeyB9
Ci0gICAgdmlydHVhbCBib29sIGlzWE1MSHR0cFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RhdGljIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSBleHBlY3RlZFR5cGUo
KSB7IHJldHVybiBCYXNlUmVzb3VyY2VUeXBlOyB9CiAgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJj
ZUNsaWVudFR5cGUgcmVzb3VyY2VDbGllbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gZXhwZWN0ZWRU
eXBlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggN2Y1NzUzN2QzNDM0ZGIwNTA0
OWMwM2NiNzdkMmEyZjUwZTQzNTQ5OC4uZGQxZTlkYmExOThhOGQyNDk5OGMzODdhY2EwZGIzYzIz
ZWYzYWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBw
cml2YXRlOgogYm9vbCBOZXN0ZWRUaW1lcnNNYXA6OmlzVHJhY2tpbmdOZXN0ZWRUaW1lcnMgPSBm
YWxzZTsKIAogRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgU2Vjb25kcyBpbnRl
cnZhbCwgYm9vbCBzaW5nbGVTaG90KQotICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0KQor
ICAgIDogU3VzcGVuZGFibGVUaW1lckJhc2UoJmNvbnRleHQpCiAgICAgLCBtX25lc3RpbmdMZXZl
bChjb250ZXh0LnRpbWVyTmVzdGluZ0xldmVsKCkpCiAgICAgLCBtX2FjdGlvbihXVEZNb3ZlKGFj
dGlvbikpCiAgICAgLCBtX29yaWdpbmFsSW50ZXJ2YWwoaW50ZXJ2YWwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmgKaW5kZXggYjk3NTVhNzk1YjY1NmVjNTQyMzQ4ZjgwM2Y2ZGNhNjVkNjlhNmQyMy4uN2Q0
ODAxZmYzMTJlOTJhMGIzOWQyYjAwYzIyMjQ3MTE2OGJhOWYyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5F
bGVtZW50OwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwogCi1jbGFzcyBET01UaW1lciBmaW5hbCA6
IHB1YmxpYyBSZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXIgewor
Y2xhc3MgRE9NVGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01UaW1lcj4sIHB1Ymxp
YyBTdXNwZW5kYWJsZVRpbWVyQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9NVGlt
ZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNzIsNyArNzIs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1
bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGluZ1N0YXRlSWZOZWNlc3Nhcnko
Y29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKIAotICAgIC8vIFN1c3BlbmRhYmxlVGltZXIKKyAg
ICAvLyBTdXNwZW5kYWJsZVRpbWVyQmFzZQogICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxN
b25vdG9uaWNUaW1lPiBhbGlnbmVkRmlyZVRpbWUoTW9ub3RvbmljVGltZSkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5k
ZXggMTc5NmZlODVhMDUxMTlhZjZiYzdlZDBkNDFjZWU0ZDI3ZmFhNDdkNi4uYjllNjE4NjQ4OWQ0
OGZhZGZjYjkzNDViMjJkZjEwNzJhMWI1NjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcApAQCAtMjMzLDExICsyMzMsNiBAQCBTdHJpbmcgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpvdGhlcktleSgpCiAgICAgcmV0dXJuICJvdGhlciJfczsKIH0K
IAotU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWFpbkRvY3VtZW50RXJyb3JLZXkoKQot
ewotICAgIHJldHVybiAibWFpbkRvY3VtZW50RXJyb3IiX3M7Ci19Ci0KIFN0cmluZyBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6Om1haW5SZXNvdXJjZUtleSgpCiB7CiAgICAgcmV0dXJuICJtYWluUmVz
b3VyY2UiX3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaApp
bmRleCBmZDk0NGYwODAyYjQ5YmM2YmIzY2YwOTJiZmU5YmU0M2RmNzFmMDc0Li5kNDU5YzRkMjRm
MzE0MTVlMjZkOThlNGRlNTgwMDQ1YmY2NWVjYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTg4LDcgKzg4LDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgaXNSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YUtleSgp
OwogICAgIHN0YXRpYyBTdHJpbmcgbG9hZGluZ0tleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgaXNM
b2FkaW5nS2V5KCk7Ci0gICAgc3RhdGljIFN0cmluZyBtYWluRG9jdW1lbnRFcnJvcktleSgpOwog
ICAgIHN0YXRpYyBTdHJpbmcgbWFpblJlc291cmNlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBt
ZWRpYUxvYWRlZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbWVkaWFMb2FkaW5nRmFpbGVkS2V5
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAppbmRleCA3NmVkMTk3
YWZiYTMyMzYyYTQxZTIwNjMzNTAxZGUzYzQyMThjMmIyLi5lN2U1MTdiMzNhYTYxNWNhZmI3NTJl
YjkwODVjMjA5ZDExODI0ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3Bl
bmRhYmxlVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5jcHAKQEAgLTMxLDE5ICszMSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN1c3Bl
bmRhYmxlVGltZXI6OlN1c3BlbmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKK1N1c3BlbmRhYmxlVGltZXJC
YXNlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiB7CiB9CiAKLVN1c3BlbmRhYmxlVGlt
ZXI6On5TdXNwZW5kYWJsZVRpbWVyKCkgPSBkZWZhdWx0OworU3VzcGVuZGFibGVUaW1lckJhc2U6
On5TdXNwZW5kYWJsZVRpbWVyQmFzZSgpID0gZGVmYXVsdDsKIAotYm9vbCBTdXNwZW5kYWJsZVRp
bWVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAorYm9vbCBTdXNwZW5kYWJsZVRpbWVyQmFz
ZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNBY3RpdmUoKTsK
IH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdG9wKCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1l
ckJhc2U6OnN0b3AoKQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFz
ZTo6c3RvcCgpOwpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0b3Ao
KQogICAgIGRpZFN0b3AoKTsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pCiB7CiAgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CiAgICAgbV9z
dXNwZW5kZWQgPSB0cnVlOwpAQCAtNjksNyArNjksNyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKICAgICB9CiB9CiAKLXZvaWQgU3VzcGVuZGFi
bGVUaW1lcjo6cmVzdW1lKCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnJlc3VtZSgpCiB7
CiAgICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKICAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwpAQCAt
NzgsMTYgKzc4LDE2IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6cmVzdW1lKCkKICAgICAgICAg
c3RhcnQobV9zYXZlZE5leHRGaXJlSW50ZXJ2YWwsIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCk7CiB9
CiAKLWJvb2wgU3VzcGVuZGFibGVUaW1lcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lv
bigpIGNvbnN0Citib29sIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTdXNw
ZW5kYWJsZVRpbWVyOjpkaWRTdG9wKCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OmRpZFN0
b3AoKQogewogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OmNhbmNlbCgpCit2b2lkIFN1c3Bl
bmRhYmxlVGltZXJCYXNlOjpjYW5jZWwoKQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAg
ICAgIFRpbWVyQmFzZTo6c3RvcCgpOwpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFN1c3BlbmRhYmxl
VGltZXI6OmNhbmNlbCgpCiAgICAgICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CiB9CiAKLXZvaWQg
U3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkK
K3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0
SW50ZXJ2YWwpCiB7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjpz
dGFydFJlcGVhdGluZyhyZXBlYXRJbnRlcnZhbCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBT
dXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyhTZWNvbmRzIHJlcGVhdEludGVydmFsKQog
ICAgIH0KIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QoU2Vjb25kcyBp
bnRlcnZhbCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChTZWNvbmRz
IGludGVydmFsKQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6
c3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFN1c3BlbmRh
YmxlVGltZXI6OnN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKQogICAgIH0KIH0KIAotU2Vj
b25kcyBTdXNwZW5kYWJsZVRpbWVyOjpyZXBlYXRJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFN1
c3BlbmRhYmxlVGltZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3N1c3BlbmRlZCkKICAgICAgICAgcmV0dXJuIFRpbWVyQmFzZTo6cmVwZWF0SW50ZXJ2YWwoKTsK
QEAgLTEyNiw3ICsxMjYsNyBAQCBTZWNvbmRzIFN1c3BlbmRhYmxlVGltZXI6OnJlcGVhdEludGVy
dmFsKCkgY29uc3QKICAgICByZXR1cm4gMF9zOwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6
OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKK3ZvaWQgU3VzcGVuZGFibGVUaW1l
ckJhc2U6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKIHsKICAgICBpZiAoIW1f
c3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEp
OwpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudEZpcmVJ
bnRlcnZhbChTZWNvbmRzIGRlbHRhKQogICAgIH0KIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVy
OjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKK3ZvaWQgU3VzcGVuZGFibGVU
aW1lckJhc2U6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogewogICAgIGlm
ICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFs
KGRlbHRhKTsKQEAgLTE1Myw0ICsxNTMsOSBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1Z21l
bnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogICAgIH0KIH0KIAorY29uc3QgY2hhciog
U3VzcGVuZGFibGVUaW1lcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJTdXNwZW5kYWJsZVRpbWVyIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAppbmRleCAzYzNkNDllMDU4YWIxMzE3NDdl
YjQ5YmIwYzkzYTBmZDI5NDUxOGZkLi5mM2VmMTIzMDBlNWE1NjU5ZDg4NTE4MWZjMDgzNjU2ODli
MDYxZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaApAQCAtMjksMjAg
KzI5LDIxIEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKIAorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU3VzcGVuZGFibGVUaW1lciA6IHByaXZh
dGUgVGltZXJCYXNlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIFN1c3BlbmRhYmxl
VGltZXJCYXNlIDogcHJpdmF0ZSBUaW1lckJhc2UsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFN1c3Bl
bmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotICAgIHZpcnR1YWwgflN1c3Bl
bmRhYmxlVGltZXIoKTsKKyAgICBleHBsaWNpdCBTdXNwZW5kYWJsZVRpbWVyQmFzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CisgICAgdmlydHVhbCB+U3VzcGVuZGFibGVUaW1lckJhc2UoKTsK
IAogICAgIC8vIEEgaG9vayBmb3IgZGVyaXZlZCBjbGFzc2VzIHRvIHBlcmZvcm0gY2xlYW51cC4K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgpOwogCi0gICAgLy8gUGFydCBvZiBUaW1lckJhc2Ug
aW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFibGVUaW1lciBjbGllbnRzLCBtb2RpZmllZCB0byB3
b3JrIHdoZW4gc3VzcGVuZGVkLgorICAgIC8vIFBhcnQgb2YgVGltZXJCYXNlIGludGVyZmFjZSB1
c2VkIGJ5IFN1c3BlbmRhYmxlVGltZXJCYXNlIGNsaWVudHMsIG1vZGlmaWVkIHRvIHdvcmsgd2hl
biBzdXNwZW5kZWQuCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIFRpbWVyQmFz
ZTo6aXNBY3RpdmUoKSB8fCAobV9zdXNwZW5kZWQgJiYgbV9zYXZlZElzQWN0aXZlKTsgfQogICAg
IGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N1c3BlbmRlZDsgfQogCkBAIC03
Nyw0ICs3OCwzMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zYXZlZElzQWN0aXZlIHsgZmFsc2Ug
fTsKIH07CiAKK2NsYXNzIFN1c3BlbmRhYmxlVGltZXIgZmluYWwgOiBwdWJsaWMgU3VzcGVuZGFi
bGVUaW1lckJhc2UgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3MsIHR5cGVuYW1lIFRpbWVyRmlyZWRC
YXNlQ2xhc3M+CisgICAgU3VzcGVuZGFibGVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBUaW1lckZpcmVkQ2xhc3MmIG9iamVjdCwgdm9pZCAoVGltZXJGaXJlZEJhc2VDbGFz
czo6KmZ1bmN0aW9uKSgpKQorICAgICAgICA6IFN1c3BlbmRhYmxlVGltZXJCYXNlKGNvbnRleHQp
CisgICAgICAgICwgbV9mdW5jdGlvbihzdGQ6OmJpbmQoZnVuY3Rpb24sICZvYmplY3QpKQorICAg
IHsKKyAgICB9CisKKyAgICBTdXNwZW5kYWJsZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKKyAgICAgICAgOiBT
dXNwZW5kYWJsZVRpbWVyQmFzZShjb250ZXh0KQorICAgICAgICAsIG1fZnVuY3Rpb24oV1RGTW92
ZShmdW5jdGlvbikpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZpcmVkKCkg
ZmluYWwKKyAgICB7CisgICAgICAgIG1fZnVuY3Rpb24oKTsKKyAgICB9CisKKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisKKyAgICBXVEY6OkZ1bmN0
aW9uPHZvaWQgKCk+IG1fZnVuY3Rpb247Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTlmODEzYjBiOTIyMTAzNjQ4
YTg1ZmNlMDA5MzVmYS4uMjIxMDFhYzU3MzUwZDVkNWFlNzc3M2IwYjU2ZmNhODY5ZmM3MDUyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
Ildvcmtlci5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjcsNiArNjgs
NyBAQCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6
IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMp
KQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV9ldmVudFF1ZXVl
KCp0aGlzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRl
ZExpc3RlbmVyKSB7CkBAIC0xNDQsMTIgKzE0NiwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3Jr
ZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIG1lc3Nh
Zwogdm9pZCBXb3JrZXI6OnRlcm1pbmF0ZSgpCiB7CiAgICAgbV9jb250ZXh0UHJveHkudGVybWlu
YXRlV29ya2VyR2xvYmFsU2NvcGUoKTsKKyAgICBtX2V2ZW50UXVldWUuY2FuY2VsQWxsRXZlbnRz
KCk7CiB9CiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkg
Y29uc3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0byBz
dXNwZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRvIHBh
Z2UgY2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFdvcmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRRdWV1
ZS5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRR
dWV1ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKQEAgLTE2MCwxMSArMTcyLDEyIEBAIGNvbnN0IGNoYXIqIFdvcmtlcjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB2b2lkIFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVy
bWluYXRlKCk7CisgICAgbV9ldmVudFF1ZXVlLmNsb3NlKCk7CiB9CiAKIGJvb2wgV29ya2VyOjpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5o
YXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0
eSgpOworICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBB
Y3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IG1fZXZlbnRRdWV1ZS5oYXNQ
ZW5kaW5nRXZlbnRzKCk7CiB9CiAKIHZvaWQgV29ya2VyOjpub3RpZnlOZXR3b3JrU3RhdGVDaGFu
Z2UoYm9vbCBpc09uTGluZSkKQEAgLTE5Miw3ICsyMDUsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5
RmluaXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZh
aWxlZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
OlllcykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olll
cykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjE1LDIwIEBAIHZvaWQg
V29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
Y3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChS
ZWY8RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZN
b3ZlKGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVu
dCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2V2
ZW50UXVldWUuaXNTdXNwZW5kZWQoKSk7CisKKyAgICBBYnN0cmFjdFdvcmtlcjo6ZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAhZXZlbnQuZGVm
YXVsdFByZXZlbnRlZCgpICYmIGV2ZW50LmlzVHJ1c3RlZCgpICYmIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkgeworICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVu
dD4oZXZlbnQpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlcG9ydEV4Y2Vw
dGlvbihlcnJvckV2ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVudC5saW5lbm8oKSwgZXJyb3JFdmVu
dC5jb2xubygpLCBlcnJvckV2ZW50LmZpbGVuYW1lKCksIG51bGxwdHIsIG51bGxwdHIpOworICAg
IH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5k
ZXggMjNjMzFhMDA4NDA4MWFkOWEwZWUyY2IwODJlZjExODVmYWU4NDk1NC4uNTcxY2Y2N2FhNTdm
MzNlYzA1ZDgwYWM2M2NjNjVmOTc2MTFkMzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02Nyw5ICs2OCwxMyBAQCBwdWJs
aWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCisgICAgdm9pZCBkaXNwYXRjaEV2ZW50
KEV2ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldElu
dGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdvcmtlckV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSk7CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgp
IGZpbmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwor
ICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCkBAIC05MSw2ICs5
OCw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3dvcmtlckNyZWF0aW9uVGltZTsK
ICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IHsg
ZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRpbWVGbGFnczsKKyAgICBHZW5l
cmljRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmlu
ZGV4IDVlM2UwNTRiZjUyZTJjMTBjMTFkZWZmNjlhYjc2ZTk3NzFlY2I0NWEuLjU5Zjc5NjA2MjBj
ODg3NTc0NDJkNTk0OGJlY2JjZDAwMWYyMGZhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmIG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHBv
cnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNzYWdl
LnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50
KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2UucmVs
ZWFzZU5vbk51bGwoKSkpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChNZXNz
YWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VO
b25OdWxsKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTU0LDE4ICsxNTQsMTQgQEAgYm9vbCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3Jp
cHRFeGVjdXRpb25Db24KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0gZXJy
b3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0ZWRD
b3B5KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIHsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlz
LCBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9
IHNvdXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgV29ya2VyKiB3b3JrZXJPYmplY3QgPSB0
aGlzLT53b3JrZXJPYmplY3QoKTsKICAgICAgICAgaWYgKCF3b3JrZXJPYmplY3QpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRoZSBh
c2tlZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxkICph
bHdheXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgogICAg
ICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9y
IGluIE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBsb25n
ZXIgZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVjKSwg
YnV0IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCi0KLSAgICAgICAgYXV0byBldmVudCA9IEVy
cm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyLCB7IH0pOwotICAgICAgICB3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwotICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCi0gICAgICAgICAg
ICBjb250ZXh0LnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgc291cmNlVVJMLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgd29ya2VyT2Jq
ZWN0LT5lbnF1ZXVlRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNl
VVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDA2YzcwMjU1MzA5NzRkYTk4ZDc3NGVkYjNl
NGIxMTExYzIyN2IyMzEuLmVlYjQ5YWUxYmI3ZjkxOGZkMGIzMTQwNzQyYmUwOGI3ZWY5NGYzYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCB2
b2lkIFdlYlZpZXc6OmZyYW1lUmVjdChSRUNUKiByZWN0KQogICAgIDo6R2V0V2luZG93UmVjdCht
X3ZpZXdXaW5kb3csIHJlY3QpOwogfQogCi1jbGFzcyBXaW5kb3dDbG9zZVRpbWVyIGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXIgeworY2xhc3MgV2luZG93Q2xvc2VUaW1l
ciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFdpbmRvd0Nsb3NlVGltZXIqIGNyZWF0ZShXZWJWaWV3Kik7CiAKQEAgLTE0
NjYsNyArMTQ2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3Zl
cnJpZGU7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJXaW5kb3dDbG9zZVRpbWVyIjsgfQogCi0gICAgLy8gU3VzcGVuZGFibGVU
aW1lciBBUEkuCisgICAgLy8gU3VzcGVuZGFibGVUaW1lckJhc2UgQVBJLgogICAgIHZvaWQgZmly
ZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKQEAgLTE0OTEsNyArMTQ5
MSw3IEBAIFdpbmRvd0Nsb3NlVGltZXIqIFdpbmRvd0Nsb3NlVGltZXI6OmNyZWF0ZShXZWJWaWV3
KiB3ZWJWaWV3KQogfQogCiBXaW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dDbG9zZVRpbWVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBTdXNw
ZW5kYWJsZVRpbWVyKGNvbnRleHQpCisgICAgOiBTdXNwZW5kYWJsZVRpbWVyQmFzZSgmY29udGV4
dCkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQogewogICAgIEFTU0VSVF9BUkcod2ViVmlldywg
d2ViVmlldyk7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBXaW5kb3dDbG9zZVRpbWVyOjpXaW5kb3dD
bG9zZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlZpZXcqIHdlYgog
CiB2b2lkIFdpbmRvd0Nsb3NlVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKQogewotICAgIFN1c3Bl
bmRhYmxlVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKKyAgICBTdXNwZW5kYWJsZVRpbWVyQmFz
ZTo6Y29udGV4dERlc3Ryb3llZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmgKaW5kZXggMzU4MTc0Mzc1NDlkNmNkOTc2NjA2YjQ1ZjRjMjUxYzBhMmVi
ODdiZS4uMjM0ODBiNjhiZTZkM2FlNTJmNjNlN2Q0YWUxNmVjZDA5MGZkODc5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuaApAQCAtNjgwLDcgKzY4MCw3IEBAIHByb3RlY3RlZDoKIAogICAg
IHN0YXRpYyBib29sIHNfYWxsb3dTaXRlU3BlY2lmaWNIYWNrczsKIAotICAgIFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXIqIG1fY2xvc2VXaW5kb3dUaW1lciB7IG51bGxwdHIgfTsKKyAgICBXZWJD
b3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZSogbV9jbG9zZVdpbmRvd1RpbWVyIHsgbnVsbHB0ciB9
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUUkFDS01PVVNFRVZFTlQ+IG1fbW91c2VPdXRUcmFja2Vy
OwogCiAgICAgSFdORCBtX3RvcExldmVsUGFyZW50IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiY2Qw
NDY2MmJjY2EwMjAxNjI3MjU0MGM0MWVmMzFjYjVjODBkMjIuLmI4ZDE3OGFmNjJjMTUyNjgwMjkz
ZmFlYjc1NDlhMjY4MTkxMjkxNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxOS0wOS0yNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VzIHVzaW5nIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCBmYWlsIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjMxOAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3ODM2MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdl
LWNhY2hlLmh0bWw6IEFkZGVkLgorCisyMDE5LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29ya2VycyBjYW5ub3QgZW50ZXIg
dGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzY0MDcz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFn
ZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKworMjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIElEQlRyYW5zYWN0aW9uIC8gSURCT2JqZWN0U3Rv
cmUgc2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBiYWNrIC8gZm9y
d2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc2MDEwNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdl
LWNhY2hlLmh0bWw6IEFkZGVkLgorCisyMDE5LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgZnJlcXVlbnRseSBmYWlscyB0byBlbnRlciB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlIGR1ZSB0byBwZW5kaW5nIGxvYWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyODkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU1NzU4NTA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9h
ZC5odG1sOiBBZGRlZC4KKworMjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIElEQlJlcXVlc3Qgc2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFnZSBmcm9t
IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU3NDQ3MTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLmh0bWw6IEFkZGVkLgorCiAy
MDE5LTA5LTI2ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBpT1MgXSBMYXlvdXQgVGVzdCBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtc2Ny
b2xsaW5nLXdpdGgta2V5Ym9hcmQuaHRtbCBpcyBhIEZsYWt5IEZhaWx1cmUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1w
YWdlLWNhY2hlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODI1NTM3ZTNiYjZjMmE4MjVlNjY5
ZTY1YmE1NzRkZjVhODNmMjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
aXMgYWJsZSB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBDYW52YXMgZGlkIG5vdCBjcmFzaCBvbiByZXNpemUuCitw
YWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBj
YWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2Ug
Y2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wt
cGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdl
YmdsLXBhZ2UtY2FjaGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmEzMjc5MzEzMGVkYWM1NmViY2IyMDk2
OTU4OGI5NGM3YzY4NDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorI2V4YW1wbGUgeworICB3aWR0aDogMTAwJTsKKyAgaGVpZ2h0
OiAxMDAlOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBh
Z2Ugd2l0aCBhIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBpcyBhYmxlIHRvIGVudGVyIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuJyk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgZGVidWcoInBhZ2Vz
aG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBwYWdlIGNh
Y2hlIik7CisgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlBhZ2Ug
ZW50ZXJlZCBwYWdlIGNhY2hlIik7CisgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQorfSk7CisK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikg
KyAiZW50ZXJpbmcgcGFnZSBjYWNoZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfSk7CisKK2Z1bmN0aW9uIHN0YXJ0KCkKK3sK
KyAgICBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOworICAgIGds
ID0gV2ViR0xUZXN0VXRpbHMuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7CisKKyAgICBzZXRUaW1l
b3V0KCgpID0+IHsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uLy4uL2hpc3RvcnkvcmVz
b3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgIH0sIDApOworfQorCit0ZXN0UGFz
c2VkKCJDYW52YXMgZGlkIG5vdCBjcmFzaCBvbiByZXNpemUuIik7Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKworPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8Y2FudmFzIGlkPSJleGFtcGxlIj48
L2NhbnZhcz4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ0
MzE1NDljODZiMjViZmIxYjgxNTk1OTk3ZjZjNGM1YjMxZWE1NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIGdvIGlu
dG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdl
c2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBiZWZvcmUg
cmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3BhZ2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBjYWNo
ZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2UgY2Fj
aGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzU0MmMzNjk2ZDNkMzBkOWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHBhZ2VzIHdpdGggd29ya2VycyBjYW4gZ28gaW50byB0aGUgcGFnZSBjYWNo
ZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgcmVzdG9yZWRGcm9tUGFnZUNhY2hl
ID0gZmFsc2U7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9u
KGV2ZW50KSB7CisgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIg
OiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIpOworICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7
CisgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGVudGVyZWQgcGFnZSBjYWNoZSIpOworICAgICAgcmVz
dG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgfQorfSk7CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VoaWRl
IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgcGFnZSBj
YWNoZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorfSk7CisKK2xldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOworb25sb2FkID0gKCkg
PT4geworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXItZXZlbnQtbGlz
dGVuZXIuanMnKTsKKyAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CisgICAgICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgiIik7CisgICAgfSwgMSk7CisKKyAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZ0KSB7CisgICAgICAgIGlmIChmaXJzdE1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGZpcnN0
TWVzc2FnZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2Fn
ZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgICAgIHdpbmRv
dy5sb2NhdGlvbiA9ICIuLi9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1s
IjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdG9yZWRG
cm9tUGFnZUNhY2hlKSB7CisgICAgICAgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxz
ZTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgYWZ0ZXIgcmVzdG9y
aW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9CisgICAgfTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1s
b2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXBlbmRpbmctbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkZDc0NjRjNDZh
NjBmNmYzY2VhNGRjN2E1YTlmMzNkY2ViYTM1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9hZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIHN1
YnJlc291cmNlIGxvYWRzIGdvZXMgaW50byB0aGUgcGFnZSBjYWNoZS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0g
ZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRl
ciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9hZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ1OTUzNzVkMjE3N2YzNWYyMGRhYzRjOWNkZDRlODg3M2Q3YmUwMmQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMg
dGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIHN1YnJlc291cmNlIGxvYWRzIGdvZXMgaW50byB0aGUg
cGFnZSBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1Zygi
cGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNh
Y2hlIik7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQo
IlBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSIpOwor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0sIDApOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhp
ZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNo
ZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBh
Z2UgZGlkIG5vdCBlbnRlciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGlu
ayIpOworICAgIGxpbmsucmVsID0gInN0eWxlc2hlZXQiOworICAgIGxpbmsudHlwZSA9ICJ0ZXh0
L2NzcyI7CisgICAgbGluay5ocmVmID0gIi9pbmNyZW1lbnRhbC9yZXNvdXJjZXMvc2xvdy11dGY4
LWNzcy5wbCI7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTsKKworICAgIHZh
ciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBzY3JpcHQu
YXN5bmMgPSB0cnVlOworICAgIHNjcmlwdC5zcmMgPSAiL3Jlc291cmNlcy9zbG93LXNjcmlwdC5w
bCIKKyAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7CisKKyAgICAvLyBUaGlz
IG5lZWRzIHRvIGhhcHBlbiBpbiBhIHNldFRpbWVvdXQgYmVjYXVzZSBhIG5hdmlnYXRpb24gaW5z
aWRlIHRoZSBvbmxvYWQgaGFuZGxlciB3b3VsZAorICAgIC8vIG5vdCBjcmVhdGUgYSBoaXN0b3J5
IGVudHJ5LgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAvLyBGb3JjZSBhIGJh
Y2sgbmF2aWdhdGlvbiBiYWNrIHRvIHRoaXMgcGFnZS4KKyAgICAgIHdpbmRvdy5sb2NhdGlvbi5o
cmVmID0gInJlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sIjsKKyAgICB9LCAwKTsKK30s
IGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFn
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJl
c3RvcmluZy1jYWNoZWQtcGFnZS5odG1sCmluZGV4IDkwNTFkYjgyZWZlMTg1MmI1YmY0OTEwZGQ3
ODFhYjgxNjZiYjQyZTEuLjdlMzRmNWNkYTBkODFjYzg5MGY5YmIxNGM4MWI5ZmM1MzhkYzI4NmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hl
bi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwKQEAgLTYw
LDkgKzYwLDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgIAogICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxfaWQpOwotICAgICAgICAg
IAotICAgICAgICAgIGNhbnZhcyA9IHcuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSk7Ci0gICAgICAgICAgY29udGV4dCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCd3ZWJnbCcpOworCisgICAgICAgICAgLy8gUHJldmVudCBlbnRlcmluZyBQYWdl
Q2FjaGUuCisgICAgICAgICAgcGVlckNvbm5lY3Rpb24gPSBuZXcgdy5SVENQZWVyQ29ubmVjdGlv
bigpOworICAgICAgICAgIHBlZXJDb25uZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ29uaWNlY2Fu
ZGlkYXRlJywgKGUpID0+IHsgfSk7CiAgICAgICAgICAgCiAgICAgICAgICAgY2hpbGRfZnJhbWUg
PSB3LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZy
YW1lJykpOwogICAgICAgICAgIGNoaWxkX2ZyYW1lLmNvbnRlbnRXaW5kb3cub251bmxvYWQgPSAo
KSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWI5YjUy
MDBmMWQ4ODNlYTk4YzZmMDljM2IzOTk2M2FmNjg2MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IGFuIElEQlJlcXVlc3QgZG9lcyBub3Qg
cHJldmVudCBwYWdlIGNhY2hpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitw
YWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBj
YWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2Ug
Y2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJSZXF1ZXN0LXBh
Z2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3Qt
cGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkZTgwNjNkZjhkNWNlYTNlYmE1NzVhMGRhOGY4
NDhhMjIxNDRhMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LXBhZ2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGFuIElE
QlJlcXVlc3QgZG9lcyBub3QgcHJldmVudCBwYWdlIGNhY2hpbmcuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIg
OiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIpOworICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkg
eworICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50ZXJlZCBwYWdlIGNhY2hlIik7CisgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICB9CisgfSk7CisgCisgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
InBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgZGVidWcoInBhZ2VoaWRlIC0gIiAr
IChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJpbmcgcGFnZSBjYWNoZSIp
OworICAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICAgdGVzdEZhaWxlZCgiUGFn
ZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNoZSIpOworICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgIH0KKyB9KTsKKyAKKyBvbmxvYWQgPSAoKSA9PiB7CisgICAgIHNldFRpbWVvdXQoKCkg
PT4geworICAgICAgICAgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJNeVRlc3REYXRhYmFzZSIp
OworCisgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiLi4vLi4vZmFzdC9oaXN0b3J5L3Jlc291
cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sIjsKKyAgICB9LCAwKTsKKyB9OworPC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNhYjliNTIwMGYxZDg4M2VhOThjNmYwOWMzYjM5OTYzYWY2ODYwMzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdl
LWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IGFuIElEQlJl
cXVlc3QgZG9lcyBub3QgcHJldmVudCBwYWdlIGNhY2hpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK3BhZ2VoaWRlIC0g
ZW50ZXJpbmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFn
ZSBlbnRlcmVkIHBhZ2UgY2FjaGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRhM2Zj
MDQ2NzEyZDZhZjE5ZDgwNDFkN2YxOWJhY2Q2MTg1ZDMwYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMCwwICsxLDQzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IGFuIElEQlJlcXVlc3QgZG9lcyBub3QgcHJldmVudCBwYWdl
IGNhY2hpbmcuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgIGRlYnVnKCJwYWdlc2hvdyAt
ICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIp
OworICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50
ZXJlZCBwYWdlIGNhY2hlIik7CisgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICB9CisgfSk7Cisg
Cisgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3Qg
IikgKyAiZW50ZXJpbmcgcGFnZSBjYWNoZSIpOworICAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkg
eworICAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNoZSIp
OworICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgIH0KKyB9KTsKKyAKKyBvbmxvYWQgPSAo
KSA9PiB7CisgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgcmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCJNeVRlc3REYXRhYmFzZSIpOworICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gb3Bl
biB0aGUgZGF0YWJhc2UiKTsKKyAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
IH0KKyAgICAgICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgICB2YXIgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
IG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoImN1c3RvbWVycyIsIHsga2V5UGF0
aDogInNzbiIgfSk7CisgICAgICAgICAgICAgdHJhbnNhY3Rpb24gPSBvYmplY3RTdG9yZS50cmFu
c2FjdGlvbjsKKworICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi8uLi9mYXN0L2hp
c3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICAgfTsKKyAg
ICB9LCAwKTsKKyB9OworPC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379770</attachid>
            <date>2019-09-27 14:59:22 -0700</date>
            <delta_ts>2019-09-27 15:00:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202318-20190927145922.patch</filename>
            <type>text/plain</type>
            <size>29411</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1NTJiYjBkNjBmZDNj
NjMxOTQyN2EyOTI2ZjVmOGMyYzEyMWMwNS4uMTI5ZTRkYWQ0ZTU2NDU0YmRlOWU5NzZiMTM3ZjU4
N2FiMGQ1MzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29y
a2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IHBhZ2VzIHRoYXQgdXNlIFdlYiBXb3JrZXJzIHRvIGVudGVyIHRo
ZSBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKyAgICAgICAgVGhpcyBpbnZvbHZlcyBhZGRpbmcgYW4g
RXZlbnRRdWV1ZSBmb3IgYWxsIGV2ZW50IGZpcmluZyBvbiBXb2tlcgorICAgICAgICBvYmplY3Rz
IGFuZCBzdXNwZW5kaW5nIHRoaXMgRXZlbnRRdWV1ZSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4K
KworICAgICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRo
ZXIuY29tIHRvIGVudGVyIHRoZQorICAgICAgICBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29u
dGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAg
ICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaDoKKworICAgICAgICAqIGRvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUYXNrUXVldWVDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tRdWV1ZUNvbnN0cnVjdG9y
PFRpbWVyPjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVl
QmFzZTxUPjo6R2VuZXJpY0V2ZW50UXVldWVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVy
aWNFdmVudFF1ZXVlQmFzZTxUPjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6ZGlzcGF0Y2hPbmVFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2FuY2VsQWxsRXZlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46Omhhc1BlbmRpbmdF
dmVudHNPZlR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWVC
YXNlPFQ+OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFz
ZTxUPjo6cmVzdW1lKToKKyAgICAgICAgKiBkb20vR2VuZXJpY0V2ZW50UXVldWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTo6aXNTdXNwZW5kZWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6
OkdlbmVyaWNFdmVudFF1ZXVlKToKKyAgICAgICAgUmVuYW1lIEdlbmVyaWNFdmVudFF1ZXVlIHRv
IE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSBzaW5jZSBpdHMgaW1wbGVtZW50YXRpb24gcmVs
aWVzCisgICAgICAgIG9uIGEgZ2xvYmFsIHNoYXJlZCBUaW1lciB0byBmaXJlIGV2ZW50cy4gSW50
cm9kdWNlIGEgbmV3IEdlbmVyaWNFdmVudFF1ZXVlIHdoaWNoIGNhbgorICAgICAgICBhY3R1YWxs
eSBiZSB1c2VkIGZyb20gYW55IHRocmVhZC4gVGhpcyBpcyB1c2VmdWwgZm9yIE1lc3NhZ2VQb3J0
LCB3aGljaCBpcyB1c2VkIGJvdGgKKyAgICAgICAgb24gdGhlIG1haW4gdGhyZWFkIGFuZCBvbiB3
b3JrZXIgdGhyZWFkcy4KKworICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVzc2FnZVBvcnQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpyZXN1bWUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZVBvcnQ6OmRpc3BhdGNoTWVzc2FnZXMpOgorICAgICAgICAqIGRvbS9N
ZXNzYWdlUG9ydC5oOgorICAgICAgICBVc2UgYW4gR2VuZXJpY0V2ZW50UXVldWUgaW4gTWVzc2Fn
ZVBvcnQgZm9yIGNvbnNpc3RlbmN5IHdpdGggV29ya2VyLgorICAgICAgICBNZXNzYWdlUG9ydCBp
cyBhbiBBY3RpdmVET01vYmplY3Qgd2hpY2ggcmV0dXJucyB0cnVlIGluIGNhblN1c3BlbmQoKSwK
KyAgICAgICAgd2UgdGhlcmVmb3JlIG5lZWQgdG8gbWFrZSBzdXJlIGl0IHN1c3BlbmRzIGV2ZW50
IGZpcmluZyB3aGlsZQorICAgICAgICBzdXNwZW5kZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXI6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
cjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6ZGlzcGF0Y2hFdmVu
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1By
b3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorCiAyMDE5LTA5
LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSURCVHJhbnNh
Y3Rpb24gLyBJREJPYmplY3RTdG9yZSBzaG91bGQgbm90IHByZXZlbnQgYSBwYWdlIGZyb20gZW50
ZXJpbmcgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCBiZThjMGRk
NmJkMzhjNmExMWJjZDliYzVjYTk1ZmYxYmMzZTQ0ZGM4Li41YTYyZWFjMmQ3ZmU2MzAzNWQwZmNl
Y2NiMGE2NWMzYmJhNmNlNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBw
cml2YXRlOgogICAgIE1lZGlhS2V5U2Vzc2lvblR5cGUgbV9zZXNzaW9uVHlwZTsKICAgICBSZWY8
Q0RNPiBtX2ltcGxlbWVudGF0aW9uOwogICAgIFJlZjxDRE1JbnN0YW5jZVNlc3Npb24+IG1faW5z
dGFuY2VTZXNzaW9uOwotICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKKyAgICBN
YWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOwogICAgIEdlbmVyaWNUYXNr
UXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
bV9yZWNvcmRPZktleVVzYWdlOwogICAgIGRvdWJsZSBtX2ZpcnN0RGVjcnlwdFRpbWUgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2Fj
eS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IDliNjMyMzVhNTY4
M2U2M2M3ZTVhMDJhMTExZThiYWIzZGYzMmM1ZWYuLmRkYThmZWYzNjEzZDc2YzQwZDI0MjE3YzRl
NWZiMDFlMzcwYzM1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5o
CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwogICAg
IFN0cmluZyBtX3Nlc3Npb25JZDsKICAgICBSZWZQdHI8V2ViS2l0TWVkaWFLZXlFcnJvcj4gbV9l
cnJvcjsKLSAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IG1fc2Vzc2lvbjsKIAogICAgIHN0cnVjdCBQZW5kaW5n
S2V5UmVxdWVzdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmgKaW5kZXggZmRjNjQ3YjdhY2JmNzMyYzUwY2JlZTNhYzFjMDIzZjgxZTVkMDlj
MS4uMmZlYjAwYmZjNWZkOTA2MTAwZDIwNTNiY2VjNDEyMzJiYTg4ZGQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtMTY4LDcg
KzE2OCw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFU
aW1lIG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVh
ZHlTdGF0ZTo6Q2xvc2VkIH07Ci0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVl
dWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2Vy
OwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IGE0
NTAyYjViNjc1YzZmMDA3MjRmOGE2OTA3NjlkNjk2MDZlNGNmM2YuLjA4YzQ2MWRiM2Q5OWNiNWIz
ZGVhNzdmMWE4NGU0NWVhZjBlZjhhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291
cmNlKiBtX3NvdXJjZTsKLSAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsK
KyAgICBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAgICAg
QXBwZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9y
PHVuc2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGY4M2Mx
ODQzMjIxYWNiMjMxZjU0MjZhN2EzMmViMGIyMjkxNGEzNmYuLjI2ZDBhZWFjN2E1M2Q0MmQwYmU4
MzE1MmRhMjQxNGUxZTIxMGMyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCi0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2
ZW50UXVldWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1
ZXVlOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiBtX2xpc3Q7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4
IGQ0Y2RiNzY1OGMwZjM1YjVmYzlhMjJjZTg5OGJjYjJiOTllZTRkZDguLjlmMjMwOWNjZjM5MmJl
NzhjMmFjZWZlMTM5ZDY4ZDI5NjRmMzFhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBBdWRpb0Nv
bnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX21lZGlhU2Vzc2lv
bihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSkKLSAgICAsIG1fZXZlbnRRdWV1
ZShtYWtlVW5pcXVlPEdlbmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCisgICAgLCBtX2V2ZW50UXVl
dWUobWFrZVVuaXF1ZTxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+KCp0aGlzKSkKIHsKICAg
ICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRlciBw
YWdlIG5hdmlnYXRlLgogICAgIC8vIExldHMgbWFyayBpdCBhcyBBY3RpdmVET01PYmplY3Qgd2l0
aCBwZW5kaW5nIGFjdGl2aXR5IGFuZCB1bm1hcmsgaXQgaW4gY2xlYXIgbWV0aG9kLgpAQCAtMTY2
LDcgKzE2Niw3IEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVu
dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90CiAjZW5kaWYKICAgICAsIG1faXNP
ZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX2V2ZW50UXVldWUobWFrZVVuaXF1ZTxHZW5l
cmljRXZlbnRRdWV1ZT4oKnRoaXMpKQorICAgICwgbV9ldmVudFF1ZXVlKG1ha2VVbmlxdWU8TWFp
blRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCiB7CiAgICAgY29uc3RydWN0Q29tbW9u
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5o
CmluZGV4IDlkNzdjOTcwNzI0M2Y5MGMzYTlmNDM2YWZkNjRiZDY5OWFhMWM2MzguLmQ5OTEyOTQ5
YTM5NGFiODEzNGUxOTViMWM5ZjI5Mzc5NDMwNzkzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtNjQsOCArNjQsOCBAQCBjbGFzcyBE
ZWxheU5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIER5bmFtaWNzQ29tcHJlc3Nvck5vZGU7
CiBjbGFzcyBHYWluTm9kZTsKLWNsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKK2NsYXNzIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTsKIGNsYXNzIE1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxWZWN0b3I8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+Pj4gbV9zdGF0ZVJl
YWN0aW9uczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4gbV9t
ZWRpYVNlc3Npb247Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdlbmVyaWNFdmVudFF1ZXVlPiBtX2V2
ZW50UXVldWU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZT4gbV9ldmVudFF1ZXVlOwogCiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX3JlbmRlclRhcmdl
dDsKICAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbk5vZGU+IG1fZGVzdGluYXRpb25Ob2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAppbmRl
eCBjNmE3NDBhNjU4MmU0NTZiZGJhZDhiM2E1MmM5N2NkNTc2MDE0MTcwLi40MDdlOTAwMzMxOWQy
NWM5Zjc3Y2ZiY2I4M2VmZGNjMmNlM2U5Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV93YXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBBbmltYXRpb25FZmZlY3RQaGFz
ZSBtX3ByZXZpb3VzUGhhc2UgeyBBbmltYXRpb25FZmZlY3RQaGFzZTo6SWRsZSB9OwogCi0gICAg
R2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOworICAgIE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZSBtX2V2ZW50UXVldWU7CiAKICAgICBFbGVtZW50KiBtX293bmluZ0VsZW1lbnQ7CiAg
ICAgUmVmPEFuaW1hdGlvbj4gbV9iYWNraW5nQW5pbWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHAKaW5kZXggN2EwODQ4MmU3N2NjNDAzZDJmMDllZTQ0YjNhY2Rl
NzAzNzIzN2U1Zi4uZTc4YmU0ODFlOWYxZDIzNjg4ZWE5ZGRlNmM2YWJkZjI3M2IxMTcwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCkBAIC0zNiwxNSArMzYsMjYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2
ZW50UXVldWUoRXZlbnRUYXJnZXQmIG93bmVyKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IFRhc2tRdWV1ZUNvbnN0cnVjdG9yIHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUPiBj
b25zdHJ1Y3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgeyByZXR1cm4gR2VuZXJp
Y1Rhc2tRdWV1ZTxUPihjb250ZXh0KTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgVGFza1F1
ZXVlQ29uc3RydWN0b3I8VGltZXI+IHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1l
cj4gY29uc3RydWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IHJldHVybiBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPigpOyB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2
ZW50UXVldWVCYXNlPFQ+OjpHZW5lcmljRXZlbnRRdWV1ZUJhc2UoRXZlbnRUYXJnZXQmIG93bmVy
KQogICAgIDogbV9vd25lcihvd25lcikKLSAgICAsIG1faXNDbG9zZWQoZmFsc2UpCisgICAgLCBt
X3Rhc2tRdWV1ZShUYXNrUXVldWVDb25zdHJ1Y3RvcjxUPjo6Y29uc3RydWN0KG93bmVyLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkpCiB7CiB9CiAKLUdlbmVyaWNFdmVudFF1ZXVlOjp+R2VuZXJp
Y0V2ZW50UXVldWUoKSA9IGRlZmF1bHQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2
ZW50UXVldWVCYXNlPFQ+Ojp+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCkgPSBkZWZhdWx0OwogCi12
b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50
KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+Ojpl
bnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50KQogewogICAgIGlmIChtX2lzQ2xvc2Vk
KQogICAgICAgICByZXR1cm47CkBAIC01NywxMCArNjgsMTEgQEAgdm9pZCBHZW5lcmljRXZlbnRR
dWV1ZTo6ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKICAgICBpZiAobV9pc1N1
c3BlbmRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2so
c3RkOjpiaW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOwor
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmR2VuZXJpY0V2ZW50UXVldWVC
YXNlOjpkaXNwYXRjaE9uZUV2ZW50LCB0aGlzKSk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVl
dWU6OmRpc3BhdGNoT25lRXZlbnQoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJp
Y0V2ZW50UXVldWVCYXNlPFQ+OjpkaXNwYXRjaE9uZUV2ZW50KCkKIHsKICAgICBBU1NFUlQoIW1f
cGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpOwogCkBAIC03Myw3ICs4NSw4IEBAIHZvaWQgR2VuZXJp
Y0V2ZW50UXVldWU6OmRpc3BhdGNoT25lRXZlbnQoKQogICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50
KCpldmVudCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OmNsb3NlKCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+Cit2b2lkIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2xvc2UoKQogewog
ICAgIG1faXNDbG9zZWQgPSB0cnVlOwogCkBAIC04MSwxOCArOTQsMjEgQEAgdm9pZCBHZW5lcmlj
RXZlbnRRdWV1ZTo6Y2xvc2UoKQogICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogfQogCi12
b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpjYW5jZWxBbGxFdmVudHMoKQog
ewogICAgIG1fdGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiAgICAgbV9wZW5kaW5nRXZlbnRz
LmNsZWFyKCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVudHMo
KSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2Jvb2wgR2VuZXJpY0V2ZW50UXVldWVCYXNl
PFQ+OjpoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ0V2
ZW50cy5pc0VtcHR5KCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdF
dmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Citib29sIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50c09m
VHlwZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZXZl
bnQgOiBtX3BlbmRpbmdFdmVudHMpIHsKICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gdHlw
ZSkKQEAgLTEwMiwxNCArMTE4LDE2IEBAIGJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRp
bmdFdmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnN1c3BlbmQoKQordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpzdXNwZW5kKCkKIHsK
ICAgICBBU1NFUlQoIW1faXNTdXNwZW5kZWQpOwogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwog
ICAgIG1fdGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50
UXVldWU6OnJlc3VtZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBHZW5lcmljRXZlbnRR
dWV1ZUJhc2U8VD46OnJlc3VtZSgpCiB7CiAgICAgaWYgKCFtX2lzU3VzcGVuZGVkKQogICAgICAg
ICByZXR1cm47CkBAIC0xMTcsNyArMTM1LDEwIEBAIHZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnJl
c3VtZSgpCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV90YXNrUXVl
dWUuZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVF
dmVudCwgdGhpcykpOworICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQo
JkdlbmVyaWNFdmVudFF1ZXVlQmFzZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOwogfQogCit0
ZW1wbGF0ZSBjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VGltZXI+OwordGVtcGxhdGUgY2xh
c3MgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OworCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4IGI3YjY1OWYzMmUwYWE1YjZj
ODkxN2I0MjcxM2I1YzUzZGFlMzZiOGUuLjRjNTY0MjNhOWUxZTQ3YTkzNmMwOTRlYzRmZjU0N2Iy
M2RjMTEzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0zNSwx
MiArMzUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVu
dFRhcmdldDsKIGNsYXNzIFRpbWVyOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAot
Y2xhc3MgR2VuZXJpY0V2ZW50UXVldWUgewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEdl
bmVyaWNFdmVudFF1ZXVlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgR2VuZXJpY0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmKTsKLSAgICB+
R2VuZXJpY0V2ZW50UXVldWUoKTsKKyAgICBleHBsaWNpdCBHZW5lcmljRXZlbnRRdWV1ZUJhc2Uo
RXZlbnRUYXJnZXQmKTsKKyAgICB+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCk7CiAKICAgICB2b2lk
IGVucXVldWVFdmVudChSZWZQdHI8RXZlbnQ+JiYpOwogICAgIHZvaWQgY2xvc2UoKTsKQEAgLTUy
LDE0ICs1NCwzNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1
bWUoKTsKIAorICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVu
ZGVkOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE9uZUV2ZW50KCk7CiAKICAgICBF
dmVudFRhcmdldCYgbV9vd25lcjsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tR
dWV1ZTsKKyAgICBHZW5lcmljVGFza1F1ZXVlPFQ+IG1fdGFza1F1ZXVlOwogICAgIERlcXVlPFJl
ZlB0cjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsKLSAgICBib29sIG1faXNDbG9zZWQ7CisgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxz
ZSB9OwogfTsKIAorLy8gQWxsIGluc3RhbmNlcyBvZiBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWUgdXNlIGEgc2hhcmVkIFRpbWVyIGZvciBkaXNwYXRjaGluZyBldmVudHMuCitjbGFzcyBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFRp
bWVyPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
KEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAgICAgOiBHZW5lcmljRXZlbnRRdWV1ZUJh
c2U8VGltZXI+KGV2ZW50VGFyZ2V0KQorICAgIHsKKyAgICB9Cit9OworCitjbGFzcyBHZW5lcmlj
RXZlbnRRdWV1ZSA6IHB1YmxpYyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dD4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4
cGxpY2l0IEdlbmVyaWNFdmVudFF1ZXVlKEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAg
ICAgOiBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4oZXZlbnRU
YXJnZXQpCisgICAgeworICAgIH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGQ2N2NlMjc4ZmRhNGZiMzRmMzNmMTQ2ZmMxODcy
NDYyZWUxNTY5MzAuLjg0MmVlMjk0M2RmY2Q2NzBhYjgwOTI2MGRjMTE1MmEwNDU2MTJiYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBNZXNzYWdlUG9y
dDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgY29uc3QgTQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQogICAgICwgbV9pZGVudGlmaWVyKGxvY2FsKQogICAgICwgbV9yZW1vdGVJZGVudGlmaWVy
KHJlbW90ZSkKKyAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKIHsKICAgICBMT0coTWVzc2FnZVBv
cnRzLCAiQ3JlYXRlZCBNZXNzYWdlUG9ydCAlcyAoJXApIGluIHByb2Nlc3MgJSIgUFJJdTY0LCBt
X2lkZW50aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgUHJvY2Vzczo6aWRl
bnRpZmllcigpLnRvVUludDY0KCkpOwogCkBAIC0yMjcsNiArMjI4LDE3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnQ6OmNsb3NlKCkKIAogICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpmcm9tQ29u
dGV4dCgqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS5tZXNzYWdlUG9ydENsb3NlZChtX2lkZW50
aWZpZXIpOwogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisgICAgbV9ldmVudFF1ZXVl
LmNsb3NlKCk7Cit9CisKK3ZvaWQgTWVzc2FnZVBvcnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbikKK3sKKyAgICBtX2V2ZW50UXVldWUuc3VzcGVuZCgpOworfQorCit2b2lkIE1lc3NhZ2VQ
b3J0OjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogdm9pZCBN
ZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0yNjgsNyArMjgwLDcgQEAgdm9pZCBN
ZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICBpZiAoY29udGV4dElz
V29ya2VyICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KS5pc0Nsb3NpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAg
ICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1l
c3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICBtX2V2ZW50UXVl
dWUuZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNz
YWdlLm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCBkYmQ1NTNiZDA1ZmRhOGY2NzMzMmYxZjM1NDAxYTM2
OWMxZTkzMGYwLi5hNGRjMjJhNzZkNmNiOWNmZWI0ZjBmYmVhMzc4N2ZmOWFkNzliYmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBAIC04NCw2ICs4NSw4IEBAIHB1Ymxp
YzoKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNp
b24pIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBjbG9zZSgpOyB9CiAgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKQEAgLTEyNiw2ICsxMjksNyBA
QCBwcml2YXRlOgogICAgIE1lc3NhZ2VQb3J0SWRlbnRpZmllciBtX3JlbW90ZUlkZW50aWZpZXI7
CiAKICAgICBtdXRhYmxlIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNvdW50IHsgMSB9Owor
ICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZGU2NjJj
MWQxMzI5YWVkMGE0MTI4NDBiY2E3ZDM0MTk3NzJhMGVlYy4uNjFkYmFkNWIyODAxZDQ5NTlhNzYy
Nzc4ZThhNjcxMTcyYjU0Yjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTk3Miw3ICs5NzIsNyBAQCBwcml2YXRlOgogICAgIEdlbmVyaWNUYXNrUXVldWU8VGlt
ZXI+IG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBt
X3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOwogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBt
X3BsYXllZFRpbWVSYW5nZXM7Ci0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVl
dWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fdm9s
dW1lUmV2ZXJ0VGFza1F1ZXVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tMaXN0QmFzZS5oCmluZGV4IDNjZGU4OGRjYzRhZmQ1NDA3YjA4YzY4YWQ5YzJmMTkzNjg1OGEy
MzAuLjBiYmQ4NTgyZjU5ZjExYTM2OTIzZmM4NTdmNzZjMzI4OGUyZmY5ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCkBAIC04Niw3ICs4Niw3IEBAIHByaXZh
dGU6CiAKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtX2VsZW1lbnQ7CiAKLSAgICBHZW5lcmljRXZl
bnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWUgbV9hc3luY0V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTlmODEzYjBiOTIyMTAzNjQ4YTg1
ZmNlMDA5MzVmYS4uMjIxMDFhYzU3MzUwZDVkNWFlNzc3M2IwYjU2ZmNhODY5ZmM3MDUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldv
cmtlci5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAi
RXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjcsNiArNjgsNyBA
QCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiAr
IEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAg
LCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQog
ICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV9ldmVudFF1ZXVlKCp0
aGlzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExp
c3RlbmVyKSB7CkBAIC0xNDQsMTIgKzE0NiwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXI6
OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIG1lc3NhZwog
dm9pZCBXb3JrZXI6OnRlcm1pbmF0ZSgpCiB7CiAgICAgbV9jb250ZXh0UHJveHkudGVybWluYXRl
V29ya2VyR2xvYmFsU2NvcGUoKTsKKyAgICBtX2V2ZW50UXVldWUuY2FuY2VsQWxsRXZlbnRzKCk7
CiB9CiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0byBzdXNw
ZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRvIHBhZ2Ug
Y2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdv
cmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRRdWV1ZS5z
dXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1
ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKQEAgLTE2MCwxMSArMTcyLDEyIEBAIGNvbnN0IGNoYXIqIFdvcmtlcjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB2b2lkIFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVybWlu
YXRlKCk7CisgICAgbV9ldmVudFF1ZXVlLmNsb3NlKCk7CiB9CiAKIGJvb2wgV29ya2VyOjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQ
ZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgp
OworICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3Rp
dmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IG1fZXZlbnRRdWV1ZS5oYXNQZW5k
aW5nRXZlbnRzKCk7CiB9CiAKIHZvaWQgV29ya2VyOjpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2Uo
Ym9vbCBpc09uTGluZSkKQEAgLTE5Miw3ICsyMDUsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5Rmlu
aXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olll
cykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olllcykp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjE1LDIwIEBAIHZvaWQgV29y
a2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3Jp
cHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChSZWY8
RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZNb3Zl
KGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2V2ZW50
UXVldWUuaXNTdXNwZW5kZWQoKSk7CisKKyAgICBBYnN0cmFjdFdvcmtlcjo6ZGlzcGF0Y2hFdmVu
dChldmVudCk7CisgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAhZXZlbnQuZGVmYXVs
dFByZXZlbnRlZCgpICYmIGV2ZW50LmlzVHJ1c3RlZCgpICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkgeworICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVudD4o
ZXZlbnQpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlcG9ydEV4Y2VwdGlv
bihlcnJvckV2ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVudC5saW5lbm8oKSwgZXJyb3JFdmVudC5j
b2xubygpLCBlcnJvckV2ZW50LmZpbGVuYW1lKCksIG51bGxwdHIsIG51bGxwdHIpOworICAgIH0K
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXgg
MjNjMzFhMDA4NDA4MWFkOWEwZWUyY2IwODJlZjExODVmYWU4NDk1NC4uNTcxY2Y2N2FhNTdmMzNl
YzA1ZDgwYWM2M2NjNjVmOTc2MTFkMzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02Nyw5ICs2OCwxMyBAQCBwdWJsaWM6
CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1
bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCisgICAgdm9pZCBkaXNwYXRjaEV2ZW50KEV2
ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdvcmtlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7
CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZp
bmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOworICAg
IHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCkBAIC05MSw2ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3dvcmtlckNyZWF0aW9uVGltZTsKICAg
ICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IHsgZmFs
c2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRpbWVGbGFnczsKKyAgICBHZW5lcmlj
RXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IDVlM2UwNTRiZjUyZTJjMTBjMTFkZWZmNjlhYjc2ZTk3NzFlY2I0NWEuLjU5Zjc5NjA2MjBjODg3
NTc0NDJkNTk0OGJlY2JjZDAwMWYyMGZhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmIG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHBvcnRz
ID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRy
YW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KE1l
c3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2UucmVsZWFz
ZU5vbk51bGwoKSkpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChNZXNzYWdl
RXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VOb25O
dWxsKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTU0LDE4ICsxNTQsMTQgQEAgYm9vbCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRF
eGVjdXRpb25Db24KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
aW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0gZXJyb3JN
ZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0ZWRDb3B5
KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBl
cnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9IHNv
dXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgV29ya2VyKiB3b3JrZXJPYmplY3QgPSB0aGlz
LT53b3JrZXJPYmplY3QoKTsKICAgICAgICAgaWYgKCF3b3JrZXJPYmplY3QpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRoZSBhc2tl
ZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxkICphbHdh
eXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgogICAgICAg
ICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9yIGlu
IE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBsb25nZXIg
ZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVjKSwgYnV0
IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCi0KLSAgICAgICAgYXV0byBldmVudCA9IEVycm9y
RXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyLCB7IH0pOwotICAgICAgICB3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQp
OwotICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCi0gICAgICAgICAgICBj
b250ZXh0LnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgc291cmNlVVJMLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgd29ya2VyT2JqZWN0
LT5lbnF1ZXVlRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Y2E5NDgyYTE1MjljNjAzZDk1YmQ1MzllMzRkNDgxMDI0YWViZmViNC4uZTliNTZiMjU3NTQ1NjFi
YzBkZmExOWVmZTRjZGEzODY4OWFiNDRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0
aCBXZWIgV29ya2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKwog
MjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIElE
QlRyYW5zYWN0aW9uIC8gSURCT2JqZWN0U3RvcmUgc2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFnZSBm
cm9tIGVudGVyaW5nIHRoZSBiYWNrIC8gZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ0MzE1NDljODZiMjViZmIxYjgxNTk1OTk3ZjZjNGM1YjMxZWE1NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBwYWdlcyB3aXRoIHdvcmtlcnMg
Y2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2Fn
ZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3BhZ2VoaWRlIC0gZW50ZXJpbmcg
cGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRlcmVk
IHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBw
YWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1j
YWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzU0MmMzNjk2ZDNkMzBkOWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1j
YWNoZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHBhZ2VzIHdpdGggd29ya2VycyBjYW4gZ28gaW50byB0aGUg
cGFnZSBjYWNoZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgcmVzdG9yZWRGcm9t
UGFnZUNhY2hlID0gZmFsc2U7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lz
dGVkID8gIiIgOiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIpOworICBpZiAoZXZlbnQucGVy
c2lzdGVkKSB7CisgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGVudGVyZWQgcGFnZSBjYWNoZSIpOwor
ICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgfQorfSk7CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWco
InBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJp
bmcgcGFnZSBjYWNoZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRl
c3RGYWlsZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfQorfSk7CisKK2xldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOworb25s
b2FkID0gKCkgPT4geworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXIt
ZXZlbnQtbGlzdGVuZXIuanMnKTsKKyAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CisgICAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgiIik7CisgICAgfSwgMSk7CisKKyAgICB3b3JrZXIub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIGlmIChmaXJzdE1lc3NhZ2UpIHsKKyAgICAgICAg
ICAgIGZpcnN0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2
ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLWhl
bHBlci5odG1sIjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cmVzdG9yZWRGcm9tUGFnZUNhY2hlKSB7CisgICAgICAgICAgICByZXN0b3JlZEZyb21QYWdlQ2Fj
aGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgYWZ0
ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisgICAgfTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379771</attachid>
            <date>2019-09-27 15:00:39 -0700</date>
            <delta_ts>2019-09-27 15:42:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202318-20190927150038.patch</filename>
            <type>text/plain</type>
            <size>24963</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI5ZTRkYWQ0ZTU2NDU0
YmRlOWU5NzZiMTM3ZjU4N2FiMGQ1MzliOS4uY2M5YjdkMDhjMWIxMjdlZjcxODA3NTA5OGNhMDIw
NmZkZGQ2MzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgdXNpbmcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IGZhaWwgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4MzYxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIEFsbG93IHBhZ2VzIHdpdGggYSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSBieSB1cGRhdGluZyB0aGUKKyAgICAg
ICAgaW1wbGVtZW50YXRpb24gdG8gdXNlIFN1c3BlbmRhYmxlVGltZXJzIHRvIGZpcmUgSlMgZXZl
bnRzLiBUaGlzIGd1YXJhbnRlZXMgdGhhdCBubyBldmVudHMKKyAgICAgICAgd2lsbCBiZSBmaXJl
ZCAoYW5kIHRodXMgbm8gSlMgd2lsbCBydW4pIHdoaWxlIGluIHRoZSBwYWdlIGNhY2hlLgorCisg
ICAgICAgIFRoaXMgd2FzIHByZXZlbnRpbmcgc29tZSBvZiB0aGUgcGFnZXMgb24gd2VhdGhlci5j
b20gYW5kIGZhY2Vib29rLmNvbSBmcm9tIGVudGVyaW5nIHRoZQorICAgICAgICBiYWNrL2Zvcndh
cmQgY2FjaGUuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmds
LXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHA6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c3VzcGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnQpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAg
ICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpET01U
aW1lcik6CisgICAgICAgICogcGFnZS9ET01UaW1lci5oOgorICAgICAgICAqIHBhZ2UvU3VzcGVu
ZGFibGVUaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFzZTo6
U3VzcGVuZGFibGVUaW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1l
ckJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyQmFzZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRp
bWVyQmFzZTo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyQmFz
ZTo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXJCYXNlOjpjYW5T
dXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXJCYXNlOjpkaWRTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRh
YmxlVGltZXJCYXNlOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1l
ckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXJCYXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1l
ckJhc2U6OnJlcGVhdEludGVydmFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRh
YmxlVGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1
c3BlbmRhYmxlVGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U3VzcGVuZGFibGVUaW1lcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAg
ICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisKIDIwMTktMDktMjcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYWdlcyB3aXRoIFdlYiBXb3JrZXJzIGNh
bm5vdCBlbnRlciB0aGUgYmFjayAvIGZvcndhcmQgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZwppbmRleCAxNzc1NzY0MTZmOGZjMGFkZTVhMjUwZWIyMGZkNDZiOTg0MDA3M2VlLi5kY2U5
ZGMzYWVkMWU3OTIyZDg4YTE1NDQ0OTU3MTBhNjE5ZjdlY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDktMjcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlcyB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgZmFpbCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzMTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU1NzgzNjEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdpbmRvd0Nsb3NlVGltZXI6OldpbmRvd0Ns
b3NlVGltZXIpOgorICAgICAgICAoV2luZG93Q2xvc2VUaW1lcjo6Y29udGV4dERlc3Ryb3llZCk6
CisgICAgICAgICogV2ViVmlldy5oOgorCiAyMDE5LTA5LTI1ICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZv
ciBXaW5kb3dzIHBvcnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNw
cAppbmRleCAwMzcwM2I2MmJjNjUwNTU3OGIzODliOTk5MzhhNGRhYWI2ZDc2YzdhLi5jZWFlYmNk
OTY2YTNkODRhMTQwMmM0MzI4ZTlkYmJiODg4YTEyMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKLWNsYXNzIERvY3VtZW50RXZlbnRRdWV1ZTo6VGltZXIgZmluYWwgOiBw
dWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CitjbGFzcyBEb2N1bWVudEV2ZW50UXVldWU6OlRpbWVy
IGZpbmFsIDogcHVibGljIFN1c3BlbmRhYmxlVGltZXJCYXNlIHsKIHB1YmxpYzoKICAgICBUaW1l
cihEb2N1bWVudEV2ZW50UXVldWUmIGV2ZW50UXVldWUpCi0gICAgICAgIDogU3VzcGVuZGFibGVU
aW1lcihldmVudFF1ZXVlLm1fZG9jdW1lbnQpCisgICAgICAgIDogU3VzcGVuZGFibGVUaW1lckJh
c2UoJmV2ZW50UXVldWUubV9kb2N1bWVudCkKICAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRR
dWV1ZSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA2ZWVhOTFmYjE5OTNiMDRj
ZWUzODAzMDBkYWI3NWYwMjBlYTkzOGI2Li4yZDE1MGM3MTFjMmRmZDhlODczZjNiMGMzZjBiNjE5
NzA3YWVmY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNjMyLDEzICs2MzIsMTggQEAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmNyZWF0ZShDYW4KIAogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMgYXR0cmlidXRlcykKICAgICA6IEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52
YXMpCi0gICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9y
ZXN0b3JlVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3Rv
cmVDb250ZXh0KQorICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcihjYW52YXMu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKKyAgICAsIG1fZGlzcGF0Y2hDb250ZXh0Q2hh
bmdlZEV2ZW50VGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnQpCisg
ICAgLCBtX3Jlc3RvcmVUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAg
LCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVB
bGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5nUG9s
aWN5UmVzb2x1dGlvbih0cnVlKQogICAgICwgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdU
aW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRm9yQ29udGV4dExv
c3NIYW5kbGluZykKIHsKKyAgICBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyLnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIG1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXIuc3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgbV9yZXN0b3JlVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CisK
ICAgICByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOwogICAgIG1fY2hlY2tGb3JDb250
ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVTaG90KGNoZWNrQ29udGV4dExvc3NIYW5kbGlu
Z0RlbGF5KTsKIH0KQEAgLTY0NiwxMyArNjUxLDE4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENv
CiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dChjYW52YXMpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKLSAg
ICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVU
aW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRl
eHQpCisgICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKGNhbnZhcy5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlz
cGF0Y2hDb250ZXh0TG9zdEV2ZW50KQorICAgICwgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZl
bnRUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWRFdmVudCkKKyAgICAsIG1f
cmVzdG9yZVRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAsIG1fZ2Vu
ZXJhdGVkSW1hZ2VDYWNoZSg0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiAgICAg
LCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNv
bGUpCiAgICAgLCBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyKCp0aGlzLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nKQogewor
ICAgIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsK
KyAgICBtX3Jlc3RvcmVUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKwogICAgIG1fY29udGV4dEdy
b3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwogICAgIG1fY29udGV4dEdyb3VwLT5h
ZGRDb250ZXh0KCp0aGlzKTsKICAgICAKQEAgLTUxOTcsOCArNTIwNywxNyBAQCBjb25zdCBjaGFy
KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
IAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8g
YmV0dGVyIGhlcmUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
bikKK3sKKyAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpyZXN1bWUoKQoreworICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIH0K
IAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQpAQCAtNjE1MSw2ICs2MTcwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpyZXN0b3JlU3RhdGVzQWZ0ZXJWZXJ0ZXhBdHRyaWIwU2ltdWxhdGlvbigpCiAK
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50
KCkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9pc1N1c3BlbmRlZCk7CiAgICAgYXV0byogY2Fu
dmFzID0gaHRtbENhbnZhcygpOwogICAgIGlmICghY2FudmFzKQogICAgICAgICByZXR1cm47CkBA
IC02MTY0LDYgKzYxODQsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3Bh
dGNoQ29udGV4dExvc3RFdmVudCgpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
bWF5YmVSZXN0b3JlQ29udGV4dCgpCiB7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1faXNTdXNwZW5k
ZWQpOwogICAgIEFTU0VSVChtX2NvbnRleHRMb3N0KTsKICAgICBpZiAoIW1fY29udGV4dExvc3Qp
CiAgICAgICAgIHJldHVybjsKQEAgLTY1NDUsNiArNjU2NiwxMyBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnJlY3ljbGVDb250ZXh0KCkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCkKIHsKKyAgICBp
ZiAoIW1fZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgbV9kaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
K30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRDaGFu
Z2VkRXZlbnQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKICAgICBh
dXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7CiAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaAppbmRleCA3OWZkNGU3ZDMyMDYwOWE0MDE3OGE5NDU5Zjk4NjEzOWRl
ZmQ1ZDc5Li43MGRiNmY4YzAyYjQ1NWJmNTkwNTI0NTZiNzcxOGE5YTQwOTVmYmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVQmFzZWRDYW52YXNSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKICNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIK
QEAgLTM5MSw2ICszOTIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAgICB2
b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QmKTsKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2Jq
ZWN0Jik7CkBAIC00NTEsOSArNDU0LDEwIEBAIHByb3RlY3RlZDoKICAgICAvLyBsaWtlbHkgdGhh
dCB0aGVyZSdzIG5vIEphdmFTY3JpcHQgb24gdGhlIHN0YWNrLCBidXQgdGhhdCBtaWdodCBiZSBk
ZXBlbmRlbnQKICAgICAvLyBvbiBob3cgZXhhY3RseSB0aGUgcGxhdGZvcm0gZGlzY292ZXJzIHRo
YXQgdGhlIGNvbnRleHQgd2FzIGxvc3QuIEZvciBiZXR0ZXIKICAgICAvLyBwb3J0YWJpbGl0eSB3
ZSBhbHdheXMgZGVmZXIgdGhlIGRpc3BhdGNoIG9mIHRoZSBldmVudC4KLSAgICBUaW1lciBtX2Rp
c3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyOworICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNw
YXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0
Y2hDb250ZXh0Q2hhbmdlZEV2ZW50VGltZXI7CiAgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsg
ZmFsc2UgfTsKLSAgICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVy
IG1fcmVzdG9yZVRpbWVyOwogCiAgICAgYm9vbCBtX25lZWRzVXBkYXRlOwogICAgIGJvb2wgbV9t
YXJrZWRDYW52YXNEaXJ0eTsKQEAgLTgwNiwxMCArODEwLDYgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgdmFsaWRhdGVTaW11bGF0ZWRWZXJ0ZXhBdHRyaWIwKEdDM0R1aW50IG51bVZlcnRleCk7CiAg
ICAgdm9pZCByZXN0b3JlU3RhdGVzQWZ0ZXJWZXJ0ZXhBdHRyaWIwU2ltdWxhdGlvbigpOwogCi0g
ICAgdm9pZCBkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQoKTsKLSAgICAvLyBIZWxwZXIgZm9yIHJl
c3RvcmF0aW9uIGFmdGVyIGNvbnRleHQgbG9zdC4KLSAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRl
eHQoKTsKLQogICAgIC8vIFdyYXBwZXIgZm9yIEdyYXBoaWNzQ29udGV4dDNEOjpzeW50aGVzaXpl
R0xFcnJvciB0aGF0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgSmF2YVNjcmlwdCBjb25zb2xlLgog
ICAgIGVudW0gQ29uc29sZURpc3BsYXlQcmVmZXJlbmNlIHsgRGlzcGxheUluQ29uc29sZSwgRG9u
dERpc3BsYXlJbkNvbnNvbGUgfTsKICAgICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKEdDM0RlbnVt
LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLCBDb25z
b2xlRGlzcGxheVByZWZlcmVuY2UgPSBEaXNwbGF5SW5Db25zb2xlKTsKQEAgLTg0Miw2ICs4NDIs
MTEgQEAgcHJvdGVjdGVkOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1bnNpZ25lZCBnZXRN
YXhJbmRleChjb25zdCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gZWxlbWVudEFycmF5QnVmZmVy
LCBHQzNEaW50cHRyIHVvZmZzZXQsIEdDM0RzaXplaSBuKTsKIAogcHJpdmF0ZToKKyAgICB2b2lk
IGRpc3BhdGNoQ29udGV4dExvc3RFdmVudCgpOworICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hh
bmdlZEV2ZW50KCk7CisgICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250ZXh0
IGxvc3QuCisgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KCk7CisKICAgICBib29sIHZhbGlk
YXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdHlw
ZSwgT3B0aW9uYWw8SlNDOjpUeXBlZEFycmF5VHlwZT4pOwogICAgIHZvaWQgcmVnaXN0ZXJXaXRo
V2ViR0xTdGF0ZVRyYWNrZXIoKTsKICAgICB2b2lkIGNoZWNrRm9yQ29udGV4dExvc3NIYW5kbGlu
ZygpOwpAQCAtODUwLDYgKzg1NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJHTFN0YXRlVHJhY2tl
cjo6VG9rZW4gbV90cmFja2VyVG9rZW47CiAgICAgVGltZXIgbV9jaGVja0ZvckNvbnRleHRMb3Nz
SGFuZGxpbmdUaW1lcjsKKyAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogfTsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDdmNTc1
MzdkMzQzNGRiMDUwNDljMDNjYjc3ZDJhMmY1MGU0MzU0OTguLmRkMWU5ZGJhMTk4YThkMjQ5OThj
Mzg3YWNhMGRiM2MyM2VmM2FhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0xNjEs
NyArMTYxLDcgQEAgcHJpdmF0ZToKIGJvb2wgTmVzdGVkVGltZXJzTWFwOjppc1RyYWNraW5nTmVz
dGVkVGltZXJzID0gZmFsc2U7CiAKIERPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24s
IFNlY29uZHMgaW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCkKLSAgICA6IFN1c3BlbmRhYmxlVGlt
ZXIoY29udGV4dCkKKyAgICA6IFN1c3BlbmRhYmxlVGltZXJCYXNlKCZjb250ZXh0KQogICAgICwg
bV9uZXN0aW5nTGV2ZWwoY29udGV4dC50aW1lck5lc3RpbmdMZXZlbCgpKQogICAgICwgbV9hY3Rp
b24oV1RGTW92ZShhY3Rpb24pKQogICAgICwgbV9vcmlnaW5hbEludGVydmFsKGludGVydmFsKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01UaW1lci5oCmluZGV4IGI5NzU1YTc5NWI2NTZlYzU0MjM0OGY4MDNmNmRjYTY1
ZDY5YTZkMjMuLjdkNDgwMWZmMzEyZTkyYTBiMzlkMmIwMGMyMjI0NzExNjhiYTlmMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBIVE1MUGx1Z0luRWxlbWVudDsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIAotY2xhc3MgRE9N
VGltZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01UaW1lcj4sIHB1YmxpYyBTdXNwZW5k
YWJsZVRpbWVyIHsKK2NsYXNzIERPTVRpbWVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9N
VGltZXI+LCBwdWJsaWMgU3VzcGVuZGFibGVUaW1lckJhc2UgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKERPTVRpbWVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
QEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzRE9NVGltZXJzVGhyb3R0bGlu
Z0VuYWJsZWQoRG9jdW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxpbmdTdGF0
ZUlmTmVjZXNzYXJ5KGNvbnN0IERPTVRpbWVyRmlyZVN0YXRlJik7CiAKLSAgICAvLyBTdXNwZW5k
YWJsZVRpbWVyCisgICAgLy8gU3VzcGVuZGFibGVUaW1lckJhc2UKICAgICB2b2lkIGZpcmVkKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8TW9ub3RvbmljVGltZT4gYWxpZ25lZEZpcmVUaW1lKE1vbm90b25pY1RpbWUp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5k
YWJsZVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAK
aW5kZXggNzZlZDE5N2FmYmEzMjM2MmE0MWUyMDYzMzUwMWRlM2M0MjE4YzJiMi4uZTdlNTE3YjMz
YWE2MTVjYWZiNzUyZWI5MDg1YzIwOWQxMTgyNGQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuY3BwCkBAIC0zMSwxOSArMzEsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1TdXNwZW5kYWJsZVRpbWVyOjpTdXNwZW5kYWJsZVRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCitTdXNw
ZW5kYWJsZVRpbWVyQmFzZTo6U3VzcGVuZGFibGVUaW1lckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogewogfQogCi1T
dXNwZW5kYWJsZVRpbWVyOjp+U3VzcGVuZGFibGVUaW1lcigpID0gZGVmYXVsdDsKK1N1c3BlbmRh
YmxlVGltZXJCYXNlOjp+U3VzcGVuZGFibGVUaW1lckJhc2UoKSA9IGRlZmF1bHQ7CiAKLWJvb2wg
U3VzcGVuZGFibGVUaW1lcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK2Jvb2wgU3VzcGVu
ZGFibGVUaW1lckJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGlzQWN0aXZlKCk7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RvcCgpCit2b2lkIFN1
c3BlbmRhYmxlVGltZXJCYXNlOjpzdG9wKCkKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAg
ICAgICBUaW1lckJhc2U6OnN0b3AoKTsKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBTdXNwZW5kYWJs
ZVRpbWVyOjpzdG9wKCkKICAgICBkaWRTdG9wKCk7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1l
cjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFz
ZTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogewogICAgIEFTU0VSVCghbV9zdXNwZW5k
ZWQpOwogICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBTdXNw
ZW5kYWJsZVRpbWVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgfQogfQogCi12
b2lkIFN1c3BlbmRhYmxlVGltZXI6OnJlc3VtZSgpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNl
OjpyZXN1bWUoKQogewogICAgIEFTU0VSVChtX3N1c3BlbmRlZCk7CiAgICAgbV9zdXNwZW5kZWQg
PSBmYWxzZTsKQEAgLTc4LDE2ICs3OCwxNiBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnJlc3Vt
ZSgpCiAgICAgICAgIHN0YXJ0KG1fc2F2ZWROZXh0RmlyZUludGVydmFsLCBtX3NhdmVkUmVwZWF0
SW50ZXJ2YWwpOwogfQogCi1ib29sIFN1c3BlbmRhYmxlVGltZXI6OmNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdAorYm9vbCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6ZGlkU3RvcCgpCit2b2lkIFN1c3BlbmRhYmxlVGlt
ZXJCYXNlOjpkaWRTdG9wKCkKIHsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpjYW5jZWwo
KQordm9pZCBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6Y2FuY2VsKCkKIHsKICAgICBpZiAoIW1fc3Vz
cGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKQEAgLTk1LDcgKzk1LDcgQEAgdm9p
ZCBTdXNwZW5kYWJsZVRpbWVyOjpjYW5jZWwoKQogICAgICAgICBtX3N1c3BlbmRlZCA9IGZhbHNl
OwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVw
ZWF0SW50ZXJ2YWwpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyhT
ZWNvbmRzIHJlcGVhdEludGVydmFsKQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAg
IFRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2YWwpOwpAQCAtMTA2LDcgKzEw
Niw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBl
YXRJbnRlcnZhbCkKICAgICB9CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRPbmVT
aG90KFNlY29uZHMgaW50ZXJ2YWwpCit2b2lkIFN1c3BlbmRhYmxlVGltZXJCYXNlOjpzdGFydE9u
ZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAg
ICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CkBAIC0xMTcsNyArMTE3LDcgQEAg
dm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkKICAg
ICB9CiB9CiAKLVNlY29uZHMgU3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWwoKSBjb25z
dAorU2Vjb25kcyBTdXNwZW5kYWJsZVRpbWVyQmFzZTo6cmVwZWF0SW50ZXJ2YWwoKSBjb25zdAog
ewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIHJldHVybiBUaW1lckJhc2U6OnJlcGVh
dEludGVydmFsKCk7CkBAIC0xMjYsNyArMTI2LDcgQEAgU2Vjb25kcyBTdXNwZW5kYWJsZVRpbWVy
OjpyZXBlYXRJbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIDBfczsKIH0KIAotdm9pZCBTdXNw
ZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgZGVsdGEpCit2b2lkIFN1
c3BlbmRhYmxlVGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgZGVsdGEpCiB7
CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjphdWdtZW50RmlyZUlu
dGVydmFsKGRlbHRhKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6
OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKICAgICB9CiB9CiAKLXZvaWQgU3Vz
cGVuZGFibGVUaW1lcjo6YXVnbWVudFJlcGVhdEludGVydmFsKFNlY29uZHMgZGVsdGEpCit2b2lk
IFN1c3BlbmRhYmxlVGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0
YSkKIHsKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OmF1Z21lbnRS
ZXBlYXRJbnRlcnZhbChkZWx0YSk7CkBAIC0xNTMsNCArMTUzLDkgQEAgdm9pZCBTdXNwZW5kYWJs
ZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKICAgICB9CiB9CiAK
K2NvbnN0IGNoYXIqIFN1c3BlbmRhYmxlVGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiU3VzcGVuZGFibGVUaW1lciI7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKaW5kZXggM2MzZDQ5
ZTA1OGFiMTMxNzQ3ZWI0OWJiMGM5M2EwZmQyOTQ1MThmZC4uZjNlZjEyMzAwZTVhNTY1OWQ4ODUx
ODFmYzA4MzY1Njg5YjA2MWQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmgKQEAgLTI5LDIwICsyOSwyMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFN1c3BlbmRhYmxl
VGltZXIgOiBwcml2YXRlIFRpbWVyQmFzZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFz
cyBTdXNwZW5kYWJsZVRpbWVyQmFzZSA6IHByaXZhdGUgVGltZXJCYXNlLCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBTdXNwZW5kYWJsZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5TdXNwZW5kYWJsZVRpbWVyKCk7CisgICAgZXhwbGljaXQgU3VzcGVuZGFibGVUaW1l
ckJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgflN1c3BlbmRhYmxl
VGltZXJCYXNlKCk7CiAKICAgICAvLyBBIGhvb2sgZm9yIGRlcml2ZWQgY2xhc3NlcyB0byBwZXJm
b3JtIGNsZWFudXAuCiAgICAgdmlydHVhbCB2b2lkIGRpZFN0b3AoKTsKIAotICAgIC8vIFBhcnQg
b2YgVGltZXJCYXNlIGludGVyZmFjZSB1c2VkIGJ5IFN1c3BlbmRhYmxlVGltZXIgY2xpZW50cywg
bW9kaWZpZWQgdG8gd29yayB3aGVuIHN1c3BlbmRlZC4KKyAgICAvLyBQYXJ0IG9mIFRpbWVyQmFz
ZSBpbnRlcmZhY2UgdXNlZCBieSBTdXNwZW5kYWJsZVRpbWVyQmFzZSBjbGllbnRzLCBtb2RpZmll
ZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJl
dHVybiBUaW1lckJhc2U6OmlzQWN0aXZlKCkgfHwgKG1fc3VzcGVuZGVkICYmIG1fc2F2ZWRJc0Fj
dGl2ZSk7IH0KICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5k
ZWQ7IH0KIApAQCAtNzcsNCArNzgsMzEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2F2ZWRJc0Fj
dGl2ZSB7IGZhbHNlIH07CiB9OwogCitjbGFzcyBTdXNwZW5kYWJsZVRpbWVyIGZpbmFsIDogcHVi
bGljIFN1c3BlbmRhYmxlVGltZXJCYXNlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzLCB0eXBlbmFt
ZSBUaW1lckZpcmVkQmFzZUNsYXNzPgorICAgIFN1c3BlbmRhYmxlVGltZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgVGltZXJGaXJlZENsYXNzJiBvYmplY3QsIHZvaWQgKFRpbWVy
RmlyZWRCYXNlQ2xhc3M6OipmdW5jdGlvbikoKSkKKyAgICAgICAgOiBTdXNwZW5kYWJsZVRpbWVy
QmFzZShjb250ZXh0KQorICAgICAgICAsIG1fZnVuY3Rpb24oc3RkOjpiaW5kKGZ1bmN0aW9uLCAm
b2JqZWN0KSkKKyAgICB7CisgICAgfQorCisgICAgU3VzcGVuZGFibGVUaW1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24p
CisgICAgICAgIDogU3VzcGVuZGFibGVUaW1lckJhc2UoY29udGV4dCkKKyAgICAgICAgLCBtX2Z1
bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24pKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
dm9pZCBmaXJlZCgpIGZpbmFsCisgICAgeworICAgICAgICBtX2Z1bmN0aW9uKCk7CisgICAgfQor
CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisg
ICAgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBtX2Z1bmN0aW9uOworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCAwNmM3MDI1NTMw
OTc0ZGE5OGQ3NzRlZGIzZTRiMTExMWMyMjdiMjMxLi5lZWI0OWFlMWJiN2Y5MThmZDBiMzE0MDc0
MmJlMDhiN2VmOTRmM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTQ1
NSw3ICsxNDU1LDcgQEAgdm9pZCBXZWJWaWV3OjpmcmFtZVJlY3QoUkVDVCogcmVjdCkKICAgICA6
OkdldFdpbmRvd1JlY3QobV92aWV3V2luZG93LCByZWN0KTsKIH0KIAotY2xhc3MgV2luZG93Q2xv
c2VUaW1lciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyIHsKK2NsYXNz
IFdpbmRvd0Nsb3NlVGltZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1l
ckJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBXaW5kb3dDbG9zZVRpbWVyKiBjcmVhdGUoV2Vi
VmlldyopOwogCkBAIC0xNDY2LDcgKzE0NjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29udGV4
dERlc3Ryb3llZCgpIG92ZXJyaWRlOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiV2luZG93Q2xvc2VUaW1lciI7IH0KIAotICAg
IC8vIFN1c3BlbmRhYmxlVGltZXIgQVBJLgorICAgIC8vIFN1c3BlbmRhYmxlVGltZXJCYXNlIEFQ
SS4KICAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7
CkBAIC0xNDkxLDcgKzE0OTEsNyBAQCBXaW5kb3dDbG9zZVRpbWVyKiBXaW5kb3dDbG9zZVRpbWVy
OjpjcmVhdGUoV2ViVmlldyogd2ViVmlldykKIH0KIAogV2luZG93Q2xvc2VUaW1lcjo6V2luZG93
Q2xvc2VUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWJWaWV3KiB3ZWJW
aWV3KQotICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0KQorICAgIDogU3VzcGVuZGFibGVU
aW1lckJhc2UoJmNvbnRleHQpCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKIHsKICAgICBBU1NF
UlRfQVJHKHdlYlZpZXcsIHdlYlZpZXcpOwpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgV2luZG93Q2xv
c2VUaW1lcjo6V2luZG93Q2xvc2VUaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBXZWJWaWV3KiB3ZWIKIAogdm9pZCBXaW5kb3dDbG9zZVRpbWVyOjpjb250ZXh0RGVzdHJveWVk
KCkKIHsKLSAgICBTdXNwZW5kYWJsZVRpbWVyOjpjb250ZXh0RGVzdHJveWVkKCk7CisgICAgU3Vz
cGVuZGFibGVUaW1lckJhc2U6OmNvbnRleHREZXN0cm95ZWQoKTsKICAgICBkZWxldGUgdGhpczsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oCmluZGV4IDM1ODE3NDM3NTQ5ZDZjZDk3NjYw
NmI0NWY0YzI1MWMwYTJlYjg3YmUuLjIzNDgwYjY4YmU2ZDNhZTUyZjYzZTdkNGFlMTZlY2QwOTBm
ZDg3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKQEAgLTY4MCw3ICs2ODAsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgYm9vbCBzX2FsbG93U2l0ZVNwZWNpZmljSGFja3M7CiAK
LSAgICBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyKiBtX2Nsb3NlV2luZG93VGltZXIgeyBudWxs
cHRyIH07CisgICAgV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lckJhc2UqIG1fY2xvc2VXaW5kb3dU
aW1lciB7IG51bGxwdHIgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VFJBQ0tNT1VTRUVWRU5UPiBt
X21vdXNlT3V0VHJhY2tlcjsKIAogICAgIEhXTkQgbV90b3BMZXZlbFBhcmVudCB7IG51bGxwdHIg
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlOWI1NmIyNTc1NDU2MWJjMGRmYTE5ZWZlNGNkYTM4Njg5YWI0NGE3Li5iOGQx
NzhhZjYyYzE1MjY4MDI5M2ZhZWI3NTQ5YTI2ODE5MTI5MTRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTktMDktMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBQYWdlcyB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgZmFpbCB0byBlbnRlciB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIzMTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzgzNjEyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNv
dmVyYWdlLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2Ut
Y2FjaGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9j
YW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOS0yNyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2VzIHdpdGggV2ViIFdvcmtl
cnMgY2Fubm90IGVudGVyIHRoZSBiYWNrIC8gZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2Ut
Y2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MjU1MzdlM2JiNmMyYTgyNWU2NjllNjVi
YTU3NGRmNWE4M2YyMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBpcyBh
YmxlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIENhbnZhcyBkaWQgbm90IGNyYXNoIG9uIHJlc2l6ZS4KK3BhZ2Vz
aG93IC0gbm90IGZyb20gcGFnZSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBwYWdlIGNhY2hl
CitwYWdlc2hvdyAtIGZyb20gcGFnZSBjYWNoZQorUEFTUyBQYWdlIGVudGVyZWQgcGFnZSBjYWNo
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdl
LWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wt
cGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYTMyNzkzMTMwZWRhYzU2ZWJjYjIwOTY5NTg4
Yjk0YzdjNjg0NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisjZXhhbXBsZSB7CisgIHdpZHRoOiAxMDAlOworICBoZWlnaHQ6IDEw
MCU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+IDwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3
aXRoIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGlzIGFibGUgdG8gZW50ZXIgdGhlIGJhY2svZm9y
d2FyZCBjYWNoZS4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICBkZWJ1ZygicGFnZXNob3cg
LSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIHBhZ2UgY2FjaGUi
KTsKKyAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgdGVzdFBhc3NlZCgiUGFnZSBlbnRl
cmVkIHBhZ2UgY2FjaGUiKTsKKyAgICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9KTsKKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBk
ZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJl
bnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNoZSIpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gc3RhcnQoKQoreworICAg
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CisgICAgZ2wgPSBX
ZWJHTFRlc3RVdGlscy5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKKworICAgIHNldFRpbWVvdXQo
KCkgPT4geworICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiLi4vLi4vaGlzdG9yeS9yZXNvdXJj
ZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgfSwgMCk7Cit9CisKK3Rlc3RQYXNzZWQo
IkNhbnZhcyBkaWQgbm90IGNyYXNoIG9uIHJlc2l6ZS4iKTsKKzwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxjYW52YXMgaWQ9ImV4YW1wbGUiPjwvY2Fu
dmFzPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNh
Y2hlZC1wYWdlLmh0bWwKaW5kZXggOTA1MWRiODJlZmUxODUyYjViZjQ5MTBkZDc4MWFiODE2NmJi
NDJlMS4uN2UzNGY1Y2RhMGQ4MWNjODkwZjliYjE0YzgxYjlmYzUzOGRjMjg2YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3Rvcmlu
Zy1jYWNoZWQtcGFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbApAQCAtNjAsOSArNjAsMTAg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgCiAg
ICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbF9pZCk7Ci0gICAgICAgICAgCi0gICAgICAg
ICAgY2FudmFzID0gdy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2NhbnZhcycpKTsKLSAgICAgICAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQo
J3dlYmdsJyk7CisKKyAgICAgICAgICAvLyBQcmV2ZW50IGVudGVyaW5nIFBhZ2VDYWNoZS4KKyAg
ICAgICAgICBwZWVyQ29ubmVjdGlvbiA9IG5ldyB3LlJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
ICAgICAgcGVlckNvbm5lY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcignb25pY2VjYW5kaWRhdGUnLCAo
ZSkgPT4geyB9KTsKICAgICAgICAgICAKICAgICAgICAgICBjaGlsZF9mcmFtZSA9IHcuZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CiAg
ICAgICAgICAgY2hpbGRfZnJhbWUuY29udGVudFdpbmRvdy5vbnVubG9hZCA9ICgpID0+IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>