<?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>203107</bug_id>
          
          <creation_ts>2019-10-17 09:59:48 -0700</creation_ts>
          <short_desc>XMLHttpRequest should not prevent entering the back/forward cache</short_desc>
          <delta_ts>2019-10-21 08:17:27 -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>
          <dependson>203106</dependson>
    
    <dependson>203186</dependson>
          <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>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581020</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 09:59:48 -0700</bug_when>
    <thetext>XMLHttpRequest should not prevent entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581209</commentid>
    <comment_count>1</comment_count>
      <attachid>381245</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 16:02:50 -0700</bug_when>
    <thetext>Created attachment 381245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581626</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-18 17:06:35 -0700</bug_when>
    <thetext>This is blocked on Bug 203106.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581744</commentid>
    <comment_count>3</comment_count>
      <attachid>381378</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-19 16:42:17 -0700</bug_when>
    <thetext>Created attachment 381378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581745</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-19 16:44:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/56438647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581760</commentid>
    <comment_count>5</comment_count>
      <attachid>381388</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-19 20:26:46 -0700</bug_when>
    <thetext>Created attachment 381388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581778</commentid>
    <comment_count>6</comment_count>
      <attachid>381388</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-20 11:08:31 -0700</bug_when>
    <thetext>Comment on attachment 381388
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        1. We no longer cancel pending loads in the suspend() method as this may

This means we will continue loads even if the page navigates away.
If this is a large download or a load a la EventSource, we might spend some network resources for a suspended page.
Is this ok? Do you know what other browsers are doing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581780</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-20 12:33:36 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Comment on attachment 381388 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381388&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        1. We no longer cancel pending loads in the suspend() method as this may
&gt; 
&gt; This means we will continue loads even if the page navigates away.
&gt; If this is a large download or a load a la EventSource, we might spend some
&gt; network resources for a suspended page.
&gt; Is this ok? Do you know what other browsers are doing?

No, all loads are cancelled when entering the page cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581781</commentid>
    <comment_count>8</comment_count>
      <attachid>381388</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-20 12:37:24 -0700</bug_when>
    <thetext>Comment on attachment 381388
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt;&gt; +        1. We no longer cancel pending loads in the suspend() method as this may
&gt;&gt; 
&gt;&gt; This means we will continue loads even if the page navigates away.
&gt;&gt; If this is a large download or a load a la EventSource, we might spend some network resources for a suspended page.
&gt;&gt; Is this ok? Do you know what other browsers are doing?
&gt; 
&gt; No, all loads are cancelled when entering the page cache.

We just don’t want to do it in the suspend() as it may fire events and we are not allowed to run script from inside suspend().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581850</commentid>
    <comment_count>9</comment_count>
      <attachid>381388</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 08:17:25 -0700</bug_when>
    <thetext>Comment on attachment 381388
Patch

Clearing flags on attachment: 381388

Committed r251366: &lt;https://trac.webkit.org/changeset/251366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581851</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 08:17:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381245</attachid>
            <date>2019-10-17 16:02:50 -0700</date>
            <delta_ts>2019-10-19 16:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203107-20191017160249.patch</filename>
            <type>text/plain</type>
            <size>24182</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2OTllMWZjYjRmNGEx
