<?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>123835</bug_id>
          
          <creation_ts>2013-11-05 16:17:07 -0800</creation_ts>
          <short_desc>Support iteration of the Arguments object</short_desc>
          <delta_ts>2013-11-06 14:36:06 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>947396</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-05 16:17:07 -0800</bug_when>
    <thetext>Support iteration of the Arguments object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947401</commentid>
    <comment_count>1</comment_count>
      <attachid>216094</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-05 16:26:46 -0800</bug_when>
    <thetext>Created attachment 216094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947406</commentid>
    <comment_count>2</comment_count>
      <attachid>216094</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-05 16:37:48 -0800</bug_when>
    <thetext>Comment on attachment 216094
Patch

Attachment 216094 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/21248053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947408</commentid>
    <comment_count>3</comment_count>
      <attachid>216096</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-05 16:40:47 -0800</bug_when>
    <thetext>Created attachment 216096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947915</commentid>
    <comment_count>4</comment_count>
      <attachid>216096</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-11-06 14:20:51 -0800</bug_when>
    <thetext>Comment on attachment 216096
Patch

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

r=me with comments addressed.

&gt; Source/JavaScriptCore/runtime/CommonIdentifiers.h:31
&gt;      macro(Array) \
&gt; +    macro(ArgumentsIterator) \

Sort ArgumentsIterator before Array.

&gt; LayoutTests/js/script-tests/arguments-iterator.js:57
&gt; +function testStrict() {
&gt; +    var i = 0;
&gt; +    for (arg of arguments) {
&gt; +        realArg = arguments[i++];
&gt; +        shouldBeTrue(&quot;arg === realArg&quot;);
&gt; +    }
&gt; +    iteratedArgumentsLength = i;
&gt; +    actualArgumentsLength = arguments.length;
&gt; +    shouldBe(&quot;actualArgumentsLength&quot;, &quot;iteratedArgumentsLength&quot;);
&gt; +}
&gt; +
&gt; +testStrict();
&gt; +testStrict(&quot;a&quot;);
&gt; +testStrict(&quot;a&quot;, &quot;b&quot;);
&gt; +testStrict({})

What makes this test case &quot;strict&quot;?  It looks the identical to the non-strict &quot;test()&quot; test case above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947924</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-06 14:36:06 -0800</bug_when>
    <thetext>Committed r158793: &lt;http://trac.webkit.org/changeset/158793&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216094</attachid>
            <date>2013-11-05 16:26:46 -0800</date>
            <delta_ts>2013-11-05 16:40:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123835-20131105162645.patch</filename>
            <type>text/plain</type>
            <size>48789</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmU3ZGQ1NzM0ZTY3ZjM3MGY0ODUzOGRmNmUyNDVjY2Q5ODNlNWE3Li5mMzA3M2ZjY2ZlMjA3N2Y1
