<?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>170444</bug_id>
          
          <creation_ts>2017-04-04 02:31:12 -0700</creation_ts>
          <short_desc>WebGPU: implement ComputeCommandEncoder and related components</short_desc>
          <delta_ts>2017-04-07 17:21:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuichiro Kikura">y.kikura</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>y.kikura</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1294009</commentid>
    <comment_count>0</comment_count>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-04 02:31:12 -0700</bug_when>
    <thetext>WebGPU: implement ComputeCommandEncoder and related components</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294011</commentid>
    <comment_count>1</comment_count>
      <attachid>306167</attachid>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-04 02:49:38 -0700</bug_when>
    <thetext>Created attachment 306167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294498</commentid>
    <comment_count>2</comment_count>
      <attachid>306167</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-05 09:00:28 -0700</bug_when>
    <thetext>Comment on attachment 306167
Patch

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

This is really cool!
A few thoughts:
1) This needs to compile successfully on the iOS simulator for us to commit it.  See https://webkit.org/blog/3457/building-webkit-for-ios-simulator/ for help figuring out how.
2) I&apos;m not sure if bounds checks or other validation steps will be needed.  Imagine a malicious web developer trying to overflow a buffer somewhere.
3) There should be a test for this.  I&apos;m not sure what the status of the WebGPU tests are because it&apos;s in a prototyping state right now, but we will need to have tests that cover the new functionality to make sure it is accessible from javascript and has the correct behavior.  See LayoutTests/fast/canvas/webgpu which has some serious room for improvement.

&gt; Source/WebCore/ChangeLog:8
&gt; +        I implemented WebGPUComputeCommandEncoder and related components based on the WebGPU proposal.

Could you put a link to the proposal?  I haven&apos;t been following closely enough to know what you&apos;re talking about.

&gt; Source/WebCore/ChangeLog:21
&gt; +        If my understand is right, WebKit doesn&apos;t support promise attribute.

If we don&apos;t support it and it&apos;s needed, we might need to implement it.  Is something missing in the bindings generators?  See Source/WebCore/bindings/scripts/generate-bindings.pl and the other scripts there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295170</commentid>
    <comment_count>3</comment_count>
      <attachid>306455</attachid>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-06 19:04:08 -0700</bug_when>
    <thetext>Created attachment 306455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295173</commentid>
    <comment_count>4</comment_count>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-06 19:11:00 -0700</bug_when>
    <thetext>Dear Alex Christensen,

Thank you for the comment. I fixed bugs and problems you pointed out. The problem about Promise attribute is just my misunderstanding, sorry. 

The problem about buffer-overrun may still remain, but sorry, I&apos;m not sure. I just used WebGPUBuffer implementation which had been implemented already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295184</commentid>
    <comment_count>5</comment_count>
      <attachid>306455</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-06 20:16:18 -0700</bug_when>
    <thetext>Comment on attachment 306455
Patch

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

I&apos;d appreciate Dean looking at this.

&gt; Source/WebCore/bindings/js/JSWebGPUCommandBufferCustom.cpp:2
&gt; + * Copyright (C) 2016 Apple Inc. All rights reserved.

This is inconsistent.

&gt; Source/WebCore/platform/graphics/cocoa/GPUComputeCommandEncoderMetal.mm:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

Ditto

&gt; LayoutTests/fast/canvas/webgpu/webgpu-dispatch.html:38
&gt; +        window.testRunner.notifyDone();

This doesn&apos;t make sense here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295244</commentid>
    <comment_count>6</comment_count>
      <attachid>306477</attachid>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-07 01:48:01 -0700</bug_when>
    <thetext>Created attachment 306477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295245</commentid>
    <comment_count>7</comment_count>
    <who name="Yuichiro Kikura">y.kikura</who>
    <bug_when>2017-04-07 01:48:43 -0700</bug_when>
    <thetext>I fixed licenses and the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295488</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-04-07 14:42:00 -0700</bug_when>
    <thetext>I think this is good and we probably want to accept this.

However, we should probably be clear about some things:

- Our implementation of WebGPU is just an experiment. It is designed to help us understand what kind of performance is possible. It is also designed to help us understand any design issues which may appear.

- The WebKit project tries to be standards-compliant where possible. We are currently involved in the &quot;GPU on the Web&quot;[1] standardization group. This group is still very young, and does not have a draft specification document. Therefore, as this group develops, our implementation will probably change dramatically. The changes will probably include both fundamental design as well as details of implementation.

- The apparent direction of this patch is to mirror the Metal API in Javascript. This is the approach that our current implication has taken. However, we will switch approaches to, instead, pursue the work being done in the standardization group. Therefore, this patch is acceptable because it is an extension of what we have already done, but the existing approach, including this patch, will likely have to be dramatically changed soon.

[1] https://www.w3.org/community/gpu/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295491</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-04-07 14:43:55 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #8)
&gt; This is the approach that our current implication has taken.

s/implication/implementation/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295545</commentid>
    <comment_count>10</comment_count>
      <attachid>306477</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-07 16:52:14 -0700</bug_when>
    <thetext>Comment on attachment 306477
Patch

Given that disclaimer, let&apos;s do this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295575</commentid>
    <comment_count>11</comment_count>
      <attachid>306477</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-07 17:21:30 -0700</bug_when>
    <thetext>Comment on attachment 306477
Patch

Clearing flags on attachment: 306477

Committed r215131: &lt;http://trac.webkit.org/changeset/215131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295576</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-07 17:21:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306167</attachid>
            <date>2017-04-04 02:49:38 -0700</date>
            <delta_ts>2017-04-06 19:04:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170444-20170404184937.patch</filename>
            <type>text/plain</type>
            <size>78120</size>
            <attacher name="Yuichiro Kikura">y.kikura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWY4NmQ4OTRiOWZhNzIzMTI5YWYwZTUxYTI2ZTE4ZWJlMjc4OTdkLi4xYzkwOTI5ZTZkOWYyZjVk
