<?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>203197</bug_id>
          
          <creation_ts>2019-10-21 11:00:06 -0700</creation_ts>
          <short_desc>Web Inspector: make ObjC protocol dispatcher commands optional and add `respondsToSelector` checks to allow other inspector clients to choose what they implement</short_desc>
          <delta_ts>2019-10-23 10:11:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>200384</dependson>
          <blocked>203300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581892</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-21 11:00:06 -0700</bug_when>
    <thetext>This will help eliminate internal build failures, and will also slim down on commands that simply error with &quot;unsupported&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581993</commentid>
    <comment_count>1</comment_count>
      <attachid>381438</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-21 13:31:46 -0700</bug_when>
    <thetext>Created attachment 381438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581995</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-10-21 13:32:22 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582002</commentid>
    <comment_count>3</comment_count>
      <attachid>381438</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-21 13:37:53 -0700</bug_when>
    <thetext>Comment on attachment 381438
Patch

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

r=me!

&gt; Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:110
&gt; +    def _generate_responds_to_selector_for_command(self, domain, command):
&gt; +        return &apos;[m_delegate respondsToSelector:@selector(%sWithErrorCallback:successCallback:%s)]&apos; % (command.command_name, &apos;&apos;.join(map(lambda parameter: &apos;%s:&apos; % parameter.parameter_name, command.call_parameters)))

You can probably just simplify this to join parameters with a colon, and add the trailing colon to the respondsToSelector part of the format string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582004</commentid>
    <comment_count>4</comment_count>
      <attachid>381438</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-21 13:40:48 -0700</bug_when>
    <thetext>Comment on attachment 381438
Patch

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

&gt;&gt; Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:110
&gt;&gt; +        return &apos;[m_delegate respondsToSelector:@selector(%sWithErrorCallback:successCallback:%s)]&apos; % (command.command_name, &apos;&apos;.join(map(lambda parameter: &apos;%s:&apos; % parameter.parameter_name, command.call_parameters)))
&gt; 
&gt; You can probably just simplify this to join parameters with a colon, and add the trailing colon to the respondsToSelector part of the format string.

As we just discussed, we actually don&apos;t want to do that because if `command.call_parameters` is empty, we don&apos;t want a second trailing colon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582035</commentid>
    <comment_count>5</comment_count>
      <attachid>381438</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-10-21 14:19:30 -0700</bug_when>
    <thetext>Comment on attachment 381438
Patch

r=me !!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582129</commentid>
    <comment_count>6</comment_count>
      <attachid>381438</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-21 16:30:20 -0700</bug_when>
    <thetext>Comment on attachment 381438
Patch

Clearing flags on attachment: 381438

Committed r251395: &lt;https://trac.webkit.org/changeset/251395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582130</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-21 16:30:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582133</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-21 16:31:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56481634&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381438</attachid>
            <date>2019-10-21 13:31:46 -0700</date>
            <delta_ts>2019-10-21 16:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203197-20191021133145.patch</filename>
            <type>text/plain</type>
            <size>36971</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc1M2YzYmNjMmE2OGI3NWNkNTA0MmQ1MWFjNzUw