NTY2MjY0NThkOTYyYTcyNTAyOWFhMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxMy0xMS0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgaXRlcmF0aW9uIG9mIHRoZSBBcmd1bWVudHMgb2JqZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM4MzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gQXJndW1l
bnRzSXRlcmF0b3Igb2JqZWN0LCBhbmQgYXNzb2NpYXRlZCBjbGFzc2VzIHNvIHRoYXQgd2UgY2Fu
IHN1cHBvcnQKKyAgICAgICAgaXRlcmF0aW9uIG9mIHRoZSBhcmd1bWVudHMgb2JqZWN0LgorCisg
ICAgICAgIFRoaXMgaXMgYSBsYXJnZWx5IG1lY2hhbmljYWwgcGF0Y2guICBUaGUgb25seSBnbmFy
bGluZXNzIGlzIGluIHRoZQorICAgICAgICBsb2dpYyB0byBhdm9pZCByZWlmeWluZyB0aGUgQXJn
dW1lbnRzIG9iamVjdCBpbiBmb3IoLi4uIG9mIGFyZ3VtZW50cykKKyAgICAgICAgc2NlbmFyaW9z
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0RW51bWVyYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAg
ICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjph
cmd1bWVudHNGdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaDog
QWRkZWQuCisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OkFy
Z3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6YXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGVGdW5jSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjphcmd1bWVudHNJ
dGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50c0l0
ZXJhdG9yUHJvdG90eXBlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcmd1bWVudHNJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzSXRlcmF0b3JQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlOjpBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAgICogcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcmd1bWVudHNJdGVy
YXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmg6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAo
SlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKEpTQzo6SlNBcmd1bWVu
dHNJdGVyYXRvcjo6SlNBcmd1bWVudHNJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5SXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVJdGVyYXRvclJlc3VsdCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oOgorCiAyMDEzLTExLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsJ3MgTlNJ
bnZvY2F0aW9uIHNob3VsZG4ndCByZXRhaW4gaXRzIHRhcmdldCBvciBhcmd1bWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMWJmZmI5NzIyMzBjODNj
NzgzZTgzZmMyYTBhY2NhODhlMzdhZjkyMi4uNjcwODUxZDE1OTUxNDdmMzAwNmE4NTYzMDFlYTBh
MmZmM2JhMTFlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTc2Nyw2ICs3NjcsMTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCBcCisgICAgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwIFwKKyAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5jcHAgXApAQCAtODcxLDYgKzg3NSw4IEBA
IGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQ
SVZhbHVlV3JhcHBlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJ
VmFsdWVXcmFwcGVyLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1l
bnRzSXRlcmF0b3IuY3BwIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
Z3VtZW50c0l0ZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXIuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IDAyN2M4NjM1ZTAwZGI5OWIwMmExODVk
OGZhOWM2NTdkNzMzODM4N2QuLjg1N2Q1NmE4NGZmNmMwODQyMmY1MmJhNmMwOWI1ZWZiMWNlZGMx
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNTEzLDYgKzUx
Myw4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlclByb2Zp
bGVkQnl0ZWNvZGVzLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEFyZ0xpc3QuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJn
dW1lbnRzLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ3Vt
ZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwIiAvPg0KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZmZXIuY3BwIiAvPg0KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZmZXJWaWV3LmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEFycmF5Q29uc3RydWN0b3IuY3BwIiAvPg0K
QEAgLTU1NSw2ICs1NTcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJ
bnRlcm5hbEZ1bmN0aW9uLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQVBJVmFsdWVXcmFwcGVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXEpTQWN0aXZhdGlvbi5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxKU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXkuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcSlNBcnJheUl0ZXJhdG9yLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlCdWZmZXIuY3BwIiAvPg0KQEAgLTEwNTgsNiArMTA2
MSw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlclByb2Zp
bGVkQnl0ZWNvZGVzLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxB
cmdMaXN0LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVu
dHMuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ3VtZW50c0Nv
bnN0cnVjdG9yLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1
bWVudHNQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1l
XEFycmF5QnVmZmVyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxB
cnJheUJ1ZmZlclZpZXcuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1l
XEFycmF5Q29uc3RydWN0b3IuaCIgLz4NCkBAIC0xMTE4LDYgKzExMjMsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRyaW5zaWMuaCIgLz4NCiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQVBJVmFsdWVXcmFwcGVyLmgiIC8+DQogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FjdGl2YXRpb24uaCIgLz4NCisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJndW1lbnRzSXRlcmF0b3IuaCIgLz4NCiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXkuaCIgLz4NCiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlCdWZmZXIuaCIgLz4NCiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIiAvPg0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRl
eCA2NGI0NmE5OGVhOGU0ZTRkYWY3NWVmZWMzOGZlYjVmZmJkYzczNWEyLi4wZGU1OTE3OTdhZWMw
ZmY0YzQzMTQ4YWRiY2JhMDFiMThjMzdmOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMTczLDEyICsxMTczLDIxIEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3Bw
Ij4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHNJdGVyYXRvckNvbnN0
cnVjdG9yLmNwcCI+DQorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQorICAgIDwvQ2xD
b21waWxlPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGUuY3BwIj4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisg
ICAgPC9DbENvbXBpbGU+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caml0XEFzc2VtYmx5
SGVscGVycy5jcHAiPg0KICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+DQogICAgIDwvQ2xDb21w
aWxlPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBcnJheUl0ZXJhdG9y
LmNwcCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxl
Pg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBcmd1bWVudHNJdGVyYXRv
ci5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0NsQ29tcGls
ZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcUmVwYXRjaC5jcHAiPg0KICAgICAg
IDxGaWx0ZXI+aml0PC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KQEAgLTI5NzYsNiArMjk4
NSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUl0ZXJhdG9y
Q29uc3RydWN0b3IuaCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwv
Q2xJbmNsdWRlPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGUuaCI+DQorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQor
ICAgIDwvQ2xJbmNsdWRlPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJn
dW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIj4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0Zp
bHRlcj4NCisgICAgPC9DbEluY2x1ZGU+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0
XEFzc2VtYmx5SGVscGVycy5oIj4NCiAgICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPg0KICAgICA8
L0NsSW5jbHVkZT4NCkBAIC0yOTk3LDYgKzMwMTIsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxKU0FycmF5SXRlcmF0b3IuaCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSlNBcmd1bWVudHNJdGVyYXRvci5oIj4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8
L0ZpbHRlcj4NCisgICAgPC9DbEluY2x1ZGU+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aml0XFJlcGF0Y2guaCI+DQogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4NCiAgICAgPC9DbElu
Y2x1ZGU+DQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NDI5YWJjYjFiYWQ4ZDNj
M2NkZGVkMWI3Y2IzN2ViZDZjMjYzOWFmLi5kNDE3ZTQxOWZiZTNlMDUzNTYxOWJkZmE3YTUxNmJh
ODVmYzlkMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTM0LDYgKzkzNCwx
MiBAQAogCQlBNzQ4MkU5MzExNkE3Q0FEMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
NDgyRTM3MTE2QTY5N0IwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NERFMUQw
MTIwQjg3NTYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRERTFDQjEyMEI4NkQ2MDBENDBENUIgLyog
QVJNdjdBc3NlbWJsZXIuY3BwICovOyB9OwogCQlBNzU3MDZERTExOEEyQkNGMDA1N0Y4OEYgLyog
SklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJf
NjQuY3BwICovOyB9OworCQlBNzYxNDBDRDE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRl
cmF0b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzYxNDBDNzE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JD
b25zdHJ1Y3Rvci5jcHAgKi87IH07CisJCUE3NjE0MENFMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1
bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzYxNDBDODE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRl
cmF0b3JDb25zdHJ1Y3Rvci5oICovOyB9OworCQlBNzYxNDBDRjE4Mjk4MkNCMDA3NTA2MjQgLyog
QXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2MTQwQzkxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLzsgfTsKKwkJQTc2MTQwRDAxODI5ODJDQjAwNzUwNjI0
IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzYxNDBDQTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1l
bnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLzsgfTsKKwkJQTc2MTQwRDExODI5ODJDQjAwNzUwNjI0
IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc2MTQwQ0IxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRz
SXRlcmF0b3IuY3BwICovOyB9OworCQlBNzYxNDBEMjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1
bWVudHNJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc2MTQwQ0MxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCAq
LzsgfTsKIAkJQTc2NkI0NEYwRUU4RENEMTAwOTUxOENBIC8qIEV4ZWN1dGFibGVBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI1
MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2N0I1QjUxN0EwQjk2NTAwNjNE
OTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NjdCNUIzMTdBMEI5NjUwMDYzRDk0MCAv
KiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHAgKi87IH07CiAJCUE3NjdCNUI2MTdB
MEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2N0I1QjQxN0EwQjk2NTAw
NjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIyMTksNiArMjIyNSwxMiBAQAog
CQlBNzQ4MkUzNzExNkE2OTdCMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFwUmVmSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0REUxQ0IxMjBCODZENjAw
RDQwRDVCIC8qIEFSTXY3QXNzZW1ibGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFSTXY3QXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82NC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRBcml0aG1ldGljMzJfNjQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzYxNDBDNzE4Mjk4MkNCMDA3NTA2MjQg
LyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2MTQwQzgxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3Vt
ZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzYxNDBDOTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90
b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzYx
NDBDQTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2MTQwQ0IxODI5ODJDQjAwNzUwNjI0
IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNBcmd1bWVudHNJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE3NjE0MENDMTgyOTgyQ0IwMDc1MDYyNCAvKiBKU0FyZ3VtZW50c0l0ZXJhdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJndW1lbnRzSXRlcmF0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2N0I1QjMxN0EwQjk2NTAwNjNEOTQwIC8q
IERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcDsgcGF0aCA9
IGRmZy9ERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3NjdCNUI0MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVy
Q3JlYXRpb25QaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdMb29w
UHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RGR0xvb3BQcmVIZWFkZXJDcmVh
dGlvblBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkM1MTc0MTE4Mjc0
OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0ludGVyZmFjZUpJVC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzYyOSw2ICszNjQxLDEyIEBACiAJCQkJQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuaCAqLywKIAkJCQlBN0JEQUVDNDE3RjRFQTE0MDBGNjE0MEMgLyog
SlNBcnJheUl0ZXJhdG9yLmNwcCAqLywKIAkJCQlBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyog
SlNBcnJheUl0ZXJhdG9yLmggKi8sCisJCQkJQTc2MTQwQzcxODI5ODJDQjAwNzUwNjI0IC8qIEFy
Z3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovLAorCQkJCUE3NjE0MEM4MTgyOTgyQ0Iw
MDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmggKi8sCisJCQkJQTc2MTQw
QzkxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywK
KwkJCQlBNzYxNDBDQTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5
cGUuaCAqLywKKwkJCQlBNzYxNDBDQjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJdGVy
YXRvci5jcHAgKi8sCisJCQkJQTc2MTQwQ0MxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRz
SXRlcmF0b3IuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcnVudGltZTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC00Mjg2LDYgKzQzMDQsNyBAQAogCQkJCTBGRkI5MjFEMTZEMDJGMzAw
MDU1QTVEQiAvKiBERkdTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZF
QzlERDMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggaW4gSGVhZGVycyAq
LywKIAkJCQlBN0Q4OUQwMDE3QTBCOENDMDA3NzNBRDggLyogREZHU1NBQ29udmVyc2lvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzYxNDBEMDE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1l
bnRzSXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0Uz
NEIwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkNFRkFDQzE4MDVFNzU1MDA0NzJDRTQgLyogSW5pdGlhbGl6ZUxMVk1QT1NJWC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDMDk3QTIxNDZCMjhDQzAwQ0YyNDQyIC8qIERGR1RodW5rcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC00MzY5LDYgKzQzODgsNyBAQAogCQkJCTBGOTMzMkEwMTRDQTdE
Q0QwMDg1RjNDNiAvKiBHZXRCeUlkU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDJFMzEz
NDEzNEZGMEE2MDBBRkFEQjUgLyogSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjgzMTkw
MDE2RkU0QjdEMDAxNTdCRkQgLyogSGFuZGxlQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUE3
NjE0MENFMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMjgzMTkwMjE2RkU1MzNFMDAxNTdCRkQgLyogSGFuZGxlQmxv
Y2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBCODNBOTE0QkNGNTYyMDA4ODVCNEYg
LyogSGFuZGxlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkUzMTM2MTM0RkYwQTYwMEFG
QURCNSAvKiBIYW5kbGVTZXQuaCBpbiBIZWFkZXJzICovLApAQCAtNDQ4MSw2ICs0NTAxLDcgQEAK
IAkJCQlCQzE4QzQyNTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmplY3RSZWYuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MjgwQTI4MTE1NTdFMzAwMEQ1Njk1NyAvKiBKU09iamVjdFJlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3Rjk5MzVGMEZENzMyNTEwMEEwQjJEMCAvKiBKU09OT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzYxNDBEMjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNB
cmd1bWVudHNJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4N0NEQjkxMDcxMkFENDAw
MDYxNENGIC8qIEpTT05PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTM0QUFGQjBF
NUI3QTk2MDBCOEE0NUIgLyogSlNQcm9maWxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuaCBpbiBIZWFkZXJzICovLApA
QCAtNTI5MSw2ICs1MzEyLDcgQEAKIAkJCQlBN0Q5QTI5NzE3QTBCQzc0MDBFRTI2MTggLyogREZH
TElDTVBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0ZCMTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdMaXZlbmVzc0FuYWx5c2lzUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZG
MEYxOTkxNkI3MjlGNjAwNURGOTVCIC8qIERGR0xvbmdMaXZlZFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE3NjE0MENGMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzY3QjVCNTE3QTBCOTY1MDA2M0Q5NDAg
LyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYyQkRDNEQxNTIyODE4NjAwQ0Q4OTEwIC8qIERGR01pbmlmaWVkTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzM3ODEwRDE3OTlFQTJFMDA4MTc1MzMgLyogREZHTmF0dXJhbExvb3BzLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNTMyMiw2ICs1MzQ0LDcgQEAKIAkJCQkwRkJFMEY3NjE2QzFE
QjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjNCM0EyQjE1NDc1MDAwMDAzRUQwRkYgLyogREZHVmFsaWRhdGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTc2MTQwQ0QxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJh
dG9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQkRDNEYxNTIyOEJGMzAw
Q0Q4OTEwIC8qIERGR1ZhbHVlU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRERCRkI1
MTY2NkVFRDgwMEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMkJEQzUxMTUyMjhGRkQwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTQ1NSw2ICs1NDc4LDcgQEAKIAkJCQk3QzNCQTI5ODE3
QzAzOTU2MDA3MkREQzkgLyogSlNQcm9taXNlUmVzb2x2ZXJQcm90b3R5cGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTcyN0ZGNkIwREEzMDkyMjAwRTU0OEQ3IC8qIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODYyNTUzRDExNjEzNkRBOTAwOUYxN0QwIC8q
IEpTUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc2MTQwRDExODI5ODJDQjAwNzUwNjI0
IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4NzRBRTUx
NUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdDMEM0
QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA5N2ViNTQwMmUxODI0ZjM0MWEy
MGZmZWFiYmE2NDQ3OGFlNDhlOWQ0Li5jZjllN2YzYmY4OWE2ZDU3MzVkNjg5MjA5MTE5YTE0OTY5
ZTQxN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjM5NSw2ICsyMzk1LDMwIEBAIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKCkKICAgICAKIHZv
aWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRFbnVtZXJhdGlvbihUaHJvd2FibGVFeHByZXNzaW9u
RGF0YSogbm9kZSwgRXhwcmVzc2lvbk5vZGUqIHN1YmplY3ROb2RlLCBjb25zdCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKik+JiBjYWxsQmFjaykKIHsK
KyAgICBpZiAoc3ViamVjdE5vZGUtPmlzUmVzb2x2ZU5vZGUoKQorICAgICAgICAmJiB3aWxsUmVz
b2x2ZVRvQXJndW1lbnRzKHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4oc3ViamVjdE5vZGUpLT5p
ZGVudGlmaWVyKCkpCisgICAgICAgICYmICFzeW1ib2xUYWJsZSgpLnNsb3dBcmd1bWVudHMoKSkg
eworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBlbWl0TG9hZChuZXdUZW1wb3Jh
cnkoKSwganNOdW1iZXIoMCkpOworCisgICAgICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBuZXdM
YWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
dmFsdWUgPSBlbWl0TG9hZChuZXdUZW1wb3JhcnkoKSwganNVbmRlZmluZWQoKSk7CisgICAgICAg
IAorICAgICAgICBlbWl0SnVtcChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CisgICAgICAgIAor
ICAgICAgICBSZWZQdHI8TGFiZWw+IGxvb3BTdGFydCA9IG5ld0xhYmVsKCk7CisgICAgICAgIGVt
aXRMYWJlbChsb29wU3RhcnQuZ2V0KCkpOworICAgICAgICBlbWl0TG9vcEhpbnQoKTsKKyAgICAg
ICAgZW1pdEdldEFyZ3VtZW50QnlWYWwodmFsdWUuZ2V0KCksIHVuY2hlY2tlZFJlZ2lzdGVyRm9y
QXJndW1lbnRzKCksIGluZGV4LmdldCgpKTsKKyAgICAgICAgY2FsbEJhY2soKnRoaXMsIHZhbHVl
LmdldCgpKTsKKyAgICAgICAgZW1pdEluYyhpbmRleC5nZXQoKSk7CisgICAgICAgIGVtaXRMYWJl
bChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CisKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGxlbmd0aCA9IGVtaXRHZXRBcmd1bWVudHNMZW5ndGgobmV3VGVtcG9yYXJ5KCksIHVuY2hlY2tl
ZFJlZ2lzdGVyRm9yQXJndW1lbnRzKCkpOworICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0RXF1
YWxpdHlPcChvcF9sZXNzLCBuZXdUZW1wb3JhcnkoKSwgaW5kZXguZ2V0KCksIGxlbmd0aC5nZXQo
KSksIGxvb3BTdGFydC5nZXQoKSk7CisgICAgICAgIGVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJn
ZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBMYWJlbFNjb3BlUHRyIHNjb3Bl
ID0gbmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gc3ViamVjdCA9IG5ld1RlbXBvcmFyeSgpOwogICAgIGVtaXROb2RlKHN1YmplY3QuZ2V0KCks
IHN1YmplY3ROb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
Y3BwCmluZGV4IDMxYmI2NGJkYmNmOTc1OGUxNjY3ZDg1OGJhMGFlYzYwZjI5ODllNTkuLmQ0OTcw
NGQ3NGM2MTJlNzQxNmI0ZmQxY2QzNjE0ZDRhN2M0MGE0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1
ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkBAIC01MCw2
ICs1MSw4IEBAIHZvaWQgQXJndW1lbnRzOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fY2Fs
bGVlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uKTsKIH0K
KyAgICAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFyZ3VtZW50c0Z1bmNJ
dGVyYXRvcihFeGVjU3RhdGUqKTsKIAogdm9pZCBBcmd1bWVudHM6OmRlc3Ryb3koSlNDZWxsKiBj
ZWxsKQogewpAQCAtMTUxLDcgKzE1NCwxNiBAQCBib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYQogICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlciAmJiB0aGlz
T2JqZWN0LT5tX2lzU3RyaWN0TW9kZSkKICAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0
TW9kZUNhbGxlcklmTmVjZXNzYXJ5KGV4ZWMpOwogCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICBpZiAoSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pdGVyYXRvclByaXZhdGVOYW1lKSB7CisgICAg
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CisgICAgICAgIHRoaXNPYmplY3Qt
PkpTQ19OQVRJVkVfRlVOQ1RJT04oZXhlYy0+cHJvcGVydHlOYW1lcygpLml0ZXJhdG9yUHJpdmF0
ZU5hbWUsIGFyZ3VtZW50c0Z1bmNJdGVyYXRvciwgRG9udEVudW0sIDApOworICAgICAgICBpZiAo
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKIH0KIAogdm9pZCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCkBAIC0zNjEsNSArMzczLDE1IEBAIHZvaWQgQXJndW1l
bnRzOjp0ZWFyT2ZmKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbmxpbmVDYWxsRnJhbWUqIGlubGlu
ZUNhbGxGcmFtZSkKICAgICAgICAgdHJ5U2V0QXJndW1lbnQoY2FsbEZyYW1lLT52bSgpLCBpLCBy
ZWNvdmVyeS5yZWNvdmVyKGNhbGxGcmFtZSkpOwogICAgIH0KIH0KKyAgICAKK0VuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJndW1lbnRzRnVuY0l0ZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMo
ZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgQXJndW1lbnRzKiBhcmd1bWVu
dHMgPSBqc0R5bmFtaWNDYXN0PEFyZ3VtZW50cyo+KHRoaXNPYmopOworICAgIGlmICghYXJndW1l
bnRzKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMs
ICJBdHRlbXB0ZWQgdG8gdXNlIEFyZ3VtZW50cyBpdGVyYXRvciBvbiBub24tQXJndW1lbnRzIG9i
amVjdCIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJndW1lbnRzSXRlcmF0b3I6
OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFyZ3Vt
ZW50c0l0ZXJhdG9yU3RydWN0dXJlKCksIGFyZ3VtZW50cykpOworfQorCiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA0
MTA3MmVmMjYyZDZjZDQ0MTRmNGEyZjY2MjIxNWVjZWUxNmU1NmY1Li4xYzNhYjlkNTZkNThhZTgw
NjIyMDFhMmY2OTQ1OGVlZDlkZDQ3M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3Mg
QXJndW1lbnRzIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBmcmllbmQgY2xh
c3MgSklUOworICAgIGZyaWVuZCBjbGFzcyBKU0FyZ3VtZW50c0l0ZXJhdG9yOwogcHVibGljOgog
ICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0
cnVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmI1OTc5MGNiMDA5OTg5YmI3YjQyODYzZTkxODIzMzU3
NmI4YWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCIKKworI2luY2x1
ZGUgIkFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiSlNBcmd1bWVudHNJ
dGVyYXRvci5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlND
ZWxsSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitjb25zdCBDbGFzc0luZm8gQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiQXJndW1lbnRzSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IpIH07CisKK3ZvaWQgQXJn
dW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBcmd1bWVu
dHNJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKHZtKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNjBjNTli
MjE2OTdlNzZhYzFlOGVmOGY5ZmFiOTU1OGNhYmU5ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmgK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yX2gKKyNkZWZpbmUg
QXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcl9oCisKKyNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0
aW9uLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBBcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZTsKKworY2xhc3MgQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKKworICAgIHN0YXRpYyBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yKiBjcmVhdGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUqIHBy
b3RvdHlwZSkKKyAgICB7CisgICAgICAgIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IqIGNv
bnN0cnVjdG9yID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QXJndW1lbnRzSXRlcmF0b3JD
b25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3Iodm0sIHN0
cnVjdHVyZSk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbih2bSwgcHJvdG90
eXBlKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOworICAgIH0KKworICAgIERFQ0xBUkVf
SU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsK
KyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEFyZ3VtZW50c0l0ZXJhdG9yUHJv
dG90eXBlKik7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChBcmd1bWVudHNJdGVyYXRv
ckNvbnN0cnVjdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwODk0
ZjE0YTAyMWQ1ZjEyNjU4YWNiMDFlNzIxZmNkNmQzNDhjYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNw
cApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0
b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQXJndW1lbnRzSXRlcmF0b3IuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlw
ZTo6c19pbmZvID0geyAiQXJndW1lbnRzSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlKSB9OworCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcmd1bWVudHNJdGVyYXRvclByb3RvdHlw
ZUZ1bmNJdGVyYXRvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlRnVuY05leHQoRXhlY1N0YXRlKik7CisK
K3ZvaWQgQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworICAgIHZtLnByb3RvdHlwZU1h
cC5hZGRQcm90b3R5cGUodGhpcyk7CisKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPml0ZXJhdG9yUHJpdmF0ZU5hbWUsIGFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBl
RnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5pdGVyYXRvck5leHRQcml2YXRlTmFtZSwgYXJndW1lbnRzSXRlcmF0b3JQ
cm90b3R5cGVGdW5jTmV4dCwgRG9udEVudW0sIDApOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlRnVuY0l0ZXJhdG9yKENhbGxGcmFt
ZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT50
aGlzVmFsdWUoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBK
U1ZhbHVlIHJlc3VsdDsKKyAgICBpZiAoanNDYXN0PEpTQXJndW1lbnRzSXRlcmF0b3IqPihjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpKS0+bmV4dChjYWxsRnJhbWUsIHJlc3VsdCkpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhbGxGcmFtZS0+dm0oKS5pdGVyYXRpb25UZXJtaW5hdG9yLmdldCgpKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJh
dG9yUHJvdG90eXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE4MzliZmExNzllOGRiMGQ1ZjA5YjhkNjIwNDMw
OWMxZjcwMDBkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcmd1bWVu
dHNJdGVyYXRvclByb3RvdHlwZV9oCisjZGVmaW5lIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBl
X2gKKworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBB
cmd1bWVudHNJdGVyYXRvclByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBB
cmd1bWVudHNJdGVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBBcmd1
bWVudHNJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8QXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXApKSBBcmd1bWVudHNJdGVy
YXRvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgcHJvdG90eXBlLT5maW5pc2hD
cmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKKyAg
ICB9CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXJndW1lbnRzSXRlcmF0b3JQcm90
b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCisgICAgeworICAgIH0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNH
bG9iYWxPYmplY3QqKTsKK307CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEFyZ3VtZW50c0l0
ZXJhdG9yUHJvdG90eXBlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBhOTFmNTM3MDRjODJhZjU1MGU4NTQwMDU1ZmEzMmQx
MzgyNjczNTA3Li4wMzFkY2I3NjUzMDJiMTk1Zjg3NGIzOWNlNmMyZTc0MGZkOWQ2NTQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgK
QEAgLTI4LDYgKzI4LDcgQEAKIC8vIHdheXMgd2l0aG91dCByZXBlYXRpbmcgdGhlIGxpc3QuCiAj
ZGVmaW5lIEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBc
CiAgICAgbWFjcm8oQXJyYXkpIFwKKyAgICBtYWNybyhBcmd1bWVudHNJdGVyYXRvcikgXAogICAg
IG1hY3JvKEFycmF5QnVmZmVyKSBcCiAgICAgbWFjcm8oQXJyYXlJdGVyYXRvcikgXAogICAgIG1h
Y3JvKEJZVEVTX1BFUl9FTEVNRU5UKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmY2Y4ODE1YzA1
NjgwNTgxMmE3OTkxYTVmZjA2M2Q2ODczOTcxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVyYXRvci5oIgorCisj
aW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25zdCBDbGFzc0lu
Zm8gSlNBcmd1bWVudHNJdGVyYXRvcjo6c19pbmZvID0geyAiQXJndW1lbnRzSXRlcmF0b3IiLCAm
QmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQXJndW1lbnRzSXRlcmF0
b3IpIH07CisKK3ZvaWQgSlNBcmd1bWVudHNJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBBcmd1bWVudHMqIGFyZ3VtZW50cykKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CisgICAgbV9hcmd1bWVudHMuc2V0KHZtLCB0aGlzLCBhcmd1bWVudHMpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGVlZDc0NWM5NzYxNWE5NDUyMmNiMTBiYWM3MmQzZWFmZDc0OTJiYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRz
SXRlcmF0b3IuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEpTQXJndW1lbnRzSXRlcmF0b3JfaAorI2RlZmlu
ZSBKU0FyZ3VtZW50c0l0ZXJhdG9yX2gKKworI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgSlNBcmd1bWVudHNJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNBcmd1bWVudHNJdGVyYXRvciog
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFyZ3VtZW50cyogYXJndW1lbnRz
KQorICAgIHsKKyAgICAgICAgSlNBcmd1bWVudHNJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxKU0FyZ3VtZW50c0l0ZXJhdG9yPih2bS5oZWFwKSkgSlNBcmd1
bWVudHNJdGVyYXRvcih2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENy
ZWF0aW9uKHZtLCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQor
CisgICAgYm9vbCBuZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlJiB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIGlmIChtX25leHRJbmRleCA+PSBtX2FyZ3VtZW50cy0+bGVuZ3RoKGNhbGxG
cmFtZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhbHVlID0gbV9hcmd1
bWVudHMtPnRyeUdldEFyZ3VtZW50KG1fbmV4dEluZGV4KyspOworICAgICAgICBpZiAoIXZhbHVl
KQorICAgICAgICAgICAgdmFsdWUgPSBqc1VuZGVmaW5lZCgpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIEpTQXJndW1lbnRzSXRlcmF0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUpCisgICAgICAgICwgbV9uZXh0SW5kZXgoMCkKKyAgICB7CisgICAgfQorCisgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEFyZ3VtZW50cyopOworICAgIAorICAgIFdyaXRlQmFycmll
cjxBcmd1bWVudHM+IG1fYXJndW1lbnRzOworICAgIHNpemVfdCBtX25leHRJbmRleDsKK307CisK
K30KKworI2VuZGlmIC8vICFkZWZpbmVkKEpTQXJndW1lbnRzSXRlcmF0b3JfaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCmluZGV4IGMx
YmY1YjMxODYxOGI4YzUxNzg2MGRlOTBmNWRmM2Y5NDhiNTVmZDMuLmZmZjNkZTIwOWIyODcyMzg4
MDQ2MTVkNjI4YzdhNzA5NTg3YWI4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcApAQCAtNzMsNyArNzMsNiBAQCB2b2lkIEpTQXJy
YXlJdGVyYXRvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3JlYXRlSXRlcmF0b3JSZXN1bHQoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBzaXplX3QgaW5kZXgsIEpT
VmFsdWUgcmVzdWx0LCBib29sIGRvbmUpCiB7Ci0gICAgY2FsbEZyYW1lLT5zZXRBcmd1bWVudChj
YWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSAtIDEsIGpzQm9vbGVhbihkb25lKSk7CiAgICAgaWYg
KGRvbmUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT52bSgpLml0
ZXJhdGlvblRlcm1pbmF0b3IuZ2V0KCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDljYjMyNmRlOTYxM2QzZGMzYzYx
OWQwZjgyZTlmZWVhYTI3M2U5ZTUuLmUyMjhiM2FjNDFlMWVlNWQ3MjNjZmQ3YWFlMDRhYjY4NDg2
ODY3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgog
CiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzSXRlcmF0b3JDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvci5oIgogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKQEAgLTUyLDYgKzU0
LDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQVBJV3JhcHBlck9i
amVjdC5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1ZGUgIkpTQXJndW1lbnRz
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5k
ZXggNGZmODdhZTQwZWNmNjdjNTcyMzQxMzQ1NDc1ZDk2OTJlMDMyYzgwYy4uZDU5YTViNTYzNThk
M2E1ZjdmOTc4ZmQ0YjViNWFhODdkZGMxNWFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC04Miw2ICs4Miw3IEBAIHN0cnVjdCBIYXNo
VGFibGU7CiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIGFycmF5QnVmZmVy
LCBKU0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYWtNYXAsIHdlYWtN
YXAsIHdlYWtNYXAsIEpTV2Vha01hcCwgV2Vha01hcCkgXAogICAgIG1hY3JvKEFycmF5SXRlcmF0
b3IsIGFycmF5SXRlcmF0b3IsIGFycmF5SXRlcmF0b3IsIEpTQXJyYXlJdGVyYXRvciwgQXJyYXlJ
dGVyYXRvcikgXAorICAgIG1hY3JvKEFyZ3VtZW50c0l0ZXJhdG9yLCBhcmd1bWVudHNJdGVyYXRv
ciwgYXJndW1lbnRzSXRlcmF0b3IsIEpTQXJndW1lbnRzSXRlcmF0b3IsIEFyZ3VtZW50c0l0ZXJh
dG9yKSBcCiAKICNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKGNhcGl0YWxOYW1l
LCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAgY2xh
c3MgSlMgIyMgY2FwaXRhbE5hbWU7IFwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NGUwNGE4Y2ZlZDlhZDQ5NDZmNjNmYTM4
NjBiODIzZDM2ZjJiYWY4Li44OTJmYzdkYWMwMWVkY2ZhNTY2MDZiMmQ3N2M3MTYyNjc1YjM2ZDNk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTEtMDUgIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGl0ZXJhdGlvbiBvZiB0aGUgQXJndW1lbnRz
IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzODM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHRlc3QgY2FzZXMKKworICAgICAgICAqIGpzL2FyZ3VtZW50cy1pdGVyYXRvci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2FyZ3VtZW50cy1pdGVyYXRvci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvYXJndW1lbnRzLWl0ZXJhdG9yLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNob3VsZFRocm93LnRlc3QpOgorICAgICAgICAodGVzdEFsaWFzKToKKyAg
ICAgICAgKHRlc3RTdHJpY3QpOgorICAgICAgICAodGVzdFJlaWZpZWRBcmd1bWVudHMpOgorICAg
ICAgICAodGVzdE92ZXJ3cml0dGVuQXJndW1lbnRzKToKKyAgICAgICAgKHRlc3ROdWxsQXJndW1l
bnRzKToKKyAgICAgICAgKHRlc3ROb25BcnJheUxpa2VBcmd1bWVudHMpOgorCiAyMDEzLTExLTA1
ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgRnVsbCB3aWR0
aCBzZW1pY29sb24gaXMgd3JvbmcgaW4gdmVydGljYWwgdGV4dC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2FyZ3VtZW50cy1pdGVyYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9hcmd1bWVudHMtaXRlcmF0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjNGM2YTQ5ZmE1
ZGI3ZDgwNTg1YTNmOGNmYjYxMzg4ZTE3NmZiN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9hcmd1bWVudHMtaXRlcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzIgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIEFyZ3VtZW50cyBvYmplY3QgaXRlcmF0
aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAoZnVuY3Rpb24gKGFy
Z3VtZW50cykgeyBmb3IgKHZhciBhcmd1bWVudCBvZiBhcmd1bWVudHMpIHt9fSkoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnYXJndW1lbnQgb2YgYXJndW1lbnRzJykuCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBp
cyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQor
UEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BB
U1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUK
K1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQ
QVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBp
cyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMg
aXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BB
U1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNT
IGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQ
QVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFT
UyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMg
aXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0
ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNT
IGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBh
cmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFT
UyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1Mg
YXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0
ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVy
YXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBh
Y3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJn
ID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1Mg
YWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFy
ZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVy
YXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBh
cmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFT
UyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQor
UEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGgg
aXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUK
K1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRy
dWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlz
IHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRz
TGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBp
cyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFy
ZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVh
bEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFy
Z3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJl
YWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09
IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcg
PT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBh
Y3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgdGVz
dE51bGxBcmd1bWVudHMoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBudWxsIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ2ZhaWwoIm5vdGhpbmcgdG8gaXRlcmF0ZSIpJykuCitQQVNT
IHRlc3ROb25BcnJheUxpa2VBcmd1bWVudHMoKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvYXJndW1lbnRzLWl0ZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9hcmd1bWVudHMtaXRl
cmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzI1OWExNDdlODM1ZDQ4ZmI4NzE0OTdkYzAzZWI0MmFl
ZTdiNDBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJndW1lbnRzLWl0ZXJh
dG9yLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2FyZ3VtZW50cy1pdGVyYXRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJndW1lbnRz
LWl0ZXJhdG9yLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FyZ3VtZW50cy1pdGVy
YXRvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NWNhYTU1ODYyY2JjODEwMzliMWFkYmJiNmZkODM5ZjgwYzE2
N2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FyZ3Vt
ZW50cy1pdGVyYXRvci5qcwpAQCAtMCwwICsxLDExNyBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgQXJndW1lbnRzIG9iamVjdCBpdGVyYXRpb24uIgor
KTsKKworCit2YXIgYXJndW1lbnRzID0gbnVsbDsKK3Nob3VsZFRocm93KCIoZnVuY3Rpb24gKGFy
Z3VtZW50cykgeyBmb3IgKHZhciBhcmd1bWVudCBvZiBhcmd1bWVudHMpIHt9fSkoKSIpCisKK2Z1
bmN0aW9uIHRlc3QoKSB7CisgICAgdmFyIGkgPSAwOworICAgIGZvciAoYXJnIG9mIGFyZ3VtZW50
cykgeworICAgICAgICByZWFsQXJnID0gYXJndW1lbnRzW2krK107CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgiYXJnID09PSByZWFsQXJnIik7CisgICAgfQorICAgIGl0ZXJhdGVkQXJndW1lbnRzTGVu
Z3RoID0gaTsKKyAgICBhY3R1YWxBcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOwor
ICAgIHNob3VsZEJlKCJhY3R1YWxBcmd1bWVudHNMZW5ndGgiLCAiaXRlcmF0ZWRBcmd1bWVudHNM
ZW5ndGgiKTsKK30KKwordGVzdCgpOwordGVzdCgiYSIpOwordGVzdCgiYSIsICJiIik7Cit0ZXN0
KHt9KQorCitmdW5jdGlvbiB0ZXN0QWxpYXMoKSB7CisgICAgdmFyIGkgPSAwOworICAgIHZhciBh
ID0gYXJndW1lbnRzOworICAgIGZvciAoYXJnIG9mIGEpIHsKKyAgICAgICAgcmVhbEFyZyA9IGFy
Z3VtZW50c1tpKytdOworICAgICAgICBzaG91bGRCZVRydWUoImFyZyA9PT0gcmVhbEFyZyIpOwor
ICAgIH0KKyAgICBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aCA9IGk7CisgICAgYWN0dWFsQXJndW1l
bnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKKyAgICBzaG91bGRCZSgiYWN0dWFsQXJndW1l
bnRzTGVuZ3RoIiwgIml0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoIik7Cit9CisKK3Rlc3RBbGlhcygp
OwordGVzdEFsaWFzKCJhIik7Cit0ZXN0QWxpYXMoImEiLCAiYiIpOwordGVzdEFsaWFzKHt9KQor
CisKK2Z1bmN0aW9uIHRlc3RTdHJpY3QoKSB7CisgICAgdmFyIGkgPSAwOworICAgIGZvciAoYXJn
IG9mIGFyZ3VtZW50cykgeworICAgICAgICByZWFsQXJnID0gYXJndW1lbnRzW2krK107CisgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiYXJnID09PSByZWFsQXJnIik7CisgICAgfQorICAgIGl0ZXJhdGVk
QXJndW1lbnRzTGVuZ3RoID0gaTsKKyAgICBhY3R1YWxBcmd1bWVudHNMZW5ndGggPSBhcmd1bWVu
dHMubGVuZ3RoOworICAgIHNob3VsZEJlKCJhY3R1YWxBcmd1bWVudHNMZW5ndGgiLCAiaXRlcmF0
ZWRBcmd1bWVudHNMZW5ndGgiKTsKK30KKwordGVzdFN0cmljdCgpOwordGVzdFN0cmljdCgiYSIp
OwordGVzdFN0cmljdCgiYSIsICJiIik7Cit0ZXN0U3RyaWN0KHt9KQorCisKK2Z1bmN0aW9uIHRl
c3RSZWlmaWVkQXJndW1lbnRzKCkgeworICAgIHZhciBpID0gMDsKKyAgICBhcmd1bWVudHMuZXhw
YW5kbyA9IDE7CisgICAgZm9yIChhcmcgb2YgYXJndW1lbnRzKSB7CisgICAgICAgIHJlYWxBcmcg
PSBhcmd1bWVudHNbaSsrXTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmcgPT09IHJlYWxBcmci
KTsKKyAgICB9CisgICAgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGggPSBpOworICAgIGFjdHVhbEFy
Z3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7CisgICAgc2hvdWxkQmUoImFjdHVhbEFy
Z3VtZW50c0xlbmd0aCIsICJpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aCIpOworfQorCit0ZXN0UmVp
ZmllZEFyZ3VtZW50cygpOwordGVzdFJlaWZpZWRBcmd1bWVudHMoImEiKTsKK3Rlc3RSZWlmaWVk
QXJndW1lbnRzKCJhIiwgImIiKTsKK3Rlc3RSZWlmaWVkQXJndW1lbnRzKHt9KQorCisKK2Z1bmN0
aW9uIHRlc3RPdmVyd3JpdHRlbkFyZ3VtZW50cygpIHsKKyAgICB2YXIgaSA9IDA7CisgICAgYXJn
dW1lbnRzID0gImZvb2JhciI7CisgICAgZm9yIChhcmcgb2YgYXJndW1lbnRzKSB7CisgICAgICAg
IHJlYWxBcmcgPSBhcmd1bWVudHNbaSsrXTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmcgPT09
IHJlYWxBcmciKTsKKyAgICB9CisgICAgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGggPSBpOworICAg
IGFjdHVhbEFyZ3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7CisgICAgc2hvdWxkQmUo
ImFjdHVhbEFyZ3VtZW50c0xlbmd0aCIsICJpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aCIpOworfQor
CisKK3Rlc3RPdmVyd3JpdHRlbkFyZ3VtZW50cygpOwordGVzdE92ZXJ3cml0dGVuQXJndW1lbnRz
KCJhIik7Cit0ZXN0T3ZlcndyaXR0ZW5Bcmd1bWVudHMoImEiLCAiYiIpOwordGVzdE92ZXJ3cml0
dGVuQXJndW1lbnRzKHt9KQorCisKKworZnVuY3Rpb24gdGVzdE51bGxBcmd1bWVudHMoKSB7Cisg
ICAgdmFyIGkgPSAwOworICAgIGFyZ3VtZW50cyA9IG51bGw7CisgICAgZm9yIChhcmcgb2YgYXJn
dW1lbnRzKSB7CisgICAgICAgIGZhaWwoIm5vdGhpbmcgdG8gaXRlcmF0ZSIpOworICAgIH0KK30K
Kworc2hvdWxkVGhyb3coInRlc3ROdWxsQXJndW1lbnRzKCkiKTsKK2Z1bmN0aW9uIHRlc3ROb25B
cnJheUxpa2VBcmd1bWVudHMoKSB7CisgICAgdmFyIGkgPSAwOworICAgIGFyZ3VtZW50cyA9IHt9
OworICAgIGZvciAoYXJnIG9mIGFyZ3VtZW50cykgeworICAgICAgICBmYWlsKCJub3RoaW5nIHRv
IGl0ZXJhdGUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KK3Nob3VsZEJlVHJ1ZSgidGVzdE5vbkFycmF5TGlrZUFyZ3VtZW50cygpIik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216096</attachid>
            <date>2013-11-05 16:40:47 -0800</date>
            <delta_ts>2013-11-06 14:20:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123835-20131105164046.patch</filename>
            <type>text/plain</type>
            <size>49628</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmU3ZGQ1NzM0ZTY3ZjM3MGY0ODUzOGRmNmUyNDVjY2Q5ODNlNWE3Li5mMzA3M2ZjY2ZlMjA3N2Y1