NzdhNjljYTc2OGU4OWI2ZDFhNmI3Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wNC0wNCAgWXVpY2hpcm8gS2lrdXJhICA8eS5raWt1cmFAZ21haWwu
Y29tPgorCisgICAgICAgIFdlYkdQVTogaW1wbGVtZW50IENvbXB1dGVDb21tYW5kRW5jb2RlciBh
bmQgcmVsYXRlZCBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJIGFkZGVkIHNvbWUgaWRlbnRpZmllcnMgcmVsYXRlZCB3aXRoIFdlYkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaDoKKwogMjAxNy0wNC0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGluY29ycmVjdCBjYXBhY2l0eSBkZWx0YSBjYWxjdWxhdGlvbiByZXBvcnRl
ZCBpbiBTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWNhNTA1MTYz
YzUxOTg4M2M3ZWZlYTcwMWRiZDMyNWQ1ZTg1MzMyLi42Yjc5NzYzYzU1NjkzYTRmZjIwODgzNzZh
NTdkNjQ5YTY3YTAwM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTctMDQtMDQg
IFl1aWNoaXJvIEtpa3VyYSAgPHkua2lrdXJhQGdtYWlsLmNvbT4KKworICAgICAgICBXZWJHUFU6
IGltcGxlbWVudCBDb21wdXRlQ29tbWFuZEVuY29kZXIgYW5kIHJlbGF0ZWQgY29tcG9uZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBpbXBsZW1l
bnRlZCBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIgYW5kIHJlbGF0ZWQgY29tcG9uZW50cyBi
YXNlZCBvbiB0aGUgV2ViR1BVIHByb3Bvc2FsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGVDb21wdXRlQ29tbWFuZEVuY29kZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tcGxldGVkKToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGw6CisKKyAgICAgICAgSW4gcHJvcG9zYWwsICJX
ZWJHUFVDb21tYW5kQnVmZmVyLmNvbXBsZXRlZCIgaXMgZGVmaWVuZCBhcyBhIHByb21pc2UgYXR0
cmlidXRlLCBidXQgSSBpbXBsZW1lbnRlZCBpdCBhcyBhIG1ldGhvZCB0ZW1wb3JhcmlseS4gCisg
ICAgICAgIElmIG15IHVuZGVyc3RhbmQgaXMgcmlnaHQsIFdlYktpdCBkb2Vzbid0IHN1cHBvcnQg
cHJvbWlzZSBhdHRyaWJ1dGUuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVNpemVNYWtl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6V2ViR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlcjo6fldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldENvbXB1dGVQaXBlbGluZVN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVy
OjplbmRFbmNvZGluZyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQ
VUNvbW1hbmRCdWZmZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlcjo6Y29tcHV0ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OldlYkdQVUNvbXB1dGVQaXBl
bGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
Ojp+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlOjpjb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaWRsOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZVN0YXRl
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHUFVTaXplLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5pZGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1
ZmZlcjo6Y29tcGxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVD
b21wdXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
VExTaXplTWFrZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6
OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXI6OnNldENvbXB1dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnBsYXRmb3JtQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRlUGlwZWxp
bmVTdGF0ZU1ldGFsLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OnBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZUNvbXB1dGVDb21t
YW5kRW5jb2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRC
dWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0
ZUNvbW1hbmRFbmNvZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjp+R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0Q29tcHV0ZVBpcGVsaW5lU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
Q29tbWFuZEJ1ZmZlci5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsLgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZTo6fkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2l6ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKwogMjAxNy0w
NC0wNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBXaW5kb3dzIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDNjMDI5M2EyMzlkOTYzZDYwYzQ5N2E0
ZGJjMWU4MmY1ZWE1ZThjZjYuLjJlM2NhODYxMjFmZTRiNmNjNjg4YzA2YTRjMzhjZjBhZDE0YjQy
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaApAQCAtMTMyLDYgKzEzMiw4IEBACiAgICAgbWFjcm8oV2ViR1BVQnVmZmVyKSBcCiAg
ICAgbWFjcm8oV2ViR1BVQ29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYkdQVUNvbW1hbmRR
dWV1ZSkgXAorICAgIG1hY3JvKFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcikgXAorICAgIG1h
Y3JvKFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKSBcCiAgICAgbWFjcm8oV2ViR1BVRGVwdGhT
dGVuY2lsRGVzY3JpcHRvcikgXAogICAgIG1hY3JvKFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlKSBc
CiAgICAgbWFjcm8oV2ViR1BVRHJhd2FibGUpIFwKQEAgLTE0Niw2ICsxNDgsNyBAQAogICAgIG1h
Y3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcikgXAogICAgIG1hY3JvKFdlYkdQVVJl
bmRlclBpcGVsaW5lU3RhdGUpIFwKICAgICBtYWNybyhXZWJHUFVSZW5kZXJpbmdDb250ZXh0KSBc
CisgICAgbWFjcm8oV2ViR1BVU2l6ZSkgXAogICAgIG1hY3JvKFdlYkdQVVRleHR1cmUpIFwKICAg
ICBtYWNybyhXZWJHUFVUZXh0dXJlRGVzY3JpcHRvcikgXAogICAgIG1hY3JvKFdlYlNvY2tldCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkZDQzY2YzMzNkMDJjNmVmMjI5OWU2ZGYxZWM1MmM3
NzhjZjZmN2Q3Li5hNzExNjQ0ZGI4YmZmNmQwZjIzMWQyNWE1N2U1NDVjNmYzZjRlYmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAxLDYgKzYwMSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVQnVmZmVyLmlkbAogICAgIGh0bWwvY2Fu
dmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFu
ZFF1ZXVlLmlkbAorICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5p
ZGwKKyAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwKICAgICBo
dG1sL2NhbnZhcy9XZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmlkbAogICAgIGh0bWwvY2Fu
dmFzL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdQVURy
YXdhYmxlLmlkbApAQCAtMTgyNiw2ICsxODI4LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21t
YW5kQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAKKyAg
ICBodG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCisgICAgaHRtbC9j
YW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCiAgICAgaHRtbC9jYW52YXMvV2Vi
R1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEZXB0
aFN0ZW5jaWxTdGF0ZS5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5jcHAKQEAg
LTIzNDEsNiArMjM0NSw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQnVmZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21t
YW5kQnVmZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kUXVldWUu
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkYjA0ZDE0ZjY0ZDU0ZDFlNTA5OWJlNjM0ZmUyYzZiNDcyNzYwNmE3Li40
ODAxYjM2NTczOGE5YzVkYjZhYzhjOTNhOWM1ZjRiNDg3Y2Y2N2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTU3Niw2ICs1NzYsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbCBcCisJJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVURyYXdhYmxlLmlkbCBcCkBAIC01OTAsNiArNTkyLDcg
QEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR1BV
UmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaWRsIFwK
KwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1dlYkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMjJmYmVi
NjIxYzdjYWFiNDI4NmQxMDUzZTc5ZjdkNjYxOWE1MWE0My4uZGE4NTcxNDQ0OWQyZmI5MGYwYWM2
OTRjZGVhZmE4MjhhZjVkNTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQyOCw2
ICs0MjgsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQ
VUNvbW1hbmRRdWV1ZU1ldGFsLm1tCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvck1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR1BVRGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVURldmljZU1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzk0ODVhMjc2YTc5ZTVmYTMyMTUzNmE1
YWRkZjRkMTVlM2ZkMTZjMC4uMzdiMTE5MGQ4ODhkNjg4MDMwZDI3YTM3MGQwYTNlMTE1YjRmMjQw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTY1Myw2ICsxNjUzLDE4IEBACiAJCTM3RjgxOEZEMEQ2NTc2MDYwMDVFMUYwNSAv
KiBXZWJDb3JlVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3RjgxOEZCMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9u
c2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
N0Y4MThGRTBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGODE4RkMwRDY1NzYwNjAw
NUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLzsgfTsKIAkJMzdGRDQyOTgxMTgzNjg0
NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRo
TGltaXQuaCAqLzsgfTsKKwkJMzg3QUU5NUExRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODdB
RTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLzsgfTsKKwkJMzg3QUU5
NUIxRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzg3QUU5NTkxRThFOTJFRjAwMDBERTk2IC8qIEpT
V2ViR1BVU2l6ZS5oICovOyB9OworCQkzODkxMTc0MTFFOEY0QkYwMDA2MTAzM0UgLyogR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFOTFFOEUyMEFDMDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQyMUU4RjRCRjAwMDYxMDMzRSAv
KiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQzMUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4OTExNzQ0MUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFRDFFOEUyNDdBMDA0M0U4NTAgLyogR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovOyB9OworCQkzODlEMUUxRTFFOEYyQjlFMDA5Nzk1
QjkgLyogV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4MUUzNUU4MUU4RTFFMTYwMDQzRTg1MCAvKiBX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovOyB9OworCQkzODlEMUUxRjFFOEYyQjlG
MDA5Nzk1QjkgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RTUxRThFMUM2QTAwNDNFODUw
IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLzsgfTsKKwkJMzhGMjNBQUYxRThF
ODNDNDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4RjIzQUFFMUU4RTgzQzQw
MENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4
RjIzQUIzMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzhGMjNBQjAx
RThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggKi87IH07
CisJCTM4RjIzQUI0MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4
RjIzQUIxMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNw
cCAqLzsgfTsKKwkJMzhGMjNBQjUxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM4RjIzQUIyMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmggKi87IH07CiAJCTNBQzY0OEIyMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRh
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQzY0
OEIxMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRhcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJF
NkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTRBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkzQzI0NEZFQkEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
QzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgKi87
IH07CkBAIC05MjE1LDYgKzkyMjcsMjcgQEAKIAkJMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1IC8q
IFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJv
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFpbGluZ0Zsb2F0c1Jvb3RJ
bmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGRDQyOTcxMTgzNjg0
NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4
MUUzNUUzMUU4RTFCNDUwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFNDFFOEUxQkQ0MDA0M0U4NTAgLyog
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTUx
RThFMUM2QTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTYxRThFMURCOTAwNDNF
ODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RTcxRThFMUUwQTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21t
YW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1
RTgxRThFMUUxNjAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFOTFFOEUyMEFD
MDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRh
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUExRThFMjBEOTAwNDNF
ODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFF
MzVFQzFFOEUyM0U0MDA0M0U4NTAgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUQxRThFMjQ3QTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzODFFMzVFRjFFOEUzRDdGMDA0M0U4NTAgLyogV2ViR1BVU2l6ZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVU2l6ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM4MUUzNUY1MUU4RTRDNDIwMDQzRTg1MCAvKiBXZWJHUFVTaXplLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzgxRTM1RjYxRThFNEQwRTAwNDNFODUwIC8qIEdQVVNpemUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVU2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzODdBRTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVU2l6ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4N0FFOTU5MUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQ
VVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVTaXplLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4RjIzQUFFMUU4RTgzQzQwMENFNDZGNSAv
KiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4RjIzQUIwMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dl
YkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzOEYyM0FCMTFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzhGMjNBQjIxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzQUM2NDhCMTEyOUUx
NDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVkaXRpbmdCb3VuZGFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzQzI0NEZFNEEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNDMjQ0RkU1QTM3NUFDNjMzRjg4QkU2RiAv
KiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTc5MzgsNiArMTc5NzEsMTIgQEAKIAkJCQkzMUEwODhDQzFFNzM3QjREMDAz
QjY2MDkgLyogV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCAqLywKIAkJCQkzMUEwODhDRDFFNzM3QjRE
MDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZFF1ZXVlLmggKi8sCiAJCQkJMzFBMDg4Q0UxRTczN0I0
RDAwM0I2NjA5IC8qIFdlYkdQVUNvbW1hbmRRdWV1ZS5pZGwgKi8sCisJCQkJMzgxRTM1RTgxRThF
MUUxNjAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8sCisJCQkJ
MzgxRTM1RTcxRThFMUUwQTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5o
ICovLAorCQkJCTM4MUUzNUU2MUU4RTFEQjkwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXIuaWRsICovLAorCQkJCTM4MUUzNUU1MUU4RTFDNkEwMDQzRTg1MCAvKiBXZWJHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgKi8sCisJCQkJMzgxRTM1RTQxRThFMUJENDAwNDNFODUw
IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmggKi8sCisJCQkJMzgxRTM1RTMxRThFMUI0
NTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmlkbCAqLywKIAkJCQkzMUEw
ODhDRjFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5jcHAg
Ki8sCiAJCQkJMzFBMDg4RDAxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVURlcHRoU3RlbmNpbERl
c2NyaXB0b3IuaCAqLywKIAkJCQkzMUEwODhEMTFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVRGVw
dGhTdGVuY2lsRGVzY3JpcHRvci5pZGwgKi8sCkBAIC0xNzk4NSw2ICsxODAyNCw4IEBACiAJCQkJ
MzFBMDg4RkIxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3Bw
ICovLAogCQkJCTMxQTA4OEZDMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVSZW5kZXJQaXBlbGlu
ZVN0YXRlLmggKi8sCiAJCQkJMzFBMDg4RkQxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVVJlbmRl
clBpcGVsaW5lU3RhdGUuaWRsICovLAorCQkJCTM4MUUzNUY1MUU4RTRDNDIwMDQzRTg1MCAvKiBX
ZWJHUFVTaXplLmggKi8sCisJCQkJMzgxRTM1RUYxRThFM0Q3RjAwNDNFODUwIC8qIFdlYkdQVVNp
emUuaWRsICovLAogCQkJCTMxQTA4OEZFMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVUZXh0dXJl
LmNwcCAqLywKIAkJCQkzMUEwODhGRjFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVVGV4dHVyZS5o
ICovLAogCQkJCTMxQTA4OTAwMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVUZXh0dXJlLmlkbCAq
LywKQEAgLTE4MDIxLDYgKzE4MDYyLDEwIEBACiAJCQkJMzE2QkRCQzUxRTc1RUUyNDAwREUwRDVB
IC8qIEdQVUNvbW1hbmRCdWZmZXIuaCAqLywKIAkJCQkzMTZCREJCOTFFNzM4ODA2MDBERTBENUEg
LyogR1BVQ29tbWFuZFF1ZXVlLmNwcCAqLywKIAkJCQkzMTZCREJCQTFFNzM4ODA2MDBERTBENUEg
LyogR1BVQ29tbWFuZFF1ZXVlLmggKi8sCisJCQkJMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8q
IEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8sCisJCQkJMzgxRTM1RUExRThFMjBEOTAw
NDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovLAorCQkJCTM4MUUzNUVEMUU4
RTI0N0EwMDQzRTg1MCAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgKi8sCisJCQkJMzgx
RTM1RUMxRThFMjNFNDAwNDNFODUwIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmggKi8sCiAJ
CQkJMzE2QkRCRjQxRTc2MkFDRDAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3Iu
Y3BwICovLAogCQkJCTMxNkJEQkY1MUU3NjJBQ0QwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxE
ZXNjcmlwdG9yLmggKi8sCiAJCQkJMzE2QkRCRUUxRTc2MjkxQjAwREUwRDVBIC8qIEdQVURlcHRo
U3RlbmNpbFN0YXRlLmNwcCAqLywKQEAgLTE4MDUwLDYgKzE4MDk1LDcgQEAKIAkJCQkzMTZCREJG
RDFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCiAJ
CQkJMzE2QkRCRkUxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3Bw
ICovLAogCQkJCTMxNkJEQkZGMUU3NjJGNTcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmggKi8sCisJCQkJMzgxRTM1RjYxRThFNEQwRTAwNDNFODUwIC8qIEdQVVNpemUuaCAqLywK
IAkJCQkzMTZCREJBRjFFNzM1NEJCMDBERTBENUEgLyogR1BVVGV4dHVyZS5jcHAgKi8sCiAJCQkJ
MzE2QkRCQjAxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuaCAqLywKIAkJCQkzMTZCREJC
NTFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovLApAQCAtMjEz
NjgsNiArMjE0MTQsMTAgQEAKIAkJCQkzMUEwODkyMDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJH
UFVDb21tYW5kQnVmZmVyLmggKi8sCiAJCQkJMzFBMDg5MjExRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCAqLywKIAkJCQkzMUEwODkyMzFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVDb21tYW5kUXVldWUuaCAqLywKKwkJCQkzOEYyM0FBRTFFOEU4M0M0MDBDRTQ2
RjUgLyogSlNXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovLAorCQkJCTM4RjIzQUIw
MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovLAor
CQkJCTM4RjIzQUIxMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCAqLywKKwkJCQkzOEYyM0FCMjFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZS5oICovLAogCQkJCTMxQTA4OTI0MUU3MzhENTkwMDNCNjYwOSAvKiBK
U1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwICovLAogCQkJCTMxQTA4OTI2MUU3MzhE
NTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaCAqLywKIAkJCQkz
MUEwODkyNzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAg
Ki8sCkBAIC0yMTM5Niw2ICsyMTQ0Niw4IEBACiAJCQkJMzFBMDg5NEExRTczOEQ1OTAwM0I2NjA5
IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzFBMDg5NEIx
RTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZS5jcHAgKi8sCiAJ
CQkJMzFBMDg5NEQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0
ZS5oICovLAorCQkJCTM4N0FFOTU4MUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQVVNpemUuY3Bw
ICovLAorCQkJCTM4N0FFOTU5MUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQVVNpemUuaCAqLywK
IAkJCQkzMUEwODk0RTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlLmNwcCAqLywK
IAkJCQkzMUEwODk1MDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlLmggKi8sCiAJ
CQkJMzFBMDg5NTExRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3Iu
Y3BwICovLApAQCAtMjMxOTMsNiArMjMyNDUsOCBAQAogCQkJCTMxNkJEQkE1MUU3MUZBNkYwMERF
MEQ1QSAvKiBHUFVCdWZmZXJNZXRhbC5tbSAqLywKIAkJCQkzMTZCREJDNjFFNzVFRTNEMDBERTBE
NUEgLyogR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tICovLAogCQkJCTMxNkJEQkJEMUU3Mzg4MTMw
MERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWVNZXRhbC5tbSAqLywKKwkJCQkzODFFMzVFOTFFOEUy
MEFDMDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gKi8sCisJCQkJ
MzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlTWV0YWwu
bW0gKi8sCiAJCQkJMzE2QkRCRjgxRTc2MkJFRjAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNpbERl
c2NyaXB0b3JNZXRhbC5tbSAqLywKIAkJCQkzMTZCREJGMjFFNzYyOTM3MDBERTBENUEgLyogR1BV
RGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5tbSAqLywKIAkJCQkzMTZCREI4ODFFNkUxNDFDMDBERTBE
NUEgLyogR1BVRGV2aWNlTWV0YWwubW0gKi8sCkBAIC0yODEwNCw2ICsyODE1OCw4IEBACiAJCQkJ
MzFBMDg5NTYxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUEwODk1OTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk1QzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJH
UFVDb21tYW5kUXVldWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTM4RjIzQUIzMUU4RTgzRDAwMENF
NDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMzhGMjNBQjUxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTA4OTVGMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTA4OTYy
MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUEwODk2NTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEcmF3YWJsZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yODExOCw2ICsyODE3NCw3IEBACiAJCQkJMzFBMDg5ODAxRTcz
OEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk4MzFFNzM4RDVBMDAzQjY2MDkgLyog
SlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
QTA4OTg2MUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTM4N0FFOTVCMUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQVVNp
emUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTA4OTg5MUU3MzhENUEwMDNCNjYwOSAvKiBKU1dl
YkdQVVRleHR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTA4OThDMUU3MzhENUEwMDNCNjYw
OSAvKiBKU1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMw
RkYzRTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMTAyMiw2ICszMTA3OSwxMCBAQAogCQkJCTMxNkJEQkM4MUU3NUYwOEQwMERF
MEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyTWV0YWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTZC
REJCQjFFNzM4ODA2MDBERTBENUEgLyogR1BVQ29tbWFuZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxNkJEQkJFMUU3Mzg4MTMwMERFMEQ1QSAvKiBHUFVDb21tYW5kUXVldWVNZXRhbC5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTM4OTExNzQzMUU4RjRCRjAwMDYxMDMzRSAvKiBHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzg5MTE3NDExRThGNEJG
MDAwNjEwMzNFIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlck1ldGFsLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzg5MTE3NDQxRThGNEJGMDAwNjEwMzNFIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OTExNzQyMUU4RjRCRjAwMDYxMDMzRSAvKiBH
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2QkRC
RjYxRTc2MkFEMTAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzE2QkRCRjkxRTc2MkJGNDAwREUwRDVBIC8qIEdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3JNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNkJEQkYxMUU3NjI5MjUw
MERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMx
MDcyLDcgKzMxMTMzLDYgQEAKIAkJCQlFMTEyRjQ3MTFFM0E4NjEyMDBENkNERkQgLyogR3JpZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTc1QkE5OTFFOEFFMzM4MDA3MTQ1NEYgLyogR3JpZFBv
c2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAv
KiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzE2RENCNEIx
RTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlQ29ubmVjdGlvblN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxMkRFNzE3MUU0Qjc0OUMwMEY5QUNDRiAvKiBHcmlkVHJhY2tTaXppbmdBbGdv
cml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8q
IEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5QjFENTRGNkMx
MDBERDdDNjggLyogSElER2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNDUzLDcgKzMx
NTEzLDYgQEAKIAkJCQk5NEU4Mzk1NTFERkIyQkM0MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VS
dWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMjAyMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU1BhZ2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Q0Y3QjMzMDlGNkVDRDcwMEVC
MzY2NSAvKiBKU0NTU1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzE2RENCNEQxRTc5MTBB
NjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM0NkMxRUUwQzBEREJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEQwNUZBNzBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkyMjYyRjEwMzIxMDg0MDA2RTdENUQgLyogSlNDU1NS
dWxlTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxODM0LDkgKzMxODkzLDEyIEBA
CiAJCQkJMDc5NjlEQUYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURCMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENEVE1GVG9u
ZUNoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REI1MTdEMTQxNTEwMDdG
Rjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwNzk2OURC
NzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTMxNkRDQjRCMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5l
Y3Rpb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0RDFFNzkxMEE2MDAxQjVG
ODcgLyogSlNSVENJY2VHYXRoZXJpbmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3
OTRFQjE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzE2RENCMzIxRTc4RkI3MDAwMUI1Rjg3IC8qIEpTUlRDT2ZmZXJPcHRpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OTY5REI5MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1BlZXJD
b25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3OTY5REI3MTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUUyQzQzNzExQkNGMEQ3NTAwMDFFMkJDIC8qIEpTUlRDUnRwUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUUyQzQzNzMxQkNGMEQ3NTAwMDFFMkJDIC8qIEpTUlRDUnRwU2VuZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTVFMkM0MzczMUJDRjBENzUwMDAxRTJCRSAvKiBKU1JUQ1J0
cFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjA5NCw2ICszMjE1Niw4IEBACiAJ
CQkJMzFBMDg5NTQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTMxQTA4OTU3MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUNvbW1hbmRC
dWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5NUExRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4RjIzQUFGMUU4
RTgzQzQwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkzOEYyM0FCNDFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk1RDFFNzM4RDU5MDAz
QjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQTA4OTYwMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbFN0
YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTYzMUU3MzhENTkwMDNCNjYwOSAvKiBK
U1dlYkdQVURyYXdhYmxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzIxMTAsNiArMzIxNzQsNyBA
QAogCQkJCTMxQTA4OTdFMUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5l
Q29sb3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk4
MTFFNzM4RDVBMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5ODQxRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BV
UmVuZGVyUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzODdBRTk1QTFFOEU5
MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4
OTg3MUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFBMDg5OEExRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8qIEpT
V2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE2OSw3ICszMjIz
NCw2IEBACiAJCQkJQTQ1NkZBMjYxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFn
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5
ZXJGbHVzaFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTZEQ0IzMjFFNzhGQjcw
MDAxQjVGODcgLyogSlNSVENPZmZlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkx
N0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjM2RTczNzFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9p
bnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzQyMyw2ICszMzQ4Nyw4IEBACiAJCQkJMzFBMDg5
MDQxRTczN0Q1MTAwM0I2NjA5IC8qIFdlYkdQVUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUEwODkwNTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMUEwODkwNjFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFu
ZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OUQxRTFFMUU4RjJCOUUwMDk3OTVCOSAv
KiBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzg5
RDFFMUYxRThGMkI5RjAwOTc5NUI5IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxQTA4OTA3MUU3MzdENTEwMDNCNjYwOSAvKiBXZWJHUFVEZXB0
aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTA4MUU3MzdE
NTEwMDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMUEwODkwOTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVRHJhd2FibGUuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVD
b21tYW5kQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1h
bmRCdWZmZXIuY3BwCmluZGV4IDY4MzBlZDM1MWE0MTcwNWVlNDUyYzFmNmY5NTE2YzJhNDhjMGMy
NzYuLmE4OGVkMjhhZGRjZDdhMDg4ZjFlNmUzNmY0ODVmYjc5YjcyNDE3ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtp
a3VyYUBnbWFpbC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJHUFVDb21tYW5kUXVldWUuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZFF1ZXVlLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVRHJhd2FibGUuaCIKICNpbmNs
dWRlICJXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRl
clBhc3NEZXNjcmlwdG9yLmgiCkBAIC04MCw2ICs4MiwyMCBAQCBSZWZQdHI8V2ViR1BVUmVuZGVy
Q29tbWFuZEVuY29kZXI+IFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZVJlbmRlckNvbW1hbmRF
bmNvZAogICAgIHJldHVybiBjb21tYW5kRW5jb2RlcjsKIH0KIAorUmVmUHRyPFdlYkdQVUNvbXB1
dGVDb21tYW5kRW5jb2Rlcj4gV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyKCkKK3sKKyAgICBSZWZQdHI8V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBj
b21tYW5kRW5jb2RlciA9IFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKHRoaXMt
PmNvbnRleHQoKSwgdGhpcyk7CisgICAgcmV0dXJuIGNvbW1hbmRFbmNvZGVyOworfQorCit2b2lk
IFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNvbXBsZXRlZChSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCit7CisgICAgaWYgKCFtX2NvbW1hbmRCdWZmZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29tbWFuZEJ1ZmZlci0+Y29tcGxldGVkKFdURk1vdmUocHJvbWlzZSkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCmluZGV4IDU0NjQ2YTAxYWFlMmUzNGY1Njgx
YWQzOGI0MWMyYTExZjQ1MGUxZmUuLjkxNDIxMjE3OTY0ZWQ0MDljMjBhODYwNWQ0NTBlOTk0NmI0
M2JlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1h
bmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5k
QnVmZmVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGly
byBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjcsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdC5oIgogCiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtMzksNiArNDEsNyBAQCBjbGFzcyBXZWJHUFVEcmF3YWJsZTsKIGNs
YXNzIFdlYkdQVUZ1bmN0aW9uOwogY2xhc3MgV2ViR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI7CiBj
bGFzcyBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjsKK2NsYXNzIFdlYkdQVUNvbXB1dGVDb21t
YW5kRW5jb2RlcjsKIAogY2xhc3MgV2ViR1BVQ29tbWFuZEJ1ZmZlciA6IHB1YmxpYyBXZWJHUFVP
YmplY3QgewogcHVibGljOgpAQCAtNDksNyArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVz
ZW50RHJhd2FibGUoV2ViR1BVRHJhd2FibGUmKTsKIAogICAgIFJlZlB0cjxXZWJHUFVSZW5kZXJD
b21tYW5kRW5jb2Rlcj4gY3JlYXRlUmVuZGVyQ29tbWFuZEVuY29kZXJXaXRoRGVzY3JpcHRvcihX
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciYpOworICAgIFJlZlB0cjxXZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI+IGNyZWF0ZUNvbXB1dGVDb21tYW5kRW5jb2RlcigpOwogCisgICAgdm9pZCBj
b21wbGV0ZWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgR1BVQ29tbWFuZEJ1ZmZlciog
Y29tbWFuZEJ1ZmZlcigpIHsgcmV0dXJuIG1fY29tbWFuZEJ1ZmZlci5nZXQoKTsgfQogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVm
ZmVyLmlkbAppbmRleCA5ZGMxNzY0MWJlNGU5MDU0MjJkZjQ2NmRjYWM0Yjg4MjBhYzE0MDhlLi40
MGQ1NjI3NjRkOTBhMmJlNjhhMzhkODIxOTljNTZhNTM3NTI2ZmVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFA
Z21haWwuY29tKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICszMCwx
NCBAQAogXSBpbnRlcmZhY2UgV2ViR1BVQ29tbWFuZEJ1ZmZlciB7CiAKICAgICBXZWJHUFVSZW5k
ZXJDb21tYW5kRW5jb2RlciBjcmVhdGVSZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlwdG9y
KFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUNvbXB1
dGVDb21tYW5kRW5jb2RlciBjcmVhdGVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsKICAgICB2b2lk
IGNvbW1pdCgpOwogICAgIHZvaWQgcHJlc2VudERyYXdhYmxlKFdlYkdQVURyYXdhYmxlIGRyYXdh
YmxlKTsKIAorICAgIC8vIEZJWE1FOiBiaW5kaW5ncyBnZW5lcmF0b3IgZG9lc24ndCBzdXBwb3J0
IFByb21pc2UgYXR0cmlidXRlcy4KKyAgICAvLyBzZWUgYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsI0wzOTctMzk4CisgICAgLy8KKyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgUHJv
bWlzZTx2b2lkPiBjb21wbGV0ZWQ7CisKKyAgICBQcm9taXNlPHZvaWQ+IGNvbXBsZXRlZCgpOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZmVlMDA2MTBkOTE5YzEyYjAzMDJl
YzYyOGQwZGZlMDcwMzYxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCkBAIC0wLDAgKzEsOTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFp
bC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCIK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCisj
aW5jbHVkZSAiR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgiCisjaW5jbHVkZSAiR1BVU2l6ZS5o
IgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdQVUNvbW1hbmRCdWZm
ZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIgorI2luY2x1ZGUg
IldlYkdQVVJlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAor
aW5saW5lIEdQVVNpemUgR1BVU2l6ZU1ha2UoV2ViR1BVU2l6ZSBzaXplKQoreworICAgIHJldHVy
biB7c2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHNpemUuZGVwdGh9OworfQorCitSZWY8V2ViR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmNyZWF0
ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0LCBXZWJHUFVDb21tYW5kQnVmZmVyKiBi
dWZmZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyKGNvbnRleHQsIGJ1ZmZlcikpOworfQorICAgIAorV2ViR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoV2ViR1BVUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCwgV2ViR1BVQ29tbWFuZEJ1ZmZlciogYnVmZmVyKQorICAgIDogV2ViR1BVT2Jq
ZWN0KGNvbnRleHQpCit7CisgICAgbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgPSBidWZmZXItPmNv
bW1hbmRCdWZmZXIoKS0+Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7Cit9CisgICAgCitX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6On5XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIo
KQoreworfQorICAgIAordm9pZCBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldENvbXB1
dGVQaXBlbGluZVN0YXRlKFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlJiBwaXBlbGluZVN0YXRl
KQoreworICAgIGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29kZXIpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2NvbXB1dGVDb21tYW5kRW5jb2Rlci0+c2V0Q29tcHV0ZVBpcGVsaW5lU3RhdGUocGlw
ZWxpbmVTdGF0ZS5jb21wdXRlUGlwZWxpbmVTdGF0ZSgpKTsKK30KKyAgICAKK3ZvaWQgV2ViR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRCdWZmZXIoV2ViR1BVQnVmZmVyJiBidWZmZXIsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgaW5kZXgpCit7CisgICAgaWYgKCFtX2NvbXB1dGVDb21t
YW5kRW5jb2RlcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVy
LT5zZXRCdWZmZXIoYnVmZmVyLmJ1ZmZlcigpLCBvZmZzZXQsIGluZGV4KTsKK30KKyAgICAKK3Zv
aWQgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpkaXNwYXRjaChXZWJHUFVTaXplIHRocmVh
ZGdyb3Vwc1BlckdyaWQsIFdlYkdQVVNpemUgdGhyZWFkc1BlclRocmVhZGdyb3VwKQoreworICAg
IGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nv
bXB1dGVDb21tYW5kRW5jb2Rlci0+ZGlzcGF0Y2goR1BVU2l6ZU1ha2UodGhyZWFkZ3JvdXBzUGVy
R3JpZCksIEdQVVNpemVNYWtlKHRocmVhZHNQZXJUaHJlYWRncm91cCkpOworfQorICAgIAordm9p
ZCBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmVuZEVuY29kaW5nKCkKK3sKKyAgICBpZiAo
IW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQorICAgICAgICByZXR1cm47CisgICAgbV9jb21wdXRl
Q29tbWFuZEVuY29kZXItPmVuZEVuY29kaW5nKCk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjM3ZTI2ZWRhMGU4
MjFiZjg0YTNlZjc2NmM0MzI4ZDE1OTViMzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lr
dXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJHUFVTaXplLmgiCisKKyNpZiBFTkFCTEUo
V0VCR1BVKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyOworY2xhc3MgV2ViR1BVQnVmZmVyOworY2xhc3MgV2ViR1BVQ29tbWFuZEJ1ZmZlcjsK
K2NsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOworY2xhc3MgV2ViR1BVUmVuZGVyaW5n
Q29udGV4dDsKKworY2xhc3MgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyIDogcHVibGljIFdl
YkdQVU9iamVjdCB7CisKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXIoKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4g
Y3JlYXRlKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqLCBXZWJHUFVDb21tYW5kQnVmZmVyKik7CisK
KyAgICB2b2lkIHNldENvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlJik7CisgICAgdm9pZCBzZXRCdWZmZXIoV2ViR1BVQnVmZmVyJiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKKyAgICB2b2lkIGRpc3BhdGNoKFdlYkdQVVNpemUsIFdlYkdQVVNpemUpOworICAgIHZv
aWQgZW5kRW5jb2RpbmcoKTsKKworICAgIEdQVUNvbXB1dGVDb21tYW5kRW5jb2RlciogY29tcHV0
ZUNvbW1hbmRFbmNvZGVyKCkgeyByZXR1cm4gbV9jb21wdXRlQ29tbWFuZEVuY29kZXIuZ2V0KCk7
IH0KKworcHJpdmF0ZToKKyAgICBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoV2ViR1BVUmVu
ZGVyaW5nQ29udGV4dCosIFdlYkdQVUNvbW1hbmRCdWZmZXIqKTsKKyAgICBSZWZQdHI8R1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyPiBtX2NvbXB1dGVDb21tYW5kRW5jb2RlcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMzIwMTk4NjFmNmJhODg5OWExZjM1M2JmOWU0NGU3NWZiYWRhMWU1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNo
aXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGludGVyZmFjZSBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29k
ZXIgeworCisgICAgdm9pZCBzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZSBwaXBlbGluZVN0YXRlKTsKKyAgICB2b2lkIHNldEJ1ZmZlcihXZWJHUFVCdWZm
ZXIgYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
ICAgdm9pZCBkaXNwYXRjaChXZWJHUFVTaXplIHRocmVhZGdyb3Vwc1BlckdyaWQsIFdlYkdQVVNp
emUgdGhyZWFkc1BlclRocmVhZGdyb3VwKTsKKworICAgIHZvaWQgZW5kRW5jb2RpbmcoKTsKKwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQ
aXBlbGluZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjM2NGMyYWE3Mzc1MjUxNmUwNDAwYWVm
NDQ5Y2MwYWFkNmQ4ZGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5j
b20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIgorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgi
CisjaW5jbHVkZSAiV2ViR1BVRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJpbmdD
b250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUNvbXB1dGVQaXBl
bGluZVN0YXRlPiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y3JlYXRlKFdlYkdQVVJlbmRl
cmluZ0NvbnRleHQqIGNvbnRleHQsIFdlYkdQVUZ1bmN0aW9uKiBmdW5jdGlvbikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZShjb250ZXh0LCBm
dW5jdGlvbikpOworfQorCitXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCwgV2ViR1BVRnVu
Y3Rpb24qIGZ1bmN0aW9uKQorICAgIDogV2ViR1BVT2JqZWN0KGNvbnRleHQpCit7CisgICAgaWYg
KCFjb250ZXh0IHx8ICFmdW5jdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29tcHV0ZVBp
cGVsaW5lU3RhdGUgPSBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y3JlYXRlKGNvbnRleHQtPmRl
dmljZSgpLmdldCgpLCBmdW5jdGlvbi0+ZnVuY3Rpb24oKSk7Cit9CisKK1dlYkdQVUNvbXB1dGVQ
aXBlbGluZVN0YXRlOjp+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc1
OTZmZjMxYzg4YjBiMjFjYjk4YTZlNGI1ODEyYmY0ZTRlODZhZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1
cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU7CitjbGFzcyBXZWJH
UFVGdW5jdGlvbjsKKworY2xhc3MgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUgOiBwdWJsaWMg
V2ViR1BVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJHUFVDb21wdXRlUGlwZWxp
bmVTdGF0ZSgpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IGNy
ZWF0ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiwgV2ViR1BVRnVuY3Rpb24qKTsKKyAgICBHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZSogY29tcHV0ZVBpcGVsaW5lU3RhdGUoKSB7IHJldHVybiBtX2Nv
bXB1dGVQaXBlbGluZVN0YXRlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCosIFdlYkdQVUZ1bmN0aW9uKik7
CisgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBtX2NvbXB1dGVQaXBlbGluZVN0
YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YzBlZjUyM2ZhOTZkN2NmMTQ2MDYyMGVjYWYzNWE0ZmRkOWM1OTg0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lU3RhdGUuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJH
UFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gaW50ZXJmYWNlIFdlYkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDk2MTE4MGMzOTYwNTU4NWFkMmRi
MDAxNjAzZDMyYzNiMDczNjNlNTguLjIwYjIzMmVjMDk0OGU2M2I0ODdjY2Q1M2IwOGZmMWU3ZmJm
NWVmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRl
cmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVJl
bmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDkgKzM0LDExIEBACiAjaW5jbHVkZSAiR1BVRGV2aWNlLmgi
CiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZFF1ZXVl
LmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCIKICNpbmNsdWRlICJX
ZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVRGVwdGhTdGVu
Y2lsU3RhdGUuaCIKICNpbmNsdWRlICJXZWJHUFVEcmF3YWJsZS5oIgorI2luY2x1ZGUgIldlYkdQ
VUZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViR1BVTGlicmFyeS5oIgogI2luY2x1ZGUgIldlYkdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yLmgiCkBAIC0xNTksNiArMTYyLDEyIEBAIFJlZlB0cjxXZWJHUFVEZXB0aFN0ZW5j
aWxTdGF0ZT4gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUo
CiAgICAgcmV0dXJuIHN0YXRlOwogfQogCitSZWZQdHI8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGU+IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZVN0YXRlKFdl
YkdQVUZ1bmN0aW9uJiBmdW5jdGlvbikKK3sKKyAgICBSZWZQdHI8V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lU3RhdGU+IHN0YXRlID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OmNyZWF0ZSh0aGlz
LCAmZnVuY3Rpb24pOworICAgIHJldHVybiBzdGF0ZTsKK30KKwogUmVmUHRyPFdlYkdQVUNvbW1h
bmRRdWV1ZT4gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlQ29tbWFuZFF1ZXVlKCkKIHsK
ICAgICBSZWZQdHI8V2ViR1BVQ29tbWFuZFF1ZXVlPiBxdWV1ZSA9IFdlYkdQVUNvbW1hbmRRdWV1
ZTo6Y3JlYXRlKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR1BVUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R1BVUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGJlNjJmN2VlOTcxYmQ5OWNmYmMzNjhjOGJjNzlm
MDNmMjZjY2NkOGYuLjE5Nzc1YTRlODBlNTRlZTQ5Y2QzZGUzMzFjNmI0NDg0ZjE1NDQyOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250
ZXh0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBL
aWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsNiArMzUsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHUFVD
b21tYW5kUXVldWU7CitjbGFzcyBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTsKK2NsYXNzIFdl
YkdQVUZ1bmN0aW9uOwogY2xhc3MgV2ViR1BVTGlicmFyeTsKIGNsYXNzIFdlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvcjsKIGNsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGU7CkBAIC02
Nyw2ICs3MCw4IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZT4gY3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvciYp
OwogCisgICAgUmVmUHRyPFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBjcmVhdGVDb21wdXRl
UGlwZWxpbmVTdGF0ZShXZWJHUFVGdW5jdGlvbiYpOworCiAgICAgUmVmUHRyPFdlYkdQVUNvbW1h
bmRRdWV1ZT4gY3JlYXRlQ29tbWFuZFF1ZXVlKCk7CiAKICAgICBSZWZQdHI8V2ViR1BVRHJhd2Fi
bGU+IG5leHREcmF3YWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCA1YTgxNDM0MGI2MzEzODUxZDdiMzNi
ZGM4NzM5MmM2MDc4Yjk4OTBhLi4wYWFiMzk4ZTZiYTQyOWY5ZjA3MzVjZTg3MjQxYTgxNGU3YTRl
ZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJp
bmdDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5k
ZXJpbmdDb250ZXh0LmlkbApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC05OSw2ICsxMDAsNyBAQAogCiAgICAgV2ViR1BVUmVuZGVyUGlwZWxp
bmVTdGF0ZT8gY3JlYXRlUmVuZGVyUGlwZWxpbmVTdGF0ZShXZWJHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGU/IGNyZWF0
ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU/IGNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZVN0YXRlKFdlYkdQVUZ1bmN0aW9uIGZ1bmN0aW9uKTsKIAogICAgIFdlYkdQVUNvbW1hbmRRdWV1
ZT8gY3JlYXRlQ29tbWFuZFF1ZXVlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVVNpemUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQ
VVNpemUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQ0ZWEzNzRhMzBiYWU5NWZlMTFkMDA0MmU3NTFiYjM2NjA2
NjZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BV
U2l6ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hp
cm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorc3RydWN0IFdlYkdQVVNpemUgeworICAgIHVuc2ln
bmVkIGxvbmcgd2lkdGg7CisgICAgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CisgICAgdW5zaWduZWQg
bG9uZyBkZXB0aDsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVTaXplLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzIw
ZmQ3MjMzN2NiOTk1NjRmNDQ1NzgxNzI3MzYwZTc2MGFkODQwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5pZGwKQEAgLTAsMCArMSwzMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdt
YWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZGlj
dGlvbmFyeSBXZWJHUFVTaXplIHsKKyAgICB1bnNpZ25lZCBsb25nIHdpZHRoOworICAgIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0OworICAgIHVuc2lnbmVkIGxvbmcgZGVwdGg7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tbWFuZEJ1ZmZl
ck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29t
bWFuZEJ1ZmZlck1ldGFsLm1tCmluZGV4IGYxZWE1OTIwN2JiZDc4NzI5OGI0NWU3ODc0MTg4NzZl
OTE1Njg1OWQuLjI1MzYyMThhY2I5YzMwNzIzYzE2MTZiNmIzMWFlMTIyYzIzY2JmMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1hbmRC
dWZmZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KQEAgLTY5LDYgKzY5LDIwIEBAIHZvaWQgR1BVQ29t
bWFuZEJ1ZmZlcjo6Y29tbWl0KCkKICAgICBbbV9jb21tYW5kQnVmZmVyIGNvbW1pdF07CiB9CiAK
K3ZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tcGxldGVkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cGFzc2VkUHJvbWlzZSkKK3sKKyAgICBpZiAoIW1fY29tbWFuZEJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZShXVEZNb3ZlKHBhc3Nl
ZFByb21pc2UpKTsKKworICAgIFttX2NvbW1hbmRCdWZmZXIgYWRkQ29tcGxldGVkSGFuZGxlcjpe
KGlkPE1UTENvbW1hbmRCdWZmZXI+KSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21p
c2VdIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAg
fV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlck1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMDM0NmY2NTE4MTJm
ZDg1NDZkMzlhN2I4ZGRkOGQ1ZmU2MGU2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRh
bC5tbQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVUJ1ZmZlci5o
IgorI2ltcG9ydCAiR1BVQ29tbWFuZEJ1ZmZlci5oIgorI2ltcG9ydCAiR1BVQ29tcHV0ZVBpcGVs
aW5lU3RhdGUuaCIKKyNpbXBvcnQgIkdQVVNpemUuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKwor
I2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAoraW5s
aW5lIE1UTFNpemUgTVRMU2l6ZU1ha2UoR1BVU2l6ZSBzaXplKQoreworICAgIHJldHVybiB7c2l6
ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHNpemUuZGVwdGh9OworfQorICAgIAorR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoR1BVQ29tbWFuZEJ1ZmZlciog
YnVmZmVyKQoreworICAgIExPRyhXZWJHUFUsICJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2RlcigpIik7CisKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVmZmVy
LT5wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb21w
dXRlQ29tbWFuZEVuY29kZXIgPSAoTVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyICopW2J1ZmZlci0+
cGxhdGZvcm1Db21tYW5kQnVmZmVyKCkgY29tcHV0ZUNvbW1hbmRFbmNvZGVyXTsKK30KKyAgICAK
K3ZvaWQgR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShH
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZSogY29tcHV0ZVBpcGVsaW5lU3RhdGUpCit7CisgICAgaWYg
KCFtX2NvbXB1dGVDb21tYW5kRW5jb2RlciB8fCAhY29tcHV0ZVBpcGVsaW5lU3RhdGUpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBbbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgc2V0Q29tcHV0
ZVBpcGVsaW5lU3RhdGU6c3RhdGljX2Nhc3Q8aWQ8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+Pihj
b21wdXRlUGlwZWxpbmVTdGF0ZS0+cGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTdGF0ZSgpKV07Cit9
CisgICAgCit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0QnVmZmVyKEdQVUJ1ZmZl
ciogYnVmZmVyLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmICgh
bV9jb21wdXRlQ29tbWFuZEVuY29kZXIgfHwgIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIFttX2NvbXB1dGVDb21tYW5kRW5jb2RlciBzZXRCdWZmZXI6c3RhdGljX2Nhc3Q8aWQ8
TVRMQnVmZmVyPj4oYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZlcigpKSBvZmZzZXQ6b2Zmc2V0IGF0SW5k
ZXg6aW5kZXhdOworfQorICAgIAordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmRpc3Bh
dGNoKEdQVVNpemUgdGhyZWFkZ3JvdXBzUGVyR3JpZCwgR1BVU2l6ZSB0aHJlYWRzUGVyVGhyZWFk
Z3JvdXApCit7CisgICAgaWYgKCFtX2NvbXB1dGVDb21tYW5kRW5jb2RlcikKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIFttX2NvbXB1dGVDb21tYW5kRW5jb2RlciBkaXNwYXRjaFRocmVhZGdy
b3VwczpNVExTaXplTWFrZSh0aHJlYWRncm91cHNQZXJHcmlkKSB0aHJlYWRzUGVyVGhyZWFkZ3Jv
dXA6TVRMU2l6ZU1ha2UodGhyZWFkc1BlclRocmVhZGdyb3VwKV07Cit9CisKK3ZvaWQgR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZygpCit7CisgICAgW21fY29tcHV0ZUNvbW1h
bmRFbmNvZGVyIGVuZEVuY29kaW5nXTsKK30KKyAgICAKK01UTENvbXB1dGVDb21tYW5kRW5jb2Rl
ciAqR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpwbGF0Zm9ybUNvbXB1dGVDb21tYW5kRW5jb2Rl
cigpCit7CisgICAgcmV0dXJuIG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyLmdldCgpOworfQorICAg
IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlTWV0
YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZU1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkN2FiNjg0OWM5YTRlMWQ0NzEwMjA1
YWYzZjVhYjVlZmI3NTljYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5
Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2lt
cG9ydCAiR1BVRnVuY3Rpb24uaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8TWV0
YWwvTWV0YWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoR1BVRGV2aWNlKiBkZXZpY2UsIEdQVUZ1bmN0
aW9uKiBmdW5jdGlvbikKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKCkiKTsKKworICAgIGlmICghZGV2aWNlIHx8ICFk
ZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgfHwgIWZ1bmN0aW9uIHx8ICFmdW5jdGlvbi0+cGxhdGZv
cm1GdW5jdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbXB1dGVQaXBlbGluZVN0
YXRlID0gYWRvcHROUygoTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUgKilbZGV2aWNlLT5wbGF0Zm9y
bURldmljZSgpIG5ld0NvbXB1dGVQaXBlbGluZVN0YXRlV2l0aEZ1bmN0aW9uOihpZDxNVExGdW5j
dGlvbj4pZnVuY3Rpb24tPnBsYXRmb3JtRnVuY3Rpb24oKSBlcnJvcjpuaWxdKTsKK30KKworTVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGUgKkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpwbGF0Zm9ybUNv
bXB1dGVQaXBlbGluZVN0YXRlKCkKK3sKKyAgICByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmVTdGF0
ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVm
ZmVyLmNwcAppbmRleCBlYmQ4ZTdkZDc4NDhlMTIwNzBlZGY1ZmU4MGI3YmE1MzBhZjlhMmE3Li5k
YzI3YzBlNDdkZDcwZmRiZjViY2E4NjRiOWVjNDFkM2QzM2YzMmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lr
dXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI5LDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiR1BVQ29t
bWFuZFF1ZXVlLmgiCisjaW5jbHVkZSAiR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgiCiAjaW5j
bHVkZSAiR1BVRGV2aWNlLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIuaCIK
ICNpbmNsdWRlICJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIgpAQCAtNTIsMTAgKzU0LDE5IEBA
IFJlZlB0cjxHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcj4gR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRl
UmVuZGVyQ29tbWFuZEVuY29kZXIoR1BVCiAgICAgcmV0dXJuIEdQVVJlbmRlckNvbW1hbmRFbmNv
ZGVyOjpjcmVhdGUodGhpcywgZGVzY3JpcHRvcik7CiB9CiAKK1JlZlB0cjxHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI+IEdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZUNvbXB1dGVDb21tYW5kRW5jb2Rl
cigpCit7CisgICAgcmV0dXJuIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKHRoaXMp
OworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpwcmVz
ZW50RHJhd2FibGUoR1BVRHJhd2FibGUqKQogewogfQorCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6
OmNvbXBsZXRlZChSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKK3sKK30KICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAppbmRleCAxYWNkNzU0MzlmMmIyMmY4ZjY0
OWVhNmZlMjBlM2YwM2IwZjAyMjcxLi5iZjExYzNmZjYxOGYxNWE0NzAyNTU5OGFhMmJlZmRlYWVm
OGE3YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIAorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgorCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgpAQCAtMzgsNiArNDEsNyBAQCBPQkpDX0NMQVNTIE1UTENvbW1hbmRCdWZmZXI7CiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUNvbW1hbmRRdWV1ZTsKK2NsYXNzIEdQVUNvbXB1dGVD
b21tYW5kRW5jb2RlcjsKIGNsYXNzIEdQVURyYXdhYmxlOwogY2xhc3MgR1BVUmVuZGVyQ29tbWFu
ZEVuY29kZXI7CiBjbGFzcyBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvcjsKQEAgLTUxLDYgKzU1LDgg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlc2VudERyYXdhYmxlKEdQVURy
YXdhYmxlKik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8R1BVUmVuZGVyQ29tbWFuZEVu
Y29kZXI+IGNyZWF0ZVJlbmRlckNvbW1hbmRFbmNvZGVyKEdQVVJlbmRlclBhc3NEZXNjcmlwdG9y
Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4g
Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
b21wbGV0ZWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBXRUJDT1JFX0VYUE9SVCBNVExDb21tYW5kQnVmZmVyICpwbGF0Zm9ybUNvbW1hbmRCdWZm
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NTkx
YTYwN2E1Y2RmNGE2MDE4NWZlMjRmMTdkMTdhY2I3NzA4YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlQ29tbWFuZEVuY29k
ZXIuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hp
cm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJH
UFVCdWZmZXIuaCIKKyNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK1JlZlB0cjxHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI+IEdQVUNv
bXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKEdQVUNvbW1hbmRCdWZmZXIqIGJ1ZmZlcikKK3sK
KyAgICBSZWZQdHI8R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBlbmNvZGVyID0gYWRvcHRSZWYo
bmV3IEdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcihidWZmZXIpKTsKKyAgICByZXR1cm4gZW5jb2Rl
cjsKK30KKyAgICAKK0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6fkdQVUNvbXB1dGVDb21tYW5k
RW5jb2RlcigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
fkdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcigpIik7Cit9CisgICAgCisjaWYgIVBMQVRGT1JNKENP
Q09BKQordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldENvbXB1dGVQaXBlbGluZVN0
YXRlKEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKikKK3sKK30KKyAgICAKK3ZvaWQgR1BVQ29tcHV0
ZUNvbW1hbmRFbmNvZGVyOjpzZXRCdWZmZXIoR1BVQnVmZmVyKiwgdW5zaWduZWQsIHVuc2lnbmVk
KQoreworfQorICAgIAordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmRpc3BhdGNoKEdQ
VVNpemUgdGhyZWFkZ3JvdXBzUGVyR3JpZCwgR1BVU2l6ZSB0aHJlYWRzUGVyVGhyZWFkZ3JvdXAp
OworeworfQorCit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcoKQor
eworfQorI2VuZGlmCisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2Y2FkMzIyM2RjZTRmMzkxYTlh
OTZhMGE3ZTFmZDk2ZDczMTI2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lr
dXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVU2l6
ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorT0JK
Q19DTEFTUyBNVExDb21wdXRlQ29tbWFuZEVuY29kZXI7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorY2xhc3MgR1BVQnVmZmVyOworY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsK
K2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOworCitjbGFzcyBHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gY3Jl
YXRlKEdQVUNvbW1hbmRCdWZmZXIqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+R1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyKCk7CisgICAgICAgIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29t
cHV0ZVBpcGVsaW5lU3RhdGUoR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUqKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldEJ1ZmZlcihHUFVCdWZmZXIqLCB1bnNpZ25lZCwgdW5zaWduZWQpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2goR1BVU2l6ZSwgR1BVU2l6ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBlbmRFbmNvZGluZygpOworICAgICAgICAKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBXRUJDT1JFX0VYUE9SVCBNVExDb21wdXRlQ29tbWFuZEVuY29kZXIgKnBs
YXRmb3JtQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7CisjZW5kaWYKKyAgICAgICAgCitwcml2YXRl
OgorICAgIEdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcihHUFVDb21tYW5kQnVmZmVyKik7CisgICAg
ICAgIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJldGFpblB0cjxNVExDb21wdXRlQ29tbWFu
ZEVuY29kZXI+IG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyOworI2VuZGlmCit9OworICAgIAorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NjRlOThmYTRiZmNmMGQzZjQ5YmE0N2EyYzA4NTkyNTlmYmYwOTgwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCIKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4g
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OmNyZWF0ZShHUFVEZXZpY2UqIGRldmljZSwgR1BVRnVu
Y3Rpb24qIGZ1bmN0aW9uKQoreworICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4g
c3RhdGUgPSBhZG9wdFJlZihuZXcgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoZGV2aWNlLCBmdW5j
dGlvbikpOworICAgIHJldHVybiBzdGF0ZTsKK30KKyAgICAKK0dQVUNvbXB1dGVQaXBlbGluZVN0
YXRlOjp+R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZTo6fkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKCkiKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmUxODRjMWM4ZTJmMzAxMjZhNDhlODMzMWU3Y2YxNjBkNTk5OWUyMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBNVExD
b21wdXRlUGlwZWxpbmVTdGF0ZTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEdQVURldmljZTsKK2NsYXNzIEdQVUZ1bmN0aW9uOworCitjbGFzcyBHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4gY3Jl
YXRlKEdQVURldmljZSosIEdQVUZ1bmN0aW9uKik7CisgICAgV0VCQ09SRV9FWFBPUlQgfkdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXRUJDT1JF
X0VYUE9SVCBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSAqcGxhdGZvcm1Db21wdXRlUGlwZWxpbmVT
dGF0ZSgpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUo
R1BVRGV2aWNlKiwgR1BVRnVuY3Rpb24qKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJl
dGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZTsK
KyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2l6ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNpemUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDg5
ZjQ0M2ViNTA3MzFjOWVjMGUzZjAyYzA0MDRmOWE2OGYyOTU0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNpemUuaApAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1
cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK3N0cnVjdCBHUFVTaXplIHsKKyAgICB1bnNpZ25lZCBsb25nIHdpZHRoOworICAg
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0OworICAgIHVuc2lnbmVkIGxvbmcgZGVwdGg7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306455</attachid>
            <date>2017-04-06 19:04:08 -0700</date>
            <delta_ts>2017-04-07 01:47:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170444-20170407110407.patch</filename>
            <type>text/plain</type>
            <size>86182</size>
            <attacher name="Yuichiro Kikura">y.kikura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWY4NmQ4OTRiOWZhNzIzMTI5YWYwZTUxYTI2ZTE4ZWJlMjc4OTdkLi4wNzVkZmQ4MjUwMzJmMTcz