NDk4ZjQ3NzRhMGMuLjk0OWFmMmM2ODNlZGJkYjIzOWJjY2FhYjk3ZjViMDc2YTJiMDRjYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTEwLTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBt
YWtlIE9iakMgcHJvdG9jb2wgZGlzcGF0Y2hlciBjb21tYW5kcyBvcHRpb25hbCBhbmQgYWRkIGBy
ZXNwb25kc1RvU2VsZWN0b3JgIGNoZWNrcyB0byBhbGxvdyBvdGhlciBpbnNwZWN0b3IgY2xpZW50
cyB0byBjaG9vc2Ugd2hhdCB0aGV5IGltcGxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3aWxsIGhlbHAgZWxpbWluYXRlIGludGVybmFs
IGJ1aWxkIGZhaWx1cmVzLCBhbmQgd2lsbCBhbHNvIGFsbG93IG90aGVyIGNsaWVudHMgdG8KKyAg
ICAgICAgcmVtb3ZlIGFsbCBvZiB0aGVpciBjb21tYW5kcyB0aGF0IHByZXZpb3VzbHkganVzdCBy
ZXNwb25kZWQgd2l0aCBhbiAidW5zdXBwb3J0ZWQiIGVycm9yLgorCisgICAgICAgICogaW5zcGVj
dG9yL3NjcmlwdHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0
Y2hlcl9pbXBsZW1lbnRhdGlvbi5weToKKyAgICAgICAgKE9iakNCYWNrZW5kRGlzcGF0Y2hlcklt
cGxlbWVudGF0aW9uR2VuZXJhdG9yLl9nZW5lcmF0ZV9oYW5kbGVyX2ltcGxlbWVudGF0aW9uX2Zv
cl9jb21tYW5kKToKKyAgICAgICAgKE9iakNCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9u
R2VuZXJhdG9yLl9nZW5lcmF0ZV9yZXNwb25kc190b19zZWxlY3Rvcl9mb3JfY29tbWFuZCk6IEFk
ZGVkLgorICAgICAgICBBZGQgYSBgcmVzcG9uZHNUb1NlbGVjdG9yYCBjaGVjayBiZWZvcmUgYXR0
ZW1wdGluZyB0byBjYWxsIHRoZSBkZWxlZ2F0ZSBmdW5jdGlvbi4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19oZWFkZXIucHk6CisgICAgICAgIChP
YmpDSGVhZGVyR2VuZXJhdG9yLl9nZW5lcmF0ZV9jb21tYW5kX3Byb3RvY29scyk6CisgICAgICAg
IE1hcmsgYWxsIGNvbW1hbmRzIGFzIGBAb3B0aW9uYWxgLgorCisgICAgICAgICogaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3Jt
Lmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlw
ZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmlj
L2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0OgorICAg
ICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMt
d2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0OgorICAgICAg
ICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLWRlYnVn
Z2FibGVUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1
Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0
aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdDoK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50
LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJh
dGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0OgorICAgICAgICAqIGlu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1w
bGF0Zm9ybS5qc29uLXJlc3VsdDoKKwogMjAxOS0xMC0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIERGRzo6Q29tbW9uRGF0YSBtb2RpZmljYXRp
b24gYnkgREZHIHJlYWxseUFkZCBzaG91bGQgYmUgZ3VhcmRlZCBieSBDb2RlQmxvY2sncyBsb2Nr
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IDkwNjI2YTAz
NGZmMjdjOGVjNDg0NGQwYmNmZTU4MjA5MmRjYmFlNjUuLmExYjllMTc5NzA1ODEyNWJjNzdmZGQ1
MmZkNTU4NDI4YjgzYmQyMDcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2lt
cGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0
aW9uLnB5CkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIE9iakNCYWNrZW5kRGlzcGF0Y2hlckltcGxl
bWVudGF0aW9uR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICAgICAgJ2RvbWFpbk5h
bWUnOiBkb21haW4uZG9tYWluX25hbWUsCiAgICAgICAgICAgICAnY29tbWFuZE5hbWUnOiBjb21t
YW5kLmNvbW1hbmRfbmFtZSwKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogJywgJy5qb2luKHBh
cmFtZXRlcnMpLAorICAgICAgICAgICAgJ3Jlc3BvbmRzVG9TZWxlY3Rvcic6IHNlbGYuX2dlbmVy
YXRlX3Jlc3BvbmRzX3RvX3NlbGVjdG9yX2Zvcl9jb21tYW5kKGRvbWFpbiwgY29tbWFuZCksCiAg
ICAgICAgICAgICAnc3VjY2Vzc0NhbGxiYWNrJzogc2VsZi5fZ2VuZXJhdGVfc3VjY2Vzc19ibG9j
a19mb3JfY29tbWFuZChkb21haW4sIGNvbW1hbmQpLAogICAgICAgICAgICAgJ2NvbnZlcnNpb25z
Jzogc2VsZi5fZ2VuZXJhdGVfY29udmVyc2lvbnNfZm9yX2NvbW1hbmQoZG9tYWluLCBjb21tYW5k
KSwKICAgICAgICAgICAgICdpbnZvY2F0aW9uJzogc2VsZi5fZ2VuZXJhdGVfaW52b2NhdGlvbl9m
b3JfY29tbWFuZChkb21haW4sIGNvbW1hbmQpLApAQCAtMTA1LDYgKzEwNiw5IEBAIGNsYXNzIE9i
akNCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKE9iakNHZW5lcmF0b3Ip
OgogCiAgICAgICAgIHJldHVybiBzZWxmLndyYXBfd2l0aF9ndWFyZF9mb3JfZG9tYWluKGRvbWFp
biwgVGVtcGxhdGUoT2JqQ1RlbXBsYXRlcy5CYWNrZW5kRGlzcGF0Y2hlckhlYWRlckRvbWFpbkhh
bmRsZXJJbXBsZW1lbnRhdGlvbikuc3Vic3RpdHV0ZShOb25lLCAqKmNvbW1hbmRfYXJncykpCiAK
KyAgICBkZWYgX2dlbmVyYXRlX3Jlc3BvbmRzX3RvX3NlbGVjdG9yX2Zvcl9jb21tYW5kKHNlbGYs
IGRvbWFpbiwgY29tbWFuZCk6CisgICAgICAgIHJldHVybiAnW21fZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvciglc1dpdGhFcnJvckNhbGxiYWNrOnN1Y2Nlc3NDYWxsYmFjazol
cyldJyAlIChjb21tYW5kLmNvbW1hbmRfbmFtZSwgJycuam9pbihtYXAobGFtYmRhIHBhcmFtZXRl
cjogJyVzOicgJSBwYXJhbWV0ZXIucGFyYW1ldGVyX25hbWUsIGNvbW1hbmQuY2FsbF9wYXJhbWV0
ZXJzKSkpCisKICAgICBkZWYgX2dlbmVyYXRlX3N1Y2Nlc3NfYmxvY2tfZm9yX2NvbW1hbmQoc2Vs
ZiwgZG9tYWluLCBjb21tYW5kKToKICAgICAgICAgbGluZXMgPSBbXQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9v
YmpjX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CmluZGV4IGZjMGNjMmFiOGU0Yjc4MWU2ZGQ1
YmNlYmMyYWE5OTVhNTFjNDY5ZjUuLjE1ZmI3NGJlOGJmYjE0YzQxOWZiZGMzZWQ5N2VkY2MyNjBm
YjQ5ZTcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CkBA
IC0yMTUsNyArMjE1LDcgQEAgY2xhc3MgT2JqQ0hlYWRlckdlbmVyYXRvcihPYmpDR2VuZXJhdG9y
KToKICAgICAgICAgaWYgc2VsZi5jb21tYW5kc19mb3JfZG9tYWluKGRvbWFpbik6CiAgICAgICAg
ICAgICBvYmpjX25hbWUgPSAnJXMlc0RvbWFpbkhhbmRsZXInICUgKHNlbGYub2JqY19wcmVmaXgo
KSwgZG9tYWluLmRvbWFpbl9uYW1lKQogICAgICAgICAgICAgbGluZXMuYXBwZW5kKCdAcHJvdG9j
b2wgJXMgPE5TT2JqZWN0PicgJSBvYmpjX25hbWUpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
J0ByZXF1aXJlZCcpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJ0BvcHRpb25hbCcpCiAgICAg
ICAgICAgICBmb3IgY29tbWFuZCBpbiBzZWxmLmNvbW1hbmRzX2Zvcl9kb21haW4oZG9tYWluKToK
ICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5fZ2VuZXJhdGVfc2luZ2xlX2NvbW1h
bmRfcHJvdG9jb2woZG9tYWluLCBjb21tYW5kKSkKICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgn
QGVuZCcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvcl90ZW1wbGF0ZXMu
cHkKaW5kZXggY2MyYjU2NjFiZTFiNTJiNmYzZDM4NDU5ZmM2MzZmYzkyMjNhNmUyZS4uMjI3NDIx
NTE5OTRmMjQzZjRlZDEzYmM3NmZhOGE2YjU3NzU1YTUzMiAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vb2JqY19nZW5lcmF0b3JfdGVt
cGxhdGVzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL29iamNfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weQpAQCAtMTEzLDYgKzExMywxMiBAQCBw
cml2YXRlOgogICAgIEJhY2tlbmREaXNwYXRjaGVySGVhZGVyRG9tYWluSGFuZGxlckltcGxlbWVu
dGF0aW9uID0gKAogICAgICIiInZvaWQgT2JqQ0luc3BlY3RvciR7ZG9tYWluTmFtZX1CYWNrZW5k
RGlzcGF0Y2hlcjo6JHtjb21tYW5kTmFtZX0oJHtwYXJhbWV0ZXJzfSkKIHsKKyAgICBpZiAoISR7
cmVzcG9uZHNUb1NlbGVjdG9yfSkgeworICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBv
cnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6Ok1ldGhvZE5vdEZv
dW5kLCAiJyR7ZG9tYWluTmFtZX0uJHtjb21tYW5kTmFtZX0nIHdhcyBub3QgZm91bmQiX3MpOwor
ICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUGVuZGluZ0Vycm9ycygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgaWQgZXJyb3JDYWxsYmFjayA9IF4oTlNTdHJpbmcgKmVy
cm9yKSB7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnJlcG9ydFByb3RvY29sRXJyb3Io
cmVxdWVzdElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6U2VydmVyRXJyb3IsIGVycm9yKTsKICAgICAg
ICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0
ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRp
b25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDQ5Nzc3ODY0ZTNjY2JkYTU3
NDUyNTg3ODMwYzhjZmVkYzZhNTMwMGIuLjliM2NlZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0
OTA2NWZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNv
bi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3Vs
dApAQCAtNjQwLDYgKzY0MCwxMiBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogdm9pZCBPYmpD
SW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyOjpsb2FkUmVzb3VyY2UobG9uZyByZXF1
ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGxvYWRSZXNvdXJjZVdpdGhFcnJvckNhbGxiYWNrOnN1Y2Nlc3NDYWxsYmFjazopXSkgewor
ICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJ
ZCwgQmFja2VuZERpc3BhdGNoZXI6Ok1ldGhvZE5vdEZvdW5kLCAiJ05ldHdvcmsubG9hZFJlc291
cmNlJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2Vu
ZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9y
Q2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hl
cigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNl
cnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5k
aW5nRXJyb3JzKCk7CkBAIC05MjAsNyArOTI2LDcgQEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0
eSAoImRlZmF1bHQiKSkpCiBAZW5kCiAKIEBwcm90b2NvbCBUZXN0UHJvdG9jb2xOZXR3b3JrRG9t
YWluSGFuZGxlciA8TlNPYmplY3Q+Ci1AcmVxdWlyZWQKK0BvcHRpb25hbAogLSAodm9pZClsb2Fk
UmVzb3VyY2VXaXRoRXJyb3JDYWxsYmFjazoodm9pZCheKShOU1N0cmluZyAqZXJyb3IpKWVycm9y
Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrOih2b2lkKF4pKHZvaWQpKXN1Y2Nlc3NDYWxsYmFjazsK
IEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRv
bWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlw
ZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKaW5kZXggZTk4ZGY3
MTI0MzZhZTdjNzdjZmQ0MTlkYWJjMGZiOWM2ODVlNmJmOS4uNDg1YWE2MWU2YjcxZTgzYjczNjAx
Yzk2NmYxZTFiYmRkN2QyYWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBl
LW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9j
b21tYW5kLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVz
dWx0CkBAIC01NjcsNiArNTY3LDEyIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiB2b2lkIE9i
akNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcjo6Q29tbWFuZChsb25nIHJlcXVlc3RJ
ZCkKIHsKKyAgICBpZiAoIVttX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
Q29tbWFuZFdpdGhFcnJvckNhbGxiYWNrOnN1Y2Nlc3NDYWxsYmFjazopXSkgeworICAgICAgICBi
YWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2Vu
ZERpc3BhdGNoZXI6Ok1ldGhvZE5vdEZvdW5kLCAiJ0RvbWFpbi5Db21tYW5kJyB3YXMgbm90IGZv
dW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5T
U3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90
b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJv
cik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBA
IC04MzksNyArODQ1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29s
UGxhdGZvcm0pIHsKIAogCiBAcHJvdG9jb2wgVGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxl
ciA8TlNPYmplY3Q+Ci1AcmVxdWlyZWQKK0BvcHRpb25hbAogLSAodm9pZClDb21tYW5kV2l0aEVy
cm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nl
c3NDYWxsYmFjazoodm9pZCheKSh2b2lkKSlzdWNjZXNzQ2FsbGJhY2s7CiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKaW5kZXggZjMx
MGZkNmViZTRkMWY5ZGIyZTFlZjViM2EwZGM2YWNjNjIxM2VlZS4uNTliM2UzY2ZkOGFjNmZiYmIx
YzNhY2MzNzc0MjE0OTExMmM1ZDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1h
c3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3lu
Yy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKQEAgLTkxOSw2ICs5MTksMTIgQEAgbmFtZXNwYWNlIElu
c3BlY3RvciB7CiAKIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6
OmV4ZWN1dGVTUUxTeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXMobG9uZyByZXF1ZXN0SWQsIGludCBp
bl9kYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5KQogeworICAgIGlmICghW21fZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihleGVjdXRlU1FMU3luY09wdGlvbmFs
UmV0dXJuVmFsdWVzV2l0aEVycm9yQ2FsbGJhY2s6c3VjY2Vzc0NhbGxiYWNrOmRhdGFiYXNlSWQ6
cXVlcnk6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xF
cnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidEYXRh
YmFzZS5leGVjdXRlU1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzJyB3YXMgbm90IGZvdW5kIl9z
KTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5n
ICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVy
cm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAg
ICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC05NjMs
NiArOTY5LDEyIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6
OmV4ZWN1dGVTUUxTeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXMoCiAKIHZvaWQgT2JqQ0luc3BlY3Rv
ckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJu
VmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBp
bl9xdWVyeSkKIHsKKyAgICBpZiAoIVttX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNXaXRoRXJyb3JDYWxsYmFj
azpzdWNjZXNzQ2FsbGJhY2s6ZGF0YWJhc2VJZDpxdWVyeTopXSkgeworICAgICAgICBiYWNrZW5k
RGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3Bh
dGNoZXI6Ok1ldGhvZE5vdEZvdW5kLCAiJ0RhdGFiYXNlLmV4ZWN1dGVTUUxBc3luY09wdGlvbmFs
UmV0dXJuVmFsdWVzJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNo
ZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5k
RGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3Bh
dGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCkt
PnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC0xMDA3LDYgKzEwMTksMTIgQEAgdm9pZCBPYmpDSW5z
cGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcjo6ZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxS
ZXR1cm5WYWx1ZXMKIAogdm9pZCBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hl
cjo6ZXhlY3V0ZVNRTFN5bmMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25z
dCBTdHJpbmcmIGluX3F1ZXJ5KQogeworICAgIGlmICghW21fZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihleGVjdXRlU1FMU3luY1dpdGhFcnJvckNhbGxiYWNrOnN1Y2Nlc3ND
YWxsYmFjazpkYXRhYmFzZUlkOnF1ZXJ5OildKSB7CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVy
KCktPnJlcG9ydFByb3RvY29sRXJyb3IocmVxdWVzdElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6TWV0
aG9kTm90Rm91bmQsICInRGF0YWJhc2UuZXhlY3V0ZVNRTFN5bmMnIHdhcyBub3QgZm91bmQiX3Mp
OworICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUGVuZGluZ0Vycm9ycygpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWQgZXJyb3JDYWxsYmFjayA9IF4oTlNTdHJpbmcg
KmVycm9yKSB7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnJlcG9ydFByb3RvY29sRXJy
b3IocmVxdWVzdElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6U2VydmVyRXJyb3IsIGVycm9yKTsKICAg
ICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKQEAgLTEwNDEs
NiArMTA1OSwxMiBAQCB2b2lkIE9iakNJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVy
OjpleGVjdXRlU1FMU3luYyhsb25nIHJlcXVlc3RJZCwgaW50CiAKIHZvaWQgT2JqQ0luc3BlY3Rv
ckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVTUUxBc3luYyhsb25nIHJlcXVlc3RJ
ZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnkpCiB7CisgICAgaWYg
KCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGV4ZWN1dGVTUUxBc3lu
Y1dpdGhFcnJvckNhbGxiYWNrOnN1Y2Nlc3NDYWxsYmFjazpkYXRhYmFzZUlkOnF1ZXJ5OildKSB7
CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnJlcG9ydFByb3RvY29sRXJyb3IocmVxdWVz
dElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6TWV0aG9kTm90Rm91bmQsICInRGF0YWJhc2UuZXhlY3V0
ZVNRTEFzeW5jJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIo
KS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlk
IGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlz
cGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNo
ZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNl
bmRQZW5kaW5nRXJyb3JzKCk7CkBAIC0xMzM4LDcgKzEzNjIsNyBAQCBfX2F0dHJpYnV0ZV9fKCh2
aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkKIEBlbmQKIAogQHByb3RvY29sIFRlc3RQcm90b2NvbERh
dGFiYXNlRG9tYWluSGFuZGxlciA8TlNPYmplY3Q+Ci1AcmVxdWlyZWQKK0BvcHRpb25hbAogLSAo
dm9pZClleGVjdXRlU1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzV2l0aEVycm9yQ2FsbGJhY2s6
KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoo
dm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKipjb2x1bW5OYW1lcywgTlNTdHJpbmcgKipu
b3RlcywgZG91YmxlICp0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnZhbHVlcywg
UldJUHJvdG9jb2xKU09OT2JqZWN0ICoqcGF5bG9hZCwgaW50ICpkYXRhYmFzZUlkLCBUZXN0UHJv
dG9jb2xEYXRhYmFzZUVycm9yICoqc3FsRXJyb3IsIFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFy
eUNvbG9ycyAqc2NyZWVuQ29sb3IsIE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKmFsdGVybmF0ZUNv
bG9ycywgVGVzdFByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMU3luY09wdGlvbmFsUmV0dXJuVmFs
dWVzUHJpbnRDb2xvciAqcHJpbnRDb2xvcikpc3VjY2Vzc0NhbGxiYWNrIGRhdGFiYXNlSWQ6KGlu
dClkYXRhYmFzZUlkIHF1ZXJ5OihOU1N0cmluZyAqKXF1ZXJ5OwogLSAodm9pZClleGVjdXRlU1FM
QXN5bmNPcHRpb25hbFJldHVyblZhbHVlc1dpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4pKE5TU3Ry
aW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXikoTlNBcnJh
eS8qPE5TU3RyaW5nPiovICoqY29sdW1uTmFtZXMsIE5TU3RyaW5nICoqbm90ZXMsIGRvdWJsZSAq
dGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKip2YWx1ZXMsIFJXSVByb3RvY29sSlNP
Tk9iamVjdCAqKnBheWxvYWQsIGludCAqZGF0YWJhc2VJZCwgVGVzdFByb3RvY29sRGF0YWJhc2VF
cnJvciAqKnNxbEVycm9yLCBUZXN0UHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgKnNjcmVl
bkNvbG9yLCBOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiphbHRlcm5hdGVDb2xvcnMsIFRlc3RQcm90
b2NvbERhdGFiYXNlRXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9y
ICpwcmludENvbG9yKSlzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDooaW50KWRhdGFiYXNlSWQg
cXVlcnk6KE5TU3RyaW5nICopcXVlcnk7CiAtICh2b2lkKWV4ZWN1dGVTUUxTeW5jV2l0aEVycm9y
Q2FsbGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjazoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0
cmluZyAqbm90ZXMsIGRvdWJsZSB0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFs
dWVzLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnBheWxvYWQsIGludCBkYXRhYmFzZUlkLCBUZXN0
UHJvdG9jb2xEYXRhYmFzZUVycm9yICpzcWxFcnJvciwgTlNBcnJheS8qPE5TU3RyaW5nPiovICph
bHRlcm5hdGVDb2xvcnMsIFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyBzY3JlZW5D
b2xvciwgVGVzdFByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMU3luY1ByaW50Q29sb3IgcHJpbnRD
b2xvcikpc3VjY2Vzc0NhbGxiYWNrIGRhdGFiYXNlSWQ6KGludClkYXRhYmFzZUlkIHF1ZXJ5OihO
U1N0cmluZyAqKXF1ZXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25h
bC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0
aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IGFkZThj
NWY4OTE5MDQ0ODZmMjZlN2M4MzhhNmE1NWI0ZGM1NGZiMjYuLjlkYjU2YjViNTVhM2M2YzU4MjZh
N2Y3NDU3YTY3ODlkMjIyNDIyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0
aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21t
YW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAg
LTgzMiw2ICs4MzIsMTIgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIHZvaWQgT2JqQ0luc3Bl
Y3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRl
cnMobG9uZyByZXF1ZXN0SWQsIGNvbnN0IEpTT046OkFycmF5KiBpbl9jb2x1bW5OYW1lcywgY29u
c3QgU3RyaW5nKiBpbl9ub3RlcywgY29uc3QgZG91YmxlKiBpbl90aW1lc3RhbXAsIGNvbnN0IEpT
T046Ok9iamVjdCogaW5fdmFsdWVzLCBjb25zdCBKU09OOjpWYWx1ZSogaW5fcGF5bG9hZCwgY29u
c3QgaW50KiBpbl9kYXRhYmFzZUlkLCBjb25zdCBKU09OOjpPYmplY3QqIGluX3NxbEVycm9yLCBj
b25zdCBTdHJpbmcqIGluX3NjcmVlbkNvbG9yLCBjb25zdCBKU09OOjpBcnJheSogaW5fYWx0ZXJu
YXRlQ29sb3JzLCBjb25zdCBTdHJpbmcqIGluX3ByaW50Q29sb3IpCiB7CisgICAgaWYgKCFbbV9k
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGV4ZWN1dGVBbGxPcHRpb25hbFBh
cmFtZXRlcnNXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6Y29sdW1uTmFtZXM6bm90
ZXM6dGltZXN0YW1wOnZhbHVlczpwYXlsb2FkOmRhdGFiYXNlSWQ6c3FsRXJyb3I6c2NyZWVuQ29s
b3I6YWx0ZXJuYXRlQ29sb3JzOnByaW50Q29sb3I6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3Bh
dGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVy
OjpNZXRob2ROb3RGb3VuZCwgIidEYXRhYmFzZS5leGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJz
JyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBl
bmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2Fs
bGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigp
LT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZl
ckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5n
RXJyb3JzKCk7CkBAIC05MDQsNiArOTEwLDEyIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNl
QmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyByCiAK
IHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVOb09w
dGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2Nv
bHVtbk5hbWVzLCBjb25zdCBTdHJpbmcmIGluX25vdGVzLCBkb3VibGUgaW5fdGltZXN0YW1wLCBj
b25zdCBKU09OOjpPYmplY3QmIGluX3ZhbHVlcywgSlNPTjo6VmFsdWUgaW5fcGF5bG9hZCwgaW50
IGluX2RhdGFiYXNlSWQsIGNvbnN0IEpTT046Ok9iamVjdCYgaW5fc3FsRXJyb3IsIGNvbnN0IFN0
cmluZyYgaW5fc2NyZWVuQ29sb3IsIGNvbnN0IEpTT046OkFycmF5JiBpbl9hbHRlcm5hdGVDb2xv
cnMsIGNvbnN0IFN0cmluZyYgaW5fcHJpbnRDb2xvcikKIHsKKyAgICBpZiAoIVttX2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJz
V2l0aEVycm9yQ2FsbGJhY2s6c3VjY2Vzc0NhbGxiYWNrOmNvbHVtbk5hbWVzOm5vdGVzOnRpbWVz
dGFtcDp2YWx1ZXM6cGF5bG9hZDpkYXRhYmFzZUlkOnNxbEVycm9yOnNjcmVlbkNvbG9yOmFsdGVy
bmF0ZUNvbG9yczpwcmludENvbG9yOildKSB7CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCkt
PnJlcG9ydFByb3RvY29sRXJyb3IocmVxdWVzdElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6TWV0aG9k
Tm90Rm91bmQsICInRGF0YWJhc2UuZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzJyB3YXMgbm90
IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJv
cnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBe
KE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQ
cm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBl
cnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7
CkBAIC0xMjE3LDcgKzEyMjksNyBAQCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVs
dCIpKSkKIEBlbmQKIAogQHByb3RvY29sIFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxl
ciA8TlNPYmplY3Q+Ci1AcmVxdWlyZWQKK0BvcHRpb25hbAogLSAodm9pZClleGVjdXRlQWxsT3B0
aW9uYWxQYXJhbWV0ZXJzV2l0aEVycm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9y
KSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJp
bmc+Ki8gKipjb2x1bW5OYW1lcywgTlNTdHJpbmcgKipub3RlcywgZG91YmxlICp0aW1lc3RhbXAs
IFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoq
cGF5bG9hZCwgaW50ICpkYXRhYmFzZUlkLCBUZXN0UHJvdG9jb2xEYXRhYmFzZUVycm9yICoqc3Fs
RXJyb3IsIFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyAqc2NyZWVuQ29sb3IsIE5T
QXJyYXkvKjxOU1N0cmluZz4qLyAqKmFsdGVybmF0ZUNvbG9ycywgVGVzdFByb3RvY29sRGF0YWJh
c2VFeGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJzUHJpbnRDb2xvciAqcHJpbnRDb2xvcikpc3Vj
Y2Vzc0NhbGxiYWNrIGNvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiopY29sdW1u
TmFtZXMgbm90ZXM6KE5TU3RyaW5nICoqKW5vdGVzIHRpbWVzdGFtcDooZG91YmxlICopdGltZXN0
YW1wIHZhbHVlczooUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqKXZhbHVlcyBwYXlsb2FkOihSV0lQ
cm90b2NvbEpTT05PYmplY3QgKiopcGF5bG9hZCBkYXRhYmFzZUlkOihpbnQgKilkYXRhYmFzZUlk
IHNxbEVycm9yOihUZXN0UHJvdG9jb2xEYXRhYmFzZUVycm9yICoqKXNxbEVycm9yIHNjcmVlbkNv
bG9yOihUZXN0UHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgKilzY3JlZW5Db2xvciBhbHRl
cm5hdGVDb2xvcnM6KE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKilhbHRlcm5hdGVDb2xvcnMgcHJp
bnRDb2xvcjooVGVzdFByb3RvY29sRGF0YWJhc2VFeGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJz
UHJpbnRDb2xvciAqKXByaW50Q29sb3I7CiAtICh2b2lkKWV4ZWN1dGVOb09wdGlvbmFsUGFyYW1l
dGVyc1dpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxs
YmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXikoTlNBcnJheS8qPE5TU3RyaW5nPiovICpjb2x1
bW5OYW1lcywgTlNTdHJpbmcgKm5vdGVzLCBkb3VibGUgdGltZXN0YW1wLCBSV0lQcm90b2NvbEpT
T05PYmplY3QgKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICpwYXlsb2FkLCBpbnQgZGF0
YWJhc2VJZCwgVGVzdFByb3RvY29sRGF0YWJhc2VFcnJvciAqc3FsRXJyb3IsIFRlc3RQcm90b2Nv
bERhdGFiYXNlUHJpbWFyeUNvbG9ycyBzY3JlZW5Db2xvciwgTlNBcnJheS8qPE5TU3RyaW5nPiov
ICphbHRlcm5hdGVDb2xvcnMsIFRlc3RQcm90b2NvbERhdGFiYXNlRXhlY3V0ZU5vT3B0aW9uYWxQ
YXJhbWV0ZXJzUHJpbnRDb2xvciBwcmludENvbG9yKSlzdWNjZXNzQ2FsbGJhY2sgY29sdW1uTmFt
ZXM6KE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKWNvbHVtbk5hbWVzIG5vdGVzOihOU1N0cmluZyAq
KW5vdGVzIHRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCB2YWx1ZXM6KFJXSVByb3RvY29sSlNP
Tk9iamVjdCAqKXZhbHVlcyBwYXlsb2FkOihSV0lQcm90b2NvbEpTT05PYmplY3QgKilwYXlsb2Fk
IGRhdGFiYXNlSWQ6KGludClkYXRhYmFzZUlkIHNxbEVycm9yOihUZXN0UHJvdG9jb2xEYXRhYmFz
ZUVycm9yICopc3FsRXJyb3Igc2NyZWVuQ29sb3I6KFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFy
eUNvbG9ycylzY3JlZW5Db2xvciBhbHRlcm5hdGVDb2xvcnM6KE5TQXJyYXkvKjxOU1N0cmluZz4q
LyAqKWFsdGVybmF0ZUNvbG9ycyBwcmludENvbG9yOihUZXN0UHJvdG9jb2xEYXRhYmFzZUV4ZWN1
dGVOb09wdGlvbmFsUGFyYW1ldGVyc1ByaW50Q29sb3IpcHJpbnRDb2xvcjsKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxlVHlwZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9k
b21haW4tZGVidWdnYWJsZVR5cGVzLmpzb24tcmVzdWx0CmluZGV4IDY4NzI5NTBjNTk3MTVkYzNi
NDZiNmZjYjU4ZTQ0YzFkZDkxZmY2MDguLjNkNjViMDQ0NzhjMzQ0ZmYzZjY3YzliMTEzMTA3NDM2
N2NjNDQ2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxlVHlwZXMuanNvbi1y
ZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdApAQCAt
NTY3LDYgKzU2NywxMiBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogdm9pZCBPYmpDSW5zcGVj
dG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXI6OkNvbW1hbmQobG9uZyByZXF1ZXN0SWQpCiB7Cisg
ICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKENvbW1hbmRX
aXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERp
c3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRj
aGVyOjpNZXRob2ROb3RGb3VuZCwgIidEb21haW4uQ29tbWFuZCcgd2FzIG5vdCBmb3VuZCJfcyk7
CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZCBlcnJvckNhbGxiYWNrID0gXihOU1N0cmluZyAq
ZXJyb3IpIHsKICAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJv
cihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpTZXJ2ZXJFcnJvciwgZXJyb3IpOwogICAg
ICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUGVuZGluZ0Vycm9ycygpOwpAQCAtODM5LDcg
Kzg0NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3Jt
KSB7CiAKIAogQHByb3RvY29sIFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRsZXIgPE5TT2Jq
ZWN0PgotQHJlcXVpcmVkCitAb3B0aW9uYWwKIC0gKHZvaWQpQ29tbWFuZFdpdGhFcnJvckNhbGxi
YWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2s6KHZvaWQoXikodm9pZCkpc3VjY2Vzc0NhbGxiYWNrOwogQGVuZAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC9kb21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNv
bi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
Z2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdn
YWJsZVR5cGUuanNvbi1yZXN1bHQKaW5kZXggOGUyZDdmZDI1MTMzNDVkNjM2MjVlNzViZjIxODY2
YjQ4NDE2ODRlNS4uY2MwOGFlOTljMmQ4ZmM0MTFlMmI5ZTViNTNjMzFiOTUyMWM1NGVlNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dl
bmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2Fi
bGVUeXBlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5n
LWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdApAQCAtNTY3LDYgKzU2NywxMiBAQCBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogdm9pZCBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERp
c3BhdGNoZXI6OkNvbW1hbmQobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKENvbW1hbmRXaXRoRXJyb3JDYWxsYmFjazpz
dWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0
UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3Vu
ZCwgIidEb21haW4uQ29tbWFuZCcgd2FzIG5vdCBmb3VuZCJfcyk7CisgICAgICAgIGJhY2tlbmRE
aXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZCBlcnJvckNhbGxiYWNrID0gXihOU1N0cmluZyAqZXJyb3IpIHsKICAgICAgICAg
YmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tl
bmREaXNwYXRjaGVyOjpTZXJ2ZXJFcnJvciwgZXJyb3IpOwogICAgICAgICBiYWNrZW5kRGlzcGF0
Y2hlcigpLT5zZW5kUGVuZGluZ0Vycm9ycygpOwpAQCAtODM5LDcgKzg0NSw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7CiAKIAogQHByb3RvY29s
IFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRsZXIgPE5TT2JqZWN0PgotQHJlcXVpcmVkCitA
b3B0aW9uYWwKIC0gKHZvaWQpQ29tbWFuZFdpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4pKE5TU3Ry
aW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXikodm9pZCkp
c3VjY2Vzc0NhbGxiYWNrOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0
VHlwZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQK
aW5kZXggN2JjODU2NzViNTc3OWI5MThhZDY4NzM5MzA4MTQ3N2E3MGFkYzJkMi4uYWU4ZjA5M2U3
NGFiZjIwOTBhMGVkZjg3NmEwNWEyOGU2ZjM5MTUzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlu
LXRhcmdldFR5cGVzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5q
c29uLXJlc3VsdApAQCAtNTY3LDYgKzU2NywxMiBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAog
dm9pZCBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXI6OkNvbW1hbmQobG9uZyBy
ZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKENvbW1hbmRXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAg
ICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQs
IEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidEb21haW4uQ29tbWFuZCcgd2Fz
IG5vdCBmb3VuZCJfcyk7CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5n
RXJyb3JzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZCBlcnJvckNhbGxiYWNr
ID0gXihOU1N0cmluZyAqZXJyb3IpIHsKICAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVw
b3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpTZXJ2ZXJFcnJv
ciwgZXJyb3IpOwogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUGVuZGluZ0Vycm9y
cygpOwpAQCAtODM5LDcgKzg0NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQ
cm90b2NvbFBsYXRmb3JtKSB7CiAKIAogQHByb3RvY29sIFRlc3RQcm90b2NvbERvbWFpbkRvbWFp
bkhhbmRsZXIgPE5TT2JqZWN0PgotQHJlcXVpcmVkCitAb3B0aW9uYWwKIC0gKHZvaWQpQ29tbWFu
ZFdpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXikodm9pZCkpc3VjY2Vzc0NhbGxiYWNrOwogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpz
b24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29u
LXJlc3VsdAppbmRleCBhYTZlZGEwZDRlOTRkMTFjOTVmOWVhMmNmMjIyNzU4NDE1NzQwZjU5Li4z
YjkwN2M3NDVmZWRmOTZiOTQ3ODZiZDk1NWZiODMyZTI3ZmY2NTQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVj
dGVkL2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQKQEAgLTgx
MSw2ICs4MTEsMTIgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIHZvaWQgT2JqQ0luc3BlY3Rv
ck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTEobG9uZyByZXF1ZXN0SWQp
CiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxv
YWRSZXNvdXJjZTFXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAg
ICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJh
Y2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidOZXR3b3JrMS5sb2FkUmVzb3VyY2Ux
JyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBl
bmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2Fs
bGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigp
LT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZl
ckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5n
RXJyb3JzKCk7CkBAIC04MjYsNiArODMyLDEyIEBAIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmsx
QmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTEobG9uZyByZXF1ZXN0SWQpCiAKIHZvaWQg
T2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTEobG9u
ZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGxvYWRSZXNvdXJjZTFXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6
KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihy
ZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidOZXR3b3JrMy5s
b2FkUmVzb3VyY2UxJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNo
ZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5k
RGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3Bh
dGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCkt
PnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC04NDAsNiArODUyLDEyIEBAIHZvaWQgT2JqQ0luc3Bl
Y3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTEobG9uZyByZXF1ZXN0
SWQpCiAKIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRS
ZXNvdXJjZTIobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJjZTJXaXRoRXJyb3JDYWxsYmFjazpzdWNj
ZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJv
dG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwg
IidOZXR3b3JrMy5sb2FkUmVzb3VyY2UyJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFj
a2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAg
ICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwg
QmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmRE
aXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC04NTQsNiArODcyLDEyIEBAIHZv
aWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTIo
bG9uZyByZXF1ZXN0SWQpCiAKIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3Bh
dGNoZXI6OmxvYWRSZXNvdXJjZTMobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJjZTNXaXRoRXJyb3JD
YWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIo
KS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRo
b2ROb3RGb3VuZCwgIidOZXR3b3JrMy5sb2FkUmVzb3VyY2UzJyB3YXMgbm90IGZvdW5kIl9zKTsK
KyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICpl
cnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9y
KHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAg
ICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC04NjgsNiAr
ODkyLDEyIEBAIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6Omxv
YWRSZXNvdXJjZTMobG9uZyByZXF1ZXN0SWQpCiAKIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmsz
QmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTQobG9uZyByZXF1ZXN0SWQpCiB7CisgICAg
aWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJj
ZTRXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2Vu
ZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNw
YXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidOZXR3b3JrMy5sb2FkUmVzb3VyY2U0JyB3YXMgbm90
IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJv
cnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBe
KE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQ
cm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBl
cnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7
CkBAIC04ODIsNiArOTEyLDEyIEBAIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERp
c3BhdGNoZXI6OmxvYWRSZXNvdXJjZTQobG9uZyByZXF1ZXN0SWQpCiAKIHZvaWQgT2JqQ0luc3Bl
Y3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTUobG9uZyByZXF1ZXN0
SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KGxvYWRSZXNvdXJjZTVXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAg
ICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQs
IEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidOZXR3b3JrMy5sb2FkUmVzb3Vy
Y2U1JyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2Vu
ZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlkIGVycm9y
Q2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hl
cigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNl
cnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5k
aW5nRXJyb3JzKCk7CkBAIC04OTYsNiArOTMyLDEyIEBAIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdv
cmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpCiAKIHZv
aWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTYo
bG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJjZTZXaXRoRXJyb3JDYWxsYmFjazpzdWNjZXNzQ2FsbGJh
Y2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJv
cihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3VuZCwgIidOZXR3b3Jr
My5sb2FkUmVzb3VyY2U2JyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3Bh
dGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNr
ZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERp
c3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVy
KCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC05MTAsNiArOTUyLDEyIEBAIHZvaWQgT2JqQ0lu
c3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTYobG9uZyByZXF1
ZXN0SWQpCiAKIHZvaWQgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6Omxv
YWRSZXNvdXJjZTcobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJjZTdXaXRoRXJyb3JDYWxsYmFjazpz
dWNjZXNzQ2FsbGJhY2s6KV0pIHsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIoKS0+cmVwb3J0
UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVyOjpNZXRob2ROb3RGb3Vu
ZCwgIidOZXR3b3JrMy5sb2FkUmVzb3VyY2U3JyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAg
YmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewog
ICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJ
ZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tl
bmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC0xMTY3LDEyICsxMjE1LDEy
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7CiAK
IAogQHByb3RvY29sIFRlc3RQcm90b2NvbE5ldHdvcmsxRG9tYWluSGFuZGxlciA8TlNPYmplY3Q+
Ci1AcmVxdWlyZWQKK0BvcHRpb25hbAogLSAodm9pZClsb2FkUmVzb3VyY2UxV2l0aEVycm9yQ2Fs
bGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjazoodm9pZCheKSh2b2lkKSlzdWNjZXNzQ2FsbGJhY2s7CiBAZW5kCiAKIEBwcm90b2NvbCBU
ZXN0UHJvdG9jb2xOZXR3b3JrM0RvbWFpbkhhbmRsZXIgPE5TT2JqZWN0PgotQHJlcXVpcmVkCitA
b3B0aW9uYWwKIC0gKHZvaWQpbG9hZFJlc291cmNlMVdpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4p
KE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXiko
dm9pZCkpc3VjY2Vzc0NhbGxiYWNrOwogLSAodm9pZClsb2FkUmVzb3VyY2UyV2l0aEVycm9yQ2Fs
bGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjazoodm9pZCheKSh2b2lkKSlzdWNjZXNzQ2FsbGJhY2s7CiAtICh2b2lkKWxvYWRSZXNvdXJj
ZTNXaXRoRXJyb3JDYWxsYmFjazoodm9pZCheKShOU1N0cmluZyAqZXJyb3IpKWVycm9yQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrOih2b2lkKF4pKHZvaWQpKXN1Y2Nlc3NDYWxsYmFjazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZW51bS12YWx1ZXMu
anNvbi1yZXN1bHQKaW5kZXggNDBhNTFkODk4ZTMzMzk0MjNhZjM2ZWYzODM2NTk0NjFjMDczNmVl
MC4uNTk3NTdiYjcwYjA1YjFmZDkyNjhiMjhkZDFkZDMxMTdiZDViNDJjZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZW51bS12YWx1ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNv
bi1yZXN1bHQKQEAgLTY4NCw2ICs2ODQsMTIgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIHZv
aWQgT2JqQ0luc3BlY3RvckNvbW1hbmREb21haW5CYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZFdp
dGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbW1hbmRXaXRoRW51bVJldHVyblZhbHVl
V2l0aEVycm9yQ2FsbGJhY2s6c3VjY2Vzc0NhbGxiYWNrOildKSB7CisgICAgICAgIGJhY2tlbmRE
aXNwYXRjaGVyKCktPnJlcG9ydFByb3RvY29sRXJyb3IocmVxdWVzdElkLCBCYWNrZW5kRGlzcGF0
Y2hlcjo6TWV0aG9kTm90Rm91bmQsICInQ29tbWFuZERvbWFpbi5jb21tYW5kV2l0aEVudW1SZXR1
cm5WYWx1ZScgd2FzIG5vdCBmb3VuZCJfcyk7CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCkt
PnNlbmRQZW5kaW5nRXJyb3JzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZCBl
cnJvckNhbGxiYWNrID0gXihOU1N0cmluZyAqZXJyb3IpIHsKICAgICAgICAgYmFja2VuZERpc3Bh
dGNoZXIoKS0+cmVwb3J0UHJvdG9jb2xFcnJvcihyZXF1ZXN0SWQsIEJhY2tlbmREaXNwYXRjaGVy
OjpTZXJ2ZXJFcnJvciwgZXJyb3IpOwogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5k
UGVuZGluZ0Vycm9ycygpOwpAQCAtOTY3LDcgKzk3Myw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIFRlc3RQcm90b2NvbFR5cGVEb21haW5FbnVtKSB7CiAKIAogQHByb3RvY29sIFRlc3RQ
cm90b2NvbENvbW1hbmREb21haW5Eb21haW5IYW5kbGVyIDxOU09iamVjdD4KLUByZXF1aXJlZAor
QG9wdGlvbmFsCiAtICh2b2lkKWNvbW1hbmRXaXRoRW51bVJldHVyblZhbHVlV2l0aEVycm9yQ2Fs
bGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjazoodm9pZCheKShUZXN0UHJvdG9jb2xDb21tYW5kRG9tYWluQ29tbWFuZFdpdGhFbnVtUmV0
dXJuVmFsdWVSZXR1cm5WYWx1ZSByZXR1cm5WYWx1ZSkpc3VjY2Vzc0NhbGxiYWNrOwogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC9ldmVudC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1
Z2dhYmxlVHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmct
ZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CmluZGV4IDA0NWUxNjQzMDcwN2NlYzU5
MjE4ZmJmMmQ3YWU2ZWQ2ZjVlYTg4N2UuLjM5NDRmNDhmYWIzNTBiN2MxZmE1ZmY5ZWQzMGViZjA5
YzgxMjc1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9t
YWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50LXRhcmdldFR5
cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CkBAIC01NjcsNiAr
NTY3LDEyIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiB2b2lkIE9iakNJbnNwZWN0b3JEb21h
aW5CYWNrZW5kRGlzcGF0Y2hlcjo6Q29tbWFuZChsb25nIHJlcXVlc3RJZCkKIHsKKyAgICBpZiAo
IVttX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoQ29tbWFuZFdpdGhFcnJv
ckNhbGxiYWNrOnN1Y2Nlc3NDYWxsYmFjazopXSkgeworICAgICAgICBiYWNrZW5kRGlzcGF0Y2hl
cigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6Ok1l
dGhvZE5vdEZvdW5kLCAiJ0RvbWFpbi5Db21tYW5kJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAg
ICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikg
ewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVl
c3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJh
Y2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC04MzksNyArODQ1LDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKIAog
CiBAcHJvdG9jb2wgVGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlciA8TlNPYmplY3Q+Ci1A
cmVxdWlyZWQKK0BvcHRpb25hbAogLSAodm9pZClDb21tYW5kV2l0aEVycm9yQ2FsbGJhY2s6KHZv
aWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoodm9p
ZCheKSh2b2lkKSlzdWNjZXNzQ2FsbGJhY2s7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdAppbmRleCA3OGU3
ZjZlM2ZhY2Q5NjQ2ZTU1Y2VkMDQxYTViYjJiMmU4MTE0ZWY1Li4xYmRhNzEyNTI5NWQ3OWEzZTVj
MThlMDk2NDViNjljYTg1OTFjODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5z
LXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9t
YWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0CkBAIC02NjcsNiArNjY3LDEyIEBA
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogI2lmIFBMQVRGT1JNKFdFQl9DT01NQU5EUykKIHZvaWQg
T2JqQ0luc3BlY3Rvck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZShsb25n
IHJlcXVlc3RJZCkKIHsKKyAgICBpZiAoIVttX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IobG9hZFJlc291cmNlV2l0aEVycm9yQ2FsbGJhY2s6c3VjY2Vzc0NhbGxiYWNrOild
KSB7CisgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnJlcG9ydFByb3RvY29sRXJyb3IocmVx
dWVzdElkLCBCYWNrZW5kRGlzcGF0Y2hlcjo6TWV0aG9kTm90Rm91bmQsICInTmV0d29yazEubG9h
ZFJlc291cmNlJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAgICAgYmFja2VuZERpc3BhdGNoZXIo
KS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlk
IGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikgewogICAgICAgICBiYWNrZW5kRGlz
cGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNo
ZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNl
bmRQZW5kaW5nRXJyb3JzKCk7CkBAIC05NDgsNyArOTU0LDcgQEAgX19hdHRyaWJ1dGVfXygodmlz
aWJpbGl0eSAoImRlZmF1bHQiKSkpCiBAZW5kCiAKIEBwcm90b2NvbCBUZXN0UHJvdG9jb2xOZXR3
b3JrMURvbWFpbkhhbmRsZXIgPE5TT2JqZWN0PgotQHJlcXVpcmVkCitAb3B0aW9uYWwKIC0gKHZv
aWQpbG9hZFJlc291cmNlV2l0aEVycm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9y
KSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoodm9pZCheKSh2b2lkKSlzdWNjZXNzQ2Fs
bGJhY2s7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZv
cm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVz
dWx0CmluZGV4IDQ5Nzc3ODY0ZTNjY2JkYTU3NDUyNTg3ODMwYzhjZmVkYzZhNTMwMGIuLjliM2Nl
ZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0OTA2NWZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5p
dGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9ucy13
aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtNjQwLDYgKzY0MCwxMiBAQCBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKIAogdm9pZCBPYmpDSW5zcGVjdG9yTmV0d29ya0JhY2tlbmREaXNwYXRj
aGVyOjpsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQpCiB7CisgICAgaWYgKCFbbV9kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGxvYWRSZXNvdXJjZVdpdGhFcnJvckNhbGxi
YWNrOnN1Y2Nlc3NDYWxsYmFjazopXSkgeworICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5y
ZXBvcnRQcm90b2NvbEVycm9yKHJlcXVlc3RJZCwgQmFja2VuZERpc3BhdGNoZXI6Ok1ldGhvZE5v
dEZvdW5kLCAiJ05ldHdvcmsubG9hZFJlc291cmNlJyB3YXMgbm90IGZvdW5kIl9zKTsKKyAgICAg
ICAgYmFja2VuZERpc3BhdGNoZXIoKS0+c2VuZFBlbmRpbmdFcnJvcnMoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlkIGVycm9yQ2FsbGJhY2sgPSBeKE5TU3RyaW5nICplcnJvcikg
ewogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5yZXBvcnRQcm90b2NvbEVycm9yKHJlcXVl
c3RJZCwgQmFja2VuZERpc3BhdGNoZXI6OlNlcnZlckVycm9yLCBlcnJvcik7CiAgICAgICAgIGJh
Y2tlbmREaXNwYXRjaGVyKCktPnNlbmRQZW5kaW5nRXJyb3JzKCk7CkBAIC05MjAsNyArOTI2LDcg
QEAgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpCiBAZW5kCiAKIEBwcm90
b2NvbCBUZXN0UHJvdG9jb2xOZXR3b3JrRG9tYWluSGFuZGxlciA8TlNPYmplY3Q+Ci1AcmVxdWly
ZWQKK0BvcHRpb25hbAogLSAodm9pZClsb2FkUmVzb3VyY2VXaXRoRXJyb3JDYWxsYmFjazoodm9p
ZCheKShOU1N0cmluZyAqZXJyb3IpKWVycm9yQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrOih2b2lk
KF4pKHZvaWQpKXN1Y2Nlc3NDYWxsYmFjazsKIEBlbmQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>