MTQyNzFiMzNkZGM2NWQwYTc4MTBmMzBhNy4uYjg5NjdiYjE1YTgyNGQ2ZDI2ZjA3NTM0ZDAwNmM3
NzY1YmEwMjU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTEwLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hv
dWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzEwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgWE1MSHR0cFJl
cXVlc3QgZm9yIGJhY2svZm9yd2FyZCBjYWNoZSBzdXNwZW5zaW9uOgorICAgICAgICAxLiBXZSBu
byBsb25nZXIgY2FuY2VsIHBlbmRpbmcgbG9hZHMgaW4gdGhlIHN1c3BlbmQoKSBtZXRob2QgYXMg
dGhpcyBtYXkKKyAgICAgICAgICAgZmlyZSBldmVudHMuCisgICAgICAgIDIuIFNpbXBsaWZ5IFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlIHRvIHVzZSBTdXNwZW5kYWJsZVRpbWVy
cworICAgICAgICAgICB0byBkaXNwYXRjaCBldmVudHMgdGhhdCBhcmUgZGVmZXJyZWQgYnkgc3Vz
cGVuc2lvbiBvciB0aHJvdHRsaW5nLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sCisKKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OlhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaXNw
YXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXN1bWUpOgorICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRp
c3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hSZWFkeVN0YXRlQ2hhbmdlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6OmRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmx1
c2hQcm9ncmVzc0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlz
cGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6cmVzdW1lKToK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDoKKwog
MjAxOS0xMC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
bGVSZWFkZXIgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDY3YWQyOTNiZDcyZjVk
NWIxZjA0YjQ3ODZmMTAwNGJkMWJmMmVkYzQuLmIxMmQyNjdiOTE0NmJiMzFjMWNiMGEzOTFjOWQ1
MmEzN2I2NjQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE3
LDExICsxMTcsOSBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKICAgICAsIG1fdXBsb2FkQ29tcGxldGUoZmFsc2UpCiAgICAg
LCBtX3dhc0Fib3J0ZWRCeUNsaWVudChmYWxzZSkKICAgICAsIG1fcmVzcG9uc2VDYWNoZUlzVmFs
aWQoZmFsc2UpCi0gICAgLCBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nKGZhbHNlKQogICAgICwg
bV9yZWFkeVN0YXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihVTlNFTlQpKQogICAgICwgbV9yZXNw
b25zZVR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlc3BvbnNlVHlwZTo6RW1wdHlTdHJpbmcp
KQotICAgICwgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUodGhpcykKLSAgICAsIG1fcmVzdW1lVGlt
ZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVzdDo6cmVzdW1lVGltZXJGaXJlZCkKKyAgICAsIG1fcHJv
Z3Jlc3NFdmVudFRocm90dGxlKCp0aGlzKQogICAgICwgbV9uZXR3b3JrRXJyb3JUaW1lcigqdGhp
cywgJlhNTEh0dHBSZXF1ZXN0OjpuZXR3b3JrRXJyb3JUaW1lckZpcmVkKQogICAgICwgbV90aW1l
b3V0VGltZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KQogICAgICwg
bV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcobWF4aW11bUludGVydmFs
Rm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKQpAQCAtMTA5MSw2ICsxMDg5LDggQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKIAog
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7CisgICAg
UkVMRUFTRV9BU1NFUlQoaXNBbGxvd2VkVG9SdW5TY3JpcHQoKSk7CisKICAgICBpZiAobV91c2Vy
R2VzdHVyZVRva2VuICYmIG1fdXNlckdlc3R1cmVUb2tlbi0+aGFzRXhwaXJlZChtX21heGltdW1J
bnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZykpCiAgICAgICAgIG1fdXNlckdlc3R1cmVU
b2tlbiA9IG51bGxwdHI7CiAKQEAgLTExNDEsNTUgKzExNDEsMTkgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkUmVhY2hUaW1lb3V0KCkKICAgICBkaXNwYXRjaEVycm9yRXZlbnRzKGV2ZW50TmFt
ZXMoKS50aW1lb3V0RXZlbnQpOwogfQogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgbmV2ZXIgcHJl
dmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9vbCBYTUxIdHRwUmVxdWVz
dDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29u
c3QKLXsKLSAgICAvLyBJZiB0aGUgbG9hZCBldmVudCBoYXMgbm90IGZpcmVkIHlldCwgY2FuY2Vs
bGluZyB0aGUgbG9hZCBpbiBzdXNwZW5kKCkgbWF5IGNhdXNlCi0gICAgLy8gdGhlIGxvYWQgZXZl
bnQgdG8gYmUgZmlyZWQgYW5kIGFyYml0cmFyeSBKUyBleGVjdXRpb24sIHdoaWNoIHdvdWxkIGJl
IHVuc2FmZS4KLSAgICAvLyBUaGVyZWZvcmUsIHdlIHByZXZlbnQgc3VzcGVuZGluZyBpbiB0aGlz
IGNhc2UuCi0gICAgcmV0dXJuIG1fbG9hZGVyICYmICFkb2N1bWVudCgpLT5sb2FkRXZlbnRGaW5p
c2hlZCgpOwotfQotCiBjb25zdCBjaGFyKiBYTUxIdHRwUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJYTUxIdHRwUmVxdWVzdCI7CiB9CiAKLXZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiB7CiAgICAgbV9w
cm9ncmVzc0V2ZW50VGhyb3R0bGUuc3VzcGVuZCgpOwotCi0gICAgaWYgKG1fcmVzdW1lVGltZXIu
aXNBY3RpdmUoKSkgewotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9k
aXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1fbG9hZGVyKSB7Ci0g
ICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFib3J0IHRoZSByZXF1
ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCi0gICAgICAgIGdl
bmVyaWNFcnJvcigpOwotICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nID0gdHJ1ZTsK
LSAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwotICAgICAgICAvLyBJdCBz
aG91bGQgbm90IGJlIHBvc3NpYmxlIHRvIHJlc3RhcnQgdGhlIGxvYWQgd2hlbiBhYm9ydGluZyBp
biBzdXNwZW5kKCkgYmVjYXVzZQotICAgICAgICAvLyB3ZSBhcmUgbm90IGFsbG93ZWQgdG8gZXhl
Y3V0ZSBpbiBKUyBpbiBzdXNwZW5kKCkuCi0gICAgICAgIEFTU0VSVF9VTlVTRUQoYWJvcnRlZCwg
YWJvcnRlZCk7Ci0gICAgfQogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpyZXN1bWUoKQogewog
ICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLnJlc3VtZSgpOwotCi0gICAgLy8gV2UgYXJlIG5v
dCBhbGxvd2VkIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IEpTIGluIHJlc3VtZSgpIHNvIGRpc3BhdGNo
Ci0gICAgLy8gdGhlIGVycm9yIGV2ZW50IGluIGEgdGltZXIuCi0gICAgaWYgKG1fZGlzcGF0Y2hF
cnJvck9uUmVzdW1pbmcgJiYgIW1fcmVzdW1lVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9y
ZXN1bWVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLX0KLQotdm9pZCBYTUxIdHRwUmVxdWVzdDo6
cmVzdW1lVGltZXJGaXJlZCgpCi17Ci0gICAgQVNTRVJUKG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1p
bmcpOwotICAgIG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1pbmcgPSBmYWxzZTsKLSAgICBkaXNwYXRj
aEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKIH0KIAogdm9pZCBYTUxIdHRw
UmVxdWVzdDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDUyMDA4
YzdlYjdhNDBmMzIxNTBlOTM2NjBkZTBkZWRhM2I3NmEzNzQuLmRmMzJhYjBkZTllYTYzNTNjM2Nh
ZDU1YzVjZjE5MmY4YjI2Y2M3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBA
IC0xMzcsNyArMTM3LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwogICAgIHZvaWQg
cmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CkBAIC0xODksNyAr
MTg4LDYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsK
ICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVz
dW1lVGltZXJGaXJlZCgpOwogICAgIFJlZjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBjcmVhdGVEZWNv
ZGVyKCkgY29uc3Q7CiAKICAgICB2b2lkIG5ldHdvcmtFcnJvclRpbWVyRmlyZWQoKTsKQEAgLTIw
Myw3ICsyMDEsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdXBsb2FkQ29tcGxldGUgOiAx
OwogICAgIHVuc2lnbmVkIG1fd2FzQWJvcnRlZEJ5Q2xpZW50IDogMTsKICAgICB1bnNpZ25lZCBt
X3Jlc3BvbnNlQ2FjaGVJc1ZhbGlkIDogMTsKLSAgICB1bnNpZ25lZCBtX2Rpc3BhdGNoRXJyb3JP
blJlc3VtaW5nIDogMTsKICAgICB1bnNpZ25lZCBtX3JlYWR5U3RhdGUgOiAzOyAvLyBTdGF0ZQog
ICAgIHVuc2lnbmVkIG1fcmVzcG9uc2VUeXBlIDogMzsgLy8gUmVzcG9uc2VUeXBlCiAKQEAgLTIz
OCw3ICsyMzUsNiBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJsZSBTdHJpbmcgbV9hbGxSZXNwb25z
ZUhlYWRlcnM7CiAKLSAgICBUaW1lciBtX3Jlc3VtZVRpbWVyOwogICAgIFRpbWVyIG1fbmV0d29y
a0Vycm9yVGltZXI7CiAgICAgVGltZXIgbV90aW1lb3V0VGltZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwCmluZGV4IGY4ZjlmNWVlNzBiMjcxN2U4OGFjNWFiMGI2ZTBiYmE4NWM4NWQ5ODYuLjc3NDVm
NGY4Y2Y3MTcyNWM0YThkZWJhMjBkMWM3YzMxNjUzOWIxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNw
cApAQCAtMzUsMTEgKzM1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgU2Vjb25k
cyBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6bWluaW11bVByb2dyZXNzRXZl
bnREaXNwYXRjaGluZ0ludGVydmFsIHsgNTBfbXMgfTsgLy8gNTAgbXMgcGVyIHNwZWNpZmljYXRp
b24uCiAKLVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZShFdmVudFRhcmdldCogdGFyZ2V0KQorWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlKEV2ZW50VGFyZ2V0JiB0YXJnZXQpCiAgICAgOiBtX3RhcmdldCh0YXJnZXQpCi0gICAgLCBt
X2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNUaW1lcigqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzKQorICAgICwgbV9kaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lcih0YXJnZXQuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCAqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQorICAgICwgbV9kaXNwYXRjaERlZmVy
cmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyKHRhcmdldC5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzLCAmWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNo
RGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKQogewotICAgIEFTU0VSVCh0YXJnZXQpOworICAg
IG1fZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7
CisgICAgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyLnN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6flhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCkgPSBkZWZhdWx0OwpAQCAtNTAsMjkg
KzUyLDIzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3Bh
dGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlCiAgICAgbV9sb2FkZWQgPSBsb2FkZWQ7
CiAgICAgbV90b3RhbCA9IHRvdGFsOwogCi0gICAgaWYgKCFtX3RhcmdldC0+aGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpKQorICAgIGlmICghbV90YXJnZXQuaGFz
RXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpKQogICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgaWYgKG1fZGVmZXJFdmVudHMpIHsKLSAgICAgICAgLy8gT25seSBzdG9y
ZSB0aGUgbGF0ZXN0IHByb2dyZXNzIGV2ZW50IHdoaWxlIHN1c3BlbmRlZC4KLSAgICAgICAgbV9k
ZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbGVuZ3RoQ29tcHV0YWJsZSwgbG9hZGVkLCB0
b3RhbCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAgICBpZiAoIWlzQWN0aXZlKCkpIHsK
KyAgICBpZiAoIW1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gJiYgIW1fZGlzcGF0
Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuaXNBY3RpdmUoKSkgewogICAgICAgICAvLyBU
aGUgdGltZXIgaXMgbm90IGFjdGl2ZSBzbyB0aGUgbGVhc3QgZnJlcXVlbnQgZXZlbnQgZm9yIG5v
dyBpcyBldmVyeSBieXRlLiBKdXN0IGRpc3BhdGNoIHRoZSBldmVudC4KIAogICAgICAgICAvLyBX
ZSBzaG91bGQgbm90IGhhdmUgYW55IHRocm90dGxlZCBwcm9ncmVzcyBldmVudC4KLSAgICAgICAg
QVNTRVJUKCFtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQpOworICAgICAgICBBU1NFUlQoIW1f
aGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpOwogCi0gICAgICAgIGRpc3BhdGNoRXZl
bnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dy
ZXNzRXZlbnQsIGxlbmd0aENvbXB1dGFibGUsIGxvYWRlZCwgdG90YWwpKTsKLSAgICAgICAgc3Rh
cnRSZXBlYXRpbmcobWluaW11bVByb2dyZXNzRXZlbnREaXNwYXRjaGluZ0ludGVydmFsKTsKLSAg
ICAgICAgbV9oYXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50ID0gZmFsc2U7CisgICAgICAgIGRpc3Bh
dGNoRXZlbnRXaGVuUG9zc2libGUoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIGxlbmd0aENvbXB1dGFibGUsIGxvYWRlZCwgdG90
YWwpKTsKKyAgICAgICAgbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5zdGFy
dFJlcGVhdGluZyhtaW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWwpOworICAg
ICAgICBtX2hhc1BlbmRpbmdUaHJvdHRsZWRQcm9ncmVzc0V2ZW50ID0gZmFsc2U7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICAvLyBUaGUgdGltZXIgaXMgYWxyZWFkeSBhY3RpdmUgc28g
bWluaW11bVByb2dyZXNzRXZlbnREaXNwYXRjaGluZ0ludGVydmFsIGlzIHRoZSBsZWFzdCBmcmVx
dWVudCBldmVudC4KLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSB0cnVlOworICAg
IG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSB0cnVlOwogfQogCiB2b2lkIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFJlYWR5U3RhdGVDaGFu
Z2VFdmVudChFdmVudCYgZXZlbnQsIFByb2dyZXNzRXZlbnRBY3Rpb24gcHJvZ3Jlc3NFdmVudEFj
dGlvbikKQEAgLTgwLDE5ICs3NiwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlOjpkaXNwYXRjaFJlYWR5U3RhdGVDaGFuZ2VFdmVudChFdmVudCYgZQogICAgIGlm
IChwcm9ncmVzc0V2ZW50QWN0aW9uID09IEZsdXNoUHJvZ3Jlc3NFdmVudCkKICAgICAgICAgZmx1
c2hQcm9ncmVzc0V2ZW50KCk7CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNw
YXRjaEV2ZW50V2hlblBvc3NpYmxlKGV2ZW50KTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCit2b2lkIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2ZW50V2hlblBvc3Np
YmxlKEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAobV9kZWZlckV2ZW50cykgewotICAgICAgICBp
ZiAobV9kZWZlcnJlZEV2ZW50cy5zaXplKCkgPiAxICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50ICYmIGV2ZW50LnR5cGUoKSA9PSBtX2RlZmVycmVk
RXZlbnRzLmxhc3QoKS0+dHlwZSgpKSB7CisgICAgaWYgKG1fc2hvdWxkRGVmZXJFdmVudHNEdWVU
b1N1c3BlbnNpb24pIHsKKyAgICAgICAgaWYgKG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNp
b24uc2l6ZSgpID4gMSAmJiBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnJlYWR5c3RhdGVj
aGFuZ2VFdmVudCAmJiBldmVudC50eXBlKCkgPT0gbV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVu
c2lvbi5sYXN0KCktPnR5cGUoKSkgewogICAgICAgICAgICAgLy8gUmVhZHlzdGF0ZWNoYW5nZSBl
dmVudHMgYXJlIHN0YXRlLWxlc3Mgc28gYXZvaWQgcmVwZWF0aW5nIHR3byBpZGVudGljYWwgZXZl
bnRzIGluIGEgcm93IG9uIHJlc3VtZS4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQot
ICAgICAgICBtX2RlZmVycmVkRXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgICAgIG1fZXZlbnRz
RGVmZXJyZWREdWVUb1N1c3BlbnNpb24uYXBwZW5kKGV2ZW50KTsKICAgICB9IGVsc2UKLSAgICAg
ICAgbV90YXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgICBtX3RhcmdldC5kaXNw
YXRjaEV2ZW50KGV2ZW50KTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRU
aHJvdHRsZTo6ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCkBA
IC0xMDUsMTAzICsxMDEsNjIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZTo6ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21TdHJpbmcKICAgICAgICAgbV90
b3RhbCA9IDA7CiAgICAgfQogCi0gICAgaWYgKG1fdGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyh0
eXBlKSkKLSAgICAgICAgZGlzcGF0Y2hFdmVudChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6
OmNyZWF0ZSh0eXBlLCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3RvdGFsKSk7Cisg
ICAgaWYgKG1fdGFyZ2V0Lmhhc0V2ZW50TGlzdGVuZXJzKHR5cGUpKQorICAgICAgICBkaXNwYXRj
aEV2ZW50V2hlblBvc3NpYmxlKFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKHR5
cGUsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpKTsKIH0KIAogdm9pZCBY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmx1c2hQcm9ncmVzc0V2ZW50KCkK
IHsKLSAgICBpZiAobV9kZWZlckV2ZW50cyAmJiBtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudCkgewot
ICAgICAgICAvLyBNb3ZlIHRoZSBwcm9ncmVzcyBldmVudCB0byB0aGUgcXVldWUsIHRvIGdldCBp
dCBpbiB0aGUgcmlnaHQgb3JkZXIgb24gcmVzdW1lLgotICAgICAgICBtX2RlZmVycmVkRXZlbnRz
LmFwcGVuZChtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBp
ZiAoIW1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpCiAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoIWhhc0V2ZW50VG9EaXNwYXRjaCgpKQotICAgICAgICByZXR1cm47
Ci0gICAgUmVmPEV2ZW50PiBldmVudCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9h
ZGVkLCBtX3RvdGFsKTsKLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsK
IAorICAgIG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKICAgICAv
LyBXZSBzdG9wIHRoZSB0aW1lciBhcyB0aGlzIGlzIGNhbGxlZCB3aGVuIG5vIG1vcmUgZXZlbnRz
IGFyZSBzdXBwb3NlZCB0byBvY2N1ci4KLSAgICBzdG9wKCk7CisgICAgbV9kaXNwYXRjaFRocm90
dGxlZFByb2dyZXNzRXZlbnRUaW1lci5jYW5jZWwoKTsKIAotICAgIGRpc3BhdGNoRXZlbnQoV1RG
TW92ZShldmVudCkpOworICAgIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1fbGVu
Z3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50cygpCit2b2lk
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZl
bnRzQWZ0ZXJSZXN1bWluZygpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJFdmVudHMpOwotICAgIG1f
ZGVmZXJFdmVudHMgPSBmYWxzZTsKKyAgICBBU1NFUlQobV9zaG91bGREZWZlckV2ZW50c0R1ZVRv
U3VzcGVuc2lvbik7CisgICAgbV9zaG91bGREZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbiA9IGZh
bHNlOwogCiAgICAgLy8gVGFrZSBvdmVyIHRoZSBkZWZlcnJlZCBldmVudHMgYmVmb3JlIGRpc3Bh
dGNoaW5nIHRoZW0gd2hpY2ggY2FuIHBvdGVudGlhbGx5IGFkZCBtb3JlLgotICAgIGF1dG8gZGVm
ZXJyZWRFdmVudHMgPSBXVEZNb3ZlKG1fZGVmZXJyZWRFdmVudHMpOwotCi0gICAgUmVmUHRyPEV2
ZW50PiBkZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBXVEZNb3ZlKG1fZGVmZXJyZWRQcm9ncmVzc0V2
ZW50KTsKKyAgICBhdXRvIGV2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uID0gV1RGTW92ZSht
X2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uKTsKIAotICAgIGZvciAoYXV0byYgZGVmZXJy
ZWRFdmVudCA6IGRlZmVycmVkRXZlbnRzKQotICAgICAgICBkaXNwYXRjaEV2ZW50KGRlZmVycmVk
RXZlbnQpOworICAgIGZsdXNoUHJvZ3Jlc3NFdmVudCgpOwogCi0gICAgLy8gVGhlIHByb2dyZXNz
IGV2ZW50IHdpbGwgYmUgaW4gdGhlIG1fZGVmZXJyZWRFdmVudHMgdmVjdG9yIGlmIHRoZSBsb2Fk
IHdhcyBmaW5pc2hlZCB3aGlsZSBzdXNwZW5kZWQuCi0gICAgLy8gSWYgbm90LCBqdXN0IHNlbmQg
dGhlIG1vc3QgdXAtdG8tZGF0ZSBwcm9ncmVzcyBvbiByZXN1bWUuCi0gICAgaWYgKGRlZmVycmVk
UHJvZ3Jlc3NFdmVudCkKLSAgICAgICAgZGlzcGF0Y2hFdmVudCgqZGVmZXJyZWRQcm9ncmVzc0V2
ZW50KTsKKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkRXZlbnQgOiBldmVudHNEZWZlcnJlZER1ZVRv
U3VzcGVuc2lvbikKKyAgICAgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShkZWZlcnJlZEV2
ZW50KTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmly
ZWQoKQordm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hU
aHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKGlzQWN0aXZl
KCkpOwotICAgIGlmICghaGFzRXZlbnRUb0Rpc3BhdGNoKCkpIHsKKyAgICBBU1NFUlQobV9kaXNw
YXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBpZiAoIW1f
aGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKICAgICAgICAgLy8gTm8gcHJvZ3Jl
c3MgZXZlbnQgd2FzIHF1ZXVlZCBzaW5jZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2gsIHdlIGNhbiBz
YWZlbHkgc3RvcCB0aGUgdGltZXIuCi0gICAgICAgIHN0b3AoKTsKKyAgICAgICAgbV9kaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5jYW5jZWwoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9s
b2FkZWQsIG1fdG90YWwpKTsKLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxz
ZTsKLX0KLQotYm9vbCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6aGFzRXZl
bnRUb0Rpc3BhdGNoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9oYXNUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50ICYmIGlzQWN0aXZlKCk7CisgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVu
dCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRlZCwgbV90b3RhbCkpOworICAgIG1faGFzUGVu
ZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKIH0KIAogdm9pZCBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6c3VzcGVuZCgpCiB7Ci0gICAgLy8gSWYgcmUtc3Vz
cGVuZGVkIGJlZm9yZSBkZWZlcnJlZCBldmVudHMgaGF2ZSBiZWVuIGRpc3BhdGNoZWQsIGp1c3Qg
c3RvcCB0aGUgZGlzcGF0Y2gKLSAgICAvLyBhbmQgY29udGludWUgdGhlIGxhc3Qgc3VzcGVuZC4K
LSAgICBpZiAobV9kaXNwYXRjaERlZmVycmVkRXZlbnRzVGltZXIuaXNBY3RpdmUoKSkgewotICAg
ICAgICBBU1NFUlQobV9kZWZlckV2ZW50cyk7Ci0gICAgICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2
ZW50c1RpbWVyLnN0b3AoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoIW1f
ZGVmZXJyZWRQcm9ncmVzc0V2ZW50KTsKLSAgICBBU1NFUlQobV9kZWZlcnJlZEV2ZW50cy5pc0Vt
cHR5KCkpOwotICAgIEFTU0VSVCghbV9kZWZlckV2ZW50cyk7Ci0KLSAgICBtX2RlZmVyRXZlbnRz
ID0gdHJ1ZTsKLSAgICAvLyBJZiB3ZSBoYXZlIGEgcHJvZ3Jlc3MgZXZlbnQgd2FpdGluZyB0byBi
ZSBkaXNwYXRjaGVkLAotICAgIC8vIGp1c3QgZGVmZXIgaXQuCi0gICAgaWYgKGhhc0V2ZW50VG9E
aXNwYXRjaCgpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50ID0gWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1f
bGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpOwotICAgICAgICBtX2hhc1Rocm90
dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKLSAgICB9Ci0gICAgc3RvcCgpOworICAgIG1fc2hv
dWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSB0cnVlOwogfQogCiB2b2lkIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1bWUoKQogewotICAgIEFTU0VSVCghbV9o
YXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50KTsKLQotICAgIGlmIChtX2RlZmVycmVkRXZlbnRzLmlz
RW1wdHkoKSAmJiAhbV9kZWZlcnJlZFByb2dyZXNzRXZlbnQpIHsKLSAgICAgICAgbV9kZWZlckV2
ZW50cyA9IGZhbHNlOworICAgIGlmIChtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uLmlz
RW1wdHkoKSAmJiAhbV9oYXNQZW5kaW5nVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCkgeworICAgICAg
ICBtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uID0gZmFsc2U7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICAvLyBEbyBub3QgZGlzcGF0Y2ggZXZlbnRzIGlubGluZSBoZXJl
LCBzaW5jZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlzIGl0ZXJhdGluZyBvdmVyCi0gICAgLy8g
dGhlIGxpc3Qgb2YgYWN0aXZlIERPTSBvYmplY3RzIHRvIHJlc3VtZSB0aGVtLCBhbmQgYW55IGFj
dGl2YXRlZCBKUyBldmVudC1oYW5kbGVyCi0gICAgLy8gY291bGQgaW5zZXJ0IG5ldyBhY3RpdmUg
RE9NIG9iamVjdHMgdG8gdGhlIGxpc3QuCi0gICAgLy8gbV9kZWZlckV2ZW50cyBpcyBrZXB0IHRy
dWUgdW50aWwgYWxsIGRlZmVycmVkIGV2ZW50cyBoYXZlIGJlZW4gZGlzcGF0Y2hlZC4KLSAgICBt
X2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAgICBtX2Rp
c3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKaW5kZXggMTk1MzE2
YzQyODdmNmMwZDZjZTlkM2ZiOTU2N2E2NzQyNTMyZjdmZi4uYTgzY2YzZGE4ZDY2Yjk4M2I0OTY4
NjhkN2Y4ODVmM2Q3MGFmMTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKQEAgLTI2LDcgKzI2LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlN1c3BlbmRh
YmxlVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIApAQCAtNDIsOSArNDIsOSBAQCBlbnVtIFByb2dyZXNzRXZlbnRBY3Rpb24gewogCiAv
LyBUaGlzIGltcGxlbWVudHMgdGhlIFhIUjIgcHJvZ3Jlc3MgZXZlbnQgZGlzcGF0Y2hpbmc6ICJk
aXNwYXRjaCBhIHByb2dyZXNzIGV2ZW50IGNhbGxlZCBwcm9ncmVzcwogLy8gYWJvdXQgZXZlcnkg
NTBtcyBvciBmb3IgZXZlcnkgYnl0ZSByZWNlaXZlZCwgd2hpY2hldmVyIGlzIGxlYXN0IGZyZXF1
ZW50Ii4KLWNsYXNzIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlIDogcHVibGlj
IFRpbWVyQmFzZSB7CitjbGFzcyBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUoRXZlbnRUYXJnZXQqKTsKKyAgICBleHBsaWNpdCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZShFdmVudFRhcmdldCYpOwogICAgIHZpcnR1YWwgflhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jl
c3NFdmVudChib29sIGxlbmd0aENvbXB1dGFibGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQs
IHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCk7CkBAIC01NywyNiArNTcsMjUgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBtaW5pbXVtUHJvZ3Jlc3NFdmVudERp
c3BhdGNoaW5nSW50ZXJ2YWw7CiAKLSAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaXNwYXRjaERlZmVycmVkRXZlbnRzKCk7CisgICAgdm9pZCBkaXNwYXRjaFRocm90dGxlZFBy
b2dyZXNzRXZlbnRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBkaXNwYXRjaERlZmVycmVkRXZlbnRz
QWZ0ZXJSZXN1bWluZygpOwogICAgIHZvaWQgZmx1c2hQcm9ncmVzc0V2ZW50KCk7Ci0gICAgdm9p
ZCBkaXNwYXRjaEV2ZW50KEV2ZW50Jik7Ci0KLSAgICBib29sIGhhc0V2ZW50VG9EaXNwYXRjaCgp
IGNvbnN0OworICAgIHZvaWQgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShFdmVudCYpOwogCiAg
ICAgLy8gV2VhayBwb2ludGVyIHRvIG91ciBYTUxIdHRwUmVxdWVzdCBvYmplY3QgYXMgaXQgaXMg
dGhlIG9uZSBob2xkaW5nIHVzLgotICAgIEV2ZW50VGFyZ2V0KiBtX3RhcmdldDsKKyAgICBFdmVu
dFRhcmdldCYgbV90YXJnZXQ7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9sb2FkZWQgeyAw
IH07CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fdG90YWwgeyAwIH07CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50OwotICAgIFZlY3RvcjxSZWY8RXZlbnQ+PiBt
X2RlZmVycmVkRXZlbnRzOwotICAgIFRpbWVyIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c1RpbWVy
OworICAgIFZlY3RvcjxSZWY8RXZlbnQ+PiBtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9u
OworICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRU
aW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVy
UmVzdW1pbmdUaW1lcjsKIAotICAgIGJvb2wgbV9oYXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50IHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9sZW5ndGhDb21wdXRhYmxlIHsgZmFsc2UgfTsKLSAgICBib29s
IG1fZGVmZXJFdmVudHMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGREZWZlckV2ZW50c0R1
ZVRvU3VzcGVuc2lvbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggY2UzZWNlODdlZDI5YjcwYmVlMzRkNjYzYWJlZGQ2MDBiY2ZkMjdkNS4uZDg2NDcxNjcy
Y2EwNzAwNTAwMDRkMjY5MjY4MGQ3MTE3ZGRjNjFiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE5LTEwLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWE1M
SHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBtb3JlIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlm
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRp
bmctaWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEwLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVJlYWRlciBzaG91bGQgbm90IHByZXZlbnQgZW50
ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzg4ZmIx
NWFlOTk5YjY5ZDRiMWU4OWM0NmI5ZGU2YWNmYjM5YWQyZi4uM2JhYThmNTEwNjJmZWI2NGIxYmZj
MGViOTZkNjIwMjE0NGNhMDM4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjYsNiArMjY2LDcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2MKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogZmFzdC9maWxlcy9maWxlLXJlYWRlci1i
YWNrLWZvcndhcmQtY2FjaGUuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJpdG1hcC5odG1sIFsgRHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1s
b2FkaW5nLWlmcmFtZS5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIAogd2Via2l0
Lm9yZy9iLzIwMjQ5NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20v
ZGlyZWN0aW9uYWxpdHktMDAyLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LXhoci1pbi1sb2FkaW5nLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjliN2E2OGRlMmRiMTM5ODkzZmZjMmFhYmI4ZmE3YTU0MGNiN2JlZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBsb2FkaW5nIGlmcmFtZSB0aGF0IGhhcyBhIHBl
bmRpbmcgWEhSIGlzIGFibGUgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKKyog
aWZyYW1lIHN0YXJ0aW5nIFhIUgorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cg
LSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgcGFnZSBjYWNoZQorUEFTUyBYSFIgZmluaXNoZWQgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhl
IGNhY2hlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ODg0N2FjNTY1ZmU5YzRiODRhNWJiZTQ2ZGZlYmU5OTdiZjFmZDAzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWlu
LWxvYWRpbmctaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdl
IHdpdGggYSBsb2FkaW5nIGlmcmFtZSB0aGF0IGhhcyBhIHBlbmRpbmcgWEhSIGlzIGFibGUgdG8g
ZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJmcm9tIGNhY2hlIik7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgcGFnZSBjYWNoZSIpOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5zaG91bGRGaW5p
c2hKU09uWEhSTG9hZCA9IHRydWU7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdl
aGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNh
Y2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgi
UGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIG5hdmlnYXRlKCkKK3sKKyAgICB3
aW5kb3cubG9jYXRpb24uaHJlZiA9ICIvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1o
ZWxwZXIuaHRtbCI7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp
b24oKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZS5zcmMgPSAiL25h
dmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwi
OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSwgMCk7
Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXho
ci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhOTdkNjdhNTc3Y2JhNjk0ZDFkODRjYzhjYjdjNzJmZGNhYTE1ZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Bh
Z2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPHNj
cmlwdD4KKworc2hvdWxkRmluaXNoSlNPblhIUkxvYWQgPSBmYWxzZTsKKworZnVuY3Rpb24gZG9Y
SFIoKQoreworICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJH
RVQiLCAiL25hdmlnYXRpb24vcmVzb3VyY2VzL3Nsb3ctcmVzb3VyY2UucGw/ZGVsYXk9MTAwMCIp
OworICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgICAgICBpZiAo
c2hvdWxkRmluaXNoSlNPblhIUkxvYWQpIHsKKyAgICAgICAgICAgIHBhcmVudC50ZXN0UGFzc2Vk
KCJYSFIgZmluaXNoZWQgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhlIGNhY2hlIik7CisgICAgICAg
ICAgICBwYXJlbnQucmVzdG9yZWRGcm9tQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHBhcmVu
dC5maW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBkb1hIUigpOwor
ICAgIH0pOworICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpID0+IHsKKyAgICAg
ICAgZG9YSFIoKTsKKyAgICB9KTsKKyAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3Mi
LCAoKSA9PiB7CisgICAgfSk7CisKKyAgICB4aHIuc2VuZCgpOworfQorCitwYXJlbnQuZGVidWco
IiogaWZyYW1lIHN0YXJ0aW5nIFhIUiIpOworZG9YSFIoKTsKKworcGFyZW50Lm5hdmlnYXRlKCk7
CisKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381378</attachid>
            <date>2019-10-19 16:42:17 -0700</date>
            <delta_ts>2019-10-19 20:26:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203107-20191019164204.patch</filename>
            <type>text/plain</type>
            <size>24182</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFkMjE1MmZhNTcyMjNm