MGU1ODlmMzU5OWRlNjkyNzRjNmZjNTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNC0wNCAgWXVpY2hpcm8gS2lrdXJhICA8eS5raWt1cmFAZ21haWwu
Y29tPgorCisgICAgICAgIFdlYkdQVTogaW1wbGVtZW50IENvbXB1dGVDb21tYW5kRW5jb2RlciBh
bmQgcmVsYXRlZCBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJIGFkZGVkIHNvbWUgaWRlbnRpZmllcnMgcmVsYXRlZCB3aXRoIFdlYkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2RlciBiYXNlZCBvbiB0aGUgcHJvcG9zYWwuCisgICAgICAgIGh0
dHBzOi8vd2Via2l0Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvd2ViZ3B1LWFwaS1wcm9wb3NhbC5o
dG1sCisKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisKIDIwMTctMDQt
MDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBpbmNvcnJl
Y3QgY2FwYWNpdHkgZGVsdGEgY2FsY3VsYXRpb24gcmVwb3J0ZWQgaW4gU3BhcnNlQXJyYXlWYWx1
ZU1hcDo6YWRkKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjYTUwNTE2M2M1MTk4ODNjN2VmZWE3MDFkYmQz
MjVkNWU4NTMzMi4uZjBlNTAwNzAzNmQwODZkNmMyYjkxMGVmN2RlYjM5NDcwNjg1NWMxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTA0LTA2ICBZdWljaGlybyBLaWt1cmEgIDx5
Lmtpa3VyYUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR1BVOiBpbXBsZW1lbnQgQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyIGFuZCByZWxhdGVkIGNvbXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgaW1wbGVtZW50ZWQgV2ViR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyIGFuZCByZWxhdGVkIGNvbXBvbmVudHMgYmFzZWQgb24gdGhlIFdlYkdQVSBw
cm9wb3NhbC4KKyAgICAgICAgaHR0cHM6Ly93ZWJraXQub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy93
ZWJncHUtYXBpLXByb3Bvc2FsLmh0bWwKKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJn
cHUvd2ViZ3B1LWRpc3BhdGNoLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV2ViR1BVQ29tbWFuZEJ1ZmZlckN1c3RvbS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNXZWJHUFVDb21tYW5kQnVmZmVyOjpjb21wbGV0ZWQpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHUFVTaXplTWFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXI6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6On5XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRDb21w
dXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXI6OnNldEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmguCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVD
b21wdXRlQ29tbWFuZEVuY29kZXI6OmNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpXZWJH
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZTo6fldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmguCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y29tcHV0ZVBpcGVsaW5lU3RhdGUp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmlkbDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZl
ci5pZGwuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVDb21wdXRl
UGlwZWxpbmVTdGF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVVNpemUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwuCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbW1hbmRCdWZmZXI6OmNvbXBsZXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TVRMU2l6ZU1ha2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmRpc3BhdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpwbGF0Zm9ybUNvbXB1
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpwbGF0Zm9ybUNvbXB1
dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29t
bWFuZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjcmVh
dGVDb21wdXRlQ29tbWFuZEVuY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6fkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldENvbXB1dGVQaXBl
bGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
c2V0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
ZW5kRW5jb2RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6On5HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5k
QnVmZmVyLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNpemUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5p
ZGwuCisKIDIwMTctMDQtMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgV2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCAzYzAyOTNhMjM5
ZDk2M2Q2MGM0OTdhNGRiYzFlODJmNWVhNWU4Y2Y2Li4yZTNjYTg2MTIxZmU0YjZjYzY4OGMwNmE0
YzM4Y2YwYWQxNGI0MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEzMiw2ICsxMzIsOCBAQAogICAgIG1hY3JvKFdlYkdQ
VUJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYkdQVUNvbW1hbmRCdWZmZXIpIFwKICAgICBtYWNybyhX
ZWJHUFVDb21tYW5kUXVldWUpIFwKKyAgICBtYWNybyhXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29k
ZXIpIFwKKyAgICBtYWNybyhXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSkgXAogICAgIG1hY3Jv
KFdlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IpIFwKICAgICBtYWNybyhXZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZSkgXAogICAgIG1hY3JvKFdlYkdQVURyYXdhYmxlKSBcCkBAIC0xNDYsNiArMTQ4
LDcgQEAKICAgICBtYWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpIFwKICAgICBt
YWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZVN0YXRlKSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCkgXAorICAgIG1hY3JvKFdlYkdQVVNpemUpIFwKICAgICBtYWNybyhXZWJHUFVU
ZXh0dXJlKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IpIFwKICAgICBtYWNy
byhXZWJTb2NrZXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGQ0M2NmMzMzZDAyYzZlZjIy
OTllNmRmMWVjNTJjNzc4Y2Y2ZjdkNy4uN2YwMDJkNTM4MGE5NTE1ZmVkMWZmNzBhMmJiZmE2MWVj
NWFmYThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYwMSw2ICs2MDEsOCBAQCBzZXQoV2Vi
Q29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5pZGwK
ICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbAogICAgIGh0bWwvY2FudmFz
L1dlYkdQVUNvbW1hbmRRdWV1ZS5pZGwKKyAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXIuaWRsCisgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5pZGwK
ICAgICBodG1sL2NhbnZhcy9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5pZGwKICAgICBodG1sL2Nh
bnZhcy9XZWJHUFVEcmF3YWJsZS5pZGwKQEAgLTYxNSw2ICs2MTcsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmlk
bAogICAgIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCisgICAgaHRtbC9j
YW52YXMvV2ViR1BVU2l6ZS5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVUZXh0dXJlLmlkbAog
ICAgIGh0bWwvY2FudmFzL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbAogCkBAIC0xMjMxLDYg
KzEyMzQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYkdQVUNvbW1hbmRCdWZmZXJD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcApAQCAtMTgyNiw2ICsxODMwLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwv
Y2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVm
ZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAKKyAgICBodG1s
L2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCisgICAgaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVRGVw
dGhTdGVuY2lsRGVzY3JpcHRvci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEZXB0aFN0ZW5j
aWxTdGF0ZS5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5jcHAKQEAgLTIzNDEs
NiArMjM0Nyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQnVmZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVm
ZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kUXVldWUuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkYjA0ZDE0ZjY0ZDU0ZDFlNTA5OWJlNjM0ZmUyYzZiNDcyNzYwNmE3Li40ODAxYjM2
NTczOGE5YzVkYjZhYzhjOTNhOWM1ZjRiNDg3Y2Y2N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTU3Niw2ICs1NzYsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1dlYkdQVURyYXdhYmxlLmlkbCBcCkBAIC01OTAsNiArNTkyLDcgQEAgSlNf
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVy
UGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaWRsIFwKKwkkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dl
YkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMjJmYmViNjIxYzdj
YWFiNDI4NmQxMDUzZTc5ZjdkNjYxOWE1MWE0My4uZGE4NTcxNDQ0OWQyZmI5MGYwYWM2OTRjZGVh
ZmE4MjhhZjVkNTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQyOCw2ICs0Mjgs
OCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNv
bW1hbmRCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1h
bmRRdWV1ZU1ldGFsLm1tCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
RGVwdGhTdGVuY2lsRGVzY3JpcHRvck1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR1BVRGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dQVURldmljZU1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzk0ODVhMjc2YTc5ZTVmYTMyMTUzNmE1YWRkZjRk
MTVlM2ZkMTZjMC4uNzYwYzhlOGMzNTVjYjQ2MTdiZTBhOGM5YWYwM2QyYjUyYWVhNWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY1Myw2ICsxNjUzLDE5IEBACiAJCTM3RjgxOEZEMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJD
b3JlVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3RjgxOEZCMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y4MThG
RTBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1
IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLzsgfTsKIAkJMzdGRDQyOTgxMTgzNjg0NjAwOTND
MDI5IC8qIFRyZWVEZXB0aExpbWl0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQu
aCAqLzsgfTsKKwkJMzg3QUU5NUExRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODdBRTk1ODFF
OEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLzsgfTsKKwkJMzg3QUU5NUIxRThF
OTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzg3QUU5NTkxRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BV
U2l6ZS5oICovOyB9OworCQkzODg1MEM1MzFFOTY0QzExMDBDNjA3NTMgLyogSlNXZWJHUFVDb21t
YW5kQnVmZmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM4ODUwQzUyMUU5NjRDMTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZm
ZXJDdXN0b20uY3BwICovOyB9OworCQkzODkxMTc0MTFFOEY0QkYwMDA2MTAzM0UgLyogR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFOTFFOEUyMEFDMDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQyMUU4RjRCRjAwMDYxMDMzRSAv
KiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQzMUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4OTExNzQ0MUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFRDFFOEUyNDdBMDA0M0U4NTAgLyogR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovOyB9OworCQkzODlEMUUxRTFFOEYyQjlFMDA5Nzk1
QjkgLyogV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4MUUzNUU4MUU4RTFFMTYwMDQzRTg1MCAvKiBX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovOyB9OworCQkzODlEMUUxRjFFOEYyQjlG
MDA5Nzk1QjkgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RTUxRThFMUM2QTAwNDNFODUw
IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLzsgfTsKKwkJMzhGMjNBQUYxRThF
ODNDNDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4RjIzQUFFMUU4RTgzQzQw
MENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4
RjIzQUIzMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzhGMjNBQjAx
RThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggKi87IH07
CisJCTM4RjIzQUI0MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4
RjIzQUIxMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNw
cCAqLzsgfTsKKwkJMzhGMjNBQjUxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM4RjIzQUIyMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmggKi87IH07CiAJCTNBQzY0OEIyMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRh
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQzY0
OEIxMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRhcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJF
NkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTRBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkzQzI0NEZFQkEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
QzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgKi87
IH07CkBAIC05MjE1LDYgKzkyMjgsMjggQEAKIAkJMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1IC8q
IFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJv
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFpbGluZ0Zsb2F0c1Jvb3RJ
bmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGRDQyOTcxMTgzNjg0
NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4
MUUzNUUzMUU4RTFCNDUwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFNDFFOEUxQkQ0MDA0M0U4NTAgLyog
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTUx
RThFMUM2QTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTYxRThFMURCOTAwNDNF
ODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RTcxRThFMUUwQTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21t
YW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1
RTgxRThFMUUxNjAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFOTFFOEUyMEFD
MDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRh
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUExRThFMjBEOTAwNDNF
ODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFF
MzVFQzFFOEUyM0U0MDA0M0U4NTAgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUQxRThFMjQ3QTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzODFFMzVFRjFFOEUzRDdGMDA0M0U4NTAgLyogV2ViR1BVU2l6ZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVU2l6ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM4MUUzNUY1MUU4RTRDNDIwMDQzRTg1MCAvKiBXZWJHUFVTaXplLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzgxRTM1RjYxRThFNEQwRTAwNDNFODUwIC8qIEdQVVNpemUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVU2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzODdBRTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVU2l6ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4N0FFOTU5MUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQ
VVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVTaXplLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4ODUwQzUyMUU5NjRDMTEwMEM2MDc1MyAv
KiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNX
ZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcDsgcGF0aCA9IGJpbmRpbmdzL2pzL0pTV2ViR1BV
Q29tbWFuZEJ1ZmZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4
RjIzQUFFMUU4RTgzQzQwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4RjIzQUIw
MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOEYyM0FCMTFFOEU4M0QwMDBDRTQ2
RjUgLyogSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzhGMjNBQjIxRThFODNEMDAwQ0U0NkY1IC8qIEpT
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzQUM2NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCb3VuZGFyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzQzI0NEZFNEEzNzVBQzYzM0Y4OEJFNkYgLyogUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTND
MjQ0RkU1QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyNjMsNiArMTYyOTgsNyBAQAog
CQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzODg1MEM1MjFFOTY0QzExMDBDNjA3NTMgLyog
SlNXZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQzA5RDA0QjFFMzFDMzI4
MDA3MjVGMTggLyogUEFMLnhjb2RlcHJvaiAqLywKIAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0Qy
NzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNv
cmVQcmVmaXguaCAqLywKQEAgLTE3OTM4LDYgKzE3OTc0LDEyIEBACiAJCQkJMzFBMDg4Q0MxRTcz
N0I0RDAwM0I2NjA5IC8qIFdlYkdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzFBMDg4Q0Qx
RTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVUNvbW1hbmRRdWV1ZS5oICovLAogCQkJCTMxQTA4OENF
MUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVDb21tYW5kUXVldWUuaWRsICovLAorCQkJCTM4MUUz
NUU4MUU4RTFFMTYwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICov
LAorCQkJCTM4MUUzNUU3MUU4RTFFMEEwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIuaCAqLywKKwkJCQkzODFFMzVFNjFFOEUxREI5MDA0M0U4NTAgLyogV2ViR1BVQ29tcHV0
ZUNvbW1hbmRFbmNvZGVyLmlkbCAqLywKKwkJCQkzODFFMzVFNTFFOEUxQzZBMDA0M0U4NTAgLyog
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovLAorCQkJCTM4MUUzNUU0MUU4RTFCRDQw
MDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oICovLAorCQkJCTM4MUUzNUUz
MUU4RTFCNDUwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwgKi8sCiAJ
CQkJMzFBMDg4Q0YxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0
b3IuY3BwICovLAogCQkJCTMxQTA4OEQwMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzFBMDg4RDExRTczN0I0RDAwM0I2NjA5IC8qIFdl
YkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaWRsICovLApAQCAtMTc5ODUsNiArMTgwMjcsOCBA
QAogCQkJCTMxQTA4OEZCMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmNwcCAqLywKIAkJCQkzMUEwODhGQzFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVUmVuZGVy
UGlwZWxpbmVTdGF0ZS5oICovLAogCQkJCTMxQTA4OEZEMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJH
UFVSZW5kZXJQaXBlbGluZVN0YXRlLmlkbCAqLywKKwkJCQkzODFFMzVGNTFFOEU0QzQyMDA0M0U4
NTAgLyogV2ViR1BVU2l6ZS5oICovLAorCQkJCTM4MUUzNUVGMUU4RTNEN0YwMDQzRTg1MCAvKiBX
ZWJHUFVTaXplLmlkbCAqLywKIAkJCQkzMUEwODhGRTFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BV
VGV4dHVyZS5jcHAgKi8sCiAJCQkJMzFBMDg4RkYxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVVRl
eHR1cmUuaCAqLywKIAkJCQkzMUEwODkwMDFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVVGV4dHVy
ZS5pZGwgKi8sCkBAIC0xODAyMSw2ICsxODA2NSwxMCBAQAogCQkJCTMxNkJEQkM1MUU3NUVFMjQw
MERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyLmggKi8sCiAJCQkJMzE2QkRCQjkxRTczODgwNjAw
REUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzE2QkRCQkExRTczODgwNjAw
REUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5oICovLAorCQkJCTM4MUUzNUVCMUU4RTIxOTkwMDQz
RTg1MCAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovLAorCQkJCTM4MUUzNUVBMUU4
RTIwRDkwMDQzRTg1MCAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCAqLywKKwkJCQkzODFF
MzVFRDFFOEUyNDdBMDA0M0U4NTAgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovLAor
CQkJCTM4MUUzNUVDMUU4RTIzRTQwMDQzRTg1MCAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5o
ICovLAogCQkJCTMxNkJEQkY0MUU3NjJBQ0QwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNj
cmlwdG9yLmNwcCAqLywKIAkJCQkzMTZCREJGNTFFNzYyQUNEMDBERTBENUEgLyogR1BVRGVwdGhT
dGVuY2lsRGVzY3JpcHRvci5oICovLAogCQkJCTMxNkJEQkVFMUU3NjI5MUIwMERFMEQ1QSAvKiBH
UFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8sCkBAIC0xODA1MCw2ICsxODA5OCw3IEBACiAJCQkJ
MzE2QkRCRkQxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5o
ICovLAogCQkJCTMxNkJEQkZFMUU3NjJGNTcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmNwcCAqLywKIAkJCQkzMTZCREJGRjFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlw
ZWxpbmVTdGF0ZS5oICovLAorCQkJCTM4MUUzNUY2MUU4RTREMEUwMDQzRTg1MCAvKiBHUFVTaXpl
LmggKi8sCiAJCQkJMzE2QkRCQUYxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuY3BwICov
LAogCQkJCTMxNkJEQkIwMUU3MzU0QkIwMERFMEQ1QSAvKiBHUFVUZXh0dXJlLmggKi8sCiAJCQkJ
MzE2QkRCQjUxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLywK
QEAgLTIxMzY4LDYgKzIxNDE3LDEwIEBACiAJCQkJMzFBMDg5MjAxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5oICovLAogCQkJCTMxQTA4OTIxMUU3MzhENTkwMDNCNjYw
OSAvKiBKU1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzFBMDg5MjMxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmggKi8sCisJCQkJMzhGMjNBQUUxRThFODND
NDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJCQkz
OEYyM0FCMDFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIu
aCAqLywKKwkJCQkzOEYyM0FCMTFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgKi8sCisJCQkJMzhGMjNBQjIxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLywKIAkJCQkzMUEwODkyNDFFNzM4RDU5MDAzQjY2
MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkzMUEwODky
NjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmggKi8s
CiAJCQkJMzFBMDg5MjcxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRGVwdGhTdGVuY2lsU3Rh
dGUuY3BwICovLApAQCAtMjEzOTYsNiArMjE0NDksOCBAQAogCQkJCTMxQTA4OTRBMUU3MzhENTkw
MDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovLAogCQkJCTMx
QTA4OTRCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3Bw
ICovLAogCQkJCTMxQTA4OTREMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVs
aW5lU3RhdGUuaCAqLywKKwkJCQkzODdBRTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVT
aXplLmNwcCAqLywKKwkJCQkzODdBRTk1OTFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXpl
LmggKi8sCiAJCQkJMzFBMDg5NEUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZS5j
cHAgKi8sCiAJCQkJMzFBMDg5NTAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZS5o
ICovLAogCQkJCTMxQTA4OTUxMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmVEZXNj
cmlwdG9yLmNwcCAqLywKQEAgLTIzMTkzLDYgKzIzMjQ4LDggQEAKIAkJCQkzMTZCREJBNTFFNzFG
QTZGMDBERTBENUEgLyogR1BVQnVmZmVyTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCQzYxRTc1RUUz
RDAwREUwRDVBIC8qIEdQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSAqLywKIAkJCQkzMTZCREJCRDFF
NzM4ODEzMDBERTBENUEgLyogR1BVQ29tbWFuZFF1ZXVlTWV0YWwubW0gKi8sCisJCQkJMzgxRTM1
RTkxRThFMjBBQzAwNDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlck1ldGFsLm1tICov
LAorCQkJCTM4MUUzNUVFMUU4RTI0Q0IwMDQzRTg1MCAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0
ZU1ldGFsLm1tICovLAogCQkJCTMxNkJEQkY4MUU3NjJCRUYwMERFMEQ1QSAvKiBHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCRjIxRTc2MjkzNzAwREUwRDVB
IC8qIEdQVURlcHRoU3RlbmNpbFN0YXRlTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCODgxRTZFMTQx
QzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLApAQCAtMjgxMDQsNiArMjgxNjEsOCBA
QAogCQkJCTMxQTA4OTU2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFBMDg5NTkxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5NUMxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOEYyM0FCMzFFOEU4
M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTM4RjIzQUI1MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBl
bGluZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk1RjFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MUEwODk2MjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5NjUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRHJh
d2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxMTgsNiArMjgxNzcsNyBAQAogCQkJCTMxQTA4
OTgwMUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2ht
ZW50RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5ODMxRTczOEQ1QTAwM0I2
NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMUEwODk4NjFFNzM4RDVBMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzODdBRTk1QjFFOEU5MkVGMDAwMERFOTYgLyogSlNX
ZWJHUFVTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk4OTFFNzM4RDVBMDAzQjY2MDkg
LyogSlNXZWJHUFVUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk4QzFFNzM4RDVB
MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzFDMEZGM0UwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMzEwMjIsNiArMzEwODIsMTAgQEAKIAkJCQkzMTZCREJDODFFNzVG
MDhEMDBERTBENUEgLyogR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzE2QkRCQkIxRTczODgwNjAwREUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTZCREJCRTFFNzM4ODEzMDBERTBENUEgLyogR1BVQ29tbWFuZFF1ZXVl
TWV0YWwubW0gaW4gU291cmNlcyAqLywKKwkJCQkzODkxMTc0MzFFOEY0QkYwMDA2MTAzM0UgLyog
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OTExNzQx
MUU4RjRCRjAwMDYxMDMzRSAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTM4OTExNzQ0MUU4RjRCRjAwMDYxMDMzRSAvKiBHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzODkxMTc0MjFFOEY0QkYwMDA2MTAz
M0UgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTMxNkJEQkY2MUU3NjJBRDEwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkJEQkY5MUU3NjJCRjQwMERFMEQ1QSAvKiBHUFVEZXB0
aFN0ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTZCREJGMTFF
NzYyOTI1MDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0zMTA3Miw3ICszMTEzNiw2IEBACiAJCQkJRTExMkY0NzExRTNBODYxMjAwRDZDREZEIC8q
IEdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3NUJBOTkxRThBRTMzODAwNzE0NTRGIC8q
IEdyaWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAw
NkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMx
NkRDQjRCMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTJERTcxNzFFNEI3NDlDMDBGOUFDQ0YgLyogR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNF
RjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1QkUxOUIx
RDU0RjZDMTAwREQ3QzY4IC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTQ1
Myw3ICszMTUxNiw2IEBACiAJCQkJOTRFODM5NTUxREZCMkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFt
ZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzIwMjBDMEREQzhGMDAyMENG
QzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZF
Q0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMxNkRDQjRE
MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVs
ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8q
IEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTgzNCw5ICszMTg5
NiwxMiBAQAogCQkJCTA3OTY5REFGMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZTZW5kZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQjExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRD
RFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCNTE3RDE0
MTUxMDA3RkY4NDIgLyogSlNSVENJY2VDYW5kaWRhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MDc5NjlEQjcxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0QjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJ
Y2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2RENCNEQxRTc5MTBB
NjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDczNzk0RUIxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTMxNkRDQjMyMUU3OEZCNzAwMDFCNUY4NyAvKiBKU1JUQ09mZmVyT3B0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzk2OURCNzE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTVFMkM0MzcxMUJDRjBENzUwMDAxRTJCQyAvKiBKU1JUQ1J0cFJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVFMkM0MzczMUJDRjBENzUwMDAxRTJCQyAvKiBKU1JUQ1J0cFNl
bmRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RTJDNDM3MzFCQ0YwRDc1MDAwMUUyQkUgLyog
SlNSVENSdHBQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzIwOTMsNyArMzIxNTgs
MTAgQEAKIAkJCQk3N0VGNjJGMzEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTU0MUU3MzhENTkwMDNCNjYw
OSAvKiBKU1dlYkdQVUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk1NzFFNzM4
RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTM4ODUwQzUzMUU5NjRDMTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5NUExRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4RjIzQUFGMUU4RTgz
QzQwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzOEYyM0FCNDFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk1RDFFNzM4RDU5MDAzQjY2
MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxQTA4OTYwMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbFN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTYzMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVURyYXdhYmxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzIxMTAsNiArMzIxNzgsNyBAQAog
CQkJCTMxQTA4OTdFMUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk4MTFF
NzM4RDVBMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5ODQxRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVu
ZGVyUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzODdBRTk1QTFFOEU5MkVG
MDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTg3
MUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzFBMDg5OEExRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE2OSw3ICszMjIzOCw2
IEBACiAJCQkJQTQ1NkZBMjYxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJG
bHVzaFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTZEQ0IzMjFFNzhGQjcwMDAx
QjVGODcgLyogSlNSVENPZmZlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1
NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjM2RTczNzFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9pbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzQyMyw2ICszMzQ5MSw4IEBACiAJCQkJMzFBMDg5MDQx
RTczN0Q1MTAwM0I2NjA5IC8qIFdlYkdQVUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MUEwODkwNTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMUEwODkwNjFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZFF1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OUQxRTFFMUU4RjJCOUUwMDk3OTVCOSAvKiBX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzg5RDFF
MUYxRThGMkI5RjAwOTc5NUI5IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMxQTA4OTA3MUU3MzdENTEwMDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTA4MUU3MzdENTEw
MDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUEwODkwOTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVRHJhd2FibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdQVUNv
bW1hbmRCdWZmZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
UFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmFiYjIzNDg5YTI5ZmQ0N2Q4
NTBkYWM0M2ZhOTVhNmE0MDJjNGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViR1BV
Q29tbWFuZEJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUNv
bW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitKU0M6OkpTVmFsdWUgSlNXZWJHUFVDb21tYW5kQnVmZmVyOjpjb21wbGV0
ZWQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAoreworICAgIGlmICghbV9jb21wbGV0ZWQp
IHsKKyAgICAgICAgYXV0byBwcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBk
b21XaW5kb3coKSk7CisKKyAgICAgICAgaWYgKCF3cmFwcGVkKCkuY29tbWFuZEJ1ZmZlcigpKSAK
KyAgICAgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICAgICAgbV9jb21w
bGV0ZWQuc2V0KHN0YXRlLnZtKCksIHRoaXMsIHByb21pc2UtPnByb21pc2UoKSk7CisgICAgICAg
IHdyYXBwZWQoKS5jb21tYW5kQnVmZmVyKCktPmNvbXBsZXRlZChXVEZNb3ZlKHByb21pc2UpKTsK
KyAgICB9CisKKyAgICByZXR1cm4gbV9jb21wbGV0ZWQuZ2V0KCk7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIu
Y3BwCmluZGV4IDY4MzBlZDM1MWE0MTcwNWVlNDUyYzFmNmY5NTE2YzJhNDhjMGMyNzYuLjNlNjMy
MmEwYmVkNDZlNTBkYmRhMjFmNTMwNTg1YjBhNmI5YWYwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFp
bC5jb20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJHUFVDb21tYW5kUXVldWUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiV2ViR1BVQ29tbWFuZFF1ZXVlLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVRHJhd2FibGUuaCIKICNpbmNsdWRlICJXZWJH
UFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NEZXNj
cmlwdG9yLmgiCkBAIC04MCw2ICs4MiwxMiBAQCBSZWZQdHI8V2ViR1BVUmVuZGVyQ29tbWFuZEVu
Y29kZXI+IFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZVJlbmRlckNvbW1hbmRFbmNvZAogICAg
IHJldHVybiBjb21tYW5kRW5jb2RlcjsKIH0KIAorUmVmUHRyPFdlYkdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlcj4gV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVy
KCkKK3sKKyAgICBSZWZQdHI8V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjb21tYW5kRW5j
b2RlciA9IFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKHRoaXMtPmNvbnRleHQo
KSwgdGhpcyk7CisgICAgcmV0dXJuIGNvbW1hbmRFbmNvZGVyOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oCmluZGV4IDU0NjQ2YTAxYWFlMmUzNGY1NjgxYWQzOGI0MWMyYTEx
ZjQ1MGUxZmUuLmJiZDZjYTIyOTY5ZWVmMzdiZTMxNzllODU0NWNjMmU2MGQxMmY4OTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHku
a2lrdXJhQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzks
NiArNDAsNyBAQCBjbGFzcyBXZWJHUFVEcmF3YWJsZTsKIGNsYXNzIFdlYkdQVUZ1bmN0aW9uOwog
Y2xhc3MgV2ViR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI7CiBjbGFzcyBXZWJHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvcjsKK2NsYXNzIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcjsKIAogY2xhc3Mg
V2ViR1BVQ29tbWFuZEJ1ZmZlciA6IHB1YmxpYyBXZWJHUFVPYmplY3QgewogcHVibGljOgpAQCAt
NDksNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVzZW50RHJhd2FibGUoV2ViR1BVRHJh
d2FibGUmKTsKIAogICAgIFJlZlB0cjxXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcj4gY3JlYXRl
UmVuZGVyQ29tbWFuZEVuY29kZXJXaXRoRGVzY3JpcHRvcihXZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvciYpOworICAgIFJlZlB0cjxXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI+IGNyZWF0ZUNv
bXB1dGVDb21tYW5kRW5jb2RlcigpOwogCiAgICAgR1BVQ29tbWFuZEJ1ZmZlciogY29tbWFuZEJ1
ZmZlcigpIHsgcmV0dXJuIG1fY29tbWFuZEJ1ZmZlci5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsCmluZGV4IDlkYzE3
NjQxYmU0ZTkwNTQyMmRmNDY2ZGNhYzRiODgyMGFjMTQwOGUuLjZlYzMyYTYzMjBhODYyZDY2NTQx
ZmMzMDEzNmNmYTNjZWRlM2E1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDcgKzMwLDkgQEAKIF0gaW50ZXJmYWNlIFdl
YkdQVUNvbW1hbmRCdWZmZXIgewogCiAgICAgV2ViR1BVUmVuZGVyQ29tbWFuZEVuY29kZXIgY3Jl
YXRlUmVuZGVyQ29tbWFuZEVuY29kZXJXaXRoRGVzY3JpcHRvcihXZWJHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIgY3Jl
YXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7CiAgICAgdm9pZCBjb21taXQoKTsKICAgICB2b2lk
IHByZXNlbnREcmF3YWJsZShXZWJHUFVEcmF3YWJsZSBkcmF3YWJsZSk7CisgICAgW0NhY2hlZEF0
dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTx2b2lkPiBj
b21wbGV0ZWQ7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmZlZTAwNjEw
ZDkxOWMxMmIwMzAyZWM2MjhkMGRmZTA3MDM2MTNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAt
MCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAo
eS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVQ29tbWFu
ZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oIgorI2luY2x1
ZGUgIkdQVVNpemUuaCIKKyNpbmNsdWRlICJXZWJHUFVCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJH
UFVDb21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUu
aCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK2lubGluZSBHUFVTaXplIEdQVVNpemVNYWtlKFdlYkdQVVNpemUgc2l6ZSkK
K3sKKyAgICByZXR1cm4ge3NpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLmRlcHRofTsKK30K
KworUmVmPFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gV2ViR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyOjpjcmVhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCwgV2ViR1BVQ29t
bWFuZEJ1ZmZlciogYnVmZmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUNv
bXB1dGVDb21tYW5kRW5jb2Rlcihjb250ZXh0LCBidWZmZXIpKTsKK30KKyAgICAKK1dlYkdQVUNv
bXB1dGVDb21tYW5kRW5jb2Rlcjo6V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKFdlYkdQVVJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQsIFdlYkdQVUNvbW1hbmRCdWZmZXIqIGJ1ZmZlcikKKyAg
ICA6IFdlYkdQVU9iamVjdChjb250ZXh0KQoreworICAgIG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVy
ID0gYnVmZmVyLT5jb21tYW5kQnVmZmVyKCktPmNyZWF0ZUNvbXB1dGVDb21tYW5kRW5jb2Rlcigp
OworfQorICAgIAorV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjp+V2ViR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyKCkKK3sKK30KKyAgICAKK3ZvaWQgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyOjpzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSYg
cGlwZWxpbmVTdGF0ZSkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQorICAg
ICAgICByZXR1cm47CisgICAgbV9jb21wdXRlQ29tbWFuZEVuY29kZXItPnNldENvbXB1dGVQaXBl
bGluZVN0YXRlKHBpcGVsaW5lU3RhdGUuY29tcHV0ZVBpcGVsaW5lU3RhdGUoKSk7Cit9CisgICAg
Cit2b2lkIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0QnVmZmVyKFdlYkdQVUJ1ZmZl
ciYgYnVmZmVyLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmICgh
bV9jb21wdXRlQ29tbWFuZEVuY29kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbXB1dGVD
b21tYW5kRW5jb2Rlci0+c2V0QnVmZmVyKGJ1ZmZlci5idWZmZXIoKSwgb2Zmc2V0LCBpbmRleCk7
Cit9CisgICAgCit2b2lkIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZGlzcGF0Y2goV2Vi
R1BVU2l6ZSB0aHJlYWRncm91cHNQZXJHcmlkLCBXZWJHUFVTaXplIHRocmVhZHNQZXJUaHJlYWRn
cm91cCkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQorICAgICAgICByZXR1
cm47CisgICAgbV9jb21wdXRlQ29tbWFuZEVuY29kZXItPmRpc3BhdGNoKEdQVVNpemVNYWtlKHRo
cmVhZGdyb3Vwc1BlckdyaWQpLCBHUFVTaXplTWFrZSh0aHJlYWRzUGVyVGhyZWFkZ3JvdXApKTsK
K30KKyAgICAKK3ZvaWQgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjplbmRFbmNvZGluZygp
Cit7CisgICAgaWYgKCFtX2NvbXB1dGVDb21tYW5kRW5jb2RlcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyLT5lbmRFbmNvZGluZygpOworfQorICAgIAorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmYzN2UyNmVkYTBlODIxYmY4NGEzZWY3NjZjNDMyOGQxNTk1YjM5NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8g
S2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViR1BVU2l6ZS5oIgor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdC5oIgorCisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVUNv
bXB1dGVDb21tYW5kRW5jb2RlcjsKK2NsYXNzIFdlYkdQVUJ1ZmZlcjsKK2NsYXNzIFdlYkdQVUNv
bW1hbmRCdWZmZXI7CitjbGFzcyBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTsKK2NsYXNzIFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQ7CisKK2NsYXNzIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ciA6IHB1YmxpYyBXZWJHUFVPYmplY3QgeworCitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7CisgICAgc3RhdGljIFJlZjxXZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI+IGNyZWF0ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiwgV2ViR1BVQ29tbWFu
ZEJ1ZmZlciopOworCisgICAgdm9pZCBzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShXZWJHUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZSYpOworICAgIHZvaWQgc2V0QnVmZmVyKFdlYkdQVUJ1ZmZlciYsIHVu
c2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdm9pZCBkaXNwYXRjaChXZWJHUFVTaXplLCBXZWJHUFVT
aXplKTsKKyAgICB2b2lkIGVuZEVuY29kaW5nKCk7CisKKyAgICBHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIqIGNvbXB1dGVDb21tYW5kRW5jb2RlcigpIHsgcmV0dXJuIG1fY29tcHV0ZUNvbW1hbmRF
bmNvZGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqLCBXZWJHUFVDb21tYW5kQnVmZmVyKik7CisgICAg
UmVmUHRyPEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gbV9jb21wdXRlQ29tbWFuZEVuY29kZXI7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTMyMDE5ODYxZjZiYTg4OTlhMWYzNTNiZjllNDRlNzVmYmFkYTFlNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1
dGVDb21tYW5kRW5jb2Rlci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQ
VSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVQorXSBpbnRlcmZhY2UgV2ViR1BVQ29tcHV0
ZUNvbW1hbmRFbmNvZGVyIHsKKworICAgIHZvaWQgc2V0Q29tcHV0ZVBpcGVsaW5lU3RhdGUoV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUgcGlwZWxpbmVTdGF0ZSk7CisgICAgdm9pZCBzZXRCdWZm
ZXIoV2ViR1BVQnVmZmVyIGJ1ZmZlciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOworICAgIHZvaWQgZGlzcGF0Y2goV2ViR1BVU2l6ZSB0aHJlYWRncm91cHNQZXJH
cmlkLCBXZWJHUFVTaXplIHRocmVhZHNQZXJUaHJlYWRncm91cCk7CisKKyAgICB2b2lkIGVuZEVu
Y29kaW5nKCk7CisKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYzNjRjMmFhNzM3
NTI1MTZlMDQwMGFlZjQ0OWNjMGFhZDZkOGRhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5r
aWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
U3RhdGUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5oIgorI2luY2x1ZGUgIldlYkdQVUZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiV2Vi
R1BVUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxXZWJH
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OmNyZWF0
ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0LCBXZWJHUFVGdW5jdGlvbiogZnVuY3Rp
b24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUoY29udGV4dCwgZnVuY3Rpb24pKTsKK30KKworV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6
OldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQsIFdlYkdQVUZ1bmN0aW9uKiBmdW5jdGlvbikKKyAgICA6IFdlYkdQVU9iamVjdChjb250ZXh0
KQoreworICAgIGlmICghY29udGV4dCB8fCAhZnVuY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2NvbXB1dGVQaXBlbGluZVN0YXRlID0gR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OmNyZWF0
ZShjb250ZXh0LT5kZXZpY2UoKS5nZXQoKSwgZnVuY3Rpb24tPmZ1bmN0aW9uKCkpOworfQorCitX
ZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6fldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKCkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc3NTk2ZmYzMWM4OGIwYjIxY2I5OGE2ZTRiNTgxMmJmNGU0ZTg2YWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
WXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2luY2x1ZGUgIldlYkdQVU9iamVjdC5oIgorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
OworY2xhc3MgV2ViR1BVRnVuY3Rpb247CisKK2NsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlIDogcHVibGljIFdlYkdQVU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBl
bGluZVN0YXRlPiBjcmVhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCosIFdlYkdQVUZ1bmN0aW9u
Kik7CisgICAgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUqIGNvbXB1dGVQaXBlbGluZVN0YXRlKCkg
eyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmVTdGF0ZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqLCBXZWJH
UFVGdW5jdGlvbiopOworICAgIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4gbV9jb21w
dXRlUGlwZWxpbmVTdGF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMwZWY1MjNmYTk2ZDdjZjE0NjA2MjBlY2Fm
MzVhNGZkZDljNTk4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29t
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGludGVyZmFj
ZSBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA5NjExODBj
Mzk2MDU1ODVhZDJkYjAwMTYwM2QzMmMzYjA3MzYzZTU4Li4yMGIyMzJlYzA5NDhlNjNiNDg3Y2Nk
NTNiMDhmZjFlN2ZiZjVlZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw5ICszNCwxMSBAQAogI2luY2x1ZGUg
IkdQVURldmljZS5oIgogI2luY2x1ZGUgIldlYkdQVUJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdQ
VUNvbW1hbmRRdWV1ZS5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgi
CiAjaW5jbHVkZSAiV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldl
YkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViR1BVRHJhd2FibGUuaCIKKyNp
bmNsdWRlICJXZWJHUFVGdW5jdGlvbi5oIgogI2luY2x1ZGUgIldlYkdQVUxpYnJhcnkuaCIKICNp
bmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgpAQCAtMTU5LDYgKzE2MiwxMiBAQCBSZWZQdHI8V2Vi
R1BVRGVwdGhTdGVuY2lsU3RhdGU+IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZURlcHRo
U3RlbmNpbFN0YXRlKAogICAgIHJldHVybiBzdGF0ZTsKIH0KIAorUmVmUHRyPFdlYkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlPiBXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVDb21wdXRlUGlw
ZWxpbmVTdGF0ZShXZWJHUFVGdW5jdGlvbiYgZnVuY3Rpb24pCit7CisgICAgUmVmUHRyPFdlYkdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlPiBzdGF0ZSA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
OjpjcmVhdGUodGhpcywgJmZ1bmN0aW9uKTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKIFJlZlB0
cjxXZWJHUFVDb21tYW5kUXVldWU+IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUNvbW1h
bmRRdWV1ZSgpCiB7CiAgICAgUmVmUHRyPFdlYkdQVUNvbW1hbmRRdWV1ZT4gcXVldWUgPSBXZWJH
UFVDb21tYW5kUXVldWU6OmNyZWF0ZSh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBiZTYyZjdlZTk3MWJkOTlj
ZmJjMzY4YzhiYzc5ZjAzZjI2Y2NjZDhmLi4xOTc3NWE0ZTgwZTU0ZWU0OWNkM2RlMzMxYzZiNDQ4
NGYxNTQ0MjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVS
ZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BV
UmVuZGVyaW5nQ29udGV4dC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM1LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgV2ViR1BVQ29tbWFuZFF1ZXVlOworY2xhc3MgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGU7CitjbGFzcyBXZWJHUFVGdW5jdGlvbjsKIGNsYXNzIFdlYkdQVUxpYnJhcnk7CiBjbGFzcyBX
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CiBjbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGlu
ZVN0YXRlOwpAQCAtNjcsNiArNzAsOCBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8V2ViR1BVRGVw
dGhTdGVuY2lsU3RhdGU+IGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURlcHRoU3RlbmNp
bERlc2NyaXB0b3ImKTsKIAorICAgIFJlZlB0cjxXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZT4g
Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lU3RhdGUoV2ViR1BVRnVuY3Rpb24mKTsKKwogICAgIFJlZlB0
cjxXZWJHUFVDb21tYW5kUXVldWU+IGNyZWF0ZUNvbW1hbmRRdWV1ZSgpOwogCiAgICAgUmVmUHRy
PFdlYkdQVURyYXdhYmxlPiBuZXh0RHJhd2FibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwKaW5kZXggNWE4MTQzNDBi
NjMxMzg1MWQ3YjMzYmRjODczOTJjNjA3OGI5ODkwYS4uMGFhYjM5OGU2YmE0MjlmOWYwNzM1Y2U4
NzI0MWE4MTRlN2E0ZWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTksNiArMTAwLDcgQEAKIAogICAgIFdlYkdQ
VVJlbmRlclBpcGVsaW5lU3RhdGU/IGNyZWF0ZVJlbmRlclBpcGVsaW5lU3RhdGUoV2ViR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIFdlYkdQVURlcHRoU3RlbmNp
bFN0YXRlPyBjcmVhdGVEZXB0aFN0ZW5jaWxTdGF0ZShXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlw
dG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPyBjcmVhdGVD
b21wdXRlUGlwZWxpbmVTdGF0ZShXZWJHUFVGdW5jdGlvbiBmdW5jdGlvbik7CiAKICAgICBXZWJH
UFVDb21tYW5kUXVldWU/IGNyZWF0ZUNvbW1hbmRRdWV1ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVTaXplLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRkNGVhMzc0YTMwYmFlOTVmZTExZDAw
NDJlNzUxYmIzNjYwNjY2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdQVVNpemUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0cnVjdCBXZWJHUFVTaXpl
IHsKKyAgICB1bnNpZ25lZCBsb25nIHdpZHRoOworICAgIHVuc2lnbmVkIGxvbmcgaGVpZ2h0Owor
ICAgIHVuc2lnbmVkIGxvbmcgZGVwdGg7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQ
VVNpemUuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjk3ODNmYjc2MTliMjNhNzkwMGI4NDgzMWU5MzY3ZGM1ZTJlYjk5MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaWRsCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJh
ICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisgCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVU2l6ZSB7CisgICAgdW5zaWduZWQgbG9uZyB3
aWR0aDsKKyAgICB1bnNpZ25lZCBsb25nIGhlaWdodDsKKyAgICB1bnNpZ25lZCBsb25nIGRlcHRo
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQppbmRleCBmMWVhNTkyMDdiYmQ3ODcy
OThiNDVlNzg3NDE4ODc2ZTkxNTY4NTlkLi4yNTM2MjE4YWNiOWMzMDcyM2MxNjE2YjZiMzFhZTEy
MmMyM2NiZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC02OSw2ICs2OSwy
MCBAQCB2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OmNvbW1pdCgpCiAgICAgW21fY29tbWFuZEJ1ZmZl
ciBjb21taXRdOwogfQogCit2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OmNvbXBsZXRlZChSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHBhc3NlZFByb21pc2UpCit7CisgICAgaWYgKCFtX2NvbW1hbmRCdWZm
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHByb21p
c2UoV1RGTW92ZShwYXNzZWRQcm9taXNlKSk7CisKKyAgICBbbV9jb21tYW5kQnVmZmVyIGFkZENv
bXBsZXRlZEhhbmRsZXI6XihpZDxNVExDb21tYW5kQnVmZmVyPikgeworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm9taXNlXSB7CisgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7Cisg
ICAgICAgIH0pOworICAgIH1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMjAzNDZmNjUxODEyZmQ4NTQ2ZDM5YTdiOGRkZDhkNWZlNjBlNjdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0KQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1w
b3J0ICJHUFVCdWZmZXIuaCIKKyNpbXBvcnQgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbXBvcnQg
IkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgiCisjaW1wb3J0ICJHUFVTaXplLmgiCisjaW1wb3J0
ICJMb2dnaW5nLmgiCisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK2lubGluZSBNVExTaXplIE1UTFNpemVNYWtlKEdQVVNpemUgc2l6ZSkKK3sK
KyAgICByZXR1cm4ge3NpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLmRlcHRofTsKK30KKyAg
ICAKK0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKEdQ
VUNvbW1hbmRCdWZmZXIqIGJ1ZmZlcikKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoKSIpOworCisgICAgaWYgKCFi
dWZmZXIgfHwgIWJ1ZmZlci0+cGxhdGZvcm1Db21tYW5kQnVmZmVyKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyID0gKE1UTENvbXB1dGVDb21tYW5kRW5j
b2RlciAqKVtidWZmZXItPnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIGNvbXB1dGVDb21tYW5kRW5j
b2Rlcl07Cit9CisgICAgCit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0Q29tcHV0
ZVBpcGVsaW5lU3RhdGUoR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUqIGNvbXB1dGVQaXBlbGluZVN0
YXRlKQoreworICAgIGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgfHwgIWNvbXB1dGVQaXBl
bGluZVN0YXRlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW21fY29tcHV0ZUNvbW1hbmRF
bmNvZGVyIHNldENvbXB1dGVQaXBlbGluZVN0YXRlOnN0YXRpY19jYXN0PGlkPE1UTENvbXB1dGVQ
aXBlbGluZVN0YXRlPj4oY29tcHV0ZVBpcGVsaW5lU3RhdGUtPnBsYXRmb3JtQ29tcHV0ZVBpcGVs
aW5lU3RhdGUoKSldOworfQorICAgIAordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNl
dEJ1ZmZlcihHUFVCdWZmZXIqIGJ1ZmZlciwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBpbmRl
eCkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyIHx8ICFidWZmZXIpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBbbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgc2V0QnVmZmVy
OnN0YXRpY19jYXN0PGlkPE1UTEJ1ZmZlcj4+KGJ1ZmZlci0+cGxhdGZvcm1CdWZmZXIoKSkgb2Zm
c2V0Om9mZnNldCBhdEluZGV4OmluZGV4XTsKK30KKyAgICAKK3ZvaWQgR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyOjpkaXNwYXRjaChHUFVTaXplIHRocmVhZGdyb3Vwc1BlckdyaWQsIEdQVVNpemUg
dGhyZWFkc1BlclRocmVhZGdyb3VwKQoreworICAgIGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29k
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbbV9jb21wdXRlQ29tbWFuZEVuY29kZXIg
ZGlzcGF0Y2hUaHJlYWRncm91cHM6TVRMU2l6ZU1ha2UodGhyZWFkZ3JvdXBzUGVyR3JpZCkgdGhy
ZWFkc1BlclRocmVhZGdyb3VwOk1UTFNpemVNYWtlKHRocmVhZHNQZXJUaHJlYWRncm91cCldOwor
fQorCit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcoKQoreworICAg
IFttX2NvbXB1dGVDb21tYW5kRW5jb2RlciBlbmRFbmNvZGluZ107Cit9CisgICAgCitNVExDb21w
dXRlQ29tbWFuZEVuY29kZXIgKkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6cGxhdGZvcm1Db21w
dXRlQ29tbWFuZEVuY29kZXIoKQoreworICAgIHJldHVybiBtX2NvbXB1dGVDb21tYW5kRW5jb2Rl
ci5nZXQoKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDdhYjY4
NDljOWE0ZTFkNDcxMDIwNWFmM2Y1YWI1ZWZiNzU5Y2JhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGVNZXRhbC5tbQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1
aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW1wb3J0ICJH
UFVEZXZpY2UuaCIKKyNpbXBvcnQgIkdQVUZ1bmN0aW9uLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgi
CisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKEdQVURldmljZSog
ZGV2aWNlLCBHUFVGdW5jdGlvbiogZnVuY3Rpb24pCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlOjpHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSgpIik7CisKKyAgICBp
ZiAoIWRldmljZSB8fCAhZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIHx8ICFmdW5jdGlvbiB8fCAh
ZnVuY3Rpb24tPnBsYXRmb3JtRnVuY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b21wdXRlUGlwZWxpbmVTdGF0ZSA9IGFkb3B0TlMoKE1UTENvbXB1dGVQaXBlbGluZVN0YXRlICop
W2RldmljZS0+cGxhdGZvcm1EZXZpY2UoKSBuZXdDb21wdXRlUGlwZWxpbmVTdGF0ZVdpdGhGdW5j
dGlvbjooaWQ8TVRMRnVuY3Rpb24+KWZ1bmN0aW9uLT5wbGF0Zm9ybUZ1bmN0aW9uKCkgZXJyb3I6
bmlsXSk7Cit9CisKK01UTENvbXB1dGVQaXBlbGluZVN0YXRlICpHUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZTo6cGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTdGF0ZSgpCit7CisgICAgcmV0dXJuIG1fY29t
cHV0ZVBpcGVsaW5lU3RhdGUuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tbWFuZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQ29tbWFuZEJ1ZmZlci5jcHAKaW5kZXggZWJkOGU3ZGQ3ODQ4ZTEyMDcwZWRmNWZlODBi
N2JhNTMwYWY5YTJhNy4uZGMyN2MwZTQ3ZGQ3MGZkYmY1YmNhODY0YjllYzQxZDNkMzNmMzJlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1h
bmRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21tYW5kQnVmZmVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICszMCw3IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAog
I2luY2x1ZGUgIkdQVUNvbW1hbmRRdWV1ZS5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlci5oIgogI2luY2x1ZGUgIkdQVURldmljZS5oIgogI2luY2x1ZGUgIkdQVVJlbmRlckNv
bW1hbmRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIKQEAg
LTUyLDEwICs1NCwxOSBAQCBSZWZQdHI8R1BVUmVuZGVyQ29tbWFuZEVuY29kZXI+IEdQVUNvbW1h
bmRCdWZmZXI6OmNyZWF0ZVJlbmRlckNvbW1hbmRFbmNvZGVyKEdQVQogICAgIHJldHVybiBHUFVS
ZW5kZXJDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKHRoaXMsIGRlc2NyaXB0b3IpOwogfQogCitSZWZQ
dHI8R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGVDb21w
dXRlQ29tbWFuZEVuY29kZXIoKQoreworICAgIHJldHVybiBHUFVDb21wdXRlQ29tbWFuZEVuY29k
ZXI6OmNyZWF0ZSh0aGlzKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgR1BVQ29t
bWFuZEJ1ZmZlcjo6cHJlc2VudERyYXdhYmxlKEdQVURyYXdhYmxlKikKIHsKIH0KKwordm9pZCBH
UFVDb21tYW5kQnVmZmVyOjpjb21wbGV0ZWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Cit7Cit9
CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggMWFj
ZDc1NDM5ZjJiMjJmOGY2NDllYTZmZTIwZTNmMDNiMGYwMjI3MS4uYmYxMWMzZmY2MThmMTVhNDcw
MjU1OThhYTJiZWZkZWFlZjhhN2E3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5j
b20pCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI4LDggQEAKIAog
I2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKwogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTM4LDYgKzQxLDcgQEAgT0JKQ19DTEFTUyBNVExDb21tYW5k
QnVmZmVyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVDb21tYW5kUXVldWU7Citj
bGFzcyBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI7CiBjbGFzcyBHUFVEcmF3YWJsZTsKIGNsYXNz
IEdQVVJlbmRlckNvbW1hbmRFbmNvZGVyOwogY2xhc3MgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3I7
CkBAIC01MSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXNl
bnREcmF3YWJsZShHUFVEcmF3YWJsZSopOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQ
VVJlbmRlckNvbW1hbmRFbmNvZGVyPiBjcmVhdGVSZW5kZXJDb21tYW5kRW5jb2RlcihHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvciopOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbXB1dGVDb21tYW5kRW5jb2RlcigpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY29tcGxldGVkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgTVRMQ29tbWFuZEJ1ZmZlciAqcGxh
dGZvcm1Db21tYW5kQnVmZmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNiODU5MWE2MDdhNWNkZjRhNjAxODVmZTI0ZjE3ZDE3YWNiNzcwOGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSAiR1BVQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZWZQdHI8R1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyPiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmNyZWF0ZShHUFVDb21tYW5kQnVm
ZmVyKiBidWZmZXIpCit7CisgICAgUmVmUHRyPEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gZW5j
b2RlciA9IGFkb3B0UmVmKG5ldyBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoYnVmZmVyKSk7Cisg
ICAgcmV0dXJuIGVuY29kZXI7Cit9CisgICAgCitHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6On5H
UFVDb21wdXRlQ29tbWFuZEVuY29kZXIoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXI6On5HUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoKSIpOworfQorICAgIAor
I2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRD
b21wdXRlUGlwZWxpbmVTdGF0ZShHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSopCit7Cit9CisgICAg
Cit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6c2V0QnVmZmVyKEdQVUJ1ZmZlciosIHVu
c2lnbmVkLCB1bnNpZ25lZCkKK3sKK30KKyAgICAKK3ZvaWQgR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyOjpkaXNwYXRjaChHUFVTaXplIHRocmVhZGdyb3Vwc1BlckdyaWQsIEdQVVNpemUgdGhyZWFk
c1BlclRocmVhZGdyb3VwKTsKK3sKK30KKwordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6
OmVuZEVuY29kaW5nKCkKK3sKK30KKyNlbmRpZgorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmNh
ZDMyMjNkY2U0ZjM5MWE5YTk2YTBhN2UxZmQ5NmQ3MzEyNjhlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5j
b2Rlci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hp
cm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgIkdQVVNpemUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOworI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdQVUJ1ZmZlcjsKK2NsYXNzIEdQ
VUNvbW1hbmRCdWZmZXI7CitjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTsKKworY2xhc3Mg
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI+IGNyZWF0ZShHUFVDb21tYW5kQnVmZmVyKik7CisgICAgV0VCQ09SRV9FWFBP
UlQgfkdQVUNvbXB1dGVDb21tYW5kRW5jb2RlcigpOworICAgICAgICAKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvbXB1dGVQaXBlbGluZVN0YXRlKEdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRCdWZmZXIoR1BVQnVmZmVyKiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoKEdQVVNpemUs
IEdQVVNpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5kRW5jb2RpbmcoKTsKKyAgICAg
ICAgCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyICpwbGF0Zm9ybUNvbXB1dGVDb21tYW5kRW5jb2RlcigpOworI2VuZGlmCisg
ICAgICAgIAorcHJpdmF0ZToKKyAgICBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoR1BVQ29tbWFu
ZEJ1ZmZlciopOworICAgICAgICAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8
TVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBtX2NvbXB1dGVDb21tYW5kRW5jb2RlcjsKKyNlbmRp
ZgorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0ZTk4ZmE0YmZjZjBkM2Y0OWJhNDdhMmMw
ODU5MjU5ZmJmMDk4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAKQEAgLTAsMCArMSw0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdt
YWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgiCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZWZQdHI8R1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGU+IEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpjcmVhdGUoR1BVRGV2aWNl
KiBkZXZpY2UsIEdQVUZ1bmN0aW9uKiBmdW5jdGlvbikKK3sKKyAgICBSZWZQdHI8R1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGU+IHN0YXRlID0gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlKGRldmljZSwgZnVuY3Rpb24pKTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisgICAgCitHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZTo6fkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKCkKK3sKKyAgICBM
T0coV2ViR1BVLCAiR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6On5HUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZSgpIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVs
aW5lU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMTg0YzFjOGUyZjMwMTI2YTQ4ZTgzMzFl
N2NmMTYwZDU5OTllMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21h
aWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkK
K09CSkNfQ0xBU1MgTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU7CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHUFVEZXZpY2U7CitjbGFzcyBHUFVGdW5jdGlvbjsKKworY2xh
c3MgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BVQ29tcHV0ZVBp
cGVsaW5lU3RhdGU+IGNyZWF0ZShHUFVEZXZpY2UqLCBHUFVGdW5jdGlvbiopOworICAgIFdFQkNP
UkVfRVhQT1JUIH5HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSgpOworCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUgKnBsYXRmb3Jt
Q29tcHV0ZVBpcGVsaW5lU3RhdGUoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlKEdQVURldmljZSosIEdQVUZ1bmN0aW9uKik7CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IG1fY29tcHV0
ZVBpcGVsaW5lU3RhdGU7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVNpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVTaXplLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjQ4OWY0NDNlYjUwNzMxYzllYzBlM2YwMmMwNDA0ZjlhNjhmMjk1NAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVT
aXplLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGly
byBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdHJ1Y3QgR1BVU2l6ZSB7CisgICAgdW5zaWduZWQg
bG9uZyB3aWR0aDsKKyAgICB1bnNpZ25lZCBsb25nIGhlaWdodDsKKyAgICB1bnNpZ25lZCBsb25n
IGRlcHRoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWMz
NjA0Nzk2NzQwOTQzMzExMTQ0YWUwZDFmN2EyYjU4MGIxNzEyMi4uMzgzNmM0OTgzMzIxODc2Mjcw
NjkzZGI0NGNjNzExNmNjNDcxZTMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA0LTA2
ICBZdWljaGlybyBLaWt1cmEgIDx5Lmtpa3VyYUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR1BV
OiBpbXBsZW1lbnQgQ29tcHV0ZUNvbW1hbmRFbmNvZGVyIGFuZCByZWxhdGVkIGNvbXBvbmVudHMg
ICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0
NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIHRlc3QgY2FzZSB0byBlbnN1cmUgQ29tcHV0ZUNvbW1hbmRFbmNvZGVyIGlzIGRpc3BhdGNo
ZWQgc3VjY2Vzc2Z1bGx5CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJncHUvd2ViZ3B1LWRp
c3BhdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ3B1
L3dlYmdwdS1kaXNwYXRjaC5odG1sOiBBZGRlZC4KKwogMjAxNy0wNC0wMyAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1hZGRpbmcgZmxha3kgdGltZW91
dCBleHBlY3RhdGlvbiBmb3IgaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ3B1L3dlYmdwdS1kaXNwYXRjaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJncHUvd2ViZ3B1LWRpc3Bh
dGNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3
OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ3B1L3dlYmdwdS1kaXNwYXRjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ3B1L3dlYmdwdS1kaXNwYXRj
aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ3B1L3dlYmdwdS1kaXNwYXRjaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhkZDZmNTZiOWQwNzc4Y2RhM2RmZWJlMjMxYWY2NGU0MWYzN2E1NzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJncHUvd2ViZ3B1
LWRpc3BhdGNoLmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPHNjcmlwdCBpZD0ic2NyaXB0IiB0eXBl
PSJ4LXNoYWRlci94LW1ldGFsIj4KK3VzaW5nIG5hbWVzcGFjZSBtZXRhbDsKKwora2VybmVsIHZv
aWQgZ2V0X2tlcm5lbF9zaXplKGRldmljZSBpbnQgKnJlc3VsdFtbYnVmZmVyKDApXV0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMgZ3JpZF9zaXplW1t0aHJlYWRncm91cHNfcGVy
X2dyaWRdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MyBncm91cF9zaXplW1t0
aHJlYWRzX3Blcl90aHJlYWRncm91cF1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQzIGdpZFtbdGhyZWFkX3Bvc2l0aW9uX2luX2dyaWRdXSkKK3sKKyAgICBpZiAoZ2lkLnggIT0g
MCB8fCBnaWQueSAhPSAwIHx8IGdpZC56ICE9IDApIAorICAgICAgICByZXR1cm47CisKKyAgICBy
ZXN1bHRbMF0gPSBncmlkX3NpemUueDsKKyAgICByZXN1bHRbMV0gPSBncmlkX3NpemUueTsKKyAg
ICByZXN1bHRbMl0gPSBncmlkX3NpemUuejsKKyAgICByZXN1bHRbM10gPSBncm91cF9zaXplLng7
CisgICAgcmVzdWx0WzRdID0gZ3JvdXBfc2l6ZS55OworICAgIHJlc3VsdFs1XSA9IGdyb3VwX3Np
emUuejsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy50ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAo
IWEpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NlcnRpb24gRmFpbGVkLicpOworICAg
IH0KK30KKworZnVuY3Rpb24gcnVuKCkgeworICAgIGxldCBvdXRwdXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0Iik7CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICJUaGlzIHRlc3Qgb25seSBydW5zIGluc2lkZSBE
UlQvV0tUUi4iOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdl
YkdQVUVuYWJsZWQodHJ1ZSk7CisgICAgbGV0IGdwdSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImNhbnZhcyIpLmdldENvbnRleHQoIndlYmdwdSIpOworICAgIGxldCBjb21tYW5kUXVldWUgPSBn
cHUuY3JlYXRlQ29tbWFuZFF1ZXVlKCk7CisKKyAgICBsZXQgbGlicmFyeSA9IGdwdS5jcmVhdGVM
aWJyYXJ5KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHQiKS50ZXh0KTsKKyAgICBsZXQg
a2VybmVsRnVuY3Rpb24gPSBsaWJyYXJ5LmZ1bmN0aW9uV2l0aE5hbWUoImdldF9rZXJuZWxfc2l6
ZSIpOworICAgIGxldCBwaXBlbGluZVN0YXRlID0gZ3B1LmNyZWF0ZUNvbXB1dGVQaXBlbGluZVN0
YXRlKGtlcm5lbEZ1bmN0aW9uKTsKKworICAgIGxldCByZXN1bHRCdWZmZXIgPSBncHUuY3JlYXRl
QnVmZmVyKG5ldyBJbnQzMkFycmF5KDYpKTsKKyAgICAKKyAgICBsZXQgY29tbWFuZEJ1ZmZlciA9
IGNvbW1hbmRRdWV1ZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7CisgICAgbGV0IGNvbW1hbmRFbmNv
ZGVyID0gY29tbWFuZEJ1ZmZlci5jcmVhdGVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsKKworICAg
IGxldCBncmlkU2l6ZSA9IHsKKyAgICAgICAgd2lkdGg6IDcsCisgICAgICAgIGhlaWdodDogNiwK
KyAgICAgICAgZGVwdGg6IDUKKyAgICB9OworICAgIGxldCBncm91cFNpemUgPSB7CisgICAgICAg
IHdpZHRoOiA0LAorICAgICAgICBoZWlnaHQ6IDMsCisgICAgICAgIGRlcHRoOiAyCisgICAgfTsK
KyAgICAKKyAgICBjb21tYW5kRW5jb2Rlci5zZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShwaXBlbGlu
ZVN0YXRlKTsKKyAgICBjb21tYW5kRW5jb2Rlci5zZXRCdWZmZXIocmVzdWx0QnVmZmVyLCAwLCAw
KTsKKyAgICBjb21tYW5kRW5jb2Rlci5kaXNwYXRjaChncmlkU2l6ZSwgZ3JvdXBTaXplKTsKKyAg
ICBjb21tYW5kRW5jb2Rlci5lbmRFbmNvZGluZygpOworCisgICAgY29tbWFuZEJ1ZmZlci5jb21w
bGV0ZWQudGhlbigoKSA9PiB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgSW50MzJBcnJheShy
ZXN1bHRCdWZmZXIuY29udGVudHMpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhc3Nl
cnQocmVzdWx0WzBdID09PSBncmlkU2l6ZS53aWR0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVz
dWx0WzFdID09PSBncmlkU2l6ZS5oZWlnaHQpOworICAgICAgICAgICAgYXNzZXJ0KHJlc3VsdFsy
XSA9PT0gZ3JpZFNpemUuZGVwdGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlc3VsdFszXSA9PT0g
Z3JvdXBTaXplLndpZHRoKTsKKyAgICAgICAgICAgIGFzc2VydChyZXN1bHRbNF0gPT09IGdyb3Vw
U2l6ZS5oZWlnaHQpOworICAgICAgICAgICAgYXNzZXJ0KHJlc3VsdFs1XSA9PT0gZ3JvdXBTaXpl
LmRlcHRoKTsKKworICAgICAgICB9IGNhdGNoKGVycikgeworICAgICAgICAgICAgb3V0cHV0LnRl
eHRDb250ZW50ID0gYEZBSUw6ICR7ZXJyLm1lc3NhZ2V9YDsKKyAgICAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICdQQVNTJzsKKyAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfSk7CisKKyAgICBj
b21tYW5kQnVmZmVyLmNvbW1pdCgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHJ1biwgZmFsc2UpOworCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306477</attachid>
            <date>2017-04-07 01:48:01 -0700</date>
            <delta_ts>2017-04-07 17:21:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170444-20170407174759.patch</filename>
            <type>text/plain</type>
            <size>86089</size>
            <attacher name="Yuichiro Kikura">y.kikura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWY4NmQ4OTRiOWZhNzIzMTI5YWYwZTUxYTI2ZTE4ZWJlMjc4OTdkLi4wNzVkZmQ4MjUwMzJmMTcz
