<?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>138442</bug_id>
          
          <creation_ts>2014-11-05 14:58:32 -0800</creation_ts>
          <short_desc>Remove the unused deletion UI feature</short_desc>
          <delta_ts>2014-11-05 17:38:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42535</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1046612</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-11-05 14:58:32 -0800</bug_when>
    <thetext>DELETION_UI is a Mac-only feature in Legacy WebKit exposed only via SPI (a private WebViewEditingDelegate method) that no one is using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046633</commentid>
    <comment_count>1</comment_count>
      <attachid>241064</attachid>
    <who name="">mitz</who>
    <bug_when>2014-11-05 15:33:10 -0800</bug_when>
    <thetext>Created attachment 241064
Remove the feature and its tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046647</commentid>
    <comment_count>2</comment_count>
      <attachid>241064</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-05 16:05:44 -0800</bug_when>
    <thetext>Comment on attachment 241064
Remove the feature and its tests

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046648</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-11-05 16:09:55 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r175647&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046669</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-05 17:38:21 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed &lt;http://trac.webkit.org/r175647&gt;.

I fix EFL build error since r175647.

http://trac.webkit.org/changeset/175652</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241064</attachid>
            <date>2014-11-05 15:33:10 -0800</date>
            <delta_ts>2014-11-05 16:05:44 -0800</delta_ts>
            <desc>Remove the feature and its tests</desc>
            <filename>bug-138442-20141105153320.patch</filename>
            <type>text/plain</type>
            <size>104185</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNzU2NDQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTExLTA1ICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQgZGVsZXRpb24gVUkgZmVh
dHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4
NDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvRmVhdHVyZURlZmluZXMuaDogUmVtb3ZlZCBkZWZpbml0aW9uIG9mIEVOQUJMRV9ERUxFVElP
Tl9VSS4KKwogMjAxNC0xMS0wMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgZmVhdHVyZSBndWFyZC4KSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDEwICsxNzUsNiBAQCB0aGUg
cHVibGljIGlPUyBTREsuIFdlIHdpbGwgYWxzbyBuZWVkIHRvCiAjZGVmaW5lIEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERUxFVElPTl9V
SSkKLSNkZWZpbmUgRU5BQkxFX0RFTEVUSU9OX1VJIDEKLSNlbmRpZgotCiAjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAjaWYgIWRlZmluZWQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkKICNkZWZpbmUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSAxCkBAIC0zODksMTAg
KzM4NSw2IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gV2Ugd2lsbCBhbHNvIG5lZWQgdG8KICNkZWZp
bmUgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfREVMRVRJT05fVUkpCi0jZGVmaW5lIEVOQUJMRV9ERUxFVElPTl9VSSAwCi0jZW5kaWYK
LQogI2lmICFkZWZpbmVkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpCiAjZGVmaW5lIEVOQUJMRV9E
RVRBSUxTX0VMRU1FTlQgMQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzU2NDQp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3
MyBAQAorMjAxNC0xMS0wNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB0aGUgdW51c2VkIGRlbGV0aW9uIFVJIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQ0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL2RlbGV0ZUJ1dHRv
bi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL2RlbGV0ZUJ1dHRvbkAyeC5wbmc6
IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL2RlbGV0ZUJ1dHRvblByZXNzZWQucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9kZWxldGVCdXR0b25QcmVzc2VkQDJ4LnBuZzog
UmVtb3ZlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
UmVtb3ZlZCByZWZlcmVuY2VzIHRvIHJlbW92ZWQgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ29u
dGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpjbG9uZUNo
aWxkTm9kZXMpOiBGb2xkZWQgdGhlIGJlbG93IGhlbHBlciBmdW5jdGlvbiBpbnRvIHRoaXMgbWVt
YmVyCisgICAgICAgIGZ1bmN0aW9uLCBhZnRlciByZW1vdmluZyB0aGUgZGVsZXRlQnV0dG9uQ29u
dGFpbmVyRWxlbWVudCBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpjbG9uZUNoaWxkTm9k
ZXNBdm9pZGluZ0RlbGV0ZUJ1dHRvbik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29t
cG9zaXRpb246OnVuYXBwbHkpOiBSZW1vdmVkIHVzZSBvZgorICAgICAgICBEZWxldGVCdXR0b25D
b250cm9sbGVyRGlzYWJsZVNjb3BlLgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmRDb21w
b3NpdGlvbjo6cmVhcHBseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OmFwcGx5KTogRGl0dG8uCisKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUJ1dHRv
bi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy9EZWxldGVCdXR0b24uaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oOiBSZW1vdmVkLgor
CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQpOiBSZW1vdmVkIHVzZSBvZgorICAgICAgICBFZGl0b3I6
OmF2b2lkSW50ZXJzZWN0aW9uV2l0aERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuCisKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6
IFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgbV9kZWxldGVCdXR0b25Db250cm9sbGVyLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyYW5nZUZvclBvaW50KTogUmVtb3ZlZCB1c2Ugb2YgYXZv
aWRJbnRlcnNlY3Rpb25XaXRoRGVsZXRlQnV0dG9uQ29udHJvbGxlci4KKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6ZWRpdG9yVUlVcGRhdGVUaW1lckZpcmVkKTogUmVtb3ZlZCBjYWxsIHRvIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXIgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmF2b2lkSW50ZXJzZWN0aW9uV2l0aERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQpOiBEZWxl
dGVkLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6ZGVsZXRlQnV0dG9uQ29udHJvbGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmF2b2lkSW50ZXJzZWN0aW9uV2l0aERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIpOiBE
ZWxldGVkLgorCisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXMpOiBSZW1vdmVk
IG5vZGVUb1NraXAgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0
b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOiBEaXR0by4KKworICAgICAgICAqIGVk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaDoKKworICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcmt1cEludGVybmFsKTogUmVtb3ZlZCB1cGRh
dGVSYW5nZSBwYXJhbWV0ZXIsIHdoaWNoIGhhZCBiZWNvbWUgaWRlbnRpY2FsCisgICAgICAgIHRv
IHRoZSByYW5nZSBwYXJhbWV0ZXIsIGFuZCBjaGFuZ2VkIHRvIHVzZSB0aGUgbGF0dGVyIGV2ZXJ5
d2hlcmUgaW5zdGVhZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcmt1cCk6IERvbuKAmXQg
Y29tcHV0ZSBhbmQgcGFzcyBzZXBhcmF0ZSB1cGRhdGVSYW5hZ2UgcGFyYW1ldGVyLgorCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOiBSZW1vdmVkIHNob3VsZFNob3dEZWxldGVJbnRl
cmZhY2Ugb3ZlcnJpZGUuCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDogUmVtb3ZlZCBz
aG91bGRTaG93RGVsZXRlSW50ZXJmYWNlLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKTogUmVtb3ZlZCBjYWxs
IHRvIEVkaXRvcjo6ZGV2aWNlU2NhbGVGYWN0b3JDaGFuZ2VkLgorCisgICAgICAgICogcGFnZS9Q
YWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2Vy
aWFsaXplRnJhbWUpOiBVcGRhdGVkIGZvciBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9k
ZXMgY2hhbmdlLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpmaW5kRWRpdGluZ0RlbGV0ZUJ1dHRvbik6IERlbGV0ZWQuCisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5pZGw6CisKIDIwMTQtMTEtMDQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIERlc2NlbmRhbnQgZW5kcyB1cCBpbiB3cm9uZyBmbG93IHRocmVhZCB3aXRoIG5lc3Rl
ZCBjb2x1bW5zIGFuZCBzcGFucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9kZWxl
dGVCdXR0b24ucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9kZWxl
dGVCdXR0b24ucG5nCShyZXZpc2lvbiAxNzU2MjQpCisrKyBTb3VyY2UvV2ViQ29yZS9SZXNvdXJj
ZXMvZGVsZXRlQnV0dG9uLnBuZwkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi2JUE5H
DQotGgotAAAADUlIRFIAAAAeAAAAHggGAAAAOzCuogAAAYdpQ0NQaWNjAAB42pWRMUscURSFvzcE
LSIbg1OpxUsnuiuLEkiRRqdYJCmWRWV3u9mZybowzj7ePE0sbG0U1HSBEJJ/YGMICKJ1tBK3tEmT
UgS1SGAsnrKNIh648N3T3HvuBefIVyp2gMXE6EppWlZrddnboZchAPCDVE2Vy+95UFcdBMBJwVcq
5mnq09VaHYQLuE3LI4DbsPwWcD8aZUCUATdY8EMQIZDXsxUPxBaQa1r+DuQalneA3HLQNCAOgGIS
thIQ58CbMEoDcEYAEyhtwPkKLRSqtbq0q82OQeEZOAddb20TDvdhcLLrDQ/Dy1X4Odr1Ln4jAJF8
ST9MTgAghgbgeSfL/v6AF5/h/2GWXV9m2b9T6NmF7Y1gSS/f3kWIY3ist9lsb38Adu79bPMDUIRv
f2D+FczPwXoKLfIX9J9B6QTe7SGOxV3ZWwEw6Plxq6F9E4WyUpqWXjtu61T5QfTExz8mE30yAF5b
rehWc8HIKaXiSHrtRbVkIp2XM0kwnpcTxeJrgBsQ0nU0P+FvrgAAAAZiS0dEAP8A/wD/oL2nkwAA
AAlwSFlzAAALEgAACxIB0t1+/AAABsNJREFUSMeVV11MVNsV/mbOOQNzmJnDMPx4h7kOoDBDA9Oi
0pLgnZqYoBGt3pKJsdWWGwymhr6Z+qJpSOuLRmNCwJDUYN8aYzWG+kATLZioqZcUMZpoo1dQho6A
9ML8njk/qw/swz0zd7S6k/Wystf+9lrfWmuvbcGHl4UJduzYYY3H45ZMJmORZdly7NgxXhRFy9DQ
UBYAiouLyel00vj4uM5siUnBxX8A0MqECwQCQjAYtAcCATGTyfDz8/PEcZyb53lOFMX5pqYm+P1+
mp2dlZ8+fZpeXFxUAWgAdCZUCKCQjgPAVVRUCC0tLWJnZ2dlc3Pzxubm5p9KkhQWBKHNbKCq6qN4
PP711NTU6ODg4OOHDx/GZVnOLi4uKuwC2oe8B/OQB2CvqakpjUQiGy9fvrw9Ho//lfJWLBbTZmZm
tHz9ysrKXwKBQG1LS4vX7XZLAOzsTOuH+OQBiD6fr+zw4cObb968+TNN02aIiLLZrD48PJzt6OhI
AYibpbW1NXn+/PlsOp3W2d5Ht2/fPrR169aNkiS5AYjsbMv7QO0ul6ts165dm69evfolEclERGNj
Y6rf70/kA+ZLMBhMTk5Oqob3Y2NjvwwGgzUM3F4InANQBEAKLYVCtWfPnt2tquosEdHIyEiW47j4
/wM1hOO4+JkzZ2QD/NKlS196vd7PAUgMgzPALQAEAI7y8nLv8ePHty8vL//N8PRTQM0yNDSUJSKK
x+P3AfwAwAYADoZlNRKq2OVylYXD4cYrV658RUSUTCY1n8+XE94tW7Yk29vbv8dxZWVloqenJyOK
4rrOZrPFo9GoQkQ0MTHxe5/PVw+gDEAx8xpWACWiKHojkcj2V69e/ZmIaGBgIGs+vKmpKWmEr7+/
Xzb0dXV1yWg0qhMRDQ8P59j09vZmiIiWlpb+ASAE4DPmNW/wK0mSVLdnz57dqVTqERFRW1tbjmd+
vz+RSqXIDF5fX78OSkR07tw52Wzj8XgSqrqWa6WlpWEAtQBKAdiM7uWpqqpq2r9//y+IiFZXV7VC
vHV2dqbM4Kurq+ug169fVwot5cP09LRMRHTy5MnfOp3OIIByAMVWABaHw8GVl5fbKyoqygEgFosV
7DK3bt3SIpFIWpZlAIDT6bQAwI0bN9RIJJLRNO17NrOzswCAmpoan67r61ltBQBd1zmLxSJomlYM
AIqivLe1vXz5khKJRM7Fnjx5ohcCBQBDr+t6UTKZ5Biw1QotAKlUyrKwsIAXL16kAWDDhg0FDwkG
g9bx8XG7x+OxmA89ffq0rb+/31bIxuv16gAwMzMTt9vtOQ1EAOAVBOEntbW1PdlsdoGIKL+UJElK
xGKxHE737duXw3lfX18mv5msrKwoREShUOg3giD8GEA1gBKjcRMAXRRF9c2bN88AoKurK+fJbGxs
tFZVVeVwOjo6qkUikXQ6nQYAhMNhzmyzc+dOzuVy8W/fvn3y+PHjbxVFyXmlBACVgiD8qKGh4eCF
Cxf+xF4fxdwQjLrs6+vL5Gdva2trsr+/X86P0t27d5NERKOjo6MAfg7ghwCqsNa318oJQGNRUdEe
n8/3u2g0OlWoLj9Furu706xlzns8npMAdgNoNMoJLMskALU8z39RVlbWc/To0WGDt+7u7vSngra3
t6cURdGIiAYHB28A+AotwBcwNRDjpeAAcLquC9lstnhubo4rKSlZbW1tbTxw4ABPRJiYmChcL3nr
yJEj/LVr14psNpv1/v37X3d1df0dwByABQArADIAFIA9Elhr4JsBhDmO+7Xb7f7jwMDATcPzZ8+e
ZQ4ePJjO592Qjo6O1IMHD9ZT/N69e/8C8AcAvwIQZmevPxLGFMlj7a10MA6qOY7zOxyOukOHDjWe
OnWqsbq6uh4AZFnWnz9/rk5OThIAhEIhNDQ0cC6XiweA5eXl+ZGRkX+fOHHinwC+ATALIAotYAlA
AoAMQDOKmWPgxQBcDPwzjuN8RUVFn6dSqeqLFy827N27t3zTpk2BQiF+/fr1N3fu3HnX29v7VFGU
OQBvWIj/w0BXWZhVALoBbPAsMHAnC0sVkw12u70ynU6XSZJUum3btoq2tjY3AExNTa1MT08vRaPR
dwCWGZcxAG+ZLDM6DG41AGSefwxwmynsEgA3K7cylpEOnuftAHhVVcHzvKrrelrX9QSAbxnQOwD/
ZclkhDcL05ibP/UZQ7zALmAHUMIi4GSXEfHd7AR2mAwgxUCMhEsCSDNABd8N9ygEbOiM+Zo3RcAQ
G3LnZJ3xlmUXMCTL9CoKLfwmCi0Bm/XGJcxfGksBO+OfZP6ymME+6gvzvvWxe+ljNv0PBejinGUz
/6oAAAAASUVORK5CYIIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9SZXNvdXJjZXMvZGVsZXRlQnV0dG9uUHJlc3NlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2RlbGV0ZUJ1dHRvblByZXNzZWQucG5nCShyZXZpc2lv
biAxNzU2MjQpCisrKyBTb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvZGVsZXRlQnV0dG9uUHJlc3Nl
ZC5wbmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotiVBORw0KLRoKLQAAAA1JSERS
AAAAHgAAAB4IBgAAADswrqIAAAGHaUNDUGljYwAAeNqVkTFLHFEUhb83BC0iG4NTqcVLJ7orixJI
kUanWCQplkVld7vZmcm6MM4+3jxNLGxtFNR0gRCSf2BjCAiidbQSt7RJk1IEtUhgLJ6yjSIeuPDd
09x77gXnyFcqdoDFxOhKaVpWa3XZ26GXIQDwg1RNlcvveVBXHQTAScFXKuZp6tPVWh2EC7hNyyOA
27D8FnA/GmVAlAE3WPBDECGQ17MVD8QWkGta/g7kGpZ3gNxy0DQgDoBiErYSEOfAmzBKA3BGABMo
bcD5Ci0UqrW6tKvNjkHhGTgHXW9tEw73YXCy6w0Pw8tV+Dna9S5+IwCRfEk/TE4AIIYG4Hkny/7+
gBef4f9hll1fZtm/U+jZhe2NYEkv395FiGN4rLfZbG9/AHbu/WzzA1CEb39g/hXMz8F6Ci3yF/Sf
QekE3u0hjsVd2VsBMOj5cauhfROFslKall47butU+UH0xMc/JhN9MgBeW63oVnPByCml4kh67UW1
ZCKdlzNJMJ6XE8Xia4AbENJ1ND/hb64AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxIAAAsS
AdLdfvwAAAccSURBVEjHnZfdTxTvFce/O8/sy8zuwr4gbpefIItAQEGyVawJUWKIKZXEFGkwVP8A
39h4Y2OIiTfEKPHCSi+88AothTQKLZpo0qCpMQUbFe1SY9Gt5KdSXBdYV96WYYeZeXrBM+ssv9Wf
7UlONjmZZz7n7Tl7xoRvi4kpamtruWQyaZJl2STLsqm1tZUXBMHU29srA4DFYqF2u50+ffpUY2cp
06zCfwPIMSXFxcXmkpISobi4WEylUvz09DQlhLgJIcRms0XLysrg9/tpNBpNjY+PS4lEQgGgAtCY
0myAbDYCgHg8HnNlZaW4e/fu/PLy8sKysrLdTqdzF8/zvzIeUFV1NJlMjoyNjd25fv36ixcvXizI
siwnEokV5oC6Fr4WrEdpLigosFZVVeXs2rWrsLGx8aQois3GB+PxuCbLMvx+P2e0Ly4u/rmlpeW0
IAipycnJ5Pz8vAxgxRD9T8B6pBafz2erra31NDY2VtbX1/+R47giRVFof3+/cu/ePWV4eFg1wqqq
qrh9+/aZ29raeKvValIU5Z/Pnj07f+HChUcTExMLCwsLKQDy1yLnAQgOh8NTV1e36dKlS7+NRCKp
SCRCr169qvj9/kUAC9/SQCCQHBgYUCKRCGXnfh8IBDY6nU43AIExTGAR6r88AGtxcbG7oaGh7MCB
A3/iOM4zMDCwcvLkyeX5+Xn8nHz+/JnevHlTIYRg27ZtpLCwsJkQ8rfR0dF4MplU1jaaCYAZgMPt
dvvb2trqRkZG7uqREkIWfi7SbHr27Fk5EonQcDj8dwCVAHwAHIzFcXptHQ6HZdOmTbnV1dWlOTk5
+yRJ0jo6OpZV9Us5N2/ezAWDQbI2Uq/Xa2ppaTELgpC2dXZ2pqanpxVRFHdeu3btdz6fzwnAwrJr
0juSqKpq83q93tra2noA6O/vV2OxWDotpaWl3MDAgNjX1ye0t7dbdPuGDRu427dvi52dndbTp09b
dfvKygoturu7VXa2PhaLCQCsep31iHme522SJDm8Xu9WALhz545ijCqZTNLl5WUAwLFjxyzt7e2W
oqIirre3V8jPzzexq5TRsYODg4qqqnC5XPU5OTkuADYGTqeat1qtIs/zHpvNtjWZTGqjo6MZVyYa
jdJQKCQZ4bdu3UpD79+/r1y8eFE2npmdnaXj4+MyALS2tm612+3WDLAoisTtdgsejycPAOLxeNYZ
+/DhQzUUCi1Jsrz6frvdnoaGQqGMftDlw4cPAICCgoIfNE2zZtSYUkoAmDVNs+n1+ZpMTEzQpaWl
DMfevHmjZYMCgKatDitKqVWSJMLAHAcAkiSZEokE3r9/LwHAunXrsr4kEAhwPT09gsvlMgGADjt6
9KjF2HBGyc/P11jkCzabLT1A0nN2bm5OjcViS4qizOTm5hKfz5cxx51Op6mnp0fIy8tLp/f48eMZ
NT906JDZeIYQgkAgwAPA0NBQVFG+9KsOpgA0QRCUjx8/vgaAvXv3ZvxllpSUcEZoKBRafvDggWps
uO3bt2fc8Z07dxKHw8HH4/GXkUhkVlGU9KzWc27lOM7ucDhcdrvdVVNTE6ysrERfX5+iexmLxejM
zAwdHh5Wu7q6ZD3N7969o48ePVJmZmbolStX5MXFxTT43LlzJr/fb37y5MnTu3fvPgPwCauTbRms
vb0AKiwWy298Pt+poaGhcCQSoadOnUrh/xiXABaam5slNjKjLpfrDwB+DaACQB4AG8GXfyYzABvH
cWI8HseePXt+GQwGSTQa1V69eqXhf5BgMEi6u7utHMeZbty48dfBwcF/AJgCkACwBEDWwQQAoZSa
FUWxxWIxIorifFVVVUVDQwNPKcXIyIj6PdD9+/fzly9ftprNZi4cDo+cOHHiHoBJANMA5liaV3Rw
er+ilPKpVIp//vy5JoribHV1dfmOHTtIU1MTTSQS3OTkpGbsTl3q6upIV1cXd/jwYYEQYgoth8Ph
gwcP/gXABIAYq+8igBQAVd8ieawOcAerQQEhpEgUxUBTU1PFkSNHKtavX18KLQCyLGtv375VXr58
SQGgvLwcGzduJA6Hg2fXMtrf3//v8+fPPwHwI4D3AD4AiK8F693NY3WI5zD4LwghP1gslg2SJBV0
dHSU1dfX5xUWFpZnS3E0Gv3x8ePHn86cOfMvRVEmAfyHpfgjg86zNCsANB2s19nM4E4AHgDrmfps
Nlv+8vKyx+l0urZs2bKupqbGDQBjY2Nzr1+/jk9NTX1izTPNUjtlaCj9Ci3pWyfNuuwZ0p4LwM2u
mweAC4CDECIA4FVVBSFEoZRKmqYtAphloE8APrNm0tObsex9db1lDggA7CwDTuaMyBzTp5TKXrzE
IPpdTgKQGPCb663RxrGa84YM6Gphdn3caqxuMnNAV5nZf7LkfQ1stOtOGK+cKcs5/TvJ+MlihH3X
J8zX5Hufpd/z0H8ByMw4vTZzkKYAAAAASUVORK5CYIIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxNzU2MjQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk1Niw4ICs5NTYsNiBA
QAogCQkxQzI0MTdCQTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0MTdCOTE5OTJD
MDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nICovOyB9OwogCQkxQzI2NDk3QTBEN0Uy
NDhBMDBCRDEwRjIgLyogRG9jdW1lbnRMb2FkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNjQ5NzkwRDdFMjQ4QTAwQkQxMEYyIC8qIERv
Y3VtZW50TG9hZGVyTWFjLmNwcCAqLzsgfTsKIAkJMUMyNjQ5N0MwRDdFMjRFQzAwQkQxMEYyIC8q
IFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYyIC8qIFBhZ2VNYWMuY3BwICovOyB9OwotCQkxQzRD
OEYwMjBBRDg1RDg3MDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM0QzhGMDAwQUQ4NUQ4NzAw
OTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxQzRDOEY2NjBBRDg2NTVEMDA5NDc1Q0UgLyog
RGVsZXRlQnV0dG9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzRDOEY2NDBBRDg2NTVEMDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uLmggKi87IH07CiAJ
CTFDODFCOTVBMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgxQjk1NjBFOTczMzA4
MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCOTVCMEU5NzMzMDgwMDI2NkUwNyAvKiBJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDODFCOTU3MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJMUM4MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4
MUI5NTgwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NzMsOCArOTcxLDYgQEAKIAkJ
MUNDQTczMjIxMEFERDQ0QTAwRkQ0NDBEIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0NBNzMyMTEwQURENDNFMDBGRDQ0MEQgLyogRE9NSFRNTElucHV0RWxlbWVudFByaXZh
dGUuaCAqLzsgfTsKIAkJMUNDREY1QkQxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENv
bnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNDREY1QkIxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uY3Bw
ICovOyB9OwogCQkxQ0NERjVCRTE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVy
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUND
REY1QkMxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCAqLzsgfTsK
LQkJMUNFODNBQzMwQURBRkZENzAwOTM1NEY2IC8qIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM0QzhFRkYw
QUQ4NUQ4NzAwOTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwICovOyB9OwotCQkx
Q0U4M0FDNDBBREFGRkQ4MDA5MzU0RjYgLyogRGVsZXRlQnV0dG9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNEM4RjYzMEFEODY1NUQwMDk0NzVD
RSAvKiBEZWxldGVCdXR0b24uY3BwICovOyB9OwogCQkxQ0Y2QkRGQTBFOUJCMjZBMDAyNUUxQ0Qg
LyogT2JqQ0V2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDRjZCREY4MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5l
ci5oICovOyB9OwogCQkxQ0Y2QkRGQjBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVu
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0Y2
QkRGOTBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIubW0gKi87IH07CiAJCTFD
RjZCRTE0MEU5QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRjZCRTEyMEU5QkI0
NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbSAqLzsgfTsKQEAgLTMxNTAs
MTIgKzMxNDYsOCBAQAogCQk5MzA5MDg5MTBBRjdFREU0MDA4MURGMDEgLyogSGl0VGVzdFJlcXVl
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDkw
ODkwMEFGN0VERTQwMDgxREYwMSAvKiBIaXRUZXN0UmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMEM5MEREMTlDRjk2NTMwMEQ2QzIx
QSAvKiBJbmxpbmVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzBDOTBEQzE5Q0Y5NjUzMDBENkMyMUEgLyogSW5saW5lSXRlcmF0b3Iu
Y3BwICovOyB9OwogCQk5MzBGQzY4QTEwNzJCOTI4MDA0NTI5M0UgLyogVGV4dFJlbmRlcmluZ01v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEZD
Njg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTkzMTUzQkNEMTQxN0ZCQkYwMEZD
RjVCRSAvKiBkZWxldGVCdXR0b25AMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JDQzE0MTdGQkJGMDBGQ0Y1QkUgLyogZGVsZXRlQnV0
dG9uQDJ4LnBuZyAqLzsgfTsKLQkJOTMxNTNCQ0YxNDE3RkJEQjAwRkNGNUJFIC8qIGRlbGV0ZUJ1
dHRvblByZXNzZWRAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzE1M0JDRTE0MTdGQkRCMDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9uUHJlc3Nl
ZEAyeC5wbmcgKi87IH07CiAJCTkzMTUzQkRBMTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1h
Z2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsK
IAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCREIx
NDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyAqLzsgfTsKLQkJOTMx
NTNCREUxNDE5NTlGNDAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRvbi5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkREMTQxOTU5RjQwMEZDRjVC
RSAvKiBkZWxldGVCdXR0b24ucG5nICovOyB9OwotCQk5MzE1M0JFMDE0MTk1QTI4MDBGQ0Y1QkUg
LyogZGVsZXRlQnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRGMTQxOTVBMjgwMEZDRjVCRSAvKiBkZWxldGVCdXR0
b25QcmVzc2VkLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3Np
bmdJbWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9Owog
CQk5MzFCQ0M2MTExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFCQ0M2MDExMjRE
RkNCMDBCRTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxQ0JEMEMxNjFBNDRFOTAwRTRDODc0
IC8qIFNjcm9sbGluZ1N0YXRlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzFDQkQwNjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3Rh
dGVOb2RlLmNwcCAqLzsgfTsKQEAgLTc5NTMsMTAgKzc5NDUsNiBAQAogCQkxQzI0MTdCOTE5OTJD
MDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIlNwZWxsaW5nRG90
QDN4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMjY0OTc5MEQ3RTI0OEEw
MEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDMjY0OTdCMEQ3RTI0RUMwMEJEMTBGMiAvKiBQYWdlTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQzRDOEVGRjBBRDg1RDg3MDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9u
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWxl
dGVCdXR0b25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCTFDNEM4RjAwMEFEODVEODcwMDk0NzVDRSAvKiBEZWxl
dGVCdXR0b25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCTFDNEM4RjYzMEFEODY1NUQwMDk0NzVDRSAvKiBEZWxl
dGVCdXR0b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVsZXRl
QnV0dG9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCTFDNEM4RjY0MEFEODY1NUQwMDk0NzVDRSAvKiBEZWxldGVCdXR0b24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVsZXRlQnV0dG9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkxQzVFOTgw
RjFBMDJDRUZBMDAyREI1NUYgLyogQ29yZVRleHRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZVRl
eHRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4MUI5NTYwRTk3MzMwODAw
MjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQzgxQjk1NzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDb250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzEwLDEyICsxMDI5OCw4IEBA
CiAJCTkzMDkwODkwMEFGN0VERTQwMDgxREYwMSAvKiBIaXRUZXN0UmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGl0VGVzdFJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIElubGluZUl0ZXJh
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUl0ZXJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwRkM2ODkxMDcyQjkyODAw
NDUyOTNFIC8qIFRleHRSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTkzMTUzQkNDMTQxN0ZCQkYwMEZDRjVCRSAvKiBkZWxldGVCdXR0b25AMngucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gImRlbGV0ZUJ1dHRvbkAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
MzE1M0JDRTE0MTdGQkRCMDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7
IHBhdGggPSAiZGVsZXRlQnV0dG9uUHJlc3NlZEAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBu
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdl
LnBuZzsgcGF0aCA9ICJtaXNzaW5nSW1hZ2VAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVy
LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLnBuZzsgcGF0aCA9IHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTMxNTNCREQxNDE5NTlGNDAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRvbi5w
bmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFn
ZS5wbmc7IHBhdGggPSBkZWxldGVCdXR0b24ucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5MzE1M0JERjE0MTk1QTI4MDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9uUHJlc3NlZC5wbmcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5w
bmc7IHBhdGggPSBkZWxldGVCdXR0b25QcmVzc2VkLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7
IHBhdGggPSBtaXNzaW5nSW1hZ2UucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzFCQ0M2MDExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFDQkQwNjE2MUE0NEU5MDBFNEM4NzQgLyogU2Ny
b2xsaW5nU3RhdGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjcm9sbGluZ1N0YXRlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDg4NCwxMCArMTQ4NjgsNiBAQAogCQkJCTY1OTk4QTY1MEU1RjVGRDMwMDRFMDk3QSAvKiBpbWFn
ZXMgKi8sCiAJCQkJNDZGOUQ1REEwQjBENjAxNzAwMjhFRTM2IC8qIGFsaWFzQ3Vyc29yLnBuZyAq
LywKIAkJCQk0NkQ0RjI0NjBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgKi8sCi0J
CQkJOTMxNTNCREQxNDE5NTlGNDAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRvbi5wbmcgKi8sCi0JCQkJ
OTMxNTNCQ0MxNDE3RkJCRjAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRvbkAyeC5wbmcgKi8sCi0JCQkJ
OTMxNTNCREYxNDE5NUEyODAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRvblByZXNzZWQucG5nICovLAot
CQkJCTkzMTUzQkNFMTQxN0ZCREIwMEZDRjVCRSAvKiBkZWxldGVCdXR0b25QcmVzc2VkQDJ4LnBu
ZyAqLywKIAkJCQk4NTEzNkM4OTBBRUQ2NjU4MDBGOTBBM0QgLyogZWFzdFJlc2l6ZUN1cnNvci5w
bmcgKi8sCiAJCQkJODUxMzZDOEEwQUVENjY1ODAwRjkwQTNEIC8qIGVhc3RXZXN0UmVzaXplQ3Vy
c29yLnBuZyAqLywKIAkJCQk4NTEzNkM4QjBBRUQ2NjU4MDBGOTBBM0QgLyogaGVscEN1cnNvci5w
bmcgKi8sCkBAIC0xNzQ2MiwxMCArMTc0NDIsNiBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2
RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEw
MDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAw
MTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCi0JCQkJMUM0QzhGNjMwQUQ4NjU1
RDAwOTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbi5jcHAgKi8sCi0JCQkJMUM0QzhGNjQwQUQ4NjU1RDAw
OTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbi5oICovLAotCQkJCTFDNEM4RUZGMEFEODVEODcwMDk0NzVD
RSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmNwcCAqLywKLQkJCQkxQzRDOEYwMDBBRDg1RDg3
MDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oICovLAogCQkJCTkzMzA5RDhGMDk5
RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5
MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICov
LAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKQEAgLTIzODMxLDggKzIzODA3LDYgQEAKIAkJCQlGRDMxNjAyQzEyQjAyNjc2MDBD
MUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJFMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDMx
MTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheVByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MUM0QzhGNjYwQUQ4NjU1RDAwOTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMUM0QzhGMDIwQUQ4NUQ4NzAwOTQ3NUNFIC8qIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RERGMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFMTA5OUU2NDky
MDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkQxNjYwQTUxMzc4N0M2RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY5NTYsMTAgKzI2OTMwLDYgQEAKIAkJCQk0NkY5RDVERDBCMEQ2MDE3MDAyOEVF
MzYgLyogYWxpYXNDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQzI0MTdCQTE5OTJD
MDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk0
NkQ0RjI0OTBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICov
LAotCQkJCTkzMTUzQkRFMTQxOTU5RjQwMEZDRjVCRSAvKiBkZWxldGVCdXR0b24ucG5nIGluIFJl
c291cmNlcyAqLywKLQkJCQk5MzE1M0JDRDE0MTdGQkJGMDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9u
QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJOTMxNTNCRTAxNDE5NUEyODAwRkNGNUJFIC8q
IGRlbGV0ZUJ1dHRvblByZXNzZWQucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQk5MzE1M0JDRjE0
MTdGQkRCMDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9uUHJlc3NlZEAyeC5wbmcgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRDAyQjY0QjMxNDA4OUU1
NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCQk4NTEzNkM5OTBBRUQ2NjU5MDBGOTBBM0QgLyogZWFzdFJlc2l6
ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLApAQCAtMjc1MTQsOCArMjc0ODQsNiBAQAogCQkJ
CUZEMzE2MDJCMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjAyRDEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMzE2MDMwMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheVByb2Nlc3Nv
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQ0U4M0FDNDBBREFGRkQ4MDA5MzU0RjYgLyogRGVs
ZXRlQnV0dG9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFDRTgzQUMzMEFEQUZGRDcwMDkzNTRG
NiAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5
RERFMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzMzA5REUwMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMDBFRTc1MTU0NkVBQzEwMEJBMTFE
MSAvKiBEZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMCAr
NTQsNiBAQAogI2luY2x1ZGUgIlRlbXBsYXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQuaCIKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSNp
bmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKE5vZGUm
KTsKQEAgLTc2OSwzOCArNzY1LDE4IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnMKICAgICBpbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2FjaGVzSW5BbmNl
c3RvcnMoKTsKIH0KIAotaW5saW5lIHN0YXRpYyB2b2lkIGNsb25lQ2hpbGROb2Rlc0F2b2lkaW5n
RGVsZXRlQnV0dG9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgQ29udGFpbmVyTm9kZSogY2xvbmVk
UGFyZW50LCBIVE1MRWxlbWVudCogZGVsZXRlQnV0dG9uQ29udGFpbmVyRWxlbWVudCkKK3ZvaWQg
Q29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUgKmNsb25lKQogewog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGZvciAoTm9kZSogY2hpbGQgPSBwYXJlbnQt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7Ci0KLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi0gICAgICAgIGlmIChjaGlsZCA9PSBkZWxl
dGVCdXR0b25Db250YWluZXJFbGVtZW50KQotICAgICAgICAgICAgY29udGludWU7Ci0jZWxzZQot
ICAgICAgICBVTlVTRURfUEFSQU0oZGVsZXRlQnV0dG9uQ29udGFpbmVyRWxlbWVudCk7Ci0jZW5k
aWYKLQorICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkICYmICFlYzsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBSZWZQdHI8Tm9kZT4gY2xv
bmVkQ2hpbGQgPSBjaGlsZC0+Y2xvbmVOb2RlKGZhbHNlKTsKLSAgICAgICAgY2xvbmVkUGFyZW50
LT5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZCwgZWMpOworICAgICAgICBjbG9uZS0+YXBwZW5kQ2hp
bGQoY2xvbmVkQ2hpbGQsIGVjKTsKIAogICAgICAgICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5v
ZGU+KGNoaWxkKSkKLSAgICAgICAgICAgIGNsb25lQ2hpbGROb2Rlc0F2b2lkaW5nRGVsZXRlQnV0
dG9uKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNoaWxkKSwgZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpLCBkZWxldGVCdXR0b25Db250YWluZXJFbGVtZW50KTsKKyAg
ICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNoaWxkKS0+Y2xvbmVDaGlsZE5vZGVz
KGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CiAgICAgfQogfQog
Ci12b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlICpjbG9u
ZSkKLXsKLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi0gICAgSFRNTEVsZW1lbnQqIGRlbGV0ZUJ1
dHRvbkNvbnRhaW5lckVsZW1lbnQgPSAwOwotICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVu
dCgpLmZyYW1lKCkpCi0gICAgICAgIGRlbGV0ZUJ1dHRvbkNvbnRhaW5lckVsZW1lbnQgPSBmcmFt
ZS0+ZWRpdG9yKCkuZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpLmNvbnRhaW5lckVsZW1lbnQoKTsK
LSAgICBjbG9uZUNoaWxkTm9kZXNBdm9pZGluZ0RlbGV0ZUJ1dHRvbih0aGlzLCBjbG9uZSwgZGVs
ZXRlQnV0dG9uQ29udGFpbmVyRWxlbWVudCk7Ci0jZWxzZQotICAgIGNsb25lQ2hpbGROb2Rlc0F2
b2lkaW5nRGVsZXRlQnV0dG9uKHRoaXMsIGNsb25lLCAwKTsKLSNlbmRpZgotfQotCiBib29sIENv
bnRhaW5lck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihGbG9hdFBvaW50JiBwb2ludCkgY29uc3QK
IHsKICAgICBpZiAoIXJlbmRlcmVyKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcyLDExICs3Miw2IEBACiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJt
YXJrdXAuaCIKIAotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSNpbmNsdWRlICJEZWxldGVCdXR0
b25Db250cm9sbGVyLmgiCi0jZW5kaWYKLQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMTYsMTUgKzExMSw5IEBAIHZvaWQgRWRpdENvbW1h
bmRDb21wb3NpdGlvbjo6dW5hcHBseSgpCiAgICAgZnJhbWUtPmVkaXRvcigpLmNhbmNlbENvbXBv
c2l0aW9uKCk7CiAjZW5kaWYKIAotICAgIHsKLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi0gICAg
ICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXJEaXNhYmxlU2NvcGUgZGVsZXRlQnV0dG9uQ29udHJv
bGxlckRpc2FibGVTY29wZShmcmFtZS5nZXQoKSk7Ci0jZW5kaWYKLQotICAgICAgICBzaXplX3Qg
c2l6ZSA9IG1fY29tbWFuZHMuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gc2l6ZTsg
aTsgLS1pKQotICAgICAgICAgICAgbV9jb21tYW5kc1tpIC0gMV0tPmRvVW5hcHBseSgpOwotICAg
IH0KKyAgICBzaXplX3Qgc2l6ZSA9IG1fY29tbWFuZHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSBzaXplOyBpOyAtLWkpCisgICAgICAgIG1fY29tbWFuZHNbaSAtIDFdLT5kb1VuYXBwbHko
KTsKIAogICAgIGZyYW1lLT5lZGl0b3IoKS51bmFwcGxpZWRFZGl0aW5nKHRoaXMpOwogfQpAQCAt
MTQwLDE1ICsxMjksMTAgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpyZWFwcGx5KCkK
ICAgICAvLyBpZiBvbmUgaXMgbmVjZXNzYXJ5IChsaWtlIGZvciB0aGUgY3JlYXRpb24gb2YgVmlz
aWJsZVBvc2l0aW9ucykuCiAgICAgbV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CiAKLSAgICB7Ci0jaWYgRU5BQkxFKERFTEVUSU9OX1VJKQotICAgICAg
ICBEZWxldGVCdXR0b25Db250cm9sbGVyRGlzYWJsZVNjb3BlIGRlbGV0ZUJ1dHRvbkNvbnRyb2xs
ZXJEaXNhYmxlU2NvcGUoZnJhbWUuZ2V0KCkpOwotI2VuZGlmCi0gICAgICAgIHNpemVfdCBzaXpl
ID0gbV9jb21tYW5kcy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IHNp
emU7ICsraSkKLSAgICAgICAgICAgIG1fY29tbWFuZHNbaV0tPmRvUmVhcHBseSgpOwotICAgIH0K
LSAgICAKKyAgICBzaXplX3Qgc2l6ZSA9IG1fY29tbWFuZHMuc2l6ZSgpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpICE9IHNpemU7ICsraSkKKyAgICAgICAgbV9jb21tYW5kc1tpXS0+ZG9SZWFw
cGx5KCk7CisKICAgICBmcmFtZS0+ZWRpdG9yKCkucmVhcHBsaWVkRWRpdGluZyh0aGlzKTsKIH0K
IApAQCAtMjIwLDkgKzIwNCw2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KCkK
IAogICAgIHsKICAgICAgICAgRXZlbnRRdWV1ZVNjb3BlIGV2ZW50UXVldWVTY29wZTsKLSNpZiBF
TkFCTEUoREVMRVRJT05fVUkpCi0gICAgICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXJEaXNhYmxl
U2NvcGUgZGVsZXRlQnV0dG9uQ29udHJvbGxlckRpc2FibGVTY29wZSgmZnJhbWUoKSk7Ci0jZW5k
aWYKICAgICAgICAgZG9BcHBseSgpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlQnV0dG9uLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVCdXR0b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbi5oIgotCi0jaW5jbHVkZSAi
RGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVk
ZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
LQotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLQotaW5saW5lIERlbGV0ZUJ1dHRvbjo6RGVsZXRl
QnV0dG9uKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFn
LCBkb2N1bWVudCkKLXsKLX0KLQotUGFzc1JlZlB0cjxEZWxldGVCdXR0b24+IERlbGV0ZUJ1dHRv
bjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERlbGV0ZUJ1dHRvbihkb2N1bWVudCkpOwotfQotCi12b2lkIERlbGV0ZUJ1dHRvbjo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKLSAgICAgICAgZG9jdW1lbnQoKS5mcmFtZSgpLT5l
ZGl0b3IoKS5kZWxldGVCdXR0b25Db250cm9sbGVyKCkuZGVsZXRlVGFyZ2V0KCk7Ci0gICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgSFRNTEltYWdlRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Ci19Ci0jZW5k
aWYKLQotfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
QnV0dG9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0
b24uaAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVC
dXR0b24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgRGVsZXRlQnV0dG9u
X2gKLSNkZWZpbmUgRGVsZXRlQnV0dG9uX2gKLQotI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZWxldGVCdXR0b24gOiBwdWJsaWMg
SFRNTEltYWdlRWxlbWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGVsZXRl
QnV0dG9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKLQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9u
ZFRvTW91c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBEZWxldGVCdXR0b24oRG9jdW1lbnQmKTsKLQotICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7Ci19OwotCi19IC8vIG5hbWVzcGFjZQot
Ci0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0
b25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzOTMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29u
dHJvbGxlci5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgotI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKLSNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgotI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlJlbW92ZU5vZGVDb21tYW5kLmgiCi0jaW5jbHVkZSAiUmVuZGVy
Qm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyVGFibGUuaCIKLSNpbmNsdWRlICJSZW5kZXJUYWJsZUNl
bGwuaCIKLSNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi0jaWYgRU5BQkxFKERFTEVUSU9OX1VJ
KQotCi1jb25zdCBjaGFyKiBjb25zdCBEZWxldGVCdXR0b25Db250cm9sbGVyOjpjb250YWluZXJF
bGVtZW50SWRlbnRpZmllciA9ICJXZWJLaXQtRWRpdGluZy1EZWxldGUtQ29udGFpbmVyIjsKLWNv
bnN0IGNoYXIqIGNvbnN0IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmJ1dHRvbkVsZW1lbnRJZGVu
dGlmaWVyID0gIldlYktpdC1FZGl0aW5nLURlbGV0ZS1CdXR0b24iOwotY29uc3QgY2hhciogY29u
c3QgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6b3V0bGluZUVsZW1lbnRJZGVudGlmaWVyID0gIldl
YktpdC1FZGl0aW5nLURlbGV0ZS1PdXRsaW5lIjsKLQotRGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6
RGVsZXRlQnV0dG9uQ29udHJvbGxlcihGcmFtZSYgZnJhbWUpCi0gICAgOiBtX2ZyYW1lKGZyYW1l
KQotICAgICwgbV93YXNTdGF0aWNQb3NpdGlvbmVkKGZhbHNlKQotICAgICwgbV93YXNBdXRvWklu
ZGV4KGZhbHNlKQotICAgICwgbV9kaXNhYmxlU3RhY2soMCkKLXsKLX0KLQotc3RhdGljIGJvb2wg
aXNEZWxldGFibGVFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlIHx8
ICFub2RlLT5pc0hUTUxFbGVtZW50KCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSB8fCAhbm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBJbiBn
ZW5lcmFsIHdlIHdhbnQgdG8gb25seSBkcmF3IHRoZSBVSSBhcm91bmQgb2JqZWN0IG9mIGEgY2Vy
dGFpbiBhcmVhLCBidXQgd2Ugc3RpbGwga2VlcCB0aGUgbWluIHdpZHRoL2hlaWdodCB0bwotICAg
IC8vIG1ha2Ugc3VyZSB3ZSBkb24ndCBlbmQgdXAgd2l0aCB2ZXJ5IHRoaW4gb3IgdmVyeSBzaG9y
dCBlbGVtZW50cyBnZXR0aW5nIHRoZSBVSS4KLSAgICBjb25zdCBpbnQgbWluaW11bUFyZWEgPSAy
NTAwOwotICAgIGNvbnN0IGludCBtaW5pbXVtV2lkdGggPSA0ODsKLSAgICBjb25zdCBpbnQgbWlu
aW11bUhlaWdodCA9IDE2OwotICAgIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1WaXNpYmxlQm9yZGVy
cyA9IDE7Ci0KLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsK
LSAgICBpZiAoIWlzPFJlbmRlckJveD4ocmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAvLyBEaXNhbGxvdyB0aGUgYm9keSBlbGVtZW50IHNpbmNlIGl0IGlzbid0IHByYWN0
aWNhbCB0byBkZWxldGUsIGFuZCB0aGUgZGVsZXRpb24gVUkgd291bGQgYmUgY2xpcHBlZC4KLSAg
ICBpZiAobm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgLy8gRGlzYWxsb3cgZWxlbWVudHMgd2l0aCBhbnkgb3ZlcmZsb3cgY2xpcCwgc2luY2Ug
dGhlIGRlbGV0aW9uIFVJIHdvdWxkIGJlIGNsaXBwZWQgYXMgd2VsbC4gPHJkYXI6Ly9wcm9ibGVt
LzY4NDAxNjE+Ci0gICAgaWYgKHJlbmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgLy8gRGlzYWxsb3cgTWFpbCBibG9ja3F1b3RlcyBzaW5jZSB0
aGUgZGVsZXRpb24gVUkgd291bGQgZ2V0IGluIHRoZSB3YXkgb2YgZWRpdGluZyBmb3IgdGhlc2Uu
Ci0gICAgaWYgKGlzTWFpbEJsb2NrcXVvdGUobm9kZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIFJlbmRlckJveCYgYm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpOwot
ICAgIEludFJlY3QgYm9yZGVyQm91bmRpbmdCb3ggPSBib3guYm9yZGVyQm91bmRpbmdCb3goKTsK
LSAgICBpZiAoYm9yZGVyQm91bmRpbmdCb3gud2lkdGgoKSA8IG1pbmltdW1XaWR0aCB8fCBib3Jk
ZXJCb3VuZGluZ0JveC5oZWlnaHQoKSA8IG1pbmltdW1IZWlnaHQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGlmICgoYm9yZGVyQm91bmRpbmdCb3gud2lkdGgoKSAqIGJvcmRlckJvdW5k
aW5nQm94LmhlaWdodCgpKSA8IG1pbmltdW1BcmVhKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoaXM8UmVuZGVyVGFibGU+KGJveCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgaWYgKGlzPEhUTUxVTGlzdEVsZW1lbnQ+KCpub2RlKSB8fCBpczxIVE1MT0xpc3RFbGVtZW50
Pigqbm9kZSkgfHwgaXM8SFRNTElGcmFtZUVsZW1lbnQ+KCpub2RlKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICBpZiAoYm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpczxSZW5kZXJCbG9jaz4oYm94KSAmJiAhaXM8UmVuZGVy
VGFibGVDZWxsPihib3gpKSB7Ci0gICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSA9IGJv
eC5zdHlsZSgpOwotCi0gICAgICAgIC8vIEFsbG93IGJsb2NrcyB0aGF0IGhhdmUgYmFja2dyb3Vu
ZCBpbWFnZXMKLSAgICAgICAgaWYgKHN0eWxlLmhhc0JhY2tncm91bmRJbWFnZSgpKSB7Ci0gICAg
ICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogYmFja2dyb3VuZCA9IHN0eWxlLmJhY2tncm91
bmRMYXllcnMoKTsgYmFja2dyb3VuZDsgYmFja2dyb3VuZCA9IGJhY2tncm91bmQtPm5leHQoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChiYWNrZ3JvdW5kLT5pbWFnZSgpICYmIGJhY2tncm91bmQt
PmltYWdlKCktPmNhblJlbmRlcigmYm94LCAxKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBbGxvdyBibG9j
a3Mgd2l0aCBhIG1pbmltdW0gbnVtYmVyIG9mIG5vbi10cmFuc3BhcmVudCBib3JkZXJzCi0gICAg
ICAgIHVuc2lnbmVkIHZpc2libGVCb3JkZXJzID0gc3R5bGUuYm9yZGVyVG9wKCkuaXNWaXNpYmxl
KCkgKyBzdHlsZS5ib3JkZXJCb3R0b20oKS5pc1Zpc2libGUoKSArIHN0eWxlLmJvcmRlckxlZnQo
KS5pc1Zpc2libGUoKSArIHN0eWxlLmJvcmRlclJpZ2h0KCkuaXNWaXNpYmxlKCk7Ci0gICAgICAg
IGlmICh2aXNpYmxlQm9yZGVycyA+PSBtaW5pbXVtVmlzaWJsZUJvcmRlcnMpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAvLyBBbGxvdyBibG9ja3MgdGhhdCBoYXZlIGEgZGlm
ZmVyZW50IGJhY2tncm91bmQgZnJvbSBpdCdzIHBhcmVudAotICAgICAgICBDb250YWluZXJOb2Rl
KiBwYXJlbnROb2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwotICAgICAgICBpZiAoIXBhcmVudE5v
ZGUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgYXV0byogcGFyZW50UmVu
ZGVyZXIgPSBwYXJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXBhcmVudFJlbmRl
cmVyKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGNvbnN0IFJlbmRlclN0
eWxlJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRlcmVyLT5zdHlsZSgpOwotCi0gICAgICAgIGlm
IChib3guaGFzQmFja2dyb3VuZCgpICYmICghcGFyZW50UmVuZGVyZXItPmhhc0JhY2tncm91bmQo
KSB8fCBzdHlsZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29s
b3IpICE9IHBhcmVudFN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvcikpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgSFRNTEVsZW1lbnQqIGVuY2xvc2luZ0RlbGV0YWJsZUVs
ZW1lbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQotewotICAgIGlmICghc2Vs
ZWN0aW9uLmlzQ29udGVudEVkaXRhYmxlKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVm
UHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpOwotICAgIGlm
ICghcmFuZ2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgTm9kZSogY29udGFpbmVy
ID0gcmFuZ2UtPmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKEFTU0VSVF9OT19FWENFUFRJT04pOwot
ICAgIEFTU0VSVChjb250YWluZXIpOwotCi0gICAgLy8gVGhlIGVuY2xvc2luZ05vZGVPZlR5cGUg
ZnVuY3Rpb24gb25seSB3b3JrcyBvbiBub2RlcyB0aGF0IGFyZSBlZGl0YWJsZQotICAgIC8vIGFu
ZCBjYXBhYmxlIG9mIGhhdmluZyBlZGl0aW5nIHBvc2l0aW9ucyBpbnNpZGUgdGhlbSAod2hpY2gg
aXMgc3RyYW5nZSwgZ2l2ZW4gaXRzIG5hbWUpLgotICAgIGlmICghY29udGFpbmVyLT5oYXNFZGl0
YWJsZVN0eWxlKCkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KGNvbnRhaW5lcikpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgTm9kZSogZWxlbWVudCA9IGVuY2xvc2luZ05vZGVPZlR5
cGUoZmlyc3RQb3NpdGlvbkluTm9kZShjb250YWluZXIpLCAmaXNEZWxldGFibGVFbGVtZW50KTsK
LSAgICByZXR1cm4gaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpID8gZG93bmNhc3Q8SFRNTEVsZW1l
bnQ+KGVsZW1lbnQpIDogbnVsbHB0cjsKLX0KLQotdm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVy
OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNl
bGVjdGlvbikKLXsKLSAgICBpZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
SFRNTEVsZW1lbnQqIG9sZEVsZW1lbnQgPSBlbmNsb3NpbmdEZWxldGFibGVFbGVtZW50KG9sZFNl
bGVjdGlvbik7Ci0gICAgSFRNTEVsZW1lbnQqIG5ld0VsZW1lbnQgPSBlbmNsb3NpbmdEZWxldGFi
bGVFbGVtZW50KG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwotICAgIGlmIChvbGRF
bGVtZW50ID09IG5ld0VsZW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIElmIHRoZSBi
YXNlIGlzIGluc2lkZSBhIGRlbGV0YWJsZSBlbGVtZW50LCBnaXZlIHRoZSBlbGVtZW50IGEgZGVs
ZXRlIHdpZGdldC4KLSAgICBpZiAobmV3RWxlbWVudCkKLSAgICAgICAgc2hvdyhuZXdFbGVtZW50
KTsKLSAgICBlbHNlCi0gICAgICAgIGhpZGUoKTsKLX0KLQotdm9pZCBEZWxldGVCdXR0b25Db250
cm9sbGVyOjpkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQoKQotewotICAgIGlmICghZW5hYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgSFRNTEVsZW1lbnQqIGN1cnJlbnRUYXJnZXQg
PSBtX3RhcmdldC5nZXQoKTsKLSAgICBoaWRlKCk7Ci0KLSAgICAvLyBTZXR0aW5nIG1fY29udGFp
bmVyRWxlbWVudCB0byAwIHdpbGwgZm9yY2UgdGhlIGRlbGV0aW9uVUkgdG8gYmUgcmUtY3JlYXRl
ZCB3aXRoCi0gICAgLy8gYXJ0d29yayBvZiB0aGUgYXBwcm9wcmlhdGUgcmVzb2x1dGlvbiBpbiBz
aG93KCkuCi0gICAgbV9jb250YWluZXJFbGVtZW50ID0gMDsKLSAgICBzaG93KGN1cnJlbnRUYXJn
ZXQpOwotfQotCi12b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUko
KQotewotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY29udGFpbmVyID0gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShtX3RhcmdldC0+ZG9jdW1lbnQoKSk7Ci0gICAgY29udGFpbmVyLT5zZXRJZEF0
dHJpYnV0ZShjb250YWluZXJFbGVtZW50SWRlbnRpZmllcik7Ci0KLSAgICBjb250YWluZXItPnNl
dElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVO
b25lKTsKLSAgICBjb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlX
ZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOwotICAgIGNvbnRhaW5lci0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZE9u
bHkpOwotICAgIGNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVZp
c2liaWxpdHksIENTU1ZhbHVlSGlkZGVuKTsKLSAgICBjb250YWluZXItPnNldElubGluZVN0eWxl
UHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgY29u
dGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Q3Vyc29yLCBDU1NWYWx1
ZURlZmF1bHQpOwotICAgIGNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVRvcCwgMCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgY29udGFpbmVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5UmlnaHQsIDAsIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUFgpOwotICAgIGNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJvdHRvbSwgMCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgY29udGFp
bmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5TGVmdCwgMCwgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19QWCk7Ci0KLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG91dGxpbmUg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKG1fdGFyZ2V0LT5kb2N1bWVudCgpKTsKLSAgICBvdXRs
aW5lLT5zZXRJZEF0dHJpYnV0ZShvdXRsaW5lRWxlbWVudElkZW50aWZpZXIpOwotCi0gICAgY29u
c3QgaW50IGJvcmRlcldpZHRoID0gNDsKLSAgICBjb25zdCBpbnQgYm9yZGVyUmFkaXVzID0gNjsK
LQotICAgIG91dGxpbmUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlv
biwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgb3V0bGluZS0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0
eShDU1NQcm9wZXJ0eVpJbmRleCwgQVNDSUlMaXRlcmFsKCItMTAwMDAwMCIpKTsKLSAgICBvdXRs
aW5lLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCAtYm9yZGVyV2lkdGgg
LSBtX3RhcmdldC0+cmVuZGVyQm94KCktPmJvcmRlclRvcCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BYKTsKLSAgICBvdXRsaW5lLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
UmlnaHQsIC1ib3JkZXJXaWR0aCAtIG1fdGFyZ2V0LT5yZW5kZXJCb3goKS0+Ym9yZGVyUmlnaHQo
KSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgb3V0bGluZS0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvdHRvbSwgLWJvcmRlcldpZHRoIC0gbV90YXJnZXQtPnJl
bmRlckJveCgpLT5ib3JkZXJCb3R0b20oKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0g
ICAgb3V0bGluZS0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUxlZnQsIC1ib3Jk
ZXJXaWR0aCAtIG1fdGFyZ2V0LT5yZW5kZXJCb3goKS0+Ym9yZGVyTGVmdCgpLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1BYKTsKLSAgICBvdXRsaW5lLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGJvcmRlcldpZHRoLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BYKTsKLSAgICBvdXRsaW5lLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Qm9y
ZGVyU3R5bGUsIENTU1ZhbHVlU29saWQpOwotICAgIG91dGxpbmUtPnNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgQVNDSUlMaXRlcmFsKCJyZ2JhKDAsIDAsIDAs
IDAuNikiKSk7Ci0gICAgb3V0bGluZS0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlclJhZGl1cywgYm9yZGVyUmFkaXVzLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsK
LSAgICBvdXRsaW5lLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VmlzaWJpbGl0
eSwgQ1NTVmFsdWVWaXNpYmxlKTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQob3V0bGluZS5nZXQoKSwgZWMpOwotICAgIEFTU0VSVCghZWMp
OwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPERlbGV0ZUJ1dHRv
bj4gYnV0dG9uID0gRGVsZXRlQnV0dG9uOjpjcmVhdGUobV90YXJnZXQtPmRvY3VtZW50KCkpOwot
ICAgIGJ1dHRvbi0+c2V0SWRBdHRyaWJ1dGUoYnV0dG9uRWxlbWVudElkZW50aWZpZXIpOwotCi0g
ICAgY29uc3QgaW50IGJ1dHRvbldpZHRoID0gMzA7Ci0gICAgY29uc3QgaW50IGJ1dHRvbkhlaWdo
dCA9IDMwOwotICAgIGNvbnN0IGludCBidXR0b25Cb3R0b21TaGFkb3dPZmZzZXQgPSAyOwotCi0g
ICAgYnV0dG9uLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlQWJzb2x1dGUpOwotICAgIGJ1dHRvbi0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVpJbmRleCwgQVNDSUlMaXRlcmFsKCIxMDAwMDAwIikpOwotICAgIGJ1dHRvbi0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgKC1idXR0b25IZWlnaHQgLyAyKSAt
IG1fdGFyZ2V0LT5yZW5kZXJCb3goKS0+Ym9yZGVyVG9wKCkgLSAoYm9yZGVyV2lkdGggLyAyKSAr
IGJ1dHRvbkJvdHRvbVNoYWRvd09mZnNldCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0g
ICAgYnV0dG9uLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5TGVmdCwgKC1idXR0
b25XaWR0aCAvIDIpIC0gbV90YXJnZXQtPnJlbmRlckJveCgpLT5ib3JkZXJMZWZ0KCkgLSAoYm9y
ZGVyV2lkdGggLyAyKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgYnV0dG9uLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIGJ1dHRvbldpZHRoLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKLSAgICBidXR0b24tPnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlIZWlnaHQsIGJ1dHRvbkhlaWdodCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QWCk7Ci0gICAgYnV0dG9uLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Vmlz
aWJpbGl0eSwgQ1NTVmFsdWVWaXNpYmxlKTsKLQotICAgIFJlZlB0cjxJbWFnZT4gYnV0dG9uSW1h
Z2U7Ci0gICAgaWYgKG1fdGFyZ2V0LT5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkgPj0g
MikKLSAgICAgICAgYnV0dG9uSW1hZ2UgPSBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoImRl
bGV0ZUJ1dHRvbkAyeCIpOwotICAgIGVsc2UKLSAgICAgICAgYnV0dG9uSW1hZ2UgPSBJbWFnZTo6
bG9hZFBsYXRmb3JtUmVzb3VyY2UoImRlbGV0ZUJ1dHRvbiIpOwotCi0gICAgaWYgKGJ1dHRvbklt
YWdlLT5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYnV0dG9uLT5zZXRDYWNoZWRJ
bWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0KCksIG1fZnJhbWUucGFnZSgpLT5z
ZXNzaW9uSUQoKSkpOwotCi0gICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChidXR0b24uZ2V0KCks
IGVjKTsKLSAgICBBU1NFUlQoIWVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fY29udGFpbmVyRWxlbWVudCA9IGNvbnRhaW5lci5yZWxlYXNlKCk7Ci0gICAgbV9vdXRs
aW5lRWxlbWVudCA9IG91dGxpbmUucmVsZWFzZSgpOwotICAgIG1fYnV0dG9uRWxlbWVudCA9IGJ1
dHRvbi5yZWxlYXNlKCk7Ci19Ci0KLXZvaWQgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6c2hvdyhI
VE1MRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICBoaWRlKCk7Ci0KLSAgICBpZiAoIWVuYWJsZWQo
KSB8fCAhZWxlbWVudCB8fCAhZWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8ICFpc0RlbGV0YWJsZUVs
ZW1lbnQoZWxlbWVudCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEVkaXRvckNsaWVudCogY2xp
ZW50ID0gbV9mcmFtZS5lZGl0b3IoKS5jbGllbnQoKTsKLSAgICBpZiAoIWNsaWVudCB8fCAhY2xp
ZW50LT5zaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKGVsZW1lbnQpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyB3ZSByZWx5IG9uIHRoZSByZW5kZXJlciBoYXZpbmcgY3VycmVudCBpbmZvcm1h
dGlvbiwgc28gd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgbGF5b3V0IGlmIG5lZWRlZAotICAgIG1fZnJh
bWUuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0K
LSAgICBtX3RhcmdldCA9IGVsZW1lbnQ7Ci0KLSAgICBpZiAoIW1fY29udGFpbmVyRWxlbWVudCkg
ewotICAgICAgICBjcmVhdGVEZWxldGlvblVJKCk7Ci0gICAgICAgIGlmICghbV9jb250YWluZXJF
bGVtZW50KSB7Ci0gICAgICAgICAgICBoaWRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBtX3RhcmdldC0+
YXBwZW5kQ2hpbGQobV9jb250YWluZXJFbGVtZW50LmdldCgpLCBlYyk7Ci0gICAgQVNTRVJUKCFl
Yyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIGhpZGUoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChtX3RhcmdldC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5wb3NpdGlvbigpID09
IFN0YXRpY1Bvc2l0aW9uKSB7Ci0gICAgICAgIG1fdGFyZ2V0LT5zZXRJbmxpbmVTdHlsZVByb3Bl
cnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlUmVsYXRpdmUpOwotICAgICAgICBtX3dh
c1N0YXRpY1Bvc2l0aW9uZWQgPSB0cnVlOwotICAgIH0KLQotICAgIGlmIChtX3RhcmdldC0+cmVu
ZGVyZXIoKS0+c3R5bGUoKS5oYXNBdXRvWkluZGV4KCkpIHsKLSAgICAgICAgbV90YXJnZXQtPnNl
dElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlaSW5kZXgsIEFTQ0lJTGl0ZXJhbCgiMCIp
KTsKLSAgICAgICAgbV93YXNBdXRvWkluZGV4ID0gdHJ1ZTsKLSAgICB9Ci19Ci0KLXZvaWQgRGVs
ZXRlQnV0dG9uQ29udHJvbGxlcjo6aGlkZSgpCi17Ci0gICAgbV9vdXRsaW5lRWxlbWVudCA9IDA7
Ci0gICAgbV9idXR0b25FbGVtZW50ID0gMDsKLQotICAgIGlmIChtX2NvbnRhaW5lckVsZW1lbnQg
JiYgbV9jb250YWluZXJFbGVtZW50LT5wYXJlbnROb2RlKCkpCi0gICAgICAgIG1fY29udGFpbmVy
RWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChtX2NvbnRhaW5lckVsZW1lbnQuZ2V0
KCksIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAgaWYgKG1fdGFyZ2V0KSB7Ci0gICAgICAgIGlm
IChtX3dhc1N0YXRpY1Bvc2l0aW9uZWQpCi0gICAgICAgICAgICBtX3RhcmdldC0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0aW9uLCBDU1NWYWx1ZVN0YXRpYyk7Ci0gICAg
ICAgIGlmIChtX3dhc0F1dG9aSW5kZXgpCi0gICAgICAgICAgICBtX3RhcmdldC0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVpJbmRleCwgQ1NTVmFsdWVBdXRvKTsKLSAgICB9Ci0K
LSAgICBtX3dhc1N0YXRpY1Bvc2l0aW9uZWQgPSBmYWxzZTsKLSAgICBtX3dhc0F1dG9aSW5kZXgg
PSBmYWxzZTsKLX0KLQotdm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVyOjplbmFibGUoKQotewot
ICAgIEFTU0VSVChtX2Rpc2FibGVTdGFjayA+IDApOwotICAgIGlmIChtX2Rpc2FibGVTdGFjayA+
IDApCi0gICAgICAgIG1fZGlzYWJsZVN0YWNrLS07Ci0gICAgaWYgKGVuYWJsZWQoKSkgewotICAg
ICAgICAvLyBEZXRlcm1pbmluZyBpZiB0aGUgZWxlbWVudCBpcyBkZWxldGFibGUgY3VycmVudGx5
IGRlcGVuZHMgb24gc3R5bGUKLSAgICAgICAgLy8gYmVjYXVzZSB3aGV0aGVyIHNvbWV0aGluZyBp
cyBlZGl0YWJsZSBkZXBlbmRzIG9uIHN0eWxlLCBzbyB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIHJl
Y2FsY3VsYXRlIHN0eWxlIGJlZm9yZSBjYWxsaW5nIGVuY2xvc2luZ0RlbGV0YWJsZUVsZW1lbnQu
Ci0gICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwotICAg
ICAgICBzaG93KGVuY2xvc2luZ0RlbGV0YWJsZUVsZW1lbnQobV9mcmFtZS5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKSkpOwotICAgIH0KLX0KLQotdm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVyOjpk
aXNhYmxlKCkKLXsKLSAgICBpZiAoZW5hYmxlZCgpKQotICAgICAgICBoaWRlKCk7Ci0gICAgbV9k
aXNhYmxlU3RhY2srKzsKLX0KLQotY2xhc3MgUmVtb3ZlVGFyZ2V0Q29tbWFuZCA6IHB1YmxpYyBD
b21wb3NpdGVFZGl0Q29tbWFuZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVt
b3ZlVGFyZ2V0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxO
b2RlPiB0YXJnZXQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW92ZVRh
cmdldENvbW1hbmQoZG9jdW1lbnQsIHRhcmdldCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBS
ZW1vdmVUYXJnZXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiB0
YXJnZXQpCi0gICAgICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCi0gICAgICAg
ICwgbV90YXJnZXQodGFyZ2V0KQotICAgIHsgfQotCi0gICAgdm9pZCBkb0FwcGx5KCkKLSAgICB7
Ci0gICAgICAgIHJlbW92ZU5vZGUobV90YXJnZXQpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBS
ZWZQdHI8Tm9kZT4gbV90YXJnZXQ7Ci19OwotCi12b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6
OmRlbGV0ZVRhcmdldCgpCi17Ci0gICAgaWYgKCFlbmFibGVkKCkgfHwgIW1fdGFyZ2V0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBoaWRlKCk7Ci0KLSAgICAvLyBCZWNhdXNlIHRoZSBkZWxldGlv
biBVSSBvbmx5IGFwcGVhcnMgd2hlbiB0aGUgc2VsZWN0aW9uIGlzIGVudGlyZWx5Ci0gICAgLy8g
d2l0aGluIHRoZSB0YXJnZXQsIHdlIHVuY29uZGl0aW9uYWxseSB1cGRhdGUgdGhlIHNlbGVjdGlv
biB0byBiZQotICAgIC8vIGEgY2FyZXQgd2hlcmUgdGhlIHRhcmdldCBoYWQgYmVlbi4KLSAgICBQ
b3NpdGlvbiBwb3MgPSBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShtX3RhcmdldC5nZXQoKSk7
Ci0gICAgQVNTRVJUKG1fZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlbW92
ZVRhcmdldENvbW1hbmQ6OmNyZWF0ZSgqbV9mcmFtZS5kb2N1bWVudCgpLCBtX3RhcmdldCkpOwot
ICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVQb3NpdGlvbihwb3Mp
KTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gMTc1
NjI0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBEZWxldGVCdXR0b25Db250cm9s
bGVyX2gKLSNkZWZpbmUgRGVsZXRlQnV0dG9uQ29udHJvbGxlcl9oCi0KLSNpZiBFTkFCTEUoREVM
RVRJT05fVUkpCi0KLSNpbmNsdWRlICJEZWxldGVCdXR0b24uaCIKLSNpbmNsdWRlICJFZGl0b3Iu
aCIKLSNpbmNsdWRlICJGcmFtZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERl
bGV0ZUJ1dHRvbjsKLWNsYXNzIEhUTUxFbGVtZW50OwotY2xhc3MgUmVuZGVyT2JqZWN0OwotY2xh
c3MgVmlzaWJsZVNlbGVjdGlvbjsKLQotY2xhc3MgRGVsZXRlQnV0dG9uQ29udHJvbGxlciB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVsZXRlQnV0dG9uQ29udHJvbGxlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IERlbGV0ZUJ1dHRvbkNvbnRy
b2xsZXIoRnJhbWUmKTsKLQotICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9jb250YWluZXJFbGVtZW50LmdldCgpOyB9Ci0KLSAgICB2b2lkIHJlc3Bv
bmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9u
KTsKLQotICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0KLSAgICB2b2lkIHNo
b3coSFRNTEVsZW1lbnQqKTsKLSAgICB2b2lkIGhpZGUoKTsKLQotICAgIHZvaWQgZGVsZXRlVGFy
Z2V0KCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJ1dHRvbkVs
ZW1lbnRJZGVudGlmaWVyOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvdXRsaW5lRWxl
bWVudElkZW50aWZpZXI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvbnRhaW5lckVs
ZW1lbnRJZGVudGlmaWVyOwotICAgIAotICAgIHZvaWQgZW5hYmxlKCk7Ci0gICAgdm9pZCBkaXNh
YmxlKCk7Ci0gICAgZnJpZW5kIGNsYXNzIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXJEaXNhYmxlU2Nv
cGU7Ci0KLSAgICB2b2lkIGNyZWF0ZURlbGV0aW9uVUkoKTsKLSAgICBib29sIGVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiAoIW1fZGlzYWJsZVN0YWNrKTsgfQotCi0gICAgRnJhbWUmIG1fZnJhbWU7
Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX3RhcmdldDsKLSAgICBSZWZQdHI8SFRNTEVsZW1l
bnQ+IG1fY29udGFpbmVyRWxlbWVudDsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fb3V0bGlu
ZUVsZW1lbnQ7Ci0gICAgUmVmUHRyPERlbGV0ZUJ1dHRvbj4gbV9idXR0b25FbGVtZW50OwotICAg
IGJvb2wgbV93YXNTdGF0aWNQb3NpdGlvbmVkOwotICAgIGJvb2wgbV93YXNBdXRvWkluZGV4Owot
ICAgIHVuc2lnbmVkIG1fZGlzYWJsZVN0YWNrOwotfTsKLQotY2xhc3MgRGVsZXRlQnV0dG9uQ29u
dHJvbGxlckRpc2FibGVTY29wZSB7Ci1wdWJsaWM6Ci0gICAgRGVsZXRlQnV0dG9uQ29udHJvbGxl
ckRpc2FibGVTY29wZShGcmFtZSogZnJhbWUpCi0gICAgICAgIDogbV9mcmFtZShmcmFtZSkKLSAg
ICB7Ci0gICAgICAgIGlmIChmcmFtZSkKLSAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5kZWxl
dGVCdXR0b25Db250cm9sbGVyKCkuZGlzYWJsZSgpOwotICAgIH0KLQotICAgIH5EZWxldGVCdXR0
b25Db250cm9sbGVyRGlzYWJsZVNjb3BlKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2ZyYW1lKQot
ICAgICAgICAgICAgbV9mcmFtZS0+ZWRpdG9yKCkuZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpLmVu
YWJsZSgpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoREVMRVRJT05f
VUkpCi0KLSNlbmRpZiAvLyBEZWxldGVCdXR0b25Db250cm9sbGVyX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiAxNzU2MjQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBFZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBt
X3BhcmVudCgwKQogewogICAgIEFTU0VSVChkb2N1bWVudC5mcmFtZSgpKTsKLSAgICBzZXRTdGFy
dGluZ1NlbGVjdGlvbihtX2RvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS5hdm9pZEludGVyc2Vj
dGlvbldpdGhEZWxldGVCdXR0b25Db250cm9sbGVyKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpKSk7CisgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVu
dC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwogICAgIHNldEVuZGluZ1NlbGVj
dGlvbihtX3N0YXJ0aW5nU2VsZWN0aW9uKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxMCArOTQsNiBAQAogI2luY2x1ZGUgIm1hcmt1
cC5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKLSNpZiBFTkFC
TEUoREVMRVRJT05fVUkpCi0jaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgotI2Vu
ZGlmCi0KICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZElPUy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTE0OCw2MyArMTQ0LDYg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2lu
ZyBuYW1lc3BhY2UgVW5pY29kZTsKIAotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLQotUGFzc1Jl
ZlB0cjxSYW5nZT4gRWRpdG9yOjphdm9pZEludGVyc2VjdGlvbldpdGhEZWxldGVCdXR0b25Db250
cm9sbGVyKGNvbnN0IFJhbmdlKiByYW5nZSkgY29uc3QKLXsKLSAgICBpZiAoIXJhbmdlKQotICAg
ICAgICByZXR1cm4gMDsKLQotICAgIE5vZGUqIHN0YXJ0Q29udGFpbmVyID0gcmFuZ2UtPnN0YXJ0
Q29udGFpbmVyKCk7Ci0gICAgaW50IHN0YXJ0T2Zmc2V0ID0gcmFuZ2UtPnN0YXJ0T2Zmc2V0KCk7
Ci0gICAgTm9kZSogZW5kQ29udGFpbmVyID0gcmFuZ2UtPmVuZENvbnRhaW5lcigpOwotICAgIGlu
dCBlbmRPZmZzZXQgPSByYW5nZS0+ZW5kT2Zmc2V0KCk7Ci0KLSAgICBpZiAoIXN0YXJ0Q29udGFp
bmVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChlbmRDb250YWluZXIpOwotCi0g
ICAgRWxlbWVudCogZWxlbWVudCA9IG1fZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+Y29udGFpbmVy
RWxlbWVudCgpOwotICAgIGlmIChzdGFydENvbnRhaW5lciA9PSBlbGVtZW50IHx8IHN0YXJ0Q29u
dGFpbmVyLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KSkgewotICAgICAgICBBU1NFUlQoZWxlbWVu
dC0+cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgc3RhcnRDb250YWluZXIgPSBlbGVtZW50LT5wYXJl
bnROb2RlKCk7Ci0gICAgICAgIHN0YXJ0T2Zmc2V0ID0gZWxlbWVudC0+Y29tcHV0ZU5vZGVJbmRl
eCgpOwotICAgIH0KLSAgICBpZiAoZW5kQ29udGFpbmVyID09IGVsZW1lbnQgfHwgZW5kQ29udGFp
bmVyLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KSkgewotICAgICAgICBBU1NFUlQoZWxlbWVudC0+
cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgZW5kQ29udGFpbmVyID0gZWxlbWVudC0+cGFyZW50Tm9k
ZSgpOwotICAgICAgICBlbmRPZmZzZXQgPSBlbGVtZW50LT5jb21wdXRlTm9kZUluZGV4KCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUocmFuZ2UtPm93bmVyRG9jdW1lbnQoKSwg
c3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0LCBlbmRDb250YWluZXIsIGVuZE9mZnNldCk7Ci19
Ci0KLVZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjphdm9pZEludGVyc2VjdGlvbldpdGhEZWxldGVC
dXR0b25Db250cm9sbGVyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikgY29uc3QK
LXsKLSAgICBpZiAoc2VsZWN0aW9uLmlzTm9uZSgpKQotICAgICAgICByZXR1cm4gc2VsZWN0aW9u
OwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9IG1fZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+Y29u
dGFpbmVyRWxlbWVudCgpOwotICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIHNlbGVj
dGlvbjsKLSAgICBWaXNpYmxlU2VsZWN0aW9uIHVwZGF0ZWRTZWxlY3Rpb24gPSBzZWxlY3Rpb247
Ci0KLSAgICBQb3NpdGlvbiB1cGRhdGVkQmFzZSA9IHNlbGVjdGlvbi5iYXNlKCk7Ci0gICAgdXBk
YXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbCh1cGRhdGVkQmFzZSwgZWxlbWVudCk7Ci0gICAgaWYg
KHVwZGF0ZWRCYXNlICE9IHNlbGVjdGlvbi5iYXNlKCkpCi0gICAgICAgIHVwZGF0ZWRTZWxlY3Rp
b24uc2V0QmFzZSh1cGRhdGVkQmFzZSk7Ci0KLSAgICBQb3NpdGlvbiB1cGRhdGVkRXh0ZW50ID0g
c2VsZWN0aW9uLmV4dGVudCgpOwotICAgIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWwodXBk
YXRlZEV4dGVudCwgZWxlbWVudCk7Ci0gICAgaWYgKHVwZGF0ZWRFeHRlbnQgIT0gc2VsZWN0aW9u
LmV4dGVudCgpKQotICAgICAgICB1cGRhdGVkU2VsZWN0aW9uLnNldEV4dGVudCh1cGRhdGVkRXh0
ZW50KTsKLQotICAgIHJldHVybiB1cGRhdGVkU2VsZWN0aW9uOwotfQotCi0jZW5kaWYKLQogLy8g
V2hlbiBhbiBldmVudCBoYW5kbGVyIGhhcyBtb3ZlZCB0aGUgc2VsZWN0aW9uIG91dHNpZGUgb2Yg
YSB0ZXh0IGNvbnRyb2wKIC8vIHdlIHNob3VsZCB1c2UgdGhlIHRhcmdldCBjb250cm9sJ3Mgc2Vs
ZWN0aW9uIGZvciB0aGlzIGVkaXRpbmcgb3BlcmF0aW9uLgogVmlzaWJsZVNlbGVjdGlvbiBFZGl0
b3I6OnNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqIGV2ZW50KQpAQCAtMTEyNyw5ICsxMDY2LDYg
QEAgdm9pZCBFZGl0b3I6OnJlYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cgogCiBFZGl0b3I6OkVk
aXRvcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQotI2lmIEVOQUJMRShERUxF
VElPTl9VSSkKLSAgICAsIG1fZGVsZXRlQnV0dG9uQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVl
PERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI+KGZyYW1lKSkKLSNlbmRpZgogICAgICwgbV9pZ25vcmVD
b21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZShmYWxzZSkKICAgICAsIG1fc2hvdWxkU3RhcnROZXdL
aWxsUmluZ1NlcXVlbmNlKGZhbHNlKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNp
bmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQg
bm90IEZGKS4KQEAgLTExNTksMTAgKzEwOTUsNiBAQCB2b2lkIEVkaXRvcjo6Y2xlYXIoKQogICAg
IG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmNsZWFyKCk7CiAgICAgbV9zaG91bGRTdHls
ZVdpdGhDU1MgPSBmYWxzZTsKICAgICBtX2RlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IgPSBFZGl0
b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc0RpdjsKLQotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSAg
ICBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPERlbGV0ZUJ1dHRv
bkNvbnRyb2xsZXI+KG1fZnJhbWUpOwotI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCkKQEAgLTI3ODUs
NyArMjcxNyw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VGb3JQb2ludCgKICAg
ICBJbnRQb2ludCBmcmFtZVBvaW50ID0gZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKHdpbmRv
d1BvaW50KTsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZS0+dmlzaWJsZVBv
c2l0aW9uRm9yUG9pbnQoZnJhbWVQb2ludCkpOwogCi0gICAgcmV0dXJuIGF2b2lkSW50ZXJzZWN0
aW9uV2l0aERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoc2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdl
KCkuZ2V0KCkpOworICAgIHJldHVybiBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKIH0K
IAogdm9pZCBFZGl0b3I6OnJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihjb25z
dCBTY3JvbGxBbGlnbm1lbnQmIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9uIHJldmVhbEV4
dGVudE9wdGlvbikKQEAgLTM1MDgsOSArMzQ0MCw2IEBAIHZvaWQgRWRpdG9yOjplZGl0b3JVSVVw
ZGF0ZVRpbWVyRmlyZWQoVGkKICAgICBpZiAoIWlzQ29udGludW91c0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQpCiAgICAgICAgIGRvY3VtZW50KCkubWFya2VycygpLnJlbW92ZU1hcmtlcnMoRG9jdW1l
bnRNYXJrZXI6OkdyYW1tYXIpOwogCi0jaWYgRU5BQkxFKERFTEVUSU9OX1VJKQotICAgIG1fZGVs
ZXRlQnV0dG9uQ29udHJvbGxlci0+cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihvbGRTZWxlY3Rp
b24pOwotI2VuZGlmCiAgICAgaWYgKCFtX2VkaXRvclVJVXBkYXRlVGltZXJXYXNUcmlnZ2VyZWRC
eURpY3RhdGlvbikKICAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5yZXNwb25k
VG9DaGFuZ2VkU2VsZWN0aW9uKG9sZFNlbGVjdGlvbik7CiAKQEAgLTM1OTIsMTMgKzM1MjEsNiBA
QCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBFZGl0b3I6OnJlc29sdmVUZXh0CiAgICAgcmV0dXJuIGNo
ZWNraW5nVHlwZXM7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQo
KQotewotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSAgICBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xs
ZXItPmRldmljZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwotI2VuZGlmCi19Ci0KIGJvb2wgRWRpdG9y
Ojp1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViQ29y
ZTo6dW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCgmbV9mcmFtZSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgJKHJldmlzaW9uIDE3NTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5MCwxNiArMzkwLDExIEBAIHB1YmxpYzoKICAg
ICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXBsaWZ5TWFya3VwKE5vZGUqIHN0YXJ0Tm9k
ZSwgTm9kZSogZW5kTm9kZSk7CiAKLSAgICB2b2lkIGRldmljZVNjYWxlRmFjdG9yQ2hhbmdlZCgp
OwotCiAgICAgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9yIGRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0
b3IoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3I7IH0KICAgICB2
b2lkIHNldERlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IoRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9y
IHNlcGFyYXRvcikgeyBtX2RlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IgPSBzZXBhcmF0b3I7IH0K
ICAgICBWZWN0b3I8U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNGb3JNYXJrZXIoY29uc3Qg
RG9jdW1lbnRNYXJrZXIqKTsKICAgICB2b2lkIGFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmVsdGVy
bmF0aXZlKGNvbnN0IFN0cmluZyYgYWx0ZXJuYXRpdmVTdHJpbmcpOwogCi0gICAgUGFzc1JlZlB0
cjxSYW5nZT4gYXZvaWRJbnRlcnNlY3Rpb25XaXRoRGVsZXRlQnV0dG9uQ29udHJvbGxlcihjb25z
dCBSYW5nZSopIGNvbnN0OwotICAgIFZpc2libGVTZWxlY3Rpb24gYXZvaWRJbnRlcnNlY3Rpb25X
aXRoRGVsZXRlQnV0dG9uQ29udHJvbGxlcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgY29uc3Q7
Ci0KICNpZiBVU0UoQVBQS0lUKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBwZXJjYXNlV29y
ZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG93ZXJjYXNlV29yZCgpOwpAQCAtNDIyLDEw
ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b2dnbGVBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb24oKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKERFTEVUSU9OX1VJ
KQotICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXImIGRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiAqbV9kZWxldGVCdXR0b25Db250cm9sbGVyOyB9Ci0jZW5kaWYKLQogICAg
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKFBh
c3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hv
c2VQbGFpblRleHQpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTYsOSArNDg3LDYgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0jaWYgRU5BQkxFKERFTEVU
SU9OX1VJKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWxldGVCdXR0b25Db250cm9sbGVyPiBtX2Rl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI7Ci0jZW5kaWYKICAgICBSZWZQdHI8Q29tcG9zaXRlRWRpdENv
bW1hbmQ+IG1fbGFzdEVkaXRDb21tYW5kOwogICAgIFJlZlB0cjxUZXh0PiBtX2NvbXBvc2l0aW9u
Tm9kZTsKICAgICB1bnNpZ25lZCBtX2NvbXBvc2l0aW9uU3RhcnQ7CkBAIC01NTAsMjAgKzUzOCw2
IEBAIGlubGluZSBib29sIEVkaXRvcjo6bWFya2VkVGV4dE1hdGNoZXNBcmUKICAgICByZXR1cm4g
bV9hcmVNYXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkOwogfQogCi0jaWYgIUVOQUJMRShERUxF
VElPTl9VSSkKLQotaW5saW5lIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6YXZvaWRJbnRlcnNl
Y3Rpb25XaXRoRGVsZXRlQnV0dG9uQ29udHJvbGxlcihjb25zdCBSYW5nZSogcmFuZ2UpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmFuZ2UqPihyYW5nZSk7Ci19Ci0KLWlubGluZSBW
aXNpYmxlU2VsZWN0aW9uIEVkaXRvcjo6YXZvaWRJbnRlcnNlY3Rpb25XaXRoRGVsZXRlQnV0dG9u
Q29udHJvbGxlcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIHNlbGVjdGlvbjsKLX0KLQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVkaXRvcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCwx
NyArMTI4LDE0IEBAIE1hcmt1cEFjY3VtdWxhdG9yOjp+TWFya3VwQWNjdW11bGF0b3IoKQogewog
fQogCi1TdHJpbmcgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzKE5vZGUmIHRhcmdl
dE5vZGUsIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBWZWN0
b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQorU3RyaW5nIE1hcmt1cEFjY3VtdWxh
dG9yOjpzZXJpYWxpemVOb2RlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxk
cmVuT25seSwgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCkKIHsKLSAgICBz
ZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKHRhcmdldE5vZGUsIG5vZGVUb1NraXAsIGNoaWxk
cmVuT25seSwgMCwgdGFnTmFtZXNUb1NraXApOworICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVz
cGFjZXModGFyZ2V0Tm9kZSwgY2hpbGRyZW5Pbmx5LCAwLCB0YWdOYW1lc1RvU2tpcCk7CiAgICAg
cmV0dXJuIG1fbWFya3VwLnRvU3RyaW5nKCk7CiB9CiAKLXZvaWQgTWFya3VwQWNjdW11bGF0b3I6
OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgTm9kZSogbm9k
ZVRvU2tpcCwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIGNvbnN0IE5hbWVzcGFjZXMqIG5h
bWVzcGFjZXMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXApCit2b2lkIE1h
cmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUmIHRhcmdl
dE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBjb25zdCBOYW1lc3BhY2VzKiBuYW1l
c3BhY2VzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQogewotICAgIGlm
ICgmdGFyZ2V0Tm9kZSA9PSBub2RlVG9Ta2lwKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAo
dGFnTmFtZXNUb1NraXAgJiYgaXM8RWxlbWVudD4odGFyZ2V0Tm9kZSkpIHsKICAgICAgICAgZm9y
IChhdXRvJiBuYW1lIDogKnRhZ05hbWVzVG9Ta2lwKSB7CiAgICAgICAgICAgICBpZiAoZG93bmNh
c3Q8RWxlbWVudD4odGFyZ2V0Tm9kZSkuaGFzVGFnTmFtZShuYW1lKSkKQEAgLTE2NSw3ICsxNjIs
NyBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpCiAgICAgICAgIE5v
ZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLmZpcnN0Q2hpbGQoKTsKICNlbmRpZgogICAgICAgICBm
b3IgKCA7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQotICAgICAg
ICAgICAgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcygqY3VycmVudCwgbm9kZVRvU2tpcCwg
SW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7CisgICAgICAgICAg
ICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKCpjdXJyZW50LCBJbmNsdWRlTm9kZSwgJm5h
bWVzcGFjZUhhc2gsIHRhZ05hbWVzVG9Ta2lwKTsKICAgICB9CiAKICAgICBpZiAoIWNoaWxkcmVu
T25seSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmgJ
KHJldmlzaW9uIDE3NTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11
bGF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgTWFy
a3VwQWNjdW11bGF0b3IoVmVjdG9yPE5vZGUqPiosIEVBYnNvbHV0ZVVSTHMsIGNvbnN0IFJhbmdl
KiA9IDAsIEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9u
KTsKICAgICB2aXJ0dWFsIH5NYXJrdXBBY2N1bXVsYXRvcigpOwogCi0gICAgU3RyaW5nIHNlcmlh
bGl6ZU5vZGVzKE5vZGUmIHRhcmdldE5vZGUsIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9u
bHksIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXAgPSBudWxscHRyKTsKKyAg
ICBTdHJpbmcgc2VyaWFsaXplTm9kZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNoaWxkcmVuT25seSwg
VmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IG51bGxwdHIpOwogCiAgICAg
c3RhdGljIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKFN0cmluZ0J1aWxk
ZXImLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIEVudGl0eU1hc2spOwogCkBA
IC0xMTMsNyArMTEzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBTdHJpbmcgcmVzb2x2
ZVVSTElmTmVlZGVkKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2
b2lkIGFwcGVuZFF1b3RlZFVSTEF0dHJpYnV0ZVZhbHVlKFN0cmluZ0J1aWxkZXImLCBjb25zdCBF
bGVtZW50JiwgY29uc3QgQXR0cmlidXRlJik7Ci0gICAgdm9pZCBzZXJpYWxpemVOb2Rlc1dpdGhO
YW1lc3BhY2VzKE5vZGUmIHRhcmdldE5vZGUsIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9u
bHksIGNvbnN0IE5hbWVzcGFjZXMqLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9T
a2lwKTsKKyAgICB2b2lkIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSYgdGFyZ2V0
Tm9kZSwgRUNoaWxkcmVuT25seSwgY29uc3QgTmFtZXNwYWNlcyosIFZlY3RvcjxRdWFsaWZpZWRO
YW1lPiogdGFnTmFtZXNUb1NraXApOwogICAgIGJvb2wgaW5YTUxGcmFnbWVudFNlcmlhbGl6YXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2VyaWFsaXphdGlvbiA9PSBYTUxGcmFnbWVu
dFNlcmlhbGl6YXRpb247IH0KICAgICB2b2lkIGdlbmVyYXRlVW5pcXVlUHJlZml4KFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBOYW1lc3BhY2VzJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAJKHJldmlzaW9uIDE3NTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDYgQEAKICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jaWYg
RU5BQkxFKERFTEVUSU9OX1VJKQotI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIK
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CkBAIC01NTYsMTUgKzU1MiwxNSBAQCBzdGF0aWMgTm9kZSogaGlnaGVzdEFuY2VzdG9yVG9X
cmFwTWFya3VwCiAKIC8vIEZJWE1FOiBTaG91bGRuJ3Qgd2Ugb21pdCBzdHlsZSBpbmZvIHdoZW4g
YW5ub3RhdGUgPT0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlPyAKIC8vIEZJWE1FOiBBdCBs
ZWFzdCwgYW5ub3RhdGlvbiBhbmQgc3R5bGUgaW5mbyBzaG91bGQgcHJvYmFibHkgbm90IGJlIGlu
Y2x1ZGVkIGluIHJhbmdlLm1hcmt1cFN0cmluZygpCi1zdGF0aWMgU3RyaW5nIGNyZWF0ZU1hcmt1
cEludGVybmFsKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBS
YW5nZSYgdXBkYXRlZFJhbmdlLCBWZWN0b3I8Tm9kZSo+KiBub2RlcywKK3N0YXRpYyBTdHJpbmcg
Y3JlYXRlTWFya3VwSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBSYW5nZSYgcmFu
Z2UsIFZlY3RvcjxOb2RlKj4qIG5vZGVzLAogICAgIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIHNo
b3VsZEFubm90YXRlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMsIEVBYnNvbHV0ZVVSTHMg
c2hvdWxkUmVzb2x2ZVVSTHMpCiB7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCI8
YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lICJcIj4iKSkpOwogCi0gICAgYm9v
bCBjb2xsYXBzZWQgPSB1cGRhdGVkUmFuZ2UuY29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIGJvb2wgY29sbGFwc2VkID0gcmFuZ2UuY29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIGlmIChjb2xsYXBzZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwot
ICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yID0gdXBkYXRlZFJhbmdlLmNvbW1vbkFuY2VzdG9yQ29u
dGFpbmVyKEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yID0g
cmFuZ2UuY29tbW9uQW5jZXN0b3JDb250YWluZXIoQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
aWYgKCFjb21tb25BbmNlc3RvcikKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKQEAg
LTU3NiwxNiArNTcyLDE2IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50ZXJuYWwoRG9j
dW0KICAgICBpZiAoYm9keSAmJiBWaXNpYmxlUG9zaXRpb24oZmlyc3RQb3NpdGlvbkluTm9kZShi
b2R5KSkgPT0gVmlzaWJsZVBvc2l0aW9uKHJhbmdlLnN0YXJ0UG9zaXRpb24oKSkKICAgICAgICAg
JiYgVmlzaWJsZVBvc2l0aW9uKGxhc3RQb3NpdGlvbkluTm9kZShib2R5KSkgPT0gVmlzaWJsZVBv
c2l0aW9uKHJhbmdlLmVuZFBvc2l0aW9uKCkpKQogICAgICAgICBmdWxseVNlbGVjdGVkUm9vdCA9
IGJvZHk7Ci0gICAgTm9kZSogc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gaGlnaGVzdEFuY2VzdG9y
VG9XcmFwTWFya3VwKCZ1cGRhdGVkUmFuZ2UsIHNob3VsZEFubm90YXRlKTsKKyAgICBOb2RlKiBz
cGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAoJnJhbmdl
LCBzaG91bGRBbm5vdGF0ZSk7CiAKICAgICBib29sIG5lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNp
b24gPSBib2R5ICYmIGZ1bGx5U2VsZWN0ZWRSb290ID09IGJvZHkKICAgICAgICAgJiYgZG9jdW1l
bnQuc2V0dGluZ3MoKSAmJiBkb2N1bWVudC5zZXR0aW5ncygpLT5zaG91bGRDb252ZXJ0UG9zaXRp
b25TdHlsZU9uQ29weSgpOwotICAgIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yIGFjY3VtdWxhdG9y
KG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywgc2hvdWxkQW5ub3RhdGUsICZ1cGRhdGVkUmFuZ2Us
IG5lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNpb24sIHNwZWNpYWxDb21tb25BbmNlc3Rvcik7Ci0g
ICAgTm9kZSogcGFzdEVuZCA9IHVwZGF0ZWRSYW5nZS5wYXN0TGFzdE5vZGUoKTsKKyAgICBTdHls
ZWRNYXJrdXBBY2N1bXVsYXRvciBhY2N1bXVsYXRvcihub2Rlcywgc2hvdWxkUmVzb2x2ZVVSTHMs
IHNob3VsZEFubm90YXRlLCAmcmFuZ2UsIG5lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNpb24sIHNw
ZWNpYWxDb21tb25BbmNlc3Rvcik7CisgICAgTm9kZSogcGFzdEVuZCA9IHJhbmdlLnBhc3RMYXN0
Tm9kZSgpOwogCi0gICAgTm9kZSogc3RhcnROb2RlID0gdXBkYXRlZFJhbmdlLmZpcnN0Tm9kZSgp
OwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlU3RhcnQodXBkYXRlZFJhbmdlLnN0YXJ0UG9z
aXRpb24oKSwgVlBfREVGQVVMVF9BRkZJTklUWSk7Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHZpc2li
bGVFbmQodXBkYXRlZFJhbmdlLmVuZFBvc2l0aW9uKCksIFZQX0RFRkFVTFRfQUZGSU5JVFkpOwor
ICAgIE5vZGUqIHN0YXJ0Tm9kZSA9IHJhbmdlLmZpcnN0Tm9kZSgpOworICAgIFZpc2libGVQb3Np
dGlvbiB2aXNpYmxlU3RhcnQocmFuZ2Uuc3RhcnRQb3NpdGlvbigpLCBWUF9ERUZBVUxUX0FGRklO
SVRZKTsKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZUVuZChyYW5nZS5lbmRQb3NpdGlvbigp
LCBWUF9ERUZBVUxUX0FGRklOSVRZKTsKICAgICBpZiAoc2hvdWxkQW5ub3RhdGUgPT0gQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSAmJiBuZWVkSW50ZXJjaGFuZ2VOZXdsaW5lQWZ0ZXIodmlzaWJsZVN0
YXJ0KSkgewogICAgICAgICBpZiAodmlzaWJsZVN0YXJ0ID09IHZpc2libGVFbmQucHJldmlvdXMo
KSkKICAgICAgICAgICAgIHJldHVybiBpbnRlcmNoYW5nZU5ld2xpbmVTdHJpbmc7CkBAIC02NTEs
MjUgKzY0Nyw3IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50ZXJuYWwoRG9jdW0KIAog
U3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYgcmFuZ2UsIFZlY3RvcjxOb2RlKj4qIG5v
ZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBzaG91bGRBbm5vdGF0ZSwgYm9vbCBjb252ZXJ0
QmxvY2tzVG9JbmxpbmVzLCBFQWJzb2x1dGVVUkxzIHNob3VsZFJlc29sdmVVUkxzKQogewotICAg
IERvY3VtZW50JiBkb2N1bWVudCA9IHJhbmdlLm93bmVyRG9jdW1lbnQoKTsKLSAgICBjb25zdCBS
YW5nZSogdXBkYXRlZFJhbmdlID0gJnJhbmdlOwotCi0jaWYgRU5BQkxFKERFTEVUSU9OX1VJKQot
ICAgIC8vIERpc2FibGUgdGhlIGRlbGV0ZSBidXR0b24gc28gaXQncyBlbGVtZW50cyBhcmUgbm90
IHNlcmlhbGl6ZWQgaW50byB0aGUgbWFya3VwLAotICAgIC8vIGJ1dCBtYWtlIHN1cmUgbmVpdGhl
ciBlbmRwb2ludCBpcyBpbnNpZGUgdGhlIGRlbGV0ZSB1c2VyIGludGVyZmFjZS4KLSAgICBGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwotICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXJE
aXNhYmxlU2NvcGUgZGVsZXRlQnV0dG9uQ29udHJvbGxlckRpc2FibGVTY29wZShmcmFtZSk7Ci0K
LSAgICBSZWZQdHI8UmFuZ2U+IHVwZGF0ZWRSYW5nZVJlZjsKLSAgICBpZiAoZnJhbWUpIHsKLSAg
ICAgICAgdXBkYXRlZFJhbmdlUmVmID0gZnJhbWUtPmVkaXRvcigpLmF2b2lkSW50ZXJzZWN0aW9u
V2l0aERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoJnJhbmdlKTsKLSAgICAgICAgdXBkYXRlZFJhbmdl
ID0gdXBkYXRlZFJhbmdlUmVmLmdldCgpOwotICAgICAgICBpZiAoIXVwZGF0ZWRSYW5nZSkKLSAg
ICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0
dXJuIGNyZWF0ZU1hcmt1cEludGVybmFsKGRvY3VtZW50LCByYW5nZSwgKnVwZGF0ZWRSYW5nZSwg
bm9kZXMsIHNob3VsZEFubm90YXRlLCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzLCBzaG91bGRSZXNv
bHZlVVJMcyk7CisgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cEludGVybmFsKHJhbmdlLm93bmVyRG9j
dW1lbnQoKSwgcmFuZ2UsIG5vZGVzLCBzaG91bGRBbm5vdGF0ZSwgY29udmVydEJsb2Nrc1RvSW5s
aW5lcywgc2hvdWxkUmVzb2x2ZVVSTHMpOwogfQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0
cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIFBhcnNlckNvbnRlbnRQb2xpY3kg
cGFyc2VyQ29udGVudFBvbGljeSkKQEAgLTY4OCwxNyArNjY2LDggQEAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbQogCiBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5v
ZGUmIG5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBWZWN0b3I8Tm9kZSo+KiBub2Rl
cywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+
KiB0YWdOYW1lc1RvU2tpcCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiBmcmFnbWVudFNlcmlhbGl6
YXRpb24pCiB7Ci0gICAgSFRNTEVsZW1lbnQqIGRlbGV0ZUJ1dHRvbkNvbnRhaW5lckVsZW1lbnQg
PSAwOwotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gbm9k
ZS5kb2N1bWVudCgpLmZyYW1lKCkpIHsKLSAgICAgICAgZGVsZXRlQnV0dG9uQ29udGFpbmVyRWxl
bWVudCA9IGZyYW1lLT5lZGl0b3IoKS5kZWxldGVCdXR0b25Db250cm9sbGVyKCkuY29udGFpbmVy
RWxlbWVudCgpOwotICAgICAgICBpZiAobm9kZS5pc0Rlc2NlbmRhbnRPZihkZWxldGVCdXR0b25D
b250YWluZXJFbGVtZW50KSkKLSAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAg
IH0KLSNlbmRpZgotCiAgICAgTWFya3VwQWNjdW11bGF0b3IgYWNjdW11bGF0b3Iobm9kZXMsIHNo
b3VsZFJlc29sdmVVUkxzLCAwLCBmcmFnbWVudFNlcmlhbGl6YXRpb24pOwotICAgIHJldHVybiBh
Y2N1bXVsYXRvci5zZXJpYWxpemVOb2Rlcyhjb25zdF9jYXN0PE5vZGUmPihub2RlKSwgZGVsZXRl
QnV0dG9uQ29udGFpbmVyRWxlbWVudCwgY2hpbGRyZW5Pbmx5LCB0YWdOYW1lc1RvU2tpcCk7Cisg
ICAgcmV0dXJuIGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKGNvbnN0X2Nhc3Q8Tm9kZSY+KG5v
ZGUpLCBjaGlsZHJlbk9ubHksIHRhZ05hbWVzVG9Ta2lwKTsKIH0KIAogc3RhdGljIHZvaWQgZmls
bENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJp
bmcmIHN0cmluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlz
aW9uIDE3NTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTI1LDEwICs1MjUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpIG92ZXJyaWRlIHsgfQogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi0gICAgdmlydHVhbCBib29sIHNob3VsZFNob3dE
ZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQqKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQot
I2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dV
bmljb2RlTWVudSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDEwICsxNjQs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbigpID0gMDsKICNlbmRpZgogICAgIAotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCopID0g
MDsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
aG93VW5pY29kZU1lbnUoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2
aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODEzLDkgKzgxMyw2IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2MKICAgICBtYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQo
KTsKICAgICBwYWdlQ2FjaGUoKS0+bWFya1BhZ2VzRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKHRoaXMp
OwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCi0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS5k
ZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLQogICAgIHBhZ2VDYWNoZSgpLT5tYXJrUGFnZXNG
b3JGdWxsU3R5bGVSZWNhbGModGhpcyk7CiAgICAgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1
bWVudE1hcmtlclJlc291cmNlcygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
ZXJpYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFBh
Z2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZShGcmFtCiAgICAgICAgIC8vIEZJWE1FOiBpZnJh
bWVzIHVzZWQgYXMgaW1hZ2VzIHRyaWdnZXIgdGhpcy4gV2Ugc2hvdWxkIGRlYWwgd2l0aCB0aGVt
IGNvcnJlY3RseS4KICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBTdHJpbmcgdGV4dCA9IGFj
Y3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKCpkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCksIDAs
IEluY2x1ZGVOb2RlKTsKKyAgICBTdHJpbmcgdGV4dCA9IGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5v
ZGVzKCpkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCksIEluY2x1ZGVOb2RlKTsKICAgICBDU3Ry
aW5nIGZyYW1lSFRNTCA9IHRleHRFbmNvZGluZy5lbmNvZGUodGV4dCwgRW50aXRpZXNGb3JVbmVu
Y29kYWJsZXMpOwogICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBkb2N1bWVu
dC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1MLmRh
dGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgpKSkpOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTc1NjI0
KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjg1LDE4ICsxMjg1LDYgQEAgdm9pZCBJbnRlcm5hbHM6OnVwZGF0ZUVkaXRvclVJTm93
SWZTY2hlZAogICAgIH0KIH0KIAotTm9kZSogSW50ZXJuYWxzOjpmaW5kRWRpdGluZ0RlbGV0ZUJ1
dHRvbigpCi17Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7Ci0g
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiAw
OwotCi0gICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwotCi0gICAgLy8gRklYTUU6
IFdlIHNob3VsZG4ndCBwb2xsdXRlIHRoZSBpZCBuYW1lc3BhY2Ugd2l0aCB0aGlzIG5hbWUuCi0g
ICAgcmV0dXJuIGRvY3VtZW50LT5nZXRFbGVtZW50QnlJZChTdHJpbmcoQVNDSUlMaXRlcmFsKCJX
ZWJLaXQtRWRpdGluZy1EZWxldGUtQnV0dG9uIikpKTsKLX0KLQogYm9vbCBJbnRlcm5hbHM6Omhh
c1NwZWxsaW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJikKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMTc1NjI0KQorKysgU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw2IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBwYXJzZXJNZXRhRGF0YShEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSA9IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCkpOwogCi0gICAgTm9kZSogZmluZEVkaXRp
bmdEZWxldGVCdXR0b24oKTsKICAgICB2b2lkIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKIAogICAgIGJvb2wgaGFzU3BlbGxpbmdNYXJrZXIoaW50IGZyb20sIGludCBsZW5ndGgsIEV4
Y2VwdGlvbkNvZGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJl
dmlzaW9uIDE3NTYyNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTM3LDggKzEzNyw2IEBAIGVudW0gUGFnZU92ZXJsYXlUeXBlIHsK
IAogICAgIHZvaWQgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwogCi0gICAgTm9kZSBm
aW5kRWRpdGluZ0RlbGV0ZUJ1dHRvbigpOwotCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gYm9vbGVh
biBoYXNTcGVsbGluZ01hcmtlcihsb25nIGZyb20sIGxvbmcgbGVuZ3RoKTsKICAgICBbUmFpc2Vz
RXhjZXB0aW9uXSBib29sZWFuIGhhc0dyYW1tYXJNYXJrZXIobG9uZyBmcm9tLCBsb25nIGxlbmd0
aCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBoYXNBdXRvY29ycmVjdGVkTWFya2Vy
KGxvbmcgZnJvbSwgbG9uZyBsZW5ndGgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1NjQ0
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTQtMTEtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgdGhlIHVudXNlZCBkZWxldGlvbiBVSSBmZWF0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0NDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xp
ZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE0LTExLTA1ICBD
b25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFnZSBw
cmV2aWV3IHBvcG92ZXJzIHNvbWV0aW1lcyBjb3ZlciB0aGVpciBvcmlnaW5hdGluZyBlbGVtZW50
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lvbiAxNzU2MjQpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc2LDE0ICs3Niw2IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGREZWxldGVSYW5nZSgKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgRU5BQkxFKERF
TEVUSU9OX1VJKQotYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZh
Y2UoSFRNTEVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotI2VuZGlmCi0KIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKQogewogICAgIHJldHVybiBtX3BhZ2UtPmlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDE3NTYyNCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMSwxMCArMTIxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShERUxFVElPTl9VSSkKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hv
d0RlbGV0ZUludGVyZmFjZShXZWJDb3JlOjpIVE1MRWxlbWVudCopIG92ZXJyaWRlOwotI2VuZGlm
Ci0KICNpZiBQTEFURk9STShHVEspCiAgICAgYm9vbCBleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1h
bmRzKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGJvb2wpOwog
ICAgIHZvaWQgZ2V0RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXli
b2FyZEV2ZW50KiwgVmVjdG9yPFdURjo6U3RyaW5nPiYpOwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
cmV2aXNpb24gMTc1NjQ0KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMTEtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHVudXNlZCBkZWxldGlvbiBVSSBmZWF0
dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERl
ZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdEVkaXRpbmdEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtX
ZWJEZWZhdWx0RWRpdGluZ0RlbGVnYXRlIHdlYlZpZXc6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFj
ZUZvckVsZW1lbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkVkaXRpbmdEZWxlZ2F0ZVByaXZhdGUuaDog
UmVtb3ZlZCBkZWNsYXJhdGlvbiBvZgorICAgICAgICAtd2ViVmlldzpzaG91bGRTaG93RGVsZXRl
SW50ZXJmYWNlRm9yRWxlbWVudDouCisKIDIwMTQtMTEtMDMgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfRklMVEVSU19MRVZFTF8yIGZlYXR1cmUg
Z3VhcmQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1
bHRFZGl0aW5nRGVsZWdhdGUubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9EZWZh
dWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRFZGl0aW5nRGVsZWdhdGUubQkocmV2aXNpb24gMTc1NjI0
KQorKysgU291cmNlL1dlYktpdC9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0RWRpdGlu
Z0RlbGVnYXRlLm0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEzICs0NSw2IEBAICsgKFdlYkRlZmF1
bHRFZGl0aW5nRGVsZWdhdGUgKilzaGFyZWRFZGkKICAgICByZXR1cm4gc2hhcmVkRGVsZWdhdGU7
CiB9CiAKLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi0tIChCT09MKXdlYlZpZXc6KFdlYlZpZXcg
Kil3ZWJWaWV3IHNob3VsZFNob3dEZWxldGVJbnRlcmZhY2VGb3JFbGVtZW50OihET01IVE1MRWxl
bWVudCAqKWVsZW1lbnQKLXsKLSAgICByZXR1cm4gTk87Ci19Ci0jZW5kaWYKLQogLSAoQk9PTCl3
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOihE
T01SYW5nZSAqKXJhbmdlCiB7CiAgICAgcmV0dXJuIFlFUzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiAx
NzU2MjQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDEwICsxMDYsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSBvdmVycmlkZTsK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKERFTEVUSU9OX1VJKQotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRTaG93RGVsZXRlSW50ZXJmYWNlKFdlYkNvcmU6OkhUTUxFbGVtZW50Kikgb3ZlcnJpZGU7Ci0j
ZW5kaWYKLQogICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdGhpczsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5n
ZWRDb250ZW50cygpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gMTc1NjI0KQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzcsMTQgKzIzNyw2IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91
bGREZWxldGVSYW5nZSgKICAgICAgICAgc2hvdWxkRGVsZXRlRE9NUmFuZ2U6a2l0KHJhbmdlKV07
CiB9CiAKLSNpZiBFTkFCTEUoREVMRVRJT05fVUkpCi1ib29sIFdlYkVkaXRvckNsaWVudDo6c2hv
dWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICByZXR1
cm4gW1ttX3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZp
ZXcKLSAgICAgICAgc2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZUZvckVsZW1lbnQ6a2l0KGVsZW1l
bnQpXTsKLX0KLSNlbmRpZgotCiBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRWRpdGluZ0RlbGVnYXRlUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRWRpdGluZ0RlbGVnYXRl
UHJpdmF0ZS5oCShyZXZpc2lvbiAxNzU2MjQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkVkaXRpbmdEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIs
NiBAQAogCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChXZWJWaWV3RWRpdGluZ0RlbGVnYXRlUHJpdmF0
ZSkKICNpZiAhVEFSR0VUX09TX0lQSE9ORQotLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2Vi
VmlldyBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlRm9yRWxlbWVudDooRE9NSFRNTEVsZW1lbnQg
KillbGVtZW50OwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZDsKICNlbHNlCiAt
IChOU0FycmF5ICopc3VwcG9ydGVkUGFzdGVib2FyZFR5cGVzRm9yQ3VycmVudFNlbGVjdGlvbjsK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NTY0NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE0LTExLTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQgZGVsZXRpb24gVUkgZmVhdHVyZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvRWRpdGluZ0RlbGVnYXRlLm1tOgorICAgICAgICAoLVtFZGl0aW5nRGVsZWdhdGUgd2ViVmll
dzpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlRm9yRWxlbWVudDpdKTogRGVsZXRlZCBpbXBsZW1l
bnRhdGlvbiBvZgorICAgICAgICBkZWxlZ2F0ZSBtZXRob2QgdGhhdOKAmXMgYmVlbiByZW1vdmVk
LgorCiAyMDE0LTExLTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIGZhc3QvZG9tL3JlbW92ZS1ib2R5LWR1cmluZy1ib2R5LXJlcGxhY2VtZW50Mi5odG1s
IGZhaWxzIG9uIFdLMgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0VkaXRpbmdEZWxl
Z2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRWRpdGluZ0Rl
bGVnYXRlLm1tCShyZXZpc2lvbiAxNzU2MjQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RWRpdGluZ0RlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksMTEgKzExOSw2IEBAIC0g
KEJPT0wpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgc2hvdWwKICAgICByZXR1cm4gYWNjZXB0
c0VkaXRpbmc7CiB9CiAKLS0gKEJPT0wpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxk
U2hvd0RlbGV0ZUludGVyZmFjZUZvckVsZW1lbnQ6KERPTUhUTUxFbGVtZW50ICopZWxlbWVudAot
ewotICAgIHJldHVybiBbW2VsZW1lbnQgY2xhc3NOYW1lXSBpc0VxdWFsVG9TdHJpbmc6QCJuZWVk
c0RlbGV0aW9uVUkiXTsKLX0KLQogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b0RP
TVJhbmdlOihET01SYW5nZSAqKXByb3Bvc2VkUmFuZ2UgYWZmaW5pdHk6KE5TU2VsZWN0aW9uQWZm
aW5pdHkpc2VsZWN0aW9uQWZmaW5pdHkgc3RpbGxTZWxlY3Rpbmc6KEJPT0wpZmxhZwogewogICAg
IHN0YXRpYyBjb25zdCBjaGFyICphZmZpbml0eXN0cmluZ1tdID0gewpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTc1NjQ0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTQtMTEtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgdGhlIHVudXNlZCBkZWxldGlvbiBVSSBmZWF0dXJlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0NDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHRlc3RzLCBl
eHBlY3RlZCByZXN1bHRzLCBhbmQgc3VwcG9ydCBmaWxlcyBmb3IgdGhpcyBmZWF0dXJlLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1ib3JkZXJz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9k
ZWxldGluZy9kZWxldGlvblVJLWJvcmRlcnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLWNsaWNrLW9uLWRlbGV0ZS1idXR0
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5n
L2RlbGV0aW5nL2RlbGV0aW9uVUktY2xpY2stb24tZGVsZXRlLWJ1dHRvbi5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlm
ZmVyaW5nLWJhY2tncm91bmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlmZmVyaW5nLWJhY2tncm91bmQu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGlvblVJLW1pbmltdW0tc2l6ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1taW5pbXVtLXNpemUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGlvblVJLXNpbmdsZS1pbnN0YW5jZS1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1zaW5nbGUtaW5zdGFuY2Ut
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWluc3RhbmNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1zdWNjZXNzZnVsLWRl
bGV0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9kZWxldGluZy9kZWxldGlvblVJLXN1Y2Nlc3NmdWwtZGVsZXRpb24uaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9pZC1pbi1kZWxldGVi
dXR0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0
aW5nL2RlbGV0aW5nL2lkLWluLWRlbGV0ZWJ1dHRvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL3Jlc291cmNlczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9yZXNvdXJjZXMvZGVsZXRpb25VSS1o
ZWxwZXJzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDE0LTExLTA0ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBEZXNjZW5kYW50IGVuZHMgdXAgaW4gd3JvbmcgZmxvdyB0aHJlYWQgd2l0aCBuZXN0ZWQg
Y29sdW1ucyBhbmQgc3BhbnMuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGlvblVJLWJvcmRlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktYm9y
ZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktYm9yZGVycy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyB0ZXN0cyBpZiB0aGUgZGVsZXRp
b24gVUkgd2lsbCBzaG93IG9uIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IG51bWJlcnMgb2Ygdmlz
aWJsZSBib3JkZXJzLiBUaGlzIHRlc3QgY2FuIGJlIHJ1biBieSBEUlQgYnV0IG5vdCBpbiB0aGUg
YnJvd3Nlci4KLQotb25lQm9yZGVyIEhBUyBkZWxldGlvbiBVSQotdHdvQm9yZGVyIEhBUyBkZWxl
dGlvbiBVSQotdGhyZWVCb3JkZXIgSEFTIGRlbGV0aW9uIFVJCi1mb3VyQm9yZGVyIEhBUyBkZWxl
dGlvbiBVSQotCi0KLQotCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRpb25VSS1ib3JkZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1ib3JkZXJzLmh0
bWwJKHJldmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L2RlbGV0aW5nL2RlbGV0aW9uVUktYm9yZGVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci0gICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgZGl2
IHt3aWR0aDo1MTsgaGVpZ2h0OjUxfQotICAgICAgICAjb25lQm9yZGVyIHtib3JkZXItYm90dG9t
OjFweCBzb2xpZCByZWR9Ci0gICAgICAgICN0d29Cb3JkZXIge2JvcmRlci1ib3R0b206MXB4IHNv
bGlkIHJlZDsgYm9yZGVyLXRvcDoxcHggc29saWQgcmVkfQotICAgICAgICAjdGhyZWVCb3JkZXIg
e2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJlZDsgYm9yZGVyLXRvcDoxcHggc29saWQgcmVkOyBi
b3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJlZH0KLSAgICAgICAgI2ZvdXJCb3JkZXIge2JvcmRlci1i
b3R0b206MXB4IHNvbGlkIHJlZDsgYm9yZGVyLXRvcDoxcHggc29saWQgcmVkOyBib3JkZXItcmln
aHQ6MXB4IHNvbGlkIHJlZDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJlZH0KLSAgICA8L3N0eWxl
PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsZXRpb25VSS1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgICAgICAgICBkZXRlcm1pbmVEZWxldGlvblVJRXhp
c3RlbmNlKCJvbmVCb3JkZXIiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlz
dGVuY2UoInR3b0JvcmRlciIpOwotICAgICAgICAgICAgZGV0ZXJtaW5lRGVsZXRpb25VSUV4aXN0
ZW5jZSgidGhyZWVCb3JkZXIiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlz
dGVuY2UoImZvdXJCb3JkZXIiKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotICAgIDxwPlRoaXMgdGVzdHMgaWYgdGhlIGRlbGV0aW9u
IFVJIHdpbGwgc2hvdyBvbiBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBudW1iZXJzIG9mIHZpc2li
bGUgYm9yZGVycy4gVGhpcyB0ZXN0IGNhbiBiZSBydW4gYnkgRFJUIGJ1dCBub3QgaW4gdGhlIGJy
b3dzZXIuPC9wPgotICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi0gICAgPGRpdiBjb250
ZW50ZWRpdGFibGU9InRydWUiIHN0eWxlPSJwYWRkaW5nOiAxZW07Ij4KLSAgICAgICAgPGRpdiBp
ZD0ib25lQm9yZGVyIiBjbGFzcz0ibmVlZHNEZWxldGlvblVJIj48YnI+PC9kaXY+Ci0gICAgICAg
IDxkaXYgaWQ9InR3b0JvcmRlciIgY2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+PGJyPjwvZGl2Pgot
ICAgICAgICA8ZGl2IGlkPSJ0aHJlZUJvcmRlciIgY2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+PGJy
PjwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJmb3VyQm9yZGVyIiBjbGFzcz0ibmVlZHNEZWxldGlv
blVJIj48YnI+PC9kaXY+Ci0gICAgPGRpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1jbGljay1v
bi1kZWxldGUtYnV0dG9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLWNsaWNrLW9uLWRlbGV0ZS1i
dXR0b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLWNsaWNrLW9uLWRlbGV0ZS1idXR0
b24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotVGhlcmUgc2hv
dWxkIGJlIG5vIHZpc2libGUgY29udGVudCBpbiB0aGUgbWFya3VwIGJlbG93LiBUaGlzIHRlc3Qg
aXMgZm9yIGEgYnVnIHdoZXJlIHRoZSBkZWxldGUgYnV0dG9uIHdvdWxkbid0IHdvcmsgYmVjYXVz
ZSBpdCBoYWQgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lIGluc3RlYWQgb2YgLXdlYmtpdC11c2Vy
LXNlbGVjdDppZ25vcmUuCi18ICIKLSIKLXwgIgotIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1jbGljay1vbi1kZWxldGUtYnV0dG9u
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRpb25VSS1jbGljay1vbi1kZWxldGUtYnV0dG9uLmh0bWwJKHJldmlzaW9uIDE3
NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
aW9uVUktY2xpY2stb24tZGVsZXRlLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0idGVz
dCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0icGFkZGluZzogMWVtOyI+Ci08dWwgY2xh
c3M9Im5lZWRzRGVsZXRpb25VSSI+PGxpPjE8L2xpPjxsaSBpZD0ibGkiPjI8L2xpPjwvdWw+Ci08
L2Rpdj4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1
cC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1zZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7
Ci1saSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaSIpOwotc2VsLnNldFBvc2l0aW9uKGxp
LCAwKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgZGVsZXRlQnV0dG9uID0gaW50
ZXJuYWxzLmZpbmRFZGl0aW5nRGVsZXRlQnV0dG9uKCk7Ci0gICAgeCA9IGRlbGV0ZUJ1dHRvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlbGV0ZUJ1dHRvbi5vZmZzZXRQYXJlbnQub2Zmc2V0
UGFyZW50Lm9mZnNldExlZnQgKyBkZWxldGVCdXR0b24ub2Zmc2V0TGVmdCArIGRlbGV0ZUJ1dHRv
bi5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgeSA9IGRlbGV0ZUJ1dHRvbi5vZmZzZXRQYXJlbnQub2Zm
c2V0VG9wICsgZGVsZXRlQnV0dG9uLm9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQub2Zmc2V0VG9w
ICsgZGVsZXRlQnV0dG9uLm9mZnNldFRvcCArIGRlbGV0ZUJ1dHRvbi5vZmZzZXRIZWlnaHQgLyAy
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICBkZWxldGVCdXR0b24g
PSBpbnRlcm5hbHMuZmluZEVkaXRpbmdEZWxldGVCdXR0b24oKTsKLSAgICB0ZXN0Q29udGFpbmVy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKLSAgICBNYXJrdXAuZGVzY3JpcHRp
b24oIlRoZXJlIHNob3VsZCBiZSBubyB2aXNpYmxlIGNvbnRlbnQgaW4gdGhlIG1hcmt1cCBiZWxv
dy4gVGhpcyB0ZXN0IGlzIGZvciBhIGJ1ZyB3aGVyZSB0aGUgZGVsZXRlIGJ1dHRvbiB3b3VsZG4n
dCB3b3JrIGJlY2F1c2UgaXQgaGFkIC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZSBpbnN0ZWFkIG9m
IC13ZWJraXQtdXNlci1zZWxlY3Q6aWdub3JlLiIpOwotICAgIGlmIChkZWxldGVCdXR0b24pCi0g
ICAgICAgIHRlc3RDb250YWluZXIuaW5uZXJIVE1MICs9ICJGQUlMIjsKLSAgICBNYXJrdXAuZHVt
cCgidGVzdCIpOwotfQotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlmZmVyaW5n
LWJhY2tncm91bmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlmZmVyaW5nLWJhY2tncm91bmQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLWRpZmZlcmluZy1iYWNrZ3JvdW5kLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi1UaGlzIHRlc3RzIGlmIHRo
ZSBkZWxldGlvbiBVSSB3aWxsIHNob3cgb24gZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgYmFja2dy
b3VuZCBjb2xvcnMgb3IgaW1hZ2VzLiBUaGlzIHRlc3QgY2FuIGJlIHJ1biBieSBEUlQgYnV0IG5v
dCBpbiB0aGUgYnJvd3Nlci4KLQotc2FtZUJhY2tncm91bmQgSEFTIGRlbGV0aW9uIFVJCi1kaWZm
ZXJlbnRCYWNrZ3JvdW5kQ29sb3IgSEFTIGRlbGV0aW9uIFVJCi1kaWZmZXJlbnRCYWNrZ3JvdW5k
SW1hZ2UgSEFTIGRlbGV0aW9uIFVJCi1mdWxseVRyYW5zcGFyZW50Q2hpbGRXaXRoTm9uVHJhbnNw
YXJlbnRQYXJlbnQgaGFzIE5PIGRlbGV0aW9uIFVJCi1ub25UcmFuc3BhcmVudENoaWxkV2l0aFNl
bWlUcmFuc3BhcmVudFBhcmVudCBIQVMgZGVsZXRpb24gVUkKLWZ1bGx5VHJhbnNwYXJlbnRDaGls
ZFdpdGhTZW1pVHJhbnNwYXJlbnRQYXJlbnQgaGFzIE5PIGRlbGV0aW9uIFVJCi1ub25UcmFuc3Bh
cmVudENoaWxkV2l0aEZ1bGx5VHJhbnNwYXJlbnRQYXJlbnQgSEFTIGRlbGV0aW9uIFVJCi1mdWxs
eVRyYW5zcGFyZW50Q2hpbGRXaXRoRnVsbHlUcmFuc3BhcmVudFBhcmVudCBoYXMgTk8gZGVsZXRp
b24gVUkKLQotCi0KLQotCi0KLQotCi0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlmZmVyaW5nLWJhY2tncm91bmQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGlvblVJLWRpZmZlcmluZy1iYWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDE3NTYyNCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktZGlmZmVy
aW5nLWJhY2tncm91bmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2MiArMCwwIEBACi08IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICAgIGRpdiB7cmdiYSgyNTUsIDI1
NSwgMjU1LCAwKTsgd2lkdGg6NTE7IGhlaWdodDo1MTt9Ci0gICAgICAgICNzYW1lQmFja2dyb3Vu
ZCB7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZX0KLSAgICAgICAgI2RpZmZlcmVudEJhY2tncm91bmRD
b2xvciB7YmFja2dyb3VuZC1jb2xvcjpibGFja30KLSAgICAgICAgI2RpZmZlcmVudEJhY2tncm91
bmRJbWFnZSB7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi4uLy4uLy4uLy4uL2Zhc3QvaW1hZ2VzL3Jl
c291cmNlcy9ib3N0b24uZ2lmIil9Ci0KLSAgICAgICAgI3NlbWlUcmFuc3BhcmVudFBhcmVudCB7
YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMCwgMCwgLjUpfQotICAgICAgICAjZnVsbHlUcmFu
c3BhcmVudFBhcmVudCB7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMCwgMCwgMCl9Ci0KLSAg
ICAgICAgI2Z1bGx5VHJhbnNwYXJlbnRDaGlsZFdpdGhOb25UcmFuc3BhcmVudFBhcmVudCB7YmFj
a2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDApfQotICAgICAgICAjbm9uVHJhbnNw
YXJlbnRDaGlsZFdpdGhTZW1pVHJhbnNwYXJlbnRQYXJlbnQge2JhY2tncm91bmQtY29sb3I6cmdi
YSgyNTUsIDAsIDAsIDEpfQotICAgICAgICAjZnVsbHlUcmFuc3BhcmVudENoaWxkV2l0aFNlbWlU
cmFuc3BhcmVudFBhcmVudCB7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMCwgMCwgMCl9Ci0g
ICAgICAgICNub25UcmFuc3BhcmVudENoaWxkV2l0aEZ1bGx5VHJhbnNwYXJlbnRQYXJlbnQge2Jh
Y2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDAsIDAsIDEpfQotICAgICAgICAjZnVsbHlUcmFuc3Bh
cmVudENoaWxkV2l0aEZ1bGx5VHJhbnNwYXJlbnRQYXJlbnQge2JhY2tncm91bmQtY29sb3I6cmdi
YSgyNTUsIDAsIDAsIDApfQotICAgIDwvc3R5bGU+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy9kZWxldGlvblVJLWhlbHBlcnMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQ+Ci0gICAgICAg
IGZ1bmN0aW9uIHRlc3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAg
ICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoInNhbWVCYWNrZ3JvdW5kIik7Ci0g
ICAgICAgICAgICBkZXRlcm1pbmVEZWxldGlvblVJRXhpc3RlbmNlKCJkaWZmZXJlbnRCYWNrZ3Jv
dW5kQ29sb3IiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoImRp
ZmZlcmVudEJhY2tncm91bmRJbWFnZSIpOwotCi0gICAgICAgICAgICBkZXRlcm1pbmVEZWxldGlv
blVJRXhpc3RlbmNlKCJmdWxseVRyYW5zcGFyZW50Q2hpbGRXaXRoTm9uVHJhbnNwYXJlbnRQYXJl
bnQiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoIm5vblRyYW5z
cGFyZW50Q2hpbGRXaXRoU2VtaVRyYW5zcGFyZW50UGFyZW50Iik7Ci0gICAgICAgICAgICBkZXRl
cm1pbmVEZWxldGlvblVJRXhpc3RlbmNlKCJmdWxseVRyYW5zcGFyZW50Q2hpbGRXaXRoU2VtaVRy
YW5zcGFyZW50UGFyZW50Iik7Ci0gICAgICAgICAgICBkZXRlcm1pbmVEZWxldGlvblVJRXhpc3Rl
bmNlKCJub25UcmFuc3BhcmVudENoaWxkV2l0aEZ1bGx5VHJhbnNwYXJlbnRQYXJlbnQiKTsKLSAg
ICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoImZ1bGx5VHJhbnNwYXJlbnRD
aGlsZFdpdGhGdWxseVRyYW5zcGFyZW50UGFyZW50Iik7Ci0KLSAgICAgICAgfQotICAgIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotICAgIDxwPlRoaXMgdGVzdHMg
aWYgdGhlIGRlbGV0aW9uIFVJIHdpbGwgc2hvdyBvbiBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBi
YWNrZ3JvdW5kIGNvbG9ycyBvciBpbWFnZXMuIFRoaXMgdGVzdCBjYW4gYmUgcnVuIGJ5IERSVCBi
dXQgbm90IGluIHRoZSBicm93c2VyLjwvcD4KLSAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotCi0gICAgPGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiIHN0eWxlPSJwYWRkaW5nOiAxZW07
Ij4KLSAgICAgICAgPGRpdiBpZD0ic2FtZUJhY2tncm91bmQiIGNsYXNzPSJuZWVkc0RlbGV0aW9u
VUkiPjxicj48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iZGlmZmVyZW50QmFja2dyb3VuZENvbG9y
IiBjbGFzcz0ibmVlZHNEZWxldGlvblVJIj48YnI+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImRp
ZmZlcmVudEJhY2tncm91bmRJbWFnZSIgY2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+PGJyPjwvZGl2
PgotCi0gICAgICAgIDxkaXYgaWQ9ImZ1bGx5VHJhbnNwYXJlbnRDaGlsZFdpdGhOb25UcmFuc3Bh
cmVudFBhcmVudCIgY2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+PGJyPjwvZGl2PgotICAgICAgICA8
ZGl2IGlkPSJzZW1pVHJhbnNwYXJlbnRQYXJlbnQiPgotICAgICAgICAgICAgPGRpdiBpZD0ibm9u
VHJhbnNwYXJlbnRDaGlsZFdpdGhTZW1pVHJhbnNwYXJlbnRQYXJlbnQiIGNsYXNzPSJuZWVkc0Rl
bGV0aW9uVUkiPjxicj48L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImZ1bGx5VHJhbnNwYXJl
bnRDaGlsZFdpdGhTZW1pVHJhbnNwYXJlbnRQYXJlbnQiIGNsYXNzPSJuZWVkc0RlbGV0aW9uVUki
Pjxicj48L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImZ1bGx5VHJhbnNw
YXJlbnRQYXJlbnQiPgotICAgICAgICAgICAgPGRpdiBpZD0ibm9uVHJhbnNwYXJlbnRDaGlsZFdp
dGhGdWxseVRyYW5zcGFyZW50UGFyZW50IiBjbGFzcz0ibmVlZHNEZWxldGlvblVJIj48YnI+PC9k
aXY+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJmdWxseVRyYW5zcGFyZW50Q2hpbGRXaXRoRnVsbHlU
cmFuc3BhcmVudFBhcmVudCIgY2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+PGJyPjwvZGl2PgotICAg
ICAgICA8L2Rpdj4KLSAgICA8ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktbWluaW11bS1z
aXplLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLW1pbmltdW0tc2l6ZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0
aW5nL2RlbGV0aW9uVUktbWluaW11bS1zaXplLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMiArMCwwIEBACi1UaGlzIHRlc3RzIGlmIHRoZSBkZWxldGlvbiBVSSB3aWxsIHNob3cg
b24gZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMuIFRoaXMgdGVzdCBjYW4gYmUgcnVuIGJ5
IERSVCBidXQgbm90IGluIHRoZSBicm93c2VyLgotCi1zbWFsbFdpZHRoIGhhcyBOTyBkZWxldGlv
biBVSQotc21hbGxIZWlnaHQgaGFzIE5PIGRlbGV0aW9uIFVJCi1zbWFsbFdpZHRoU21hbGxIZWln
aHQgaGFzIE5PIGRlbGV0aW9uIFVJCi1zdWZmaWNpZW50V2lkdGhBbmRIZWlnaHQgSEFTIGRlbGV0
aW9uIFVJCi0KLQotCi0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGlvblVJLW1pbmltdW0tc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktbWluaW11
bS1zaXplLmh0bWwJKHJldmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktbWluaW11bS1zaXplLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgotICAgICAgICBkaXYge2JvcmRlcjoxcHggc29saWQgcmVkfQotICAgICAgICAjc21hbGxXaWR0
aCB7d2lkdGg6MTA7IGhlaWdodDoyNTF9Ci0gICAgICAgICNzbWFsbEhlaWdodCB7d2lkdGg6MjUx
OyBoZWlnaHQ6MTB9Ci0gICAgICAgICNzbWFsbFdpZHRoU21hbGxIZWlnaHQge3dpZHRoOjEwOyBo
ZWlnaHQ6MTB9Ci0gICAgICAgICNzdWZmaWNpZW50V2lkdGhBbmRIZWlnaHQge3dpZHRoOjUxOyBo
ZWlnaHQ6NTF9Ci0gICAgPC9zdHlsZT4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlbGV0
aW9uVUktaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgZnVuY3Rp
b24gdGVzdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgICAgICAgICAg
ZGV0ZXJtaW5lRGVsZXRpb25VSUV4aXN0ZW5jZSgic21hbGxXaWR0aCIpOwotICAgICAgICAgICAg
ZGV0ZXJtaW5lRGVsZXRpb25VSUV4aXN0ZW5jZSgic21hbGxIZWlnaHQiKTsKLSAgICAgICAgICAg
IGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoInNtYWxsV2lkdGhTbWFsbEhlaWdodCIpOwot
ICAgICAgICAgICAgZGV0ZXJtaW5lRGVsZXRpb25VSUV4aXN0ZW5jZSgic3VmZmljaWVudFdpZHRo
QW5kSGVpZ2h0Iik7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0idGVzdCgpIj4KLSAgICA8cD5UaGlzIHRlc3RzIGlmIHRoZSBkZWxldGlvbiBVSSB3aWxs
IHNob3cgb24gZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMuIFRoaXMgdGVzdCBjYW4gYmUg
cnVuIGJ5IERSVCBidXQgbm90IGluIHRoZSBicm93c2VyLjwvcD4KLSAgICA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotICAgIDxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0icGFk
ZGluZzogMWVtOyI+Ci0gICAgICAgIDxkaXYgaWQ9InNtYWxsV2lkdGgiIGNsYXNzPSJuZWVkc0Rl
bGV0aW9uVUkiPjxicj48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0ic21hbGxIZWlnaHQiIGNsYXNz
PSJuZWVkc0RlbGV0aW9uVUkiPjxicj48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0ic21hbGxXaWR0
aFNtYWxsSGVpZ2h0IiBjbGFzcz0ibmVlZHNEZWxldGlvblVJIj48YnI+PC9kaXY+Ci0gICAgICAg
IDxkaXYgaWQ9InN1ZmZpY2llbnRXaWR0aEFuZEhlaWdodCIgY2xhc3M9Im5lZWRzRGVsZXRpb25V
SSI+PGJyPjwvZGl2PgotICAgIDxkaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWlu
c3RhbmNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLXNpbmdsZS1pbnN0YW5jZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWluc3RhbmNlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NTQKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzgyeDU0Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDU3OiAi
VGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIERSVCBhbmQgbm90IG1hbnVhbGx5IGZyb20g
dGhlIGJyb3dzZXIuICIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDU3LDApIHdpZHRoIDMyNTog
IlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QgbWFrZSB0aGUgbWlzdGFrZSIKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNzM4OiAib2YgYWRkaW5nIG5ldyBtX2Nv
bnRhaW5lckVsZW1lbnRzIHRvIHRoZSBEZWxldGlvblVJIG92ZXIgYW5kIG92ZXIgYWdhaW4uIEEg
c3VjY2Vzc2Z1bCBydW4gb2YgdGhlIHRlc3Qgd2lsbCBub3QgaGF2ZSIKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwzNikgd2lkdGggNDUwOiAibXVsdGlwbGUgaW5zdGFuY2VzIG9mIGRlbGV0aW9u
IFVJIHJlbmRlciBvYmplY3RzIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzOiIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDcwKSBzaXplIDc4NHgxMTIKLWxheWVyIGF0ICgyNCw5NCkgc2l6
ZSA3NTJ4ODAgbGF5ZXJUeXBlOiBiYWNrZ3JvdW5kIG9ubHkKLWxheWVyIGF0ICgyMCw5MCkgc2l6
ZSA3NjB4ODgKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAtMTAwMDAwMCB7RElWfSBh
dCAoLTQsLTQpIHNpemUgNzYweDg4IFtib3JkZXI6ICg0cHggc29saWQgIzAwMDAwMDk5KV0KLWxh
eWVyIGF0ICgyNCw5NCkgc2l6ZSA3NTJ4ODAgbGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKLSAg
UmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMTYsMTYpIHNpemUgNzUyeDgwCi0gICAgUmVuZGVyVGFi
bGVTZWN0aW9uIHtUQk9EWX0gYXQgKDAsMCkgc2l6ZSA3NTJ4NzgKLSAgICAgIFJlbmRlclRhYmxl
Um93IHtUUn0gYXQgKDAsMikgc2l6ZSA3NTJ4NzQKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDIsMikgc2l6ZSA3NDh4NzQgW3I9MCBjPTAgcnM9MSBjcz0xXQotICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMSwxKSBzaXplIDc0Nng3MgotICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDEsMSkgd2lkdGggNzQzOiAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIE1hZWNlbmFzIG9kaW8uIE1vcmJpIHNlZCB0b3J0b3Ig
aWQgbmlzbCBiaWJlbmR1bSBjb21tb2RvLiIKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NDQs
MSkgd2lkdGggMzogIiAiCi0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwxOSkgd2lkdGggNzM5
OiAiRG9uZWMgcGVkZS4gUHJhZXNlbnQgYWNjdW1zYW4gZHVpIHZpdGFlIG1hdXJpcy4gTWF1cmlz
IG5vbiBkdWkgYXQgbmVxdWUgbGFjaW5pYSBwdWx2aW5hci4gUXVpc3F1ZSBuaWJoLiBOdWxsYSB2
aXRhZSIKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NDAsMTkpIHdpZHRoIDQ6ICIgIgotICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDEsMzcpIHdpZHRoIDcxNTogImxlY3R1cy4gUGVsbGVudGVz
cXVlIGVuaW0uIE1hdXJpcyBoZW5kcmVyaXQgbW9sZXN0aWUgZHVpLiBFdGlhbSBwcmV0aXVtIGxp
Z3VsYSBhIHBlZGUuIEZ1c2NlIGNvbnNlY3RldHVlciBwdXJ1cyBzaXQiCi0gICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNzE2LDM3KSB3aWR0aCA0OiAiICIKLSAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxLDU1KSB3aWR0aCAzNTM6ICJhbWV0IHNlbS4gTW9yYmkgdGluY2lkdW50IG1vbGxpcyBsaWJl
cm8uIE1hZWNlbmFzIG1vbGUiCi0gICAgUmVuZGVyVGFibGVTZWN0aW9uIChhbm9ueW1vdXMpIGF0
ICgwLDc4KSBzaXplIDc1MngyCi0gICAgICBSZW5kZXJUYWJsZVJvdyAoYW5vbnltb3VzKSBhdCAo
MCwwKSBzaXplIDc1MngwCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3VzKSBhdCAo
MiwwKSBzaXplIDc0OHgwIFtyPTAgYz0wIHJzPTEgY3M9MV0KLWxheWVyIGF0ICg3LDc5KSBzaXpl
IDMweDMwCi0gIFJlbmRlckltYWdlIHpJOiAxMDAwMDAwIHtJTUd9IGF0ICgtMTcsLTE1KSBzaXpl
IDMweDMwCi1jYXJldDogcG9zaXRpb24gNDAzIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAx
IHtURH0gb2YgY2hpbGQgMCB7VFJ9IG9mIGNoaWxkIDEge1RCT0RZfSBvZiBjaGlsZCAxIHtUQUJM
RX0gb2YgY2hpbGQgMyB7RElWfSBvZiBib2R5CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLXNpbmdsZS1pbnN0YW5jZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
aW9uVUktc2luZ2xlLWluc3RhbmNlLmh0bWwJKHJldmlzaW9uIDE3NTYyNCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xlLWluc3Rh
bmNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAotPGJvZHk+Ci0KLTxwPgot
VGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIERSVCBhbmQgbm90IG1hbnVhbGx5IGZyb20g
dGhlIGJyb3dzZXIuICBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IG1ha2UgdGhl
IG1pc3Rha2Ugb2YgYWRkaW5nIG5ldyBtX2NvbnRhaW5lckVsZW1lbnRzIHRvIHRoZSBEZWxldGlv
blVJIG92ZXIgYW5kIG92ZXIgYWdhaW4uCi1BIHN1Y2Nlc3NmdWwgcnVuIG9mIHRoZSB0ZXN0IHdp
bGwgbm90IGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGRlbGV0aW9uIFVJIHJlbmRlciBvYmpl
Y3RzIGF0IHRoZSBzYW1lIGNvb3JkaW5hdGVzOgotPC9wPgotCi08ZGl2IGNvbnRlbnRlZGl0YWJs
ZT0idHJ1ZSIgc3R5bGU9InBhZGRpbmc6IDFlbTsiPgotPHRhYmxlIGNsYXNzPSJuZWVkc0RlbGV0
aW9uVUkiPgotCi08dHI+Ci08dGQgaWQ9InRkIj4KLUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ZXIgYWRpcGlzY2luZyBlbGl0LiBNYWVjZW5hcyBvZGlvLiBNb3JiaSBzZWQg
dG9ydG9yIGlkIG5pc2wgYmliZW5kdW0gY29tbW9kby4gRG9uZWMgcGVkZS4gUHJhZXNlbnQgYWNj
dW1zYW4gZHVpIHZpdGFlIG1hdXJpcy4gTWF1cmlzIG5vbiBkdWkgYXQgbmVxdWUgbGFjaW5pYSBw
dWx2aW5hci4gUXVpc3F1ZSBuaWJoLiBOdWxsYSB2aXRhZSBsZWN0dXMuIFBlbGxlbnRlc3F1ZSBl
bmltLiBNYXVyaXMgaGVuZHJlcml0IG1vbGVzdGllIGR1aS4gRXRpYW0gcHJldGl1bSBsaWd1bGEg
YSBwZWRlLiBGdXNjZSBjb25zZWN0ZXR1ZXIgcHVydXMgc2l0IGFtZXQgc2VtLiBNb3JiaSB0aW5j
aWR1bnQgbW9sbGlzIGxpYmVyby4gTWFlY2VuYXMgbW9sZXN0aWUuCi08L3RkPgotPC90cj4KLTwv
dGFibGU+Ci0KLTwvZGl2PgotCi08c2NyaXB0PgotCi1zZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7Ci10ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZCIpOwotc2VsLnNldFBvc2l0aW9u
KHRkLCB0ZC50ZXh0Q29udGVudC5sZW5ndGgpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICBmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKQotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiRGVsZXRlIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1zdWNjZXNzZnVsLWRlbGV0
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLXN1Y2Nlc3NmdWwtZGVsZXRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGlvblVJLXN1Y2Nlc3NmdWwtZGVsZXRpb24tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotVGhpcyB0ZXN0cyBpZiB0aGUgZGVsZXRpb24g
VUkgd2lsbCBkZWxldGUgdGhlIGFzc29jaWF0ZWQgZWxlbWVudCB3aGVuIGFjdGl2YXRlZC4gVGhp
cyB0ZXN0IGNhbiBiZSBydW4gYnkgRFJUIGJ1dCBub3QgaW4gdGhlIGJyb3dzZXIuCi0KLWRvbnRE
ZWxldGVNZUEgSEFTIGRlbGV0aW9uIFVJCi1kb250RGVsZXRlTWVCIEhBUyBkZWxldGlvbiBVSQot
ZGVsZXRlTWUgSEFTIGRlbGV0aW9uIFVJCi1UaGlzIGlzIGFuIGVsZW1lbnQgdGhhdCB3aWxsIHNo
b3cgdGhlIGRlbGV0aW9uIFVJIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4gaXQuIFRoZSB0
ZXN0IHdpbGwgbm90IGRlbGV0ZSB0aGlzIGVsZW1lbnQuCi1UaGlzIGlzIGFuIGVsZW1lbnQgdGhh
dCB3aWxsIHNob3cgdGhlIGRlbGV0aW9uIFVJIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4g
aXQuIFRoZSB0ZXN0IHdpbGwgbm90IGRlbGV0ZSB0aGlzIGVsZW1lbnQuCi0KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc3VjY2Vzc2Z1
bC1kZWxldGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc3VjY2Vzc2Z1bC1kZWxldGlvbi5odG1sCShyZXZp
c2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGlvblVJLXN1Y2Nlc3NmdWwtZGVsZXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw0NCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICAg
IC5uZWVkc0RlbGV0aW9uVUkgeyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWluLWhlaWdodDog
MTAwcHg7IH0KLSAgICA8L3N0eWxlPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsZXRp
b25VSS1oZWxwZXJzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlv
biB0ZXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgICAgICAg
ICAgICAvLyBXZSBtYWtlIHRoZSBXZWJWaWV3IGVkaXRhYmxlIGhlcmUgc28gdGhhdCB0aGUgY29k
ZSBwYXRoIHJlc3BvbnNpYmxlIGZvcgotICAgICAgICAgICAgICAgIC8vIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzM3MTE1PiAvIDxyZGFyOi8vcHJvYmxlbS83ODI5MzMxPiBpcyBleGVyY2lzZWQuCi0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJWaWV3RWRpdGFibGUodHJ1ZSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoImRv
bnREZWxldGVNZUEiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2Uo
ImRvbnREZWxldGVNZUIiKTsKLSAgICAgICAgICAgIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVu
Y2UoImRlbGV0ZU1lIik7Ci0KLSAgICAgICAgICAgIHZhciBkZWxldGVCdXR0b24gPSBkZWxldGlv
blVJRGVsZXRlQnV0dG9uRm9yRWxlbWVudCgiZGVsZXRlTWUiKTsKLSAgICAgICAgICAgIHZhciBj
bGlja0V2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7Ci0gICAgICAg
ICAgICBjbGlja0V2ZW50LmluaXRNb3VzZUV2ZW50KCJjbGljayIsIHRydWUsIHRydWUsIHdpbmRv
dywgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpOwot
ICAgICAgICAgICAgZGVsZXRlQnV0dG9uLmRpc3BhdGNoRXZlbnQoY2xpY2tFdmVudCk7Ci0KLSAg
ICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlTWUiKSkKLSAgICAg
ICAgICAgICAgICBkZWJ1ZygiRVJST1I6IEVsZW1lbnQgZGVsZXRlTWUgd2FzIGZvdW5kIGluIHRo
ZSBkb2N1bWVudCBhZnRlciB0aGUgZGVsZXRlIGJ1dHRvbiBpbiB0aGUgZGVsZXRpb24gVUkgd2Fz
IGNsaWNrZWQhIik7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0idGVzdCgpIj4KLSAgICA8cD5UaGlzIHRlc3RzIGlmIHRoZSBkZWxldGlvbiBVSSB3aWxs
IGRlbGV0ZSB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IHdoZW4gYWN0aXZhdGVkLiBUaGlzIHRlc3Qg
Y2FuIGJlIHJ1biBieSBEUlQgYnV0IG5vdCBpbiB0aGUgYnJvd3Nlci48L3A+Ci0gICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLSAgICA8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3R5
bGU9InBhZGRpbmc6IDFlbTsiPgotICAgICAgICAgICAgPGRpdiBpZD0iZG9udERlbGV0ZU1lQSIg
Y2xhc3M9Im5lZWRzRGVsZXRpb25VSSI+VGhpcyBpcyBhbiBlbGVtZW50IHRoYXQgd2lsbCBzaG93
IHRoZSBkZWxldGlvbiBVSSB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgd2l0aGluIGl0LiAgVGhlIHRl
c3QgPGVtPndpbGwgbm90PC9lbT4gZGVsZXRlIHRoaXMgZWxlbWVudC48L2Rpdj4KLSAgICAgICAg
ICAgIDxkaXYgaWQ9ImRlbGV0ZU1lIiBjbGFzcz0ibmVlZHNEZWxldGlvblVJIj5UaGlzIGlzIGFu
IGVsZW1lbnQgdGhhdCB3aWxsIHNob3cgdGhlIGRlbGV0aW9uIFVJIHdoZW4gdGhlIHNlbGVjdGlv
biBpcyB3aXRoaW4gaXQuICBUaGUgdGVzdCA8ZW0+d2lsbDwvZW0+IGRlbGV0ZSB0aGlzIGVsZW1l
bnQuPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJkb250RGVsZXRlTWVCIiBjbGFzcz0ibmVl
ZHNEZWxldGlvblVJIj5UaGlzIGlzIGFuIGVsZW1lbnQgdGhhdCB3aWxsIHNob3cgdGhlIGRlbGV0
aW9uIFVJIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4gaXQuICBUaGUgdGVzdCA8ZW0+d2ls
bCBub3Q8L2VtPiBkZWxldGUgdGhpcyBlbGVtZW50LjwvZGl2PgotICAgIDxkaXY+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0
aW5nL2lkLWluLWRlbGV0ZWJ1dHRvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvaWQtaW4tZGVsZXRlYnV0dG9uLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTc1NjI0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvZGVsZXRpbmcvaWQtaW4tZGVsZXRlYnV0dG9uLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi1UZXN0IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJX
ZWJLaXQtRWRpdGluZy1EZWxldGUtQnV0dG9uIikKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1MgaW50ZXJuYWxzLmZpbmRFZGl0aW5nRGVsZXRlQnV0dG9uKCk7IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJXZWJLaXQtRWRpdGluZy1EZWxldGUtQnV0dG9uIikgaXMgbm9uLW51
bGwuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLTEK
LTIKLQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvaWQt
aW4tZGVsZXRlYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvZGVsZXRpbmcvaWQtaW4tZGVsZXRlYnV0dG9uLmh0bWwJKHJldmlzaW9uIDE3
NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2lkLWlu
LWRlbGV0ZWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAgQEAKLTxodG1s
PgotPGJvZHk+Ci08ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+Ci08dWwgY2xhc3M9Im5lZWRz
RGVsZXRpb25VSSI+PGxpPjE8L2xpPjxsaSBpZD0ibGkiPjI8L2xpPjwvdWw+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbignVGVzdCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiV2ViS2l0LUVk
aXRpbmctRGVsZXRlLUJ1dHRvbiIpJyk7Ci0KLXNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsK
LWxpID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpIik7Ci1zZWwuc2V0UG9zaXRpb24obGks
IDApOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgc2hvdWxkQmVOb25OdWxsKCdpbnRl
cm5hbHMuZmluZEVkaXRpbmdEZWxldGVCdXR0b24oKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
IldlYktpdC1FZGl0aW5nLURlbGV0ZS1CdXR0b24iKScpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9yZXNvdXJjZXMvZGVsZXRp
b25VSS1oZWxwZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL2RlbGV0aW5nL3Jlc291cmNlcy9kZWxldGlvblVJLWhlbHBlcnMuanMJKHJldmlzaW9u
IDE3NTYyNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL3Jl
c291cmNlcy9kZWxldGlvblVJLWhlbHBlcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAs
MCBAQAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotCi1mdW5jdGlvbiBkZWJ1Zyhtc2cpCi17Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChzcGFuKTsgLy8gaW5zZXJ0IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRo
ZSBuYW1lc3BhY2UKLSAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOwotfQotCi1m
dW5jdGlvbiBkZWxldGlvblVJRGVsZXRlQnV0dG9uRm9yRWxlbWVudChpZCkKLXsKLSAgICBpZiAo
IXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIHZhciBzZWwgPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgdmFyIHNlbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCk7Ci0gICAgc2VsLnNldFBvc2l0aW9uKHNlbEVsZW1lbnQsIDApOwotICAg
IHJldHVybiBpbnRlcm5hbHMuZmluZEVkaXRpbmdEZWxldGVCdXR0b24oKTsKLX0KLQotZnVuY3Rp
b24gZGV0ZXJtaW5lRGVsZXRpb25VSUV4aXN0ZW5jZShpZCkKLXsKLSAgICB2YXIgZGVsZXRlQnV0
dG9uID0gZGVsZXRpb25VSURlbGV0ZUJ1dHRvbkZvckVsZW1lbnQoaWQpOwotICAgIGRlYnVnKGlk
ICsgKGRlbGV0ZUJ1dHRvbiA/ICIgSEFTICIgOiAiIGhhcyBOTyAiKSArICJkZWxldGlvbiBVSSIp
OwotfQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvcmVz
b3VyY2VzL2RlbGV0aW9uVUktaGVscGVycy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9yZXNvdXJjZXMvZGVsZXRpb25VSS1oZWxwZXJz
LmpzCShyZXZpc2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9kZWxldGluZy9yZXNvdXJjZXMvZGVsZXRpb25VSS1oZWxwZXJzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDI1ICswLDAgQEAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gZGVidWcobXNnKQotewotICAgIHZhciBzcGFuID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGluc2VydCBpdCBmaXJzdCBzbyBY
SFRNTCBrbm93cyB0aGUgbmFtZXNwYWNlCi0gICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJy
IC8+JzsKLX0KLQotZnVuY3Rpb24gZGVsZXRpb25VSURlbGV0ZUJ1dHRvbkZvckVsZW1lbnQoaWQp
Ci17Ci0gICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgIHZhciBzZWxFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICAgIHNlbC5zZXRQb3NpdGlvbihzZWxFbGVt
ZW50LCAwKTsKLSAgICByZXR1cm4gaW50ZXJuYWxzLmZpbmRFZGl0aW5nRGVsZXRlQnV0dG9uKCk7
Ci19Ci0KLWZ1bmN0aW9uIGRldGVybWluZURlbGV0aW9uVUlFeGlzdGVuY2UoaWQpCi17Ci0gICAg
dmFyIGRlbGV0ZUJ1dHRvbiA9IGRlbGV0aW9uVUlEZWxldGVCdXR0b25Gb3JFbGVtZW50KGlkKTsK
LSAgICBkZWJ1ZyhpZCArIChkZWxldGVCdXR0b24gPyAiIEhBUyAiIDogIiBoYXMgTk8gIikgKyAi
ZGVsZXRpb24gVUkiKTsKLX0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCShyZXZpc2lvbiAxNzU2MjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTIzLDE2ICsxMjMsNiBAQCBwbGF0
Zm9ybS9tYWMvZmFzdC90ZXh0L2F0dHJpYnV0ZWQtc3Vic3RyCiBwbGF0Zm9ybS9tYWMvZmFzdC90
ZXh0L2F0dHJpYnV0ZWQtc3Vic3RyaW5nLWZyb20tcmFuZ2UuaHRtbAogcGxhdGZvcm0vbWFjL2Zh
c3QvdGV4dC9qdXN0aWZpZWQtdGV4dC1yZWN0Lmh0bWwKIAotIyBXZWJLaXRUZXN0UnVubmVyIG5l
ZWRzIHRvIHN1cHBvcnQgbmVlZHNEZWxldGlvblVJIG1lY2hhbmlzbSB0byBzaG93IGRlbGV0aW9u
IFVJCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1MzU+Ci1w
bGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9pZC1pbi1kZWxldGVidXR0b24uaHRtbAotcGxh
dGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1jbGljay1vbi1kZWxldGUtYnV0
dG9uLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc2luZ2xl
LWluc3RhbmNlLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUkt
Ym9yZGVycy5odG1sCi1wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLWRp
ZmZlcmluZy1iYWNrZ3JvdW5kLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0aW9uVUktbWluaW11bS1zaXplLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0aW9uVUktc3VjY2Vzc2Z1bC1kZWxldGlvbi5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXREYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9k
ZQogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTQ3PgogZmFz
dC9jYW52YXMvY2FudmFzLWdyYWRpZW50LWFkZFN0b3AtZXJyb3IuaHRtbApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1zaW5nbGUtaW5z
dGFuY2UtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2Vk
IGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCg==
</data>
<flag name="review"
          id="265871"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>