MmJlZmNkNTA0YzVkY2JhMjVhZmRkMTdhNC4uOTJmYmQxMjAzZTkwNzZmN2UxMDdkMGExNjFiMmM0
YzQ5NGYyOWE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTEwLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hv
dWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzEwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgWE1MSHR0cFJl
cXVlc3QgZm9yIGJhY2svZm9yd2FyZCBjYWNoZSBzdXNwZW5zaW9uOgorICAgICAgICAxLiBXZSBu
byBsb25nZXIgY2FuY2VsIHBlbmRpbmcgbG9hZHMgaW4gdGhlIHN1c3BlbmQoKSBtZXRob2QgYXMg
dGhpcyBtYXkKKyAgICAgICAgICAgZmlyZSBldmVudHMuCisgICAgICAgIDIuIFNpbXBsaWZ5IFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlIHRvIHVzZSBTdXNwZW5kYWJsZVRpbWVy
cworICAgICAgICAgICB0byBkaXNwYXRjaCBldmVudHMgdGhhdCBhcmUgZGVmZXJyZWQgYnkgc3Vz
cGVuc2lvbiBvciB0aHJvdHRsaW5nLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sCisKKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OlhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaXNw
YXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXN1bWUpOgorICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRp
c3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hSZWFkeVN0YXRlQ2hhbmdlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6OmRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmx1
c2hQcm9ncmVzc0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlz
cGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6cmVzdW1lKToK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDoKKwog
MjAxOS0xMC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
bGVSZWFkZXIgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDY3YWQyOTNiZDcyZjVk
NWIxZjA0YjQ3ODZmMTAwNGJkMWJmMmVkYzQuLmIxMmQyNjdiOTE0NmJiMzFjMWNiMGEzOTFjOWQ1
MmEzN2I2NjQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE3
LDExICsxMTcsOSBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKICAgICAsIG1fdXBsb2FkQ29tcGxldGUoZmFsc2UpCiAgICAg
LCBtX3dhc0Fib3J0ZWRCeUNsaWVudChmYWxzZSkKICAgICAsIG1fcmVzcG9uc2VDYWNoZUlzVmFs
aWQoZmFsc2UpCi0gICAgLCBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nKGZhbHNlKQogICAgICwg
bV9yZWFkeVN0YXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihVTlNFTlQpKQogICAgICwgbV9yZXNw
b25zZVR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlc3BvbnNlVHlwZTo6RW1wdHlTdHJpbmcp
KQotICAgICwgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUodGhpcykKLSAgICAsIG1fcmVzdW1lVGlt
ZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVzdDo6cmVzdW1lVGltZXJGaXJlZCkKKyAgICAsIG1fcHJv
Z3Jlc3NFdmVudFRocm90dGxlKCp0aGlzKQogICAgICwgbV9uZXR3b3JrRXJyb3JUaW1lcigqdGhp
cywgJlhNTEh0dHBSZXF1ZXN0OjpuZXR3b3JrRXJyb3JUaW1lckZpcmVkKQogICAgICwgbV90aW1l
b3V0VGltZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KQogICAgICwg
bV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcobWF4aW11bUludGVydmFs
Rm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKQpAQCAtMTA5MSw2ICsxMDg5LDggQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKIAog
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7CisgICAg
UkVMRUFTRV9BU1NFUlQoaXNBbGxvd2VkVG9SdW5TY3JpcHQoKSk7CisKICAgICBpZiAobV91c2Vy
R2VzdHVyZVRva2VuICYmIG1fdXNlckdlc3R1cmVUb2tlbi0+aGFzRXhwaXJlZChtX21heGltdW1J
bnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZykpCiAgICAgICAgIG1fdXNlckdlc3R1cmVU
b2tlbiA9IG51bGxwdHI7CiAKQEAgLTExNDEsNTUgKzExNDEsMTkgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkUmVhY2hUaW1lb3V0KCkKICAgICBkaXNwYXRjaEVycm9yRXZlbnRzKGV2ZW50TmFt
ZXMoKS50aW1lb3V0RXZlbnQpOwogfQogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgbmV2ZXIgcHJl
dmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9vbCBYTUxIdHRwUmVxdWVz
dDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29u
c3QKLXsKLSAgICAvLyBJZiB0aGUgbG9hZCBldmVudCBoYXMgbm90IGZpcmVkIHlldCwgY2FuY2Vs
bGluZyB0aGUgbG9hZCBpbiBzdXNwZW5kKCkgbWF5IGNhdXNlCi0gICAgLy8gdGhlIGxvYWQgZXZl
bnQgdG8gYmUgZmlyZWQgYW5kIGFyYml0cmFyeSBKUyBleGVjdXRpb24sIHdoaWNoIHdvdWxkIGJl
IHVuc2FmZS4KLSAgICAvLyBUaGVyZWZvcmUsIHdlIHByZXZlbnQgc3VzcGVuZGluZyBpbiB0aGlz
IGNhc2UuCi0gICAgcmV0dXJuIG1fbG9hZGVyICYmICFkb2N1bWVudCgpLT5sb2FkRXZlbnRGaW5p
c2hlZCgpOwotfQotCiBjb25zdCBjaGFyKiBYTUxIdHRwUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJYTUxIdHRwUmVxdWVzdCI7CiB9CiAKLXZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiB7CiAgICAgbV9w
cm9ncmVzc0V2ZW50VGhyb3R0bGUuc3VzcGVuZCgpOwotCi0gICAgaWYgKG1fcmVzdW1lVGltZXIu
aXNBY3RpdmUoKSkgewotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9k
aXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1fbG9hZGVyKSB7Ci0g
ICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFib3J0IHRoZSByZXF1
ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCi0gICAgICAgIGdl
bmVyaWNFcnJvcigpOwotICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nID0gdHJ1ZTsK
LSAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwotICAgICAgICAvLyBJdCBz
aG91bGQgbm90IGJlIHBvc3NpYmxlIHRvIHJlc3RhcnQgdGhlIGxvYWQgd2hlbiBhYm9ydGluZyBp
biBzdXNwZW5kKCkgYmVjYXVzZQotICAgICAgICAvLyB3ZSBhcmUgbm90IGFsbG93ZWQgdG8gZXhl
Y3V0ZSBpbiBKUyBpbiBzdXNwZW5kKCkuCi0gICAgICAgIEFTU0VSVF9VTlVTRUQoYWJvcnRlZCwg
YWJvcnRlZCk7Ci0gICAgfQogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpyZXN1bWUoKQogewog
ICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLnJlc3VtZSgpOwotCi0gICAgLy8gV2UgYXJlIG5v
dCBhbGxvd2VkIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IEpTIGluIHJlc3VtZSgpIHNvIGRpc3BhdGNo
Ci0gICAgLy8gdGhlIGVycm9yIGV2ZW50IGluIGEgdGltZXIuCi0gICAgaWYgKG1fZGlzcGF0Y2hF
cnJvck9uUmVzdW1pbmcgJiYgIW1fcmVzdW1lVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9y
ZXN1bWVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKLX0KLQotdm9pZCBYTUxIdHRwUmVxdWVzdDo6
cmVzdW1lVGltZXJGaXJlZCgpCi17Ci0gICAgQVNTRVJUKG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1p
bmcpOwotICAgIG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1pbmcgPSBmYWxzZTsKLSAgICBkaXNwYXRj
aEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKIH0KIAogdm9pZCBYTUxIdHRw
UmVxdWVzdDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDUyMDA4
YzdlYjdhNDBmMzIxNTBlOTM2NjBkZTBkZWRhM2I3NmEzNzQuLmRmMzJhYjBkZTllYTYzNTNjM2Nh
ZDU1YzVjZjE5MmY4YjI2Y2M3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBA
IC0xMzcsNyArMTM3LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwogICAgIHZvaWQg
cmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CkBAIC0xODksNyAr
MTg4LDYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsK
ICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVz
dW1lVGltZXJGaXJlZCgpOwogICAgIFJlZjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBjcmVhdGVEZWNv
ZGVyKCkgY29uc3Q7CiAKICAgICB2b2lkIG5ldHdvcmtFcnJvclRpbWVyRmlyZWQoKTsKQEAgLTIw
Myw3ICsyMDEsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdXBsb2FkQ29tcGxldGUgOiAx
OwogICAgIHVuc2lnbmVkIG1fd2FzQWJvcnRlZEJ5Q2xpZW50IDogMTsKICAgICB1bnNpZ25lZCBt
X3Jlc3BvbnNlQ2FjaGVJc1ZhbGlkIDogMTsKLSAgICB1bnNpZ25lZCBtX2Rpc3BhdGNoRXJyb3JP
blJlc3VtaW5nIDogMTsKICAgICB1bnNpZ25lZCBtX3JlYWR5U3RhdGUgOiAzOyAvLyBTdGF0ZQog
ICAgIHVuc2lnbmVkIG1fcmVzcG9uc2VUeXBlIDogMzsgLy8gUmVzcG9uc2VUeXBlCiAKQEAgLTIz
OCw3ICsyMzUsNiBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJsZSBTdHJpbmcgbV9hbGxSZXNwb25z
ZUhlYWRlcnM7CiAKLSAgICBUaW1lciBtX3Jlc3VtZVRpbWVyOwogICAgIFRpbWVyIG1fbmV0d29y
a0Vycm9yVGltZXI7CiAgICAgVGltZXIgbV90aW1lb3V0VGltZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwCmluZGV4IGY4ZjlmNWVlNzBiMjcxN2U4OGFjNWFiMGI2ZTBiYmE4NWM4NWQ5ODYuLjc3NDVm
NGY4Y2Y3MTcyNWM0YThkZWJhMjBkMWM3YzMxNjUzOWIxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNw
cApAQCAtMzUsMTEgKzM1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgU2Vjb25k
cyBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6bWluaW11bVByb2dyZXNzRXZl
bnREaXNwYXRjaGluZ0ludGVydmFsIHsgNTBfbXMgfTsgLy8gNTAgbXMgcGVyIHNwZWNpZmljYXRp
b24uCiAKLVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZShFdmVudFRhcmdldCogdGFyZ2V0KQorWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlKEV2ZW50VGFyZ2V0JiB0YXJnZXQpCiAgICAgOiBtX3RhcmdldCh0YXJnZXQpCi0gICAgLCBt
X2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNUaW1lcigqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzKQorICAgICwgbV9kaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lcih0YXJnZXQuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCAqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQorICAgICwgbV9kaXNwYXRjaERlZmVy
cmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyKHRhcmdldC5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzLCAmWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNo
RGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKQogewotICAgIEFTU0VSVCh0YXJnZXQpOworICAg
IG1fZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7
CisgICAgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyLnN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6flhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCkgPSBkZWZhdWx0OwpAQCAtNTAsMjkg
KzUyLDIzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3Bh
dGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlCiAgICAgbV9sb2FkZWQgPSBsb2FkZWQ7
CiAgICAgbV90b3RhbCA9IHRvdGFsOwogCi0gICAgaWYgKCFtX3RhcmdldC0+aGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpKQorICAgIGlmICghbV90YXJnZXQuaGFz
RXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpKQogICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgaWYgKG1fZGVmZXJFdmVudHMpIHsKLSAgICAgICAgLy8gT25seSBzdG9y
ZSB0aGUgbGF0ZXN0IHByb2dyZXNzIGV2ZW50IHdoaWxlIHN1c3BlbmRlZC4KLSAgICAgICAgbV9k
ZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbGVuZ3RoQ29tcHV0YWJsZSwgbG9hZGVkLCB0
b3RhbCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAgICBpZiAoIWlzQWN0aXZlKCkpIHsK
KyAgICBpZiAoIW1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gJiYgIW1fZGlzcGF0
Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuaXNBY3RpdmUoKSkgewogICAgICAgICAvLyBU
aGUgdGltZXIgaXMgbm90IGFjdGl2ZSBzbyB0aGUgbGVhc3QgZnJlcXVlbnQgZXZlbnQgZm9yIG5v
dyBpcyBldmVyeSBieXRlLiBKdXN0IGRpc3BhdGNoIHRoZSBldmVudC4KIAogICAgICAgICAvLyBX
ZSBzaG91bGQgbm90IGhhdmUgYW55IHRocm90dGxlZCBwcm9ncmVzcyBldmVudC4KLSAgICAgICAg
QVNTRVJUKCFtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQpOworICAgICAgICBBU1NFUlQoIW1f
aGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpOwogCi0gICAgICAgIGRpc3BhdGNoRXZl
bnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dy
ZXNzRXZlbnQsIGxlbmd0aENvbXB1dGFibGUsIGxvYWRlZCwgdG90YWwpKTsKLSAgICAgICAgc3Rh
cnRSZXBlYXRpbmcobWluaW11bVByb2dyZXNzRXZlbnREaXNwYXRjaGluZ0ludGVydmFsKTsKLSAg
ICAgICAgbV9oYXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50ID0gZmFsc2U7CisgICAgICAgIGRpc3Bh
dGNoRXZlbnRXaGVuUG9zc2libGUoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIGxlbmd0aENvbXB1dGFibGUsIGxvYWRlZCwgdG90
YWwpKTsKKyAgICAgICAgbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5zdGFy
dFJlcGVhdGluZyhtaW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWwpOworICAg
ICAgICBtX2hhc1BlbmRpbmdUaHJvdHRsZWRQcm9ncmVzc0V2ZW50ID0gZmFsc2U7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICAvLyBUaGUgdGltZXIgaXMgYWxyZWFkeSBhY3RpdmUgc28g
bWluaW11bVByb2dyZXNzRXZlbnREaXNwYXRjaGluZ0ludGVydmFsIGlzIHRoZSBsZWFzdCBmcmVx
dWVudCBldmVudC4KLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSB0cnVlOworICAg
IG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSB0cnVlOwogfQogCiB2b2lkIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFJlYWR5U3RhdGVDaGFu
Z2VFdmVudChFdmVudCYgZXZlbnQsIFByb2dyZXNzRXZlbnRBY3Rpb24gcHJvZ3Jlc3NFdmVudEFj
dGlvbikKQEAgLTgwLDE5ICs3NiwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlOjpkaXNwYXRjaFJlYWR5U3RhdGVDaGFuZ2VFdmVudChFdmVudCYgZQogICAgIGlm
IChwcm9ncmVzc0V2ZW50QWN0aW9uID09IEZsdXNoUHJvZ3Jlc3NFdmVudCkKICAgICAgICAgZmx1
c2hQcm9ncmVzc0V2ZW50KCk7CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNw
YXRjaEV2ZW50V2hlblBvc3NpYmxlKGV2ZW50KTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCit2b2lkIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2ZW50V2hlblBvc3Np
YmxlKEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAobV9kZWZlckV2ZW50cykgewotICAgICAgICBp
ZiAobV9kZWZlcnJlZEV2ZW50cy5zaXplKCkgPiAxICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50ICYmIGV2ZW50LnR5cGUoKSA9PSBtX2RlZmVycmVk
RXZlbnRzLmxhc3QoKS0+dHlwZSgpKSB7CisgICAgaWYgKG1fc2hvdWxkRGVmZXJFdmVudHNEdWVU
b1N1c3BlbnNpb24pIHsKKyAgICAgICAgaWYgKG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNp
b24uc2l6ZSgpID4gMSAmJiBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnJlYWR5c3RhdGVj
aGFuZ2VFdmVudCAmJiBldmVudC50eXBlKCkgPT0gbV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVu
c2lvbi5sYXN0KCktPnR5cGUoKSkgewogICAgICAgICAgICAgLy8gUmVhZHlzdGF0ZWNoYW5nZSBl
dmVudHMgYXJlIHN0YXRlLWxlc3Mgc28gYXZvaWQgcmVwZWF0aW5nIHR3byBpZGVudGljYWwgZXZl
bnRzIGluIGEgcm93IG9uIHJlc3VtZS4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQot
ICAgICAgICBtX2RlZmVycmVkRXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgICAgIG1fZXZlbnRz
RGVmZXJyZWREdWVUb1N1c3BlbnNpb24uYXBwZW5kKGV2ZW50KTsKICAgICB9IGVsc2UKLSAgICAg
ICAgbV90YXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgICBtX3RhcmdldC5kaXNw
YXRjaEV2ZW50KGV2ZW50KTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRU
aHJvdHRsZTo6ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCkBA
IC0xMDUsMTAzICsxMDEsNjIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZTo6ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21TdHJpbmcKICAgICAgICAgbV90
b3RhbCA9IDA7CiAgICAgfQogCi0gICAgaWYgKG1fdGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyh0
eXBlKSkKLSAgICAgICAgZGlzcGF0Y2hFdmVudChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6
OmNyZWF0ZSh0eXBlLCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3RvdGFsKSk7Cisg
ICAgaWYgKG1fdGFyZ2V0Lmhhc0V2ZW50TGlzdGVuZXJzKHR5cGUpKQorICAgICAgICBkaXNwYXRj
aEV2ZW50V2hlblBvc3NpYmxlKFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKHR5
cGUsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpKTsKIH0KIAogdm9pZCBY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmx1c2hQcm9ncmVzc0V2ZW50KCkK
IHsKLSAgICBpZiAobV9kZWZlckV2ZW50cyAmJiBtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudCkgewot
ICAgICAgICAvLyBNb3ZlIHRoZSBwcm9ncmVzcyBldmVudCB0byB0aGUgcXVldWUsIHRvIGdldCBp
dCBpbiB0aGUgcmlnaHQgb3JkZXIgb24gcmVzdW1lLgotICAgICAgICBtX2RlZmVycmVkRXZlbnRz
LmFwcGVuZChtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBp
ZiAoIW1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpCiAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoIWhhc0V2ZW50VG9EaXNwYXRjaCgpKQotICAgICAgICByZXR1cm47
Ci0gICAgUmVmPEV2ZW50PiBldmVudCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9h
ZGVkLCBtX3RvdGFsKTsKLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsK
IAorICAgIG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKICAgICAv
LyBXZSBzdG9wIHRoZSB0aW1lciBhcyB0aGlzIGlzIGNhbGxlZCB3aGVuIG5vIG1vcmUgZXZlbnRz
IGFyZSBzdXBwb3NlZCB0byBvY2N1ci4KLSAgICBzdG9wKCk7CisgICAgbV9kaXNwYXRjaFRocm90
dGxlZFByb2dyZXNzRXZlbnRUaW1lci5jYW5jZWwoKTsKIAotICAgIGRpc3BhdGNoRXZlbnQoV1RG
TW92ZShldmVudCkpOworICAgIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1fbGVu
Z3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50cygpCit2b2lk
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZl
bnRzQWZ0ZXJSZXN1bWluZygpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJFdmVudHMpOwotICAgIG1f
ZGVmZXJFdmVudHMgPSBmYWxzZTsKKyAgICBBU1NFUlQobV9zaG91bGREZWZlckV2ZW50c0R1ZVRv
U3VzcGVuc2lvbik7CisgICAgbV9zaG91bGREZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbiA9IGZh
bHNlOwogCiAgICAgLy8gVGFrZSBvdmVyIHRoZSBkZWZlcnJlZCBldmVudHMgYmVmb3JlIGRpc3Bh
dGNoaW5nIHRoZW0gd2hpY2ggY2FuIHBvdGVudGlhbGx5IGFkZCBtb3JlLgotICAgIGF1dG8gZGVm
ZXJyZWRFdmVudHMgPSBXVEZNb3ZlKG1fZGVmZXJyZWRFdmVudHMpOwotCi0gICAgUmVmUHRyPEV2
ZW50PiBkZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBXVEZNb3ZlKG1fZGVmZXJyZWRQcm9ncmVzc0V2
ZW50KTsKKyAgICBhdXRvIGV2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uID0gV1RGTW92ZSht
X2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uKTsKIAotICAgIGZvciAoYXV0byYgZGVmZXJy
ZWRFdmVudCA6IGRlZmVycmVkRXZlbnRzKQotICAgICAgICBkaXNwYXRjaEV2ZW50KGRlZmVycmVk
RXZlbnQpOworICAgIGZsdXNoUHJvZ3Jlc3NFdmVudCgpOwogCi0gICAgLy8gVGhlIHByb2dyZXNz
IGV2ZW50IHdpbGwgYmUgaW4gdGhlIG1fZGVmZXJyZWRFdmVudHMgdmVjdG9yIGlmIHRoZSBsb2Fk
IHdhcyBmaW5pc2hlZCB3aGlsZSBzdXNwZW5kZWQuCi0gICAgLy8gSWYgbm90LCBqdXN0IHNlbmQg
dGhlIG1vc3QgdXAtdG8tZGF0ZSBwcm9ncmVzcyBvbiByZXN1bWUuCi0gICAgaWYgKGRlZmVycmVk
UHJvZ3Jlc3NFdmVudCkKLSAgICAgICAgZGlzcGF0Y2hFdmVudCgqZGVmZXJyZWRQcm9ncmVzc0V2
ZW50KTsKKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkRXZlbnQgOiBldmVudHNEZWZlcnJlZER1ZVRv
U3VzcGVuc2lvbikKKyAgICAgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShkZWZlcnJlZEV2
ZW50KTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmly
ZWQoKQordm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hU
aHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKGlzQWN0aXZl
KCkpOwotICAgIGlmICghaGFzRXZlbnRUb0Rpc3BhdGNoKCkpIHsKKyAgICBBU1NFUlQobV9kaXNw
YXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBpZiAoIW1f
aGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKICAgICAgICAgLy8gTm8gcHJvZ3Jl
c3MgZXZlbnQgd2FzIHF1ZXVlZCBzaW5jZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2gsIHdlIGNhbiBz
YWZlbHkgc3RvcCB0aGUgdGltZXIuCi0gICAgICAgIHN0b3AoKTsKKyAgICAgICAgbV9kaXNwYXRj
aFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lci5jYW5jZWwoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9s
b2FkZWQsIG1fdG90YWwpKTsKLSAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxz
ZTsKLX0KLQotYm9vbCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6aGFzRXZl
bnRUb0Rpc3BhdGNoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9oYXNUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50ICYmIGlzQWN0aXZlKCk7CisgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVu
dCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRlZCwgbV90b3RhbCkpOworICAgIG1faGFzUGVu
ZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKIH0KIAogdm9pZCBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6c3VzcGVuZCgpCiB7Ci0gICAgLy8gSWYgcmUtc3Vz
cGVuZGVkIGJlZm9yZSBkZWZlcnJlZCBldmVudHMgaGF2ZSBiZWVuIGRpc3BhdGNoZWQsIGp1c3Qg
c3RvcCB0aGUgZGlzcGF0Y2gKLSAgICAvLyBhbmQgY29udGludWUgdGhlIGxhc3Qgc3VzcGVuZC4K
LSAgICBpZiAobV9kaXNwYXRjaERlZmVycmVkRXZlbnRzVGltZXIuaXNBY3RpdmUoKSkgewotICAg
ICAgICBBU1NFUlQobV9kZWZlckV2ZW50cyk7Ci0gICAgICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2
ZW50c1RpbWVyLnN0b3AoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoIW1f
ZGVmZXJyZWRQcm9ncmVzc0V2ZW50KTsKLSAgICBBU1NFUlQobV9kZWZlcnJlZEV2ZW50cy5pc0Vt
cHR5KCkpOwotICAgIEFTU0VSVCghbV9kZWZlckV2ZW50cyk7Ci0KLSAgICBtX2RlZmVyRXZlbnRz
ID0gdHJ1ZTsKLSAgICAvLyBJZiB3ZSBoYXZlIGEgcHJvZ3Jlc3MgZXZlbnQgd2FpdGluZyB0byBi
ZSBkaXNwYXRjaGVkLAotICAgIC8vIGp1c3QgZGVmZXIgaXQuCi0gICAgaWYgKGhhc0V2ZW50VG9E
aXNwYXRjaCgpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50ID0gWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1f
bGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpOwotICAgICAgICBtX2hhc1Rocm90
dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKLSAgICB9Ci0gICAgc3RvcCgpOworICAgIG1fc2hv
dWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSB0cnVlOwogfQogCiB2b2lkIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1bWUoKQogewotICAgIEFTU0VSVCghbV9o
YXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50KTsKLQotICAgIGlmIChtX2RlZmVycmVkRXZlbnRzLmlz
RW1wdHkoKSAmJiAhbV9kZWZlcnJlZFByb2dyZXNzRXZlbnQpIHsKLSAgICAgICAgbV9kZWZlckV2
ZW50cyA9IGZhbHNlOworICAgIGlmIChtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uLmlz
RW1wdHkoKSAmJiAhbV9oYXNQZW5kaW5nVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCkgeworICAgICAg
ICBtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uID0gZmFsc2U7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICAvLyBEbyBub3QgZGlzcGF0Y2ggZXZlbnRzIGlubGluZSBoZXJl
LCBzaW5jZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlzIGl0ZXJhdGluZyBvdmVyCi0gICAgLy8g
dGhlIGxpc3Qgb2YgYWN0aXZlIERPTSBvYmplY3RzIHRvIHJlc3VtZSB0aGVtLCBhbmQgYW55IGFj
dGl2YXRlZCBKUyBldmVudC1oYW5kbGVyCi0gICAgLy8gY291bGQgaW5zZXJ0IG5ldyBhY3RpdmUg
RE9NIG9iamVjdHMgdG8gdGhlIGxpc3QuCi0gICAgLy8gbV9kZWZlckV2ZW50cyBpcyBrZXB0IHRy
dWUgdW50aWwgYWxsIGRlZmVycmVkIGV2ZW50cyBoYXZlIGJlZW4gZGlzcGF0Y2hlZC4KLSAgICBt
X2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAgICBtX2Rp
c3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKaW5kZXggMTk1MzE2
YzQyODdmNmMwZDZjZTlkM2ZiOTU2N2E2NzQyNTMyZjdmZi4uYTgzY2YzZGE4ZDY2Yjk4M2I0OTY4
NjhkN2Y4ODVmM2Q3MGFmMTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKQEAgLTI2LDcgKzI2LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlN1c3BlbmRh
YmxlVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIApAQCAtNDIsOSArNDIsOSBAQCBlbnVtIFByb2dyZXNzRXZlbnRBY3Rpb24gewogCiAv
LyBUaGlzIGltcGxlbWVudHMgdGhlIFhIUjIgcHJvZ3Jlc3MgZXZlbnQgZGlzcGF0Y2hpbmc6ICJk
aXNwYXRjaCBhIHByb2dyZXNzIGV2ZW50IGNhbGxlZCBwcm9ncmVzcwogLy8gYWJvdXQgZXZlcnkg
NTBtcyBvciBmb3IgZXZlcnkgYnl0ZSByZWNlaXZlZCwgd2hpY2hldmVyIGlzIGxlYXN0IGZyZXF1
ZW50Ii4KLWNsYXNzIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlIDogcHVibGlj
IFRpbWVyQmFzZSB7CitjbGFzcyBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUoRXZlbnRUYXJnZXQqKTsKKyAgICBleHBsaWNpdCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZShFdmVudFRhcmdldCYpOwogICAgIHZpcnR1YWwgflhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jl
c3NFdmVudChib29sIGxlbmd0aENvbXB1dGFibGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQs
IHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCk7CkBAIC01NywyNiArNTcsMjUgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBtaW5pbXVtUHJvZ3Jlc3NFdmVudERp
c3BhdGNoaW5nSW50ZXJ2YWw7CiAKLSAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaXNwYXRjaERlZmVycmVkRXZlbnRzKCk7CisgICAgdm9pZCBkaXNwYXRjaFRocm90dGxlZFBy
b2dyZXNzRXZlbnRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBkaXNwYXRjaERlZmVycmVkRXZlbnRz
QWZ0ZXJSZXN1bWluZygpOwogICAgIHZvaWQgZmx1c2hQcm9ncmVzc0V2ZW50KCk7Ci0gICAgdm9p
ZCBkaXNwYXRjaEV2ZW50KEV2ZW50Jik7Ci0KLSAgICBib29sIGhhc0V2ZW50VG9EaXNwYXRjaCgp
IGNvbnN0OworICAgIHZvaWQgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShFdmVudCYpOwogCiAg
ICAgLy8gV2VhayBwb2ludGVyIHRvIG91ciBYTUxIdHRwUmVxdWVzdCBvYmplY3QgYXMgaXQgaXMg
dGhlIG9uZSBob2xkaW5nIHVzLgotICAgIEV2ZW50VGFyZ2V0KiBtX3RhcmdldDsKKyAgICBFdmVu
dFRhcmdldCYgbV90YXJnZXQ7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9sb2FkZWQgeyAw
IH07CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fdG90YWwgeyAwIH07CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50OwotICAgIFZlY3RvcjxSZWY8RXZlbnQ+PiBt
X2RlZmVycmVkRXZlbnRzOwotICAgIFRpbWVyIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c1RpbWVy
OworICAgIFZlY3RvcjxSZWY8RXZlbnQ+PiBtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9u
OworICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRU
aW1lcjsKKyAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVy
UmVzdW1pbmdUaW1lcjsKIAotICAgIGJvb2wgbV9oYXNUaHJvdHRsZWRQcm9ncmVzc0V2ZW50IHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9sZW5ndGhDb21wdXRhYmxlIHsgZmFsc2UgfTsKLSAgICBib29s
IG1fZGVmZXJFdmVudHMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGREZWZlckV2ZW50c0R1
ZVRvU3VzcGVuc2lvbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDEwNzU3OTY3MDNmNDAwZDQ1ZWEwMzlhN2MxNTk4NDU4ZmQ0OTQzNi4uNjA5YWNlMDRh
MjllNjgwZjcwNDRlMGVlOTE4OTJmM2M1MTY2ZjdiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE5LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWE1M
SHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBtb3JlIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlm
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRp
bmctaWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVJlYWRlciBzaG91bGQgbm90IHByZXZlbnQgZW50
ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzNiYmE0
NGIyM2NjMmM4ZGVhMmNkMjk2ZmYzNjEyMTE4ZmIyMTM3Yy4uZDU2ZDMxOWRjMWVkMTNjNDRlOTQ2
ZTIzYWU2MTNhNWVjNzliNmE0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjgsNiArMjY4LDcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2MKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogZmFzdC9maWxlcy9maWxlLXJlYWRlci1i
YWNrLWZvcndhcmQtY2FjaGUuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJpdG1hcC5odG1sIFsgRHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyIF0KK2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1s
b2FkaW5nLWlmcmFtZS5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIAogd2Via2l0
Lm9yZy9iLzIwMjQ5NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20v
ZGlyZWN0aW9uYWxpdHktMDAyLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LXhoci1pbi1sb2FkaW5nLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjliN2E2OGRlMmRiMTM5ODkzZmZjMmFhYmI4ZmE3YTU0MGNiN2JlZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBsb2FkaW5nIGlmcmFtZSB0aGF0IGhhcyBhIHBl
bmRpbmcgWEhSIGlzIGFibGUgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKKyog
aWZyYW1lIHN0YXJ0aW5nIFhIUgorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cg
LSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgcGFnZSBjYWNoZQorUEFTUyBYSFIgZmluaXNoZWQgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhl
IGNhY2hlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ODg0N2FjNTY1ZmU5YzRiODRhNWJiZTQ2ZGZlYmU5OTdiZjFmZDAzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWlu
LWxvYWRpbmctaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdl
IHdpdGggYSBsb2FkaW5nIGlmcmFtZSB0aGF0IGhhcyBhIHBlbmRpbmcgWEhSIGlzIGFibGUgdG8g
ZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJmcm9tIGNhY2hlIik7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgcGFnZSBjYWNoZSIpOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5zaG91bGRGaW5p
c2hKU09uWEhSTG9hZCA9IHRydWU7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdl
aGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNh
Y2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgi
UGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIG5hdmlnYXRlKCkKK3sKKyAgICB3
aW5kb3cubG9jYXRpb24uaHJlZiA9ICIvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1o
ZWxwZXIuaHRtbCI7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp
b24oKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZS5zcmMgPSAiL25h
dmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwi
OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSwgMCk7
Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXho
ci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhOTdkNjdhNTc3Y2JhNjk0ZDFkODRjYzhjYjdjNzJmZGNhYTE1ZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Bh
Z2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPHNj
cmlwdD4KKworc2hvdWxkRmluaXNoSlNPblhIUkxvYWQgPSBmYWxzZTsKKworZnVuY3Rpb24gZG9Y
SFIoKQoreworICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJH
RVQiLCAiL25hdmlnYXRpb24vcmVzb3VyY2VzL3Nsb3ctcmVzb3VyY2UucGw/ZGVsYXk9MTAwMCIp
OworICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgICAgICBpZiAo
c2hvdWxkRmluaXNoSlNPblhIUkxvYWQpIHsKKyAgICAgICAgICAgIHBhcmVudC50ZXN0UGFzc2Vk
KCJYSFIgZmluaXNoZWQgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhlIGNhY2hlIik7CisgICAgICAg
ICAgICBwYXJlbnQucmVzdG9yZWRGcm9tQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHBhcmVu
dC5maW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBkb1hIUigpOwor
ICAgIH0pOworICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpID0+IHsKKyAgICAg
ICAgZG9YSFIoKTsKKyAgICB9KTsKKyAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3Mi
LCAoKSA9PiB7CisgICAgfSk7CisKKyAgICB4aHIuc2VuZCgpOworfQorCitwYXJlbnQuZGVidWco
IiogaWZyYW1lIHN0YXJ0aW5nIFhIUiIpOworZG9YSFIoKTsKKworcGFyZW50Lm5hdmlnYXRlKCk7
CisKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381388</attachid>
            <date>2019-10-19 20:26:46 -0700</date>
            <delta_ts>2019-10-21 08:17:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203107-20191019202634.patch</filename>
            <type>text/plain</type>
            <size>32701</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFkMjE1MmZhNTcyMjNm
