<?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>28292</bug_id>
          
          <creation_ts>2009-08-13 21:00:32 -0700</creation_ts>
          <short_desc>Need to extend DumpRenderTree to expose number of worker threads</short_desc>
          <delta_ts>2009-08-18 13:21:53 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140145</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-13 21:00:32 -0700</bug_when>
    <thetext>There&apos;s currently no way to track if/when worker threads actually shut down from javascript layout tests.

We need to extend DumpRenderTree to expose this information so we can write layout tests to verify this functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140151</commentid>
    <comment_count>1</comment_count>
      <attachid>34806</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-13 21:45:54 -0700</bug_when>
    <thetext>Created attachment 34806
proposed patch

Turns out adding new APIs to WebKit is trickier than it appears. We need to put together a wiki page on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140154</commentid>
    <comment_count>2</comment_count>
      <attachid>34808</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-13 21:51:19 -0700</bug_when>
    <thetext>Created attachment 34808
patch with fix for gtk type error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140919</commentid>
    <comment_count>3</comment_count>
      <attachid>34808</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-17 17:37:48 -0700</bug_when>
    <thetext>Comment on attachment 34808
patch with fix for gtk type error

Wow.  I&apos;m just blown away by how thorough this change is.  Really, wow.  I don&apos;t think I would have had the stamina to change all 4 platforms like that.

This is technically a style violation:
 32         if (layoutTestController.workerThreadCount == 1) {
 33             log(&quot;PASS: Worker thread created&quot;);
 34         } else {
 35             log(&quot;FAIL: After thread creation: layoutTestController.workerThreadCount = &quot; + layoutTestController.workerThreadCount);
 36         }

As far as I can tell, this all looks correct.  I&apos;m certainly no COM expert, so there could be errors there, but looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141185</commentid>
    <comment_count>4</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-18 13:21:53 -0700</bug_when>
    <thetext>Committed as r47429.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34806</attachid>
            <date>2009-08-13 21:45:54 -0700</date>
            <delta_ts>2009-08-13 21:51:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>x</filename>
            <type>text/plain</type>
            <size>44151</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNmVjN2I2Li5jNTA5MWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDgt
MTMgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIHRvIGV4dGVuZCBEdW1wUmVuZGVy
VHJlZSB0byBleHBvc2UgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisgICAgICAgIEFkZGVkIHNp
bXBsZSBsYXlvdXQgdGVzdHMgdGhhdCB1c2UgdGhlIG5ldyBsYXlvdXRUZXN0Q29udHJvbGxlci53
b3JrZXJUaHJlYWRDb3VudCgpIEFQSQorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNl
cy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qczoKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgImNs
b3NlIiBjb21tYW5kIHRvIG1hdGNoIHdvcmtlci1jb21tb24uanMuCisgICAgICAgICogZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5Y2xlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbC1kaXNh
YmxlZDogQWRkZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1saWZlY3ljbGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLWxpZmVjeWNs
ZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0xMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCBvbmx5IHNraXBwaW5nIHRlc3RzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1v
bi5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1j
b21tb24uanMKaW5kZXggMzIwY2M3Yy4uYzA1Yzc1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzCkBA
IC0xMiw2ICsxMiw4IEBAIGZ1bmN0aW9uIGdjKCkKIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZl
bnQsIHBvcnQpIHsKICAgICBpZiAoZXZlbnQuZGF0YSA9PSAicGluZyIpCiAgICAgICAgIHBvcnQu
cG9zdE1lc3NhZ2UoIlBBU1M6IFJlY2VpdmVkIHBpbmcgbWVzc2FnZSIpOworICAgIGVsc2UgaWYg
KGV2ZW50LmRhdGEgPT0gImNsb3NlIikKKyAgICAgICAgY2xvc2UoKTsKICAgICBlbHNlIGlmIChl
dmVudC5kYXRhID09ICJkb25lIikKICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgiRE9ORSIpOwog
ICAgIGVsc2UgaWYgKC9ldmFsLisvLnRlc3QoZXZlbnQuZGF0YSkpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVjeWNsZS5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVjeWNsZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWM5YTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5Y2xlLmpz
CkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsK
K30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgd2FpdFVudGlsV29ya2VyVGhyZWFkc0V4aXQocnVuVGVzdHMpOworfSBl
bHNlIHsKKyAgICBsb2coIkZBSUw6IFRlc3QgcmVsaWVzIG9uIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci4gUGxlYXNlIHJ1biB0aGlzIHRlc3QgdmlhIER1bXBSZW5kZXJUcmVlIik7CisgICAg
ZG9uZSgpOworfQorCitmdW5jdGlvbiB3YWl0VW50aWxXb3JrZXJUaHJlYWRzRXhpdChjYWxsYmFj
aykKK3sKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIud29ya2VyVGhyZWFkQ291bnQgPT0g
MCkgeworICAgICAgICAvLyBXb3JrZXIgdGhyZWFkcyBoYXZlIGV4aXRlZC4KKyAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBQb2xsIHVudGlsIHdvcmtlciB0aHJl
YWRzIGhhdmUgZXhpdGVkLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3YWl0VW50
aWxXb3JrZXJUaHJlYWRzRXhpdChjYWxsYmFjayk7IH0sIDEwMCk7CisgICAgfQorfQorCitmdW5j
dGlvbiBydW5UZXN0cygpCit7CisgICAgbG9nKCJQQVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9ICIg
KyBsYXlvdXRUZXN0Q29udHJvbGxlci53b3JrZXJUaHJlYWRDb3VudCk7CisgICAgdmFyIHdvcmtl
ciA9IGNyZWF0ZVdvcmtlcigpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgicGluZyIpOworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBpZiAobGF5b3V0
VGVzdENvbnRyb2xsZXIud29ya2VyVGhyZWFkQ291bnQgPT0gMSkgeworICAgICAgICAgICAgbG9n
KCJQQVNTOiBXb3JrZXIgdGhyZWFkIGNyZWF0ZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGxvZygiRkFJTDogQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiBsYXlvdXRUZXN0Q29udHJv
bGxlci53b3JrZXJUaHJlYWRDb3VudCA9ICIgKyBsYXlvdXRUZXN0Q29udHJvbGxlci53b3JrZXJU
aHJlYWRDb3VudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTaHV0ZG93biB0aGUgd29ya2Vy
LgorICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImNsb3NlIik7CisgICAgICAgIHdhaXRVbnRp
bFdvcmtlclRocmVhZHNFeGl0KHdvcmtlckV4aXRlZCk7CisgICAgfQorfQorCitmdW5jdGlvbiB3
b3JrZXJFeGl0ZWQoKQoreworICAgIGxvZygiUEFTUzogV29ya2VyIGV4aXRlZCB3aGVuIGNsb3Nl
KCkgY2FsbGVkLiIpOworICAgIGRvbmUoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAg
bG9nKCJET05FIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbGlmZWN5Y2xlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjg0YWJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIt
bGlmZWN5Y2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgU2hhcmVkV29ya2Vy
IGxpZmVjeWNsZS4gV2lsbCBwcmludCBQQVNTIG11bHRpcGxlIHRpbWVzLCBmb2xsb3dlZCBieSBE
T05FLgorCitQQVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9IDAKK1BBU1M6IFdvcmtlciB0aHJlYWQg
Y3JlYXRlZAorUEFTUzogV29ya2VyIGV4aXRlZCB3aGVuIGNsb3NlKCkgY2FsbGVkLgorRE9ORQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZl
Y3ljbGUuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29y
a2VyLWxpZmVjeWNsZS5odG1sLWRpc2FibGVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjY2Y2M4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbC1kaXNhYmxlZApAQCAtMCwwICsxLDYgQEAK
Kzxib2R5PgorPHA+VGVzdCBTaGFyZWRXb3JrZXIgbGlmZWN5Y2xlLiBXaWxsIHByaW50IFBBU1Mg
bXVsdGlwbGUgdGltZXMsIGZvbGxvd2VkIGJ5IERPTkUuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjYxZTE0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvd29ya2VyLWxpZmVjeWNsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0
IFdvcmtlciBsaWZlY3ljbGUuIFdpbGwgcHJpbnQgUEFTUyBtdWx0aXBsZSB0aW1lcywgZm9sbG93
ZWQgYnkgRE9ORS4KKworUEFTUzogd29ya2VyVGhyZWFkQ291bnQgPSAwCitQQVNTOiBXb3JrZXIg
dGhyZWFkIGNyZWF0ZWQKK1BBU1M6IFdvcmtlciBleGl0ZWQgd2hlbiBjbG9zZSgpIGNhbGxlZC4K
K0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1saWZl
Y3ljbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5ZjNiZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0bWwK
QEAgLTAsMCArMSw2IEBACis8Ym9keT4KKzxwPlRlc3QgV29ya2VyIGxpZmVjeWNsZS4gV2lsbCBw
cmludCBQQVNTIG11bHRpcGxlIHRpbWVzLCBmb2xsb3dlZCBieSBET05FLjwvcD4KKzxkaXYgaWQ9
cmVzdWx0PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItY3JlYXRlLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODIyODhlLi5jMWQ1ZjQ5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDA5LTA4LTEzICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVt
cFJlbmRlclRyZWUgdG8gZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBF
eHBvc2UgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpIGZvciBEdW1wUmVuZGVyVHJl
ZSBzbyB3ZSBjYW4gd3JpdGUgd29ya2VyIGxpZmVjeWNsZSB0ZXN0cy4KKworICAgICAgICBUZXN0
czogZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbGlmZWN5Y2xlLmh0bWwtZGlzYWJsZWQKKyAg
ICAgICAgICAgICAgIGZhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0bWwKKworICAgICAg
ICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgIEV4cG9ydGVkIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkQ291bnQoKS4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICBBZGRl
ZCB0cmFja2luZyBvZiB0aGUgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzLgorICAgICAgICAoV2Vi
Q29yZTo6dGhyZWFkQ291bnRNdXRleCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29y
a2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6fldvcmtlclRocmVh
ZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAwOS0wOC0xMyAgU3Rl
dmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggMmU3NzNlNi4uMWVmMGMwNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApA
QCAtMjcwLDYgKzI3MCw3IEBAIF9fWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMTFyYW5nZUxlbmd0
aEVQS05TXzVSYW5nZUViCiBfX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI2cmFuZ2VGcm9tTG9j
YXRpb25BbmRMZW5ndGhFUE5TXzdFbGVtZW50RWlpYgogX19aTjdXZWJDb3JlMTJUZXh0SXRlcmF0
b3I3YWR2YW5jZUV2CiBfX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvckMxRVBLTlNfNVJhbmdlRWJi
CitfX1pON1dlYkNvcmUxMldvcmtlclRocmVhZDE3d29ya2VyVGhyZWFkQ291bnRFdgogX19aTjdX
ZWJDb3JlMTJhcHBseUNvbW1hbmRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFFZGl0Q29tbWFuZEVF
RQogX19aTjdXZWJDb3JlMTJjYWNoZVN0b3JhZ2VFdgogX19aTjdXZWJDb3JlMTJjcmVhdGVNYXJr
dXBFUEtOU180Tm9kZUVOU18xM0VDaGlsZHJlbk9ubHlFUE4zV1RGNlZlY3RvcklQUzBfTG0wRUVF
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQzZjYwMGUu
LmNkMGUxYmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01ODIsOSArNTgyLDkgQEAKIAkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1l
c3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAq
LzsgfTsKIAkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDYzRjBG
NTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLzsgfTsKIAkJMkU0MzQ2NTIw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDAwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclJ1bkxvb3AuY3BwICovOyB9OwotCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCAqLzsgfTsKKwkJ
MkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjQxMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0
MjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmNwcCAqLzsgfTsKLQkJMkU0MzQ2NTUw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
clRocmVhZC5oICovOyB9OworCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhy
ZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQz
NDY0MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJB
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU2MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5jcHAgKi87IH07CiAJCTJFNDM0NjU5MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVh
ZENvcGllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmggKi87IH07CiAJ
CTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZF
NzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzUyYzE3OC4uMjIyNTNiZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKQEAgLTQwLDYgKzQwLDIxIEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIE11dGV4JiB0aHJlYWRDb3VudE11
dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9
ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBtdXRleDsKK30KKwordW5zaWduZWQgV29ya2VyVGhy
ZWFkOjptX3RocmVhZENvdW50ID0gMDsKKwordW5zaWduZWQgV29ya2VyVGhyZWFkOjp3b3JrZXJU
aHJlYWRDb3VudCgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkp
OworICAgIHJldHVybiBtX3RocmVhZENvdW50OworfQorCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEgOiBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6YXV0b19w
dHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCkBAIC02
NywxMCArODIsMTUgQEAgV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QKICAgICAsIG1fd29ya2VyUmVw
b3J0aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3N0YXJ0dXBEYXRhKFdv
cmtlclRocmVhZFN0YXJ0dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJj
ZUNvZGUpKQogeworICAgIE11dGV4TG9ja2VyIGxvY2sodGhyZWFkQ291bnRNdXRleCgpKTsKKyAg
ICBtX3RocmVhZENvdW50Kys7CiB9CiAKIFdvcmtlclRocmVhZDo6fldvcmtlclRocmVhZCgpCiB7
CisgICAgTXV0ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkpOworICAgIEFTU0VSVCht
X3RocmVhZENvdW50ID4gMCk7CisgICAgbV90aHJlYWRDb3VudC0tOwogfQogCiBib29sIFdvcmtl
clRocmVhZDo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDVkODYxZTEuLjIyYWIy
ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTU2LDYgKzU2LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHkoKSBj
b25zdCB7IHJldHVybiBtX3dvcmtlckxvYWRlclByb3h5OyB9CiAgICAgICAgIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2Vy
UmVwb3J0aW5nUHJveHk7IH0KIAorICAgICAgICAvLyBOdW1iZXIgb2YgYWN0aXZlIHdvcmtlciB0
aHJlYWRzLgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKKwog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5Jik7CiAKQEAgLTkwLDYgKzkzLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCisKKyAgICAg
ICAgLy8gVHJhY2sgdGhlIG51bWJlciBvZiBXb3JrZXJUaHJlYWQgaW5zdGFuY2VzIGZvciB1c2Ug
aW4gbGF5b3V0IHRlc3RzLgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgbV90aHJlYWRDb3VudDsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvQ2hh
bmdlTG9nIGIvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTA3MjFhLi5hZjIyYTM3IDEwMDY0NAot
LS0gYS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAwOS0wOC0xMyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgdG8gZXh0
ZW5kIER1bXBSZW5kZXJUcmVlIHRvIGV4cG9zZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVk
IFdlYldvcmtlcnNQcml2YXRlIEFQSXMgdG8gbWFjIFdlYktpdCB0byBleHBvc2Ugd29ya2VyVGhy
ZWFkQ291bnQoKSBmb3IgRHVtcFJlbmRlclRyZWUuCisKIDIwMDktMDgtMDYgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ1YmNkMTUuLjg3
NDkwZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcxLDYg
KzcxLDggQEAKIAkJMjI2RTlFNkEwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVj
YXRlZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjI2RTlFNjgwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1
bmN0aW9ucy5oICovOyB9OwogCQkyMjZFOUU2QjA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2Nh
cGVEZXByZWNhdGVkRnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMjZFOUU2OTA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2NhcGVEZXBy
ZWNhdGVkRnVuY3Rpb25zLmMgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8t
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQkyMkYyMTlDQzA4RDIzNjczMDAzMEUw
NzggLyogV2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJh
Y2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk0MUY0NDg0RjEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1By
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxRjQ0ODUwMTAzMzhFOEMw
MDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjQ0ODRFMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3Jr
ZXJzUHJpdmF0ZS5tbSAqLzsgfTsKIAkJNDQxNzkzQTYwRTM0RUUxNTAwNTVFMUFFIC8qIFdlYkhU
TUxSZXByZXNlbnRhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NDE3OTNBNTBFMzRFRTE1MDA1NUUxQUUgLyogV2ViSFRNTFJlcHJl
c2VudGF0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJNEJGOTlGOTAwQUUwNTBCQzAwODE1QzJCIC8q
IFdlYkVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEJGOTlGOEUwQUUwNTBCQzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTRCRjk5RjkxMEFFMDUwQkMw
MDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QkY5OUY4RjBBRTA1MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9y
Q2xpZW50Lm1tICovOyB9OwpAQCAtNDE4LDYgKzQyMCw4IEBACiAJCTM5NDQ2MDdFMDIwRjUwRUQw
RUNBMTc2NyAvKiBXZWJCYWNrRm9yd2FyZExpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3QubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQkzOTQ0NjA3RjAyMEY1MEVEMEVDQTE3NjcgLyogV2ViSGlzdG9yeUl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTM5NDQ2MDgwMDIwRjUwRUQwRUNBMTc2NyAvKiBXZWJIaXN0b3J5SXRlbS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhp
c3RvcnlJdGVtLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKKwkJNDFGNDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYldvcmtlcnNQcml2YXRl
Lmg7IHBhdGggPSBtYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUY0NDg0RTEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1By
aXZhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJXb3Jr
ZXJzUHJpdmF0ZS5tbTsgcGF0aCA9IG1hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE3OTNBNTBFMzRFRTE1MDA1NUUxQUUgLyog
V2ViSFRNTFJlcHJlc2VudGF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkhUTUxSZXByZXNlbnRhdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0OTA5OEI5MEY4RjgyREYwMDc2QTMyNyAvKiBGZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGOTlGOEUwQUUwNTBC
QzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDUsNiArNzA5LDcgQEAKIAkJCQlGNUIzNkI0MDAyODFERTg3MDE4NjM1Q0IgLyogV2ViQ29y
ZVN1cHBvcnQgKi8sCiAJCQkJOUM3Q0FCQkIwMTkwQTM3QzBFQ0ExNkVBIC8qIFdlYlZpZXcgKi8s
CiAJCQkJMUM2OEY2M0YwOTVCNUY5QzAwQzI5ODRFIC8qIFdlYkluc3BlY3RvciAqLywKKwkJCQk0
MUY0NDg0QzEwMzM4RTU3MDAzMEU1NUUgLyogV29ya2VycyAqLywKIAkJCQlGN0VCRUU1OTAzRjlE
QjIyMDNDQTBERTYgLyogQ2FyYm9uICovLAogCQkJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAv
KiBSZXNvdXJjZXMgKi8sCiAJCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29y
a3MgYW5kIExpYnJhcmllcyAqLywKQEAgLTkyOSw2ICs5MzQsMTUgQEAKIAkJCXRhYldpZHRoID0g
NDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJNDFGNDQ4NEMxMDMzOEU1NzAwMzBFNTVFIC8q
IFdvcmtlcnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTQxRjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovLAorCQkJ
CTQxRjQ0ODRFMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSAqLywKKwkJ
CSk7CisJCQluYW1lID0gV29ya2VyczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTUxMUYzRkMzMENFQ0M3RTIwMDg1MjU2NSAvKiBTdG9yYWdlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE0MzcsNiArMTQ1MSw3IEBACiAJCQkJOTM5
ODEwNDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5Mzk4MTA5QjA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5Mzk4MTA3MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3Jr
ZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzY5LDYgKzE3ODQsNyBAQAogCQkJCTkz
OTgxMTA3MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZpZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTM5ODEwRTgwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDFGNDQ4NTAxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2
YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGExMTc4MmQuLjM3NTYxZDMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMDktMDgtMTMgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIHRv
IGV4dGVuZCBEdW1wUmVuZGVyVHJlZSB0byBleHBvc2UgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5Mgor
CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d29ya2Vycy5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X3dvcmtlcl90aHJlYWRfY291
bnQpOgorICAgICAgICBFeHBvc2VkIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFk
Q291bnQoKSBmb3IgdGhlIGd0ayB2ZXJzaW9uIG9mIER1bXBSZW5kZXJUcmVlLgorCiAyMDA5LTA4
LTEzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4
IDBjM2ZiZDMuLmRlODEyMjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTI1MCw2
ICsyNTAsOSBAQCBleHRlcm4gIkMiIHsKIAogICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtp
dF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplKTsKKworICAgIFdFQktJVF9BUEkgdW5zaWduZWQgaW50CisgICAgd2Via2l0X3dvcmtlcl90
aHJlYWRfY291bnQoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3b3JrZXJzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdvcmtlcnMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NTg2M2MKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3b3JrZXJzLmNwcApAQCAtMCwwICsxLDQ1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKworI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgorCit1bnNpZ25lZCBpbnQgd2Via2l0X3dvcmtlcl90aHJl
YWRfY291bnQodm9pZCkKK3sKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAgICByZXR1cm4gV2ViQ29y
ZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCisKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMGQ5YjlhNi4uNmFlNzE4MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAwOS0wOC0xMyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgdG8gZXh0
ZW5kIER1bXBSZW5kZXJUcmVlIHRvIGV4cG9zZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisg
ICAgICAgICogV2ViS2l0LmV4cDoKKyAgICAgICAgRXhwb3J0ZWQgV2ViV29ya2Vyc1ByaXZhdGUg
c28gRHVtcFJlbmRlclRyZWUgY2FuIGFjY2VzcyBpdC4KKyAgICAgICAgKiBXb3JrZXJzL1dlYldv
cmtlcnNQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdvcmtlcnMvV2ViV29ya2Vyc1ByaXZh
dGUubW06IEFkZGVkLgorICAgICAgICAoK1tXZWJXb3JrZXJzUHJpdmF0ZSB3b3JrZXJUaHJlYWRD
b3VudF0pOgorICAgICAgICBBZGRlZCBXZWJXb3JrZXJzUHJpdmF0ZTo6d29ya2VyVGhyZWFkQ291
bnQoKSBBUEkgZm9yIER1bXBSZW5kZXJUcmVlLgorCiAyMDA5LTA4LTEzICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbTogVXBkYXRlZCBpbmNsdWRlcy4KZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViS2l0LmV4cCBiL1dlYktpdC9tYWMvV2ViS2l0LmV4cAppbmRleCBmMzJkMWE4Li5j
NzZlY2Y1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYktpdC5leHAKKysrIGIvV2ViS2l0L21h
Yy9XZWJLaXQuZXhwCkBAIC0zMiw2ICszMiw3IEBACiAub2JqY19jbGFzc19uYW1lX1dlYlRleHRJ
dGVyYXRvcgogLm9iamNfY2xhc3NfbmFtZV9XZWJVUkxzV2l0aFRpdGxlcwogLm9iamNfY2xhc3Nf
bmFtZV9XZWJWaWV3Cisub2JqY19jbGFzc19uYW1lX1dlYldvcmtlcnNQcml2YXRlCiBfSElXZWJW
aWV3Q3JlYXRlCiBfSElXZWJWaWV3R2V0V2ViVmlldwogX1dlYkFjdGlvbkJ1dHRvbktleQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLmggYi9XZWJLaXQv
bWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wZmY2MGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L21hYy9Xb3JrZXJz
L1dlYldvcmtlcnNQcml2YXRlLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK0BpbnRlcmZhY2UgV2ViV29ya2Vy
c1ByaXZhdGUgOiBOU09iamVjdCB7Cit9CisKKy8vIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBv
ZiBjdXJyZW50bHkgZXhlY3V0aW5nIHdvcmtlciB0aHJlYWRzIChzaGFyZWQgKyBkZWRpY2F0ZWQp
LgorKyAodW5zaWduZWQpIHdvcmtlclRocmVhZENvdW50OworCitAZW5kCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUubW0gYi9XZWJLaXQvbWFjL1dvcmtl
cnMvV2ViV29ya2Vyc1ByaXZhdGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmMxNGFkMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3Jr
ZXJzUHJpdmF0ZS5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2ViV29ya2Vyc1ByaXZhdGUu
aCIKKworI2ltcG9ydCA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KKworQGltcGxlbWVudGF0aW9u
IFdlYldvcmtlcnNQcml2YXRlCisKKysgKHVuc2lnbmVkKSB3b3JrZXJUaHJlYWRDb3VudAorewor
I2lmIEVOQUJMRV9XT1JLRVJTCisgICAgcmV0dXJuIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkQ291bnQoKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworQGVu
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCA3OTNiNGJkLi4zMjM1NjM5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDA5LTA4LTEz
ICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVtcFJlbmRlclRy
ZWUgdG8gZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBEZWZpbmVkL2lt
cGxlbWVudGVkIENPTSBpbnRlcmZhY2VzIHRvIGV4cG9zZSBXb3JrZXJUaHJlYWQ6OndvcmtlclRo
cmVhZENvdW50KCkgZm9yIER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICogRm9yRWFjaENvQ2xh
c3MuaDoKKyAgICAgICAgQWRkZWQgV2ViV29ya2Vyc1ByaXZhdGUuCisgICAgICAgICogSW50ZXJm
YWNlcy9JV2ViV29ya2Vyc1ByaXZhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBJbnRlcmZhY2Vz
L1dlYktpdC5pZGw6CisgICAgICAgIEFkZGVkIFdlYldvcmtlcnNQcml2YXRlLgorICAgICAgICAq
IFdlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2o6CisgICAgICAgICogV2ViS2l0LnZjcHJv
ai9XZWJLaXQudmNwcm9qOgorICAgICAgICAqIFdlYldvcmtlcnNQcml2YXRlLmNwcDogQWRkZWQu
CisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIHRoZSBJV2ViV29ya2Vyc1ByaXZhdGUgQ09NIGlu
dGVyZmFjZSwgdG8gZXhwb3NlIHdvcmtlclRocmVhZENvdW50KCkgZm9yIER1bXBSZW5kZXJUcmVl
LgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAg
KFdlYldvcmtlcnNQcml2YXRlOjpBZGRSZWYpOgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6
OlJlbGVhc2UpOgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6OndvcmtlclRocmVhZENvdW50
KToKKyAgICAgICAgKFdlYldvcmtlcnNQcml2YXRlOjpjcmVhdGVJbnN0YW5jZSk6CisgICAgICAg
IChXZWJXb3JrZXJzUHJpdmF0ZTo6V2ViV29ya2Vyc1ByaXZhdGUpOgorICAgICAgICAoV2ViV29y
a2Vyc1ByaXZhdGU6On5XZWJXb3JrZXJzUHJpdmF0ZSk6CisgICAgICAgICogV2ViV29ya2Vyc1By
aXZhdGUuaDogQWRkZWQuCisKIDIwMDktMDgtMTIgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3Rl
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL0ZvckVhY2hDb0NsYXNzLmggYi9XZWJLaXQvd2luL0ZvckVhY2hDb0Ns
YXNzLmgKaW5kZXggMDVhODFmZi4uMjZmNGE2YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9Gb3JF
YWNoQ29DbGFzcy5oCisrKyBiL1dlYktpdC93aW4vRm9yRWFjaENvQ2xhc3MuaApAQCAtNjIsNiAr
NjIsNyBAQAogICAgIG1hY3JvKFdlYkFyY2hpdmUpIFwKICAgICBtYWNybyhXZWJDb3JlU3RhdGlz
dGljcykgXAogICAgIG1hY3JvKFdlYkNvb2tpZU1hbmFnZXIpIFwKKyAgICBtYWNybyhXZWJXb3Jr
ZXJzUHJpdmF0ZSkgXAogICAgIC8vIGVuZCBvZiBtYWNybwogCiAvLyBFdmVyeXRoaW5nIGJlbG93
IHRoaXMgcG9pbnQgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIGRvIG5vdCB1c2UuCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYldvcmtlcnNQcml2YXRlLmlkbCBiL1dlYktpdC93
aW4vSW50ZXJmYWNlcy9JV2ViV29ya2Vyc1ByaXZhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk5MGI4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYldvcmtlcnNQcml2YXRlLmlkbApAQCAtMCwwICsxLDUyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
T19OT19JTVBPUlRTCitpbXBvcnQgIm9haWRsLmlkbCI7CitpbXBvcnQgIm9jaWRsLmlkbCI7Cisj
ZW5kaWYKKworLyohCisgICAgQGNsYXNzIFdlYldvcmtlcnNQcml2YXRlCisgICAgQGRpc2N1c3Np
b24gV2ViV29ya2Vyc1ByaXZhdGUgZXhwb3NlcyBpbnRlcm5hbHMgYWJvdXQgV2ViV29ya2VycyBm
b3IgdXNlIGluCisgICAgbGF5b3V0IHRlc3RzLgorKi8KK1sKKyAgICBvYmplY3QsCisgICAgb2xl
YXV0b21hdGlvbiwKKyAgICBoaWRkZW4sCisgICAgdXVpZCg1MzcwNjlDNS0zODlDLTQxYWUtOUE4
Mi00MjNBQ0E4QjJDMDIpLAorICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpCitdCisKK2ludGVy
ZmFjZSBJV2ViV29ya2Vyc1ByaXZhdGUgOiBJVW5rbm93bgoreworICAgIEhSRVNVTFQgd29ya2Vy
VGhyZWFkQ291bnQoW291dCwgcmV0dmFsXSBVSU5UKiBudW1iZXIpOworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMv
V2ViS2l0LmlkbAppbmRleCA0YTQ2OTYxLi4yOWQwOGQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L0ludGVyZmFjZXMvV2ViS2l0LmlkbAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvV2ViS2l0
LmlkbApAQCAtMTIzLDYgKzEyMyw3IEBAIGltcG9ydCAib2NpZGwuaWRsIjsKICNpbmNsdWRlICJJ
V2ViVW5kb1RhcmdldC5pZGwiCiAjaW5jbHVkZSAiSVdlYlZpZXcuaWRsIgogI2luY2x1ZGUgIklX
ZWJWaWV3UHJpdmF0ZS5pZGwiCisjaW5jbHVkZSAiSVdlYldvcmtlcnNQcml2YXRlLmlkbCIKIAog
I2luY2x1ZGUgIklHRU5fRE9NT2JqZWN0LmlkbCIKICNpbmNsdWRlICJJR0VOX0RPTUNoYXJhY3Rl
ckRhdGEuaWRsIgpAQCAtMzU5LDYgKzM2MCwxMSBAQCBsaWJyYXJ5IFdlYktpdAogICAgIGNvY2xh
c3MgV2ViQ29va2llTWFuYWdlcnsKICAgICAgICAgW2RlZmF1bHRdIGludGVyZmFjZSBJV2ViQ29v
a2llTWFuYWdlcjsKICAgICB9CisKKyAgICBbdXVpZCgwOTY3QUFGRi0yRkZFLTRmY2MtODFGMy0z
RkYyQTlDNkRDRTIpXQorICAgIGNvY2xhc3MgV2ViV29ya2Vyc1ByaXZhdGV7CisgICAgICAgIFtk
ZWZhdWx0XSBpbnRlcmZhY2UgSVdlYldvcmtlcnNQcml2YXRlOworICAgIH0KIH0KIAogCmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2ogYi9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2oKaW5kZXggM2IyM2U3ZC4uMzIy
MjcwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0ludGVyZmFjZXMudmNw
cm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9JbnRlcmZhY2VzLnZjcHJvagpAQCAt
MTQ4NCw2ICsxNDg0LDI2IEBACiAJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJPC9GaWxlPg0K
IAkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcSVdlYldvcmtlcnNQcml2
YXRlLmlkbCINCisJCQk+DQorCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIg0KKwkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJPg0KKwkJCQk8VG9v
bA0KKwkJCQkJTmFtZT0iVkNNSURMVG9vbCINCisJCQkJLz4NCisJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJPg0KKwkJCQk8VG9vbA0KKwkJCQkJ
TmFtZT0iVkNNSURMVG9vbCINCisJCQkJLz4NCisJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
PC9GaWxlPg0KKwkJPEZpbGUNCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcV2ViS2l0
LmlkbCINCiAJCQk+DQogCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3By
b2ovV2ViS2l0LnZjcHJvagppbmRleCBhM2JhNmVlLi44N2FhNTBiIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0LnZjcHJvagpAQCAtNzQzLDYgKzc0MywxMCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJXb3JrZXJzUHJpdmF0
ZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2luZG93c1RvdWNoLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMTA5NCw2ICsxMDk4
LDEwIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJWaWV3LmNwcCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYldvcmtlcnNQcml2YXRl
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KIAkJ
CU5hbWU9IlJlc291cmNlcyINCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYldvcmtlcnNQcml2
YXRlLmNwcCBiL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NWMyN2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
d2luL1dlYldvcmtlcnNQcml2YXRlLmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJLaXRETEwuaCIKKyNpbmNsdWRlICJXZWJXb3JrZXJzUHJpdmF0
ZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KKworLy8gSVVua25vd24g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYldvcmtlcnNQcml2YXRl
OjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAq
cHB2T2JqZWN0ID0gMDsKKyAgICBpZiAoSXNFcXVhbEdVSUQocmlpZCwgX191dWlkb2YoSVdlYldv
cmtlcnNQcml2YXRlKSkpCisgICAgICAgICpwcHZPYmplY3QgPSB0aGlzOworICAgIGVsc2UgaWYg
KElzRXF1YWxHVUlEKHJpaWQsIElJRF9JVW5rbm93bikpCisgICAgICAgICpwcHZPYmplY3QgPSBz
dGF0aWNfY2FzdDxJV2ViV29ya2Vyc1ByaXZhdGUqPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0Vx
dWFsR1VJRChyaWlkLCBJSURfSVdlYldvcmtlcnNQcml2YXRlKSkKKyAgICAgICAgKnBwdk9iamVj
dCA9IHN0YXRpY19jYXN0PElXZWJXb3JrZXJzUHJpdmF0ZSo+KHRoaXMpOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7CisKKyAgICBBZGRSZWYoKTsKKyAgICByZXR1cm4g
U19PSzsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgV2ViV29ya2Vyc1ByaXZhdGU6OkFk
ZFJlZih2b2lkKQoreworICAgIHJldHVybiArK21fcmVmQ291bnQ7Cit9CisKK1VMT05HIFNURE1F
VEhPRENBTExUWVBFIFdlYldvcmtlcnNQcml2YXRlOjpSZWxlYXNlKHZvaWQpCit7CisgICAgVUxP
TkcgbmV3UmVmID0gLS1tX3JlZkNvdW50OworICAgIGlmICghbmV3UmVmKQorICAgICAgICBkZWxl
dGUodGhpcyk7CisKKyAgICByZXR1cm4gbmV3UmVmOworfQorCisvLyBJV2ViV29ya2Vyc1ByaXZh
dGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK0hSRVNVTFQgV2ViV29ya2Vyc1ByaXZhdGU6OndvcmtlclRocmVhZENvdW50KFVJTlQq
IG51bWJlcikKK3sKKyAgICBpZiAoIW51bWJlcikKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KworI2lmIEVOQUJMRShXT1JLRVJTKQorICAgICpudW1iZXIgPSBXZWJDb3JlOjpXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZENvdW50KCk7CisjZWxzZQorICAgICpudW1iZXIgPSAwOworI2VuZGlm
CisgICAgcmV0dXJuIFNfT0s7Cit9CisKKy8vIFdlYldvcmtlcnNQcml2YXRlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2ViV29y
a2Vyc1ByaXZhdGUqIFdlYldvcmtlcnNQcml2YXRlOjpjcmVhdGVJbnN0YW5jZSgpCit7CisgICAg
V2ViV29ya2Vyc1ByaXZhdGUqIGluc3RhbmNlID0gbmV3IFdlYldvcmtlcnNQcml2YXRlKCk7Cisg
ICAgaW5zdGFuY2UtPkFkZFJlZigpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworV2ViV29y
a2Vyc1ByaXZhdGU6OldlYldvcmtlcnNQcml2YXRlKCkKKyAgICA6IG1fcmVmQ291bnQoMCkKK3sK
KyAgICBnQ2xhc3NDb3VudCsrOworICAgIGdDbGFzc05hbWVDb3VudC5hZGQoIldlYldvcmtlcnNQ
cml2YXRlIik7Cit9CisKK1dlYldvcmtlcnNQcml2YXRlOjp+V2ViV29ya2Vyc1ByaXZhdGUoKQor
eworICAgIGdDbGFzc0NvdW50LS07CisgICAgZ0NsYXNzTmFtZUNvdW50LnJlbW92ZSgiV2ViV29y
a2Vyc1ByaXZhdGUiKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZh
dGUuaCBiL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yMzFjMTFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9X
ZWJXb3JrZXJzUHJpdmF0ZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYldvcmtlcnNQcml2
YXRlX2gKKyNkZWZpbmUgV2ViV29ya2Vyc1ByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0Lmgi
CisKK2NsYXNzIFdlYldvcmtlcnNQcml2YXRlIDogcHVibGljIElXZWJXb3JrZXJzUHJpdmF0ZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFdlYldvcmtlcnNQcml2YXRlKiBjcmVhdGVJbnN0YW5jZSgp
OworcHJpdmF0ZToKKyAgICBXZWJXb3JrZXJzUHJpdmF0ZSgpOworICAgIH5XZWJXb3JrZXJzUHJp
dmF0ZSgpOworCitwdWJsaWM6CisgICAgLy8gSVVua25vd24KKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZP
YmplY3QpOworICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQp
OworICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKwor
ICAgIC8vIElXZWJXb3JrZXJzUHJpdmF0ZQorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSB3b3JrZXJUaHJlYWRDb3VudChVSU5UKik7CisKK3ByaXZhdGU6CisgICAgVUxPTkcg
bV9yZWZDb3VudDsKK307CisKKyNlbmRpZiAvLyBXZWJXb3JrZXJzUHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXgg
Y2YwMjNkMS4uZTA4NTVkNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDA5LTA4LTEzICBEcmV3
IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVtcFJlbmRlclRyZWUgdG8g
ZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBBZGRlZCBsYXlvdXRUZXN0
Q29udHJvbGxlci53b3JrZXJUaHJlYWRDb3VudCwgYW5kIGltcGxlbWVudGF0aW9ucyBvbiB2YXJp
b3VzIHBsYXRmb3JtcyB0aGF0IGNhbGwgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChnZXRXb3JrZXJUaHJl
YWRDb3VudENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNW
YWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJUaHJlYWRDb3VudCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJUaHJlYWRDb3VudCk6CisKIDIwMDktMDgtMTMg
IEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5vIHJldmlldywgY29y
cmVjdGluZyBvYnZpb3VzIHB5dGhvbiBlcnJvciBzZWVuIGluIHRoZSBjb21taXQgcXVldWUuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggZjg2NDBmYS4uMmIwNzBhZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtODg4LDYgKzg4OCwxMiBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBjb250cm9sbGVyLT53ZWJIaXN0b3J5SXRlbUNvdW50KCkpOwogfQogCitzdGF0aWMgSlNW
YWx1ZVJlZiBnZXRXb3JrZXJUaHJlYWRDb3VudENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29u
dHJvbGxlci0+d29ya2VyVGhyZWFkQ291bnQoKSk7Cit9CisKIHN0YXRpYyBib29sIHNldEdsb2Jh
bEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBz
dGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7CkBAIC05MzQsNiArOTQwLDcgQEAgSlNTdGF0aWNWYWx1ZSogTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY1ZhbHVlcygpCiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGlj
VmFsdWVzW10gPSB7CiAgICAgICAgIHsgImdsb2JhbEZsYWciLCBnZXRHbG9iYWxGbGFnQ2FsbGJh
Y2ssIHNldEdsb2JhbEZsYWdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCiAg
ICAgICAgIHsgIndlYkhpc3RvcnlJdGVtQ291bnQiLCBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2Fs
bGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAid29ya2VyVGhyZWFkQ291bnQiLCBnZXRXb3Jr
ZXJUaHJlYWRDb3VudENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCwgMCB9
CiAgICAgfTsKICAgICByZXR1cm4gc3RhdGljVmFsdWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOGFlYmVkNC4uYzdiNDhl
OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oSlNTdHJpbmdSZWYgcGF0aCk7CiAgICAgdm9pZCB3YWl0Rm9yUG9saWN5RGVs
ZWdhdGUoKTsKICAgICBzaXplX3Qgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOworICAgIHVuc2lnbmVk
IHdvcmtlclRocmVhZENvdW50KCkgY29uc3Q7CiAgICAgaW50IHdpbmRvd0NvdW50KCk7CiAgICAg
CiAgICAgdm9pZCBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVm
IG9yaWdpbik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBmMDNjYzgwLi5lMmVkNmM5IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgYm9vbCB3ZWJraXRfd2ViX2ZyYW1l
X3BhdXNlX2FuaW1hdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBuYW1l
LAogYm9vbCB3ZWJraXRfd2ViX2ZyYW1lX3BhdXNlX3RyYW5zaXRpb24oV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogbmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IGdjaGFyKiBlbGVt
ZW50KTsKIHVuc2lnbmVkIGludCB3ZWJraXRfd2ViX2ZyYW1lX251bWJlcl9vZl9hY3RpdmVfYW5p
bWF0aW9ucyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogdm9pZCB3ZWJraXRfYXBwbGljYXRpb25f
Y2FjaGVfc2V0X21heGltdW1fc2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CitzaXplX3Qg
d2Via2l0X3dvcmtlcl90aHJlYWRfY291bnQoKTsKIH0KIAogTGF5b3V0VGVzdENvbnRyb2xsZXI6
On5MYXlvdXRUZXN0Q29udHJvbGxlcigpCkBAIC0xMTAsNiArMTExLDExIEBAIHNpemVfdCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAgICAgcmV0dXJuIDA7CiB9
CiAKK3NpemVfdCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25z
dAoreworICAgIHJldHVybiB3ZWJraXRfd29ya2VyX3RocmVhZF9jb3VudCgpOworfQorCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKIHsKICAgICBpZiAobV93YWl0VG9E
dW1wICYmICF0b3BMb2FkaW5nRnJhbWUgJiYgIVdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkp
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVz
dENvbnRyb2xsZXJNYWMubW0KaW5kZXggYTA5M2RmZC4uYjQ3YjI0NiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50ZXJuYWwu
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJXb3JrZXJzUHJpdmF0ZS5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogCiBAaW50ZXJmYWNlIENvbW1hbmRWYWxpZGF0aW9uVGFyZ2V0IDog
TlNPYmplY3QgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+CkBAIC0xNjMsNiArMTY0LDEx
IEBAIHNpemVfdCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiAg
ICAgcmV0dXJuIFtbW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSBhbGxJdGVtc10g
Y291bnRdOwogfQogCit1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d29ya2VyVGhyZWFk
Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBbV2ViV29ya2Vyc1ByaXZhdGUgd29ya2VyVGhy
ZWFkQ291bnRdOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkK
IHsKICAgICBpZiAobV93YWl0VG9EdW1wICYmICF0b3BMb2FkaW5nRnJhbWUgJiYgIVdvcmtRdWV1
ZTo6c2hhcmVkKCktPmNvdW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBlY2QwODZlLi40
ODUxMmQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTE4Myw2ICsxODMsMTcgQEAgc2l6ZV90
IExheW91dFRlc3RDb250cm9sbGVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkKICAgICByZXR1cm4g
Y291bnQ7CiB9CiAKK3Vuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJUaHJlYWRD
b3VudCgpIGNvbnN0Cit7CisgICAgQ09NUHRyPElXZWJXb3JrZXJzUHJpdmF0ZT4gd29ya2VyczsK
KyAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKENMU0lEX1dlYldvcmtlcnNQcml2
YXRlLCAwLCBfX3V1aWRvZih3b3JrZXJzKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3b3Jr
ZXJzKSkpKQorICAgICAgICByZXR1cm4gMDsKKyAgICB1bnNpZ25lZCBjb3VudDsKKyAgICBpZiAo
RkFJTEVEKHdvcmtlcnMtPndvcmtlclRocmVhZENvdW50KCZjb3VudCkpKQorICAgICAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om5vdGlmeURvbmUoKQogewogICAgIC8vIFNhbWUgYXMgb24gbWFjLiAgVGhpcyBjYW4gYmUgc2hh
cmVkLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVz
dENvbnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCAwODc3ZjI1Li5jZTUxMzlmIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcApAQCAtMjE3LDYgKzIxNywxMiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordW5z
aWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50KCkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBm
bGFnKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34808</attachid>
            <date>2009-08-13 21:51:19 -0700</date>
            <delta_ts>2009-08-17 17:37:47 -0700</delta_ts>
            <desc>patch with fix for gtk type error</desc>
            <filename>x</filename>
            <type>text/plain</type>
            <size>44163</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNmVjN2I2Li5jNTA5MWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDgt
MTMgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIHRvIGV4dGVuZCBEdW1wUmVuZGVy
VHJlZSB0byBleHBvc2UgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisgICAgICAgIEFkZGVkIHNp
bXBsZSBsYXlvdXQgdGVzdHMgdGhhdCB1c2UgdGhlIG5ldyBsYXlvdXRUZXN0Q29udHJvbGxlci53
b3JrZXJUaHJlYWRDb3VudCgpIEFQSQorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNl
cy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qczoKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgImNs
b3NlIiBjb21tYW5kIHRvIG1hdGNoIHdvcmtlci1jb21tb24uanMuCisgICAgICAgICogZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5Y2xlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbC1kaXNh
YmxlZDogQWRkZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1saWZlY3ljbGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLWxpZmVjeWNs
ZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0xMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCBvbmx5IHNraXBwaW5nIHRlc3RzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1v
bi5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1j
b21tb24uanMKaW5kZXggMzIwY2M3Yy4uYzA1Yzc1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzCkBA
IC0xMiw2ICsxMiw4IEBAIGZ1bmN0aW9uIGdjKCkKIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZl
bnQsIHBvcnQpIHsKICAgICBpZiAoZXZlbnQuZGF0YSA9PSAicGluZyIpCiAgICAgICAgIHBvcnQu
cG9zdE1lc3NhZ2UoIlBBU1M6IFJlY2VpdmVkIHBpbmcgbWVzc2FnZSIpOworICAgIGVsc2UgaWYg
KGV2ZW50LmRhdGEgPT0gImNsb3NlIikKKyAgICAgICAgY2xvc2UoKTsKICAgICBlbHNlIGlmIChl
dmVudC5kYXRhID09ICJkb25lIikKICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgiRE9ORSIpOwog
ICAgIGVsc2UgaWYgKC9ldmFsLisvLnRlc3QoZXZlbnQuZGF0YSkpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVjeWNsZS5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLWxpZmVjeWNsZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWM5YTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbGlmZWN5Y2xlLmpz
CkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsK
K30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgd2FpdFVudGlsV29ya2VyVGhyZWFkc0V4aXQocnVuVGVzdHMpOworfSBl
bHNlIHsKKyAgICBsb2coIkZBSUw6IFRlc3QgcmVsaWVzIG9uIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci4gUGxlYXNlIHJ1biB0aGlzIHRlc3QgdmlhIER1bXBSZW5kZXJUcmVlIik7CisgICAg
ZG9uZSgpOworfQorCitmdW5jdGlvbiB3YWl0VW50aWxXb3JrZXJUaHJlYWRzRXhpdChjYWxsYmFj
aykKK3sKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIud29ya2VyVGhyZWFkQ291bnQgPT0g
MCkgeworICAgICAgICAvLyBXb3JrZXIgdGhyZWFkcyBoYXZlIGV4aXRlZC4KKyAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBQb2xsIHVudGlsIHdvcmtlciB0aHJl
YWRzIGhhdmUgZXhpdGVkLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3YWl0VW50
aWxXb3JrZXJUaHJlYWRzRXhpdChjYWxsYmFjayk7IH0sIDEwMCk7CisgICAgfQorfQorCitmdW5j
dGlvbiBydW5UZXN0cygpCit7CisgICAgbG9nKCJQQVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9ICIg
KyBsYXlvdXRUZXN0Q29udHJvbGxlci53b3JrZXJUaHJlYWRDb3VudCk7CisgICAgdmFyIHdvcmtl
ciA9IGNyZWF0ZVdvcmtlcigpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgicGluZyIpOworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBpZiAobGF5b3V0
VGVzdENvbnRyb2xsZXIud29ya2VyVGhyZWFkQ291bnQgPT0gMSkgeworICAgICAgICAgICAgbG9n
KCJQQVNTOiBXb3JrZXIgdGhyZWFkIGNyZWF0ZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGxvZygiRkFJTDogQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiBsYXlvdXRUZXN0Q29udHJv
bGxlci53b3JrZXJUaHJlYWRDb3VudCA9ICIgKyBsYXlvdXRUZXN0Q29udHJvbGxlci53b3JrZXJU
aHJlYWRDb3VudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTaHV0ZG93biB0aGUgd29ya2Vy
LgorICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImNsb3NlIik7CisgICAgICAgIHdhaXRVbnRp
bFdvcmtlclRocmVhZHNFeGl0KHdvcmtlckV4aXRlZCk7CisgICAgfQorfQorCitmdW5jdGlvbiB3
b3JrZXJFeGl0ZWQoKQoreworICAgIGxvZygiUEFTUzogV29ya2VyIGV4aXRlZCB3aGVuIGNsb3Nl
KCkgY2FsbGVkLiIpOworICAgIGRvbmUoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAg
bG9nKCJET05FIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbGlmZWN5Y2xlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjg0YWJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIt
bGlmZWN5Y2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgU2hhcmVkV29ya2Vy
IGxpZmVjeWNsZS4gV2lsbCBwcmludCBQQVNTIG11bHRpcGxlIHRpbWVzLCBmb2xsb3dlZCBieSBE
T05FLgorCitQQVNTOiB3b3JrZXJUaHJlYWRDb3VudCA9IDAKK1BBU1M6IFdvcmtlciB0aHJlYWQg
Y3JlYXRlZAorUEFTUzogV29ya2VyIGV4aXRlZCB3aGVuIGNsb3NlKCkgY2FsbGVkLgorRE9ORQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZl
Y3ljbGUuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29y
a2VyLWxpZmVjeWNsZS5odG1sLWRpc2FibGVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjY2Y2M4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbC1kaXNhYmxlZApAQCAtMCwwICsxLDYgQEAK
Kzxib2R5PgorPHA+VGVzdCBTaGFyZWRXb3JrZXIgbGlmZWN5Y2xlLiBXaWxsIHByaW50IFBBU1Mg
bXVsdGlwbGUgdGltZXMsIGZvbGxvd2VkIGJ5IERPTkUuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1saWZlY3ljbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjYxZTE0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvd29ya2VyLWxpZmVjeWNsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0
IFdvcmtlciBsaWZlY3ljbGUuIFdpbGwgcHJpbnQgUEFTUyBtdWx0aXBsZSB0aW1lcywgZm9sbG93
ZWQgYnkgRE9ORS4KKworUEFTUzogd29ya2VyVGhyZWFkQ291bnQgPSAwCitQQVNTOiBXb3JrZXIg
dGhyZWFkIGNyZWF0ZWQKK1BBU1M6IFdvcmtlciBleGl0ZWQgd2hlbiBjbG9zZSgpIGNhbGxlZC4K
K0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1saWZl
Y3ljbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5ZjNiZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0bWwK
QEAgLTAsMCArMSw2IEBACis8Ym9keT4KKzxwPlRlc3QgV29ya2VyIGxpZmVjeWNsZS4gV2lsbCBw
cmludCBQQVNTIG11bHRpcGxlIHRpbWVzLCBmb2xsb3dlZCBieSBET05FLjwvcD4KKzxkaXYgaWQ9
cmVzdWx0PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItY3JlYXRlLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODIyODhlLi5jMWQ1ZjQ5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDA5LTA4LTEzICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVt
cFJlbmRlclRyZWUgdG8gZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBF
eHBvc2UgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpIGZvciBEdW1wUmVuZGVyVHJl
ZSBzbyB3ZSBjYW4gd3JpdGUgd29ya2VyIGxpZmVjeWNsZSB0ZXN0cy4KKworICAgICAgICBUZXN0
czogZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbGlmZWN5Y2xlLmh0bWwtZGlzYWJsZWQKKyAg
ICAgICAgICAgICAgIGZhc3Qvd29ya2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0bWwKKworICAgICAg
ICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgIEV4cG9ydGVkIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkQ291bnQoKS4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICBBZGRl
ZCB0cmFja2luZyBvZiB0aGUgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzLgorICAgICAgICAoV2Vi
Q29yZTo6dGhyZWFkQ291bnRNdXRleCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29y
a2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6fldvcmtlclRocmVh
ZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAwOS0wOC0xMyAgU3Rl
dmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggMmU3NzNlNi4uMWVmMGMwNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApA
QCAtMjcwLDYgKzI3MCw3IEBAIF9fWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMTFyYW5nZUxlbmd0
aEVQS05TXzVSYW5nZUViCiBfX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI2cmFuZ2VGcm9tTG9j
YXRpb25BbmRMZW5ndGhFUE5TXzdFbGVtZW50RWlpYgogX19aTjdXZWJDb3JlMTJUZXh0SXRlcmF0
b3I3YWR2YW5jZUV2CiBfX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvckMxRVBLTlNfNVJhbmdlRWJi
CitfX1pON1dlYkNvcmUxMldvcmtlclRocmVhZDE3d29ya2VyVGhyZWFkQ291bnRFdgogX19aTjdX
ZWJDb3JlMTJhcHBseUNvbW1hbmRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFFZGl0Q29tbWFuZEVF
RQogX19aTjdXZWJDb3JlMTJjYWNoZVN0b3JhZ2VFdgogX19aTjdXZWJDb3JlMTJjcmVhdGVNYXJr
dXBFUEtOU180Tm9kZUVOU18xM0VDaGlsZHJlbk9ubHlFUE4zV1RGNlZlY3RvcklQUzBfTG0wRUVF
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQzZjYwMGUu
LmNkMGUxYmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01ODIsOSArNTgyLDkgQEAKIAkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1l
c3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAq
LzsgfTsKIAkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDYzRjBG
NTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLzsgfTsKIAkJMkU0MzQ2NTIw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDAwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlclJ1bkxvb3AuY3BwICovOyB9OwotCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCAqLzsgfTsKKwkJ
MkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjQxMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0
MjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmNwcCAqLzsgfTsKLQkJMkU0MzQ2NTUw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
clRocmVhZC5oICovOyB9OworCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhy
ZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQz
NDY0MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJB
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU2MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5jcHAgKi87IH07CiAJCTJFNDM0NjU5MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVh
ZENvcGllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmggKi87IH07CiAJ
CTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZF
NzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzUyYzE3OC4uMjIyNTNiZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKQEAgLTQwLDYgKzQwLDIxIEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIE11dGV4JiB0aHJlYWRDb3VudE11
dGV4KCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoTXV0ZXgmLCBtdXRleCA9
ICpuZXcgTXV0ZXgpOworICAgIHJldHVybiBtdXRleDsKK30KKwordW5zaWduZWQgV29ya2VyVGhy
ZWFkOjptX3RocmVhZENvdW50ID0gMDsKKwordW5zaWduZWQgV29ya2VyVGhyZWFkOjp3b3JrZXJU
aHJlYWRDb3VudCgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkp
OworICAgIHJldHVybiBtX3RocmVhZENvdW50OworfQorCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEgOiBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6YXV0b19w
dHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCkBAIC02
NywxMCArODIsMTUgQEAgV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QKICAgICAsIG1fd29ya2VyUmVw
b3J0aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3N0YXJ0dXBEYXRhKFdv
cmtlclRocmVhZFN0YXJ0dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJj
ZUNvZGUpKQogeworICAgIE11dGV4TG9ja2VyIGxvY2sodGhyZWFkQ291bnRNdXRleCgpKTsKKyAg
ICBtX3RocmVhZENvdW50Kys7CiB9CiAKIFdvcmtlclRocmVhZDo6fldvcmtlclRocmVhZCgpCiB7
CisgICAgTXV0ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkpOworICAgIEFTU0VSVCht
X3RocmVhZENvdW50ID4gMCk7CisgICAgbV90aHJlYWRDb3VudC0tOwogfQogCiBib29sIFdvcmtl
clRocmVhZDo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDVkODYxZTEuLjIyYWIy
ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTU2LDYgKzU2LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHkoKSBj
b25zdCB7IHJldHVybiBtX3dvcmtlckxvYWRlclByb3h5OyB9CiAgICAgICAgIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2Vy
UmVwb3J0aW5nUHJveHk7IH0KIAorICAgICAgICAvLyBOdW1iZXIgb2YgYWN0aXZlIHdvcmtlciB0
aHJlYWRzLgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKKwog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5Jik7CiAKQEAgLTkwLDYgKzkzLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCisKKyAgICAg
ICAgLy8gVHJhY2sgdGhlIG51bWJlciBvZiBXb3JrZXJUaHJlYWQgaW5zdGFuY2VzIGZvciB1c2Ug
aW4gbGF5b3V0IHRlc3RzLgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgbV90aHJlYWRDb3VudDsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvQ2hh
bmdlTG9nIGIvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTA3MjFhLi5hZjIyYTM3IDEwMDY0NAot
LS0gYS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAwOS0wOC0xMyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgdG8gZXh0
ZW5kIER1bXBSZW5kZXJUcmVlIHRvIGV4cG9zZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVk
IFdlYldvcmtlcnNQcml2YXRlIEFQSXMgdG8gbWFjIFdlYktpdCB0byBleHBvc2Ugd29ya2VyVGhy
ZWFkQ291bnQoKSBmb3IgRHVtcFJlbmRlclRyZWUuCisKIDIwMDktMDgtMDYgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBTYW0gV2Vpbmln
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ1YmNkMTUuLjg3
NDkwZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcxLDYg
KzcxLDggQEAKIAkJMjI2RTlFNkEwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVj
YXRlZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjI2RTlFNjgwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1
bmN0aW9ucy5oICovOyB9OwogCQkyMjZFOUU2QjA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2Nh
cGVEZXByZWNhdGVkRnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMjZFOUU2OTA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2NhcGVEZXBy
ZWNhdGVkRnVuY3Rpb25zLmMgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8t
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQkyMkYyMTlDQzA4RDIzNjczMDAzMEUw
NzggLyogV2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJh
Y2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk0MUY0NDg0RjEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1By
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxRjQ0ODUwMTAzMzhFOEMw
MDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjQ0ODRFMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3Jr
ZXJzUHJpdmF0ZS5tbSAqLzsgfTsKIAkJNDQxNzkzQTYwRTM0RUUxNTAwNTVFMUFFIC8qIFdlYkhU
TUxSZXByZXNlbnRhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NDE3OTNBNTBFMzRFRTE1MDA1NUUxQUUgLyogV2ViSFRNTFJlcHJl
c2VudGF0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJNEJGOTlGOTAwQUUwNTBCQzAwODE1QzJCIC8q
IFdlYkVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEJGOTlGOEUwQUUwNTBCQzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTRCRjk5RjkxMEFFMDUwQkMw
MDgxNUMyQiAvKiBXZWJFZGl0b3JDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QkY5OUY4RjBBRTA1MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9y
Q2xpZW50Lm1tICovOyB9OwpAQCAtNDE4LDYgKzQyMCw4IEBACiAJCTM5NDQ2MDdFMDIwRjUwRUQw
RUNBMTc2NyAvKiBXZWJCYWNrRm9yd2FyZExpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3QubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQkzOTQ0NjA3RjAyMEY1MEVEMEVDQTE3NjcgLyogV2ViSGlzdG9yeUl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTM5NDQ2MDgwMDIwRjUwRUQwRUNBMTc2NyAvKiBXZWJIaXN0b3J5SXRlbS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhp
c3RvcnlJdGVtLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKKwkJNDFGNDQ4NEQxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYldvcmtlcnNQcml2YXRl
Lmg7IHBhdGggPSBtYWMvV29ya2Vycy9XZWJXb3JrZXJzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUY0NDg0RTEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1By
aXZhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJXb3Jr
ZXJzUHJpdmF0ZS5tbTsgcGF0aCA9IG1hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE3OTNBNTBFMzRFRTE1MDA1NUUxQUUgLyog
V2ViSFRNTFJlcHJlc2VudGF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkhUTUxSZXByZXNlbnRhdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0OTA5OEI5MEY4RjgyREYwMDc2QTMyNyAvKiBGZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGOTlGOEUwQUUwNTBC
QzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDUsNiArNzA5LDcgQEAKIAkJCQlGNUIzNkI0MDAyODFERTg3MDE4NjM1Q0IgLyogV2ViQ29y
ZVN1cHBvcnQgKi8sCiAJCQkJOUM3Q0FCQkIwMTkwQTM3QzBFQ0ExNkVBIC8qIFdlYlZpZXcgKi8s
CiAJCQkJMUM2OEY2M0YwOTVCNUY5QzAwQzI5ODRFIC8qIFdlYkluc3BlY3RvciAqLywKKwkJCQk0
MUY0NDg0QzEwMzM4RTU3MDAzMEU1NUUgLyogV29ya2VycyAqLywKIAkJCQlGN0VCRUU1OTAzRjlE
QjIyMDNDQTBERTYgLyogQ2FyYm9uICovLAogCQkJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAv
KiBSZXNvdXJjZXMgKi8sCiAJCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29y
a3MgYW5kIExpYnJhcmllcyAqLywKQEAgLTkyOSw2ICs5MzQsMTUgQEAKIAkJCXRhYldpZHRoID0g
NDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJNDFGNDQ4NEMxMDMzOEU1NzAwMzBFNTVFIC8q
IFdvcmtlcnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTQxRjQ0ODREMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5oICovLAorCQkJ
CTQxRjQ0ODRFMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0ZS5tbSAqLywKKwkJ
CSk7CisJCQluYW1lID0gV29ya2VyczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTUxMUYzRkMzMENFQ0M3RTIwMDg1MjU2NSAvKiBTdG9yYWdlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE0MzcsNiArMTQ1MSw3IEBACiAJCQkJOTM5
ODEwNDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5Mzk4MTA5QjA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5Mzk4MTA3MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3Jr
ZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzY5LDYgKzE3ODQsNyBAQAogCQkJCTkz
OTgxMTA3MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZpZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTM5ODEwRTgwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDFGNDQ4NTAxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2
YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGExMTc4MmQuLjM3NTYxZDMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMDktMDgtMTMgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIHRv
IGV4dGVuZCBEdW1wUmVuZGVyVHJlZSB0byBleHBvc2UgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5Mgor
CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d29ya2Vycy5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X3dvcmtlcl90aHJlYWRfY291
bnQpOgorICAgICAgICBFeHBvc2VkIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFk
Q291bnQoKSBmb3IgdGhlIGd0ayB2ZXJzaW9uIG9mIER1bXBSZW5kZXJUcmVlLgorCiAyMDA5LTA4
LTEzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4
IDBjM2ZiZDMuLmRlODEyMjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTI1MCw2
ICsyNTAsOSBAQCBleHRlcm4gIkMiIHsKIAogICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtp
dF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplKTsKKworICAgIFdFQktJVF9BUEkgdW5zaWduZWQgaW50CisgICAgd2Via2l0X3dvcmtlcl90
aHJlYWRfY291bnQoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3b3JrZXJzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdvcmtlcnMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NTg2M2MKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3b3JrZXJzLmNwcApAQCAtMCwwICsxLDQ1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKworI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgorCit1bnNpZ25lZCBpbnQgd2Via2l0X3dvcmtlcl90aHJl
YWRfY291bnQodm9pZCkKK3sKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAgICByZXR1cm4gV2ViQ29y
ZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCisKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMGQ5YjlhNi4uNmFlNzE4MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAwOS0wOC0xMyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgdG8gZXh0
ZW5kIER1bXBSZW5kZXJUcmVlIHRvIGV4cG9zZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI5MgorCisg
ICAgICAgICogV2ViS2l0LmV4cDoKKyAgICAgICAgRXhwb3J0ZWQgV2ViV29ya2Vyc1ByaXZhdGUg
c28gRHVtcFJlbmRlclRyZWUgY2FuIGFjY2VzcyBpdC4KKyAgICAgICAgKiBXb3JrZXJzL1dlYldv
cmtlcnNQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdvcmtlcnMvV2ViV29ya2Vyc1ByaXZh
dGUubW06IEFkZGVkLgorICAgICAgICAoK1tXZWJXb3JrZXJzUHJpdmF0ZSB3b3JrZXJUaHJlYWRD
b3VudF0pOgorICAgICAgICBBZGRlZCBXZWJXb3JrZXJzUHJpdmF0ZTo6d29ya2VyVGhyZWFkQ291
bnQoKSBBUEkgZm9yIER1bXBSZW5kZXJUcmVlLgorCiAyMDA5LTA4LTEzICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbTogVXBkYXRlZCBpbmNsdWRlcy4KZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViS2l0LmV4cCBiL1dlYktpdC9tYWMvV2ViS2l0LmV4cAppbmRleCBmMzJkMWE4Li5j
NzZlY2Y1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYktpdC5leHAKKysrIGIvV2ViS2l0L21h
Yy9XZWJLaXQuZXhwCkBAIC0zMiw2ICszMiw3IEBACiAub2JqY19jbGFzc19uYW1lX1dlYlRleHRJ
dGVyYXRvcgogLm9iamNfY2xhc3NfbmFtZV9XZWJVUkxzV2l0aFRpdGxlcwogLm9iamNfY2xhc3Nf
bmFtZV9XZWJWaWV3Cisub2JqY19jbGFzc19uYW1lX1dlYldvcmtlcnNQcml2YXRlCiBfSElXZWJW
aWV3Q3JlYXRlCiBfSElXZWJWaWV3R2V0V2ViVmlldwogX1dlYkFjdGlvbkJ1dHRvbktleQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9Xb3JrZXJzL1dlYldvcmtlcnNQcml2YXRlLmggYi9XZWJLaXQv
bWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wZmY2MGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L21hYy9Xb3JrZXJz
L1dlYldvcmtlcnNQcml2YXRlLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK0BpbnRlcmZhY2UgV2ViV29ya2Vy
c1ByaXZhdGUgOiBOU09iamVjdCB7Cit9CisKKy8vIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBv
ZiBjdXJyZW50bHkgZXhlY3V0aW5nIHdvcmtlciB0aHJlYWRzIChzaGFyZWQgKyBkZWRpY2F0ZWQp
LgorKyAodW5zaWduZWQpIHdvcmtlclRocmVhZENvdW50OworCitAZW5kCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dvcmtlcnMvV2ViV29ya2Vyc1ByaXZhdGUubW0gYi9XZWJLaXQvbWFjL1dvcmtl
cnMvV2ViV29ya2Vyc1ByaXZhdGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmMxNGFkMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV29ya2Vycy9XZWJXb3Jr
ZXJzUHJpdmF0ZS5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2ViV29ya2Vyc1ByaXZhdGUu
aCIKKworI2ltcG9ydCA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KKworQGltcGxlbWVudGF0aW9u
IFdlYldvcmtlcnNQcml2YXRlCisKKysgKHVuc2lnbmVkKSB3b3JrZXJUaHJlYWRDb3VudAorewor
I2lmIEVOQUJMRV9XT1JLRVJTCisgICAgcmV0dXJuIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkQ291bnQoKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworQGVu
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCA3OTNiNGJkLi4zMjM1NjM5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDA5LTA4LTEz
ICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVtcFJlbmRlclRy
ZWUgdG8gZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBEZWZpbmVkL2lt
cGxlbWVudGVkIENPTSBpbnRlcmZhY2VzIHRvIGV4cG9zZSBXb3JrZXJUaHJlYWQ6OndvcmtlclRo
cmVhZENvdW50KCkgZm9yIER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICogRm9yRWFjaENvQ2xh
c3MuaDoKKyAgICAgICAgQWRkZWQgV2ViV29ya2Vyc1ByaXZhdGUuCisgICAgICAgICogSW50ZXJm
YWNlcy9JV2ViV29ya2Vyc1ByaXZhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBJbnRlcmZhY2Vz
L1dlYktpdC5pZGw6CisgICAgICAgIEFkZGVkIFdlYldvcmtlcnNQcml2YXRlLgorICAgICAgICAq
IFdlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2o6CisgICAgICAgICogV2ViS2l0LnZjcHJv
ai9XZWJLaXQudmNwcm9qOgorICAgICAgICAqIFdlYldvcmtlcnNQcml2YXRlLmNwcDogQWRkZWQu
CisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIHRoZSBJV2ViV29ya2Vyc1ByaXZhdGUgQ09NIGlu
dGVyZmFjZSwgdG8gZXhwb3NlIHdvcmtlclRocmVhZENvdW50KCkgZm9yIER1bXBSZW5kZXJUcmVl
LgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAg
KFdlYldvcmtlcnNQcml2YXRlOjpBZGRSZWYpOgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6
OlJlbGVhc2UpOgorICAgICAgICAoV2ViV29ya2Vyc1ByaXZhdGU6OndvcmtlclRocmVhZENvdW50
KToKKyAgICAgICAgKFdlYldvcmtlcnNQcml2YXRlOjpjcmVhdGVJbnN0YW5jZSk6CisgICAgICAg
IChXZWJXb3JrZXJzUHJpdmF0ZTo6V2ViV29ya2Vyc1ByaXZhdGUpOgorICAgICAgICAoV2ViV29y
a2Vyc1ByaXZhdGU6On5XZWJXb3JrZXJzUHJpdmF0ZSk6CisgICAgICAgICogV2ViV29ya2Vyc1By
aXZhdGUuaDogQWRkZWQuCisKIDIwMDktMDgtMTIgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3Rl
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL0ZvckVhY2hDb0NsYXNzLmggYi9XZWJLaXQvd2luL0ZvckVhY2hDb0Ns
YXNzLmgKaW5kZXggMDVhODFmZi4uMjZmNGE2YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9Gb3JF
YWNoQ29DbGFzcy5oCisrKyBiL1dlYktpdC93aW4vRm9yRWFjaENvQ2xhc3MuaApAQCAtNjIsNiAr
NjIsNyBAQAogICAgIG1hY3JvKFdlYkFyY2hpdmUpIFwKICAgICBtYWNybyhXZWJDb3JlU3RhdGlz
dGljcykgXAogICAgIG1hY3JvKFdlYkNvb2tpZU1hbmFnZXIpIFwKKyAgICBtYWNybyhXZWJXb3Jr
ZXJzUHJpdmF0ZSkgXAogICAgIC8vIGVuZCBvZiBtYWNybwogCiAvLyBFdmVyeXRoaW5nIGJlbG93
IHRoaXMgcG9pbnQgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIGRvIG5vdCB1c2UuCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYldvcmtlcnNQcml2YXRlLmlkbCBiL1dlYktpdC93
aW4vSW50ZXJmYWNlcy9JV2ViV29ya2Vyc1ByaXZhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk5MGI4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYldvcmtlcnNQcml2YXRlLmlkbApAQCAtMCwwICsxLDUyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
T19OT19JTVBPUlRTCitpbXBvcnQgIm9haWRsLmlkbCI7CitpbXBvcnQgIm9jaWRsLmlkbCI7Cisj
ZW5kaWYKKworLyohCisgICAgQGNsYXNzIFdlYldvcmtlcnNQcml2YXRlCisgICAgQGRpc2N1c3Np
b24gV2ViV29ya2Vyc1ByaXZhdGUgZXhwb3NlcyBpbnRlcm5hbHMgYWJvdXQgV2ViV29ya2VycyBm
b3IgdXNlIGluCisgICAgbGF5b3V0IHRlc3RzLgorKi8KK1sKKyAgICBvYmplY3QsCisgICAgb2xl
YXV0b21hdGlvbiwKKyAgICBoaWRkZW4sCisgICAgdXVpZCg1MzcwNjlDNS0zODlDLTQxYWUtOUE4
Mi00MjNBQ0E4QjJDMDIpLAorICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpCitdCisKK2ludGVy
ZmFjZSBJV2ViV29ya2Vyc1ByaXZhdGUgOiBJVW5rbm93bgoreworICAgIEhSRVNVTFQgd29ya2Vy
VGhyZWFkQ291bnQoW291dCwgcmV0dmFsXSBVSU5UKiBudW1iZXIpOworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMv
V2ViS2l0LmlkbAppbmRleCA0YTQ2OTYxLi4yOWQwOGQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L0ludGVyZmFjZXMvV2ViS2l0LmlkbAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvV2ViS2l0
LmlkbApAQCAtMTIzLDYgKzEyMyw3IEBAIGltcG9ydCAib2NpZGwuaWRsIjsKICNpbmNsdWRlICJJ
V2ViVW5kb1RhcmdldC5pZGwiCiAjaW5jbHVkZSAiSVdlYlZpZXcuaWRsIgogI2luY2x1ZGUgIklX
ZWJWaWV3UHJpdmF0ZS5pZGwiCisjaW5jbHVkZSAiSVdlYldvcmtlcnNQcml2YXRlLmlkbCIKIAog
I2luY2x1ZGUgIklHRU5fRE9NT2JqZWN0LmlkbCIKICNpbmNsdWRlICJJR0VOX0RPTUNoYXJhY3Rl
ckRhdGEuaWRsIgpAQCAtMzU5LDYgKzM2MCwxMSBAQCBsaWJyYXJ5IFdlYktpdAogICAgIGNvY2xh
c3MgV2ViQ29va2llTWFuYWdlcnsKICAgICAgICAgW2RlZmF1bHRdIGludGVyZmFjZSBJV2ViQ29v
a2llTWFuYWdlcjsKICAgICB9CisKKyAgICBbdXVpZCgwOTY3QUFGRi0yRkZFLTRmY2MtODFGMy0z
RkYyQTlDNkRDRTIpXQorICAgIGNvY2xhc3MgV2ViV29ya2Vyc1ByaXZhdGV7CisgICAgICAgIFtk
ZWZhdWx0XSBpbnRlcmZhY2UgSVdlYldvcmtlcnNQcml2YXRlOworICAgIH0KIH0KIAogCmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2ogYi9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2oKaW5kZXggM2IyM2U3ZC4uMzIy
MjcwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0ludGVyZmFjZXMudmNw
cm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9JbnRlcmZhY2VzLnZjcHJvagpAQCAt
MTQ4NCw2ICsxNDg0LDI2IEBACiAJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJPC9GaWxlPg0K
IAkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcSVdlYldvcmtlcnNQcml2
YXRlLmlkbCINCisJCQk+DQorCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIg0KKwkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJPg0KKwkJCQk8VG9v
bA0KKwkJCQkJTmFtZT0iVkNNSURMVG9vbCINCisJCQkJLz4NCisJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJPg0KKwkJCQk8VG9vbA0KKwkJCQkJ
TmFtZT0iVkNNSURMVG9vbCINCisJCQkJLz4NCisJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
PC9GaWxlPg0KKwkJPEZpbGUNCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcV2ViS2l0
LmlkbCINCiAJCQk+DQogCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3By
b2ovV2ViS2l0LnZjcHJvagppbmRleCBhM2JhNmVlLi44N2FhNTBiIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0LnZjcHJvagpAQCAtNzQzLDYgKzc0MywxMCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJXb3JrZXJzUHJpdmF0
ZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2luZG93c1RvdWNoLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMTA5NCw2ICsxMDk4
LDEwIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJWaWV3LmNwcCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYldvcmtlcnNQcml2YXRl
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KIAkJ
CU5hbWU9IlJlc291cmNlcyINCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYldvcmtlcnNQcml2
YXRlLmNwcCBiL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NWMyN2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
d2luL1dlYldvcmtlcnNQcml2YXRlLmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJLaXRETEwuaCIKKyNpbmNsdWRlICJXZWJXb3JrZXJzUHJpdmF0
ZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KKworLy8gSVVua25vd24g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYldvcmtlcnNQcml2YXRl
OjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICAq
cHB2T2JqZWN0ID0gMDsKKyAgICBpZiAoSXNFcXVhbEdVSUQocmlpZCwgX191dWlkb2YoSVdlYldv
cmtlcnNQcml2YXRlKSkpCisgICAgICAgICpwcHZPYmplY3QgPSB0aGlzOworICAgIGVsc2UgaWYg
KElzRXF1YWxHVUlEKHJpaWQsIElJRF9JVW5rbm93bikpCisgICAgICAgICpwcHZPYmplY3QgPSBz
dGF0aWNfY2FzdDxJV2ViV29ya2Vyc1ByaXZhdGUqPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0Vx
dWFsR1VJRChyaWlkLCBJSURfSVdlYldvcmtlcnNQcml2YXRlKSkKKyAgICAgICAgKnBwdk9iamVj
dCA9IHN0YXRpY19jYXN0PElXZWJXb3JrZXJzUHJpdmF0ZSo+KHRoaXMpOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7CisKKyAgICBBZGRSZWYoKTsKKyAgICByZXR1cm4g
U19PSzsKK30KKworVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgV2ViV29ya2Vyc1ByaXZhdGU6OkFk
ZFJlZih2b2lkKQoreworICAgIHJldHVybiArK21fcmVmQ291bnQ7Cit9CisKK1VMT05HIFNURE1F
VEhPRENBTExUWVBFIFdlYldvcmtlcnNQcml2YXRlOjpSZWxlYXNlKHZvaWQpCit7CisgICAgVUxP
TkcgbmV3UmVmID0gLS1tX3JlZkNvdW50OworICAgIGlmICghbmV3UmVmKQorICAgICAgICBkZWxl
dGUodGhpcyk7CisKKyAgICByZXR1cm4gbmV3UmVmOworfQorCisvLyBJV2ViV29ya2Vyc1ByaXZh
dGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK0hSRVNVTFQgV2ViV29ya2Vyc1ByaXZhdGU6OndvcmtlclRocmVhZENvdW50KFVJTlQq
IG51bWJlcikKK3sKKyAgICBpZiAoIW51bWJlcikKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KworI2lmIEVOQUJMRShXT1JLRVJTKQorICAgICpudW1iZXIgPSBXZWJDb3JlOjpXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZENvdW50KCk7CisjZWxzZQorICAgICpudW1iZXIgPSAwOworI2VuZGlm
CisgICAgcmV0dXJuIFNfT0s7Cit9CisKKy8vIFdlYldvcmtlcnNQcml2YXRlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2ViV29y
a2Vyc1ByaXZhdGUqIFdlYldvcmtlcnNQcml2YXRlOjpjcmVhdGVJbnN0YW5jZSgpCit7CisgICAg
V2ViV29ya2Vyc1ByaXZhdGUqIGluc3RhbmNlID0gbmV3IFdlYldvcmtlcnNQcml2YXRlKCk7Cisg
ICAgaW5zdGFuY2UtPkFkZFJlZigpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworV2ViV29y
a2Vyc1ByaXZhdGU6OldlYldvcmtlcnNQcml2YXRlKCkKKyAgICA6IG1fcmVmQ291bnQoMCkKK3sK
KyAgICBnQ2xhc3NDb3VudCsrOworICAgIGdDbGFzc05hbWVDb3VudC5hZGQoIldlYldvcmtlcnNQ
cml2YXRlIik7Cit9CisKK1dlYldvcmtlcnNQcml2YXRlOjp+V2ViV29ya2Vyc1ByaXZhdGUoKQor
eworICAgIGdDbGFzc0NvdW50LS07CisgICAgZ0NsYXNzTmFtZUNvdW50LnJlbW92ZSgiV2ViV29y
a2Vyc1ByaXZhdGUiKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZh
dGUuaCBiL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yMzFjMTFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9X
ZWJXb3JrZXJzUHJpdmF0ZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYldvcmtlcnNQcml2
YXRlX2gKKyNkZWZpbmUgV2ViV29ya2Vyc1ByaXZhdGVfaAorCisjaW5jbHVkZSAiV2ViS2l0Lmgi
CisKK2NsYXNzIFdlYldvcmtlcnNQcml2YXRlIDogcHVibGljIElXZWJXb3JrZXJzUHJpdmF0ZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFdlYldvcmtlcnNQcml2YXRlKiBjcmVhdGVJbnN0YW5jZSgp
OworcHJpdmF0ZToKKyAgICBXZWJXb3JrZXJzUHJpdmF0ZSgpOworICAgIH5XZWJXb3JrZXJzUHJp
dmF0ZSgpOworCitwdWJsaWM6CisgICAgLy8gSVVua25vd24KKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZP
YmplY3QpOworICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQp
OworICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKTsKKwor
ICAgIC8vIElXZWJXb3JrZXJzUHJpdmF0ZQorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSB3b3JrZXJUaHJlYWRDb3VudChVSU5UKik7CisKK3ByaXZhdGU6CisgICAgVUxPTkcg
bV9yZWZDb3VudDsKK307CisKKyNlbmRpZiAvLyBXZWJXb3JrZXJzUHJpdmF0ZV9oCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXgg
Y2YwMjNkMS4uZTA4NTVkNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDA5LTA4LTEzICBEcmV3
IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCB0byBleHRlbmQgRHVtcFJlbmRlclRyZWUgdG8g
ZXhwb3NlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyOTIKKworICAgICAgICBBZGRlZCBsYXlvdXRUZXN0
Q29udHJvbGxlci53b3JrZXJUaHJlYWRDb3VudCwgYW5kIGltcGxlbWVudGF0aW9ucyBvbiB2YXJp
b3VzIHBsYXRmb3JtcyB0aGF0IGNhbGwgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChnZXRXb3JrZXJUaHJl
YWRDb3VudENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNW
YWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJUaHJlYWRDb3VudCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJUaHJlYWRDb3VudCk6CisKIDIwMDktMDgtMTMg
IEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5vIHJldmlldywgY29y
cmVjdGluZyBvYnZpb3VzIHB5dGhvbiBlcnJvciBzZWVuIGluIHRoZSBjb21taXQgcXVldWUuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggZjg2NDBmYS4uMmIwNzBhZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtODg4LDYgKzg4OCwxMiBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBjb250cm9sbGVyLT53ZWJIaXN0b3J5SXRlbUNvdW50KCkpOwogfQogCitzdGF0aWMgSlNW
YWx1ZVJlZiBnZXRXb3JrZXJUaHJlYWRDb3VudENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29u
dHJvbGxlci0+d29ya2VyVGhyZWFkQ291bnQoKSk7Cit9CisKIHN0YXRpYyBib29sIHNldEdsb2Jh
bEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBz
dGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7CkBAIC05MzQsNiArOTQwLDcgQEAgSlNTdGF0aWNWYWx1ZSogTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY1ZhbHVlcygpCiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGlj
VmFsdWVzW10gPSB7CiAgICAgICAgIHsgImdsb2JhbEZsYWciLCBnZXRHbG9iYWxGbGFnQ2FsbGJh
Y2ssIHNldEdsb2JhbEZsYWdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCiAg
ICAgICAgIHsgIndlYkhpc3RvcnlJdGVtQ291bnQiLCBnZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2Fs
bGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAid29ya2VyVGhyZWFkQ291bnQiLCBnZXRXb3Jr
ZXJUaHJlYWRDb3VudENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCwgMCB9
CiAgICAgfTsKICAgICByZXR1cm4gc3RhdGljVmFsdWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOGFlYmVkNC4uYzdiNDhl
OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oSlNTdHJpbmdSZWYgcGF0aCk7CiAgICAgdm9pZCB3YWl0Rm9yUG9saWN5RGVs
ZWdhdGUoKTsKICAgICBzaXplX3Qgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOworICAgIHVuc2lnbmVk
IHdvcmtlclRocmVhZENvdW50KCkgY29uc3Q7CiAgICAgaW50IHdpbmRvd0NvdW50KCk7CiAgICAg
CiAgICAgdm9pZCBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVm
IG9yaWdpbik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBmMDNjYzgwLi5lMDkzNGE0IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgYm9vbCB3ZWJraXRfd2ViX2ZyYW1l
X3BhdXNlX2FuaW1hdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBuYW1l
LAogYm9vbCB3ZWJraXRfd2ViX2ZyYW1lX3BhdXNlX3RyYW5zaXRpb24oV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogbmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IGdjaGFyKiBlbGVt
ZW50KTsKIHVuc2lnbmVkIGludCB3ZWJraXRfd2ViX2ZyYW1lX251bWJlcl9vZl9hY3RpdmVfYW5p
bWF0aW9ucyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogdm9pZCB3ZWJraXRfYXBwbGljYXRpb25f
Y2FjaGVfc2V0X21heGltdW1fc2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7Cit1bnNpZ25l
ZCBpbnQgd2Via2l0X3dvcmtlcl90aHJlYWRfY291bnQodm9pZCk7CiB9CiAKIExheW91dFRlc3RD
b250cm9sbGVyOjp+TGF5b3V0VGVzdENvbnRyb2xsZXIoKQpAQCAtMTEwLDYgKzExMSwxMSBAQCBz
aXplX3QgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJl
dHVybiAwOwogfQogCit1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d29ya2VyVGhyZWFk
Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiB3ZWJraXRfd29ya2VyX3RocmVhZF9jb3VudCgp
OworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKIHsKICAgICBp
ZiAobV93YWl0VG9EdW1wICYmICF0b3BMb2FkaW5nRnJhbWUgJiYgIVdvcmtRdWV1ZTo6c2hhcmVk
KCktPmNvdW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggYTA5M2RmZC4uYjQ3YjI0NiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlR5
cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJXb3JrZXJzUHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW50ZXJmYWNlIENvbW1hbmRWYWxpZGF0
aW9uVGFyZ2V0IDogTlNPYmplY3QgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+CkBAIC0x
NjMsNiArMTY0LDExIEBAIHNpemVfdCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2ViSGlzdG9yeUl0
ZW1Db3VudCgpCiAgICAgcmV0dXJuIFtbW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5
XSBhbGxJdGVtc10gY291bnRdOwogfQogCit1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBbV2ViV29ya2Vyc1ByaXZh
dGUgd29ya2VyVGhyZWFkQ291bnRdOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpu
b3RpZnlEb25lKCkKIHsKICAgICBpZiAobV93YWl0VG9EdW1wICYmICF0b3BMb2FkaW5nRnJhbWUg
JiYgIVdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRl
eCBlY2QwODZlLi40ODUxMmQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTE4Myw2ICsxODMs
MTcgQEAgc2l6ZV90IExheW91dFRlc3RDb250cm9sbGVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkK
ICAgICByZXR1cm4gY291bnQ7CiB9CiAKK3Vuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjp3
b3JrZXJUaHJlYWRDb3VudCgpIGNvbnN0Cit7CisgICAgQ09NUHRyPElXZWJXb3JrZXJzUHJpdmF0
ZT4gd29ya2VyczsKKyAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKENMU0lEX1dl
YldvcmtlcnNQcml2YXRlLCAwLCBfX3V1aWRvZih3b3JrZXJzKSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKio+KCZ3b3JrZXJzKSkpKQorICAgICAgICByZXR1cm4gMDsKKyAgICB1bnNpZ25lZCBjb3Vu
dDsKKyAgICBpZiAoRkFJTEVEKHdvcmtlcnMtPndvcmtlclRocmVhZENvdW50KCZjb3VudCkpKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQogewogICAgIC8vIFNhbWUgYXMgb24gbWFjLiAgVGhp
cyBjYW4gYmUgc2hhcmVkLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCAwODc3ZjI1Li5jZTUxMzlmIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0
Q29udHJvbGxlcld4LmNwcApAQCAtMjE3LDYgKzIxNywxMiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAordW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndvcmtlclRocmVhZENvdW50
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCBmbGFnKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
</data>
<flag name="review"
          id="19012"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="19013"
          type_id="3"
          status="-"
          setter="atwilson"
    />
          </attachment>
      

    </bug>

</bugzilla>