MGU1ODlmMzU5OWRlNjkyNzRjNmZjNTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNC0wNCAgWXVpY2hpcm8gS2lrdXJhICA8eS5raWt1cmFAZ21haWwu
Y29tPgorCisgICAgICAgIFdlYkdQVTogaW1wbGVtZW50IENvbXB1dGVDb21tYW5kRW5jb2RlciBh
bmQgcmVsYXRlZCBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJIGFkZGVkIHNvbWUgaWRlbnRpZmllcnMgcmVsYXRlZCB3aXRoIFdlYkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2RlciBiYXNlZCBvbiB0aGUgcHJvcG9zYWwuCisgICAgICAgIGh0
dHBzOi8vd2Via2l0Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvd2ViZ3B1LWFwaS1wcm9wb3NhbC5o
dG1sCisKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisKIDIwMTctMDQt
MDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBpbmNvcnJl
Y3QgY2FwYWNpdHkgZGVsdGEgY2FsY3VsYXRpb24gcmVwb3J0ZWQgaW4gU3BhcnNlQXJyYXlWYWx1
ZU1hcDo6YWRkKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjYTUwNTE2M2M1MTk4ODNjN2VmZWE3MDFkYmQz
MjVkNWU4NTMzMi4uZjBlNTAwNzAzNmQwODZkNmMyYjkxMGVmN2RlYjM5NDcwNjg1NWMxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTA0LTA2ICBZdWljaGlybyBLaWt1cmEgIDx5
Lmtpa3VyYUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR1BVOiBpbXBsZW1lbnQgQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyIGFuZCByZWxhdGVkIGNvbXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgaW1wbGVtZW50ZWQgV2ViR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyIGFuZCByZWxhdGVkIGNvbXBvbmVudHMgYmFzZWQgb24gdGhlIFdlYkdQVSBw
cm9wb3NhbC4KKyAgICAgICAgaHR0cHM6Ly93ZWJraXQub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy93
ZWJncHUtYXBpLXByb3Bvc2FsLmh0bWwKKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJn
cHUvd2ViZ3B1LWRpc3BhdGNoLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV2ViR1BVQ29tbWFuZEJ1ZmZlckN1c3RvbS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNXZWJHUFVDb21tYW5kQnVmZmVyOjpjb21wbGV0ZWQpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHUFVTaXplTWFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXI6OldlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6On5XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRDb21w
dXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXI6OnNldEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmguCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVD
b21wdXRlQ29tbWFuZEVuY29kZXI6OmNvbXB1dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpXZWJH
UFVDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZTo6fldlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmguCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y29tcHV0ZVBpcGVsaW5lU3RhdGUp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmlkbDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZl
ci5pZGwuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVDb21wdXRl
UGlwZWxpbmVTdGF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdQVVNpemUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwuCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbW1hbmRCdWZmZXI6OmNvbXBsZXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TVRMU2l6ZU1ha2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmRpc3BhdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6ZW5kRW5jb2RpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpwbGF0Zm9ybUNvbXB1
dGVDb21tYW5kRW5jb2Rlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpwbGF0Zm9ybUNvbXB1
dGVQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29t
bWFuZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjcmVh
dGVDb21wdXRlQ29tbWFuZEVuY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVDb21tYW5kQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6fkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldENvbXB1dGVQaXBl
bGluZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
c2V0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6
ZW5kRW5jb2RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbC4KKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6On5HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5k
QnVmZmVyLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNpemUuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5p
ZGwuCisKIDIwMTctMDQtMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgV2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCAzYzAyOTNhMjM5
ZDk2M2Q2MGM0OTdhNGRiYzFlODJmNWVhNWU4Y2Y2Li4yZTNjYTg2MTIxZmU0YjZjYzY4OGMwNmE0
YzM4Y2YwYWQxNGI0MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEzMiw2ICsxMzIsOCBAQAogICAgIG1hY3JvKFdlYkdQ
VUJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYkdQVUNvbW1hbmRCdWZmZXIpIFwKICAgICBtYWNybyhX
ZWJHUFVDb21tYW5kUXVldWUpIFwKKyAgICBtYWNybyhXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29k
ZXIpIFwKKyAgICBtYWNybyhXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSkgXAogICAgIG1hY3Jv
KFdlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IpIFwKICAgICBtYWNybyhXZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZSkgXAogICAgIG1hY3JvKFdlYkdQVURyYXdhYmxlKSBcCkBAIC0xNDYsNiArMTQ4
LDcgQEAKICAgICBtYWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpIFwKICAgICBt
YWNybyhXZWJHUFVSZW5kZXJQaXBlbGluZVN0YXRlKSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVy
aW5nQ29udGV4dCkgXAorICAgIG1hY3JvKFdlYkdQVVNpemUpIFwKICAgICBtYWNybyhXZWJHUFVU
ZXh0dXJlKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IpIFwKICAgICBtYWNy
byhXZWJTb2NrZXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGQ0M2NmMzMzZDAyYzZlZjIy
OTllNmRmMWVjNTJjNzc4Y2Y2ZjdkNy4uN2YwMDJkNTM4MGE5NTE1ZmVkMWZmNzBhMmJiZmE2MWVj
NWFmYThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYwMSw2ICs2MDEsOCBAQCBzZXQoV2Vi
Q29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL1dlYkdQVUJ1ZmZlci5pZGwK
ICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbAogICAgIGh0bWwvY2FudmFz
L1dlYkdQVUNvbW1hbmRRdWV1ZS5pZGwKKyAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXIuaWRsCisgICAgaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5pZGwK
ICAgICBodG1sL2NhbnZhcy9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5pZGwKICAgICBodG1sL2Nh
bnZhcy9XZWJHUFVEcmF3YWJsZS5pZGwKQEAgLTYxNSw2ICs2MTcsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJQaXBlbGluZVN0YXRlLmlk
bAogICAgIGh0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCisgICAgaHRtbC9j
YW52YXMvV2ViR1BVU2l6ZS5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHUFVUZXh0dXJlLmlkbAog
ICAgIGh0bWwvY2FudmFzL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbAogCkBAIC0xMjMxLDYg
KzEyMzQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYkdQVUNvbW1hbmRCdWZmZXJD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJQYXNzQXR0YWNobWVudERl
c2NyaXB0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcApAQCAtMTgyNiw2ICsxODMwLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwv
Y2FudmFzL1dlYkdQVUJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVDb21tYW5kQnVm
ZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAKKyAgICBodG1s
L2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCisgICAgaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR1BVRGVw
dGhTdGVuY2lsRGVzY3JpcHRvci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEZXB0aFN0ZW5j
aWxTdGF0ZS5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHUFVEcmF3YWJsZS5jcHAKQEAgLTIzNDEs
NiArMjM0Nyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQnVmZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVm
ZmVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kUXVldWUuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURlcHRoU3RlbmNpbFN0YXRlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkYjA0ZDE0ZjY0ZDU0ZDFlNTA5OWJlNjM0ZmUyYzZiNDcyNzYwNmE3Li40ODAxYjM2
NTczOGE5YzVkYjZhYzhjOTNhOWM1ZjRiNDg3Y2Y2N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTU3Niw2ICs1NzYsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHUFVCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdQVUNvbW1hbmRRdWV1ZS5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9XZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1dlYkdQVURyYXdhYmxlLmlkbCBcCkBAIC01OTAsNiArNTkyLDcgQEAgSlNf
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVy
UGlwZWxpbmVDb2xvckF0dGFjaG1lbnREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuaWRsIFwKKwkkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dl
YkdQVVRleHR1cmVEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMjJmYmViNjIxYzdj
YWFiNDI4NmQxMDUzZTc5ZjdkNjYxOWE1MWE0My4uZGE4NTcxNDQ0OWQyZmI5MGYwYWM2OTRjZGVh
ZmE4MjhhZjVkNTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQyOCw2ICs0Mjgs
OCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNv
bW1hbmRCdWZmZXJNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbW1h
bmRRdWV1ZU1ldGFsLm1tCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21w
dXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
RGVwdGhTdGVuY2lsRGVzY3JpcHRvck1ldGFsLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR1BVRGVwdGhTdGVuY2lsU3RhdGVNZXRhbC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dQVURldmljZU1ldGFsLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzk0ODVhMjc2YTc5ZTVmYTMyMTUzNmE1YWRkZjRk
MTVlM2ZkMTZjMC4uNzYwYzhlOGMzNTVjYjQ2MTdiZTBhOGM5YWYwM2QyYjUyYWVhNWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY1Myw2ICsxNjUzLDE5IEBACiAJCTM3RjgxOEZEMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJD
b3JlVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3RjgxOEZCMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y4MThG
RTBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1
IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLzsgfTsKIAkJMzdGRDQyOTgxMTgzNjg0NjAwOTND
MDI5IC8qIFRyZWVEZXB0aExpbWl0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQu
aCAqLzsgfTsKKwkJMzg3QUU5NUExRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODdBRTk1ODFF
OEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLzsgfTsKKwkJMzg3QUU5NUIxRThF
OTJFRjAwMDBERTk2IC8qIEpTV2ViR1BVU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzg3QUU5NTkxRThFOTJFRjAwMDBERTk2IC8qIEpTV2ViR1BV
U2l6ZS5oICovOyB9OworCQkzODg1MEM1MzFFOTY0QzExMDBDNjA3NTMgLyogSlNXZWJHUFVDb21t
YW5kQnVmZmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM4ODUwQzUyMUU5NjRDMTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZm
ZXJDdXN0b20uY3BwICovOyB9OworCQkzODkxMTc0MTFFOEY0QkYwMDA2MTAzM0UgLyogR1BVQ29t
cHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFOTFFOEUyMEFDMDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQyMUU4RjRCRjAwMDYxMDMzRSAv
KiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlTWV0YWwubW0gKi87IH07CisJCTM4OTExNzQzMUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4OTExNzQ0MUU4RjRCRjAwMDYx
MDMzRSAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzODFFMzVFRDFFOEUyNDdBMDA0M0U4NTAgLyogR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovOyB9OworCQkzODlEMUUxRTFFOEYyQjlFMDA5Nzk1
QjkgLyogV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4MUUzNUU4MUU4RTFFMTYwMDQzRTg1MCAvKiBX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovOyB9OworCQkzODlEMUUxRjFFOEYyQjlG
MDA5Nzk1QjkgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzgxRTM1RTUxRThFMUM2QTAwNDNFODUw
IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLzsgfTsKKwkJMzhGMjNBQUYxRThF
ODNDNDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4RjIzQUFFMUU4RTgzQzQw
MENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi87IH07CisJCTM4
RjIzQUIzMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzhGMjNBQjAx
RThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggKi87IH07
CisJCTM4RjIzQUI0MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM4
RjIzQUIxMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNw
cCAqLzsgfTsKKwkJMzhGMjNBQjUxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM4RjIzQUIyMUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlLmggKi87IH07CiAJCTNBQzY0OEIyMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRh
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNBQzY0
OEIxMTI5RTE0NjUwMEMzRUIyNSAvKiBFZGl0aW5nQm91bmRhcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJF
NkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTRBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkzQzI0NEZFQkEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
QzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgKi87
IH07CkBAIC05MjE1LDYgKzkyMjgsMjggQEAKIAkJMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1IC8q
IFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJv
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFpbGluZ0Zsb2F0c1Jvb3RJ
bmxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGRDQyOTcxMTgzNjg0
NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRyZWVEZXB0aExpbWl0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4
MUUzNUUzMUU4RTFCNDUwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFNDFFOEUxQkQ0MDA0M0U4NTAgLyog
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTUx
RThFMUM2QTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RTYxRThFMURCOTAwNDNF
ODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RTcxRThFMUUwQTAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21t
YW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1
RTgxRThFMUUxNjAwNDNFODUwIC8qIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFFMzVFOTFFOEUyMEFD
MDA0M0U4NTAgLyogR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyTWV0YWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRh
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUExRThFMjBEOTAwNDNF
ODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzgxRTM1RUIxRThFMjE5OTAwNDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5k
RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzODFF
MzVFQzFFOEUyM0U0MDA0M0U4NTAgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzgxRTM1RUQxRThFMjQ3QTAwNDNFODUwIC8qIEdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzgxRTM1RUUxRThFMjRDQjAwNDNFODUwIC8qIEdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVD
b21wdXRlUGlwZWxpbmVTdGF0ZU1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzODFFMzVFRjFFOEUzRDdGMDA0M0U4NTAgLyogV2ViR1BVU2l6ZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVU2l6ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM4MUUzNUY1MUU4RTRDNDIwMDQzRTg1MCAvKiBXZWJHUFVTaXplLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzgxRTM1RjYxRThFNEQwRTAwNDNFODUwIC8qIEdQVVNpemUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVU2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzODdBRTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR1BVU2l6ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4N0FFOTU5MUU4RTkyRUYwMDAwREU5NiAvKiBKU1dlYkdQ
VVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHUFVTaXplLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4ODUwQzUyMUU5NjRDMTEwMEM2MDc1MyAv
KiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNX
ZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcDsgcGF0aCA9IGJpbmRpbmdzL2pzL0pTV2ViR1BV
Q29tbWFuZEJ1ZmZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4
RjIzQUFFMUU4RTgzQzQwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM4RjIzQUIw
MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOEYyM0FCMTFFOEU4M0QwMDBDRTQ2
RjUgLyogSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzhGMjNBQjIxRThFODNEMDAwQ0U0NkY1IC8qIEpT
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzQUM2NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCb3VuZGFyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzQzI0NEZFNEEzNzVBQzYzM0Y4OEJFNkYgLyogUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTND
MjQ0RkU1QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyNjMsNiArMTYyOTgsNyBAQAog
CQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzODg1MEM1MjFFOTY0QzExMDBDNjA3NTMgLyog
SlNXZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQzA5RDA0QjFFMzFDMzI4
MDA3MjVGMTggLyogUEFMLnhjb2RlcHJvaiAqLywKIAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0Qy
NzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNv
cmVQcmVmaXguaCAqLywKQEAgLTE3OTM4LDYgKzE3OTc0LDEyIEBACiAJCQkJMzFBMDg4Q0MxRTcz
N0I0RDAwM0I2NjA5IC8qIFdlYkdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzFBMDg4Q0Qx
RTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVUNvbW1hbmRRdWV1ZS5oICovLAogCQkJCTMxQTA4OENF
MUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVDb21tYW5kUXVldWUuaWRsICovLAorCQkJCTM4MUUz
NUU4MUU4RTFFMTYwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICov
LAorCQkJCTM4MUUzNUU3MUU4RTFFMEEwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXIuaCAqLywKKwkJCQkzODFFMzVFNjFFOEUxREI5MDA0M0U4NTAgLyogV2ViR1BVQ29tcHV0
ZUNvbW1hbmRFbmNvZGVyLmlkbCAqLywKKwkJCQkzODFFMzVFNTFFOEUxQzZBMDA0M0U4NTAgLyog
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovLAorCQkJCTM4MUUzNUU0MUU4RTFCRDQw
MDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oICovLAorCQkJCTM4MUUzNUUz
MUU4RTFCNDUwMDQzRTg1MCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5pZGwgKi8sCiAJ
CQkJMzFBMDg4Q0YxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVURlcHRoU3RlbmNpbERlc2NyaXB0
b3IuY3BwICovLAogCQkJCTMxQTA4OEQwMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzFBMDg4RDExRTczN0I0RDAwM0I2NjA5IC8qIFdl
YkdQVURlcHRoU3RlbmNpbERlc2NyaXB0b3IuaWRsICovLApAQCAtMTc5ODUsNiArMTgwMjcsOCBA
QAogCQkJCTMxQTA4OEZCMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmNwcCAqLywKIAkJCQkzMUEwODhGQzFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVUmVuZGVy
UGlwZWxpbmVTdGF0ZS5oICovLAogCQkJCTMxQTA4OEZEMUU3MzdCNEQwMDNCNjYwOSAvKiBXZWJH
UFVSZW5kZXJQaXBlbGluZVN0YXRlLmlkbCAqLywKKwkJCQkzODFFMzVGNTFFOEU0QzQyMDA0M0U4
NTAgLyogV2ViR1BVU2l6ZS5oICovLAorCQkJCTM4MUUzNUVGMUU4RTNEN0YwMDQzRTg1MCAvKiBX
ZWJHUFVTaXplLmlkbCAqLywKIAkJCQkzMUEwODhGRTFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BV
VGV4dHVyZS5jcHAgKi8sCiAJCQkJMzFBMDg4RkYxRTczN0I0RDAwM0I2NjA5IC8qIFdlYkdQVVRl
eHR1cmUuaCAqLywKIAkJCQkzMUEwODkwMDFFNzM3QjREMDAzQjY2MDkgLyogV2ViR1BVVGV4dHVy
ZS5pZGwgKi8sCkBAIC0xODAyMSw2ICsxODA2NSwxMCBAQAogCQkJCTMxNkJEQkM1MUU3NUVFMjQw
MERFMEQ1QSAvKiBHUFVDb21tYW5kQnVmZmVyLmggKi8sCiAJCQkJMzE2QkRCQjkxRTczODgwNjAw
REUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzE2QkRCQkExRTczODgwNjAw
REUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5oICovLAorCQkJCTM4MUUzNUVCMUU4RTIxOTkwMDQz
RTg1MCAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwICovLAorCQkJCTM4MUUzNUVBMUU4
RTIwRDkwMDQzRTg1MCAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCAqLywKKwkJCQkzODFF
MzVFRDFFOEUyNDdBMDA0M0U4NTAgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwICovLAor
CQkJCTM4MUUzNUVDMUU4RTIzRTQwMDQzRTg1MCAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5o
ICovLAogCQkJCTMxNkJEQkY0MUU3NjJBQ0QwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNj
cmlwdG9yLmNwcCAqLywKIAkJCQkzMTZCREJGNTFFNzYyQUNEMDBERTBENUEgLyogR1BVRGVwdGhT
dGVuY2lsRGVzY3JpcHRvci5oICovLAogCQkJCTMxNkJEQkVFMUU3NjI5MUIwMERFMEQ1QSAvKiBH
UFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8sCkBAIC0xODA1MCw2ICsxODA5OCw3IEBACiAJCQkJ
MzE2QkRCRkQxRTc2MkY1NzAwREUwRDVBIC8qIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5o
ICovLAogCQkJCTMxNkJEQkZFMUU3NjJGNTcwMERFMEQ1QSAvKiBHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmNwcCAqLywKIAkJCQkzMTZCREJGRjFFNzYyRjU3MDBERTBENUEgLyogR1BVUmVuZGVyUGlw
ZWxpbmVTdGF0ZS5oICovLAorCQkJCTM4MUUzNUY2MUU4RTREMEUwMDQzRTg1MCAvKiBHUFVTaXpl
LmggKi8sCiAJCQkJMzE2QkRCQUYxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuY3BwICov
LAogCQkJCTMxNkJEQkIwMUU3MzU0QkIwMERFMEQ1QSAvKiBHUFVUZXh0dXJlLmggKi8sCiAJCQkJ
MzE2QkRCQjUxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLywK
QEAgLTIxMzY4LDYgKzIxNDE3LDEwIEBACiAJCQkJMzFBMDg5MjAxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQ29tbWFuZEJ1ZmZlci5oICovLAogCQkJCTMxQTA4OTIxMUU3MzhENTkwMDNCNjYw
OSAvKiBKU1dlYkdQVUNvbW1hbmRRdWV1ZS5jcHAgKi8sCiAJCQkJMzFBMDg5MjMxRTczOEQ1OTAw
M0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmggKi8sCisJCQkJMzhGMjNBQUUxRThFODND
NDAwQ0U0NkY1IC8qIEpTV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCAqLywKKwkJCQkz
OEYyM0FCMDFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIu
aCAqLywKKwkJCQkzOEYyM0FCMTFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgKi8sCisJCQkJMzhGMjNBQjIxRThFODNEMDAwQ0U0NkY1IC8qIEpTV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaCAqLywKIAkJCQkzMUEwODkyNDFFNzM4RDU5MDAzQjY2
MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkzMUEwODky
NjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmggKi8s
CiAJCQkJMzFBMDg5MjcxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRGVwdGhTdGVuY2lsU3Rh
dGUuY3BwICovLApAQCAtMjEzOTYsNiArMjE0NDksOCBAQAogCQkJCTMxQTA4OTRBMUU3MzhENTkw
MDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovLAogCQkJCTMx
QTA4OTRCMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lU3RhdGUuY3Bw
ICovLAogCQkJCTMxQTA4OTREMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVs
aW5lU3RhdGUuaCAqLywKKwkJCQkzODdBRTk1ODFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVT
aXplLmNwcCAqLywKKwkJCQkzODdBRTk1OTFFOEU5MkVGMDAwMERFOTYgLyogSlNXZWJHUFVTaXpl
LmggKi8sCiAJCQkJMzFBMDg5NEUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZS5j
cHAgKi8sCiAJCQkJMzFBMDg5NTAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZS5o
ICovLAogCQkJCTMxQTA4OTUxMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmVEZXNj
cmlwdG9yLmNwcCAqLywKQEAgLTIzMTkzLDYgKzIzMjQ4LDggQEAKIAkJCQkzMTZCREJBNTFFNzFG
QTZGMDBERTBENUEgLyogR1BVQnVmZmVyTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCQzYxRTc1RUUz
RDAwREUwRDVBIC8qIEdQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSAqLywKIAkJCQkzMTZCREJCRDFF
NzM4ODEzMDBERTBENUEgLyogR1BVQ29tbWFuZFF1ZXVlTWV0YWwubW0gKi8sCisJCQkJMzgxRTM1
RTkxRThFMjBBQzAwNDNFODUwIC8qIEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlck1ldGFsLm1tICov
LAorCQkJCTM4MUUzNUVFMUU4RTI0Q0IwMDQzRTg1MCAvKiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0
ZU1ldGFsLm1tICovLAogCQkJCTMxNkJEQkY4MUU3NjJCRUYwMERFMEQ1QSAvKiBHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCRjIxRTc2MjkzNzAwREUwRDVB
IC8qIEdQVURlcHRoU3RlbmNpbFN0YXRlTWV0YWwubW0gKi8sCiAJCQkJMzE2QkRCODgxRTZFMTQx
QzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLApAQCAtMjgxMDQsNiArMjgxNjEsOCBA
QAogCQkJCTMxQTA4OTU2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFBMDg5NTkxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5NUMxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQ29tbWFuZFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOEYyM0FCMzFFOEU4
M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTM4RjIzQUI1MUU4RTgzRDAwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVQaXBl
bGluZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk1RjFFNzM4RDU5MDAzQjY2MDkg
LyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MUEwODk2MjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5NjUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVRHJh
d2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxMTgsNiArMjgxNzcsNyBAQAogCQkJCTMxQTA4
OTgwMUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lQ29sb3JBdHRhY2ht
ZW50RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMDg5ODMxRTczOEQ1QTAwM0I2
NjA5IC8qIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMUEwODk4NjFFNzM4RDVBMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZVN0
YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzODdBRTk1QjFFOEU5MkVGMDAwMERFOTYgLyogSlNX
ZWJHUFVTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk4OTFFNzM4RDVBMDAzQjY2MDkg
LyogSlNXZWJHUFVUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEwODk4QzFFNzM4RDVB
MDAzQjY2MDkgLyogSlNXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzFDMEZGM0UwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMzEwMjIsNiArMzEwODIsMTAgQEAKIAkJCQkzMTZCREJDODFFNzVG
MDhEMDBERTBENUEgLyogR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzE2QkRCQkIxRTczODgwNjAwREUwRDVBIC8qIEdQVUNvbW1hbmRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTZCREJCRTFFNzM4ODEzMDBERTBENUEgLyogR1BVQ29tbWFuZFF1ZXVl
TWV0YWwubW0gaW4gU291cmNlcyAqLywKKwkJCQkzODkxMTc0MzFFOEY0QkYwMDA2MTAzM0UgLyog
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OTExNzQx
MUU4RjRCRjAwMDYxMDMzRSAvKiBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTM4OTExNzQ0MUU4RjRCRjAwMDYxMDMzRSAvKiBHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzODkxMTc0MjFFOEY0QkYwMDA2MTAz
M0UgLyogR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTMxNkJEQkY2MUU3NjJBRDEwMERFMEQ1QSAvKiBHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkJEQkY5MUU3NjJCRjQwMERFMEQ1QSAvKiBHUFVEZXB0
aFN0ZW5jaWxEZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTZCREJGMTFF
NzYyOTI1MDBERTBENUEgLyogR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0zMTA3Miw3ICszMTEzNiw2IEBACiAJCQkJRTExMkY0NzExRTNBODYxMjAwRDZDREZEIC8q
IEdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3NUJBOTkxRThBRTMzODAwNzE0NTRGIC8q
IEdyaWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAw
NkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMx
NkRDQjRCMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTJERTcxNzFFNEI3NDlDMDBGOUFDQ0YgLyogR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNF
RjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1QkUxOUIx
RDU0RjZDMTAwREQ3QzY4IC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTQ1
Myw3ICszMTUxNiw2IEBACiAJCQkJOTRFODM5NTUxREZCMkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFt
ZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzIwMjBDMEREQzhGMDAyMENG
QzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZF
Q0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMxNkRDQjRE
MUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVs
ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8q
IEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTgzNCw5ICszMTg5
NiwxMiBAQAogCQkJCTA3OTY5REFGMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZTZW5kZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQjExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRD
RFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCNTE3RDE0
MTUxMDA3RkY4NDIgLyogSlNSVENJY2VDYW5kaWRhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MDc5NjlEQjcxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTZEQ0I0QjFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJ
Y2VDb25uZWN0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2RENCNEQxRTc5MTBB
NjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0aGVyaW5nU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDczNzk0RUIxOUVFMzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTMxNkRDQjMyMUU3OEZCNzAwMDFCNUY4NyAvKiBKU1JUQ09mZmVyT3B0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzk2OURCNzE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTVFMkM0MzcxMUJDRjBENzUwMDAxRTJCQyAvKiBKU1JUQ1J0cFJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVFMkM0MzczMUJDRjBENzUwMDAxRTJCQyAvKiBKU1JUQ1J0cFNl
bmRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RTJDNDM3MzFCQ0YwRDc1MDAwMUUyQkUgLyog
SlNSVENSdHBQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzIwOTMsNyArMzIxNTgs
MTAgQEAKIAkJCQk3N0VGNjJGMzEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTU0MUU3MzhENTkwMDNCNjYw
OSAvKiBKU1dlYkdQVUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk1NzFFNzM4
RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTM4ODUwQzUzMUU5NjRDMTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5NUExRTczOEQ1OTAwM0I2NjA5IC8qIEpT
V2ViR1BVQ29tbWFuZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4RjIzQUFGMUU4RTgz
QzQwMENFNDZGNSAvKiBKU1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzOEYyM0FCNDFFOEU4M0QwMDBDRTQ2RjUgLyogSlNXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk1RDFFNzM4RDU5MDAzQjY2
MDkgLyogSlNXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxQTA4OTYwMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVURlcHRoU3RlbmNpbFN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTYzMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dl
YkdQVURyYXdhYmxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzIxMTAsNiArMzIxNzgsNyBAQAog
CQkJCTMxQTA4OTdFMUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlclBpcGVsaW5lQ29s
b3JBdHRhY2htZW50RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUEwODk4MTFF
NzM4RDVBMDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzFBMDg5ODQxRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVu
ZGVyUGlwZWxpbmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzODdBRTk1QTFFOEU5MkVG
MDAwMERFOTYgLyogSlNXZWJHUFVTaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTg3
MUU3MzhENUEwMDNCNjYwOSAvKiBKU1dlYkdQVVRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzFBMDg5OEExRTczOEQ1QTAwM0I2NjA5IC8qIEpTV2ViR1BVVGV4dHVyZURlc2NyaXB0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjE2OSw3ICszMjIzOCw2
IEBACiAJCQkJQTQ1NkZBMjYxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTE3QjU2MTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJG
bHVzaFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTZEQ0IzMjFFNzhGQjcwMDAx
QjVGODcgLyogSlNSVENPZmZlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1
NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjM2RTczNzFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9pbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzQyMyw2ICszMzQ5MSw4IEBACiAJCQkJMzFBMDg5MDQx
RTczN0Q1MTAwM0I2NjA5IC8qIFdlYkdQVUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MUEwODkwNTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMUEwODkwNjFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVQ29tbWFuZFF1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM4OUQxRTFFMUU4RjJCOUUwMDk3OTVCOSAvKiBX
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzg5RDFF
MUYxRThGMkI5RjAwOTc5NUI5IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMxQTA4OTA3MUU3MzdENTEwMDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0
ZW5jaWxEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTA4OTA4MUU3MzdENTEw
MDNCNjYwOSAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUEwODkwOTFFNzM3RDUxMDAzQjY2MDkgLyogV2ViR1BVRHJhd2FibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdQVUNv
bW1hbmRCdWZmZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
UFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmIzZjBiOTIyNjIyZDQ2YTky
MmY3YjYyYjk2OGY4Y2VlOGQ4NGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHUFVDb21tYW5kQnVmZmVyQ3VzdG9tLmNwcApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFA
Z21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNX
ZWJHUFVDb21tYW5kQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAi
R1BVQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgorI2luY2x1ZGUg
IkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0pTQzo6SlNWYWx1ZSBKU1dlYkdQVUNvbW1hbmRCdWZmZXI6OmNv
bXBsZXRlZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbXBs
ZXRlZCkgeworICAgICAgICBhdXRvIHByb21pc2UgPSBjcmVhdGVEZWZlcnJlZFByb21pc2Uoc3Rh
dGUsIGRvbVdpbmRvdygpKTsKKworICAgICAgICBpZiAoIXdyYXBwZWQoKS5jb21tYW5kQnVmZmVy
KCkpIAorICAgICAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAgICAgICBt
X2NvbXBsZXRlZC5zZXQoc3RhdGUudm0oKSwgdGhpcywgcHJvbWlzZS0+cHJvbWlzZSgpKTsKKyAg
ICAgICAgd3JhcHBlZCgpLmNvbW1hbmRCdWZmZXIoKS0+Y29tcGxldGVkKFdURk1vdmUocHJvbWlz
ZSkpOworICAgIH0KKworICAgIHJldHVybiBtX2NvbXBsZXRlZC5nZXQoKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1h
bmRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1
ZmZlci5jcHAKaW5kZXggNjgzMGVkMzUxYTQxNzA1ZWU0NTJjMWY2Zjk1MTZjMmE0OGMwYzI3Ni4u
M2U2MzIyYTBiZWQ0NmU1MGRiZGEyMWY1MzA1ODViMGE2YjlhZjAzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJh
QGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkdQVUNvbW1hbmRRdWV1ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJXZWJHUFVDb21tYW5kUXVldWUuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuaCIKICNpbmNsdWRlICJXZWJHUFVEcmF3YWJsZS5oIgogI2luY2x1ZGUg
IldlYkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IuaCIKQEAgLTgwLDYgKzgyLDEyIEBAIFJlZlB0cjxXZWJHUFVSZW5kZXJDb21t
YW5kRW5jb2Rlcj4gV2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlUmVuZGVyQ29tbWFuZEVuY29k
CiAgICAgcmV0dXJuIGNvbW1hbmRFbmNvZGVyOwogfQogCitSZWZQdHI8V2ViR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyPiBXZWJHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGVDb21wdXRlQ29tbWFuZEVu
Y29kZXIoKQoreworICAgIFJlZlB0cjxXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI+IGNvbW1h
bmRFbmNvZGVyID0gV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpjcmVhdGUodGhpcy0+Y29u
dGV4dCgpLCB0aGlzKTsKKyAgICByZXR1cm4gY29tbWFuZEVuY29kZXI7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21tYW5kQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggNTQ2NDZhMDFhYWUyZTM0ZjU2ODFhZDM4YjQx
YzJhMTFmNDUwZTFmZS4uYmJkNmNhMjI5NjllZWYzN2JlMzE3OWU4NTQ1Y2MyZTYwZDEyZjg5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3Vy
YSAoeS5raWt1cmFAZ21haWwuY29tKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zOSw2ICs0MCw3IEBAIGNsYXNzIFdlYkdQVURyYXdhYmxlOwogY2xhc3MgV2ViR1BVRnVuY3Rp
b247CiBjbGFzcyBXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2RlcjsKIGNsYXNzIFdlYkdQVVJlbmRl
clBhc3NEZXNjcmlwdG9yOworY2xhc3MgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOwogCiBj
bGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyIDogcHVibGljIFdlYkdQVU9iamVjdCB7CiBwdWJsaWM6
CkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXNlbnREcmF3YWJsZShXZWJH
UFVEcmF3YWJsZSYpOwogCiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyPiBj
cmVhdGVSZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlwdG9yKFdlYkdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yJik7CisgICAgUmVmUHRyPFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gY3Jl
YXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCk7CiAKICAgICBHUFVDb21tYW5kQnVmZmVyKiBjb21t
YW5kQnVmZmVyKCkgeyByZXR1cm4gbV9jb21tYW5kQnVmZmVyLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKaW5kZXgg
OWRjMTc2NDFiZTRlOTA1NDIyZGY0NjZkY2FjNGI4ODIwYWMxNDA4ZS4uNmVjMzJhNjMyMGE4NjJk
NjY1NDFmYzMwMTM2Y2ZhM2NlZGUzYTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMzAsOSBAQAogXSBpbnRlcmZh
Y2UgV2ViR1BVQ29tbWFuZEJ1ZmZlciB7CiAKICAgICBXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rl
ciBjcmVhdGVSZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlwdG9yKFdlYkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIFdlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rl
ciBjcmVhdGVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsKICAgICB2b2lkIGNvbW1pdCgpOwogICAg
IHZvaWQgcHJlc2VudERyYXdhYmxlKFdlYkdQVURyYXdhYmxlIGRyYXdhYmxlKTsKKyAgICBbQ2Fj
aGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPHZv
aWQ+IGNvbXBsZXRlZDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZmVl
MDA2MTBkOTE5YzEyYjAzMDJlYzYyOGQwZGZlMDcwMzYxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuY3Bw
CkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lr
dXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVD
b21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgiCisj
aW5jbHVkZSAiR1BVU2l6ZS5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlci5oIgorI2luY2x1ZGUg
IldlYkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZS5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlcmluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAoraW5saW5lIEdQVVNpemUgR1BVU2l6ZU1ha2UoV2ViR1BVU2l6ZSBz
aXplKQoreworICAgIHJldHVybiB7c2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHNpemUuZGVwdGh9
OworfQorCitSZWY8V2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBXZWJHUFVDb21wdXRlQ29t
bWFuZEVuY29kZXI6OmNyZWF0ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0LCBXZWJH
UFVDb21tYW5kQnVmZmVyKiBidWZmZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKGNvbnRleHQsIGJ1ZmZlcikpOworfQorICAgIAorV2Vi
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoV2Vi
R1BVUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCwgV2ViR1BVQ29tbWFuZEJ1ZmZlciogYnVmZmVy
KQorICAgIDogV2ViR1BVT2JqZWN0KGNvbnRleHQpCit7CisgICAgbV9jb21wdXRlQ29tbWFuZEVu
Y29kZXIgPSBidWZmZXItPmNvbW1hbmRCdWZmZXIoKS0+Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyKCk7Cit9CisgICAgCitXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6On5XZWJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIoKQoreworfQorICAgIAordm9pZCBXZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXI6OnNldENvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlJiBwaXBlbGluZVN0YXRlKQoreworICAgIGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29kZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbXB1dGVDb21tYW5kRW5jb2Rlci0+c2V0Q29tcHV0
ZVBpcGVsaW5lU3RhdGUocGlwZWxpbmVTdGF0ZS5jb21wdXRlUGlwZWxpbmVTdGF0ZSgpKTsKK30K
KyAgICAKK3ZvaWQgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpzZXRCdWZmZXIoV2ViR1BV
QnVmZmVyJiBidWZmZXIsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgaW5kZXgpCit7CisgICAg
aWYgKCFtX2NvbXB1dGVDb21tYW5kRW5jb2RlcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29t
cHV0ZUNvbW1hbmRFbmNvZGVyLT5zZXRCdWZmZXIoYnVmZmVyLmJ1ZmZlcigpLCBvZmZzZXQsIGlu
ZGV4KTsKK30KKyAgICAKK3ZvaWQgV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpkaXNwYXRj
aChXZWJHUFVTaXplIHRocmVhZGdyb3Vwc1BlckdyaWQsIFdlYkdQVVNpemUgdGhyZWFkc1BlclRo
cmVhZGdyb3VwKQoreworICAgIGlmICghbV9jb21wdXRlQ29tbWFuZEVuY29kZXIpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2NvbXB1dGVDb21tYW5kRW5jb2Rlci0+ZGlzcGF0Y2goR1BVU2l6ZU1h
a2UodGhyZWFkZ3JvdXBzUGVyR3JpZCksIEdQVVNpemVNYWtlKHRocmVhZHNQZXJUaHJlYWRncm91
cCkpOworfQorICAgIAordm9pZCBXZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmVuZEVuY29k
aW5nKCkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyKQorICAgICAgICByZXR1
cm47CisgICAgbV9jb21wdXRlQ29tbWFuZEVuY29kZXItPmVuZEVuY29kaW5nKCk7Cit9CisgICAg
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZjM3ZTI2ZWRhMGU4MjFiZjg0YTNlZjc2NmM0MzI4ZDE1OTViMzk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWlj
aGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJHUFVTaXpl
LmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0LmgiCisK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOworY2xhc3MgV2ViR1BVQnVmZmVyOworY2xhc3MgV2Vi
R1BVQ29tbWFuZEJ1ZmZlcjsKK2NsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOworY2xh
c3MgV2ViR1BVUmVuZGVyaW5nQ29udGV4dDsKKworY2xhc3MgV2ViR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyIDogcHVibGljIFdlYkdQVU9iamVjdCB7CisKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5X
ZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1
dGVDb21tYW5kRW5jb2Rlcj4gY3JlYXRlKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqLCBXZWJHUFVD
b21tYW5kQnVmZmVyKik7CisKKyAgICB2b2lkIHNldENvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlJik7CisgICAgdm9pZCBzZXRCdWZmZXIoV2ViR1BVQnVmZmVy
JiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2b2lkIGRpc3BhdGNoKFdlYkdQVVNpemUsIFdl
YkdQVVNpemUpOworICAgIHZvaWQgZW5kRW5jb2RpbmcoKTsKKworICAgIEdQVUNvbXB1dGVDb21t
YW5kRW5jb2RlciogY29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkgeyByZXR1cm4gbV9jb21wdXRlQ29t
bWFuZEVuY29kZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXZWJHUFVDb21wdXRlQ29tbWFu
ZEVuY29kZXIoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCosIFdlYkdQVUNvbW1hbmRCdWZmZXIqKTsK
KyAgICBSZWZQdHI8R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBtX2NvbXB1dGVDb21tYW5kRW5j
b2RlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVDb21wdXRlQ29tbWFuZEVuY29kZXIu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMzIwMTk4NjFmNmJhODg5OWExZjM1M2JmOWU0NGU3NWZiYWRh
MWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9
V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGludGVyZmFjZSBXZWJHUFVD
b21wdXRlQ29tbWFuZEVuY29kZXIgeworCisgICAgdm9pZCBzZXRDb21wdXRlUGlwZWxpbmVTdGF0
ZShXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSBwaXBlbGluZVN0YXRlKTsKKyAgICB2b2lkIHNl
dEJ1ZmZlcihXZWJHUFVCdWZmZXIgYnVmZmVyLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgdm9pZCBkaXNwYXRjaChXZWJHUFVTaXplIHRocmVhZGdyb3Vw
c1BlckdyaWQsIFdlYkdQVVNpemUgdGhyZWFkc1BlclRocmVhZGdyb3VwKTsKKworICAgIHZvaWQg
ZW5kRW5jb2RpbmcoKTsKKworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjM2NGMy
YWE3Mzc1MjUxNmUwNDAwYWVmNDQ5Y2MwYWFkNmQ4ZGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJh
ICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViR1BVRnVuY3Rpb24uaCIKKyNpbmNsdWRl
ICJXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBXZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6
Y3JlYXRlKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQsIFdlYkdQVUZ1bmN0aW9uKiBm
dW5jdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVDb21wdXRlUGlwZWxp
bmVTdGF0ZShjb250ZXh0LCBmdW5jdGlvbikpOworfQorCitXZWJHUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCog
Y29udGV4dCwgV2ViR1BVRnVuY3Rpb24qIGZ1bmN0aW9uKQorICAgIDogV2ViR1BVT2JqZWN0KGNv
bnRleHQpCit7CisgICAgaWYgKCFjb250ZXh0IHx8ICFmdW5jdGlvbikKKyAgICAgICAgcmV0dXJu
OworICAgIG1fY29tcHV0ZVBpcGVsaW5lU3RhdGUgPSBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6
Y3JlYXRlKGNvbnRleHQtPmRldmljZSgpLmdldCgpLCBmdW5jdGlvbi0+ZnVuY3Rpb24oKSk7Cit9
CisKK1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjp+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzc1OTZmZjMxYzg4YjBiMjFjYjk4YTZlNGI1ODEyYmY0ZTRlODZhZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCR1BVKQorCisjaW5jbHVkZSAiV2ViR1BVT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5l
U3RhdGU7CitjbGFzcyBXZWJHUFVGdW5jdGlvbjsKKworY2xhc3MgV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lU3RhdGUgOiBwdWJsaWMgV2ViR1BVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5X
ZWJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSgpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGU+IGNyZWF0ZShXZWJHUFVSZW5kZXJpbmdDb250ZXh0KiwgV2ViR1BVRnVu
Y3Rpb24qKTsKKyAgICBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSogY29tcHV0ZVBpcGVsaW5lU3Rh
dGUoKSB7IHJldHVybiBtX2NvbXB1dGVQaXBlbGluZVN0YXRlLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoV2ViR1BVUmVuZGVyaW5nQ29udGV4dCos
IFdlYkdQVUZ1bmN0aW9uKik7CisgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBt
X2NvbXB1dGVQaXBlbGluZVN0YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNvbXB1
dGVQaXBlbGluZVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVUNv
bXB1dGVQaXBlbGluZVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzBlZjUyM2ZhOTZkN2NmMTQ2MDYy
MGVjYWYzNWE0ZmRkOWM1OTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaWRsCkBAIC0wLDAgKzEsMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFp
bC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gaW50
ZXJmYWNlIFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlIHsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDk2
MTE4MGMzOTYwNTU4NWFkMmRiMDAxNjAzZDMyYzNiMDczNjNlNTguLjIwYjIzMmVjMDk0OGU2M2I0
ODdjY2Q1M2IwOGZmMWU3ZmJmNWVmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20p
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDkgKzM0LDExIEBACiAjaW5j
bHVkZSAiR1BVRGV2aWNlLmgiCiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2ViR1BVQ29tbWFuZFF1ZXVlLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3Rh
dGUuaCIKICNpbmNsdWRlICJXZWJHUFVEZXB0aFN0ZW5jaWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCIKICNpbmNsdWRlICJXZWJHUFVEcmF3YWJsZS5o
IgorI2luY2x1ZGUgIldlYkdQVUZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViR1BVTGlicmFyeS5o
IgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCkBAIC0xNTksNiArMTYyLDEyIEBAIFJlZlB0
cjxXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZT4gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
RGVwdGhTdGVuY2lsU3RhdGUoCiAgICAgcmV0dXJuIHN0YXRlOwogfQogCitSZWZQdHI8V2ViR1BV
Q29tcHV0ZVBpcGVsaW5lU3RhdGU+IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUNvbXB1
dGVQaXBlbGluZVN0YXRlKFdlYkdQVUZ1bmN0aW9uJiBmdW5jdGlvbikKK3sKKyAgICBSZWZQdHI8
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IHN0YXRlID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
U3RhdGU6OmNyZWF0ZSh0aGlzLCAmZnVuY3Rpb24pOworICAgIHJldHVybiBzdGF0ZTsKK30KKwog
UmVmUHRyPFdlYkdQVUNvbW1hbmRRdWV1ZT4gV2ViR1BVUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
Q29tbWFuZFF1ZXVlKCkKIHsKICAgICBSZWZQdHI8V2ViR1BVQ29tbWFuZFF1ZXVlPiBxdWV1ZSA9
IFdlYkdQVUNvbW1hbmRRdWV1ZTo6Y3JlYXRlKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGJlNjJmN2VlOTcx
YmQ5OWNmYmMzNjhjOGJjNzlmMDNmMjZjY2NkOGYuLjE5Nzc1YTRlODBlNTRlZTQ5Y2QzZGUzMzFj
NmI0NDg0ZjE1NDQyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdQVVJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHUFVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzUsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBXZWJHUFVDb21tYW5kUXVldWU7CitjbGFzcyBXZWJHUFVDb21wdXRlUGlwZWxp
bmVTdGF0ZTsKK2NsYXNzIFdlYkdQVUZ1bmN0aW9uOwogY2xhc3MgV2ViR1BVTGlicmFyeTsKIGNs
YXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjsKIGNsYXNzIFdlYkdQVVJlbmRlclBp
cGVsaW5lU3RhdGU7CkBAIC02Nyw2ICs3MCw4IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZT4gY3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BVRGVwdGhT
dGVuY2lsRGVzY3JpcHRvciYpOwogCisgICAgUmVmUHRyPFdlYkdQVUNvbXB1dGVQaXBlbGluZVN0
YXRlPiBjcmVhdGVDb21wdXRlUGlwZWxpbmVTdGF0ZShXZWJHUFVGdW5jdGlvbiYpOworCiAgICAg
UmVmUHRyPFdlYkdQVUNvbW1hbmRRdWV1ZT4gY3JlYXRlQ29tbWFuZFF1ZXVlKCk7CiAKICAgICBS
ZWZQdHI8V2ViR1BVRHJhd2FibGU+IG5leHREcmF3YWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCA1YTgx
NDM0MGI2MzEzODUxZDdiMzNiZGM4NzM5MmM2MDc4Yjk4OTBhLi4wYWFiMzk4ZTZiYTQyOWY5ZjA3
MzVjZTg3MjQxYTgxNGU3YTRlZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05OSw2ICsxMDAsNyBAQAogCiAgICAg
V2ViR1BVUmVuZGVyUGlwZWxpbmVTdGF0ZT8gY3JlYXRlUmVuZGVyUGlwZWxpbmVTdGF0ZShXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVRGVwdGhT
dGVuY2lsU3RhdGU/IGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURlcHRoU3RlbmNpbERl
c2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU/IGNy
ZWF0ZUNvbXB1dGVQaXBlbGluZVN0YXRlKFdlYkdQVUZ1bmN0aW9uIGZ1bmN0aW9uKTsKIAogICAg
IFdlYkdQVUNvbW1hbmRRdWV1ZT8gY3JlYXRlQ29tbWFuZFF1ZXVlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdQVVNpemUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQ0ZWEzNzRhMzBiYWU5NWZl
MTFkMDA0MmU3NTFiYjM2NjA2NjZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorc3RydWN0IFdlYkdQ
VVNpemUgeworICAgIHVuc2lnbmVkIGxvbmcgd2lkdGg7CisgICAgdW5zaWduZWQgbG9uZyBoZWln
aHQ7CisgICAgdW5zaWduZWQgbG9uZyBkZXB0aDsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR1BVU2l6ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHUFVTaXplLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iOTc4M2ZiNzYxOWIyM2E3OTAwYjg0ODMxZTkzNjdkYzVlMmViOTkwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR1BVU2l6ZS5p
ZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBL
aWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVTaXplIHsKKyAgICB1bnNpZ25lZCBs
b25nIHdpZHRoOworICAgIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OworICAgIHVuc2lnbmVkIGxvbmcg
ZGVwdGg7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR1BVQ29tbWFuZEJ1ZmZlck1ldGFsLm1tCmluZGV4IGYxZWE1OTIwN2Ji
ZDc4NzI5OGI0NWU3ODc0MTg4NzZlOTE1Njg1OWQuLjI1MzYyMThhY2I5YzMwNzIzYzE2MTZiNmIz
MWFlMTIyYzIzY2JmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwubW0KQEAgLTY5LDYg
KzY5LDIwIEBAIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tbWl0KCkKICAgICBbbV9jb21tYW5k
QnVmZmVyIGNvbW1pdF07CiB9CiAKK3ZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tcGxldGVkKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcGFzc2VkUHJvbWlzZSkKK3sKKyAgICBpZiAoIW1fY29tbWFu
ZEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4g
cHJvbWlzZShXVEZNb3ZlKHBhc3NlZFByb21pc2UpKTsKKworICAgIFttX2NvbW1hbmRCdWZmZXIg
YWRkQ29tcGxldGVkSGFuZGxlcjpeKGlkPE1UTENvbW1hbmRCdWZmZXI+KSB7CisgICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3Byb21pc2VdIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUo
KTsKKyAgICAgICAgfSk7CisgICAgfV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HUFVDb21wdXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlck1ldGFsLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwYzE4NzE0OTU0MjQ1MDUxMGY4OGZhMTFkZmU1MDM4MmIwM2E0NjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVDb21w
dXRlQ29tbWFuZEVuY29kZXJNZXRhbC5tbQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2ltcG9ydCAiR1BVQnVmZmVyLmgiCisjaW1wb3J0ICJHUFVDb21tYW5kQnVmZmVyLmgi
CisjaW1wb3J0ICJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIgorI2ltcG9ydCAiR1BVU2l6ZS5o
IgorI2ltcG9ydCAiTG9nZ2luZy5oIgorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitpbmxpbmUgTVRMU2l6ZSBNVExTaXplTWFrZShHUFVTaXpl
IHNpemUpCit7CisgICAgcmV0dXJuIHtzaXplLndpZHRoLCBzaXplLmhlaWdodCwgc2l6ZS5kZXB0
aH07Cit9CisgICAgCitHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OkdQVUNvbXB1dGVDb21tYW5k
RW5jb2RlcihHUFVDb21tYW5kQnVmZmVyKiBidWZmZXIpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlcjo6R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkiKTsKKwor
ICAgIGlmICghYnVmZmVyIHx8ICFidWZmZXItPnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NvbXB1dGVDb21tYW5kRW5jb2RlciA9IChNVExDb21wdXRl
Q29tbWFuZEVuY29kZXIgKilbYnVmZmVyLT5wbGF0Zm9ybUNvbW1hbmRCdWZmZXIoKSBjb21wdXRl
Q29tbWFuZEVuY29kZXJdOworfQorICAgIAordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6
OnNldENvbXB1dGVQaXBlbGluZVN0YXRlKEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlKiBjb21wdXRl
UGlwZWxpbmVTdGF0ZSkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNvbW1hbmRFbmNvZGVyIHx8ICFj
b21wdXRlUGlwZWxpbmVTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFttX2NvbXB1
dGVDb21tYW5kRW5jb2RlciBzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZTpzdGF0aWNfY2FzdDxpZDxN
VExDb21wdXRlUGlwZWxpbmVTdGF0ZT4+KGNvbXB1dGVQaXBlbGluZVN0YXRlLT5wbGF0Zm9ybUNv
bXB1dGVQaXBlbGluZVN0YXRlKCkpXTsKK30KKyAgICAKK3ZvaWQgR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyOjpzZXRCdWZmZXIoR1BVQnVmZmVyKiBidWZmZXIsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgaW5kZXgpCit7CisgICAgaWYgKCFtX2NvbXB1dGVDb21tYW5kRW5jb2RlciB8fCAhYnVm
ZmVyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW21fY29tcHV0ZUNvbW1hbmRFbmNvZGVy
IHNldEJ1ZmZlcjpzdGF0aWNfY2FzdDxpZDxNVExCdWZmZXI+PihidWZmZXItPnBsYXRmb3JtQnVm
ZmVyKCkpIG9mZnNldDpvZmZzZXQgYXRJbmRleDppbmRleF07Cit9CisgICAgCit2b2lkIEdQVUNv
bXB1dGVDb21tYW5kRW5jb2Rlcjo6ZGlzcGF0Y2goR1BVU2l6ZSB0aHJlYWRncm91cHNQZXJHcmlk
LCBHUFVTaXplIHRocmVhZHNQZXJUaHJlYWRncm91cCkKK3sKKyAgICBpZiAoIW1fY29tcHV0ZUNv
bW1hbmRFbmNvZGVyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW21fY29tcHV0ZUNvbW1h
bmRFbmNvZGVyIGRpc3BhdGNoVGhyZWFkZ3JvdXBzOk1UTFNpemVNYWtlKHRocmVhZGdyb3Vwc1Bl
ckdyaWQpIHRocmVhZHNQZXJUaHJlYWRncm91cDpNVExTaXplTWFrZSh0aHJlYWRzUGVyVGhyZWFk
Z3JvdXApXTsKK30KKwordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OmVuZEVuY29kaW5n
KCkKK3sKKyAgICBbbV9jb21wdXRlQ29tbWFuZEVuY29kZXIgZW5kRW5jb2RpbmddOworfQorICAg
IAorTVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyICpHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnBs
YXRmb3JtQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkKK3sKKyAgICByZXR1cm4gbV9jb21wdXRlQ29t
bWFuZEVuY29kZXIuZ2V0KCk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlTWV0YWwubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmQ3YWI2ODQ5YzlhNGUxZDQ3MTAyMDVhZjNmNWFiNWVmYjc1OWNiYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUNvbXB1dGVQ
aXBlbGluZVN0YXRlTWV0YWwubW0KQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJHUFVGdW5jdGlvbi5oIgorI2ltcG9ydCAi
TG9nZ2luZy5oIgorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjpHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZShH
UFVEZXZpY2UqIGRldmljZSwgR1BVRnVuY3Rpb24qIGZ1bmN0aW9uKQoreworICAgIExPRyhXZWJH
UFUsICJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoKSIp
OworCisgICAgaWYgKCFkZXZpY2UgfHwgIWRldmljZS0+cGxhdGZvcm1EZXZpY2UoKSB8fCAhZnVu
Y3Rpb24gfHwgIWZ1bmN0aW9uLT5wbGF0Zm9ybUZ1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fY29tcHV0ZVBpcGVsaW5lU3RhdGUgPSBhZG9wdE5TKChNVExDb21wdXRlUGlwZWxp
bmVTdGF0ZSAqKVtkZXZpY2UtPnBsYXRmb3JtRGV2aWNlKCkgbmV3Q29tcHV0ZVBpcGVsaW5lU3Rh
dGVXaXRoRnVuY3Rpb246KGlkPE1UTEZ1bmN0aW9uPilmdW5jdGlvbi0+cGxhdGZvcm1GdW5jdGlv
bigpIGVycm9yOm5pbF0pOworfQorCitNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSAqR1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGU6OnBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU3RhdGUoKQoreworICAgIHJl
dHVybiBtX2NvbXB1dGVQaXBlbGluZVN0YXRlLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuY3BwCmluZGV4IGViZDhlN2RkNzg0OGUxMjA3
MGVkZjVmZTgwYjdiYTUzMGFmOWEyYTcuLmRjMjdjMGU0N2RkNzBmZGJmNWJjYTg2NGI5ZWM0MWQz
ZDMzZjMyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVDb21tYW5kQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMzAsNyBAQAogI2lmIEVOQUJMRShX
RUJHUFUpCiAKICNpbmNsdWRlICJHUFVDb21tYW5kUXVldWUuaCIKKyNpbmNsdWRlICJHUFVDb21w
dXRlQ29tbWFuZEVuY29kZXIuaCIKICNpbmNsdWRlICJHUFVEZXZpY2UuaCIKICNpbmNsdWRlICJH
UFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmgiCkBAIC01MiwxMCArNTQsMTkgQEAgUmVmUHRyPEdQVVJlbmRlckNvbW1hbmRFbmNvZGVy
PiBHUFVDb21tYW5kQnVmZmVyOjpjcmVhdGVSZW5kZXJDb21tYW5kRW5jb2RlcihHUFUKICAgICBy
ZXR1cm4gR1BVUmVuZGVyQ29tbWFuZEVuY29kZXI6OmNyZWF0ZSh0aGlzLCBkZXNjcmlwdG9yKTsK
IH0KIAorUmVmUHRyPEdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4gR1BVQ29tbWFuZEJ1ZmZlcjo6
Y3JlYXRlQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkKK3sKKyAgICByZXR1cm4gR1BVQ29tcHV0ZUNv
bW1hbmRFbmNvZGVyOjpjcmVhdGUodGhpcyk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2
b2lkIEdQVUNvbW1hbmRCdWZmZXI6OnByZXNlbnREcmF3YWJsZShHUFVEcmF3YWJsZSopCiB7CiB9
CisKK3ZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29tcGxldGVkKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYpOworeworfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tbWFuZEJ1ZmZlci5o
CmluZGV4IDFhY2Q3NTQzOWYyYjIyZjhmNjQ5ZWE2ZmUyMGUzZjAzYjBmMDIyNzEuLmJmMTFjM2Zm
NjE4ZjE1YTQ3MDI1NTk4YWEyYmVmZGVhZWY4YTdhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21tYW5kQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbW1hbmRCdWZmZXIuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1
cmFAZ21haWwuY29tKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgi
CisKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC0zOCw2ICs0MSw3IEBAIE9CSkNfQ0xBU1Mg
TVRMQ29tbWFuZEJ1ZmZlcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tbWFu
ZFF1ZXVlOworY2xhc3MgR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOwogY2xhc3MgR1BVRHJhd2Fi
bGU7CiBjbGFzcyBHUFVSZW5kZXJDb21tYW5kRW5jb2RlcjsKIGNsYXNzIEdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yOwpAQCAtNTEsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwcmVzZW50RHJhd2FibGUoR1BVRHJhd2FibGUqKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IFJlZlB0cjxHUFVSZW5kZXJDb21tYW5kRW5jb2Rlcj4gY3JlYXRlUmVuZGVyQ29tbWFuZEVuY29k
ZXIoR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjcmVhdGVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbXBsZXRlZChSZWY8RGVmZXJyZWRQcm9taXNlPiYm
KTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIE1UTENvbW1hbmRC
dWZmZXIgKnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1hbmRFbmNv
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYjg1OTFhNjA3YTVjZGY0YTYwMTg1ZmUyNGYxN2QxN2FjYjc3
MDhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHkua2lrdXJhQGdtYWlsLmNvbSkK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVDb21tYW5kRW5jb2Rlci5oIgorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUJ1ZmZlci5oIgorI2luY2x1ZGUgIkdQVUNvbW1h
bmRCdWZmZXIuaCIKKyNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZS5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVmUHRyPEdQVUNv
bXB1dGVDb21tYW5kRW5jb2Rlcj4gR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjpjcmVhdGUoR1BV
Q29tbWFuZEJ1ZmZlciogYnVmZmVyKQoreworICAgIFJlZlB0cjxHUFVDb21wdXRlQ29tbWFuZEVu
Y29kZXI+IGVuY29kZXIgPSBhZG9wdFJlZihuZXcgR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKGJ1
ZmZlcikpOworICAgIHJldHVybiBlbmNvZGVyOworfQorICAgIAorR1BVQ29tcHV0ZUNvbW1hbmRF
bmNvZGVyOjp+R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkKK3sKKyAgICBMT0coV2ViR1BVLCAi
R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyOjp+R1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyKCkiKTsK
K30KKyAgICAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIEdQVUNvbXB1dGVDb21tYW5kRW5j
b2Rlcjo6c2V0Q29tcHV0ZVBpcGVsaW5lU3RhdGUoR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUqKQor
eworfQorICAgIAordm9pZCBHUFVDb21wdXRlQ29tbWFuZEVuY29kZXI6OnNldEJ1ZmZlcihHUFVC
dWZmZXIqLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7Cit9CisgICAgCit2b2lkIEdQVUNvbXB1dGVD
b21tYW5kRW5jb2Rlcjo6ZGlzcGF0Y2goR1BVU2l6ZSB0aHJlYWRncm91cHNQZXJHcmlkLCBHUFVT
aXplIHRocmVhZHNQZXJUaHJlYWRncm91cCk7Cit7Cit9CisKK3ZvaWQgR1BVQ29tcHV0ZUNvbW1h
bmRFbmNvZGVyOjplbmRFbmNvZGluZygpCit7Cit9CisjZW5kaWYKKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzZjYWQzMjIzZGNlNGYzOTFhOWE5NmEwYTdlMWZkOTZkNzMxMjY4ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
Q29tbWFuZEVuY29kZXIuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IFl1aWNoaXJvIEtpa3VyYSAoeS5raWt1cmFAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJHUFUpCisKKyNpbmNsdWRlICJHUFVTaXplLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE1UTENvbXB1dGVDb21tYW5kRW5jb2Rl
cjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBHUFVCdWZmZXI7
CitjbGFzcyBHUFVDb21tYW5kQnVmZmVyOworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU7
CisKK2NsYXNzIEdQVUNvbXB1dGVDb21tYW5kRW5jb2RlciA6IHB1YmxpYyBSZWZDb3VudGVkPEdQ
VUNvbXB1dGVDb21tYW5kRW5jb2Rlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BV
Q29tcHV0ZUNvbW1hbmRFbmNvZGVyPiBjcmVhdGUoR1BVQ29tbWFuZEJ1ZmZlciopOworICAgIFdF
QkNPUkVfRVhQT1JUIH5HUFVDb21wdXRlQ29tbWFuZEVuY29kZXIoKTsKKyAgICAgICAgCisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZShHUFVDb21wdXRlUGlw
ZWxpbmVTdGF0ZSopOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QnVmZmVyKEdQVUJ1ZmZl
ciosIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRj
aChHUFVTaXplLCBHUFVTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuZEVuY29kaW5n
KCk7CisgICAgICAgIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdFQkNPUkVfRVhQT1JUIE1U
TENvbXB1dGVDb21tYW5kRW5jb2RlciAqcGxhdGZvcm1Db21wdXRlQ29tbWFuZEVuY29kZXIoKTsK
KyNlbmRpZgorICAgICAgICAKK3ByaXZhdGU6CisgICAgR1BVQ29tcHV0ZUNvbW1hbmRFbmNvZGVy
KEdQVUNvbW1hbmRCdWZmZXIqKTsKKyAgICAgICAgCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
UmV0YWluUHRyPE1UTENvbXB1dGVDb21tYW5kRW5jb2Rlcj4gbV9jb21wdXRlQ29tbWFuZEVuY29k
ZXI7CisjZW5kaWYKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NGU5OGZhNGJmY2YwZDNm
NDliYTQ3YTJjMDg1OTI1OWZiZjA5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuY3BwCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVpY2hpcm8gS2lrdXJhICh5
Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVT
dGF0ZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVURldmljZS5oIgor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVmUHRy
PEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZTo6Y3JlYXRl
KEdQVURldmljZSogZGV2aWNlLCBHUFVGdW5jdGlvbiogZnVuY3Rpb24pCit7CisgICAgUmVmUHRy
PEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlPiBzdGF0ZSA9IGFkb3B0UmVmKG5ldyBHUFVDb21wdXRl
UGlwZWxpbmVTdGF0ZShkZXZpY2UsIGZ1bmN0aW9uKSk7CisgICAgcmV0dXJuIHN0YXRlOworfQor
ICAgIAorR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU6On5HUFVDb21wdXRlUGlwZWxpbmVTdGF0ZSgp
Cit7CisgICAgTE9HKFdlYkdQVSwgIkdQVUNvbXB1dGVQaXBlbGluZVN0YXRlOjp+R1BVQ29tcHV0
ZVBpcGVsaW5lU3RhdGUoKSIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNv
bXB1dGVQaXBlbGluZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTE4NGMxYzhlMmYzMDEy
NmE0OGU4MzMxZTdjZjE2MGQ1OTk5ZTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZVN0YXRlLmgKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBZdWljaGlybyBLaWt1cmEgKHku
a2lrdXJhQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCitPQkpDX0NMQVNTIE1UTENvbXB1dGVQaXBlbGluZVN0YXRlOworI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVRGV2aWNlOworY2xhc3MgR1BVRnVuY3Rp
b247CisKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZVN0YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQ
VUNvbXB1dGVQaXBlbGluZVN0YXRlPiBjcmVhdGUoR1BVRGV2aWNlKiwgR1BVRnVuY3Rpb24qKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+R1BVQ29tcHV0ZVBpcGVsaW5lU3RhdGUoKTsKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIFdFQkNPUkVfRVhQT1JUIE1UTENvbXB1dGVQaXBlbGluZVN0YXRl
ICpwbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVN0YXRlKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBHUFVDb21wdXRlUGlwZWxpbmVTdGF0ZShHUFVEZXZpY2UqLCBHUFVGdW5jdGlvbiopOworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZVN0YXRl
PiBtX2NvbXB1dGVQaXBlbGluZVN0YXRlOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVU2l6ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODlmNDQzZWI1MDczMWM5ZWMwZTNmMDJjMDQwNGY5YTY4
ZjI5NTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVU2l6ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgWXVpY2hpcm8gS2lrdXJhICh5Lmtpa3VyYUBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorc3RydWN0IEdQVVNpemUgeworICAg
IHVuc2lnbmVkIGxvbmcgd2lkdGg7CisgICAgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CisgICAgdW5z
aWduZWQgbG9uZyBkZXB0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFjMzYwNDc5Njc0MDk0MzMxMTE0NGFlMGQxZjdhMmI1ODBiMTcxMjIuLjM4MzZjNDk4
MzMyMTg3NjI3MDY5M2RiNDRjYzcxMTZjYzQ3MWUzMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNy0wNC0wNiAgWXVpY2hpcm8gS2lrdXJhICA8eS5raWt1cmFAZ21haWwuY29tPgorCisgICAg
ICAgIFdlYkdQVTogaW1wbGVtZW50IENvbXB1dGVDb21tYW5kRW5jb2RlciBhbmQgcmVsYXRlZCBj
b21wb25lbnRzICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwNDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYSB0ZXN0IGNhc2UgdG8gZW5zdXJlIENvbXB1dGVDb21tYW5kRW5jb2RlciBp
cyBkaXNwYXRjaGVkIHN1Y2Nlc3NmdWxseQorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ3B1
L3dlYmdwdS1kaXNwYXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdwdS93ZWJncHUtZGlzcGF0Y2guaHRtbDogQWRkZWQuCisKIDIwMTctMDQtMDMgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmUtYWRkaW5nIGZs
YWt5IHRpbWVvdXQgZXhwZWN0YXRpb24gZm9yIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdwdS93ZWJncHUt
ZGlzcGF0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ3B1L3dl
YmdwdS1kaXNwYXRjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3
MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdwdS93ZWJncHUtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdwdS93ZWJn
cHUtZGlzcGF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdwdS93ZWJncHUt
ZGlzcGF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjE2NGQ4ZDRiZjc4NGRiZjRhOTViZDAzYTEyMmYw
YmMwZDUyMmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z3B1L3dlYmdwdS1kaXNwYXRjaC5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxzY3JpcHQgaWQ9InNj
cmlwdCIgdHlwZT0ieC1zaGFkZXIveC1tZXRhbCI+Cit1c2luZyBuYW1lc3BhY2UgbWV0YWw7CisK
K2tlcm5lbCB2b2lkIGdldF9rZXJuZWxfc2l6ZShkZXZpY2UgaW50ICpyZXN1bHRbW2J1ZmZlcigw
KV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzIGdyaWRfc2l6ZVtbdGhyZWFk
Z3JvdXBzX3Blcl9ncmlkXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMgZ3Jv
dXBfc2l6ZVtbdGhyZWFkc19wZXJfdGhyZWFkZ3JvdXBdXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MyBnaWRbW3RocmVhZF9wb3NpdGlvbl9pbl9ncmlkXV0pCit7CisgICAgaWYg
KGdpZC54ICE9IDAgfHwgZ2lkLnkgIT0gMCB8fCBnaWQueiAhPSAwKSAKKyAgICAgICAgcmV0dXJu
OworCisgICAgcmVzdWx0WzBdID0gZ3JpZF9zaXplLng7CisgICAgcmVzdWx0WzFdID0gZ3JpZF9z
aXplLnk7CisgICAgcmVzdWx0WzJdID0gZ3JpZF9zaXplLno7CisgICAgcmVzdWx0WzNdID0gZ3Jv
dXBfc2l6ZS54OworICAgIHJlc3VsdFs0XSA9IGdyb3VwX3NpemUueTsKKyAgICByZXN1bHRbNV0g
PSBncm91cF9zaXplLno7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5k
b3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydChhKSB7
CisgICAgaWYgKCFhKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcignQXNzZXJ0aW9uIEZhaWxl
ZC4nKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1bigpIHsKKyAgICBsZXQgb3V0cHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiVGhpcyB0ZXN0IG9ubHkgcnVu
cyBpbnNpZGUgRFJUL1dLVFIuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR1BVRW5hYmxlZCh0cnVlKTsKKyAgICBsZXQgZ3B1
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ3B1Iik7
CisgICAgbGV0IGNvbW1hbmRRdWV1ZSA9IGdwdS5jcmVhdGVDb21tYW5kUXVldWUoKTsKKworICAg
IGxldCBsaWJyYXJ5ID0gZ3B1LmNyZWF0ZUxpYnJhcnkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNjcmlwdCIpLnRleHQpOworICAgIGxldCBrZXJuZWxGdW5jdGlvbiA9IGxpYnJhcnkuZnVuY3Rp
b25XaXRoTmFtZSgiZ2V0X2tlcm5lbF9zaXplIik7CisgICAgbGV0IHBpcGVsaW5lU3RhdGUgPSBn
cHUuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lU3RhdGUoa2VybmVsRnVuY3Rpb24pOworCisgICAgbGV0
IHJlc3VsdEJ1ZmZlciA9IGdwdS5jcmVhdGVCdWZmZXIobmV3IEludDMyQXJyYXkoNikpOworICAg
IAorICAgIGxldCBjb21tYW5kQnVmZmVyID0gY29tbWFuZFF1ZXVlLmNyZWF0ZUNvbW1hbmRCdWZm
ZXIoKTsKKyAgICBsZXQgY29tbWFuZEVuY29kZXIgPSBjb21tYW5kQnVmZmVyLmNyZWF0ZUNvbXB1
dGVDb21tYW5kRW5jb2RlcigpOworCisgICAgbGV0IGdyaWRTaXplID0geworICAgICAgICB3aWR0
aDogNywKKyAgICAgICAgaGVpZ2h0OiA2LAorICAgICAgICBkZXB0aDogNQorICAgIH07CisgICAg
bGV0IGdyb3VwU2l6ZSA9IHsKKyAgICAgICAgd2lkdGg6IDQsCisgICAgICAgIGhlaWdodDogMywK
KyAgICAgICAgZGVwdGg6IDIKKyAgICB9OworICAgIAorICAgIGNvbW1hbmRFbmNvZGVyLnNldENv
bXB1dGVQaXBlbGluZVN0YXRlKHBpcGVsaW5lU3RhdGUpOworICAgIGNvbW1hbmRFbmNvZGVyLnNl
dEJ1ZmZlcihyZXN1bHRCdWZmZXIsIDAsIDApOworICAgIGNvbW1hbmRFbmNvZGVyLmRpc3BhdGNo
KGdyaWRTaXplLCBncm91cFNpemUpOworICAgIGNvbW1hbmRFbmNvZGVyLmVuZEVuY29kaW5nKCk7
CisKKyAgICBjb21tYW5kQnVmZmVyLmNvbXBsZXRlZC50aGVuKCgpID0+IHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBJbnQzMkFycmF5KHJlc3VsdEJ1ZmZlci5jb250ZW50cyk7CisKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIGFzc2VydChyZXN1bHRbMF0gPT09IGdyaWRTaXplLndpZHRo
KTsKKyAgICAgICAgICAgIGFzc2VydChyZXN1bHRbMV0gPT09IGdyaWRTaXplLmhlaWdodCk7Cisg
ICAgICAgICAgICBhc3NlcnQocmVzdWx0WzJdID09PSBncmlkU2l6ZS5kZXB0aCk7CisgICAgICAg
ICAgICBhc3NlcnQocmVzdWx0WzNdID09PSBncm91cFNpemUud2lkdGgpOworICAgICAgICAgICAg
YXNzZXJ0KHJlc3VsdFs0XSA9PT0gZ3JvdXBTaXplLmhlaWdodCk7CisgICAgICAgICAgICBhc3Nl
cnQocmVzdWx0WzVdID09PSBncm91cFNpemUuZGVwdGgpOworCisgICAgICAgIH0gY2F0Y2goZXJy
KSB7CisgICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSBgRkFJTDogJHtlcnIubWVzc2Fn
ZX1gOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgb3V0cHV0LnRl
eHRDb250ZW50ID0gJ1BBU1MnOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfSk7CisKKyAgICBjb21tYW5kQnVmZmVyLmNvbW1pdCgpOworfQorCit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1biwgZmFsc2UpOworCis8L3NjcmlwdD4KKzxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>