MmJlZmNkNTA0YzVkY2JhMjVhZmRkMTdhNC4uNzA3ZjlkYzBiMWNmYThmNjg5Y2ZkNDU0ODIwZTYy
OGJkM2U2MTllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTEwLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hv
dWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzEwNworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTY0Mzg2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBYTUxIdHRwUmVxdWVzdCBmb3IgYmFjay9mb3J3YXJk
IGNhY2hlIHN1c3BlbnNpb246CisgICAgICAgIDEuIFdlIG5vIGxvbmdlciBjYW5jZWwgcGVuZGlu
ZyBsb2FkcyBpbiB0aGUgc3VzcGVuZCgpIG1ldGhvZCBhcyB0aGlzIG1heQorICAgICAgICAgICBm
aXJlIGV2ZW50cy4KKyAgICAgICAgMi4gU2ltcGxpZnkgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUgdG8gdXNlIFN1c3BlbmRhYmxlVGltZXJzCisgICAgICAgICAgIHRvIGRpc3Bh
dGNoIGV2ZW50cyB0aGF0IGFyZSBkZWZlcnJlZCBieSBzdXNwZW5zaW9uIG9yIHRocm90dGxpbmcu
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWlu
LWxvYWRpbmctaWZyYW1lLmh0bWwKKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOgorICAgICAgICBBZGQgY2hlY2sg
dG8gdGhyb3cgYSBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgYXNzb2NpYXRlZCBkb2N1bWVudCBp
cyBub3QgZnVsbHkgYWN0aXZlLAorICAgICAgICBhcyBwZXIgaHR0cHM6Ly94aHIuc3BlYy53aGF0
d2cub3JnLyNkb20teG1saHR0cHJlcXVlc3Qtb3BlbiAoU3RlcCAyKS4gVGhpcyBhdm9pZHMKKyAg
ICAgICAgZGlzcGF0Y2hpbmcgZXZlbnRzIGFmdGVyIEFjdGl2ZURPTU9iamVjdDo6c3RvcCgpIGhh
cyBiZWVuIGNhbGxlZCBhbmQgYnJpbmdzIGEgZmV3IG1vcmUKKyAgICAgICAgcGFzc2VzIG9uIFdQ
VCB0ZXN0cy4KKworICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBS
RUNBVEVEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpyZXN1bWVUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFRocm90dGxl
ZFByb2dyZXNzRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2
ZW50V2hlblBvc3NpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFByb2dyZXNzRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmZsdXNoUHJvZ3Jlc3NFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoVGhyb3R0bGVk
UHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRU
aHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZmlyZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6
Omhhc0V2ZW50VG9EaXNwYXRjaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogeG1sL1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg6CisKIDIwMTktMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaWxlUmVhZGVyIHNob3VsZCBub3Qg
cHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAppbmRleCA2N2FkMjkzYmQ3MmY1ZDViMWYwNGI0Nzg2ZjEwMDRiZDFi
ZjJlZGM0Li4xNTIyNzRmMGFhMGQ4ZTcyYWU5ZDQyYzQ0MWIxMDAxYWEwYWNiMGQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTExNywxMSArMTE3LDkgQEAgWE1MSHR0
cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
CiAgICAgLCBtX3VwbG9hZENvbXBsZXRlKGZhbHNlKQogICAgICwgbV93YXNBYm9ydGVkQnlDbGll
bnQoZmFsc2UpCiAgICAgLCBtX3Jlc3BvbnNlQ2FjaGVJc1ZhbGlkKGZhbHNlKQotICAgICwgbV9k
aXNwYXRjaEVycm9yT25SZXN1bWluZyhmYWxzZSkKICAgICAsIG1fcmVhZHlTdGF0ZShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oVU5TRU5UKSkKICAgICAsIG1fcmVzcG9uc2VUeXBlKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihSZXNwb25zZVR5cGU6OkVtcHR5U3RyaW5nKSkKLSAgICAsIG1fcHJvZ3Jlc3NF
dmVudFRocm90dGxlKHRoaXMpCi0gICAgLCBtX3Jlc3VtZVRpbWVyKCp0aGlzLCAmWE1MSHR0cFJl
cXVlc3Q6OnJlc3VtZVRpbWVyRmlyZWQpCisgICAgLCBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZSgq
dGhpcykKICAgICAsIG1fbmV0d29ya0Vycm9yVGltZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVzdDo6
bmV0d29ya0Vycm9yVGltZXJGaXJlZCkKICAgICAsIG1fdGltZW91dFRpbWVyKCp0aGlzLCAmWE1M
SHR0cFJlcXVlc3Q6OmRpZFJlYWNoVGltZW91dCkKICAgICAsIG1fbWF4aW11bUludGVydmFsRm9y
VXNlckdlc3R1cmVGb3J3YXJkaW5nKG1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2Fy
ZGluZykKQEAgLTMzNyw2ICszMzUsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVl
c3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYgdXJsKQogCiBFeGNl
cHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwg
Y29uc3QgVVJMJiB1cmwsIGJvb2wgYXN5bmMpCiB7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBib29sIGNvbnRleHRJc0RvY3VtZW50ID0gaXM8RG9j
dW1lbnQ+KCpjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dElzRG9jdW1lbnQgJiYgIWRvd25jYXN0
PERvY3VtZW50PigqY29udGV4dCkuaXNGdWxseUFjdGl2ZSgpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
Il9zIH07CisKICAgICBpZiAoIWlzVmFsaWRIVFRQVG9rZW4obWV0aG9kKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKQEAgLTM0NiwxOSArMzQ5LDE5IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9k
LCBjb25zdCBVUkwmIHVybCwgYm9vCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsKIAotICAgIGlmICghYXN5bmMgJiYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpIHsKKyAgICBpZiAoIWFzeW5jICYm
IGNvbnRleHRJc0RvY3VtZW50KSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCiAgICAgICAgIC8vIFdlJ2xsIG9ubHkgZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxp
dHkgZm9yIEhUVFAoUykgcmVxdWVzdHMgc2luY2Ugc3luYyByZXF1ZXN0cyBmb3IgbG9jYWwgcHJv
dG9jb2xzCiAgICAgICAgIC8vIHN1Y2ggYXMgZmlsZTogYW5kIGRhdGE6IHN0aWxsIG1ha2Ugc2Vu
c2UgdG8gYWxsb3cuCiAgICAgICAgIGlmICh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYm
IHJlc3BvbnNlVHlwZSgpICE9IFJlc3BvbnNlVHlwZTo6RW1wdHlTdHJpbmcpIHsKLSAgICAgICAg
ICAgIGxvZ0NvbnNvbGVFcnJvcihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJTeW5jaHJvbm91
cyBIVFRQKFMpIHJlcXVlc3RzIG1hZGUgZnJvbSB0aGUgd2luZG93IGNvbnRleHQgY2Fubm90IGhh
dmUgWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VUeXBlIHNldC4iKTsKKyAgICAgICAgICAgIGxvZ0Nv
bnNvbGVFcnJvcihjb250ZXh0LCAiU3luY2hyb25vdXMgSFRUUChTKSByZXF1ZXN0cyBtYWRlIGZy
b20gdGhlIHdpbmRvdyBjb250ZXh0IGNhbm5vdCBoYXZlIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNl
VHlwZSBzZXQuIik7CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBTaW1pbGFybHksIHRpbWVvdXRzIGFy
ZSBkaXNhYmxlZCBmb3Igc3luY2hyb25vdXMgcmVxdWVzdHMgYXMgd2VsbC4KICAgICAgICAgaWYg
KG1fdGltZW91dE1pbGxpc2Vjb25kcyA+IDApIHsKLSAgICAgICAgICAgIGxvZ0NvbnNvbGVFcnJv
cihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJTeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdHMg
bXVzdCBub3QgaGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LiIpOworICAgICAgICAgICAgbG9nQ29u
c29sZUVycm9yKGNvbnRleHQsICJTeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVzdHMgbXVzdCBub3Qg
aGF2ZSBhIHRpbWVvdXQgdmFsdWUgc2V0LiIpOwogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogICAgICAgICB9CiAgICAgfQpAQCAtMzc4LDcgKzM4
MSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAgICAgY2xlYXJSZXF1ZXN0KCk7CiAKICAg
ICBtX3VybCA9IHVybDsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQobV91cmwsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgY29udGV4
dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRl
ZChtX3VybCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2Fk
KTsKIAogICAgIG1fYXN5bmMgPSBhc3luYzsKIApAQCAtMTA5MSw2ICsxMDk0LDggQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikK
IAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWN0aXZlRE9NT2Jq
ZWN0c0FyZVN1c3BlbmRlZCgpKTsKKwogICAgIGlmIChtX3VzZXJHZXN0dXJlVG9rZW4gJiYgbV91
c2VyR2VzdHVyZVRva2VuLT5oYXNFeHBpcmVkKG1fbWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1
cmVGb3J3YXJkaW5nKSkKICAgICAgICAgbV91c2VyR2VzdHVyZVRva2VuID0gbnVsbHB0cjsKIApA
QCAtMTE0MSw1NSArMTE0NiwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWFjaFRpbWVv
dXQoKQogICAgIGRpc3BhdGNoRXJyb3JFdmVudHMoZXZlbnROYW1lcygpLnRpbWVvdXRFdmVudCk7
CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuCi1ib29sIFhNTEh0dHBSZXF1ZXN0OjpzaG91bGRQcmV2ZW50RW50
ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAotewotICAgIC8vIElmIHRo
ZSBsb2FkIGV2ZW50IGhhcyBub3QgZmlyZWQgeWV0LCBjYW5jZWxsaW5nIHRoZSBsb2FkIGluIHN1
c3BlbmQoKSBtYXkgY2F1c2UKLSAgICAvLyB0aGUgbG9hZCBldmVudCB0byBiZSBmaXJlZCBhbmQg
YXJiaXRyYXJ5IEpTIGV4ZWN1dGlvbiwgd2hpY2ggd291bGQgYmUgdW5zYWZlLgotICAgIC8vIFRo
ZXJlZm9yZSwgd2UgcHJldmVudCBzdXNwZW5kaW5nIGluIHRoaXMgY2FzZS4KLSAgICByZXR1cm4g
bV9sb2FkZXIgJiYgIWRvY3VtZW50KCktPmxvYWRFdmVudEZpbmlzaGVkKCk7Ci19Ci0KIGNvbnN0
IGNoYXIqIFhNTEh0dHBSZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gIlhNTEh0dHBSZXF1ZXN0IjsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKIHsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRs
ZS5zdXNwZW5kKCk7Ci0KLSAgICBpZiAobV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAg
ICAgIG1fcmVzdW1lVGltZXIuc3RvcCgpOwotICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3Vt
aW5nID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNp
b246OkJhY2tGb3J3YXJkQ2FjaGUgJiYgbV9sb2FkZXIpIHsKLSAgICAgICAgLy8gR29pbmcgaW50
byB0aGUgQmFja0ZvcndhcmRDYWNoZSwgYWJvcnQgdGhlIHJlcXVlc3QgYW5kIGRpc3BhdGNoIGEg
bmV0d29yayBlcnJvciBvbiByZXN1bWluZy4KLSAgICAgICAgZ2VuZXJpY0Vycm9yKCk7Ci0gICAg
ICAgIG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1pbmcgPSB0cnVlOwotICAgICAgICBib29sIGFib3J0
ZWQgPSBpbnRlcm5hbEFib3J0KCk7Ci0gICAgICAgIC8vIEl0IHNob3VsZCBub3QgYmUgcG9zc2li
bGUgdG8gcmVzdGFydCB0aGUgbG9hZCB3aGVuIGFib3J0aW5nIGluIHN1c3BlbmQoKSBiZWNhdXNl
Ci0gICAgICAgIC8vIHdlIGFyZSBub3QgYWxsb3dlZCB0byBleGVjdXRlIGluIEpTIGluIHN1c3Bl
bmQoKS4KLSAgICAgICAgQVNTRVJUX1VOVVNFRChhYm9ydGVkLCBhYm9ydGVkKTsKLSAgICB9CiB9
CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnJlc3VtZSgpCiB7CiAgICAgbV9wcm9ncmVzc0V2ZW50
VGhyb3R0bGUucmVzdW1lKCk7Ci0KLSAgICAvLyBXZSBhcmUgbm90IGFsbG93ZWQgdG8gZXhlY3V0
ZSBhcmJpdHJhcnkgSlMgaW4gcmVzdW1lKCkgc28gZGlzcGF0Y2gKLSAgICAvLyB0aGUgZXJyb3Ig
ZXZlbnQgaW4gYSB0aW1lci4KLSAgICBpZiAobV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyAmJiAh
bV9yZXN1bWVUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3Jlc3VtZVRpbWVyLnN0YXJ0T25l
U2hvdCgwX3MpOwotfQotCi12b2lkIFhNTEh0dHBSZXF1ZXN0OjpyZXN1bWVUaW1lckZpcmVkKCkK
LXsKLSAgICBBU1NFUlQobV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyk7Ci0gICAgbV9kaXNwYXRj
aEVycm9yT25SZXN1bWluZyA9IGZhbHNlOwotICAgIGRpc3BhdGNoRXJyb3JFdmVudHMoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQpOwogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzdG9wKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggNTIwMDhjN2ViN2E0MGYzMjE1MGU5MzY2
MGRlMGRlZGEzYjc2YTM3NC4uZGYzMmFiMGRlOWVhNjM1M2MzY2FkNTVjNWNmMTkyZjhiMjZjYzc0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBw
cml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2Fy
ZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHN1c3BlbmQoUmVh
c29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKQEAgLTE4OSw3ICsxODgsNiBAQCBwcml2YXRlOgog
ICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIHZvaWQgZGlzcGF0Y2hF
dmVudChFdmVudCYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXN1bWVUaW1lckZpcmVkKCk7CiAg
ICAgUmVmPFRleHRSZXNvdXJjZURlY29kZXI+IGNyZWF0ZURlY29kZXIoKSBjb25zdDsKIAogICAg
IHZvaWQgbmV0d29ya0Vycm9yVGltZXJGaXJlZCgpOwpAQCAtMjAzLDcgKzIwMSw2IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV91cGxvYWRDb21wbGV0ZSA6IDE7CiAgICAgdW5zaWduZWQgbV93
YXNBYm9ydGVkQnlDbGllbnQgOiAxOwogICAgIHVuc2lnbmVkIG1fcmVzcG9uc2VDYWNoZUlzVmFs
aWQgOiAxOwotICAgIHVuc2lnbmVkIG1fZGlzcGF0Y2hFcnJvck9uUmVzdW1pbmcgOiAxOwogICAg
IHVuc2lnbmVkIG1fcmVhZHlTdGF0ZSA6IDM7IC8vIFN0YXRlCiAgICAgdW5zaWduZWQgbV9yZXNw
b25zZVR5cGUgOiAzOyAvLyBSZXNwb25zZVR5cGUKIApAQCAtMjM4LDcgKzIzNSw2IEBAIHByaXZh
dGU6CiAKICAgICBtdXRhYmxlIFN0cmluZyBtX2FsbFJlc3BvbnNlSGVhZGVyczsKIAotICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgVGltZXIgbV9uZXR3b3JrRXJyb3JUaW1lcjsKICAgICBU
aW1lciBtX3RpbWVvdXRUaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKaW5kZXggZjhmOWY1ZWU3
MGIyNzE3ZTg4YWM1YWIwYjZlMGJiYTg1Yzg1ZDk4Ni4uNzc0NWY0ZjhjZjcxNzI1YzRhOGRlYmEy
MGQxYzdjMzE2NTM5YjFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCkBAIC0zNSwxMSArMzUsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBTZWNvbmRzIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlOjptaW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2
YWwgeyA1MF9tcyB9OyAvLyA1MCBtcyBwZXIgc3BlY2lmaWNhdGlvbi4KIAotWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlKEV2ZW50VGFyZ2V0KiB0YXJnZXQpCitYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUoRXZlbnRUYXJnZXQmIHRh
cmdldCkKICAgICA6IG1fdGFyZ2V0KHRhcmdldCkKLSAgICAsIG1fZGlzcGF0Y2hEZWZlcnJlZEV2
ZW50c1RpbWVyKCp0aGlzLCAmWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRp
c3BhdGNoRGVmZXJyZWRFdmVudHMpCisgICAgLCBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NF
dmVudFRpbWVyKHRhcmdldC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NF
dmVudFRpbWVyRmlyZWQpCisgICAgLCBtX2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3Vt
aW5nVGltZXIodGFyZ2V0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVy
UmVzdW1pbmcpCiB7Ci0gICAgQVNTRVJUKHRhcmdldCk7CisgICAgbV9kaXNwYXRjaFRocm90dGxl
ZFByb2dyZXNzRXZlbnRUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBtX2Rpc3BhdGNoRGVm
ZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjp+WE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUoKSA9IGRlZmF1bHQ7CkBAIC01MCwyOSArNTIsMjMgQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50KGJvb2wgbGUKICAgICBtX2xvYWRlZCA9IGxvYWRlZDsKICAgICBtX3RvdGFsID0gdG90
YWw7CiAKLSAgICBpZiAoIW1fdGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCku
cHJvZ3Jlc3NFdmVudCkpCisgICAgaWYgKCFtX3RhcmdldC5oYXNFdmVudExpc3RlbmVycyhldmVu
dE5hbWVzKCkucHJvZ3Jlc3NFdmVudCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAo
bV9kZWZlckV2ZW50cykgewotICAgICAgICAvLyBPbmx5IHN0b3JlIHRoZSBsYXRlc3QgcHJvZ3Jl
c3MgZXZlbnQgd2hpbGUgc3VzcGVuZGVkLgotICAgICAgICBtX2RlZmVycmVkUHJvZ3Jlc3NFdmVu
dCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcm9n
cmVzc0V2ZW50LCBsZW5ndGhDb21wdXRhYmxlLCBsb2FkZWQsIHRvdGFsKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KIAotICAgIGlmICghaXNBY3RpdmUoKSkgeworICAgIGlmICghbV9zaG91bGRE
ZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbiAmJiAhbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNz
RXZlbnRUaW1lci5pc0FjdGl2ZSgpKSB7CiAgICAgICAgIC8vIFRoZSB0aW1lciBpcyBub3QgYWN0
aXZlIHNvIHRoZSBsZWFzdCBmcmVxdWVudCBldmVudCBmb3Igbm93IGlzIGV2ZXJ5IGJ5dGUuIEp1
c3QgZGlzcGF0Y2ggdGhlIGV2ZW50LgogCiAgICAgICAgIC8vIFdlIHNob3VsZCBub3QgaGF2ZSBh
bnkgdGhyb3R0bGVkIHByb2dyZXNzIGV2ZW50LgotICAgICAgICBBU1NFUlQoIW1faGFzVGhyb3R0
bGVkUHJvZ3Jlc3NFdmVudCk7CisgICAgICAgIEFTU0VSVCghbV9oYXNQZW5kaW5nVGhyb3R0bGVk
UHJvZ3Jlc3NFdmVudCk7CiAKLSAgICAgICAgZGlzcGF0Y2hFdmVudChYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbGVuZ3RoQ29t
cHV0YWJsZSwgbG9hZGVkLCB0b3RhbCkpOwotICAgICAgICBzdGFydFJlcGVhdGluZyhtaW5pbXVt
UHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWwpOwotICAgICAgICBtX2hhc1Rocm90dGxl
ZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJs
ZShYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jl
c3NFdmVudCwgbGVuZ3RoQ29tcHV0YWJsZSwgbG9hZGVkLCB0b3RhbCkpOworICAgICAgICBtX2Rp
c3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyLnN0YXJ0UmVwZWF0aW5nKG1pbmltdW1Q
cm9ncmVzc0V2ZW50RGlzcGF0Y2hpbmdJbnRlcnZhbCk7CisgICAgICAgIG1faGFzUGVuZGluZ1Ro
cm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIC8vIFRoZSB0aW1lciBpcyBhbHJlYWR5IGFjdGl2ZSBzbyBtaW5pbXVtUHJvZ3Jlc3NFdmVu
dERpc3BhdGNoaW5nSW50ZXJ2YWwgaXMgdGhlIGxlYXN0IGZyZXF1ZW50IGV2ZW50LgotICAgIG1f
aGFzVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9IHRydWU7CisgICAgbV9oYXNQZW5kaW5nVGhyb3R0
bGVkUHJvZ3Jlc3NFdmVudCA9IHRydWU7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KEV2ZW50JiBldmVu
dCwgUHJvZ3Jlc3NFdmVudEFjdGlvbiBwcm9ncmVzc0V2ZW50QWN0aW9uKQpAQCAtODAsMTkgKzc2
LDE5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNo
UmVhZHlTdGF0ZUNoYW5nZUV2ZW50KEV2ZW50JiBlCiAgICAgaWYgKHByb2dyZXNzRXZlbnRBY3Rp
b24gPT0gRmx1c2hQcm9ncmVzc0V2ZW50KQogICAgICAgICBmbHVzaFByb2dyZXNzRXZlbnQoKTsK
IAotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2li
bGUoZXZlbnQpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKK3ZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoRXZlbnQmIGV2ZW50KQog
ewotICAgIGlmIChtX2RlZmVyRXZlbnRzKSB7Ci0gICAgICAgIGlmIChtX2RlZmVycmVkRXZlbnRz
LnNpemUoKSA+IDEgJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hh
bmdlRXZlbnQgJiYgZXZlbnQudHlwZSgpID09IG1fZGVmZXJyZWRFdmVudHMubGFzdCgpLT50eXBl
KCkpIHsKKyAgICBpZiAobV9zaG91bGREZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbikgeworICAg
ICAgICBpZiAobV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5zaXplKCkgPiAxICYmIGV2
ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50ICYmIGV2ZW50
LnR5cGUoKSA9PSBtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uLmxhc3QoKS0+dHlwZSgp
KSB7CiAgICAgICAgICAgICAvLyBSZWFkeXN0YXRlY2hhbmdlIGV2ZW50cyBhcmUgc3RhdGUtbGVz
cyBzbyBhdm9pZCByZXBlYXRpbmcgdHdvIGlkZW50aWNhbCBldmVudHMgaW4gYSByb3cgb24gcmVz
dW1lLgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1fZGVmZXJyZWRF
dmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgbV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVu
c2lvbi5hcHBlbmQoZXZlbnQpOwogICAgIH0gZWxzZQotICAgICAgICBtX3RhcmdldC0+ZGlzcGF0
Y2hFdmVudChldmVudCk7CisgICAgICAgIG1fdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwog
fQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFBy
b2dyZXNzRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKQEAgLTEwNSwxMDMgKzEwMSw2MiBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFByb2dy
ZXNzRXZlbnQoY29uc3QgQXRvbVN0cmluZwogICAgICAgICBtX3RvdGFsID0gMDsKICAgICB9CiAK
LSAgICBpZiAobV90YXJnZXQtPmhhc0V2ZW50TGlzdGVuZXJzKHR5cGUpKQotICAgICAgICBkaXNw
YXRjaEV2ZW50KFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKHR5cGUsIG1fbGVu
Z3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpKTsKKyAgICBpZiAobV90YXJnZXQuaGFz
RXZlbnRMaXN0ZW5lcnModHlwZSkpCisgICAgICAgIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUo
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUodHlwZSwgbV9sZW5ndGhDb21wdXRh
YmxlLCBtX2xvYWRlZCwgbV90b3RhbCkpOwogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpmbHVzaFByb2dyZXNzRXZlbnQoKQogewotICAgIGlmIChtX2RlZmVy
RXZlbnRzICYmIG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50KSB7Ci0gICAgICAgIC8vIE1vdmUgdGhl
IHByb2dyZXNzIGV2ZW50IHRvIHRoZSBxdWV1ZSwgdG8gZ2V0IGl0IGluIHRoZSByaWdodCBvcmRl
ciBvbiByZXN1bWUuCi0gICAgICAgIG1fZGVmZXJyZWRFdmVudHMuYXBwZW5kKG1fZGVmZXJyZWRQ
cm9ncmVzc0V2ZW50LnJlbGVhc2VOb25OdWxsKCkpOworICAgIGlmICghbV9oYXNQZW5kaW5nVGhy
b3R0bGVkUHJvZ3Jlc3NFdmVudCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICgh
aGFzRXZlbnRUb0Rpc3BhdGNoKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBSZWY8RXZlbnQ+IGV2
ZW50ID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBy
b2dyZXNzRXZlbnQsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQsIG1fdG90YWwpOwotICAg
IG1faGFzVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9IGZhbHNlOwogCisgICAgbV9oYXNQZW5kaW5n
VGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9IGZhbHNlOwogICAgIC8vIFdlIHN0b3AgdGhlIHRpbWVy
IGFzIHRoaXMgaXMgY2FsbGVkIHdoZW4gbm8gbW9yZSBldmVudHMgYXJlIHN1cHBvc2VkIHRvIG9j
Y3VyLgotICAgIHN0b3AoKTsKKyAgICBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRp
bWVyLmNhbmNlbCgpOwogCi0gICAgZGlzcGF0Y2hFdmVudChXVEZNb3ZlKGV2ZW50KSk7CisgICAg
ZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xv
YWRlZCwgbV90b3RhbCkpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzKCkKK3ZvaWQgWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKCkK
IHsKLSAgICBBU1NFUlQobV9kZWZlckV2ZW50cyk7Ci0gICAgbV9kZWZlckV2ZW50cyA9IGZhbHNl
OworICAgIEFTU0VSVChtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uKTsKKyAgICBt
X3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uID0gZmFsc2U7CiAKICAgICAvLyBUYWtl
IG92ZXIgdGhlIGRlZmVycmVkIGV2ZW50cyBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlbSB3aGljaCBj
YW4gcG90ZW50aWFsbHkgYWRkIG1vcmUuCi0gICAgYXV0byBkZWZlcnJlZEV2ZW50cyA9IFdURk1v
dmUobV9kZWZlcnJlZEV2ZW50cyk7Ci0KLSAgICBSZWZQdHI8RXZlbnQ+IGRlZmVycmVkUHJvZ3Jl
c3NFdmVudCA9IFdURk1vdmUobV9kZWZlcnJlZFByb2dyZXNzRXZlbnQpOworICAgIGF1dG8gZXZl
bnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24gPSBXVEZNb3ZlKG1fZXZlbnRzRGVmZXJyZWREdWVU
b1N1c3BlbnNpb24pOwogCi0gICAgZm9yIChhdXRvJiBkZWZlcnJlZEV2ZW50IDogZGVmZXJyZWRF
dmVudHMpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQoZGVmZXJyZWRFdmVudCk7CisgICAgZmx1c2hQ
cm9ncmVzc0V2ZW50KCk7CiAKLSAgICAvLyBUaGUgcHJvZ3Jlc3MgZXZlbnQgd2lsbCBiZSBpbiB0
aGUgbV9kZWZlcnJlZEV2ZW50cyB2ZWN0b3IgaWYgdGhlIGxvYWQgd2FzIGZpbmlzaGVkIHdoaWxl
IHN1c3BlbmRlZC4KLSAgICAvLyBJZiBub3QsIGp1c3Qgc2VuZCB0aGUgbW9zdCB1cC10by1kYXRl
IHByb2dyZXNzIG9uIHJlc3VtZS4KLSAgICBpZiAoZGVmZXJyZWRQcm9ncmVzc0V2ZW50KQotICAg
ICAgICBkaXNwYXRjaEV2ZW50KCpkZWZlcnJlZFByb2dyZXNzRXZlbnQpOworICAgIGZvciAoYXV0
byYgZGVmZXJyZWRFdmVudCA6IGV2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uKQorICAgICAg
ICBkaXNwYXRjaEV2ZW50V2hlblBvc3NpYmxlKGRlZmVycmVkRXZlbnQpOwogfQogCi12b2lkIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpmaXJlZCgpCit2b2lkIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZl
bnRUaW1lckZpcmVkKCkKIHsKLSAgICBBU1NFUlQoaXNBY3RpdmUoKSk7Ci0gICAgaWYgKCFoYXNF
dmVudFRvRGlzcGF0Y2goKSkgeworICAgIEFTU0VSVChtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jl
c3NFdmVudFRpbWVyLmlzQWN0aXZlKCkpOworICAgIGlmICghbV9oYXNQZW5kaW5nVGhyb3R0bGVk
UHJvZ3Jlc3NFdmVudCkgewogICAgICAgICAvLyBObyBwcm9ncmVzcyBldmVudCB3YXMgcXVldWVk
IHNpbmNlIHRoZSBwcmV2aW91cyBkaXNwYXRjaCwgd2UgY2FuIHNhZmVseSBzdG9wIHRoZSB0aW1l
ci4KLSAgICAgICAgc3RvcCgpOworICAgICAgICBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NF
dmVudFRpbWVyLmNhbmNlbCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZGlzcGF0
Y2hFdmVudChYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
cHJvZ3Jlc3NFdmVudCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRlZCwgbV90b3RhbCkpOwot
ICAgIG1faGFzVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9IGZhbHNlOwotfQotCi1ib29sIFhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpoYXNFdmVudFRvRGlzcGF0Y2goKSBjb25z
dAotewotICAgIHJldHVybiBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgJiYgaXNBY3RpdmUo
KTsKKyAgICBkaXNwYXRjaEV2ZW50V2hlblBvc3NpYmxlKFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFi
bGUsIG1fbG9hZGVkLCBtX3RvdGFsKSk7CisgICAgbV9oYXNQZW5kaW5nVGhyb3R0bGVkUHJvZ3Jl
c3NFdmVudCA9IGZhbHNlOwogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlOjpzdXNwZW5kKCkKIHsKLSAgICAvLyBJZiByZS1zdXNwZW5kZWQgYmVmb3JlIGRlZmVy
cmVkIGV2ZW50cyBoYXZlIGJlZW4gZGlzcGF0Y2hlZCwganVzdCBzdG9wIHRoZSBkaXNwYXRjaAot
ICAgIC8vIGFuZCBjb250aW51ZSB0aGUgbGFzdCBzdXNwZW5kLgotICAgIGlmIChtX2Rpc3BhdGNo
RGVmZXJyZWRFdmVudHNUaW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgIEFTU0VSVChtX2RlZmVy
RXZlbnRzKTsKLSAgICAgICAgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzVGltZXIuc3RvcCgpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVCghbV9kZWZlcnJlZFByb2dyZXNzRXZl
bnQpOwotICAgIEFTU0VSVChtX2RlZmVycmVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJU
KCFtX2RlZmVyRXZlbnRzKTsKLQotICAgIG1fZGVmZXJFdmVudHMgPSB0cnVlOwotICAgIC8vIElm
IHdlIGhhdmUgYSBwcm9ncmVzcyBldmVudCB3YWl0aW5nIHRvIGJlIGRpc3BhdGNoZWQsCi0gICAg
Ly8ganVzdCBkZWZlciBpdC4KLSAgICBpZiAoaGFzRXZlbnRUb0Rpc3BhdGNoKCkpIHsKLSAgICAg
ICAgbV9kZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbV9sZW5ndGhDb21wdXRhYmxlLCBt
X2xvYWRlZCwgbV90b3RhbCk7Ci0gICAgICAgIG1faGFzVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9
IGZhbHNlOwotICAgIH0KLSAgICBzdG9wKCk7CisgICAgbV9zaG91bGREZWZlckV2ZW50c0R1ZVRv
U3VzcGVuc2lvbiA9IHRydWU7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
VGhyb3R0bGU6OnJlc3VtZSgpCiB7Ci0gICAgQVNTRVJUKCFtX2hhc1Rocm90dGxlZFByb2dyZXNz
RXZlbnQpOwotCi0gICAgaWYgKG1fZGVmZXJyZWRFdmVudHMuaXNFbXB0eSgpICYmICFtX2RlZmVy
cmVkUHJvZ3Jlc3NFdmVudCkgewotICAgICAgICBtX2RlZmVyRXZlbnRzID0gZmFsc2U7CisgICAg
aWYgKG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24uaXNFbXB0eSgpICYmICFtX2hhc1Bl
bmRpbmdUaHJvdHRsZWRQcm9ncmVzc0V2ZW50KSB7CisgICAgICAgIG1fc2hvdWxkRGVmZXJFdmVu
dHNEdWVUb1N1c3BlbnNpb24gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IC8vIERvIG5vdCBkaXNwYXRjaCBldmVudHMgaW5saW5lIGhlcmUsIHNpbmNlIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgaXMgaXRlcmF0aW5nIG92ZXIKLSAgICAvLyB0aGUgbGlzdCBvZiBhY3RpdmUg
RE9NIG9iamVjdHMgdG8gcmVzdW1lIHRoZW0sIGFuZCBhbnkgYWN0aXZhdGVkIEpTIGV2ZW50LWhh
bmRsZXIKLSAgICAvLyBjb3VsZCBpbnNlcnQgbmV3IGFjdGl2ZSBET00gb2JqZWN0cyB0byB0aGUg
bGlzdC4KLSAgICAvLyBtX2RlZmVyRXZlbnRzIGlzIGtlcHQgdHJ1ZSB1bnRpbCBhbGwgZGVmZXJy
ZWQgZXZlbnRzIGhhdmUgYmVlbiBkaXNwYXRjaGVkLgotICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2
ZW50c1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50
c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAppbmRleCAxOTUzMTZjNDI4N2Y2YzBkNmNlOWQzZmI5
NTY3YTY3NDI1MzJmN2ZmLi5hODNjZjNkYThkNjZiOTgzYjQ5Njg2OGQ3Zjg4NWYzZDcwYWYxMGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaApAQCAtMjYsNyArMjYsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC00Miw5ICs0
Miw5IEBAIGVudW0gUHJvZ3Jlc3NFdmVudEFjdGlvbiB7CiAKIC8vIFRoaXMgaW1wbGVtZW50cyB0
aGUgWEhSMiBwcm9ncmVzcyBldmVudCBkaXNwYXRjaGluZzogImRpc3BhdGNoIGEgcHJvZ3Jlc3Mg
ZXZlbnQgY2FsbGVkIHByb2dyZXNzCiAvLyBhYm91dCBldmVyeSA1MG1zIG9yIGZvciBldmVyeSBi
eXRlIHJlY2VpdmVkLCB3aGljaGV2ZXIgaXMgbGVhc3QgZnJlcXVlbnQiLgotY2xhc3MgWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUgOiBwdWJsaWMgVGltZXJCYXNlIHsKK2NsYXNz
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlIHsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZShFdmVudFRhcmdldCopOwor
ICAgIGV4cGxpY2l0IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKEV2ZW50VGFy
Z2V0Jik7CiAgICAgdmlydHVhbCB+WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUo
KTsKIAogICAgIHZvaWQgZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50KGJvb2wgbGVuZ3Ro
Q29tcHV0YWJsZSwgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRlZCwgdW5zaWduZWQgbG9uZyBsb25n
IHRvdGFsKTsKQEAgLTU3LDI2ICs1NywyNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRp
YyBjb25zdCBTZWNvbmRzIG1pbmltdW1Qcm9ncmVzc0V2ZW50RGlzcGF0Y2hpbmdJbnRlcnZhbDsK
IAotICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoRGVmZXJyZWRF
dmVudHMoKTsKKyAgICB2b2lkIGRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyRmly
ZWQoKTsKKyAgICB2b2lkIGRpc3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKCk7CiAg
ICAgdm9pZCBmbHVzaFByb2dyZXNzRXZlbnQoKTsKLSAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZl
bnQmKTsKLQotICAgIGJvb2wgaGFzRXZlbnRUb0Rpc3BhdGNoKCkgY29uc3Q7CisgICAgdm9pZCBk
aXNwYXRjaEV2ZW50V2hlblBvc3NpYmxlKEV2ZW50Jik7CiAKICAgICAvLyBXZWFrIHBvaW50ZXIg
dG8gb3VyIFhNTEh0dHBSZXF1ZXN0IG9iamVjdCBhcyBpdCBpcyB0aGUgb25lIGhvbGRpbmcgdXMu
Ci0gICAgRXZlbnRUYXJnZXQqIG1fdGFyZ2V0OworICAgIEV2ZW50VGFyZ2V0JiBtX3RhcmdldDsK
IAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX2xvYWRlZCB7IDAgfTsKICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgbV90b3RhbCB7IDAgfTsKIAogICAgIFJlZlB0cjxFdmVudD4gbV9kZWZlcnJlZFBy
b2dyZXNzRXZlbnQ7Ci0gICAgVmVjdG9yPFJlZjxFdmVudD4+IG1fZGVmZXJyZWRFdmVudHM7Ci0g
ICAgVGltZXIgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzVGltZXI7CisgICAgVmVjdG9yPFJlZjxF
dmVudD4+IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb247CisgICAgU3VzcGVuZGFibGVU
aW1lciBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyOworICAgIFN1c3BlbmRh
YmxlVGltZXIgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyOwogCi0g
ICAgYm9vbCBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9oYXNQZW5kaW5nVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2xlbmd0aENvbXB1dGFibGUgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9kZWZlckV2ZW50cyB7IGZh
bHNlIH07CisgICAgYm9vbCBtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OGQ1ODkwY2M0ODA3
MWQ0ZTEwZmNjN2Y3NWI3NWJhYzBhZDJjYmUyLi5lNDkzMzNkZGU1NGFkMWFmYWZhMDJmOGU3Mjcz
YjcyNTQyZjQyMzZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVzdCBzaG91bGQg
bm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTA3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NjQzODY0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgbW9yZSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RvbS94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rv
ci1pbi1kZXRhY2hlZC1kb2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1vcGVuLWFmdGVyLWlmcmFtZS1vbmxvYWQtcmVtb3Zl
LXNlbGYuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14
aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJhbWUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNh
Y2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0xOSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBGbGFreSBUZXN0OiBmYXN0
L2V2ZW50cy9yZXNpemUtc3ViZnJhbWUtaW4tcmVuZGVyaW5nLXVwZGF0ZS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5MTc1ZGE1ZTljMGM2NWI2NGNmZjRjY2JjNjBkODJl
NTgxZjY1NGJiLi5lY2Y2YWZkYzVkYTlhZGY0ODQ4ZmMyOTUzODE5MmUzZTRiODdiZDNiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMC0xOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0
IHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMDcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU2NDM4NjQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBuZXcgV1BUIHRlc3RzIHRoYXQgYXJl
IHBhc3Npbmcgbm93IHRoYXQgd2UgcHJvcGVybHkgY2hlY2sgdGhhdCB0aGUKKyAgICAgICAgRG9j
dW1lbnQgaXMgZnVsbHkgYWN0aXZlIGluIG9wZW4oKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGktd2luZG93LTItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGktd2luZG93LTUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGkt
d2luZG93LTYtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1NWRzJdOiBSZW1vdmUgdGhlIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAzM2JiYTQ0YjIzY2MyYzhkZWEyY2QyOTZmZjM2MTIxMThmYjIxMzdjLi5kNTZkMzE5ZGMxZWQx
M2M0NGU5NDZlMjNhZTYxM2E1ZWM3OWI2YTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2OCw2
ICsyNjgsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
aGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvYwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIu
aHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBmYXN0L2ZpbGVzL2ZpbGUt
cmVhZGVyLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IF0KIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdlQml0bWFwLmh0bWwgWyBEdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgXQoraHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
eGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQog
CiB3ZWJraXQub3JnL2IvMjAyNDk1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbS9kaXJlY3Rpb25hbGl0eS0wMDIudGVudGF0aXZlLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3Qt
Y29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1l
bnQtZXhwZWN0ZWQudHh0CmluZGV4IDZmYzMxYzJmNjhhYzRmYWE5ZDE0M2I2NGQ1N2QxYTZjMjk5
ZDY2ZTIuLjY4YjU3MTM5ZGMyNzEyZTlmNGFmNTBmNzIwZmYzOGJlNmQ3OTk1N2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRl
dGFjaGVkLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS94
bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IEludmFsaWRTdGF0
ZUVycm9yOiBEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlCiBUZXh0IGZvciBidWcgMjUyOTA6
IENyYXNoIHdoZW4gY29uc3RydWN0aW5nIFhNTEh0dHBSZXF1ZXN0IGluIGEgZGV0YWNoZWQgZG9j
dW1lbnQuCiAKIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3Qtb3Blbi1hZnRlci1pZnJhbWUtb25sb2FkLXJlbW92ZS1zZWxmLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW9wZW4t
YWZ0ZXItaWZyYW1lLW9ubG9hZC1yZW1vdmUtc2VsZi5odG1sCmluZGV4IGQwMmZmMjYwNGRhODZh
MTk3N2M4NDBiOTBlMjY4NWVjZmY5NGVmZWEuLmRkMzY4OGUyNGU3OTEwYmY3ZTlkZmI5NGIxMTJj
MTQ1MGNkODM1MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3Qtb3Blbi1hZnRlci1pZnJhbWUtb25sb2FkLXJlbW92ZS1zZWxmLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1vcGVu
LWFmdGVyLWlmcmFtZS1vbmxvYWQtcmVtb3ZlLXNlbGYuaHRtbApAQCAtOCw3ICs4LDkgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiBmdW5jdGlvbiBvbkZyYW1lTG9hZChmcmFtZSkgewogICB2
YXIgY2xpZW50ID0gZnJhbWUuY29udGVudFdpbmRvdy5jbGllbnQoKTsKICAgZnJhbWUucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7Ci0gIGNsaWVudC5vcGVuKCJHRVQiLCAiRG9lc05vdEV4
aXN0LnR4dCIpOworICB0cnkgeworICAgICAgY2xpZW50Lm9wZW4oIkdFVCIsICJEb2VzTm90RXhp
c3QudHh0Iik7CisgIH0gY2F0Y2goZSkgeyB9CiAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14
aHItaW4tbG9hZGluZy1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliN2E2OGRlMmRi
MTM5ODkzZmZjMmFhYmI4ZmE3YTU0MGNiN2JlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tbG9hZGluZy1pZnJh
bWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGgg
YSBsb2FkaW5nIGlmcmFtZSB0aGF0IGhhcyBhIHBlbmRpbmcgWEhSIGlzIGFibGUgdG8gZW50ZXIg
dGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKKyogaWZyYW1lIHN0YXJ0aW5nIFhIUgorcGFnZWhp
ZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlk
IGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZQorUEFTUyBYSFIgZmlu
aXNoZWQgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhlIGNhY2hlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4t
bG9hZGluZy1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODg0N2FjNTY1ZmU5YzRiODRhNWJiZTQ2
ZGZlYmU5OTdiZjFmZDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwKQEAgLTAs
MCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBsb2FkaW5nIGlmcmFtZSB0aGF0
IGhhcyBhIHBlbmRpbmcgWEhSIGlzIGFibGUgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZXNob3cg
LSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hlIik7CisK
KyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlk
IGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSIpOworICAgICAgICBp
ZnJhbWUuY29udGVudFdpbmRvdy5zaG91bGRGaW5pc2hKU09uWEhSTG9hZCA9IHRydWU7CisgICAg
fQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5j
dGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVk
ID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJz
aXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdl
IGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9LCBmYWxzZSk7CisK
K2Z1bmN0aW9uIG5hdmlnYXRlKCkKK3sKKyAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICIvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7Cit9CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgIGlmcmFtZS5zcmMgPSAiL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2Fj
aGUteGhyLWluLWxvYWRpbmctaWZyYW1lLmh0bWwiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSwgMCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXhoci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLXho
ci1pbi1sb2FkaW5nLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhOTdkNjdhNTc3Y2JhNjk0ZDFk
ODRjYzhjYjdjNzJmZGNhYTE1ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUteGhyLWluLWxvYWRpbmctaWZy
YW1lLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPHNjcmlwdD4KKworc2hvdWxkRmluaXNoSlNPblhI
UkxvYWQgPSBmYWxzZTsKKworZnVuY3Rpb24gZG9YSFIoKQoreworICAgIHhociA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAiL25hdmlnYXRpb24vcmVzb3VyY2Vz
L3Nsb3ctcmVzb3VyY2UucGw/ZGVsYXk9MTAwMCIpOworICAgIHhoci5hZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgKCkgPT4geworICAgICAgICBpZiAoc2hvdWxkRmluaXNoSlNPblhIUkxvYWQpIHsK
KyAgICAgICAgICAgIHBhcmVudC50ZXN0UGFzc2VkKCJYSFIgZmluaXNoZWQgYWZ0ZXIgcmVzdG9y
aW5nIGZyb20gdGhlIGNhY2hlIik7CisgICAgICAgICAgICBwYXJlbnQucmVzdG9yZWRGcm9tQ2Fj
aGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHBhcmVudC5maW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBkb1hIUigpOworICAgIH0pOworICAgIHhoci5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsICgpID0+IHsKKyAgICAgICAgZG9YSFIoKTsKKyAgICB9KTsKKyAgICB4
aHIuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLCAoKSA9PiB7CisgICAgfSk7CisKKyAgICB4
aHIuc2VuZCgpOworfQorCitwYXJlbnQuZGVidWcoIiogaWZyYW1lIHN0YXJ0aW5nIFhIUiIpOwor
ZG9YSFIoKTsKKworcGFyZW50Lm5hdmlnYXRlKCk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwt
bXVsdGktd2luZG93LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGktd2luZG93LTItZXhwZWN0ZWQudHh0
CmluZGV4IGU1MjU2OTgxYWZkZjg5MWJiY2FhNDYwNjUyYjU3M2Q2MTJlODM4YTMuLmYxMDdiYjA5
NzQwMjgzZDcyNjQ0ZWIyNDgxMzRhN2EwYzYzMWMwYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLW11bHRpLXdpbmRv
dy0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3hoci9vcGVuLXVybC1tdWx0aS13aW5kb3ctMi1leHBlY3RlZC50eHQKQEAgLTEs
NSArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSByZXNvbHZpbmcgVVJMcyAo
bXVsdGktV2luZG93OyAyOyBldmlsKSBhc3NlcnRfdGhyb3dzOiBvcGVuKCkgd2hlbiBhc3NvY2lh
dGVkIGRvY3VtZW50J3MgSUZSQU1FIGlzIHJlbW92ZWQgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIGNsaWVudC5vcGVuKCJHRVQiLCAiZm9sZGVyLnR4dCIpCi0gICAgICAgICAg
fSIgZGlkIG5vdCB0aHJvdworUEFTUyBYTUxIdHRwUmVxdWVzdDogb3BlbigpIHJlc29sdmluZyBV
UkxzIChtdWx0aS1XaW5kb3c7IDI7IGV2aWwpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1tdWx0aS13aW5kb3ct
NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3hoci9vcGVuLXVybC1tdWx0aS13aW5kb3ctNS1leHBlY3RlZC50eHQKaW5kZXggNmIzNjEx
MTE1NWYyODJiZjY2OWM4YmQwMjhmZjMxMzJkYmU0MjllNi4uZmE3OGEyZTE2OTgyMjM2NzYzZGMw
NTlhYmRmNThhZjBjNjRjYmExMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGktd2luZG93LTUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhy
L29wZW4tdXJsLW11bHRpLXdpbmRvdy01LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBYTUxIdHRwUmVxdWVzdDogb3BlbigpIHJlc29sdmluZyBVUkxzIChtdWx0aS1XaW5kb3c7
IDUpIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGNsaWVudC5vcGVuKCJH
RVQiLCAiLi4uIikgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IHJlc29sdmluZyBVUkxzIChtdWx0aS1XaW5kb3c7IDUpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1tdWx0aS13
aW5kb3ctNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3hoci9vcGVuLXVybC1tdWx0aS13aW5kb3ctNi1leHBlY3RlZC50eHQKaW5kZXgg
YWM4NjUzNjk1MTZlMjBhMTY5YmFhZmE0NjQ5MDc5YTA2MDJlMGY1OC4uNWE0NTc5MjczNzYyODVk
OTgzOTZkYjUxNDRmNWM0Njc3YmQzMjI2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtbXVsdGktd2luZG93LTYtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMveGhyL29wZW4tdXJsLW11bHRpLXdpbmRvdy02LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMg
QEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGluIGRvY3VtZW50IHRoYXQgaXMgbm90
IGZ1bGx5IGFjdGl2ZSAoYnV0IG1heSBiZSBhY3RpdmUpIHNob3VsZCB0aHJvdyBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBjbGllbnQub3BlbigiR0VUIiwgIi4uLiIpIH0i
IHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUg
ZXhwZWN0ZWQgcGF0dGVybi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0
ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTIsIGV4cGVjdGVkIDExCitQQVNT
IFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgaW4gZG9jdW1lbnQgdGhhdCBpcyBub3QgZnVsbHkgYWN0
aXZlIChidXQgbWF5IGJlIGFjdGl2ZSkgc2hvdWxkIHRocm93IAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>