NTY2MjY0NThkOTYyYTcyNTAyOWFhMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxMy0xMS0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgaXRlcmF0aW9uIG9mIHRoZSBBcmd1bWVudHMgb2JqZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM4MzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gQXJndW1l
bnRzSXRlcmF0b3Igb2JqZWN0LCBhbmQgYXNzb2NpYXRlZCBjbGFzc2VzIHNvIHRoYXQgd2UgY2Fu
IHN1cHBvcnQKKyAgICAgICAgaXRlcmF0aW9uIG9mIHRoZSBhcmd1bWVudHMgb2JqZWN0LgorCisg
ICAgICAgIFRoaXMgaXMgYSBsYXJnZWx5IG1lY2hhbmljYWwgcGF0Y2guICBUaGUgb25seSBnbmFy
bGluZXNzIGlzIGluIHRoZQorICAgICAgICBsb2dpYyB0byBhdm9pZCByZWlmeWluZyB0aGUgQXJn
dW1lbnRzIG9iamVjdCBpbiBmb3IoLi4uIG9mIGFyZ3VtZW50cykKKyAgICAgICAgc2NlbmFyaW9z
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0RW51bWVyYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAg
ICAgKEpTQzo6QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjph
cmd1bWVudHNGdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6Cisg
ICAgICAgICogcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaDog
QWRkZWQuCisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3I6OkFy
Z3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6YXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGVGdW5jSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjphcmd1bWVudHNJ
dGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50c0l0
ZXJhdG9yUHJvdG90eXBlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcmd1bWVudHNJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzSXRlcmF0b3JQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlOjpBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAgICogcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcmd1bWVudHNJdGVy
YXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0FyZ3VtZW50c0l0ZXJhdG9yLmg6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAo
SlNDOjpKU0FyZ3VtZW50c0l0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKEpTQzo6SlNBcmd1bWVu
dHNJdGVyYXRvcjo6SlNBcmd1bWVudHNJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5SXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVJdGVyYXRvclJlc3VsdCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oOgorCiAyMDEzLTExLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsJ3MgTlNJ
bnZvY2F0aW9uIHNob3VsZG4ndCByZXRhaW4gaXRzIHRhcmdldCBvciBhcmd1bWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiYjhhYzk4MzdiNDBmNTc5NjgzYzc0YmRl
ZTlhZGE5ZWMwN2M4NzM1Li4wZGI4NDAwZGI2YjkxNzZiYTY0NmJkYWYzZWMxMDE4YjUzZTVlYzIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNzMsNiArMjczLDggQEAg
c2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKIAogICAgIHJ1bnRpbWUvQXJnTGlzdC5jcHAKICAg
ICBydW50aW1lL0FyZ3VtZW50cy5jcHAKKyAgICBydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29u
c3RydWN0b3IuY3BwCisgICAgcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAK
ICAgICBydW50aW1lL0FycmF5QnVmZmVyLmNwcAogICAgIHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3
LmNwcAogICAgIHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTMxNiw2ICszMTgsNyBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5jcHAKICAgICBydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmNwcAogICAgIHJ1bnRpbWUvSlNB
Y3RpdmF0aW9uLmNwcAorICAgIHJ1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAKICAgICBy
dW50aW1lL0pTQXJyYXkuY3BwCiAgICAgcnVudGltZS9KU0FycmF5QnVmZmVyLmNwcAogICAgIHJ1
bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxYmZmYjk3MjIzMGM4M2M3ODNlODNmYzJhMGFjY2E4
OGUzN2FmOTIyLi42NzA4NTFkMTU5NTE0N2YzMDA2YTg1NjMwMWVhMGEyZmYzYmExMWU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzY3LDYgKzc2Nywx
MCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcmdMaXN0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVj
dG9yLmNwcCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRl
cmF0b3JDb25zdHJ1Y3Rvci5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlCdWZmZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlCdWZmZXJWaWV3LmNwcCBcCkBAIC04NzEsNiArODc1LDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmNw
cCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaCBc
CisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5jcHAg
XAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2oKaW5kZXggMDI3Yzg2MzVlMDBkYjk5YjAyYTE4NWQ4ZmE5YzY1N2Q3MzM4Mzg3
ZC4uODU3ZDU2YTg0ZmY2YzA4NDIyZjUyYmE2YzA5YjVlZmIxY2VkYzEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC01MTMsNiArNTEzLDggQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3Bw
IiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJnTGlzdC5jcHAiIC8+
DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHMuY3BwIiAvPg0K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJndW1lbnRzSXRlcmF0b3JDb25z
dHJ1Y3Rvci5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1
bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxBcnJheUJ1ZmZlci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxBcnJheUJ1ZmZlclZpZXcuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlDb25zdHJ1Y3Rvci5jcHAiIC8+DQpAQCAtNTU1LDYgKzU1Nyw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24u
Y3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBUElWYWx1ZVdy
YXBwZXIuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBY3Rp
dmF0aW9uLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJn
dW1lbnRzSXRlcmF0b3IuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNBcnJheS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxK
U0FycmF5SXRlcmF0b3IuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNBcnJheUJ1ZmZlci5jcHAiIC8+DQpAQCAtMTA1OCw2ICsxMDYxLDggQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ0xpc3QuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ3VtZW50cy5oIiAvPg0KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJndW1lbnRzQ29uc3RydWN0b3IuaCIgLz4N
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ3VtZW50c1Byb3RvdHlwZS5o
IiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZmZXIuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFycmF5QnVmZmVyVmlldy5o
IiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlDb25zdHJ1Y3Rv
ci5oIiAvPg0KQEAgLTExMTgsNiArMTEyMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEludHJpbnNpYy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcSlNBUElWYWx1ZVdyYXBwZXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEpTQWN0aXZhdGlvbi5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSlNBcmd1bWVudHNJdGVyYXRvci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcSlNBcnJheS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSlNBcnJheUJ1ZmZlci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiIC8+DQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDY0YjQ2YTk4ZWE4ZTRl
NGRhZjc1ZWZlYzM4ZmViNWZmYmRjNzM1YTIuLjBkZTU5MTc5N2FlYzBmZjRjNDMxNDhhZGJjYmEw
MWIxOGMzN2Y5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qLmZpbHRlcnMKQEAgLTExNzMsMTIgKzExNzMsMjEgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAiPg0KICAgICAgIDxGaWx0
ZXI+cnVudGltZTwvRmlsdGVyPg0KICAgICA8L0NsQ29tcGlsZT4NCisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIj4NCisg
ICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisgICAgPC9DbENvbXBpbGU+DQorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5j
cHAiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0NsQ29tcGlsZT4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcQXNzZW1ibHlIZWxwZXJzLmNwcCI+DQog
ICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FycmF5SXRlcmF0b3IuY3BwIj4NCiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcCI+DQorICAgICAg
PEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQorICAgIDwvQ2xDb21waWxlPg0KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGppdFxSZXBhdGNoLmNwcCI+DQogICAgICAgPEZpbHRlcj5qaXQ8L0Zp
bHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQpAQCAtMjk3Niw2ICsyOTg1LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIj4N
CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHNJdGVyYXRvclByb3RvdHlw
ZS5oIj4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisgICAgPC9DbEluY2x1ZGU+
DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmgiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0Ns
SW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcQXNzZW1ibHlIZWxwZXJz
LmgiPg0KICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KQEAg
LTI5OTcsNiArMzAxMiw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
QXJyYXlJdGVyYXRvci5oIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAg
PC9DbEluY2x1ZGU+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FyZ3Vt
ZW50c0l0ZXJhdG9yLmgiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8
L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcUmVwYXRjaC5oIj4N
CiAgICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY0MjlhYmNiMWJhZDhkM2MzY2RkZWQxYjdjYjM3ZWJk
NmMyNjM5YWYuLmQ0MTdlNDE5ZmJlM2UwNTM1NjE5YmRmYTdhNTE2YmE4NWZjOWQyMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MzQsNiArOTM0LDEyIEBACiAJCUE3NDgyRTkz
MTE2QTdDQUQwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0ODJFMzcxMTZBNjk3QjAw
M0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc0REUxRDAxMjBCODc1NjAwRDQwRDVC
IC8qIEFSTXY3QXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3NERFMUNCMTIwQjg2RDYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2VtYmxlci5j
cHAgKi87IH07CiAJCUE3NTcwNkRFMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJf
NjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1
NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82NC5jcHAgKi87IH07CisJ
CUE3NjE0MENEMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NjE0
MEM3MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKKwkJQTc2MTQwQ0UxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9y
LmggKi87IH07CisJCUE3NjE0MENGMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRv
clByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzYxNDBDOTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5
cGUuY3BwICovOyB9OworCQlBNzYxNDBEMDE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3NjE0MENBMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZS5oICovOyB9OworCQlBNzYxNDBEMTE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJ
dGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzYxNDBDQjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJdGVyYXRvci5jcHAgKi87
IH07CisJCUE3NjE0MEQyMTgyOTgyQ0IwMDc1MDYyNCAvKiBKU0FyZ3VtZW50c0l0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzYxNDBDQzE4
Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJdGVyYXRvci5oICovOyB9OwogCQlBNzY2QjQ0
RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjUwRUU3NENGQzAwRENCREI2
IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzY3QjVCNTE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFBy
ZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc2N0I1QjMxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmNwcCAqLzsgfTsKIAkJQTc2N0I1QjYxN0EwQjk2NTAwNjNEOTQwIC8q
IERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY3QjVCNDE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9v
cFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjIxOSw2ICsyMjI1LDEyIEBACiAJCUE3NDgyRTM3MTE2QTY5
N0IwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRERTFDQjEyMEI4NkQ2MDBENDBENUIgLyogQVJNdjdB
c3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVJNdjdB
c3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzU3MDZERDExOEEy
QkNGMDA1N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpJVEFyaXRobWV0aWMzMl82NC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3NjE0MEM3MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVy
YXRvckNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzYxNDBDODE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JDb25z
dHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcmd1bWVudHNJdGVy
YXRvckNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjE0MEM5
MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjE0MENBMTgyOTgyQ0IwMDc1
MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzYxNDBDQjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJ
dGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FyZ3Vt
ZW50c0l0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2MTQwQ0Mx
ODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNBcmd1bWVudHNJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzY3QjVCMzE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRl
ckNyZWF0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0xvb3BQcmVI
ZWFkZXJDcmVhdGlvblBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2
N0I1QjQxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xvb3BQcmVIZWFkZXJDcmVhdGlv
blBoYXNlLmg7IHBhdGggPSBkZmcvREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpT
SW50ZXJmYWNlSklULmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJm
YWNlSklULmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjI5LDYgKzM2NDEsMTIg
QEAKIAkJCQlBN0JEQUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5oICovLAogCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3Iu
Y3BwICovLAogCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3Iu
aCAqLywKKwkJCQlBNzYxNDBDNzE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JD
b25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTc2MTQwQzgxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3Vt
ZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLywKKwkJCQlBNzYxNDBDOTE4Mjk4MkNCMDA3NTA2
MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwICovLAorCQkJCUE3NjE0MENBMTgy
OTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJCUE3
NjE0MENCMTgyOTgyQ0IwMDc1MDYyNCAvKiBKU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcCAqLywKKwkJ
CQlBNzYxNDBDQzE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJdGVyYXRvci5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBydW50aW1lOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTQyODYsNiArNDMwNCw3IEBACiAJCQkJMEZGQjkyMUQxNkQwMkYzMDAwNTVBNURCIC8qIERGR1Ns
b3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOUREMzEzMjhERjgyMDAy
QjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5RDAw
MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdTU0FDb252ZXJzaW9uUGhhc2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE3NjE0MEQwMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2Mzk0NzgxNURDRTM0QjAwNkE1OTdDIC8qIERG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUNDMTgw
NUU3NTUwMDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTVBPU0lYLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkMwOTdBMjE0NkIyOENDMDBDRjI0NDIgLyogREZHVGh1bmtzLmggaW4gSGVhZGVycyAqLywK
QEAgLTQzNjksNiArNDM4OCw3IEBACiAJCQkJMEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8qIEdl
dEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkUzMTM0MTM0RkYwQTYwMEFGQURC
NSAvKiBIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODMxOTAwMTZGRTRCN0QwMDE1N0JG
RCAvKiBIYW5kbGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc2MTQwQ0UxODI5ODJDQjAw
NzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUMyODMxOTAyMTZGRTUzM0UwMDE1N0JGRCAvKiBIYW5kbGVCbG9ja0lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMEI4M0E5MTRCQ0Y1NjIwMDg4NUI0RiAvKiBIYW5kbGVySW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRTMxMzYxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZVNl
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC00NDgxLDYgKzQ1MDEsNyBAQAogCQkJCUJDMThDNDI1MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdFJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyODBB
MjgxMTU1N0UzMDAwRDU2OTU3IC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTdGOTkzNUYwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE3NjE0MEQyMTgyOTgyQ0IwMDc1MDYyNCAvKiBKU0FyZ3VtZW50c0l0ZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg3Q0RCOTEwNzEyQUQ0MDAwNjE0Q0YgLyogSlNPTk9i
amVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1MzRBQUZCMEU1QjdBOTYwMEI4QTQ1QiAv
KiBKU1Byb2ZpbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMUIxN0JFREJE
MzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjkxLDYgKzUzMTIs
NyBAQAogCQkJCUE3RDlBMjk3MTdBMEJDNzQwMEVFMjYxOCAvKiBERkdMSUNNUGhhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRkIxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0xpdmVuZXNz
QW5hbHlzaXNQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5OTE2QjcyOUY2MDA1
REY5NUIgLyogREZHTG9uZ0xpdmVkU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc2MTQw
Q0YxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3NjdCNUI1MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVh
ZGVyQ3JlYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCREM0RDE1MjI4MTg2
MDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Mzc4
MTBEMTc5OUVBMkUwMDgxNzUzMyAvKiBERkdOYXR1cmFsTG9vcHMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC01MzIyLDYgKzUzNDQsNyBAQAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBE
RkdVbmlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzRCMTQ5MTZENDIw
MTAwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0IzQTJC
MTU0NzUwMDAwMDNFRDBGRiAvKiBERkdWYWxpZGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
NzYxNDBDRDE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCREM0RjE1MjI4QkYzMDBDRDg5MTAgLyogREZHVmFs
dWVTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEREJGQjUxNjY2RUVEODAwQzU1RkVG
IC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYy
QkRDNTExNTIyOEZGRDAwQ0Q4OTEwIC8qIERGR1ZhcmlhYmxlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC01NDU1LDYgKzU0NzgsNyBAQAogCQkJCTdDM0JBMjk4MTdDMDM5NTYwMDcyRERDOSAv
KiBKU1Byb21pc2VSZXNvbHZlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI3
RkY2QjBEQTMwOTIyMDBFNTQ4RDcgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NjI1NTNEMTE2MTM2REE5MDA5RjE3RDAgLyogSlNQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNzYxNDBEMTE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJ
dGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg3NEFFNTE1RUJERTRBMDAyRTM1ODcg
LyogSlNTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAx
MUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMTAxNTdGMzMy
OTAwNEE0RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCmluZGV4IDk3ZWI1NDAyZTE4MjRmMzQxYTIwZmZlYWJiYTY0NDc4YWU0
OGU5ZDQuLmNmOWU3ZjNiZjg5YTZkNTczNWQ2ODkyMDkxMTlhMTQ5NjllNDE3ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCkBAIC0yMzk1LDYgKzIzOTUsMzAgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdFJlYWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQoKQogICAgIAogdm9pZCBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEVudW1lcmF0aW9uKFRocm93YWJsZUV4cHJlc3Npb25EYXRhKiBub2RlLCBFeHBy
ZXNzaW9uTm9kZSogc3ViamVjdE5vZGUsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZChCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKT4mIGNhbGxCYWNrKQogeworICAgIGlmIChzdWJqZWN0
Tm9kZS0+aXNSZXNvbHZlTm9kZSgpCisgICAgICAgICYmIHdpbGxSZXNvbHZlVG9Bcmd1bWVudHMo
c3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihzdWJqZWN0Tm9kZSktPmlkZW50aWZpZXIoKSkKKyAg
ICAgICAgJiYgIXN5bWJvbFRhYmxlKCkuc2xvd0FyZ3VtZW50cygpKSB7CisgICAgICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBpbmRleCA9IGVtaXRMb2FkKG5ld1RlbXBvcmFyeSgpLCBqc051bWJlcigw
KSk7CisKKyAgICAgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IG5ld0xhYmVsU2NvcGUoTGFiZWxT
Y29wZTo6TG9vcCk7CisgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGVtaXRMb2Fk
KG5ld1RlbXBvcmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgCisgICAgICAgIGVtaXRK
dW1wKHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKKyAgICAgICAgCisgICAgICAgIFJlZlB0cjxM
YWJlbD4gbG9vcFN0YXJ0ID0gbmV3TGFiZWwoKTsKKyAgICAgICAgZW1pdExhYmVsKGxvb3BTdGFy
dC5nZXQoKSk7CisgICAgICAgIGVtaXRMb29wSGludCgpOworICAgICAgICBlbWl0R2V0QXJndW1l
bnRCeVZhbCh2YWx1ZS5nZXQoKSwgdW5jaGVja2VkUmVnaXN0ZXJGb3JBcmd1bWVudHMoKSwgaW5k
ZXguZ2V0KCkpOworICAgICAgICBjYWxsQmFjaygqdGhpcywgdmFsdWUuZ2V0KCkpOworICAgICAg
ICBlbWl0SW5jKGluZGV4LmdldCgpKTsKKyAgICAgICAgZW1pdExhYmVsKHNjb3BlLT5jb250aW51
ZVRhcmdldCgpKTsKKworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbGVuZ3RoID0gZW1pdEdl
dEFyZ3VtZW50c0xlbmd0aChuZXdUZW1wb3JhcnkoKSwgdW5jaGVja2VkUmVnaXN0ZXJGb3JBcmd1
bWVudHMoKSk7CisgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRFcXVhbGl0eU9wKG9wX2xlc3Ms
IG5ld1RlbXBvcmFyeSgpLCBpbmRleC5nZXQoKSwgbGVuZ3RoLmdldCgpKSwgbG9vcFN0YXJ0Lmdl
dCgpKTsKKyAgICAgICAgZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBuZXdMYWJlbFNjb3Bl
KExhYmVsU2NvcGU6Okxvb3ApOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdWJqZWN0ID0gbmV3
VGVtcG9yYXJ5KCk7CiAgICAgZW1pdE5vZGUoc3ViamVjdC5nZXQoKSwgc3ViamVjdE5vZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggMzFiYjY0
YmRiY2Y5NzU4ZTE2NjdkODU4YmEwYWVjNjBmMjk4OWU1OS4uZDQ5NzA0ZDc0YzYxMmU3NDE2YjRm
ZDFjZDM2MTRkNGE3YzQwYTQwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCisjaW5jbHVkZSAiSlNBcmd1bWVudHNJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKQEAgLTUwLDYgKzUxLDggQEAgdm9pZCBB
cmd1bWVudHM6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9jYWxsZWUpOwogICAgIHZpc2l0
b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2FjdGl2YXRpb24pOwogfQorICAgIAorc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJndW1lbnRzRnVuY0l0ZXJhdG9yKEV4ZWNTdGF0
ZSopOwogCiB2b2lkIEFyZ3VtZW50czo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB7CkBAIC0xNTEs
NyArMTU0LDE2IEBAIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hCiAgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYmIHRoaXNPYmplY3QtPm1faXNTdHJp
Y3RNb2RlKQogICAgICAgICB0aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNl
c3NhcnkoZXhlYyk7CiAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIGlmIChKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLml0ZXJhdG9yUHJpdmF0ZU5hbWUpIHsKKyAgICAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKTsKKyAgICAgICAgdGhpc09iamVjdC0+SlNDX05BVElWRV9GVU5D
VElPTihleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXRlcmF0b3JQcml2YXRlTmFtZSwgYXJndW1lbnRz
RnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CisgICAgICAgIGlmIChKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lk
IEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSkKQEAgLTM2MSw1ICszNzMsMTUgQEAgdm9pZCBBcmd1bWVudHM6OnRlYXJPZmYoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lKQogICAg
ICAgICB0cnlTZXRBcmd1bWVudChjYWxsRnJhbWUtPnZtKCksIGksIHJlY292ZXJ5LnJlY292ZXIo
Y2FsbEZyYW1lKSk7CiAgICAgfQogfQorICAgIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcmd1bWVudHNGdW5jSXRlcmF0b3IoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTT2JqZWN0
KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2Rl
KS50b09iamVjdChleGVjKTsKKyAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IGpzRHluYW1pY0Nh
c3Q8QXJndW1lbnRzKj4odGhpc09iaik7CisgICAgaWYgKCFhcmd1bWVudHMpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgIkF0dGVtcHRlZCB0byB1
c2UgQXJndW1lbnRzIGl0ZXJhdG9yIG9uIG5vbi1Bcmd1bWVudHMgb2JqZWN0IikpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcmd1bWVudHNJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMtPnZt
KCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzSXRlcmF0b3JTdHJ1
Y3R1cmUoKSwgYXJndW1lbnRzKSk7Cit9CisKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDQxMDcyZWYyNjJkNmNkNDQx
NGY0YTJmNjYyMjE1ZWNlZTE2ZTU2ZjUuLjFjM2FiOWQ1NmQ1OGFlODA2MjIwMWEyZjY5NDU4ZWVk
OWRkNDczYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBA
IC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBBcmd1bWVudHMgOiBwdWJs
aWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIGZyaWVuZCBjbGFzcyBKSVQ7CisgICAgZnJp
ZW5kIGNsYXNzIEpTQXJndW1lbnRzSXRlcmF0b3I7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rl
c3RydWN0aWJsZU9iamVjdCBCYXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFmYjU5NzkwY2IwMDk5ODliYjdiNDI4NjNlOTE4MjMzNTc2YjhhYWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRv
ckNvbnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
QXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENs
YXNzSW5mbyBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBcmd1bWVu
dHNJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJn
dW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsKKwordm9pZCBBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90
eXBlKiBwcm90b3R5cGUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRv
ckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJ
dGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM2MGM1OWIyMTY5N2U3NmFjMWU4ZWY4
ZjlmYWI5NTU4Y2FiZTlkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaApAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3JfaAorI2RlZmluZSBBcmd1bWVudHNJdGVyYXRv
ckNvbnN0cnVjdG9yX2gKKworI2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKKworbmFtZXNw
YWNlIEpTQyB7CisKK2NsYXNzIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlOworCitjbGFzcyBB
cmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewor
cHVibGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworCisgICAgc3RhdGlj
IEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQorICAgIHsK
KyAgICAgICAgQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yPih2bS5o
ZWFwKSkgQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcih2bSwgc3RydWN0dXJlKTsKKyAgICAg
ICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm90b3R5cGUpOworICAgICAgICBy
ZXR1cm4gY29uc3RydWN0b3I7CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKyAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUqKTsKK307CisK
K30KKworI2VuZGlmIC8vICFkZWZpbmVkKEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3JfaCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50c0l0ZXJh
dG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDA4OTRmMTRhMDIxZDVmMTI2NThh
Y2IwMWU3MjFmY2Q2ZDM0OGNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oIgor
CisjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVyYXRvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKwor
Y29uc3QgQ2xhc3NJbmZvIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJB
cmd1bWVudHNJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUpIH07CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlRnVuY0l0ZXJhdG9yKEV4
ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJndW1lbnRz
SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dChFeGVjU3RhdGUqKTsKKwordm9pZCBBcmd1bWVudHNJ
dGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NF
UlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0
aGlzKTsKKworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0
b3JQcml2YXRlTmFtZSwgYXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGVGdW5jSXRlcmF0b3IsIERv
bnRFbnVtLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0
ZXJhdG9yTmV4dFByaXZhdGVOYW1lLCBhcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0
LCBEb250RW51bSwgMCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJndW1l
bnRzSXRlcmF0b3JQcm90b3R5cGVGdW5jSXRlcmF0b3IoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKK30K
KworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcmd1bWVudHNJdGVyYXRvclByb3RvdHlw
ZUZ1bmNOZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTVmFsdWUgcmVzdWx0Owor
ICAgIGlmIChqc0Nhc3Q8SlNBcmd1bWVudHNJdGVyYXRvcio+KGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpLT5uZXh0KGNhbGxGcmFtZSwgcmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT52bSgp
Lml0ZXJhdGlvblRlcm1pbmF0b3IuZ2V0KCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMTgzOWJmYTE3OWU4ZGIwZDVmMDliOGQ2MjA0MzA5YzFmNzAwMGRiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRl
cmF0b3JQcm90b3R5cGUuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90
eXBlX2gKKyNkZWZpbmUgQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGVfaAorCisjaW5jbHVkZSAi
SlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHR5cGVk
ZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworCisgICAgc3RhdGljIEFyZ3VtZW50c0l0ZXJhdG9y
UHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIEFyZ3VtZW50c0l0ZXJhdG9yUHJv
dG90eXBlKiBwcm90b3R5cGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxBcmd1bWVudHNJ
dGVyYXRvclByb3RvdHlwZT4odm0uaGVhcCkpIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlKHZt
LCBzdHJ1Y3R1cmUpOworICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QpOworICAgICAgICByZXR1cm4gcHJvdG90eXBlOworICAgIH0KKworICAgIERFQ0xB
UkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7
CisgICAgfQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwor
fTsKKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGVf
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oCmluZGV4IGE5MWY1MzcwNGM4MmFmNTUwZTg1NDAwNTVmYTMyZDEzODI2NzM1MDcuLjAzMWRj
Yjc2NTMwMmIxOTVmODc0YjM5Y2U2YzJlNzQwZmQ5ZDY1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjgsNiArMjgsNyBA
QAogLy8gd2F5cyB3aXRob3V0IHJlcGVhdGluZyB0aGUgbGlzdC4KICNkZWZpbmUgSlNDX0NPTU1P
Tl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhBcnJh
eSkgXAorICAgIG1hY3JvKEFyZ3VtZW50c0l0ZXJhdG9yKSBcCiAgICAgbWFjcm8oQXJyYXlCdWZm
ZXIpIFwKICAgICBtYWNybyhBcnJheUl0ZXJhdG9yKSBcCiAgICAgbWFjcm8oQllURVNfUEVSX0VM
RU1FTlQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJn
dW1lbnRzSXRlcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1
bWVudHNJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZjg4MTVjMDU2ODA1ODEyYTc5OTFhNWZm
MDYzZDY4NzM5NzE2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJKU0FyZ3VtZW50c0l0ZXJhdG9yLmgiCisKKyNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBKU0FyZ3VtZW50c0l0
ZXJhdG9yOjpzX2luZm8gPSB7ICJBcmd1bWVudHNJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAs
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcmd1bWVudHNJdGVyYXRvcikgfTsKKwordm9pZCBK
U0FyZ3VtZW50c0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFyZ3VtZW50cyogYXJn
dW1lbnRzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBtX2FyZ3VtZW50
cy5zZXQodm0sIHRoaXMsIGFyZ3VtZW50cyk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJndW1lbnRzSXRlcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWVk
NzQ1Yzk3NjE1YTk0NTIyY2IxMGJhYzcyZDNlYWZkNzQ5MmJhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcmd1bWVudHNJdGVyYXRvci5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgSlNBcmd1bWVudHNJdGVyYXRvcl9oCisjZGVmaW5lIEpTQXJndW1lbnRzSXRl
cmF0b3JfaAorCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBKU0FyZ3VtZW50c0l0ZXJhdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHVi
bGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworCisgICAgREVDTEFSRV9F
WFBPUlRfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgIH0KKworICAgIHN0YXRpYyBKU0FyZ3VtZW50c0l0ZXJhdG9yKiBjcmVhdGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJndW1lbnRzKiBhcmd1bWVudHMpCisgICAgeworICAgICAg
ICBKU0FyZ3VtZW50c0l0ZXJhdG9yKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEpTQXJndW1lbnRzSXRlcmF0b3I+KHZtLmhlYXApKSBKU0FyZ3VtZW50c0l0ZXJhdG9yKHZt
LCBzdHJ1Y3R1cmUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGFyZ3Vt
ZW50cyk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9CisKKyAgICBib29sIG5leHQo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYg
KG1fbmV4dEluZGV4ID49IG1fYXJndW1lbnRzLT5sZW5ndGgoY2FsbEZyYW1lKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdmFsdWUgPSBtX2FyZ3VtZW50cy0+dHJ5R2V0QXJn
dW1lbnQobV9uZXh0SW5kZXgrKyk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICB2
YWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJp
dmF0ZToKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzOworCisgICAgSlNBcmd1bWVudHNJdGVyYXRvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICAgICAg
LCBtX25leHRJbmRleCgwKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgQXJndW1lbnRzKik7CisgICAgCisgICAgV3JpdGVCYXJyaWVyPEFyZ3VtZW50cz4gbV9h
cmd1bWVudHM7CisgICAgc2l6ZV90IG1fbmV4dEluZGV4OworfTsKKworfQorCisjZW5kaWYgLy8g
IWRlZmluZWQoSlNBcmd1bWVudHNJdGVyYXRvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKaW5kZXggYzFiZjViMzE4NjE4YjhjNTE3
ODYwZGU5MGY1ZGYzZjk0OGI1NWZkMy4uZmZmM2RlMjA5YjI4NzIzODgwNDYxNWQ2MjhjN2E3MDk1
ODdhYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
SXRlcmF0b3IuY3BwCkBAIC03Myw3ICs3Myw2IEBAIHZvaWQgSlNBcnJheUl0ZXJhdG9yOjp2aXNp
dENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBjcmVhdGVJdGVyYXRvclJlc3VsdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
QXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIHNpemVfdCBpbmRleCwgSlNWYWx1ZSByZXN1bHQsIGJv
b2wgZG9uZSkKIHsKLSAgICBjYWxsRnJhbWUtPnNldEFyZ3VtZW50KGNhbGxGcmFtZS0+YXJndW1l
bnRDb3VudCgpIC0gMSwganNCb29sZWFuKGRvbmUpKTsKICAgICBpZiAoZG9uZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnZtKCkuaXRlcmF0aW9uVGVybWluYXRv
ci5nZXQoKSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKaW5kZXggOWNiMzI2ZGU5NjEzZDNkYzNjNjE5ZDBmODJlOWZlZWFhMjcz
ZTllNS4uZTIyOGIzYWM0MWUxZWU1ZDcyM2NmZDdhYWUwNGFiNjg0ODY4Njc2NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMzEs
NiArMzEsOCBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAKICNpbmNsdWRlICJBcmd1
bWVudHMuaCIKKyNpbmNsdWRlICJBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmgiCisjaW5j
bHVkZSAiQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVk
ZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIgpAQCAtNTIsNiArNTQsNyBAQAogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNBUElXcmFwcGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNBY3RpdmF0aW9uLmgiCisjaW5jbHVkZSAiSlNBcmd1bWVudHNJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBlLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA0ZmY4N2FlNDBlY2Y2
N2M1NzIzNDEzNDU0NzVkOTY5MmUwMzJjODBjLi5kNTlhNWI1NjM1OGQzYTVmN2Y5NzhmZDRiNWI1
YWE4N2RkYzE1YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTgyLDYgKzgyLDcgQEAgc3RydWN0IEhhc2hUYWJsZTsKICAgICBtYWNy
byhKU0FycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIEpTQXJyYXlCdWZmZXIs
IEFycmF5QnVmZmVyKSBcCiAgICAgbWFjcm8oV2Vha01hcCwgd2Vha01hcCwgd2Vha01hcCwgSlNX
ZWFrTWFwLCBXZWFrTWFwKSBcCiAgICAgbWFjcm8oQXJyYXlJdGVyYXRvciwgYXJyYXlJdGVyYXRv
ciwgYXJyYXlJdGVyYXRvciwgSlNBcnJheUl0ZXJhdG9yLCBBcnJheUl0ZXJhdG9yKSBcCisgICAg
bWFjcm8oQXJndW1lbnRzSXRlcmF0b3IsIGFyZ3VtZW50c0l0ZXJhdG9yLCBhcmd1bWVudHNJdGVy
YXRvciwgSlNBcmd1bWVudHNJdGVyYXRvciwgQXJndW1lbnRzSXRlcmF0b3IpIFwKIAogI2RlZmlu
ZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJv
cGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICBjbGFzcyBKUyAjIyBjYXBpdGFs
TmFtZTsgXApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDQ0ZTA0YThjZmVkOWFkNDk0NmY2M2ZhMzg2MGI4MjNkMzZmMmJhZjgu
Ljg5MmZjN2RhYzAxZWRjZmE1NjYwNmIyZDc3YzcxNjI2NzViMzZkM2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMy0xMS0wNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFN1cHBvcnQgaXRlcmF0aW9uIG9mIHRoZSBBcmd1bWVudHMgb2JqZWN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM4MzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBjYXNlcwor
CisgICAgICAgICoganMvYXJndW1lbnRzLWl0ZXJhdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvYXJndW1lbnRzLWl0ZXJhdG9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L3NjcmlwdC10ZXN0cy9hcmd1bWVudHMtaXRlcmF0b3IuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkVGhyb3cudGVzdCk6CisgICAgICAgICh0ZXN0QWxpYXMpOgorICAgICAgICAodGVzdFN0cmlj
dCk6CisgICAgICAgICh0ZXN0UmVpZmllZEFyZ3VtZW50cyk6CisgICAgICAgICh0ZXN0T3Zlcndy
aXR0ZW5Bcmd1bWVudHMpOgorICAgICAgICAodGVzdE51bGxBcmd1bWVudHMpOgorICAgICAgICAo
dGVzdE5vbkFycmF5TGlrZUFyZ3VtZW50cyk6CisKIDIwMTMtMTEtMDUgIEVucmljYSBDYXN1Y2Np
ICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBGdWxsIHdpZHRoIHNlbWljb2xvbiBpcyB3
cm9uZyBpbiB2ZXJ0aWNhbCB0ZXh0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJndW1l
bnRzLWl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2FyZ3VtZW50cy1pdGVy
YXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM0YzZhNDlmYTVkYjdkODA1ODVhM2Y4Y2Zi
NjEzODhlMTc2ZmI3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FyZ3VtZW50
cy1pdGVyYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MiBAQAorVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgQXJndW1lbnRzIG9iamVjdCBpdGVyYXRpb24uCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIChmdW5jdGlvbiAoYXJndW1lbnRzKSB7IGZvciAo
dmFyIGFyZ3VtZW50IG9mIGFyZ3VtZW50cykge319KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdhcmd1bWVudCBvZiBh
cmd1bWVudHMnKS4KK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1l
bnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3Vt
ZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxB
cmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1
bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFs
QXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1l
bnRzTGVuZ3RoCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50
c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVu
dHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJn
IGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1l
bnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFy
ZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50
c0xlbmd0aAorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNM
ZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRz
TGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBp
cyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50
c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcg
aXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNM
ZW5ndGgKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVu
Z3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xl
bmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMg
dHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVudHNM
ZW5ndGggaXMgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJnIGlz
IHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlzIGl0ZXJhdGVkQXJndW1lbnRzTGVu
Z3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBp
cyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFy
ZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVh
bEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCBpcyBpdGVyYXRlZEFyZ3Vt
ZW50c0xlbmd0aAorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJl
YWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09
IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcgPT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhcmcg
PT09IHJlYWxBcmcgaXMgdHJ1ZQorUEFTUyBhY3R1YWxBcmd1bWVudHNMZW5ndGggaXMgaXRlcmF0
ZWRBcmd1bWVudHNMZW5ndGgKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJn
ID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1Mg
YXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BB
U1MgYXJnID09PSByZWFsQXJnIGlzIHRydWUKK1BBU1MgYWN0dWFsQXJndW1lbnRzTGVuZ3RoIGlz
IGl0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQ
QVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVl
CitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0
cnVlCitQQVNTIGFyZyA9PT0gcmVhbEFyZyBpcyB0cnVlCitQQVNTIGFjdHVhbEFyZ3VtZW50c0xl
bmd0aCBpcyBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aAorUEFTUyB0ZXN0TnVsbEFyZ3VtZW50cygp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnZmFpbCgibm90aGluZyB0byBpdGVyYXRlIiknKS4KK1BBU1MgdGVzdE5vbkFycmF5TGlr
ZUFyZ3VtZW50cygpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcmd1bWVudHMtaXRl
cmF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2pzL2FyZ3VtZW50cy1pdGVyYXRvci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNjMjU5YTE0N2U4MzVkNDhmYjg3MTQ5N2RjMDNlYjQyYWVlN2I0MGIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcmd1bWVudHMtaXRlcmF0b3IuaHRtbApAQCAtMCww
ICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJndW1lbnRzLWl0ZXJhdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcmd1bWVudHMtaXRlcmF0b3IuanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJndW1lbnRzLWl0ZXJhdG9yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1Y2FhNTU4NjJjYmM4MTAzOWIxYWRiYmI2ZmQ4MzlmODBjMTY3Y2YKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJndW1lbnRzLWl0ZXJhdG9yLmpz
CkBAIC0wLDAgKzEsMTE3IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiBBcmd1bWVudHMgb2JqZWN0IGl0ZXJhdGlvbi4iCispOworCisKK3ZhciBhcmd1
bWVudHMgPSBudWxsOworc2hvdWxkVGhyb3coIihmdW5jdGlvbiAoYXJndW1lbnRzKSB7IGZvciAo
dmFyIGFyZ3VtZW50IG9mIGFyZ3VtZW50cykge319KSgpIikKKworZnVuY3Rpb24gdGVzdCgpIHsK
KyAgICB2YXIgaSA9IDA7CisgICAgZm9yIChhcmcgb2YgYXJndW1lbnRzKSB7CisgICAgICAgIHJl
YWxBcmcgPSBhcmd1bWVudHNbaSsrXTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmcgPT09IHJl
YWxBcmciKTsKKyAgICB9CisgICAgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGggPSBpOworICAgIGFj
dHVhbEFyZ3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7CisgICAgc2hvdWxkQmUoImFj
dHVhbEFyZ3VtZW50c0xlbmd0aCIsICJpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aCIpOworfQorCit0
ZXN0KCk7Cit0ZXN0KCJhIik7Cit0ZXN0KCJhIiwgImIiKTsKK3Rlc3Qoe30pCisKK2Z1bmN0aW9u
IHRlc3RBbGlhcygpIHsKKyAgICB2YXIgaSA9IDA7CisgICAgdmFyIGEgPSBhcmd1bWVudHM7Cisg
ICAgZm9yIChhcmcgb2YgYSkgeworICAgICAgICByZWFsQXJnID0gYXJndW1lbnRzW2krK107Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJnID09PSByZWFsQXJnIik7CisgICAgfQorICAgIGl0ZXJh
dGVkQXJndW1lbnRzTGVuZ3RoID0gaTsKKyAgICBhY3R1YWxBcmd1bWVudHNMZW5ndGggPSBhcmd1
bWVudHMubGVuZ3RoOworICAgIHNob3VsZEJlKCJhY3R1YWxBcmd1bWVudHNMZW5ndGgiLCAiaXRl
cmF0ZWRBcmd1bWVudHNMZW5ndGgiKTsKK30KKwordGVzdEFsaWFzKCk7Cit0ZXN0QWxpYXMoImEi
KTsKK3Rlc3RBbGlhcygiYSIsICJiIik7Cit0ZXN0QWxpYXMoe30pCisKKworZnVuY3Rpb24gdGVz
dFN0cmljdCgpIHsKKyAgICB2YXIgaSA9IDA7CisgICAgZm9yIChhcmcgb2YgYXJndW1lbnRzKSB7
CisgICAgICAgIHJlYWxBcmcgPSBhcmd1bWVudHNbaSsrXTsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCJhcmcgPT09IHJlYWxBcmciKTsKKyAgICB9CisgICAgaXRlcmF0ZWRBcmd1bWVudHNMZW5ndGgg
PSBpOworICAgIGFjdHVhbEFyZ3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7CisgICAg
c2hvdWxkQmUoImFjdHVhbEFyZ3VtZW50c0xlbmd0aCIsICJpdGVyYXRlZEFyZ3VtZW50c0xlbmd0
aCIpOworfQorCit0ZXN0U3RyaWN0KCk7Cit0ZXN0U3RyaWN0KCJhIik7Cit0ZXN0U3RyaWN0KCJh
IiwgImIiKTsKK3Rlc3RTdHJpY3Qoe30pCisKKworZnVuY3Rpb24gdGVzdFJlaWZpZWRBcmd1bWVu
dHMoKSB7CisgICAgdmFyIGkgPSAwOworICAgIGFyZ3VtZW50cy5leHBhbmRvID0gMTsKKyAgICBm
b3IgKGFyZyBvZiBhcmd1bWVudHMpIHsKKyAgICAgICAgcmVhbEFyZyA9IGFyZ3VtZW50c1tpKytd
OworICAgICAgICBzaG91bGRCZVRydWUoImFyZyA9PT0gcmVhbEFyZyIpOworICAgIH0KKyAgICBp
dGVyYXRlZEFyZ3VtZW50c0xlbmd0aCA9IGk7CisgICAgYWN0dWFsQXJndW1lbnRzTGVuZ3RoID0g
YXJndW1lbnRzLmxlbmd0aDsKKyAgICBzaG91bGRCZSgiYWN0dWFsQXJndW1lbnRzTGVuZ3RoIiwg
Iml0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoIik7Cit9CisKK3Rlc3RSZWlmaWVkQXJndW1lbnRzKCk7
Cit0ZXN0UmVpZmllZEFyZ3VtZW50cygiYSIpOwordGVzdFJlaWZpZWRBcmd1bWVudHMoImEiLCAi
YiIpOwordGVzdFJlaWZpZWRBcmd1bWVudHMoe30pCisKKworZnVuY3Rpb24gdGVzdE92ZXJ3cml0
dGVuQXJndW1lbnRzKCkgeworICAgIHZhciBpID0gMDsKKyAgICBhcmd1bWVudHMgPSAiZm9vYmFy
IjsKKyAgICBmb3IgKGFyZyBvZiBhcmd1bWVudHMpIHsKKyAgICAgICAgcmVhbEFyZyA9IGFyZ3Vt
ZW50c1tpKytdOworICAgICAgICBzaG91bGRCZVRydWUoImFyZyA9PT0gcmVhbEFyZyIpOworICAg
IH0KKyAgICBpdGVyYXRlZEFyZ3VtZW50c0xlbmd0aCA9IGk7CisgICAgYWN0dWFsQXJndW1lbnRz
TGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKKyAgICBzaG91bGRCZSgiYWN0dWFsQXJndW1lbnRz
TGVuZ3RoIiwgIml0ZXJhdGVkQXJndW1lbnRzTGVuZ3RoIik7Cit9CisKKwordGVzdE92ZXJ3cml0
dGVuQXJndW1lbnRzKCk7Cit0ZXN0T3ZlcndyaXR0ZW5Bcmd1bWVudHMoImEiKTsKK3Rlc3RPdmVy
d3JpdHRlbkFyZ3VtZW50cygiYSIsICJiIik7Cit0ZXN0T3ZlcndyaXR0ZW5Bcmd1bWVudHMoe30p
CisKKworCitmdW5jdGlvbiB0ZXN0TnVsbEFyZ3VtZW50cygpIHsKKyAgICB2YXIgaSA9IDA7Cisg
ICAgYXJndW1lbnRzID0gbnVsbDsKKyAgICBmb3IgKGFyZyBvZiBhcmd1bWVudHMpIHsKKyAgICAg
ICAgZmFpbCgibm90aGluZyB0byBpdGVyYXRlIik7CisgICAgfQorfQorCitzaG91bGRUaHJvdygi
dGVzdE51bGxBcmd1bWVudHMoKSIpOworZnVuY3Rpb24gdGVzdE5vbkFycmF5TGlrZUFyZ3VtZW50
cygpIHsKKyAgICB2YXIgaSA9IDA7CisgICAgYXJndW1lbnRzID0ge307CisgICAgZm9yIChhcmcg
b2YgYXJndW1lbnRzKSB7CisgICAgICAgIGZhaWwoIm5vdGhpbmcgdG8gaXRlcmF0ZSIpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorc2hvdWxkQmVU
cnVlKCJ0ZXN0Tm9uQXJyYXlMaWtlQXJndW1lbnRzKCkiKTsKKwo=
</data>
<flag name="review"
          id="238993"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>