<?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>192611</bug_id>
          
          <creation_ts>2018-12-11 20:28:13 -0800</creation_ts>
          <short_desc>[WebGPU] Vertex buffers and WebGPUInputState</short_desc>
          <delta_ts>2018-12-12 17:26:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1487108</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-11 20:28:13 -0800</bug_when>
    <thetext>[WebGPU] Vertex buffers and WebGPUInputState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487109</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-11 20:29:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/46608344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487119</commentid>
    <comment_count>2</comment_count>
      <attachid>357100</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-11 21:43:08 -0800</bug_when>
    <thetext>Created attachment 357100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487127</commentid>
    <comment_count>3</comment_count>
      <attachid>357102</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-11 21:57:33 -0800</bug_when>
    <thetext>Created attachment 357102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487129</commentid>
    <comment_count>4</comment_count>
      <attachid>357104</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-11 22:14:41 -0800</bug_when>
    <thetext>Created attachment 357104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487304</commentid>
    <comment_count>5</comment_count>
      <attachid>357104</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-12-12 12:37:44 -0800</bug_when>
    <thetext>Comment on attachment 357104
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        Add symbols and files for WebGPUIndexFormat, WebGPUInputStateDescriptor, WebGPUInputStepMode, 
&gt; +        WebGPUVertexAttributeDescriptor, WebGPUVertexFormat, WebGPUVertexInputDescriptor:

I know it&apos;s annoying, but I suggest for the future that each of these could be a different patch. While this means you&apos;ll have to stage them and get multiple reviews, it&apos;s better to have small changes than big ones. Basically, if you&apos;re adding more than one class in a patch, there should be a good reason.

Don&apos;t do it for this patch now, but in the future.

&gt; Source/WebCore/Modules/webgpu/WebGPUIndexFormat.idl:37
&gt; +] interface WebGPUIndexFormat {
&gt; +    const u32 UINT16 = 0;
&gt; +    const u32 UINT32 = 1;
&gt; +};

I&apos;m going to file a bug on the spec asking why this isn&apos;t an enum.

&gt; Source/WebCore/Modules/webgpu/WebGPUInputStepMode.idl:31
&gt; +    DoNotCheckConstants,

Did we decide if we need this?

&gt; Source/WebCore/Modules/webgpu/WebGPUInputStepMode.idl:37
&gt; +] interface WebGPUInputStepMode {
&gt; +    const u32 VERTEX = 0;
&gt; +    const u32 INSTANCE = 1;
&gt; +};

And this one.

&gt; Source/WebCore/platform/graphics/gpu/GPUVertexAttributeDescriptor.h:44
&gt; +class GPUVertexFormat : public RefCounted&lt;GPUVertexFormat&gt; {
&gt; +public:
&gt; +    enum Enum : GPUVertexFormatEnum {
&gt; +        FloatR32G32B32A32 = 0,
&gt; +        FloatR32G32B32 = 1,
&gt; +        FloatR32G32 = 2,
&gt; +        FloatR32 = 3
&gt; +    };
&gt; +};

And if we made these enums in the IDL, we wouldn&apos;t need an instance.

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:90
&gt; +    // FIXME: Only worry about the first buffer for now, and treat startSlot as the index.
&gt; +    [m_platformRenderPassEncoder setVertexBuffer:buffers[0]-&gt;platformBuffer() offset:offsets[0] atIndex:index];

Please check for empty vectors.

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:118
&gt; +    // FIXME: What happens here when mtlVertexDescriptor RetainPtr is destroyed?
&gt; +    mtlDescriptor.vertexDescriptor = mtlVertexDescriptor.get();

I assume that the MTLVertexDescriptor retains the MTLRenderPipelineDescriptor.

&gt; LayoutTests/webgpu/vertex-buffer-triangle-strip.html:57
&gt; +    let arrayBuffer = buffer.mapping;
&gt; +    let floatArray = new Float32Array(arrayBuffer);
&gt; +
&gt; +    floatArray[0] = -1;
&gt; +    floatArray[1] = 1;
&gt; +    floatArray[2] = 0;
&gt; +    floatArray[3] = 1;
&gt; +
&gt; +    floatArray[4] = -1;
&gt; +    floatArray[5] = -1;
&gt; +    floatArray[6] = 0;
&gt; +    floatArray[7] = 1;
&gt; +
&gt; +    floatArray[8] = 1;
&gt; +    floatArray[9] = 1;
&gt; +    floatArray[10] = 0;
&gt; +    floatArray[11] = 1;
&gt; +
&gt; +    floatArray[12] = 1;
&gt; +    floatArray[13] = -1;
&gt; +    floatArray[14] = 0;
&gt; +    floatArray[15] = 1;
&gt; +

I don&apos;t know how this works without mapping it to the vertex buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487317</commentid>
    <comment_count>6</comment_count>
      <attachid>357160</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-12 13:29:06 -0800</bug_when>
    <thetext>Created attachment 357160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487325</commentid>
    <comment_count>7</comment_count>
      <attachid>357164</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-12 13:56:44 -0800</bug_when>
    <thetext>Created attachment 357164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487367</commentid>
    <comment_count>8</comment_count>
      <attachid>357179</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-12 15:37:52 -0800</bug_when>
    <thetext>Created attachment 357179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487434</commentid>
    <comment_count>9</comment_count>
      <attachid>357179</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-12 17:26:40 -0800</bug_when>
    <thetext>Comment on attachment 357179
Patch

Clearing flags on attachment: 357179

Committed r239139: &lt;https://trac.webkit.org/changeset/239139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487435</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-12 17:26:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357100</attachid>
            <date>2018-12-11 21:43:08 -0800</date>
            <delta_ts>2018-12-11 21:57:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181211214308.patch</filename>
            <type>text/plain</type>
            <size>91569</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3MWQ1MjA1Zjg1ZTM4
YTA5ZTQyYzdjMzA3NTliZTVmMGFiOGM5ZS4uOWE0M2EwYzNiNmUyODE0YWM5MDg1MmEwZjgxZGZl
ZWFhZDQ0ZGRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xl
LXN0cmlwLmh0bWwKKworICAgICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB2ZXJ0ZXggYnVm
ZmVycyB3aXRoIE1ldGFsIHNoYWRpbmcgbGFuZ3VhZ2UgaW4gV2ViR1BVLiBJbiAKKyAgICAgICAg
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLCByZWZhY3RvciB0byBtYXRjaCB1cGRhdGVk
IHNoYWRlciBzdGFnZSBzdHJ1Y3R1cmUgYW5kIGFkZCAKKyAgICAgICAgV2ViR1BVSW5wdXRTdGF0
ZURlc2NyaXB0b3IuIEFsc28gaW1wbGVtZW50IFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzLgorCisgICAgICAgIEFkZCBzeW1ib2xzIGFuZCBmaWxlcyBmb3IgV2ViR1BV
SW5kZXhGb3JtYXQsIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLCBXZWJHUFVJbnB1dFN0ZXBN
b2RlLCAKKyAgICAgICAgV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciwgV2ViR1BVVmVy
dGV4Rm9ybWF0LCBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgIEFk
ZCBhbmQgaW1wbGVtZW50IGludGVyZmFjZXMgYW5kIGRpY3Rpb25hcmllcyBmb3IgV2ViR1BVSW5w
dXRTdGF0ZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQnVm
ZmVyOjpidWZmZXIgY29uc3QpOiBBZGRlZCBnZXR0ZXIgZm9yIGJhY2tpbmcgR1BVQnVmZmVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbDogTW92aW5nIFdl
YkdQVUJ1ZmZlclVzYWdlIG91dCBpbnRvIGl0cyBvd24gSURMLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
ZGV4Rm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4
Rm9ybWF0LmlkbDogQWRkZWQuIAorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oOiBBZGRlZC4KKworICAgICAgICBSZWZhY3RvciB0byBzdXBwb3J0IHVwZGF0ZWQgc3Ry
dWN0dXJlIG9mIHBpcGVsaW5lIGRlc2NyaXB0b3IgaW4gc2tldGNoIElETDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS4qOiBSZW1vdmVkLgorCisgICAg
ICAgIEFkZCBhbmQgaW1wbGVtZW50IHNldFZlcnRleEJ1ZmZlcnM6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMpOiBBZGRlZC4gCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGw6IAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5l
RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KToKKwogMjAxOC0xMi0wNyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBXZWJHUFVCdWZmZXIsIGFuZCBzb21lIG51bGxpYmls
aXR5IGNvbnNpc3RlbmN5IGluIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ODNlYmU1
ZDc5MmJkZmQwZWMyYjM0ODI1ODgwNmFlZWY0Yjk0MjBiLi4wYmRkMjljZGUxODA4YzI1ZDVjZThh
MTY1NDU1NTg0Nzg2MDY2ZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDYwLDkgKzQ2MCwx
MyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbAorICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlclVzYWdlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIu
aWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAorICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUluZGV4Rm9ybWF0LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1v
ZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5p
ZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGwKQEAg
LTQ3NSwxMSArNDc5LDEzIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwKICAgICBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5pZGwKLSAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFn
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsCiAgICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVVGV4dHVyZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlRm9ybWF0RW51bS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5p
ZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlk
bAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwKKyAgICBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsCiAKICAgICBNb2R1bGVzL3dl
YnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWM1YzNlOGU0NmIwNWU0NmUy
OTA2Y2M0ZmNiZjg5ZmM2ZWFkOWVkZC4uZjZmN2UzNTE2YWU3NDY1ODgyY2ZiZjMwNTEyNzU0ZDk0
MzQ2MzdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzcsOSArMzc3LDEz
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJ1ZmZlckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUJ1ZmZlclVzYWdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVDb2xvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2Ny
aXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3Rl
cE1vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5pZGwgXApAQCAtMzkyLDExICszOTYsMTMgQEAgSlNfQklORElOR19J
RExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9k
dWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
aGFkZXJTdGFnZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dh
cENoYWluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlRm9ybWF0
RW51bS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZp
ZXcuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZl
cnRleEZvcm1hdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
SW5wdXREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMv
Q2xvc2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAK
aW5kZXggMTQ4ZGFlYTVkMWM5MTk3MmNhMTU4OGYxY2RkZjA3NmM4NTgyN2QyYS4uMzQ5NDFkMGVh
NWY3OTI1MWNiNDhkZGViZjc0MTM0M2Y5ZTRiYTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwCkBAIC0zOCw3ICszOCw2IEBAIFJlZlB0cjxX
ZWJHUFVCdWZmZXI+IFdlYkdQVUJ1ZmZlcjo6Y3JlYXRlKFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVy
KQogV2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiAg
ICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1fYnVm
ZmVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAppbmRleCA2MzM2ZDU5NTNlY2MxZGU1Zjg0MzljMDU3
Mzc1YzFiODhlMTRjZGRlLi5lMjc2NDI1YmQ0MmI1ZDY4MmZiZTI0MjhhNDAwNmUyM2Y0OTIzODc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaApAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBXZWJHUFVCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJH
UFVCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFdlYkdQVUJ1ZmZlcj4gY3Jl
YXRlKFJlZjxHUFVCdWZmZXI+JiYpOwogCisgICAgY29uc3QgR1BVQnVmZmVyJiBidWZmZXIoKSBj
b25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQorCiAgICAgSlNDOjpBcnJheUJ1ZmZlciog
bWFwcGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLT5tYXBwaW5nKCk7IH0KICAgICB2b2lk
IHVubWFwKCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRlZCBzdHViLiAqLyB9CiAgICAgdm9pZCBk
ZXN0cm95KCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRlZCBzdHViLiAqLyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgK
aW5kZXggYjMwM2YwOWJiNjhlY2M1ZTBiN2UyNDZlYzc0OWNhMzA2OGNkNzU0MC4uYzAxZGY5NTA4
NGIyMDAxYTEzNzE1ZTA5OGQxZDkwZDc3NDVlNzJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMzMsNyAr
MzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIFdlYkdQVUJ1ZmZlckRlc2NyaXB0
b3IgPSBHUFVCdWZmZXJEZXNjcmlwdG9yOwogdXNpbmcgV2ViR1BVQnVmZmVyVXNhZ2VGbGFncyA9
IEdQVUJ1ZmZlclVzYWdlRmxhZ3M7Ci11c2luZyBXZWJHUFVCdWZmZXJVc2FnZSA9IEdQVUJ1ZmZl
clVzYWdlOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKaW5kZXgg
YWZhNTU5NWYyNWYwZWNmMjczY2JhZDcxNzlkODEwOTQ4OTViZGE5Yy4uMTNlMTIxMDQ3NjU2YTQ4
YWIzNDE3MzRmYjY5NTBlZWM5YWM3ODZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKQEAgLTM0LDE5ICsz
NCwzIEBAIHR5cGVkZWYgdTMyIFdlYkdQVUJ1ZmZlclVzYWdlRmxhZ3M7CiAgICAgdTMyIHNpemU7
CiAgICAgV2ViR1BVQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKIH07Ci0KLVsKLSAgICBDb25kaXRp
b25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgTm9JbnRlcmZh
Y2VPYmplY3QKLV0gaW50ZXJmYWNlIFdlYkdQVUJ1ZmZlclVzYWdlIHsKLSAgICBjb25zdCB1MzIg
Tk9ORSA9IDA7Ci0gICAgY29uc3QgdTMyIE1BUF9SRUFEID0gMTsKLSAgICBjb25zdCB1MzIgTUFQ
X1dSSVRFID0gMjsKLSAgICBjb25zdCB1MzIgVFJBTlNGRVJfU1JDID0gNDsKLSAgICBjb25zdCB1
MzIgVFJBTlNGRVJfRFNUID0gODsKLSAgICBjb25zdCB1MzIgSU5ERVggPSAxNjsKLSAgICBjb25z
dCB1MzIgVkVSVEVYID0gMzI7Ci0gICAgY29uc3QgdTMyIFVOSUZPUk0gPSA2NDsKLSAgICBjb25z
dCB1MzIgU1RPUkFHRSA9IDEyODsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCA3ZDZkMGZjMzEwYThjZGZmOTg1ZWNmZTM3NTA0MTY1
NjQzYjBiNTkzLi43N2JhNGNiYzA4Zjk2YjFlMzIyYzY5ZDQ4N2Y3MDU5NDEyODZjNDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTQx
LDcgKzQxLDYgQEAKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw1OSArNzEsMjUgQEAgUmVmUHRyPFdlYkdQVVNoYWRl
ck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9k
dWxlRGUKICAgICByZXR1cm4gbW9kdWxlID8gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUobW9k
dWxlLnJlbGVhc2VOb25OdWxsKCkpIDogbnVsbHB0cjsKIH0KIAotUmVmUHRyPFdlYkdQVVJlbmRl
clBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CitzdGF0aWMgc3RkOjpvcHRp
b25hbDxHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gdmFsaWRhdGVBbmRDb252ZXJ0UGlwZWxp
bmVTdGFnZShjb25zdCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiV2ViR1BVRGV2aWNlOjpj
cmVhdGVSZW5kZXJQaXBlbGluZSgpIjsKLSNpZiBMT0dfRElTQUJMRUQKLSAgICBVTlVTRURfUEFS
QU0oZnVuY3Rpb25OYW1lKTsKLSNlbmRpZgorICAgIGlmICghZGVzY3JpcHRvci5tb2R1bGUgfHwg
IWRlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSB8fCBkZXNjcmlwdG9yLmVudHJ5UG9pbnQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGRlc2NyaXB0
b3Iuc3RhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIHJldHVybiBHUFVQaXBlbGluZVN0YWdl
RGVzY3JpcHRvciB7IGRlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSwgZGVzY3JpcHRvci5lbnRy
eVBvaW50IH07Cit9CiAKLSAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFn
ZTsKLSAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBmcmFnbWVudFN0YWdlOwotCi0gICAg
Zm9yIChjb25zdCBhdXRvJiBzdGFnZURlc2NyaXB0b3IgOiBkZXNjcmlwdG9yLnN0YWdlcykgewot
ICAgICAgICBpZiAoIXN0YWdlRGVzY3JpcHRvci5tb2R1bGUgfHwgIXN0YWdlRGVzY3JpcHRvci5t
b2R1bGUtPm1vZHVsZSgpIHx8IHN0YWdlRGVzY3JpcHRvci5lbnRyeVBvaW50LmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAoc3RhZ2VEZXNjcmlwdG9yLnN0YWdlKSB7
Ci0gICAgICAgIGNhc2UgV2ViR1BVU2hhZGVyU3RhZ2U6OlZFUlRFWDoKLSAgICAgICAgICAgIGlm
ICh2ZXJ0ZXhTdGFnZS5tb2R1bGUpIHsKLSAgICAgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IE11bHRpcGxlIHZlcnRleCBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
ISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZlcnRleFN0YWdlLm1vZHVsZSA9IHN0YWdlRGVzY3Jp
cHRvci5tb2R1bGUtPm1vZHVsZSgpOwotICAgICAgICAgICAgdmVydGV4U3RhZ2UuZW50cnlQb2lu
dCA9IHN0YWdlRGVzY3JpcHRvci5lbnRyeVBvaW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViR1BVU2hhZGVyU3RhZ2U6OkZSQUdNRU5UOgotICAgICAgICAgICAgaWYgKGZy
YWdtZW50U3RhZ2UubW9kdWxlKSB7Ci0gICAgICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBN
dWx0aXBsZSBmcmFnbWVudCBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
ISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UubW9kdWxlID0gc3RhZ2VEZXNj
cmlwdG9yLm1vZHVsZS0+bW9kdWxlKCk7Ci0gICAgICAgICAgICBmcmFnbWVudFN0YWdlLmVudHJ5
UG9pbnQgPSBzdGFnZURlc2NyaXB0b3IuZW50cnlQb2ludDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIHNo
YWRlciBzdGFnZSBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25O
YW1lKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0gICAgfQorUmVm
UHRyPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVs
aW5lKFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0Cit7
CisgICAgYXV0byB2ZXJ0ZXhTdGFnZSA9IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5lU3RhZ2Uo
ZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZSk7CisgICAgYXV0byBmcmFnbWVudFN0YWdlID0gdmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZShkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UpOwogCi0g
ICAgLy8gTWV0YWwgKGlmIG5vdCBvdGhlciBBUElzKSByZXF1aXJlcyBhdCBsZWFzdCB0aGUgdmVy
dGV4IHNoYWRlci4KLSAgICBpZiAoIXZlcnRleFN0YWdlLm1vZHVsZSB8fCB2ZXJ0ZXhTdGFnZS5l
bnRyeVBvaW50LmlzRW1wdHkoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQg
dmVydGV4IHN0YWdlIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlv
bk5hbWUpOworICAgIGlmICghdmVydGV4U3RhZ2UgfHwgIWZyYWdtZW50U3RhZ2UpIHsKKyAgICAg
ICAgTE9HKFdlYkdQVSwgIldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogSW52
YWxpZCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT5jcmVhdGVSZW5k
ZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgeyBXVEZNb3ZlKHZlcnRleFN0
YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdlKSwgZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9n
eSB9KTsKKyAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPmNyZWF0ZVJlbmRlclBpcGVsaW5l
KEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciB7IFdURk1vdmUoKnZlcnRleFN0YWdlKSwgV1RG
TW92ZSgqZnJhZ21lbnRTdGFnZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3ksIGRlc2Ny
aXB0b3IuaW5wdXRTdGF0ZSB9KTsKICAgICByZXR1cm4gcGlwZWxpbmUgPyBXZWJHUFVSZW5kZXJQ
aXBlbGluZTo6Y3JlYXRlKHBpcGVsaW5lLnJlbGVhc2VOb25OdWxsKCkpIDogbnVsbHB0cjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCA5
ODc5YjY0MzBlNTMyNzk4YzczYzc1NmI2Yzg5ZDc3M2Y1NDVkYzJmLi4xOTU0YzVjMzU0MGY5NGJk
MzYwNjE2YTk1NTI4OTI4M2ZkYzQyNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuaApAQCAtNTYsOCArNTYsNiBAQCBwdWJsaWM6CiAKICAgICBSZWZQ
dHI8V2ViR1BVQnVmZmVyPiBjcmVhdGVCdWZmZXIoV2ViR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBj
b25zdDsKIAotICAgIFJlZlB0cjxXZWJHUFVCdWZmZXI+IGNyZWF0ZUJ1ZmZlcihXZWJHUFVCdWZm
ZXJEZXNjcmlwdG9yJiYpIGNvbnN0OwotCiAgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4g
Y3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29uc3Q7
CiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShX
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
NDAzNTg0YjViZTQ3MWRhNjEyOGYyZTE2MDRkYjliNjA1ZmUzYWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCkBAIC0w
LDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0ID0gR1BVSW5kZXhGb3JtYXQ7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTI1NmI0ZTU0NzMyZjdkMzViN2IzNjI0NmY0NGU3NDcxNTdjOTI3OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4
Rm9ybWF0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5
cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisg
ICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVJbmRleEZvcm1h
dCB7CisgICAgY29uc3QgdTMyIFVJTlQxNiA9IDA7CisgICAgY29uc3QgdTMyIFVJTlQzMiA9IDE7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU5MzA2Yjk3ODJiYmNiZjIyZTEy
YWU5ZTEzZWMyODAwNGU0MzdhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2lu
Y2x1ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0
RW51bSA9IEdQVUluZGV4Rm9ybWF0RW51bTsKK3VzaW5nIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlw
dG9yID0gR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3I7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzk5NDI0MTI4NDhjMWFlYmViOWEwZmNiZTdhNjE1OWU1MWM2ODgwNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0
aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisK
K3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0eXBlZGVmIHUzMiBXZWJHUFVJbmRleEZvcm1h
dEVudW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciB7CisgICAg
V2ViR1BVSW5kZXhGb3JtYXRFbnVtIGluZGV4Rm9ybWF0OworCisgICAgc2VxdWVuY2U8V2ViR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBzZXF1ZW5jZTxXZWJH
UFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I+IGlucHV0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQz
ZDM0MmMzNDAzZWZjOWFlODdhZjBjYTllYmRkOTZjYjhjYzVhYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5wdXRTdGVwTW9kZSA9IEdQVUlucHV0U3RlcE1v
ZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0
ZXBNb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3Rl
cE1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMGIyM2U5MGM1MGUyY2Q2YjMxMDhmMTM5ZDNhNWZkNjM4
ODBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0
dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gu
d2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25h
bD1XRUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJH
UFVJbnB1dFN0ZXBNb2RlIHsKKyAgICBjb25zdCB1MzIgVkVSVEVYID0gMDsKKyAgICBjb25zdCB1
MzIgSU5TVEFOQ0UgPSAxOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCAzMTIxYTli
YTU2ODM3NDAxNDNjZWMzMDU5MDgyYmM4MmNhNTQxNTkyLi41MmMyZjlhYzBmYjkxYzQwNzQ3OWRm
ZWZlM2U4ZTA5YzIwMzExYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywxMyAr
MjcsMTAgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7Ci0gICAg
VmVjdG9yPFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CisgICAgLy8gV2Vi
R1BVUGlwZWxpbmVMYXlvdXQgbGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVE
ZXNjcmlwdG9yQmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbAppbmRleCAzM2Y3YTc2NjE3YWIxOTU5ZjIwNzE4ODY5
YjU5N2U3ZjVjMmU0OTI4Li5lYjEzNWI1NTc0NmU0NjE2NGVjNmQ3ODcwZDExOWM5YTMyNzVmMTEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbApAQCAtMjksNSArMjksNCBAQAogICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25hcnkgV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZSB7CiAgICAgLy8gV2ViR1BVUGlwZWxpbmVMYXlvdXQgbGF5b3V0OwotICAgIHNlcXVl
bmNlPFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yLmgKaW5kZXggMzNmM2FlMDk1NjUwMGQ0ZjdiMzdjNWU1MDdkMDg3YWRmMGFk
YTE2Ni4uNDVhODdiZDZjZTU1ZTc3YWM4MmE5Mzg3NGM1MmFjOTYyYjU2MzFhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2Ny
aXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oCkBAIC0zMywxMSArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXVzaW5nIFdlYkdQVVNoYWRlclN0YWdlRW51bSA9IHVuc2lnbmVkIGxvbmc7Ci0KIHN0
cnVjdCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgY29uc3QgV2ViR1BVU2hh
ZGVyTW9kdWxlKiBtb2R1bGUgPSBudWxscHRyOwotICAgIFdlYkdQVVNoYWRlclN0YWdlRW51bSBz
dGFnZTsKICAgICBTdHJpbmcgZW50cnlQb2ludDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlw
dG9yLmlkbAppbmRleCAwZDZiMDg4MTdkOTJkYTdiY2NkMDI4YWM3ZmUzZWNjMTEyMjM1OWI0Li5l
ZWRhZjA4MTZmNTQ0ODFkMzdkODNjNjc0NjkyYzI5YjZmN2VjNzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaWRsCkBAIC0zMSw2ICszMSw1IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBX
ZWJHUFVTaGFkZXJTdGFnZUVudW07CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKIF0gZGlj
dGlvbmFyeSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgV2ViR1BVU2hhZGVy
TW9kdWxlIG1vZHVsZTsKLSAgICBXZWJHUFVTaGFkZXJTdGFnZUVudW0gc3RhZ2U7CiAgICAgRE9N
U3RyaW5nIGVudHJ5UG9pbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCmluZGV4IDEyZTY5MDNmOTk5
YmMzMDYzMWE3OTBlN2FkYjUxNTZmMDBhZjUyMjkuLjgzZGEwNzBlOWZiMzQwMjdhMThiODAwMjkz
ZTEzMmFhM2E3NDAxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVUmVu
ZGVyUGFzc0VuY29kZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BV
QnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNiArNDYsMjEgQEAgV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXI6OldlYkdQVVJlbmRlclBhc3NFbmNvZGVyKFJlZjxXZWJHUFVD
b21tYW5kQnVmZmVyPiYmIGNyZWEKIHsKIH0KIAordm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rl
cjo6c2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIHN0YXJ0U2xvdCwgVmVjdG9yPFJlZlB0
cjxXZWJHUFVCdWZmZXI+PiYmIGJ1ZmZlcnMsIFZlY3Rvcjx1bnNpZ25lZD4mJiBvZmZzZXRzKQor
eworICAgIGlmIChidWZmZXJzLmlzRW1wdHkoKSB8fCBvZmZzZXRzLmlzRW1wdHkoKSB8fCBidWZm
ZXJzLnNpemUoKSAhPSBvZmZzZXRzLnNpemUoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnM6IEludmFsaWQgbnVtYmVyIG9m
IGJ1ZmZlcnMgb3Igb2Zmc2V0cyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gZ3B1QnVmZmVycyA9IGJ1ZmZlcnMubWFwKFtdIChjb25zdCBhdXRvJiBidWZmZXIpIC0+IFJl
Zjxjb25zdCBHUFVCdWZmZXI+IHsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci0+YnVmZmVyKCk7Cisg
ICAgfSk7CisKKyAgICAvLyBGSVhNRTogVXNlIHN0YXJ0U2xvdCBwcm9wZXJseS4KKyAgICBtX3Bh
c3NFbmNvZGVyLT5zZXRWZXJ0ZXhCdWZmZXJzKHN0YXJ0U2xvdCwgV1RGTW92ZShncHVCdWZmZXJz
KSwgV1RGTW92ZShvZmZzZXRzKSk7Cit9CisKIHZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6
OmRyYXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhDb3VudCwgdW5zaWduZWQgbG9uZyBpbnN0YW5jZUNv
dW50LCB1bnNpZ25lZCBsb25nIGZpcnN0VmVydGV4LCB1bnNpZ25lZCBsb25nIGZpcnN0SW5zdGFu
Y2UpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQga2luZCBvZiB2YWxpZGF0aW9uIGRvIHdlIG5lZWQg
dG8gaGFuZGxlIGhlcmU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCBjMzhjOWZkY2U5OWQ0MDZkMDljOGI0
N2E1NDE5ZDYxODg1YzgyOTQxLi4zMTI5NmUzZTllODI4ZTEwNDIxMGVkNDA1OTc4ZTJlMmYzMWZj
MDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTMwLDE2ICszMCwyMCBAQAogI2luY2x1ZGUgIldlYkdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOwogY2xhc3MgR1BVUmVuZGVyUGFzc0VuY29kZXI7Citj
bGFzcyBXZWJHUFVCdWZmZXI7CiAKIGNsYXNzIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyIGZpbmFs
IDogcHVibGljIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmUHRyPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoUmVmPFdlYkdQVUNv
bW1hbmRCdWZmZXI+JiYsIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CiAKKyAgICAvLyBG
SVhNRTogTGFzdCBhcmd1bWVudCBzaG91bGQgYmUgVmVjdG9yPHVuc2lnbmVkIGxvbmc+LiBXaHkg
aXMgdGhlIGdlbmVyYXRlZCBjb2RlIGluY29ycmVjdGx5IGFzc3VtaW5nIHRoZSBJREwgd2FudHMg
YSBzZXF1ZW5jZTx1bnNpZ25lZCBpbnQ+PworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNp
Z25lZCBsb25nLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25l
ZD4mJik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2ln
bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsCmlu
ZGV4IDg2OGY2OGZjNGFkMWZlODhhZTRkZGQ3YzdlNmRkNWY0ZTk2MmM1ODYuLmQxNjJlYzUyOGVk
YmUxZDY4MDU0NDZiZWE5NGZhYmE2MjA5MWU5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGwKQEAgLTMx
LDEyICszMSwxMyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwogICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViR1BVLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBXZWJH
UFVSZW5kZXJQYXNzRW5jb2RlciA6IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKKyAg
ICB2b2lkIHNldFZlcnRleEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8V2ViR1BVQnVm
ZmVyPiBidWZmZXJzLCBzZXF1ZW5jZTx1MzI+IG9mZnNldHMpOworCiAgICAgdm9pZCBkcmF3KHUz
MiB2ZXJ0ZXhDb3VudCwgdTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJzdFZlcnRleCwgdTMyIGZp
cnN0SW5zdGFuY2UpOwogCiAvKiBOb3QgWWV0IEltcGxlbWVudGVkCiAgICAgdm9pZCBzZXRCbGVu
ZENvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpOwogICAgIHZvaWQgc2V0
SW5kZXhCdWZmZXIoV2ViR1BVQnVmZmVyIGJ1ZmZlciwgdTMyIG9mZnNldCk7Ci0gICAgdm9pZCBz
ZXRWZXJ0ZXhCdWZmZXJzKHUzMiBzdGFydFNsb3QsIHNlcXVlbmNlPFdlYkdQVUJ1ZmZlcj4gYnVm
ZmVycywgc2VxdWVuY2U8dTMyPiBvZmZzZXRzKTsKIAogICAgIHZvaWQgZHJhd0luZGV4ZWQodTMy
IGluZGV4Q291bnQsIHUzMiBpbnN0YW5jZUNvdW50LCB1MzIgZmlyc3RJbmRleCwgaTMyIGJhc2VW
ZXJ0ZXgsIHUzMiBmaXJzdEluc3RhbmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApp
bmRleCA5YzI2NDYzOTA4NDZkZGE4MjllZmNjMjg5MTM2OGRjYTg5OTQwNzJiLi5jMTJmNzU4YTdi
ZmNlODlhYWExNGM2MWQyMDVjZWY5M2ZkOWEwMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuaApAQCAtMjgsMTQgKzI4LDE5IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUg
IkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVUlucHV0U3Rh
dGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5o
IgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RydWN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IFdl
YkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewogICAgIHVzaW5nIFByaW1pdGl2ZVRvcG9sb2d5
ID0gR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpQcmltaXRpdmVUb3BvbG9neTsKIAorICAg
IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xv
Z3kgcHJpbWl0aXZlVG9wb2xvZ3k7CisgICAgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5w
dXRTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IuaWRsCmluZGV4IDdmYTU0NDc0M2RmMjY5ZjJjYzM4Yjg0MWYyOGE1N2EyMzUwYTE1
OTQuLmZkZGI2MjhkZmE0MGI5MDUyZjc5ODkyMTg1NjA4MDI0ZWUzOTA5NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmlkbApAQCAtMzYsMTEgKzM2LDE1IEBAIGVudW0gV2ViR1BVUHJp
bWl0aXZlVG9wb2xvZ3kgewogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRS
dW50aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ciA6IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgeworICAgIFdlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlw
dG9yIGZyYWdtZW50U3RhZ2U7CisKICAgICBXZWJHUFVQcmltaXRpdmVUb3BvbG9neSBwcmltaXRp
dmVUb3BvbG9neTsKLSAgICAvKiBUbyBCZSBJbXBsZW1lbnRlZDoKLSAgICBzZXF1ZW5jZTxXZWJH
UFVCbGVuZFN0YXRlPiBibGVuZFN0YXRlczsKLSAgICBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZSBk
ZXB0aFN0ZW5jaWxTdGF0ZTsKLSAgICBXZWJHUFVJbnB1dFN0YXRlIGlucHV0U3RhdGU7Ci0gICAg
V2ViR1BVQXR0YWNobWVudHNTdGF0ZSBhdHRhY2htZW50c1N0YXRlOyAqLworICAgIFdlYkdQVUlu
cHV0U3RhdGVEZXNjcmlwdG9yIGlucHV0U3RhdGU7CisvKiBUbyBCZSBJbXBsZW1lbnRlZDoKKyAg
ICBzZXF1ZW5jZTxXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRvcj4gYmxlbmRTdGF0ZXM7CisgICAg
V2ViR1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlcHRoU3RlbmNpbFN0YXRlOworICAg
IFdlYkdQVUF0dGFjaG1lbnRzU3RhdGVEZXNjcmlwdG9yIGF0dGFjaG1lbnRzU3RhdGU7CiAgICAg
Ly8gVE9ETyBvdGhlciBwcm9wZXJ0aWVzCisqLwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYTUxMzBjMmYxNzQwODYzZGNiZmY1MWUxNjNkZWQ3ZTJjOWIyNmExLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQot
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBXZWJHUFVTaGFkZXJTdGFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlclN0
YWdlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgVkVSVEVYID0g
MDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBGUkFHTUVOVCA9IDE7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFVURSA9IDI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYTM3YTM3NDEyZDQ5MzAxYmJmNTc4MTdlODU2Yzk2ZDA2MzRjZTZi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdl
Yi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKLQotdHlwZWRlZiB1bnNp
Z25lZCBsb25nIHUzMjsKLQotWwotICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKLSAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVy
ZmFjZSBXZWJHUFVTaGFkZXJTdGFnZSB7Ci0gICAgY29uc3QgdTMyIFZFUlRFWCA9IDA7Ci0gICAg
Y29uc3QgdTMyIEZSQUdNRU5UID0gMTsKLSAgICBjb25zdCB1MzIgQ09NUFVURSA9IDI7Ci19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZDgxYTg5ODMzMmQzYzI0
YmFjNzAyOTdjYzQxOWJmNzZlZTFjZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKQEAgLTAs
MCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yID0g
R1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvcjsKK3VzaW5nIFdlYkdQVVZlcnRleEZvcm1hdEVu
dW0gPSBHUFVWZXJ0ZXhGb3JtYXRFbnVtOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44OTZhZWEzMzY3YzE3NjhiOGViZDliNjMzZWJmZDQ4YWJlMDczYWJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBo
dHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNo
LndlYmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BV
VmVydGV4Rm9ybWF0RW51bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3IgeworICAgIHUzMiBzaGFkZXJMb2NhdGlvbjsKKyAgICB1MzIgaW5wdXRTbG90Owor
ICAgIHUzMiBvZmZzZXQ7CisgICAgV2ViR1BVVmVydGV4Rm9ybWF0RW51bSBmb3JtYXQ7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9y
bWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MDc4NmQ1MWZlOGZiYmJjYTQ5ZDQzYjNiMmQ3ZDdiMDc5Y2MwNTFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4Rm9ybWF0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2Ny
aXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhGb3Jt
YXQgPSBHUFVWZXJ0ZXhGb3JtYXQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2ZlZjQxYWYwMzM1Y2YxNmEy
NDZiYzBlMmU5ZjM5YzI5OGJjODdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbApAQCAtMCwwICsxLDQwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVy
L2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sK
KyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitd
IGludGVyZmFjZSBXZWJHUFVWZXJ0ZXhGb3JtYXQgeworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJf
RzMyX0IzMl9BMzIgPSAwOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMyX0IzMiA9IDE7Cisg
ICAgY29uc3QgdTMyIEZMT0FUX1IzMl9HMzIgPSAyOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzIg
PSAzOworICAgIC8vIFRPRE8gb3RoZXIgdmVydGV4IGZvcm1hdHMKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWQzNzU3MzNmNmIxYWY3ZDYzZjkyMzA5MTY5YmE0YWQ4Yzli
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVydGV4
SW5wdXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BV
SW5wdXRTdGVwTW9kZUVudW0gPSBHUFVJbnB1dFN0ZXBNb2RlRW51bTsKK3VzaW5nIFdlYkdQVVZl
cnRleElucHV0RGVzY3JpcHRvciA9IEdQVVZlcnRleElucHV0RGVzY3JpcHRvcjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwN2UzMTUzMDQ5ZTM0NTk1ZDE4ODdkNjg4ODZmOTg2
ODRkOTgyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVz
aWduL3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYg
dTMyIFdlYkdQVUlucHV0U3RlcE1vZGVFbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BV
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVVmVydGV4
SW5wdXREZXNjcmlwdG9yIHsKKyAgICB1MzIgc3RyaWRlOworICAgIFdlYkdQVUlucHV0U3RlcE1v
ZGVFbnVtIHN0ZXBNb2RlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMTYxMjk3ZjNhMjQzOTQxM2Uz
ZGJjMTg0YzQ2MzcyOWNlYWI3YTM3MS4uYjRiZGIyNWI1MTcwNjg3NDQwYmE2NjNmMDZhMDliZWM0
MDFlMGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMjQsOSArMzIyNCwxMyBAQCBKU1dlYkdQVUFk
YXB0ZXIuY3BwCiBKU1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVCdWZmZXIu
Y3BwCiBKU1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCitKU1dlYkdQVUJ1ZmZlclVzYWdlLmNw
cAogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogSlNXZWJHUFVDb2xvci5jcHAKIEpTV2ViR1BV
RGV2aWNlLmNwcAorSlNXZWJHUFVJbmRleEZvcm1hdC5jcHAKK0pTV2ViR1BVSW5wdXRTdGF0ZURl
c2NyaXB0b3IuY3BwCitKU1dlYkdQVUlucHV0U3RlcE1vZGUuY3BwCiBKU1dlYkdQVVF1ZXVlLmNw
cAogSlNXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcAogSlNXZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5jcHAKQEAgLTMyMzksMTEgKzMyNDMsMTMgQEAgSlNXZWJHUFVSZW5kZXJQ
aXBlbGluZS5jcHAKIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAogSlNXZWJH
UFVTaGFkZXJNb2R1bGUuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCi1K
U1dlYkdQVVNoYWRlclN0YWdlLmNwcAogSlNXZWJHUFVTd2FwQ2hhaW4uY3BwCiBKU1dlYkdQVVRl
eHR1cmUuY3BwCiBKU1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmNwcAogSlNXZWJHUFVUZXh0dXJl
Vmlldy5jcHAKK0pTV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BV
VmVydGV4Rm9ybWF0LmNwcAorSlNXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuY3BwCiBKU1dl
Yk1ldGFsQnVmZmVyLmNwcAogSlNXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYk1ldGFs
Q29tbWFuZFF1ZXVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDA5NGUyNzM3NWFjOGRlOWI2ZDZmYzU5NzhlYjhmMWU4Yjcy
ZGRiZWUuLjgxMTBiNjg0OGNlYjM5YTRjYjk5ZjhhZDM0MzM5ZWQxNmUwNmMzMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEz
Nzk4LDggKzEzNzk4LDE0IEBACiAJCUQwNjE1RkNDMjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVT
aGFkZXJNb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNjE1RkNEMjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJH
UFVTaGFkZXJNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0UyMTdGRTVDNjAwOEE0
OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1
IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwNjNBRTRFMjFDMDgxMEEwMDBFNkEzNSAvKiBX
ZWJHUFVCdWZmZXJVc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUUzRjIxQzA1REREMDAwRTZBMzUgLyog
V2ViR1BVQnVmZmVyVXNhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQnVmZmVyVXNhZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDAyMUMwNURERDAwMEU2QTM1IC8q
IFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ0MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJH
UFVWZXJ0ZXhGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4Rm9ybWF0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEzNSAvKiBX
ZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleEZvcm1hdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ2MjFDMDY2MjYwMDBFNkEzNSAvKiBXZWJH
UFVJbnB1dFN0ZXBNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDcyMUMwNjYyNjAwMEU2QTM1IC8q
IFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0ODIxQzA2NkRCMDAwRTZBMzUgLyog
V2ViR1BVSW5kZXhGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5kZXhGb3JtYXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2QTM1IC8q
IFdlYkdQVUluZGV4Rm9ybWF0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVJbmRleEZvcm1hdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1v
dmVGb3JtYXRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW92
ZUZvcm1hdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEUw
Q0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwN0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRM
aXN0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
ZXJ0TGlzdENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MzAs
OCArMTM4MzYsNiBAQAogCQlEMEJENEY1QjE0MDg4NTBGMDA2ODM5QjYgLyogRGljdGF0aW9uQ29t
bWFuZElPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25Db21t
YW5kSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVCMjE4M0NGQTIw
MDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMEM0MTlFQzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURl
c2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBDNDE5RUUyMTgzRDlDODAwOUVDMURFIC8qIFdl
YkdQVVNoYWRlclN0YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNoYWRlclN0YWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFERSAvKiBX
ZWJHUFVTaGFkZXJTdGFnZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyU3RhZ2UuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYxMjE4
M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDBDNDE5RjIyMTgzRUZFQzAwOUVDMURFIC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzODUzLDYgKzEzODU3LDE1IEBACiAJ
CUQwRDg2NDhFMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQ
VUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRDg2NDkxMjFCNzYw
QzQwMDNDOTgzQyAvKiBHUFVCdWZmZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQ
VUJ1ZmZlck1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEQ4NjQ5MjIx
Qjc2MEYyMDAzQzk4M0MgLyogR1BVQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJ1ZmZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5MzIxQkExNzNEMDAzQzk4M0Mg
LyogV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0
OTQyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQwRDg2NDk1MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVE
ZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTYyMUJBMThGNDAwM0M5
ODNDIC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZl
cnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5NzIxQkExOUE3MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4M0MgLyogV2ViR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5OTIxQkExQjFGMDAz
Qzk4M0MgLyogR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0
OUIyMUJBMUMyRDAwM0M5ODNDIC8qIEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMEQ4NjQ5QzIxQkExQ0U4MDAzQzk4M0MgLyogR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVZlcnRleElucHV0RGVzY3JpcHRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMERBMEJFNDIxNzkzMEUyMDA3RkUyQUMg
LyogV2ViR1BVU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMERBMEJFNTIxNzkzMEUyMDA3RkUyQUMgLyog
V2ViR1BVU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJB
QyAvKiBXZWJHUFVTd2FwQ2hhaW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAyNCw2ICsxODAzNyw3IEBACiAJCQkJMzEyRkY4
QkQyMUE0QzJGMTAwRUIxOTlEIC8qIEdQVUNvbW1hbmRCdWZmZXIuaCAqLywKIAkJCQkzMTJGRjhC
RjIxQTRDMkYxMDBFQjE5OUQgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTJGRjhCRTIxQTRD
MkYxMDBFQjE5OUQgLyogR1BVRGV2aWNlLmggKi8sCisJCQkJRDBEODY0OTkyMUJBMUIxRjAwM0M5
ODNDIC8qIEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJG
NDAwRUIxOTlEIC8qIEdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkzMTJGRjhD
MjIxQTRDMkYzMDBFQjE5OUQgLyogR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAqLywKIAkJ
CQlEMDMyMTFDRjIxQUM5NTRFMDA3NjNDRjIgLyogR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIu
aCAqLywKQEAgLTE4MDM4LDYgKzE4MDUyLDggQEAKIAkJCQkzMTJGRjhCQTIxQTRDMkVGMDBFQjE5
OUQgLyogR1BVU3dhcENoYWluLmggKi8sCiAJCQkJMzEyRkY4QzUyMUE0QzJGNDAwRUIxOTlEIC8q
IEdQVVRleHR1cmUuaCAqLywKIAkJCQkzMTJGRjhDMzIxQTRDMkYzMDBFQjE5OUQgLyogR1BVVGV4
dHVyZUZvcm1hdEVudW0uaCAqLywKKwkJCQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDlDMjFCQTFDRTgwMDND
OTgzQyAvKiBHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKIAkJCQk0OTg3NzBENzEyNDJD
NTM1MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgKi8sCiAJCQkJNDk4NzcwRDgxMjQyQzUzNTAwMjIy
NkJBIC8qIFRleHR1cmUuaCAqLywKIAkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGls
aW5nRGF0YS5jcHAgKi8sCkBAIC0yNTUxNSw2ICsyNTUzMSwxMCBAQAogCQkJCUQwRDg2NDhFMjFC
NzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovLAogCQkJCUQwRDg2NDgyMjFCNjE3
MjcwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDBEODY0ODMy
MUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsICovLAorCQkJCUQw
NjNBRTRFMjFDMDgxMEEwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAorCQkJCUQw
NjNBRTNGMjFDMDVEREQwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAorCQkJCUQw
NjNBRTRDMjFDMDdBQjUwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8sCisJCQkJ
RDA2M0FFNDAyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLywKIAkJ
CQlEMDAxRDlBQzIxQjBDODFBMDAyM0I5QkMgLyogV2ViR1BVQ29sb3IuaCAqLywKIAkJCQlEMDAx
RDlBRDIxQjBDODFBMDAyM0I5QkMgLyogV2ViR1BVQ29sb3IuaWRsICovLAogCQkJCUQwRUFDRjc3
MjE5MzcyMjgwMDBGQTc1QyAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCAqLywKQEAgLTI1NTIz
LDYgKzI1NTQzLDEyIEBACiAJCQkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURl
dmljZS5jcHAgKi8sCiAJCQkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmlj
ZS5oICovLAogCQkJCUQwMEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaWRs
ICovLAorCQkJCUQwNjNBRTQ4MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5o
ICovLAorCQkJCUQwNjNBRTQ5MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5p
ZGwgKi8sCisJCQkJRDBEODY0OTMyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLmggKi8sCisJCQkJRDBEODY0OTQyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlu
cHV0U3RhdGVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NjIxQzA2NjI2MDAwRTZBMzUg
LyogV2ViR1BVSW5wdXRTdGVwTW9kZS5oICovLAorCQkJCUQwNjNBRTQ3MjFDMDY2MjYwMDBFNkEz
NSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbCAqLywKIAkJCQlEMEM0MTlGMDIxODNFQjMxMDA5
RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQwQzQxOUYx
MjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLywK
IAkJCQlEMEM0MTlFQjIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2Ny
aXB0b3IuaCAqLywKQEAgLTI1NTUzLDggKzI1NTc5LDYgQEAKIAkJCQlEMDYxNUZDRTIxN0ZFNUM2
MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLywKIAkJCQlEMDYwRDg4NzIxODI2
OTcwMDAzMzkzMTggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oICovLAogCQkJCUQw
NjBEODg0MjE4MjVENUYwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlk
bCAqLywKLQkJCQlEMEM0MTlFRTIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVyU3RhZ2Uu
aCAqLywKLQkJCQlEMEM0MTlFRjIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVyU3RhZ2Uu
aWRsICovLAogCQkJCUQwREEwQkU1MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4u
Y3BwICovLAogCQkJCUQwREEwQkU0MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4u
aCAqLywKIAkJCQlEMERBMEJFNjIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENoYWluLmlk
bCAqLywKQEAgLTI1NTY2LDggKzI1NTkwLDEyIEBACiAJCQkJRDBFQUNGODgyMTkzRUU0RTAwMEZB
NzVDIC8qIFdlYkdQVVRleHR1cmVWaWV3LmNwcCAqLywKIAkJCQlEMEVBQ0Y4NzIxOTNFRTRFMDAw
RkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaCAqLywKIAkJCQlEMEVBQ0Y4OTIxOTNFRTRFMDAw
RkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaWRsICovLAotCQkJCUQwNjNBRTRDMjFDMDdBQjUw
MDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8sCi0JCQkJRDA2M0FFNEUyMUMwODEw
QTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8sCisJCQkJRDBEODY0OTUyMUJBMThG
NDAwM0M5ODNDIC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQlE
MEQ4NjQ5NjIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRv
ci5pZGwgKi8sCisJCQkJRDA2M0FFNDQyMUMwNjE3RDAwMEU2QTM1IC8qIFdlYkdQVVZlcnRleEZv
cm1hdC5oICovLAorCQkJCUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJHUFVWZXJ0ZXhG
b3JtYXQuaWRsICovLAorCQkJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0
ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4M0MgLyog
V2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2Vi
Z3B1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNjg2LDkgKzMxNzE0LDkgQEAK
IAkJCQk2Rjk5NUEyNjFBNzA3OEIxMDBBNzM1RjQgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzdBMTdBNzgxMkYyODY0MjAwNEUwMkY2IC8qIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwRDg2NDg0MjFCNjE3Mjcw
MDNDOTgzQyAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkz
MTg0MzZERTIxQjlEQUFGMDBFRDM4M0UgLyogV2ViR1BVTGF5ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQwRDg2NDg0MjFCNjE3MjcwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTg0MzZERTIxQjlEQUFGMDBFRDM4M0UgLyogV2ViR1BVTGF5
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxODQzNkRFMjFCOURBQUYwMEVEMzgzRSAvKiBXZWJH
UFVMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQjcxRkFBNDQ2MjAwMzdEMUU2IC8q
IFdlYkhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMjUxODdCOEFDMjAwODQz
QjEwIC8qIFdlYkluamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NEZF
MzAxODY0Q0I4NDAwODQzQjEwIC8qIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKaW5kZXggZDI1NjgyN2ViOGRmY2M4N2YzMWYwNjQ0YjQ4OGFjYzQyNGI0N2FjZC4uZTBi
Mzk3ZjNkZGQ2NDNlN2U0ZTEzZmM5ODUzZTVlMDFkMWIxZmNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTkzLDE2ICsxOTMs
MTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFdlYkdQVUJ1ZmZlclVzYWdlKSBc
CiAgICAgbWFjcm8oV2ViR1BVQ29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYkdQVURldmlj
ZSkgXAorICAgIG1hY3JvKFdlYkdQVUluZGV4Rm9ybWF0KSBcCisgICAgbWFjcm8oV2ViR1BVSW5w
dXRTdGVwTW9kZSkgXAogICAgIG1hY3JvKFdlYkdQVVF1ZXVlKSBcCiAgICAgbWFjcm8oV2ViR1BV
UHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIpIFwKICAgICBtYWNybyhXZWJHUFVSZW5kZXJpbmdDb250
ZXh0KSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIpIFwKICAgICBtYWNybyhX
ZWJHUFVSZW5kZXJQaXBlbGluZSkgXAotICAgIG1hY3JvKFdlYkdQVVNoYWRlclN0YWdlKSBcCiAg
ICAgbWFjcm8oV2ViR1BVU2hhZGVyTW9kdWxlKSBcCiAgICAgbWFjcm8oV2ViR1BVU3dhcENoYWlu
KSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZSkgXAogICAgIG1hY3JvKFdlYkdQVVRleHR1cmVW
aWV3KSBcCisgICAgbWFjcm8oV2ViR1BVVmVydGV4Rm9ybWF0KSBcCiAgICAgbWFjcm8oV2ViTWV0
YWxCdWZmZXIpIFwKICAgICBtYWNybyhXZWJNZXRhbENvbW1hbmRCdWZmZXIpIFwKICAgICBtYWNy
byhXZWJNZXRhbENvbW1hbmRRdWV1ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYTc4NDc3M2NhNTg1ODQyZWM1ZGQ5Y2YwYzVkNjg1ZjQxMTA1YTU3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCIKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVUluZGV4Rm9ybWF0RW51bSA9IHVuc2lnbmVk
IGxvbmc7CisKK2NsYXNzIEdQVUluZGV4Rm9ybWF0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVSW5k
ZXhGb3JtYXQ+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW0gOiBHUFVJbmRleEZvcm1hdEVudW0g
eworICAgICAgICBVaW50MTYgPSAwLAorICAgICAgICBVaW50MzIgPSAxCisgICAgfTsKK307CisK
K3N0cnVjdCBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciB7CisgICAgR1BVSW5kZXhGb3JtYXRFbnVt
IGluZGV4Rm9ybWF0OworCisgICAgVmVjdG9yPEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3I+
IGF0dHJpYnV0ZXM7CisgICAgVmVjdG9yPEdQVVZlcnRleElucHV0RGVzY3JpcHRvcj4gaW5wdXRz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggM2I2NGQwNDRjYTVlOWMxYWJkYTBhZGUyNzRm
YjIxYmNiOWYwMDQzNS4uYzkwNzFjYmY2MWY1YTNjMmFhZWFlZGI5YmZjMTBjYjE2NDMwZjc2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTMyLDExICszMiwxMyBAQAogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIE9CSkNfUFJPVE9DT0woTVRM
UmVuZGVyQ29tbWFuZEVuY29kZXIpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdQ
VUJ1ZmZlcjsKIGNsYXNzIEdQVUNvbW1hbmRCdWZmZXI7CiBjbGFzcyBHUFVSZW5kZXJQaXBlbGlu
ZTsKIApAQCAtNTEsNiArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBpcGVsaW5lKFJl
ZjxHUFVSZW5kZXJQaXBlbGluZT4mJikgZmluYWw7CiAKKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZl
cnModW5zaWduZWQgbG9uZywgVmVjdG9yPFJlZjxjb25zdCBHUFVCdWZmZXI+PiYmLCBWZWN0b3I8
dW5zaWduZWQ+JiYpOwogICAgIHZvaWQgZHJhdyh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25n
LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCAxNGVjN2QyZjk3ZWJjNDRjN2IzNmI5NWVlNGE1
Y2EzYmNjZDliZDI4Li41YjQzYjFlZTFiZmNhODc3MGI0YjAzODg5N2Q3MjE1YzMyYjZhYzBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiR1BV
UGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCIKIApAQCAtNDYsNiArNDcsNyBAQCBzdHJ1Y3QgR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIHsKICAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRv
ciB2ZXJ0ZXhTdGFnZTsKICAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBmcmFnbWVudFN0
YWdlOwogICAgIFByaW1pdGl2ZVRvcG9sb2d5IHByaW1pdGl2ZVRvcG9sb2d5OworICAgIEdQVUlu
cHV0U3RhdGVEZXNjcmlwdG9yIGlucHV0U3RhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNThk
NmRkYTFjYTdjZmMxNTc5MWUyNjI1ZmIxODYzNTkzMGY0MmViCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3IuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBHUFVWZXJ0ZXhGb3JtYXRFbnVtID0gdW5zaWduZWQg
bG9uZzsKKworY2xhc3MgR1BVVmVydGV4Rm9ybWF0IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVVmVy
dGV4Rm9ybWF0PiB7CitwdWJsaWM6CisgICAgZW51bSBFbnVtIDogR1BVVmVydGV4Rm9ybWF0RW51
bSB7CisgICAgICAgIEZsb2F0UjMyRzMyQjMyQTMyID0gMCwKKyAgICAgICAgRmxvYXRSMzJHMzJC
MzIgPSAxLAorICAgICAgICBGbG9hdFIzMkczMiA9IDIsCisgICAgICAgIEZsb2F0UjMyID0gMwor
ICAgIH07Cit9OworCitzdHJ1Y3QgR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciB7CisgICAg
dW5zaWduZWQgbG9uZyBzaGFkZXJMb2NhdGlvbjsKKyAgICB1bnNpZ25lZCBsb25nIGlucHV0U2xv
dDsKKyAgICB1bnNpZ25lZCBsb25nIG9mZnNldDsKKyAgICBHUFVWZXJ0ZXhGb3JtYXRFbnVtIGZv
cm1hdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYxOWIyMjZl
ODNiNTkxNTc5YzE4ZDI1MjBlODQxYjM5YmJkMGViYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit1c2luZyBHUFVJbnB1dFN0ZXBNb2RlRW51bSA9IHVuc2lnbmVkIGxvbmc7CisK
K2NsYXNzIEdQVUlucHV0U3RlcE1vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVJbnB1dFN0ZXBN
b2RlPiB7CitwdWJsaWM6CisgICAgZW51bSBFbnVtIDogR1BVSW5wdXRTdGVwTW9kZUVudW0gewor
ICAgICAgICBWZXJ0ZXggPSAwLAorICAgICAgICBJbnN0YW5jZSA9IDEKKyAgICB9OworfTsKKwor
c3RydWN0IEdQVVZlcnRleElucHV0RGVzY3JpcHRvciB7CisgICAgdW5zaWduZWQgbG9uZyBzdHJp
ZGU7CisgICAgR1BVSW5wdXRTdGVwTW9kZUVudW0gc3RlcE1vZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNv
ZGVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQppbmRleCAyYzU4MmIwYjMyZDhkNDEyZDhjZDY1
NGE0NjlhYTdlNmI5ZGE3YTQ4Li45ZTI3MDZlYTc5ZjMxNzU5ZGViNWU2ZWYyZTk3ZmI0MjJmY2Zl
N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2ltcG9ydCAiR1BVQnVmZmVy
LmgiCiAjaW1wb3J0ICJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW1wb3J0ICJHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvci5oIgogI2ltcG9ydCAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKQEAgLTgzLDYgKzg0
LDEyIEBAIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFBpcGVsaW5lKFJlZjxHUFVSZW5k
ZXJQaXBlbGluZT4mJiBwaXBlbGluZSkKICAgICBtX3BpcGVsaW5lID0gV1RGTW92ZShwaXBlbGlu
ZSk7CiB9CiAKK3ZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnModW5z
aWduZWQgbG9uZyBpbmRleCwgVmVjdG9yPFJlZjxjb25zdCBHUFVCdWZmZXI+PiYmIGJ1ZmZlcnMs
IFZlY3Rvcjx1bnNpZ25lZD4mJiBvZmZzZXRzKSAKK3sKKyAgICAvLyBGSVhNRTogT25seSB3b3Jy
eSBhYm91dCB0aGUgZmlyc3QgYnVmZmVyIGZvciBub3csIGFuZCB0cmVhdCBzdGFydFNsb3QgYXMg
dGhlIGluZGV4LgorICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0VmVydGV4QnVm
ZmVyOmJ1ZmZlcnNbMF0tPnBsYXRmb3JtQnVmZmVyKCkgb2Zmc2V0Om9mZnNldHNbMF0gYXRJbmRl
eDppbmRleF07Cit9CisKIHN0YXRpYyBNVExQcmltaXRpdmVUeXBlIHByaW1pdGl2ZVR5cGVGb3JH
UFVQcmltaXRpdmVUb3BvbG9neShQcmltaXRpdmVUb3BvbG9neSB0eXBlKQogewogICAgIHN3aXRj
aCAodHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCBh
ODA2NWZlYmJhZDQ3ODM3MDNiYmI2ZTJjY2MxYWY5YzU0ZGUwNDg1Li5hYjNkNTYyYTRkYzM3Zjdm
OTJjZjYwZjcxZjkzNmI3Yjg2NGEwMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxp
bmVNZXRhbC5tbQpAQCAtODIsNiArODIsNDIgQEAgc3RhdGljIGJvb2wgc2V0RnVuY3Rpb25zRm9y
UGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgTVQKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHZvaWQgc2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5l
RGVzY3JpcHRvcihNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNv
bnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBhdXRv
IG10bFZlcnRleERlc2NyaXB0b3IgPSBhZG9wdE5TKFtNVExWZXJ0ZXhEZXNjcmlwdG9yIG5ld10p
OworCisgICAgLy8gUG9wdWxhdGUgdmVydGV4IGF0dHJpYnV0ZXMsIGlmIGFueS4KKyAgICBjb25z
dCBhdXRvJiBhdHRyaWJ1dGVzID0gZGVzY3JpcHRvci5pbnB1dFN0YXRlLmF0dHJpYnV0ZXM7CisK
KyAgICAvLyBGSVhNRTogV2hhdCBraW5kIG9mIHZhbGlkYXRpb24gaXMgbmVlZGVkIGhlcmU/Cisg
ICAgTVRMVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvckFycmF5ICphdHRyaWJ1dGVBcnJheSA9IG10
bFZlcnRleERlc2NyaXB0b3IuZ2V0KCkuYXR0cmlidXRlczsKKworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBNVExWZXJ0ZXhBdHRy
aWJ1dGVEZXNjcmlwdG9yICptdGxBdHRyaWJ1dGVEZXNjID0gW2F0dHJpYnV0ZUFycmF5IG9iamVj
dEF0SW5kZXhlZFN1YnNjcmlwdDppXTsKKyAgICAgICAgLy8gRklYTUU6IERvZXMgaW5wdXRTbG90
IG5lZWQgdG8gYmUgdHJhbnNsYXRlZD8gVXNlIHNoYWRlckxvY2F0aW9uIGFzIHRoZSBidWZmZXJJ
bmRleCBmb3Igbm93LgorICAgICAgICAvLyBGSVhNRTogSG9vayB1cCBXZWJHUFVWZXJ0ZXhGb3Jt
YXRFbnVtLiBEZWZhdWx0IHRvIHRoaXMgTVRMVmVydGV4Rm9ybWF0IGZvciBub3cuCisgICAgICAg
IG10bEF0dHJpYnV0ZURlc2MuZm9ybWF0ID0gTVRMVmVydGV4Rm9ybWF0VVNob3J0OworICAgICAg
ICBtdGxBdHRyaWJ1dGVEZXNjLm9mZnNldCA9IGF0dHJpYnV0ZXNbaV0ub2Zmc2V0OworICAgICAg
ICBtdGxBdHRyaWJ1dGVEZXNjLmJ1ZmZlckluZGV4ID0gYXR0cmlidXRlc1tpXS5zaGFkZXJMb2Nh
dGlvbjsKKyAgICAgICAgW210bFZlcnRleERlc2NyaXB0b3IuZ2V0KCkuYXR0cmlidXRlcyBzZXRP
YmplY3Q6bXRsQXR0cmlidXRlRGVzYyBhdEluZGV4ZWRTdWJzY3JpcHQ6aV07CisgICAgfQorCisg
ICAgLy8gUG9wdWxhdGUgdmVydGV4IGJ1ZmZlciBsYXlvdXRzLCBpZiBhbnkuCisgICAgY29uc3Qg
YXV0byYgaW5wdXRzID0gZGVzY3JpcHRvci5pbnB1dFN0YXRlLmlucHV0czsKKworICAgIE1UTFZl
cnRleEJ1ZmZlckxheW91dERlc2NyaXB0b3JBcnJheSAqbGF5b3V0QXJyYXkgPSBtdGxWZXJ0ZXhE
ZXNjcmlwdG9yLmdldCgpLmxheW91dHM7CisKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGlu
cHV0cy5zaXplKCk7ICsraikgeworICAgICAgICBNVExWZXJ0ZXhCdWZmZXJMYXlvdXREZXNjcmlw
dG9yICptdGxMYXlvdXREZXNjID0gW2xheW91dEFycmF5IG9iamVjdEF0SW5kZXhlZFN1YnNjcmlw
dDpqXTsKKyAgICAgICAgLy8gRklYTUU6IEhvb2sgdXAgV2ViR1BVSW5wdXRTdGVwTW9kZUVudW0u
IExlYXZlIGFzIGRlZmF1bHQgTVRMVmVydGV4U3RlcEZ1bmN0aW9uUGVyVmVydGV4IGZvciBub3cu
CisgICAgICAgIG10bExheW91dERlc2Muc3RyaWRlID0gaW5wdXRzW2pdLnN0cmlkZTsKKyAgICAg
ICAgW210bFZlcnRleERlc2NyaXB0b3IuZ2V0KCkubGF5b3V0cyBzZXRPYmplY3Q6bXRsTGF5b3V0
RGVzYyBhdEluZGV4ZWRTdWJzY3JpcHQ6al07CisgICAgfQorCisgICAgLy8gRklYTUU6IFdoYXQg
aGFwcGVucyBoZXJlIHdoZW4gbXRsVmVydGV4RGVzY3JpcHRvciBSZXRhaW5QdHIgaXMgZGVzdHJv
eWVkPworICAgIG10bERlc2NyaXB0b3IudmVydGV4RGVzY3JpcHRvciA9IG10bFZlcnRleERlc2Ny
aXB0b3IuZ2V0KCk7Cit9CisKIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVuZGVyUGlw
ZWxpbmU6OmNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlv
bk5hbWUgPSAiR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgpIjsKQEAgLTEwNyw2ICsxNDMsOCBA
QCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoY29u
c3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVQogICAgIGlmICghc2V0RnVuY3Rpb25zRm9yUGlwZWxp
bmVEZXNjcmlwdG9yKGZ1bmN0aW9uTmFtZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgZGVzY3JpcHRv
cikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgc2V0SW5wdXRTdGF0ZUZvclBpcGVs
aW5lRGVzY3JpcHRvcihtdGxEZXNjcmlwdG9yLmdldCgpLCBkZXNjcmlwdG9yKTsKKwogICAgIC8v
IEZJWE1FOiBHZXQgdGhlIHBpeGVsRm9ybWF0IGFzIGNvbmZpZ3VyZWQgZm9yIHRoZSBjb250ZXh0
L0NBTWV0YWxMYXllci4KICAgICBtdGxEZXNjcmlwdG9yLmdldCgpLmNvbG9yQXR0YWNobWVudHNb
MF0ucGl4ZWxGb3JtYXQgPSBNVExQaXhlbEZvcm1hdEJHUkE4VW5vcm07CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMGVi
OGU5MThkMTM4NGRjYmU3OTY4NjIyNzUzMzE0YzkwY2I5MmE5Li4yZmRmODZjMmE5MTU2NWEwMjhh
ZjYxMDk3ZjdmNDM1ZTI1ZmJmMzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTItMTEg
IEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBW
ZXJ0ZXggYnVmZmVycyBhbmQgV2ViR1BVSW5wdXRTdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNjExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdmFyaWF0aW9uIG9mIHNpbXBsZS10cmlh
bmdsZS1zdHJpcCB0byB1c2UgYSB2ZXJ0ZXggYnVmZmVyLiBSZWZhY3RvcmVkIGFmb3JlbWVudGlv
bmVkCisgICAgICAgIHRlc3QgdG8gc2hhcmUgY29kZSB3aXRoIG5ldyB0ZXN0LgorCisgICAgICAg
ICogd2ViZ3B1L2pzL2Jhc2ljLXdlYmdwdS1mdW5jdGlvbnMuanM6CisgICAgICAgIChzZXRVcFBp
cGVsaW5lRGVzY3JpcHRvcik6CisgICAgICAgICogd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMu
anM6IEFkZGVkLgorICAgICAgICAoYXN5bmMuZ2V0QmFzaWNEZXZpY2UpOgorICAgICAgICAoY3Jl
YXRlQmFzaWNDb250ZXh0KToKKyAgICAgICAgKGNyZWF0ZUJhc2ljUGlwZWxpbmUpOgorICAgICAg
ICAoYmVnaW5CYXNpY1JlbmRlclBhc3MpOgorICAgICAgICAqIHdlYmdwdS9yZW5kZXItcGlwZWxp
bmVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1s
OgorICAgICAgICAqIHdlYmdwdS9zaW1wbGUtdHJpYW5nbGUtc3RyaXAuaHRtbDoKKyAgICAgICAg
KiB3ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sOiBB
ZGRlZC4KKwogMjAxOC0xMi0wNyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBXZWJHUFVCdWZmZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzIGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L2pzL2Jhc2ljLXdlYmdwdS1mdW5jdGlvbnMuanMKaW5kZXggYjNjYmJjMjFiZDQ5
YzI4MWUyYTBhOWYwZjExZDVhM2EyMDQ3MDE0MS4uMGQwODcwMjYyZjcwMDllMWEzZDkzMGVlZDRk
YWU0OWUwMDA5OWM2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL2Jhc2ljLXdl
YmdwdS1mdW5jdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL2Jhc2ljLXdlYmdw
dS1mdW5jdGlvbnMuanMKQEAgLTkwLDE5ICs5MCwxOCBAQCBmdW5jdGlvbiBzZXRVcE1vZHVsZSgp
IHsKIAogZnVuY3Rpb24gc2V0VXBQaXBlbGluZURlc2NyaXB0b3IoKSB7CiAgICAgdmVydGV4U3Rh
Z2VEZXNjcmlwdG9yID0geyAKLSAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsIAotICAgICAg
ICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuVkVSVEVYLCAKKyAgICAgICAgbW9kdWxlOiBzaGFk
ZXJNb2R1bGUsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCiAgICAgfTsKIAog
ICAgIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yID0gewogICAgICAgICBtb2R1bGU6IHNoYWRlck1v
ZHVsZSwKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLkZSQUdNRU5ULAogICAgICAg
ICBlbnRyeVBvaW50OiAiZnJhZ21lbnRfbWFpbiIKICAgICB9OwogCiAgICAgcGlwZWxpbmVEZXNj
cmlwdG9yID0gewotICAgICAgICBzdGFnZXM6IFt2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IsIGZyYWdt
ZW50U3RhZ2VEZXNjcmlwdG9yXSwKKyAgICAgICAgdmVydGV4U3RhZ2U6IHZlcnRleFN0YWdlRGVz
Y3JpcHRvciwgCisgICAgICAgIGZyYWdtZW50U3RhZ2U6IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9y
LAogICAgICAgICBwcmltaXRpdmVUb3BvbG9neTogInRyaWFuZ2xlTGlzdCIKICAgICB9OwogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMgYi9M
YXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWFl
ODM4NjJiYTFlODUxNjhhZTcwYTA3NjNhODM4YTQ5OGVjNmRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKQEAgLTAsMCArMSw1MiBA
QAorYXN5bmMgZnVuY3Rpb24gZ2V0QmFzaWNEZXZpY2UoKSB7CisgICAgLy8gRklYTUU6IHJlcXVl
c3RBZGFwdGVyIHNob3VsZCB0YWtlIGEgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuCisgICAgY29u
c3QgYWRhcHRlciA9IGF3YWl0IHdpbmRvdy53ZWJncHUucmVxdWVzdEFkYXB0ZXIoe30pOworICAg
IGNvbnN0IGRldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7CisgICAgcmV0dXJuIGRldmlj
ZTsKK30KKworZnVuY3Rpb24gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZhcywgZGV2aWNlKSB7Cisg
ICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJncHUiKTsKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IGFuZCBzcGVjaWZ5IGEgV2ViR1BVVGV4dHVyZVVzYWdlRW51bS4KKyAg
ICBjb250ZXh0LmNvbmZpZ3VyZSh7IGRldmljZTogZGV2aWNlLCBmb3JtYXQ6IkI4RzhSOEE4VW5v
cm0iLCB3aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQgfSk7CisgICAg
cmV0dXJuIGNvbnRleHQ7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVy
TW9kdWxlLCBkZXZpY2UsIGlucHV0U3RhdGVEZXNjcmlwdG9yKSB7CisgICAgdmVydGV4U3RhZ2VE
ZXNjcmlwdG9yID0geworICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKKyAgICAgICAgZW50
cnlQb2ludDogInZlcnRleF9tYWluIiAKKyAgICB9OworCisgICAgZnJhZ21lbnRTdGFnZURlc2Ny
aXB0b3IgPSB7CisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAorICAgICAgICBlbnRyeVBv
aW50OiAiZnJhZ21lbnRfbWFpbiIKKyAgICB9OworCisgICAgcGlwZWxpbmVEZXNjcmlwdG9yID0g
eworICAgICAgICB2ZXJ0ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9yLAorICAgICAgICBm
cmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKKyAgICAgICAgcHJpbWl0aXZl
VG9wb2xvZ3k6ICJ0cmlhbmdsZVN0cmlwIiwKKyAgICAgICAgaW5wdXRTdGF0ZTogaW5wdXRTdGF0
ZURlc2NyaXB0b3IKKyAgICB9OworCisgICAgcmV0dXJuIGRldmljZS5jcmVhdGVSZW5kZXJQaXBl
bGluZShwaXBlbGluZURlc2NyaXB0b3IpOworfQorCitmdW5jdGlvbiBiZWdpbkJhc2ljUmVuZGVy
UGFzcyhjb250ZXh0LCBjb21tYW5kQnVmZmVyKSB7CisgICAgY29uc3QgYmFzaWNBdHRhY2htZW50
ID0geworICAgICAgICBhdHRhY2htZW50OiBjb250ZXh0LmdldE5leHRUZXh0dXJlKCkuY3JlYXRl
RGVmYXVsdFRleHR1cmVWaWV3KCksCisgICAgICAgIGNsZWFyQ29sb3I6IHsgcjogMS4wLCBnOiAw
LCBiOiAwLCBhOiAxLjAgfQorICAgIH0KKworICAgIC8vIEZJWE1FOiBGbGVzaCBvdXQgdGhlIHJl
c3Qgb2YgV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuIAorICAgIHJldHVybiBjb21tYW5kQnVm
ZmVyLmJlZ2luUmVuZGVyUGFzcyh7IGNvbG9yQXR0YWNobWVudHMgOiBbYmFzaWNBdHRhY2htZW50
XSB9KTsKK30KKworZnVuY3Rpb24gZW5jb2RlQmFzaWNDb21tYW5kcyhyZW5kZXJQYXNzRW5jb2Rl
ciwgcmVuZGVyUGlwZWxpbmUsIHZlcnRleEJ1ZmZlcikgeworICAgIGlmICh2ZXJ0ZXhCdWZmZXIp
CisgICAgICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFZlcnRleEJ1ZmZlcnMoMCwgW3ZlcnRleEJ1
ZmZlcl0sIFswXSk7CisgICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUocmVuZGVyUGlw
ZWxpbmUpOworICAgIHJlbmRlclBhc3NFbmNvZGVyLmRyYXcoNCwgMSwgMCwgMCk7CisgICAgcmV0
dXJuIHJlbmRlclBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3Rl
ZC50eHQKaW5kZXggYjZkODZiMGFjYWFlMjZlZDVmOGFkYjc1ODU3Y2RmODg5ZTYzNjRmNi4uZjI1
MDkyNjIxNDk2MGY5YTc1M2Q0ZDdiMWI1NjA0NGQ5YmFkNzQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDYgQEAg
UEFTUyBXZWJHUFVSZW5kZXJQaXBlbGluZSB3aXRoIGludmFsaWQgV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yIHdhcyBub3QgY3IKIFBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBp
bnZhbGlkIHNoYWRlciBtb2R1bGUgd2FzIG5vdCBjcmVhdGVkLgogUEFTUyBXZWJHUFVSZW5kZXJQ
aXBlbGluZSB3aXRoIGludmFsaWQgdmVydGV4IHNoYWRlciBzdGFnZSB3YXMgbm90IGNyZWF0ZWQu
CiBQQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCB2ZXJ0ZXggc2hhZGVyIGVu
dHJ5IHBvaW50IHdhcyBub3QgY3JlYXRlZC4KLVBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0
aCBpbnZhbGlkIFdlYkdQVVNoYWRlclN0YWdlRW51bSB3YXMgbm90IGNyZWF0ZWQuCiBBbGwgdGVz
dHMgY29tcGxldGUuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCmluZGV4IGEzYjkyOWVjZDg3NWNkMGFhNTM2
ZDdkMWI1MzBmMTUxYmQ2NzA5Y2IuLjZjYjRiZWZhYTFkNzQ5YTM3Nzk1ZmM0MDVmZWZiY2FlOTlh
OTc1YzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbApAQCAtMTks
NDMgKzE5LDMyIEBAIGZ1bmN0aW9uIHNldFVwQmFkUGlwZWxpbmVzKCkgewogICAgIGNoZWNrQmFk
UmVuZGVyUGlwZWxpbmUoe30sICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IiKTsKIAog
ICAgIGxldCBub01vZHVsZVZlcnRleERlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlOiBXZWJH
UFVTaGFkZXJTdGFnZS5WRVJURVgsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIK
ICAgICB9CiAgICAgbGV0IG5vTW9kdWxlUGlwZWxpbmVEZXNjcmlwdG9yID0gewotICAgICAgICBz
dGFnZXM6IFtub01vZHVsZVZlcnRleERlc2NyaXB0b3IsIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9y
XSwKKyAgICAgICAgdmVydGV4U3RhZ2U6IG5vTW9kdWxlVmVydGV4RGVzY3JpcHRvciwgCisgICAg
ICAgIGZyYWdtZW50U3RhZ2U6IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBwcmlt
aXRpdmVUb3BvbG9neTogInRyaWFuZ2xlTGlzdCIKICAgICB9CiAgICAgY2hlY2tCYWRSZW5kZXJQ
aXBlbGluZShub01vZHVsZVBpcGVsaW5lRGVzY3JpcHRvciwgInNoYWRlciBtb2R1bGUiKTsKIAog
ICAgIC8vIEEgKE1ldGFsKSByZW5kZXJwaXBlbGluZSBtdXN0IGhhdmUgYSB2ZXJ0ZXggZnVuY3Rp
b24uCiAgICAgbGV0IG5vVmVydGV4UGlwZWxpbmVEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFn
ZXM6IFtmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCisgICAgICAgIGZyYWdtZW50U3RhZ2U6IGZy
YWdtZW50U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBwcmltaXRpdmVUb3BvbG9neTogInRyaWFu
Z2xlTGlzdCIKICAgICB9CiAgICAgY2hlY2tCYWRSZW5kZXJQaXBlbGluZShub1ZlcnRleFBpcGVs
aW5lRGVzY3JpcHRvciwgInZlcnRleCBzaGFkZXIgc3RhZ2UiKQogCiAgICAgbGV0IGJhZEVudHJ5
UG9pbnREZXNjcmlwdG9yID0geyAKLSAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsIAotICAg
ICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuVkVSVEVYLCAKKyAgICAgICAgbW9kdWxlOiBz
aGFkZXJNb2R1bGUsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJWZXJ0ZXhfTWFpbiIgCiAgICAgfTsK
ICAgICBsZXQgYmFkRW50cnlQb2ludFBpcGVsaW5lRGVzY3NyaXB0b3IgPSB7Ci0gICAgICAgIHN0
YWdlczogW2JhZEVudHJ5UG9pbnREZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0s
CisgICAgICAgIHZlcnRleFN0YWdlOiBiYWRFbnRyeVBvaW50RGVzY3JpcHRvciwgCisgICAgICAg
IGZyYWdtZW50U3RhZ2U6IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yLAogICAgICAgICBwcmltaXRp
dmVUb3BvbG9neTogInRyaWFuZ2xlTGlzdCIKICAgICB9CiAgICAgY2hlY2tCYWRSZW5kZXJQaXBl
bGluZShiYWRFbnRyeVBvaW50UGlwZWxpbmVEZXNjc3JpcHRvciwgInZlcnRleCBzaGFkZXIgZW50
cnkgcG9pbnQiKTsKLQotICAgIGxldCBiYWRTdGFnZUVudW1EZXNjcmlwdG9yID0geyAKLSAgICAg
ICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsIAotICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3Rh
Z2UuQ09NUFVURSwgCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCi0gICAgfTsK
LSAgICBsZXQgYmFkU3RhZ2VFbnVtUGlwZWxpbmVEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFn
ZXM6IFtiYWRTdGFnZUVudW1EZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCi0g
ICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0IgotICAgIH0KLSAgICBjaGVj
a0JhZFJlbmRlclBpcGVsaW5lKGJhZFN0YWdlRW51bVBpcGVsaW5lRGVzY3JpcHRvciwgIldlYkdQ
VVNoYWRlclN0YWdlRW51bSIpOwogfQogCiBydW5XZWJHUFVUZXN0cyhbc2V0VXBQaXBlbGluZSwg
c2V0VXBCYWRQaXBlbGluZXNdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9zaW1w
bGUtdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9zaW1wbGUtdHJpYW5n
bGUtc3RyaXAuaHRtbAppbmRleCBkNzZmZmRkZDlhNTRmNTcyZjAyNTBlYzc0ZDBmNjE3M2I1YzU3
ZDZiLi4zMGFhNGYxYzIxNjhlYjM2NjFhMGM1NDhmZDJkZmI1MjI5ZDI1NjBjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1sCkBAIC01LDYgKzUsNyBA
QAogPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ic2ltcGxlLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVk
Lmh0bWwiPgogPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRlbHkgZ3Jl
ZW4uPC9wPgogPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2Ny
aXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogY29u
c3Qgc2hhZGVyQ29kZSA9IGAKICNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+CkBAIC00MSw1NyArNDIs
NiBAQCBmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihWZXJ0ZXggdmVydGV4SW4gW1tzdGFn
ZV9pbl1dKQogfQogYAogCi1hc3luYyBmdW5jdGlvbiBnZXRCYXNpY0RldmljZSgpIHsKLSAgICAv
LyBGSVhNRTogcmVxdWVzdEFkYXB0ZXIgc2hvdWxkIHRha2UgYSBXZWJHUFVBZGFwdGVyRGVzY3Jp
cHRvci4KLSAgICBjb25zdCBhZGFwdGVyID0gYXdhaXQgd2luZG93LndlYmdwdS5yZXF1ZXN0QWRh
cHRlcih7fSk7Ci0gICAgY29uc3QgZGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZpY2UoKTsKLSAg
ICByZXR1cm4gZGV2aWNlOwotfQotCi1mdW5jdGlvbiBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFz
LCBkZXZpY2UpIHsKLSAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIndlYmdw
dSIpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYW5kIHNwZWNpZnkgYSBXZWJHUFVUZXh0dXJl
VXNhZ2VFbnVtLgotICAgIGNvbnRleHQuY29uZmlndXJlKHsgZGV2aWNlOiBkZXZpY2UsIGZvcm1h
dDoiQjhHOFI4QThVbm9ybSIsIHdpZHRoOiBjYW52YXMud2lkdGgsIGhlaWdodDogY2FudmFzLmhl
aWdodCB9KTsKLSAgICByZXR1cm4gY29udGV4dDsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQmFzaWNQ
aXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSkgewotICAgIHZlcnRleFN0YWdlRGVzY3JpcHRv
ciA9IHsKLSAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsIAotICAgICAgICBzdGFnZTogV2Vi
R1BVU2hhZGVyU3RhZ2UuVkVSVEVYLCAKLSAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWlu
IiAKLSAgICB9OwotCi0gICAgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIG1v
ZHVsZTogc2hhZGVyTW9kdWxlLAotICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuRlJB
R01FTlQsCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJmcmFnbWVudF9tYWluIgotICAgIH07Ci0KLSAg
ICBwaXBlbGluZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlczogW3ZlcnRleFN0YWdlRGVz
Y3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAotICAgICAgICBwcmltaXRpdmVUb3Bv
bG9neTogInRyaWFuZ2xlU3RyaXAiCi0gICAgfTsKLQotICAgIHJldHVybiBkZXZpY2UuY3JlYXRl
UmVuZGVyUGlwZWxpbmUocGlwZWxpbmVEZXNjcmlwdG9yKTsKLX0KLQotZnVuY3Rpb24gYmVnaW5C
YXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZlcikgewotICAgIGNvbnN0IGJhc2lj
QXR0YWNobWVudCA9IHsKLSAgICAgICAgYXR0YWNobWVudDogY29udGV4dC5nZXROZXh0VGV4dHVy
ZSgpLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpLAotICAgICAgICBjbGVhckNvbG9yOiB7IHI6
IDEuMCwgZzogMCwgYjogMCwgYTogMS4wIH0KLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogRmxlc2gg
b3V0IHRoZSByZXN0IG9mIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLiAKLSAgICByZXR1cm4g
Y29tbWFuZEJ1ZmZlci5iZWdpblJlbmRlclBhc3MoeyBjb2xvckF0dGFjaG1lbnRzIDogW2Jhc2lj
QXR0YWNobWVudF0gfSk7Ci19Ci0KLWZ1bmN0aW9uIGVuY29kZUJhc2ljQ29tbWFuZHMocmVuZGVy
UGFzc0VuY29kZXIsIHJlbmRlclBpcGVsaW5lKSB7Ci0gICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0
UGlwZWxpbmUocmVuZGVyUGlwZWxpbmUpOwotICAgIHJlbmRlclBhc3NFbmNvZGVyLmRyYXcoNCwg
MSwgMCwgMCk7Ci0gICAgcmV0dXJuIHJlbmRlclBhc3NFbmNvZGVyLmVuZFBhc3MoKTsKLX0KLQog
YXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNp
Y0RldmljZSgpOwogICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNh
bnZhcyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJp
YW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVm
ZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg2ZjEzZTgxMjAz
OTdhNWNjNjMzNmM5ZTJhNDg1ZTc3OGJhOTkzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SFRNTCBSZWZlcmVuY2UgRmlsZTwvdGl0bGU+Cis8cD5QYXNzIGlmIHNxdWFyZSBjYW52
YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhl
aWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+Citjb25zdCBjYW52YXMgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKK2NvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiKDAsIDI1NSwgMCknOworY29udGV4
dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworPC9zY3JpcHQ+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdw
dS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQyYjQ4NGY1
NjIxMjI4M2I3ZTQwZDk1OGI2MjgxNDk4MGJhZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTAsMCAr
MSw5NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR1BVIEhlbGxvIFRyaWFuZ2xlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9IldlYkdQVSBjb3JyZWN0bHkgcmVuZGVycyBhIGdyZWVuIGNhbnZhcy4iPgorPGxpbmsgcmVs
PSJtYXRjaCIgaHJlZj0idmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1s
Ij4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwv
cD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBz
cmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHNo
YWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgorICAgIAordXNpbmcgbmFtZXNw
YWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4Cit7CisgICAgZmxvYXQ0IHBvc2l0aW9uIFtbcG9z
aXRpb25dXTsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4X21haW4oY29uc3QgZGV2aWNlIFZl
cnRleCogdmVydGV4X2FycmF5IFtbYnVmZmVyKDApXV0sIHVpbnQgdmlkIFtbdmVydGV4X2lkXV0p
Cit7CisgICAgcmV0dXJuIHZlcnRleF9hcnJheVt2aWRdOworfQorCitmcmFnbWVudCBmbG9hdDQg
ZnJhZ21lbnRfbWFpbihWZXJ0ZXggdmVydGV4SW4gW1tzdGFnZV9pbl1dKQoreworICAgIHJldHVy
biBmbG9hdDQoMC4wLCAxLjAsIDAuMCwgMS4wKTsKK30KK2AKKworZnVuY3Rpb24gY3JlYXRlVmVy
dGV4QnVmZmVyKGRldmljZSkgeworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSA0ICogNCAqIDQ7Cisg
ICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7IHNpemU6IGJ1ZmZlclNpemUs
IHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEUgfSk7CisgICAgCisgICAgbGV0IGFy
cmF5QnVmZmVyID0gYnVmZmVyLm1hcHBpbmc7CisgICAgbGV0IGZsb2F0QXJyYXkgPSBuZXcgRmxv
YXQzMkFycmF5KGFycmF5QnVmZmVyKTsKKworICAgIGZsb2F0QXJyYXlbMF0gPSAtMTsKKyAgICBm
bG9hdEFycmF5WzFdID0gMTsKKyAgICBmbG9hdEFycmF5WzJdID0gMDsKKyAgICBmbG9hdEFycmF5
WzNdID0gMTsKKworICAgIGZsb2F0QXJyYXlbNF0gPSAtMTsKKyAgICBmbG9hdEFycmF5WzVdID0g
LTE7CisgICAgZmxvYXRBcnJheVs2XSA9IDA7CisgICAgZmxvYXRBcnJheVs3XSA9IDE7CisKKyAg
ICBmbG9hdEFycmF5WzhdID0gMTsKKyAgICBmbG9hdEFycmF5WzldID0gMTsKKyAgICBmbG9hdEFy
cmF5WzEwXSA9IDA7CisgICAgZmxvYXRBcnJheVsxMV0gPSAxOworCisgICAgZmxvYXRBcnJheVsx
Ml0gPSAxOworICAgIGZsb2F0QXJyYXlbMTNdID0gLTE7CisgICAgZmxvYXRBcnJheVsxNF0gPSAw
OworICAgIGZsb2F0QXJyYXlbMTVdID0gMTsKKworICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9yKCkgeworICAgIHJldHVybiB7CisgICAg
ICAgIGluZGV4Rm9ybWF0OiBXZWJHUFVJbmRleEZvcm1hdC5VSU5UMzIsCisgICAgICAgIGF0dHJp
YnV0ZXM6IFt7CisgICAgICAgICAgICBzaGFkZXJMb2NhdGlvbjogMCwKKyAgICAgICAgICAgIGlu
cHV0U2xvdDogMCwKKyAgICAgICAgICAgIG9mZnNldDogMCwKKyAgICAgICAgICAgIGZvcm1hdDog
V2ViR1BVVmVydGV4Rm9ybWF0LkZMT0FUX1IzMl9HMzJfQjMyX0EzMgorICAgICAgICB9XSwKKyAg
ICAgICAgaW5wdXRzOiBbeworICAgICAgICAgICAgc3RyaWRlOiA0ICogNCwKKyAgICAgICAgICAg
IHN0ZXBNb2RlOiBXZWJHUFVJbnB1dFN0ZXBNb2RlLlZFUlRFWAorICAgICAgICB9XQorICAgIH0K
K30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBn
ZXRCYXNpY0RldmljZSgpOworICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImNhbnZhcyIpOworICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVCYXNpY0NvbnRleHQoY2Fu
dmFzLCBkZXZpY2UpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHdpdGggbm9uLU1TTCBzaGFkZXJz
LgorICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoeyBj
b2RlOiBzaGFkZXJDb2RlIH0pOworICAgIGNvbnN0IHZlcnRleEJ1ZmZlciA9IGNyZWF0ZVZlcnRl
eEJ1ZmZlcihkZXZpY2UpOworICAgIGNvbnN0IGlucHV0U3RhdGVEZXNjcmlwdG9yID0gY3JlYXRl
SW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsKKyAgICBjb25zdCBwaXBlbGluZSA9IGNyZWF0ZUJhc2lj
UGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIGlucHV0U3RhdGVEZXNjcmlwdG9yKTsKKyAg
ICBjb25zdCBjb21tYW5kQnVmZmVyID0gZGV2aWNlLmNyZWF0ZUNvbW1hbmRCdWZmZXIoKTsKKyAg
ICBjb25zdCBwYXNzRW5jb2RlciA9IGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1h
bmRCdWZmZXIpOworICAgIGNvbnN0IGVuZENvbW1hbmRCdWZmZXIgPSBlbmNvZGVCYXNpY0NvbW1h
bmRzKHBhc3NFbmNvZGVyLCBwaXBlbGluZSwgdmVydGV4QnVmZmVyKTsKKyAgICBjb25zdCBxdWV1
ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworCisgICAgcXVldWUuc3VibWl0KFtlbmRDb21tYW5kQnVm
ZmVyXSk7CisgICAgY29udGV4dC5wcmVzZW50KCk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357102</attachid>
            <date>2018-12-11 21:57:33 -0800</date>
            <delta_ts>2018-12-11 22:14:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181211215732.patch</filename>
            <type>text/plain</type>
            <size>90133</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0NTE5ZmQwZDg3Mjhj
NjM5MDY0Y2Q5YjU1YTU0ZDk0NGE4NjE1OS4uMDE5NmNlMGUyMWQ1NzEwZDIyODZjZmMyMGY3NjRj
ZGI2YWQxYmQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xl
LXN0cmlwLmh0bWwKKworICAgICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB2ZXJ0ZXggYnVm
ZmVycyB3aXRoIE1ldGFsIHNoYWRpbmcgbGFuZ3VhZ2UgaW4gV2ViR1BVLiBJbiAKKyAgICAgICAg
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLCByZWZhY3RvciB0byBtYXRjaCB1cGRhdGVk
IHNoYWRlciBzdGFnZSBzdHJ1Y3R1cmUgYW5kIGFkZCAKKyAgICAgICAgV2ViR1BVSW5wdXRTdGF0
ZURlc2NyaXB0b3IuIEFsc28gaW1wbGVtZW50IFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzLgorCisgICAgICAgIEFkZCBzeW1ib2xzIGFuZCBmaWxlcyBmb3IgV2ViR1BV
SW5kZXhGb3JtYXQsIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLCBXZWJHUFVJbnB1dFN0ZXBN
b2RlLCAKKyAgICAgICAgV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciwgV2ViR1BVVmVy
dGV4Rm9ybWF0LCBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgIEFk
ZCBhbmQgaW1wbGVtZW50IGludGVyZmFjZXMgYW5kIGRpY3Rpb25hcmllcyBmb3IgV2ViR1BVSW5w
dXRTdGF0ZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQnVm
ZmVyOjpidWZmZXIgY29uc3QpOiBBZGRlZCBnZXR0ZXIgZm9yIGJhY2tpbmcgR1BVQnVmZmVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbDogTW92aW5nIFdl
YkdQVUJ1ZmZlclVzYWdlIG91dCBpbnRvIGl0cyBvd24gSURMLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
ZGV4Rm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4
Rm9ybWF0LmlkbDogQWRkZWQuIAorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oOiBBZGRlZC4KKworICAgICAgICBSZWZhY3RvciB0byBzdXBwb3J0IHVwZGF0ZWQgc3Ry
dWN0dXJlIG9mIHBpcGVsaW5lIGRlc2NyaXB0b3IgaW4gc2tldGNoIElETDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS4qOiBSZW1vdmVkLgorCisgICAg
ICAgIEFkZCBhbmQgaW1wbGVtZW50IHNldFZlcnRleEJ1ZmZlcnM6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMpOiBBZGRlZC4gCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGw6IAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5l
RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KToKKwogMjAxOC0xMi0wNyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXZWJHUFVdIEltcGxlbWVudCBXZWJHUFVCdWZmZXIsIGFuZCBzb21lIG51bGxpYmls
aXR5IGNvbnNpc3RlbmN5IGluIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ODNlYmU1
ZDc5MmJkZmQwZWMyYjM0ODI1ODgwNmFlZWY0Yjk0MjBiLi4wYmRkMjljZGUxODA4YzI1ZDVjZThh
MTY1NDU1NTg0Nzg2MDY2ZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDYwLDkgKzQ2MCwx
MyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbAorICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlclVzYWdlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIu
aWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAorICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUluZGV4Rm9ybWF0LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1v
ZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5p
ZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwK
ICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5pZGwKQEAg
LTQ3NSwxMSArNDc5LDEzIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwKICAgICBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5pZGwKLSAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFn
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsCiAgICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVVGV4dHVyZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlRm9ybWF0RW51bS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5p
ZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlk
bAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwKKyAgICBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsCiAKICAgICBNb2R1bGVzL3dl
YnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWM1YzNlOGU0NmIwNWU0NmUy
OTA2Y2M0ZmNiZjg5ZmM2ZWFkOWVkZC4uZjZmN2UzNTE2YWU3NDY1ODgyY2ZiZjMwNTEyNzU0ZDk0
MzQ2MzdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzcsOSArMzc3LDEz
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJ1ZmZlckRlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUJ1ZmZlclVzYWdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVDb2xvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2Ny
aXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3Rl
cE1vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5pZGwgXApAQCAtMzkyLDExICszOTYsMTMgQEAgSlNfQklORElOR19J
RExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9k
dWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
aGFkZXJTdGFnZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dh
cENoYWluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlRm9ybWF0
RW51bS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZp
ZXcuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZl
cnRleEZvcm1hdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
SW5wdXREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMv
Q2xvc2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAK
aW5kZXggMTQ4ZGFlYTVkMWM5MTk3MmNhMTU4OGYxY2RkZjA3NmM4NTgyN2QyYS4uMzQ5NDFkMGVh
NWY3OTI1MWNiNDhkZGViZjc0MTM0M2Y5ZTRiYTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwCkBAIC0zOCw3ICszOCw2IEBAIFJlZlB0cjxX
ZWJHUFVCdWZmZXI+IFdlYkdQVUJ1ZmZlcjo6Y3JlYXRlKFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVy
KQogV2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiAg
ICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1fYnVm
ZmVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAppbmRleCA2MzM2ZDU5NTNlY2MxZGU1Zjg0MzljMDU3
Mzc1YzFiODhlMTRjZGRlLi5lMjc2NDI1YmQ0MmI1ZDY4MmZiZTI0MjhhNDAwNmUyM2Y0OTIzODc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaApAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBXZWJHUFVCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJH
UFVCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFdlYkdQVUJ1ZmZlcj4gY3Jl
YXRlKFJlZjxHUFVCdWZmZXI+JiYpOwogCisgICAgY29uc3QgR1BVQnVmZmVyJiBidWZmZXIoKSBj
b25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQorCiAgICAgSlNDOjpBcnJheUJ1ZmZlciog
bWFwcGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLT5tYXBwaW5nKCk7IH0KICAgICB2b2lk
IHVubWFwKCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRlZCBzdHViLiAqLyB9CiAgICAgdm9pZCBk
ZXN0cm95KCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRlZCBzdHViLiAqLyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgK
aW5kZXggYjMwM2YwOWJiNjhlY2M1ZTBiN2UyNDZlYzc0OWNhMzA2OGNkNzU0MC4uYzAxZGY5NTA4
NGIyMDAxYTEzNzE1ZTA5OGQxZDkwZDc3NDVlNzJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMzMsNyAr
MzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIFdlYkdQVUJ1ZmZlckRlc2NyaXB0
b3IgPSBHUFVCdWZmZXJEZXNjcmlwdG9yOwogdXNpbmcgV2ViR1BVQnVmZmVyVXNhZ2VGbGFncyA9
IEdQVUJ1ZmZlclVzYWdlRmxhZ3M7Ci11c2luZyBXZWJHUFVCdWZmZXJVc2FnZSA9IEdQVUJ1ZmZl
clVzYWdlOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKaW5kZXgg
YWZhNTU5NWYyNWYwZWNmMjczY2JhZDcxNzlkODEwOTQ4OTViZGE5Yy4uMTNlMTIxMDQ3NjU2YTQ4
YWIzNDE3MzRmYjY5NTBlZWM5YWM3ODZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwKQEAgLTM0LDE5ICsz
NCwzIEBAIHR5cGVkZWYgdTMyIFdlYkdQVUJ1ZmZlclVzYWdlRmxhZ3M7CiAgICAgdTMyIHNpemU7
CiAgICAgV2ViR1BVQnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKIH07Ci0KLVsKLSAgICBDb25kaXRp
b25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgTm9JbnRlcmZh
Y2VPYmplY3QKLV0gaW50ZXJmYWNlIFdlYkdQVUJ1ZmZlclVzYWdlIHsKLSAgICBjb25zdCB1MzIg
Tk9ORSA9IDA7Ci0gICAgY29uc3QgdTMyIE1BUF9SRUFEID0gMTsKLSAgICBjb25zdCB1MzIgTUFQ
X1dSSVRFID0gMjsKLSAgICBjb25zdCB1MzIgVFJBTlNGRVJfU1JDID0gNDsKLSAgICBjb25zdCB1
MzIgVFJBTlNGRVJfRFNUID0gODsKLSAgICBjb25zdCB1MzIgSU5ERVggPSAxNjsKLSAgICBjb25z
dCB1MzIgVkVSVEVYID0gMzI7Ci0gICAgY29uc3QgdTMyIFVOSUZPUk0gPSA2NDsKLSAgICBjb25z
dCB1MzIgU1RPUkFHRSA9IDEyODsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCA3ZDZkMGZjMzEwYThjZGZmOTg1ZWNmZTM3NTA0MTY1
NjQzYjBiNTkzLi43N2JhNGNiYzA4Zjk2YjFlMzIyYzY5ZDQ4N2Y3MDU5NDEyODZjNDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTQx
LDcgKzQxLDYgQEAKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIK
ICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSAiV2ViR1BVU2hhZGVyU3RhZ2UuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw1OSArNzEsMjUgQEAgUmVmUHRyPFdlYkdQVVNoYWRl
ck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9k
dWxlRGUKICAgICByZXR1cm4gbW9kdWxlID8gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUobW9k
dWxlLnJlbGVhc2VOb25OdWxsKCkpIDogbnVsbHB0cjsKIH0KIAotUmVmUHRyPFdlYkdQVVJlbmRl
clBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CitzdGF0aWMgc3RkOjpvcHRp
b25hbDxHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gdmFsaWRhdGVBbmRDb252ZXJ0UGlwZWxp
bmVTdGFnZShjb25zdCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiV2ViR1BVRGV2aWNlOjpj
cmVhdGVSZW5kZXJQaXBlbGluZSgpIjsKLSNpZiBMT0dfRElTQUJMRUQKLSAgICBVTlVTRURfUEFS
QU0oZnVuY3Rpb25OYW1lKTsKLSNlbmRpZgorICAgIGlmICghZGVzY3JpcHRvci5tb2R1bGUgfHwg
IWRlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSB8fCBkZXNjcmlwdG9yLmVudHJ5UG9pbnQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGRlc2NyaXB0
b3Iuc3RhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE5vIHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIHJldHVybiBHUFVQaXBlbGluZVN0YWdl
RGVzY3JpcHRvciB7IGRlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSwgZGVzY3JpcHRvci5lbnRy
eVBvaW50IH07Cit9CiAKLSAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFn
ZTsKLSAgICBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBmcmFnbWVudFN0YWdlOwotCi0gICAg
Zm9yIChjb25zdCBhdXRvJiBzdGFnZURlc2NyaXB0b3IgOiBkZXNjcmlwdG9yLnN0YWdlcykgewot
ICAgICAgICBpZiAoIXN0YWdlRGVzY3JpcHRvci5tb2R1bGUgfHwgIXN0YWdlRGVzY3JpcHRvci5t
b2R1bGUtPm1vZHVsZSgpIHx8IHN0YWdlRGVzY3JpcHRvci5lbnRyeVBvaW50LmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAoc3RhZ2VEZXNjcmlwdG9yLnN0YWdlKSB7
Ci0gICAgICAgIGNhc2UgV2ViR1BVU2hhZGVyU3RhZ2U6OlZFUlRFWDoKLSAgICAgICAgICAgIGlm
ICh2ZXJ0ZXhTdGFnZS5tb2R1bGUpIHsKLSAgICAgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6
IE11bHRpcGxlIHZlcnRleCBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
ISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZlcnRleFN0YWdlLm1vZHVsZSA9IHN0YWdlRGVzY3Jp
cHRvci5tb2R1bGUtPm1vZHVsZSgpOwotICAgICAgICAgICAgdmVydGV4U3RhZ2UuZW50cnlQb2lu
dCA9IHN0YWdlRGVzY3JpcHRvci5lbnRyeVBvaW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViR1BVU2hhZGVyU3RhZ2U6OkZSQUdNRU5UOgotICAgICAgICAgICAgaWYgKGZy
YWdtZW50U3RhZ2UubW9kdWxlKSB7Ci0gICAgICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBN
dWx0aXBsZSBmcmFnbWVudCBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
ISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UubW9kdWxlID0gc3RhZ2VEZXNj
cmlwdG9yLm1vZHVsZS0+bW9kdWxlKCk7Ci0gICAgICAgICAgICBmcmFnbWVudFN0YWdlLmVudHJ5
UG9pbnQgPSBzdGFnZURlc2NyaXB0b3IuZW50cnlQb2ludDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIHNo
YWRlciBzdGFnZSBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25O
YW1lKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0gICAgfQorUmVm
UHRyPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVs
aW5lKFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0Cit7
CisgICAgYXV0byB2ZXJ0ZXhTdGFnZSA9IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5lU3RhZ2Uo
ZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZSk7CisgICAgYXV0byBmcmFnbWVudFN0YWdlID0gdmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZShkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UpOwogCi0g
ICAgLy8gTWV0YWwgKGlmIG5vdCBvdGhlciBBUElzKSByZXF1aXJlcyBhdCBsZWFzdCB0aGUgdmVy
dGV4IHNoYWRlci4KLSAgICBpZiAoIXZlcnRleFN0YWdlLm1vZHVsZSB8fCB2ZXJ0ZXhTdGFnZS5l
bnRyeVBvaW50LmlzRW1wdHkoKSkgewotICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQg
dmVydGV4IHN0YWdlIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlv
bk5hbWUpOworICAgIGlmICghdmVydGV4U3RhZ2UgfHwgIWZyYWdtZW50U3RhZ2UpIHsKKyAgICAg
ICAgTE9HKFdlYkdQVSwgIldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogSW52
YWxpZCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT5jcmVhdGVSZW5k
ZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgeyBXVEZNb3ZlKHZlcnRleFN0
YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdlKSwgZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9n
eSB9KTsKKyAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPmNyZWF0ZVJlbmRlclBpcGVsaW5l
KEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciB7IFdURk1vdmUoKnZlcnRleFN0YWdlKSwgV1RG
TW92ZSgqZnJhZ21lbnRTdGFnZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3ksIGRlc2Ny
aXB0b3IuaW5wdXRTdGF0ZSB9KTsKICAgICByZXR1cm4gcGlwZWxpbmUgPyBXZWJHUFVSZW5kZXJQ
aXBlbGluZTo6Y3JlYXRlKHBpcGVsaW5lLnJlbGVhc2VOb25OdWxsKCkpIDogbnVsbHB0cjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhG
b3JtYXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTQ0MDM1ODRiNWJlNDcxZGE2MTI4ZjJlMTYwNGRiOWI2MDVmZTNhYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
ZGV4Rm9ybWF0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9y
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5kZXhGb3JtYXQgPSBH
UFVJbmRleEZvcm1hdDsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUluZGV4Rm9ybWF0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUluZGV4Rm9ybWF0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjU2YjRlNTQ3MzJmN2QzNWI3YjM2MjQ2ZjQ0
ZTc0NzE1N2M5Mjc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Ly8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3Nr
ZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKworWworICAgIENvbmRp
dGlvbmFsPVdFQkdQVSwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzLAorICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNl
IFdlYkdQVUluZGV4Rm9ybWF0IHsKKyAgICBjb25zdCB1MzIgVUlOVDE2ID0gMDsKKyAgICBjb25z
dCB1MzIgVUlOVDMyID0gMTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTkz
MDZiOTc4MmJiY2JmMjJlMTJhZTllMTNlYzI4MDA0ZTQzN2FlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3Iu
aApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCIKKyNpbmNs
dWRlICJXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcg
V2ViR1BVSW5kZXhGb3JtYXRFbnVtID0gR1BVSW5kZXhGb3JtYXRFbnVtOwordXNpbmcgV2ViR1BV
SW5wdXRTdGF0ZURlc2NyaXB0b3IgPSBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvcjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNj
cmlwdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTk0MjQxMjg0OGMxYWViZWI5YTBmY2JlN2E2MTU5ZTUx
YzY4ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMy
IFdlYkdQVUluZGV4Rm9ybWF0RW51bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yIHsKKyAgICBXZWJHUFVJbmRleEZvcm1hdEVudW0gaW5kZXhGb3JtYXQ7CisKKyAg
ICBzZXF1ZW5jZTxXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yPiBhdHRyaWJ1dGVzOwor
ICAgIHNlcXVlbmNlPFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvcj4gaW5wdXRzOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZDNkMzQyYzM0MDNlZmM5YWU4N2FmMGNhOWViZGQ5NmNiOGNjNWFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5w
dXRTdGVwTW9kZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVJbnB1dFN0ZXBNb2Rl
ID0gR1BVSW5wdXRTdGVwTW9kZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzAwYjIzZTkwYzUwZTJjZDZi
MzEwOGYxMzlkM2E1ZmQ2Mzg4MGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaWRsCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKKwor
WworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzLAorICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUK
K10gaW50ZXJmYWNlIFdlYkdQVUlucHV0U3RlcE1vZGUgeworICAgIGNvbnN0IHUzMiBWRVJURVgg
PSAwOworICAgIGNvbnN0IHUzMiBJTlNUQU5DRSA9IDE7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5oCmluZGV4IDMxMjFhOWJhNTY4Mzc0MDE0M2NlYzMwNTkwODJiYzgyY2E1NDE1OTIuLjUyYzJm
OWFjMGZiOTFjNDA3NDc5ZGZlZmUzZThlMDljMjAzMTFhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JC
YXNlLmgKQEAgLTI3LDEzICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1
ZGUgIldlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBXZWJHUFVQaXBlbGluZURlc2Ny
aXB0b3JCYXNlIHsKLSAgICBWZWN0b3I8V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3I+IHN0
YWdlczsKKyAgICAvLyBXZWJHUFVQaXBlbGluZUxheW91dCBsYXlvdXQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCmluZGV4IDMzZjdhNzY2
MTdhYjE5NTlmMjA3MTg4NjliNTk3ZTdmNWMyZTQ5MjguLmViMTM1YjU1NzQ2ZTQ2MTY0ZWM2ZDc4
NzBkMTE5YzlhMzI3NWYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCkBAIC0yOSw1
ICsyOSw0IEBACiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKIF0gZGljdGlvbmFyeSBXZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlIHsKICAgICAvLyBXZWJHUFVQaXBlbGluZUxheW91dCBs
YXlvdXQ7Ci0gICAgc2VxdWVuY2U8V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3I+IHN0YWdl
czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZVN0YWdlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaAppbmRleCAzM2YzYWUwOTU2NTAwZDRmN2Iz
N2M1ZTUwN2QwODdhZGYwYWRhMTY2Li40NWE4N2JkNmNlNTVlNzdhYzgyYTkzODc0YzUyYWM5NjJi
NTYzMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZVN0YWdlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgKQEAgLTMzLDExICszMyw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgV2ViR1BVU2hhZGVyU3RhZ2VFbnVtID0gdW5z
aWduZWQgbG9uZzsKLQogc3RydWN0IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHsKICAg
ICBjb25zdCBXZWJHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSA9IG51bGxwdHI7Ci0gICAgV2ViR1BV
U2hhZGVyU3RhZ2VFbnVtIHN0YWdlOwogICAgIFN0cmluZyBlbnRyeVBvaW50OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCmluZGV4IDBkNmIwODgxN2Q5MmRhN2JjY2QwMjhhYzdm
ZTNlY2MxMTIyMzU5YjQuLmVlZGFmMDgxNmY1NDQ4MWQzN2Q4M2M2NzQ2OTJjMjliNmY3ZWM3OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5l
U3RhZ2VEZXNjcmlwdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwKQEAgLTMxLDYgKzMxLDUgQEAgdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIFdlYkdQVVNoYWRlclN0YWdlRW51bTsKICAgICBFbmFibGVkQXRSdW50
aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHsK
ICAgICBXZWJHUFVTaGFkZXJNb2R1bGUgbW9kdWxlOwotICAgIFdlYkdQVVNoYWRlclN0YWdlRW51
bSBzdGFnZTsKICAgICBET01TdHJpbmcgZW50cnlQb2ludDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAK
aW5kZXggMTJlNjkwM2Y5OTliYzMwNjMxYTc5MGU3YWRiNTE1NmYwMGFmNTIyOS4uODNkYTA3MGU5
ZmIzNDAyN2ExOGI4MDAyOTNlMTMyYWEzYTc0MDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcApAQCAt
MzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCIK
ICNpbmNsdWRlICJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJXZWJHUFVCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
NCw2ICs0NiwyMSBAQCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6V2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXIoUmVmPFdlYkdQVUNvbW1hbmRCdWZmZXI+JiYgY3JlYQogewogfQogCit2b2lkIFdlYkdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcgc3RhcnRT
bG90LCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPHVuc2ln
bmVkPiYmIG9mZnNldHMpCit7CisgICAgaWYgKGJ1ZmZlcnMuaXNFbXB0eSgpIHx8IG9mZnNldHMu
aXNFbXB0eSgpIHx8IGJ1ZmZlcnMuc2l6ZSgpICE9IG9mZnNldHMuc2l6ZSgpKSB7CisgICAgICAg
IExPRyhXZWJHUFUsICJXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVyczog
SW52YWxpZCBudW1iZXIgb2YgYnVmZmVycyBvciBvZmZzZXRzISIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBncHVCdWZmZXJzID0gYnVmZmVycy5tYXAoW10gKGNvbnN0IGF1
dG8mIGJ1ZmZlcikgLT4gUmVmPGNvbnN0IEdQVUJ1ZmZlcj4geworICAgICAgICByZXR1cm4gYnVm
ZmVyLT5idWZmZXIoKTsKKyAgICB9KTsKKworICAgIC8vIEZJWE1FOiBVc2Ugc3RhcnRTbG90IHBy
b3Blcmx5LgorICAgIG1fcGFzc0VuY29kZXItPnNldFZlcnRleEJ1ZmZlcnMoc3RhcnRTbG90LCBX
VEZNb3ZlKGdwdUJ1ZmZlcnMpLCBXVEZNb3ZlKG9mZnNldHMpKTsKK30KKwogdm9pZCBXZWJHUFVS
ZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyh1bnNpZ25lZCBsb25nIHZlcnRleENvdW50LCB1bnNpZ25l
ZCBsb25nIGluc3RhbmNlQ291bnQsIHVuc2lnbmVkIGxvbmcgZmlyc3RWZXJ0ZXgsIHVuc2lnbmVk
IGxvbmcgZmlyc3RJbnN0YW5jZSkKIHsKICAgICAvLyBGSVhNRTogV2hhdCBraW5kIG9mIHZhbGlk
YXRpb24gZG8gd2UgbmVlZCB0byBoYW5kbGUgaGVyZT8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCmluZGV4IGMzOGM5
ZmRjZTk5ZDQwNmQwOWM4YjQ3YTU0MTlkNjE4ODVjODI5NDEuLjMxMjk2ZTNlOWU4MjhlMTA0MjEw
ZWQ0MDU5NzhlMmUyZjMxZmMwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtMzAsMTYgKzMwLDIwIEBA
CiAjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCIKIAogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI7CiBjbGFzcyBHUFVSZW5k
ZXJQYXNzRW5jb2RlcjsKK2NsYXNzIFdlYkdQVUJ1ZmZlcjsKIAogY2xhc3MgV2ViR1BVUmVuZGVy
UGFzc0VuY29kZXIgZmluYWwgOiBwdWJsaWMgV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI+IGNy
ZWF0ZShSZWY8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4mJiwgUmVmPEdQVVJlbmRlclBhc3NFbmNvZGVy
PiYmKTsKIAorICAgIC8vIEZJWE1FOiBMYXN0IGFyZ3VtZW50IHNob3VsZCBiZSBWZWN0b3I8dW5z
aWduZWQgbG9uZz4uIFdoeSBpcyB0aGUgZ2VuZXJhdGVkIGNvZGUgaW5jb3JyZWN0bHkgYXNzdW1p
bmcgdGhlIElETCB3YW50cyBhIHNlcXVlbmNlPHVuc2lnbmVkIGludD4/CisgICAgdm9pZCBzZXRW
ZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcsIFZlY3RvcjxSZWZQdHI8V2ViR1BVQnVmZmVyPj4m
JiwgVmVjdG9yPHVuc2lnbmVkPiYmKTsKICAgICB2b2lkIGRyYXcodW5zaWduZWQgbG9uZywgdW5z
aWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlci5pZGwKaW5kZXggODY4ZjY4ZmM0YWQxZmU4OGFlNGRkZDdjN2U2ZGQ1ZjRlOTYy
YzU4Ni4uZDE2MmVjNTI4ZWRiZTFkNjgwNTQ0NmJlYTk0ZmFiYTYyMDkxZTk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NF
bmNvZGVyLmlkbApAQCAtMzEsMTIgKzMxLDEzIEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7
CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QK
IF0gaW50ZXJmYWNlIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyIDogV2ViR1BVUHJvZ3JhbW1hYmxl
UGFzc0VuY29kZXIgeworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1MzIgc3RhcnRTbG90LCBz
ZXF1ZW5jZTxXZWJHUFVCdWZmZXI+IGJ1ZmZlcnMsIHNlcXVlbmNlPHUzMj4gb2Zmc2V0cyk7CisK
ICAgICB2b2lkIGRyYXcodTMyIHZlcnRleENvdW50LCB1MzIgaW5zdGFuY2VDb3VudCwgdTMyIGZp
cnN0VmVydGV4LCB1MzIgZmlyc3RJbnN0YW5jZSk7CiAKIC8qIE5vdCBZZXQgSW1wbGVtZW50ZWQK
ICAgICB2b2lkIHNldEJsZW5kQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSk7CiAgICAgdm9pZCBzZXRJbmRleEJ1ZmZlcihXZWJHUFVCdWZmZXIgYnVmZmVyLCB1MzIgb2Zm
c2V0KTsKLSAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8
V2ViR1BVQnVmZmVyPiBidWZmZXJzLCBzZXF1ZW5jZTx1MzI+IG9mZnNldHMpOwogCiAgICAgdm9p
ZCBkcmF3SW5kZXhlZCh1MzIgaW5kZXhDb3VudCwgdTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJz
dEluZGV4LCBpMzIgYmFzZVZlcnRleCwgdTMyIGZpcnN0SW5zdGFuY2UpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvci5oCmluZGV4IDljMjY0NjM5MDg0NmRkYTgyOWVmY2MyODkxMzY4ZGNhODk5
NDA3MmIuLmMxMmY3NThhN2JmY2U4OWFhYTE0YzYxZDIwNWNlZjkzZmQ5YTAzNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5oCkBAIC0yOCwxNCArMjgsMTkgQEAKICNpZiBFTkFCTEUoV0VC
R1BVKQogCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yIDogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiAgICAgdXNpbmcg
UHJpbWl0aXZlVG9wb2xvZ3kgPSBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I6OlByaW1pdGl2
ZVRvcG9sb2d5OwogCisgICAgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3Rh
Z2U7CisgICAgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKICAg
ICBQcmltaXRpdmVUb3BvbG9neSBwcmltaXRpdmVUb3BvbG9neTsKKyAgICBXZWJHUFVJbnB1dFN0
YXRlRGVzY3JpcHRvciBpbnB1dFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwKaW5kZXggN2ZhNTQ0NzQzZGYyNjlmMmNjMzhi
ODQxZjI4YTU3YTIzNTBhMTU5NC4uZmRkYjYyOGRmYTQwYjkwNTJmNzk4OTIxODU2MDgwMjRlZTM5
MDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsCkBAIC0zNiwxMSArMzYsMTUg
QEAgZW51bSBXZWJHUFVQcmltaXRpdmVUb3BvbG9neSB7CiAgICAgQ29uZGl0aW9uYWw9V0VCR1BV
LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25hcnkgV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yIDogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CisgICAg
V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2U7CisgICAgV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKKwogICAgIFdlYkdQVVByaW1pdGl2
ZVRvcG9sb2d5IHByaW1pdGl2ZVRvcG9sb2d5OwotICAgIC8qIFRvIEJlIEltcGxlbWVudGVkOgot
ICAgIHNlcXVlbmNlPFdlYkdQVUJsZW5kU3RhdGU+IGJsZW5kU3RhdGVzOwotICAgIFdlYkdQVURl
cHRoU3RlbmNpbFN0YXRlIGRlcHRoU3RlbmNpbFN0YXRlOwotICAgIFdlYkdQVUlucHV0U3RhdGUg
aW5wdXRTdGF0ZTsKLSAgICBXZWJHUFVBdHRhY2htZW50c1N0YXRlIGF0dGFjaG1lbnRzU3RhdGU7
ICovCisgICAgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRTdGF0ZTsKKy8qIFRvIEJl
IEltcGxlbWVudGVkOgorICAgIHNlcXVlbmNlPFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yPiBi
bGVuZFN0YXRlczsKKyAgICBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IgZGVwdGhT
dGVuY2lsU3RhdGU7CisgICAgV2ViR1BVQXR0YWNobWVudHNTdGF0ZURlc2NyaXB0b3IgYXR0YWNo
bWVudHNTdGF0ZTsKICAgICAvLyBUT0RPIG90aGVyIHByb3BlcnRpZXMKKyovCiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhNTEzMGMyZjE3NDA4NjNkY2JmZjUxZTE2M2RlZDdl
MmM5YjI2YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaAorKysgL2Rl
di9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShXRUJHUFUpCi0KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdlYkdQVVNoYWRlclN0YWdlIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViR1BVU2hhZGVyU3RhZ2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbG9uZyBWRVJURVggPSAwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIEZSQUdN
RU5UID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBDT01QVVRFID0gMjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFn
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5p
ZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhMzdhMzc0MTJkNDkzMDFiYmY1Nzgx
N2U4NTZjOTZkMDYzNGNlNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2Uu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0vLyBodHRwczov
L2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlk
bAotCi10eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VC
R1BVLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKLV0gaW50ZXJmYWNlIFdlYkdQVVNoYWRlclN0YWdlIHsKLSAgICBjb25zdCB1MzIg
VkVSVEVYID0gMDsKLSAgICBjb25zdCB1MzIgRlJBR01FTlQgPSAxOwotICAgIGNvbnN0IHUzMiBD
T01QVVRFID0gMjsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTJkODFhODk4MzMyZDNjMjRiYWM3MDI5N2NjNDE5YmY3NmVlMWNkYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3IuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVydGV4QXR0cmlidXRlRGVzY3Jp
cHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVVZlcnRleEF0dHJp
YnV0ZURlc2NyaXB0b3IgPSBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yOwordXNpbmcgV2Vi
R1BVVmVydGV4Rm9ybWF0RW51bSA9IEdQVVZlcnRleEZvcm1hdEVudW07CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5NmFlYTMzNjdjMTc2OGI4ZWJkOWI2MzNlYmZk
NDhhYmUwNzNhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDM4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFz
dGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0
eXBlZGVmIHUzMiBXZWJHUFVWZXJ0ZXhGb3JtYXRFbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9
V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgV2ViR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciB7CisgICAgdTMyIHNoYWRlckxvY2F0aW9uOworICAg
IHUzMiBpbnB1dFNsb3Q7CisgICAgdTMyIG9mZnNldDsKKyAgICBXZWJHUFVWZXJ0ZXhGb3JtYXRF
bnVtIGZvcm1hdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVZlcnRleEZvcm1hdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwNzg2ZDUxZmU4ZmJiYmNhNDlkNDNiM2Iy
ZDdkN2IwNzljYzA1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5n
IFdlYkdQVVZlcnRleEZvcm1hdCA9IEdQVVZlcnRleEZvcm1hdDsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRj
ZmVmNDFhZjAzMzVjZjE2YTI0NmJjMGUyZTlmMzljMjk4YmM4N2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9n
cHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHUzMjsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBEb05vdENoZWNr
Q29uc3RhbnRzLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVVZlcnRleEZvcm1hdCB7CisgICAgY29u
c3QgdTMyIEZMT0FUX1IzMl9HMzJfQjMyX0EzMiA9IDA7CisgICAgY29uc3QgdTMyIEZMT0FUX1Iz
Ml9HMzJfQjMyID0gMTsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyX0czMiA9IDI7CisgICAgY29u
c3QgdTMyIEZMT0FUX1IzMiA9IDM7CisgICAgLy8gVE9ETyBvdGhlciB2ZXJ0ZXggZm9ybWF0cwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRl
eElucHV0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlZDM3NTczM2Y2YjFhZjdkNjNm
OTIzMDkxNjliYTRhZDhjOWI5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNp
bmNsdWRlICJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1c2luZyBXZWJHUFVJbnB1dFN0ZXBNb2RlRW51bSA9IEdQVUlucHV0U3RlcE1vZGVFbnVt
OwordXNpbmcgV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yID0gR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4SW5wdXREZXNjcmlwdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA3ZTMxNTMwNDllMzQ1
OTVkMTg4N2Q2ODg4NmY5ODY4NGQ5ODJlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5pZGwKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdl
Yi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BVSW5wdXRTdGVwTW9kZUVudW07CisKK1sKKyAgICBD
b25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gZGljdGlv
bmFyeSBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IgeworICAgIHUzMiBzdHJpZGU7CisgICAg
V2ViR1BVSW5wdXRTdGVwTW9kZUVudW0gc3RlcE1vZGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
NjEyOTdmM2EyNDM5NDEzZTNkYmMxODRjNDYzNzI5Y2VhYjdhMzcxLi5iNGJkYjI1YjUxNzA2ODc0
NDBiYTY2M2YwNmEwOWJlYzQwMWUwZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzIyNCw5ICszMjI0
LDEzIEBAIEpTV2ViR1BVQWRhcHRlci5jcHAKIEpTV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuY3Bw
CiBKU1dlYkdQVUJ1ZmZlci5jcHAKIEpTV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAKK0pTV2Vi
R1BVQnVmZmVyVXNhZ2UuY3BwCiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYkdQVUNv
bG9yLmNwcAogSlNXZWJHUFVEZXZpY2UuY3BwCitKU1dlYkdQVUluZGV4Rm9ybWF0LmNwcAorSlNX
ZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVSW5wdXRTdGVwTW9kZS5jcHAK
IEpTV2ViR1BVUXVldWUuY3BwCiBKU1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBK
U1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcApAQCAtMzIzOSwxMSArMzI0MywxMyBA
QCBKU1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIEpTV2ViR1BVU2hhZGVyTW9kdWxl
RGVzY3JpcHRvci5jcHAKLUpTV2ViR1BVU2hhZGVyU3RhZ2UuY3BwCiBKU1dlYkdQVVN3YXBDaGFp
bi5jcHAKIEpTV2ViR1BVVGV4dHVyZS5jcHAKIEpTV2ViR1BVVGV4dHVyZUZvcm1hdEVudW0uY3Bw
CiBKU1dlYkdQVVRleHR1cmVWaWV3LmNwcAorSlNXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlw
dG9yLmNwcAorSlNXZWJHUFVWZXJ0ZXhGb3JtYXQuY3BwCitKU1dlYkdQVVZlcnRleElucHV0RGVz
Y3JpcHRvci5jcHAKIEpTV2ViTWV0YWxCdWZmZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZEJ1ZmZl
ci5jcHAKIEpTV2ViTWV0YWxDb21tYW5kUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDk0ZTI3Mzc1YWM4ZGU5YjZk
NmZjNTk3OGViOGYxZThiNzJkZGJlZS4uODExMGI2ODQ4Y2ViMzlhNGNiOTlmOGFkMzQzMzllZDE2
ZTA2YzMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTM3OTgsOCArMTM3OTgsMTQgQEAKIAkJRDA2MTVGQ0MyMTdGRTVDNjAw
OEE0OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTaGFk
ZXJNb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0QyMTdGRTVD
NjAwOEE0OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHUFVTaGFkZXJNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDYx
NUZDRTIxN0ZFNUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
UFVTaGFkZXJNb2R1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMDYzQUU0
QzIxQzA3QUI1MDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1
ZmZlclVzYWdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEUyMUMw
ODEwQTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQ
VUJ1ZmZlclVzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTNGMjFD
MDVEREQwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
UFVCdWZmZXJVc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0MDIx
QzA1REREMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZl
clVzYWdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDQyMUMwNjE3
RDAwMEU2QTM1IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVW
ZXJ0ZXhGb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDUyMUMw
NjE3RDAwMEU2QTM1IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVVmVydGV4
Rm9ybWF0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDYyMUMwNjYy
NjAwMEU2QTM1IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BV
SW5wdXRTdGVwTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0NzIx
QzA2NjI2MDAwRTZBMzUgLyogV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVSW5w
dXRTdGVwTW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ4MjFD
MDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
UFVJbmRleEZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0OTIx
QzA2NkRCMDAwRTZBMzUgLyogV2ViR1BVSW5kZXhGb3JtYXQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUluZGV4
Rm9ybWF0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0
NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdmVGb3JtYXRDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA3REVBQjcwQTM2NTU0QTAw
Q0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNlcnRMaXN0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMzgzMCw4ICsxMzgzNiw2IEBACiAJCUQwQkQ0RjVCMTQwODg1MEYwMDY4MzlC
NiAvKiBEaWN0YXRpb25Db21tYW5kSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkNvbW1hbmRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDBDNDE5RUIyMTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVDMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJH
UFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVUGlwZWxpbmVTdGFnZURl
c2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMEM0MTlFRTIxODNE
OUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BV
U2hhZGVyU3RhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBDNDE5RUYyMTgz
RDlDODAwOUVDMURFIC8qIFdlYkdQVVNoYWRlclN0YWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJT
dGFnZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYwMjE4M0VCMzEw
MDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDBDNDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRv
ckJhc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEM0MTlGMjIxODNFRkVDMDA5RUMxREUgLyogV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4NTMs
NiArMTM4NTcsMTUgQEAKIAkJRDBEODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDBEODY0OTEyMUI3NjBDNDAwM0M5ODNDIC8qIEdQVUJ1ZmZlck1ldGFsLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gR1BVQnVmZmVyTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwRDg2NDkyMjFCNzYwRjIwMDNDOTgzQyAvKiBHUFVCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR1BVQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDkz
MjFCQTE3M0QwMDNDOTgzQyAvKiBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMEQ4NjQ5NDIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5wdXRTdGF0ZURl
c2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTUyMUJBMThGNDAwM0M5ODNDIC8qIFdlYkdQ
VVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4
NjQ5NjIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0
ZXhJbnB1dERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk4MjFCQTE5QTcw
MDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZl
cnRleElucHV0RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQw
RDg2NDk5MjFCQTFCMUYwMDNDOTgzQyAvKiBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRl
RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgz
QyAvKiBHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVVmVydGV4
SW5wdXREZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU0
MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
R1BVU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU1MjE3
OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVU3dhcENoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEQTBC
RTYyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU3dh
cENoYWluLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDI0LDYgKzE4MDM3
LDcgQEAKIAkJCQkzMTJGRjhCRDIxQTRDMkYxMDBFQjE5OUQgLyogR1BVQ29tbWFuZEJ1ZmZlci5o
ICovLAogCQkJCTMxMkZGOEJGMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuY3BwICovLAog
CQkJCTMxMkZGOEJFMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuaCAqLywKKwkJCQlEMEQ4
NjQ5OTIxQkExQjFGMDAzQzk4M0MgLyogR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKIAkJ
CQkzMTJGRjhDNDIxQTRDMkY0MDBFQjE5OUQgLyogR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5o
ICovLAogCQkJCTMxMkZGOEMyMjFBNEMyRjMwMEVCMTk5RCAvKiBHUFVQaXBlbGluZVN0YWdlRGVz
Y3JpcHRvci5oICovLAogCQkJCUQwMzIxMUNGMjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5oICovLApAQCAtMTgwMzgsNiArMTgwNTIsOCBAQAogCQkJCTMxMkZG
OEJBMjFBNEMyRUYwMEVCMTk5RCAvKiBHUFVTd2FwQ2hhaW4uaCAqLywKIAkJCQkzMTJGRjhDNTIx
QTRDMkY0MDBFQjE5OUQgLyogR1BVVGV4dHVyZS5oICovLAogCQkJCTMxMkZGOEMzMjFBNEMyRjMw
MEVCMTk5RCAvKiBHUFVUZXh0dXJlRm9ybWF0RW51bS5oICovLAorCQkJCUQwRDg2NDlCMjFCQTFD
MkQwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRDBE
ODY0OUMyMUJBMUNFODAwM0M5ODNDIC8qIEdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAog
CQkJCTQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3
NzBEODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1
MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTI1NTE1LDYgKzI1NTMxLDEwIEBA
CiAJCQkJRDBEODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5pZGwgKi8sCiAJ
CQkJRDBEODY0ODIyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAq
LywKIAkJCQlEMEQ4NjQ4MzIxQjYxNzI3MDAzQzk4M0MgLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRv
ci5pZGwgKi8sCisJCQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVz
YWdlLmggKi8sCisJCQkJRDA2M0FFM0YyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVz
YWdlLmggKi8sCisJCQkJRDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVz
YWdlLmlkbCAqLywKKwkJCQlEMDYzQUU0MDIxQzA1REREMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVy
VXNhZ2UuaWRsICovLAogCQkJCUQwMDFEOUFDMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xv
ci5oICovLAogCQkJCUQwMDFEOUFEMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xvci5pZGwg
Ki8sCiAJCQkJRDBFQUNGNzcyMTkzNzIyODAwMEZBNzVDIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXIu
Y3BwICovLApAQCAtMjU1MjMsNiArMjU1NDMsMTIgQEAKIAkJCQlEMDBGNTk1MzIxNzAxRDhDMDAw
RDcxREIgLyogV2ViR1BVRGV2aWNlLmNwcCAqLywKIAkJCQlEMDBGNTk1MjIxNzAxRDhDMDAwRDcx
REIgLyogV2ViR1BVRGV2aWNlLmggKi8sCiAJCQkJRDAwRjU5NTQyMTcwMUQ4QzAwMEQ3MURCIC8q
IFdlYkdQVURldmljZS5pZGwgKi8sCisJCQkJRDA2M0FFNDgyMUMwNjZEQjAwMEU2QTM1IC8qIFdl
YkdQVUluZGV4Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2QTM1IC8qIFdl
YkdQVUluZGV4Rm9ybWF0LmlkbCAqLywKKwkJCQlEMEQ4NjQ5MzIxQkExNzNEMDAzQzk4M0MgLyog
V2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5NDIxQkExNzNEMDAz
Qzk4M0MgLyogV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwNjNBRTQ2
MjFDMDY2MjYwMDBFNkEzNSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmggKi8sCisJCQkJRDA2M0FF
NDcyMUMwNjYyNjAwMEU2QTM1IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsICovLAogCQkJCUQw
QzQxOUYwMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgg
Ki8sCiAJCQkJRDBDNDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UuaWRsICovLAogCQkJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQ
aXBlbGluZVN0YWdlRGVzY3JpcHRvci5oICovLApAQCAtMjU1NTMsOCArMjU1NzksNiBAQAogCQkJ
CUQwNjE1RkNFMjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLAog
CQkJCUQwNjBEODg3MjE4MjY5NzAwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yLmggKi8sCiAJCQkJRDA2MEQ4ODQyMTgyNUQ1RjAwMzM5MzE4IC8qIFdlYkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IuaWRsICovLAotCQkJCUQwQzQxOUVFMjE4M0Q5QzgwMDlFQzFERSAvKiBX
ZWJHUFVTaGFkZXJTdGFnZS5oICovLAotCQkJCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFERSAvKiBX
ZWJHUFVTaGFkZXJTdGFnZS5pZGwgKi8sCiAJCQkJRDBEQTBCRTUyMTc5MzBFMjAwN0ZFMkFDIC8q
IFdlYkdQVVN3YXBDaGFpbi5jcHAgKi8sCiAJCQkJRDBEQTBCRTQyMTc5MzBFMjAwN0ZFMkFDIC8q
IFdlYkdQVVN3YXBDaGFpbi5oICovLAogCQkJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBX
ZWJHUFVTd2FwQ2hhaW4uaWRsICovLApAQCAtMjU1NjYsOCArMjU1OTAsMTIgQEAKIAkJCQlEMEVB
Q0Y4ODIxOTNFRTRFMDAwRkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuY3BwICovLAogCQkJCUQw
RUFDRjg3MjE5M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5oICovLAogCQkJCUQw
RUFDRjg5MjE5M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5pZGwgKi8sCi0JCQkJ
RDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLywKLQkJ
CQlEMDYzQUU0RTIxQzA4MTBBMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLywKKwkJ
CQlEMEQ4NjQ5NTIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3Jp
cHRvci5oICovLAorCQkJCUQwRDg2NDk2MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhB
dHRyaWJ1dGVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NDIxQzA2MTdEMDAwRTZBMzUg
LyogV2ViR1BVVmVydGV4Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDUyMUMwNjE3RDAwMEU2QTM1
IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5pZGwgKi8sCisJCQkJRDBEODY0OTcyMUJBMTlBNzAwM0M5
ODNDIC8qIFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDk4MjFC
QTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovLAogCQkJ
KTsKIAkJCXBhdGggPSB3ZWJncHU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE2
ODYsOSArMzE3MTQsOSBAQAogCQkJCTZGOTk1QTI2MUE3MDc4QjEwMEE3MzVGNCAvKiBXZWJHTFZl
cnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3N0ExN0E3ODEyRjI4NjQyMDA0
RTAyRjYgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDBEODY0ODQyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTMxODQzNkRFMjFCOURBQUYwMEVEMzgzRSAvKiBXZWJHUFVMYXllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRDBEODY0ODQyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1
ZmZlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxODQzNkRFMjFCOURBQUYwMEVE
MzgzRSAvKiBXZWJHUFVMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE4NDM2REUyMUI5REFB
RjAwRUQzODNFIC8qIFdlYkdQVUxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCNzFG
QUE0NDYyMDAzN0QxRTYgLyogV2ViSGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0
MEUyNTE4N0I4QUMyMDA4NDNCMTAgLyogV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTg0RkUzMDE4NjRDQjg0MDA4NDNCMTAgLyogV2ViSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBkMjU2ODI3ZWI4ZGZjYzg3ZjMxZjA2NDRiNDg4
YWNjNDI0YjQ3YWNkLi5lMGIzOTdmM2RkZDY0M2U3ZTRlMTNmYzk4NTNlNWUwMWQxYjFmY2YxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CkBAIC0xOTMsMTYgKzE5MywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2Vi
R1BVQnVmZmVyVXNhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVDb21tYW5kQnVmZmVyKSBcCiAgICAg
bWFjcm8oV2ViR1BVRGV2aWNlKSBcCisgICAgbWFjcm8oV2ViR1BVSW5kZXhGb3JtYXQpIFwKKyAg
ICBtYWNybyhXZWJHUFVJbnB1dFN0ZXBNb2RlKSBcCiAgICAgbWFjcm8oV2ViR1BVUXVldWUpIFwK
ICAgICBtYWNybyhXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcikgXAogICAgIG1hY3JvKFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHUFVSZW5kZXJQYXNzRW5jb2Rl
cikgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBcCi0gICAgbWFjcm8oV2ViR1BV
U2hhZGVyU3RhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVTaGFkZXJNb2R1bGUpIFwKICAgICBtYWNy
byhXZWJHUFVTd2FwQ2hhaW4pIFwKICAgICBtYWNybyhXZWJHUFVUZXh0dXJlKSBcCiAgICAgbWFj
cm8oV2ViR1BVVGV4dHVyZVZpZXcpIFwKKyAgICBtYWNybyhXZWJHUFVWZXJ0ZXhGb3JtYXQpIFwK
ICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZEJ1
ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJbnB1dFN0YXRl
RGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhNzg0NzczY2E1ODU4NDJlYzVkZDljZjBjNWQ2ODVm
NDExMDVhNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAi
R1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVZlcnRleElucHV0
RGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgR1BVSW5kZXhGb3Jt
YXRFbnVtID0gdW5zaWduZWQgbG9uZzsKKworY2xhc3MgR1BVSW5kZXhGb3JtYXQgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVJbmRleEZvcm1hdD4geworcHVibGljOgorICAgIGVudW0gRW51bSA6IEdQ
VUluZGV4Rm9ybWF0RW51bSB7CisgICAgICAgIFVpbnQxNiA9IDAsCisgICAgICAgIFVpbnQzMiA9
IDEKKyAgICB9OworfTsKKworc3RydWN0IEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIHsKKyAgICBH
UFVJbmRleEZvcm1hdEVudW0gaW5kZXhGb3JtYXQ7CisKKyAgICBWZWN0b3I8R1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBWZWN0b3I8R1BVVmVydGV4SW5wdXRE
ZXNjcmlwdG9yPiBpbnB1dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCAzYjY0ZDA0NGNh
NWU5YzFhYmRhMGFkZTI3NGZiMjFiY2I5ZjAwNDM1Li5jOTA3MWNiZjYxZjVhM2MyYWFlYWVkYjli
ZmMxMGNiMTY0MzBmNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtMzIsMTEgKzMyLDEz
IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
T0JKQ19QUk9UT0NPTChNVExSZW5kZXJDb21tYW5kRW5jb2Rlcik7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNsYXNz
IEdQVVJlbmRlclBpcGVsaW5lOwogCkBAIC01MSw2ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSBmaW5hbDsKIAorICAgIHZv
aWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0b3I8UmVmPGNvbnN0IEdQVUJ1
ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxv
bmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IDE0ZWM3ZDJmOTdl
YmM0NGM3YjM2Yjk1ZWU0YTVjYTNiY2NkOWJkMjguLjViNDNiMWVlMWJmY2E4NzcwYjRiMDM4ODk3
ZDcyMTVjMzJiNmFjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAg
LTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
aCIKICNpbmNsdWRlICJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oIgogCkBAIC00Niw2ICs0
Nyw3IEBAIHN0cnVjdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgewogICAgIEdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOwogICAgIEdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yIGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xvZ3kgcHJpbWl0aXZlVG9w
b2xvZ3k7CisgICAgR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRTdGF0ZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ1OGQ2ZGRhMWNhN2NmYzE1NzkxZTI2MjVmYjE4NjM1OTMwZjQyZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVVZlcnRleEZvcm1h
dEVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVWZXJ0ZXhGb3JtYXQgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVWZXJ0ZXhGb3JtYXQ+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW0gOiBH
UFVWZXJ0ZXhGb3JtYXRFbnVtIHsKKyAgICAgICAgRmxvYXRSMzJHMzJCMzJBMzIgPSAwLAorICAg
ICAgICBGbG9hdFIzMkczMkIzMiA9IDEsCisgICAgICAgIEZsb2F0UjMyRzMyID0gMiwKKyAgICAg
ICAgRmxvYXRSMzIgPSAzCisgICAgfTsKK307CisKK3N0cnVjdCBHUFVWZXJ0ZXhBdHRyaWJ1dGVE
ZXNjcmlwdG9yIHsKKyAgICB1bnNpZ25lZCBsb25nIHNoYWRlckxvY2F0aW9uOworICAgIHVuc2ln
bmVkIGxvbmcgaW5wdXRTbG90OworICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0OworICAgIEdQVVZl
cnRleEZvcm1hdEVudW0gZm9ybWF0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNjE5YjIyNmU4M2I1OTE1NzljMThkMjUyMGU4NDFiMzliYmQwZWJiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRl
eElucHV0RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVUlucHV0U3RlcE1vZGVFbnVtID0g
dW5zaWduZWQgbG9uZzsKKworY2xhc3MgR1BVSW5wdXRTdGVwTW9kZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEdQVUlucHV0U3RlcE1vZGU+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW0gOiBHUFVJbnB1
dFN0ZXBNb2RlRW51bSB7CisgICAgICAgIFZlcnRleCA9IDAsCisgICAgICAgIEluc3RhbmNlID0g
MQorICAgIH07Cit9OworCitzdHJ1Y3QgR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yIHsKKyAgICB1
bnNpZ25lZCBsb25nIHN0cmlkZTsKKyAgICBHUFVJbnB1dFN0ZXBNb2RlRW51bSBzdGVwTW9kZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDJjNTgy
YjBiMzJkOGQ0MTJkOGNkNjU0YTQ2OWFhN2U2YjlkYTdhNDguLjllMjcwNmVhNzlmMzE3NTlkZWI1
ZTZlZjJlOTdmYjQyMmZjZmU3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5j
b2Rlck1ldGFsLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisj
aW1wb3J0ICJHUFVCdWZmZXIuaCIKICNpbXBvcnQgIkdQVUNvbW1hbmRCdWZmZXIuaCIKICNpbXBv
cnQgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVSZW5kZXJQaXBlbGlu
ZS5oIgpAQCAtODMsNiArODQsMTIgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0UGlw
ZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQogICAgIG1fcGlwZWxpbmUg
PSBXVEZNb3ZlKHBpcGVsaW5lKTsKIH0KIAordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0
VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIGluZGV4LCBWZWN0b3I8UmVmPGNvbnN0IEdQVUJ1
ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPHVuc2lnbmVkPiYmIG9mZnNldHMpIAoreworICAgIC8v
IEZJWE1FOiBPbmx5IHdvcnJ5IGFib3V0IHRoZSBmaXJzdCBidWZmZXIgZm9yIG5vdywgYW5kIHRy
ZWF0IHN0YXJ0U2xvdCBhcyB0aGUgaW5kZXguCisgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5j
b2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyc1swXS0+cGxhdGZvcm1CdWZmZXIoKSBvZmZzZXQ6
b2Zmc2V0c1swXSBhdEluZGV4OmluZGV4XTsKK30KKwogc3RhdGljIE1UTFByaW1pdGl2ZVR5cGUg
cHJpbWl0aXZlVHlwZUZvckdQVVByaW1pdGl2ZVRvcG9sb2d5KFByaW1pdGl2ZVRvcG9sb2d5IHR5
cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGlu
ZU1ldGFsLm1tCmluZGV4IGE4MDY1ZmViYmFkNDc4MzcwM2JiYjZlMmNjYzFhZjljNTRkZTA0ODUu
LmFiM2Q1NjJhNGRjMzdmN2Y5MmNmNjBmNzFmOTM2YjdiODY0YTAyODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGlu
ZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC04Miw2ICs4Miw0MiBAQCBzdGF0aWMgYm9v
bCBzZXRGdW5jdGlvbnNGb3JQaXBlbGluZURlc2NyaXB0b3IoY29uc3QgY2hhciogY29uc3QgZnVu
Y3Rpb25OYW1lLCBNVAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBzZXRJbnB1
dFN0YXRlRm9yUGlwZWxpbmVEZXNjcmlwdG9yKE1UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciAq
bXRsRGVzY3JpcHRvciwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQoreworICAgIGF1dG8gbXRsVmVydGV4RGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTFZlcnRl
eERlc2NyaXB0b3IgbmV3XSk7CisKKyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYXR0cmlidXRlcywg
aWYgYW55LgorICAgIGNvbnN0IGF1dG8mIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmlucHV0U3Rh
dGUuYXR0cmlidXRlczsKKworICAgIC8vIEZJWE1FOiBXaGF0IGtpbmQgb2YgdmFsaWRhdGlvbiBp
cyBuZWVkZWQgaGVyZT8KKyAgICBNVExWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yQXJyYXkgKmF0
dHJpYnV0ZUFycmF5ID0gbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5hdHRyaWJ1dGVzOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIE1UTFZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IgKm10bEF0dHJpYnV0ZURlc2MgPSBbYXR0
cmlidXRlQXJyYXkgb2JqZWN0QXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgICAgICAvLyBGSVhN
RTogRG9lcyBpbnB1dFNsb3QgbmVlZCB0byBiZSB0cmFuc2xhdGVkPyBVc2Ugc2hhZGVyTG9jYXRp
b24gYXMgdGhlIGJ1ZmZlckluZGV4IGZvciBub3cuCisgICAgICAgIC8vIEZJWE1FOiBIb29rIHVw
IFdlYkdQVVZlcnRleEZvcm1hdEVudW0uIERlZmF1bHQgdG8gdGhpcyBNVExWZXJ0ZXhGb3JtYXQg
Zm9yIG5vdy4KKyAgICAgICAgbXRsQXR0cmlidXRlRGVzYy5mb3JtYXQgPSBNVExWZXJ0ZXhGb3Jt
YXRVU2hvcnQ7CisgICAgICAgIG10bEF0dHJpYnV0ZURlc2Mub2Zmc2V0ID0gYXR0cmlidXRlc1tp
XS5vZmZzZXQ7CisgICAgICAgIG10bEF0dHJpYnV0ZURlc2MuYnVmZmVySW5kZXggPSBhdHRyaWJ1
dGVzW2ldLnNoYWRlckxvY2F0aW9uOworICAgICAgICBbbXRsVmVydGV4RGVzY3JpcHRvci5nZXQo
KS5hdHRyaWJ1dGVzIHNldE9iamVjdDptdGxBdHRyaWJ1dGVEZXNjIGF0SW5kZXhlZFN1YnNjcmlw
dDppXTsKKyAgICB9CisKKyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYnVmZmVyIGxheW91dHMsIGlm
IGFueS4KKyAgICBjb25zdCBhdXRvJiBpbnB1dHMgPSBkZXNjcmlwdG9yLmlucHV0U3RhdGUuaW5w
dXRzOworCisgICAgTVRMVmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvckFycmF5ICpsYXlvdXRB
cnJheSA9IG10bFZlcnRleERlc2NyaXB0b3IuZ2V0KCkubGF5b3V0czsKKworICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgaW5wdXRzLnNpemUoKTsgKytqKSB7CisgICAgICAgIE1UTFZlcnRleEJ1
ZmZlckxheW91dERlc2NyaXB0b3IgKm10bExheW91dERlc2MgPSBbbGF5b3V0QXJyYXkgb2JqZWN0
QXRJbmRleGVkU3Vic2NyaXB0OmpdOworICAgICAgICAvLyBGSVhNRTogSG9vayB1cCBXZWJHUFVJ
bnB1dFN0ZXBNb2RlRW51bS4gTGVhdmUgYXMgZGVmYXVsdCBNVExWZXJ0ZXhTdGVwRnVuY3Rpb25Q
ZXJWZXJ0ZXggZm9yIG5vdy4KKyAgICAgICAgbXRsTGF5b3V0RGVzYy5zdHJpZGUgPSBpbnB1dHNb
al0uc3RyaWRlOworICAgICAgICBbbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5sYXlvdXRzIHNl
dE9iamVjdDptdGxMYXlvdXREZXNjIGF0SW5kZXhlZFN1YnNjcmlwdDpqXTsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogV2hhdCBoYXBwZW5zIGhlcmUgd2hlbiBtdGxWZXJ0ZXhEZXNjcmlwdG9yIFJl
dGFpblB0ciBpcyBkZXN0cm95ZWQ/CisgICAgbXRsRGVzY3JpcHRvci52ZXJ0ZXhEZXNjcmlwdG9y
ID0gbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKTsKK30KKwogUmVmUHRyPEdQVVJlbmRlclBpcGVs
aW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQogewogICAgIGNvbnN0IGNo
YXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCkiOwpA
QCAtMTA3LDYgKzE0Myw4IEBAIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVuZGVyUGlw
ZWxpbmU6OmNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVCiAgICAgaWYgKCFzZXRG
dW5jdGlvbnNGb3JQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25OYW1lLCBtdGxEZXNjcmlwdG9y
LmdldCgpLCBkZXNjcmlwdG9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBzZXRJ
bnB1dFN0YXRlRm9yUGlwZWxpbmVEZXNjcmlwdG9yKG10bERlc2NyaXB0b3IuZ2V0KCksIGRlc2Ny
aXB0b3IpOworCiAgICAgLy8gRklYTUU6IEdldCB0aGUgcGl4ZWxGb3JtYXQgYXMgY29uZmlndXJl
ZCBmb3IgdGhlIGNvbnRleHQvQ0FNZXRhbExheWVyLgogICAgIG10bERlc2NyaXB0b3IuZ2V0KCku
Y29sb3JBdHRhY2htZW50c1swXS5waXhlbEZvcm1hdCA9IE1UTFBpeGVsRm9ybWF0QkdSQThVbm9y
bTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGEwMDc1Yzk3MTk1MzhmNDk1OGU0ZmYzNzg4N2Q5YzIyMjJmZWZjZmQuLjc2
MTY5NzAzY2E1OTMzZDk1NTU3ZWNkNTdiYmQ3NDUyNGY2ZTBiZDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAxOC0xMi0xMSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIFZlcnRleCBidWZmZXJzIGFuZCBXZWJHUFVJbnB1dFN0YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2MTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB2YXJpYXRp
b24gb2Ygc2ltcGxlLXRyaWFuZ2xlLXN0cmlwIHRvIHVzZSBhIHZlcnRleCBidWZmZXIuIFJlZmFj
dG9yZWQgYWZvcmVtZW50aW9uZWQKKyAgICAgICAgdGVzdCB0byBzaGFyZSBjb2RlIHdpdGggbmV3
IHRlc3QuCisKKyAgICAgICAgKiB3ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qczoK
KyAgICAgICAgKHNldFVwUGlwZWxpbmVEZXNjcmlwdG9yKToKKyAgICAgICAgKiB3ZWJncHUvanMv
d2ViZ3B1LWZ1bmN0aW9ucy5qczogQWRkZWQuCisgICAgICAgIChhc3luYy5nZXRCYXNpY0Rldmlj
ZSk6CisgICAgICAgIChjcmVhdGVCYXNpY0NvbnRleHQpOgorICAgICAgICAoY3JlYXRlQmFzaWNQ
aXBlbGluZSk6CisgICAgICAgIChiZWdpbkJhc2ljUmVuZGVyUGFzcyk6CisgICAgICAgICogd2Vi
Z3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmdwdS9yZW5k
ZXItcGlwZWxpbmVzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJp
cC5odG1sOgorICAgICAgICAqIHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFu
Z2xlLXN0cmlwLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEyLTA3ICBKdXN0aW4gRmFuICA8anVzdGlu
X2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gSW1wbGVtZW50IFdlYkdQVUJ1ZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL2Jhc2ljLXdlYmdwdS1mdW5jdGlv
bnMuanMgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcwpp
bmRleCBiM2NiYmMyMWJkNDljMjgxZTJhMGE5ZjBmMTFkNWEzYTIwNDcwMTQxLi4wZDA4NzAyNjJm
NzAwOWUxYTNkOTMwZWVkNGRhZTQ5ZTAwMDk5YzZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtOTAsMTkgKzkwLDE4IEBAIGZ1bmN0
aW9uIHNldFVwTW9kdWxlKCkgewogCiBmdW5jdGlvbiBzZXRVcFBpcGVsaW5lRGVzY3JpcHRvcigp
IHsKICAgICB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IgPSB7IAotICAgICAgICBtb2R1bGU6IHNoYWRl
ck1vZHVsZSwgCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5WRVJURVgsIAorICAg
ICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9t
YWluIiAKICAgICB9OwogCiAgICAgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IgPSB7CiAgICAgICAg
IG1vZHVsZTogc2hhZGVyTW9kdWxlLAotICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2Uu
RlJBR01FTlQsCiAgICAgICAgIGVudHJ5UG9pbnQ6ICJmcmFnbWVudF9tYWluIgogICAgIH07CiAK
ICAgICBwaXBlbGluZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlczogW3ZlcnRleFN0YWdl
RGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAgICB2ZXJ0ZXhTdGFn
ZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9yLCAKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21l
bnRTdGFnZURlc2NyaXB0b3IsCiAgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVM
aXN0IgogICAgIH07CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU5YWU4Mzg2MmJhMWU4NTE2OGFlNzBhMDc2M2E4MzhhNDk4ZWM2ZGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5q
cwpAQCAtMCwwICsxLDUyIEBACithc3luYyBmdW5jdGlvbiBnZXRCYXNpY0RldmljZSgpIHsKKyAg
ICAvLyBGSVhNRTogcmVxdWVzdEFkYXB0ZXIgc2hvdWxkIHRha2UgYSBXZWJHUFVBZGFwdGVyRGVz
Y3JpcHRvci4KKyAgICBjb25zdCBhZGFwdGVyID0gYXdhaXQgd2luZG93LndlYmdwdS5yZXF1ZXN0
QWRhcHRlcih7fSk7CisgICAgY29uc3QgZGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZpY2UoKTsK
KyAgICByZXR1cm4gZGV2aWNlOworfQorCitmdW5jdGlvbiBjcmVhdGVCYXNpY0NvbnRleHQoY2Fu
dmFzLCBkZXZpY2UpIHsKKyAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIndl
YmdwdSIpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYW5kIHNwZWNpZnkgYSBXZWJHUFVUZXh0
dXJlVXNhZ2VFbnVtLgorICAgIGNvbnRleHQuY29uZmlndXJlKHsgZGV2aWNlOiBkZXZpY2UsIGZv
cm1hdDoiQjhHOFI4QThVbm9ybSIsIHdpZHRoOiBjYW52YXMud2lkdGgsIGhlaWdodDogY2FudmFz
LmhlaWdodCB9KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworZnVuY3Rpb24gY3JlYXRlQmFz
aWNQaXBlbGluZShzaGFkZXJNb2R1bGUsIGRldmljZSwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpIHsK
KyAgICB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IgPSB7CisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9k
dWxlLAorICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAorICAgIH07CisKKyAgICBm
cmFnbWVudFN0YWdlRGVzY3JpcHRvciA9IHsKKyAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUs
CisgICAgICAgIGVudHJ5UG9pbnQ6ICJmcmFnbWVudF9tYWluIgorICAgIH07CisKKyAgICBwaXBl
bGluZURlc2NyaXB0b3IgPSB7CisgICAgICAgIHZlcnRleFN0YWdlOiB2ZXJ0ZXhTdGFnZURlc2Ny
aXB0b3IsCisgICAgICAgIGZyYWdtZW50U3RhZ2U6IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yLAor
ICAgICAgICBwcmltaXRpdmVUb3BvbG9neTogInRyaWFuZ2xlU3RyaXAiLAorICAgICAgICBpbnB1
dFN0YXRlOiBpbnB1dFN0YXRlRGVzY3JpcHRvcgorICAgIH07CisKKyAgICByZXR1cm4gZGV2aWNl
LmNyZWF0ZVJlbmRlclBpcGVsaW5lKHBpcGVsaW5lRGVzY3JpcHRvcik7Cit9CisKK2Z1bmN0aW9u
IGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpIHsKKyAgICBjb25z
dCBiYXNpY0F0dGFjaG1lbnQgPSB7CisgICAgICAgIGF0dGFjaG1lbnQ6IGNvbnRleHQuZ2V0TmV4
dFRleHR1cmUoKS5jcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKSwKKyAgICAgICAgY2xlYXJDb2xv
cjogeyByOiAxLjAsIGc6IDAsIGI6IDAsIGE6IDEuMCB9CisgICAgfQorCisgICAgLy8gRklYTUU6
IEZsZXNoIG91dCB0aGUgcmVzdCBvZiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCisgICAg
cmV0dXJuIGNvbW1hbmRCdWZmZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50cyA6
IFtiYXNpY0F0dGFjaG1lbnRdIH0pOworfQorCitmdW5jdGlvbiBlbmNvZGVCYXNpY0NvbW1hbmRz
KHJlbmRlclBhc3NFbmNvZGVyLCByZW5kZXJQaXBlbGluZSwgdmVydGV4QnVmZmVyKSB7CisgICAg
aWYgKHZlcnRleEJ1ZmZlcikKKyAgICAgICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0VmVydGV4QnVm
ZmVycygwLCBbdmVydGV4QnVmZmVyXSwgWzBdKTsKKyAgICByZW5kZXJQYXNzRW5jb2Rlci5zZXRQ
aXBlbGluZShyZW5kZXJQaXBlbGluZSk7CisgICAgcmVuZGVyUGFzc0VuY29kZXIuZHJhdyg0LCAx
LCAwLCAwKTsKKyAgICByZXR1cm4gcmVuZGVyUGFzc0VuY29kZXIuZW5kUGFzcygpOworfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9y
ZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXIt
cGlwZWxpbmVzLWV4cGVjdGVkLnR4dAppbmRleCBiNmQ4NmIwYWNhYWUyNmVkNWY4YWRiNzU4NTdj
ZGY4ODllNjM2NGY2Li5mMjUwOTI2MjE0OTYwZjlhNzUzZDRkN2IxYjU2MDQ0ZDliYWQ3NDcyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0
CkBAIC0zLDcgKzMsNiBAQCBQQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCBX
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Igd2FzIG5vdCBjcgogUEFTUyBXZWJHUFVSZW5k
ZXJQaXBlbGluZSB3aXRoIGludmFsaWQgc2hhZGVyIG1vZHVsZSB3YXMgbm90IGNyZWF0ZWQuCiBQ
QVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCB2ZXJ0ZXggc2hhZGVyIHN0YWdl
IHdhcyBub3QgY3JlYXRlZC4KIFBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlk
IHZlcnRleCBzaGFkZXIgZW50cnkgcG9pbnQgd2FzIG5vdCBjcmVhdGVkLgotUEFTUyBXZWJHUFVS
ZW5kZXJQaXBlbGluZSB3aXRoIGludmFsaWQgV2ViR1BVU2hhZGVyU3RhZ2VFbnVtIHdhcyBub3Qg
Y3JlYXRlZC4KIEFsbCB0ZXN0cyBjb21wbGV0ZS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKaW5kZXggYTNi
OTI5ZWNkODc1Y2QwYWE1MzZkN2QxYjUzMGYxNTFiZDY3MDljYi4uNmNiNGJlZmFhMWQ3NDlhMzc3
OTVmYzQwNWZlZmJjYWU5OWE5NzVjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3Jl
bmRlci1waXBlbGluZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVs
aW5lcy5odG1sCkBAIC0xOSw0MyArMTksMzIgQEAgZnVuY3Rpb24gc2V0VXBCYWRQaXBlbGluZXMo
KSB7CiAgICAgY2hlY2tCYWRSZW5kZXJQaXBlbGluZSh7fSwgIldlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvciIpOwogCiAgICAgbGV0IG5vTW9kdWxlVmVydGV4RGVzY3JpcHRvciA9IHsKLSAg
ICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwKICAgICAgICAgZW50cnlQb2lu
dDogInZlcnRleF9tYWluIgogICAgIH0KICAgICBsZXQgbm9Nb2R1bGVQaXBlbGluZURlc2NyaXB0
b3IgPSB7Ci0gICAgICAgIHN0YWdlczogW25vTW9kdWxlVmVydGV4RGVzY3JpcHRvciwgZnJhZ21l
bnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAgICB2ZXJ0ZXhTdGFnZTogbm9Nb2R1bGVWZXJ0ZXhE
ZXNjcmlwdG9yLCAKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0
b3IsCiAgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH0KICAg
ICBjaGVja0JhZFJlbmRlclBpcGVsaW5lKG5vTW9kdWxlUGlwZWxpbmVEZXNjcmlwdG9yLCAic2hh
ZGVyIG1vZHVsZSIpOwogCiAgICAgLy8gQSAoTWV0YWwpIHJlbmRlcnBpcGVsaW5lIG11c3QgaGF2
ZSBhIHZlcnRleCBmdW5jdGlvbi4KICAgICBsZXQgbm9WZXJ0ZXhQaXBlbGluZURlc2NyaXB0b3Ig
PSB7Ci0gICAgICAgIHN0YWdlczogW2ZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKKyAgICAgICAg
ZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCiAgICAgICAgIHByaW1pdGl2
ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH0KICAgICBjaGVja0JhZFJlbmRlclBpcGVs
aW5lKG5vVmVydGV4UGlwZWxpbmVEZXNjcmlwdG9yLCAidmVydGV4IHNoYWRlciBzdGFnZSIpCiAK
ICAgICBsZXQgYmFkRW50cnlQb2ludERlc2NyaXB0b3IgPSB7IAotICAgICAgICBtb2R1bGU6IHNo
YWRlck1vZHVsZSwgCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5WRVJURVgsIAor
ICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogIlZlcnRl
eF9NYWluIiAKICAgICB9OwogICAgIGxldCBiYWRFbnRyeVBvaW50UGlwZWxpbmVEZXNjc3JpcHRv
ciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbYmFkRW50cnlQb2ludERlc2NyaXB0b3IsIGZyYWdtZW50
U3RhZ2VEZXNjcmlwdG9yXSwKKyAgICAgICAgdmVydGV4U3RhZ2U6IGJhZEVudHJ5UG9pbnREZXNj
cmlwdG9yLCAKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3Is
CiAgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH0KICAgICBj
aGVja0JhZFJlbmRlclBpcGVsaW5lKGJhZEVudHJ5UG9pbnRQaXBlbGluZURlc2NzcmlwdG9yLCAi
dmVydGV4IHNoYWRlciBlbnRyeSBwb2ludCIpOwotCi0gICAgbGV0IGJhZFN0YWdlRW51bURlc2Ny
aXB0b3IgPSB7IAotICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwgCi0gICAgICAgIHN0YWdl
OiBXZWJHUFVTaGFkZXJTdGFnZS5DT01QVVRFLCAKLSAgICAgICAgZW50cnlQb2ludDogInZlcnRl
eF9tYWluIiAKLSAgICB9OwotICAgIGxldCBiYWRTdGFnZUVudW1QaXBlbGluZURlc2NyaXB0b3Ig
PSB7Ci0gICAgICAgIHN0YWdlczogW2JhZFN0YWdlRW51bURlc2NyaXB0b3IsIGZyYWdtZW50U3Rh
Z2VEZXNjcmlwdG9yXSwKLSAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3Qi
Ci0gICAgfQotICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUoYmFkU3RhZ2VFbnVtUGlwZWxpbmVE
ZXNjcmlwdG9yLCAiV2ViR1BVU2hhZGVyU3RhZ2VFbnVtIik7CiB9CiAKIHJ1bldlYkdQVVRlc3Rz
KFtzZXRVcFBpcGVsaW5lLCBzZXRVcEJhZFBpcGVsaW5lc10pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1sCmluZGV4IGQ3NmZmZGRkOWE1NGY1NzJmMDI1
MGVjNzRkMGY2MTczYjVjNTdkNmIuLjMwYWE0ZjFjMjE2OGViMzY2MWEwYzU0OGZkMmRmYjUyMjlk
MjU2MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9zaW1wbGUtdHJpYW5nbGUtc3Ry
aXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0
bWwKQEAgLTUsNiArNSw3IEBACiA8bGluayByZWw9Im1hdGNoIiBocmVmPSJzaW1wbGUtdHJpYW5n
bGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCI+CiA8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cg
aXMgY29tcGxldGVseSBncmVlbi48L3A+CiA8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAw
Ij48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiBjb25zdCBzaGFkZXJDb2RlID0gYAogI2luY2x1ZGUgPG1ldGFsX3N0ZGxp
Yj4KQEAgLTQxLDU3ICs0Miw2IEBAIGZyYWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZlcnRl
eCB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCiB9CiBgCiAKLWFzeW5jIGZ1bmN0aW9uIGdldEJhc2lj
RGV2aWNlKCkgewotICAgIC8vIEZJWE1FOiByZXF1ZXN0QWRhcHRlciBzaG91bGQgdGFrZSBhIFdl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLgotICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCB3aW5kb3cu
d2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9KTsKLSAgICBjb25zdCBkZXZpY2UgPSBhZGFwdGVyLmNy
ZWF0ZURldmljZSgpOwotICAgIHJldHVybiBkZXZpY2U7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUJh
c2ljQ29udGV4dChjYW52YXMsIGRldmljZSkgewotICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMu
Z2V0Q29udGV4dCgid2ViZ3B1Iik7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBhbmQgc3BlY2lm
eSBhIFdlYkdQVVRleHR1cmVVc2FnZUVudW0uCi0gICAgY29udGV4dC5jb25maWd1cmUoeyBkZXZp
Y2U6IGRldmljZSwgZm9ybWF0OiJCOEc4UjhBOFVub3JtIiwgd2lkdGg6IGNhbnZhcy53aWR0aCwg
aGVpZ2h0OiBjYW52YXMuaGVpZ2h0IH0pOwotICAgIHJldHVybiBjb250ZXh0OwotfQotCi1mdW5j
dGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlKSB7Ci0gICAgdmVy
dGV4U3RhZ2VEZXNjcmlwdG9yID0gewotICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwgCi0g
ICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5WRVJURVgsIAotICAgICAgICBlbnRyeVBv
aW50OiAidmVydGV4X21haW4iIAotICAgIH07Ci0KLSAgICBmcmFnbWVudFN0YWdlRGVzY3JpcHRv
ciA9IHsKLSAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCi0gICAgICAgIHN0YWdlOiBXZWJH
UFVTaGFkZXJTdGFnZS5GUkFHTUVOVCwKLSAgICAgICAgZW50cnlQb2ludDogImZyYWdtZW50X21h
aW4iCi0gICAgfTsKLQotICAgIHBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2Vz
OiBbdmVydGV4U3RhZ2VEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCi0gICAg
ICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVTdHJpcCIKLSAgICB9OwotCi0gICAgcmV0
dXJuIGRldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZShwaXBlbGluZURlc2NyaXB0b3IpOwotfQot
Ci1mdW5jdGlvbiBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5kQnVmZmVyKSB7
Ci0gICAgY29uc3QgYmFzaWNBdHRhY2htZW50ID0gewotICAgICAgICBhdHRhY2htZW50OiBjb250
ZXh0LmdldE5leHRUZXh0dXJlKCkuY3JlYXRlRGVmYXVsdFRleHR1cmVWaWV3KCksCi0gICAgICAg
IGNsZWFyQ29sb3I6IHsgcjogMS4wLCBnOiAwLCBiOiAwLCBhOiAxLjAgfQotICAgIH0KLQotICAg
IC8vIEZJWE1FOiBGbGVzaCBvdXQgdGhlIHJlc3Qgb2YgV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuIAotICAgIHJldHVybiBjb21tYW5kQnVmZmVyLmJlZ2luUmVuZGVyUGFzcyh7IGNvbG9yQXR0
YWNobWVudHMgOiBbYmFzaWNBdHRhY2htZW50XSB9KTsKLX0KLQotZnVuY3Rpb24gZW5jb2RlQmFz
aWNDb21tYW5kcyhyZW5kZXJQYXNzRW5jb2RlciwgcmVuZGVyUGlwZWxpbmUpIHsKLSAgICByZW5k
ZXJQYXNzRW5jb2Rlci5zZXRQaXBlbGluZShyZW5kZXJQaXBlbGluZSk7Ci0gICAgcmVuZGVyUGFz
c0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKLSAgICByZXR1cm4gcmVuZGVyUGFzc0VuY29kZXIu
ZW5kUGFzcygpOwotfQotCiBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbnN0IGRldmlj
ZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNlKCk7CiAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiY2FudmFzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUv
dmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3Zl
cnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWQwZmIxOWMyNTJh
NTQyYWZmYTAwYmU5Y2I3NWE0NzNlNjU4YjZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtMCwwICsxLDk2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
UFUgSGVsbG8gVHJpYW5nbGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0i
V2ViR1BVIGNvcnJlY3RseSByZW5kZXJzIGEgZ3JlZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1h
dGNoIiBocmVmPSJzaW1wbGUtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCI+Cis8cD5QYXNz
IGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+Cis8Y2FudmFz
IHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJqcy93ZWJn
cHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCBzaGFkZXJDb2RlID0g
YAorI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KKyAgICAKK3VzaW5nIG5hbWVzcGFjZSBtZXRhbDsK
Kworc3RydWN0IFZlcnRleAoreworICAgIGZsb2F0NCBwb3NpdGlvbiBbW3Bvc2l0aW9uXV07Cit9
OworCit2ZXJ0ZXggVmVydGV4IHZlcnRleF9tYWluKGNvbnN0IGRldmljZSBWZXJ0ZXgqIHZlcnRl
eF9hcnJheSBbW2J1ZmZlcigwKV1dLCB1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQoreworICAgIHJl
dHVybiB2ZXJ0ZXhfYXJyYXlbdmlkXTsKK30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21h
aW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKK3sKKyAgICByZXR1cm4gZmxvYXQ0KDAu
MCwgMS4wLCAwLjAsIDEuMCk7Cit9CitgCisKK2Z1bmN0aW9uIGNyZWF0ZVZlcnRleEJ1ZmZlcihk
ZXZpY2UpIHsKKyAgICBjb25zdCBidWZmZXJTaXplID0gNCAqIDQgKiA0OworICAgIGNvbnN0IGJ1
ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoeyBzaXplOiBidWZmZXJTaXplLCB1c2FnZTogV2Vi
R1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRFIH0pOworICAgIAorICAgIGxldCBhcnJheUJ1ZmZlciA9
IGJ1ZmZlci5tYXBwaW5nOworICAgIGxldCBmbG9hdEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShh
cnJheUJ1ZmZlcik7CisKKyAgICBmbG9hdEFycmF5WzBdID0gLTE7CisgICAgZmxvYXRBcnJheVsx
XSA9IDE7CisgICAgZmxvYXRBcnJheVsyXSA9IDA7CisgICAgZmxvYXRBcnJheVszXSA9IDE7CisK
KyAgICBmbG9hdEFycmF5WzRdID0gLTE7CisgICAgZmxvYXRBcnJheVs1XSA9IC0xOworICAgIGZs
b2F0QXJyYXlbNl0gPSAwOworICAgIGZsb2F0QXJyYXlbN10gPSAxOworCisgICAgZmxvYXRBcnJh
eVs4XSA9IDE7CisgICAgZmxvYXRBcnJheVs5XSA9IDE7CisgICAgZmxvYXRBcnJheVsxMF0gPSAw
OworICAgIGZsb2F0QXJyYXlbMTFdID0gMTsKKworICAgIGZsb2F0QXJyYXlbMTJdID0gMTsKKyAg
ICBmbG9hdEFycmF5WzEzXSA9IC0xOworICAgIGZsb2F0QXJyYXlbMTRdID0gMDsKKyAgICBmbG9h
dEFycmF5WzE1XSA9IDE7CisKKyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVh
dGVJbnB1dFN0YXRlRGVzY3JpcHRvcigpIHsKKyAgICByZXR1cm4geworICAgICAgICBpbmRleEZv
cm1hdDogV2ViR1BVSW5kZXhGb3JtYXQuVUlOVDMyLAorICAgICAgICBhdHRyaWJ1dGVzOiBbewor
ICAgICAgICAgICAgc2hhZGVyTG9jYXRpb246IDAsCisgICAgICAgICAgICBpbnB1dFNsb3Q6IDAs
CisgICAgICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAgICAgICBmb3JtYXQ6IFdlYkdQVVZlcnRl
eEZvcm1hdC5GTE9BVF9SMzJfRzMyX0IzMl9BMzIKKyAgICAgICAgfV0sCisgICAgICAgIGlucHV0
czogW3sKKyAgICAgICAgICAgIHN0cmlkZTogNCAqIDQsCisgICAgICAgICAgICBzdGVwTW9kZTog
V2ViR1BVSW5wdXRTdGVwTW9kZS5WRVJURVgKKyAgICAgICAgfV0KKyAgICB9Cit9CisKK2FzeW5j
IGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZp
Y2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMi
KTsKKyAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZhcywgZGV2aWNl
KTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVycy4KKyAgICBjb25z
dCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogc2hhZGVy
Q29kZSB9KTsKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBjcmVhdGVWZXJ0ZXhCdWZmZXIoZGV2
aWNlKTsKKyAgICBjb25zdCBpbnB1dFN0YXRlRGVzY3JpcHRvciA9IGNyZWF0ZUlucHV0U3RhdGVE
ZXNjcmlwdG9yKCk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5lKHNo
YWRlck1vZHVsZSwgZGV2aWNlLCBpbnB1dFN0YXRlRGVzY3JpcHRvcik7CisgICAgY29uc3QgY29t
bWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7CisgICAgY29uc3QgcGFz
c0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5kQnVmZmVyKTsK
KyAgICBjb25zdCBlbmRDb21tYW5kQnVmZmVyID0gZW5jb2RlQmFzaWNDb21tYW5kcyhwYXNzRW5j
b2RlciwgcGlwZWxpbmUsIHZlcnRleEJ1ZmZlcik7CisgICAgY29uc3QgcXVldWUgPSBkZXZpY2Uu
Z2V0UXVldWUoKTsKKworICAgIHF1ZXVlLnN1Ym1pdChbZW5kQ29tbWFuZEJ1ZmZlcl0pOworICAg
IGNvbnRleHQucHJlc2VudCgpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357104</attachid>
            <date>2018-12-11 22:14:41 -0800</date>
            <delta_ts>2018-12-12 13:29:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181211221440.patch</filename>
            <type>text/plain</type>
            <size>88113</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ4OTRkYjBmOWM1MjM0
MjRiMTJhNzA5NzkzNjgzY2U2NzYxMGI0Yy4uN2VlMzA5ZmRjYWQ1M2FiZmNiNTAxNmFiYzMzMzEw
M2M3ZjgwY2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xl
LXN0cmlwLmh0bWwKKworICAgICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB2ZXJ0ZXggYnVm
ZmVycyB3aXRoIE1ldGFsIHNoYWRpbmcgbGFuZ3VhZ2UgaW4gV2ViR1BVLiBJbiAKKyAgICAgICAg
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLCByZWZhY3RvciB0byBtYXRjaCB1cGRhdGVk
IHNoYWRlciBzdGFnZSBzdHJ1Y3R1cmUgYW5kIGFkZCAKKyAgICAgICAgV2ViR1BVSW5wdXRTdGF0
ZURlc2NyaXB0b3IuIEFsc28gaW1wbGVtZW50IFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzLgorCisgICAgICAgIEFkZCBzeW1ib2xzIGFuZCBmaWxlcyBmb3IgV2ViR1BV
SW5kZXhGb3JtYXQsIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLCBXZWJHUFVJbnB1dFN0ZXBN
b2RlLCAKKyAgICAgICAgV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciwgV2ViR1BVVmVy
dGV4Rm9ybWF0LCBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgIEFk
ZCBhbmQgaW1wbGVtZW50IGludGVyZmFjZXMgYW5kIGRpY3Rpb25hcmllcyBmb3IgV2ViR1BVSW5w
dXRTdGF0ZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQnVm
ZmVyOjpidWZmZXIgY29uc3QpOiBBZGRlZCBnZXR0ZXIgZm9yIGJhY2tpbmcgR1BVQnVmZmVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbDogTW92aW5nIFdl
YkdQVUJ1ZmZlclVzYWdlIG91dCBpbnRvIGl0cyBvd24gSURMLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
ZGV4Rm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4
Rm9ybWF0LmlkbDogQWRkZWQuIAorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oOiBBZGRlZC4KKworICAgICAgICBSZWZhY3RvciB0byBzdXBwb3J0IHVwZGF0ZWQgc3Ry
dWN0dXJlIG9mIHBpcGVsaW5lIGRlc2NyaXB0b3IgaW4gc2tldGNoIElETDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS4qOiBSZW1vdmVkLgorCisgICAg
ICAgIEFkZCBhbmQgaW1wbGVtZW50IHNldFZlcnRleEJ1ZmZlcnM6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMpOiBBZGRlZC4gCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGw6IAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5l
RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KToKKwogMjAxOC0xMi0xMSAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IGZlYXR1cmUgZmxhZyBmb3IgQ1NTIFR5cGVkIE9NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGNlZmI2N2ZlYmY4Mjk3NDEzMWVlMDdiMzJlMzBhYjg2NDJk
ZTJjNWYuLjBiZGQyOWNkZTE4MDhjMjVkNWNlOGExNjU0NTU1ODQ3ODYwNjZmYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC00NjQsNiArNDY0LDkgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb2xvci5pZGwKICAgICBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwKKyAgICBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKKyAgICBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC00NzYsMTEgKzQ3OSwxMyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRl
eHQuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsCi0gICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BV
U3dhcENoYWluLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZUZvcm1hdEVudW0uaWRsCiAgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0
ZXhGb3JtYXQuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlw
dG9yLmlkbAogCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaWRsCiAgICAgTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGIzZDRjNDY5MmZkNWRkZmQ3YWI0NmI5MGJkOTRjMGRhMTc1YWE3NTUuLmY2ZjdlMzUx
NmFlNzQ2NTg4MmNmYmYzMDUxMjc1NGQ5NDM0NjM3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzgxLDYgKzM4MSw5IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBcCkBAIC0zOTMs
MTEgKzM5NiwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcAppbmRleCAxNDhkYWVhNWQxYzkxOTcyY2ExNTg4ZjFj
ZGRmMDc2Yzg1ODI3ZDJhLi4zNDk0MWQwZWE1Zjc5MjUxY2I0OGRkZWJmNzQxMzQzZjllNGJhNzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAK
QEAgLTM4LDcgKzM4LDYgQEAgUmVmUHRyPFdlYkdQVUJ1ZmZlcj4gV2ViR1BVQnVmZmVyOjpjcmVh
dGUoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiBXZWJHUFVCdWZmZXI6OldlYkdQVUJ1ZmZlcihS
ZWY8R1BVQnVmZmVyPiYmIGJ1ZmZlcikKICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkK
IHsKLSAgICBVTlVTRURfUEFSQU0obV9idWZmZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCmluZGV4
IDYzMzZkNTk1M2VjYzFkZTVmODQzOWMwNTczNzVjMWI4OGUxNGNkZGUuLmUyNzY0MjViZDQyYjVk
NjgyZmJlMjQyOGE0MDA2ZTIzZjQ5MjM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCkBAIC0zOCw2ICszOCw4IEBAIGNsYXNzIFdlYkdQVUJ1ZmZl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJ1ZmZlcj4gewogcHVibGljOgogICAgIHN0YXRp
YyBSZWZQdHI8V2ViR1BVQnVmZmVyPiBjcmVhdGUoUmVmPEdQVUJ1ZmZlcj4mJik7CiAKKyAgICBj
b25zdCBHUFVCdWZmZXImIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9
CisKICAgICBKU0M6OkFycmF5QnVmZmVyKiBtYXBwaW5nKCkgY29uc3QgeyByZXR1cm4gbV9idWZm
ZXItPm1hcHBpbmcoKTsgfQogICAgIHZvaWQgdW5tYXAoKSB7IC8qIEZJWE1FOiBVbmltcGxlbWVu
dGVkIHN0dWIuICovIH0KICAgICB2b2lkIGRlc3Ryb3koKSB7IC8qIEZJWE1FOiBVbmltcGxlbWVu
dGVkIHN0dWIuICovIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCBiMzAzZjA5YmI2OGVjYzVlMGI3ZTI0NmVj
NzQ5Y2EzMDY4Y2Q3NTQwLi5jMDFkZjk1MDg0YjIwMDFhMTM3MTVlMDk4ZDFkOTBkNzc0NWU3MmVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVm
ZmVyRGVzY3JpcHRvci5oCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgV2ViR1BVQnVmZmVyRGVzY3JpcHRvciA9IEdQVUJ1ZmZlckRlc2NyaXB0b3I7CiB1c2lu
ZyBXZWJHUFVCdWZmZXJVc2FnZUZsYWdzID0gR1BVQnVmZmVyVXNhZ2VGbGFnczsKLXVzaW5nIFdl
YkdQVUJ1ZmZlclVzYWdlID0gR1BVQnVmZmVyVXNhZ2U7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAK
aW5kZXggN2Q2ZDBmYzMxMGE4Y2RmZjk4NWVjZmUzNzUwNDE2NTY0M2IwYjU5My4uNzdiYTRjYmMw
OGY5NmIxZTMyMmM2OWQ0ODdmNzA1OTQxMjg2YzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVk
ZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hh
ZGVyTW9kdWxlLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgot
I2luY2x1ZGUgIldlYkdQVVNoYWRlclN0YWdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNzIsNTkgKzcxLDI1IEBAIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlCiAgICAgcmV0dXJuIG1v
ZHVsZSA/IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKG1vZHVsZS5yZWxlYXNlTm9uTnVsbCgp
KSA6IG51bGxwdHI7CiB9CiAKLVJlZlB0cjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2
aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Im
JiBkZXNjcmlwdG9yKSBjb25zdAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3I+IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5lU3RhZ2UoY29uc3QgV2ViR1BV
UGlwZWxpbmVTdGFnZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgY29uc3QgY2hhciog
Y29uc3QgZnVuY3Rpb25OYW1lID0gIldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUo
KSI7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7Ci0j
ZW5kaWYKKyAgICBpZiAoIWRlc2NyaXB0b3IubW9kdWxlIHx8ICFkZXNjcmlwdG9yLm1vZHVsZS0+
bW9kdWxlKCkgfHwgZGVzY3JpcHRvci5lbnRyeVBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmIChkZXNjcmlwdG9yLnN0YWdlcy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBObyBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KKyAgICByZXR1cm4gR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgeyBkZXNjcmlw
dG9yLm1vZHVsZS0+bW9kdWxlKCksIGRlc2NyaXB0b3IuZW50cnlQb2ludCB9OworfQogCi0gICAg
R1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2U7Ci0gICAgR1BVUGlwZWxpbmVT
dGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKLQotICAgIGZvciAoY29uc3QgYXV0byYgc3Rh
Z2VEZXNjcmlwdG9yIDogZGVzY3JpcHRvci5zdGFnZXMpIHsKLSAgICAgICAgaWYgKCFzdGFnZURl
c2NyaXB0b3IubW9kdWxlIHx8ICFzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSB8fCBz
dGFnZURlc2NyaXB0b3IuZW50cnlQb2ludC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExPRyhX
ZWJHUFUsICIlczogSW52YWxpZCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiLCBmdW5j
dGlvbk5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzd2l0Y2ggKHN0YWdlRGVzY3JpcHRvci5zdGFnZSkgewotICAgICAgICBjYXNlIFdlYkdQ
VVNoYWRlclN0YWdlOjpWRVJURVg6Ci0gICAgICAgICAgICBpZiAodmVydGV4U3RhZ2UubW9kdWxl
KSB7Ci0gICAgICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBNdWx0aXBsZSB2ZXJ0ZXggc3Rh
Z2VzIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICB2ZXJ0ZXhTdGFnZS5tb2R1bGUgPSBzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUo
KTsKLSAgICAgICAgICAgIHZlcnRleFN0YWdlLmVudHJ5UG9pbnQgPSBzdGFnZURlc2NyaXB0b3Iu
ZW50cnlQb2ludDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkdQVVNoYWRl
clN0YWdlOjpGUkFHTUVOVDoKLSAgICAgICAgICAgIGlmIChmcmFnbWVudFN0YWdlLm1vZHVsZSkg
ewotICAgICAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogTXVsdGlwbGUgZnJhZ21lbnQgc3Rh
Z2VzIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmcmFnbWVudFN0YWdlLm1vZHVsZSA9IHN0YWdlRGVzY3JpcHRvci5tb2R1bGUtPm1vZHVs
ZSgpOwotICAgICAgICAgICAgZnJhZ21lbnRTdGFnZS5lbnRyeVBvaW50ID0gc3RhZ2VEZXNjcmlw
dG9yLmVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBzaGFkZXIgc3RhZ2UgaW4gV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgIH0KK1JlZlB0cjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAoreworICAgIGF1dG8gdmVydGV4U3Rh
Z2UgPSB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0YWdlKGRlc2NyaXB0b3IudmVydGV4U3Rh
Z2UpOworICAgIGF1dG8gZnJhZ21lbnRTdGFnZSA9IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5l
U3RhZ2UoZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlKTsKIAotICAgIC8vIE1ldGFsIChpZiBub3Qg
b3RoZXIgQVBJcykgcmVxdWlyZXMgYXQgbGVhc3QgdGhlIHZlcnRleCBzaGFkZXIuCi0gICAgaWYg
KCF2ZXJ0ZXhTdGFnZS5tb2R1bGUgfHwgdmVydGV4U3RhZ2UuZW50cnlQb2ludC5pc0VtcHR5KCkp
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIHZlcnRleCBzdGFnZSBpbiBXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICBpZiAoIXZl
cnRleFN0YWdlIHx8ICFmcmFnbWVudFN0YWdlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJXZWJH
UFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKCk6IEludmFsaWQgV2ViR1BVUGlwZWxpbmVT
dGFnZURlc2NyaXB0b3IhIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+Y3JlYXRlUmVuZGVyUGlwZWxpbmUoR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yIHsgV1RGTW92ZSh2ZXJ0ZXhTdGFnZSksIFdURk1vdmUoZnJhZ21l
bnRTdGFnZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3kgfSk7CisgICAgYXV0byBwaXBl
bGluZSA9IG1fZGV2aWNlLT5jcmVhdGVSZW5kZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IgeyBXVEZNb3ZlKCp2ZXJ0ZXhTdGFnZSksIFdURk1vdmUoKmZyYWdtZW50U3RhZ2Up
LCBkZXNjcmlwdG9yLnByaW1pdGl2ZVRvcG9sb2d5LCBkZXNjcmlwdG9yLmlucHV0U3RhdGUgfSk7
CiAgICAgcmV0dXJuIHBpcGVsaW5lID8gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShwaXBl
bGluZS5yZWxlYXNlTm9uTnVsbCgpKSA6IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NDAz
NTg0YjViZTQ3MWRhNjEyOGYyZTE2MDRkYjliNjA1ZmUzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUp
CisKKyNpbmNsdWRlICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0ID0gR1BVSW5kZXhGb3JtYXQ7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTI1NmI0ZTU0NzMyZjdkMzViN2IzNjI0NmY0NGU3NDcxNTdjOTI3OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9y
bWF0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNv
bS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAg
RG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVJbmRleEZvcm1hdCB7
CisgICAgY29uc3QgdTMyIFVJTlQxNiA9IDA7CisgICAgY29uc3QgdTMyIFVJTlQzMiA9IDE7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
cHV0U3RhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU5MzA2Yjk3ODJiYmNiZjIyZTEyYWU5
ZTEzZWMyODAwNGU0MzdhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1
ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0RW51
bSA9IEdQVUluZGV4Rm9ybWF0RW51bTsKK3VzaW5nIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9y
ID0gR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3I7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzk5NDI0MTI4NDhjMWFlYmViOWEwZmNiZTdhNjE1OWU1MWM2ODgwNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNj
cmlwdG9yLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5
cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0eXBlZGVmIHUzMiBXZWJHUFVJbmRleEZvcm1hdEVu
dW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciB7CisgICAgV2Vi
R1BVSW5kZXhGb3JtYXRFbnVtIGluZGV4Rm9ybWF0OworCisgICAgc2VxdWVuY2U8V2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBzZXF1ZW5jZTxXZWJHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3I+IGlucHV0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzZDM0
MmMzNDAzZWZjOWFlODdhZjBjYTllYmRkOTZjYjhjYzVhYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSAiR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5wdXRTdGVwTW9kZSA9IEdQVUlucHV0U3RlcE1vZGU7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBN
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1v
ZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwMGIyM2U5MGM1MGUyY2Q2YjMxMDhmMTM5ZDNhNWZkNjM4ODBh
NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVJbnB1dFN0ZXBNb2RlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBz
Oi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2Vi
aWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVJ
bnB1dFN0ZXBNb2RlIHsKKyAgICBjb25zdCB1MzIgVkVSVEVYID0gMDsKKyAgICBjb25zdCB1MzIg
SU5TVEFOQ0UgPSAxOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCAzMTIxYTliYTU2
ODM3NDAxNDNjZWMzMDU5MDgyYmM4MmNhNTQxNTkyLi41MmMyZjlhYzBmYjkxYzQwNzQ3OWRmZWZl
M2U4ZTA5YzIwMzExYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywxMyArMjcs
MTAgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJXZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7Ci0gICAgVmVj
dG9yPFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CisgICAgLy8gV2ViR1BV
UGlwZWxpbmVMYXlvdXQgbGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmlkbAppbmRleCAzM2Y3YTc2NjE3YWIxOTU5ZjIwNzE4ODY5YjU5
N2U3ZjVjMmU0OTI4Li5lYjEzNWI1NTc0NmU0NjE2NGVjNmQ3ODcwZDExOWM5YTMyNzVmMTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbApAQCAtMjksNSArMjksNCBAQAogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25hcnkgV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZSB7CiAgICAgLy8gV2ViR1BVUGlwZWxpbmVMYXlvdXQgbGF5b3V0OwotICAgIHNlcXVlbmNl
PFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yLmgKaW5kZXggMzNmM2FlMDk1NjUwMGQ0ZjdiMzdjNWU1MDdkMDg3YWRmMGFkYTE2
Ni4uNDVhODdiZDZjZTU1ZTc3YWM4MmE5Mzg3NGM1MmFjOTYyYjU2MzFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oCkBAIC0zMywxMSArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVzaW5nIFdlYkdQVVNoYWRlclN0YWdlRW51bSA9IHVuc2lnbmVkIGxvbmc7Ci0KIHN0cnVj
dCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgY29uc3QgV2ViR1BVU2hhZGVy
TW9kdWxlKiBtb2R1bGUgPSBudWxscHRyOwotICAgIFdlYkdQVVNoYWRlclN0YWdlRW51bSBzdGFn
ZTsKICAgICBTdHJpbmcgZW50cnlQb2ludDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmlkbAppbmRleCAwZDZiMDg4MTdkOTJkYTdiY2NkMDI4YWM3ZmUzZWNjMTEyMjM1OWI0Li5lZWRh
ZjA4MTZmNTQ0ODFkMzdkODNjNjc0NjkyYzI5YjZmN2VjNzkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURl
c2NyaXB0b3IuaWRsCkBAIC0zMSw2ICszMSw1IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBXZWJH
UFVTaGFkZXJTdGFnZUVudW07CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKIF0gZGljdGlv
bmFyeSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgV2ViR1BVU2hhZGVyTW9k
dWxlIG1vZHVsZTsKLSAgICBXZWJHUFVTaGFkZXJTdGFnZUVudW0gc3RhZ2U7CiAgICAgRE9NU3Ry
aW5nIGVudHJ5UG9pbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCmluZGV4IDEyZTY5MDNmOTk5YmMz
MDYzMWE3OTBlN2FkYjUxNTZmMDBhZjUyMjkuLjgzZGEwNzBlOWZiMzQwMjdhMThiODAwMjkzZTEz
MmFhM2E3NDAxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lu
Y2x1ZGUgIkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVy
UGFzc0VuY29kZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVQnVm
ZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNiArNDYsMjEgQEAgV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI6OldlYkdQVVJlbmRlclBhc3NFbmNvZGVyKFJlZjxXZWJHUFVDb21t
YW5kQnVmZmVyPiYmIGNyZWEKIHsKIH0KIAordm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIHN0YXJ0U2xvdCwgVmVjdG9yPFJlZlB0cjxX
ZWJHUFVCdWZmZXI+PiYmIGJ1ZmZlcnMsIFZlY3Rvcjx1bnNpZ25lZD4mJiBvZmZzZXRzKQorewor
ICAgIGlmIChidWZmZXJzLmlzRW1wdHkoKSB8fCBvZmZzZXRzLmlzRW1wdHkoKSB8fCBidWZmZXJz
LnNpemUoKSAhPSBvZmZzZXRzLnNpemUoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnM6IEludmFsaWQgbnVtYmVyIG9mIGJ1
ZmZlcnMgb3Igb2Zmc2V0cyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8g
Z3B1QnVmZmVycyA9IGJ1ZmZlcnMubWFwKFtdIChjb25zdCBhdXRvJiBidWZmZXIpIC0+IFJlZjxj
b25zdCBHUFVCdWZmZXI+IHsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci0+YnVmZmVyKCk7CisgICAg
fSk7CisKKyAgICAvLyBGSVhNRTogVXNlIHN0YXJ0U2xvdCBwcm9wZXJseS4KKyAgICBtX3Bhc3NF
bmNvZGVyLT5zZXRWZXJ0ZXhCdWZmZXJzKHN0YXJ0U2xvdCwgV1RGTW92ZShncHVCdWZmZXJzKSwg
V1RGTW92ZShvZmZzZXRzKSk7Cit9CisKIHZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRy
YXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhDb3VudCwgdW5zaWduZWQgbG9uZyBpbnN0YW5jZUNvdW50
LCB1bnNpZ25lZCBsb25nIGZpcnN0VmVydGV4LCB1bnNpZ25lZCBsb25nIGZpcnN0SW5zdGFuY2Up
CiB7CiAgICAgLy8gRklYTUU6IFdoYXQga2luZCBvZiB2YWxpZGF0aW9uIGRvIHdlIG5lZWQgdG8g
aGFuZGxlIGhlcmU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCBjMzhjOWZkY2U5OWQ0MDZkMDljOGI0N2E1
NDE5ZDYxODg1YzgyOTQxLi4zMTI5NmUzZTllODI4ZTEwNDIxMGVkNDA1OTc4ZTJlMmYzMWZjMDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmgKQEAgLTMwLDE2ICszMCwyMCBAQAogI2luY2x1ZGUgIldlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOwogY2xhc3MgR1BVUmVuZGVyUGFzc0VuY29kZXI7CitjbGFz
cyBXZWJHUFVCdWZmZXI7CiAKIGNsYXNzIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyIGZpbmFsIDog
cHVibGljIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmUHRyPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoUmVmPFdlYkdQVUNvbW1h
bmRCdWZmZXI+JiYsIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CiAKKyAgICAvLyBGSVhN
RTogTGFzdCBhcmd1bWVudCBzaG91bGQgYmUgVmVjdG9yPHVuc2lnbmVkIGxvbmc+LiBXaHkgaXMg
dGhlIGdlbmVyYXRlZCBjb2RlIGluY29ycmVjdGx5IGFzc3VtaW5nIHRoZSBJREwgd2FudHMgYSBz
ZXF1ZW5jZTx1bnNpZ25lZCBpbnQ+PworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25l
ZCBsb25nLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4m
Jik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVk
IGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsCmluZGV4
IDg2OGY2OGZjNGFkMWZlODhhZTRkZGQ3YzdlNmRkNWY0ZTk2MmM1ODYuLmQxNjJlYzUyOGVkYmUx
ZDY4MDU0NDZiZWE5NGZhYmE2MjA5MWU5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGwKQEAgLTMxLDEy
ICszMSwxMyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwogICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViR1BVLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBXZWJHUFVS
ZW5kZXJQYXNzRW5jb2RlciA6IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKKyAgICB2
b2lkIHNldFZlcnRleEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8V2ViR1BVQnVmZmVy
PiBidWZmZXJzLCBzZXF1ZW5jZTx1MzI+IG9mZnNldHMpOworCiAgICAgdm9pZCBkcmF3KHUzMiB2
ZXJ0ZXhDb3VudCwgdTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJzdFZlcnRleCwgdTMyIGZpcnN0
SW5zdGFuY2UpOwogCiAvKiBOb3QgWWV0IEltcGxlbWVudGVkCiAgICAgdm9pZCBzZXRCbGVuZENv
bG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpOwogICAgIHZvaWQgc2V0SW5k
ZXhCdWZmZXIoV2ViR1BVQnVmZmVyIGJ1ZmZlciwgdTMyIG9mZnNldCk7Ci0gICAgdm9pZCBzZXRW
ZXJ0ZXhCdWZmZXJzKHUzMiBzdGFydFNsb3QsIHNlcXVlbmNlPFdlYkdQVUJ1ZmZlcj4gYnVmZmVy
cywgc2VxdWVuY2U8dTMyPiBvZmZzZXRzKTsKIAogICAgIHZvaWQgZHJhd0luZGV4ZWQodTMyIGlu
ZGV4Q291bnQsIHUzMiBpbnN0YW5jZUNvdW50LCB1MzIgZmlyc3RJbmRleCwgaTMyIGJhc2VWZXJ0
ZXgsIHUzMiBmaXJzdEluc3RhbmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAppbmRl
eCA5YzI2NDYzOTA4NDZkZGE4MjllZmNjMjg5MTM2OGRjYTg5OTQwNzJiLi5jMTJmNzU4YTdiZmNl
ODlhYWExNGM2MWQyMDVjZWY5M2ZkOWEwMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
aApAQCAtMjgsMTQgKzI4LDE5IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUgIkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIgor
I2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IFdlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewogICAgIHVzaW5nIFByaW1pdGl2ZVRvcG9sb2d5ID0g
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpQcmltaXRpdmVUb3BvbG9neTsKIAorICAgIFdl
YkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xvZ3kg
cHJpbWl0aXZlVG9wb2xvZ3k7CisgICAgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRT
dGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaWRsCmluZGV4IDdmYTU0NDc0M2RmMjY5ZjJjYzM4Yjg0MWYyOGE1N2EyMzUwYTE1OTQu
LmZkZGI2MjhkZmE0MGI5MDUyZjc5ODkyMTg1NjA4MDI0ZWUzOTA5NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmlkbApAQCAtMzYsMTEgKzM2LDE1IEBAIGVudW0gV2ViR1BVUHJpbWl0
aXZlVG9wb2xvZ3kgewogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50
aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgeworICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
IGZyYWdtZW50U3RhZ2U7CisKICAgICBXZWJHUFVQcmltaXRpdmVUb3BvbG9neSBwcmltaXRpdmVU
b3BvbG9neTsKLSAgICAvKiBUbyBCZSBJbXBsZW1lbnRlZDoKLSAgICBzZXF1ZW5jZTxXZWJHUFVC
bGVuZFN0YXRlPiBibGVuZFN0YXRlczsKLSAgICBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZSBkZXB0
aFN0ZW5jaWxTdGF0ZTsKLSAgICBXZWJHUFVJbnB1dFN0YXRlIGlucHV0U3RhdGU7Ci0gICAgV2Vi
R1BVQXR0YWNobWVudHNTdGF0ZSBhdHRhY2htZW50c1N0YXRlOyAqLworICAgIFdlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yIGlucHV0U3RhdGU7CisvKiBUbyBCZSBJbXBsZW1lbnRlZDoKKyAgICBz
ZXF1ZW5jZTxXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRvcj4gYmxlbmRTdGF0ZXM7CisgICAgV2Vi
R1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlcHRoU3RlbmNpbFN0YXRlOworICAgIFdl
YkdQVUF0dGFjaG1lbnRzU3RhdGVEZXNjcmlwdG9yIGF0dGFjaG1lbnRzU3RhdGU7CiAgICAgLy8g
VE9ETyBvdGhlciBwcm9wZXJ0aWVzCisqLwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYTUxMzBjMmYxNzQwODYzZGNiZmY1MWUxNjNkZWQ3ZTJjOWIyNmExLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBXZWJHUFVTaGFkZXJTdGFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlclN0YWdl
PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgVkVSVEVYID0gMDsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBGUkFHTUVOVCA9IDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFVURSA9IDI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYTM3YTM3NDEyZDQ5MzAxYmJmNTc4MTdlODU2Yzk2ZDA2MzRjZTZiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9n
cHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKLQotdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHUzMjsKLQotWwotICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKLSAgICBFbmFibGVkQXRS
dW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFj
ZSBXZWJHUFVTaGFkZXJTdGFnZSB7Ci0gICAgY29uc3QgdTMyIFZFUlRFWCA9IDA7Ci0gICAgY29u
c3QgdTMyIEZSQUdNRU5UID0gMTsKLSAgICBjb25zdCB1MzIgQ09NUFVURSA9IDI7Ci19OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmli
dXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZDgxYTg5ODMzMmQzYzI0YmFj
NzAyOTdjYzQxOWJmNzZlZTFjZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yID0gR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvcjsKK3VzaW5nIFdlYkdQVVZlcnRleEZvcm1hdEVudW0g
PSBHUFVWZXJ0ZXhGb3JtYXRFbnVtOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44OTZhZWEzMzY3YzE3NjhiOGViZDliNjMzZWJmZDQ4YWJlMDczYWJjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRw
czovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndl
YmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BVVmVy
dGV4Rm9ybWF0RW51bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2Ny
aXB0b3IgeworICAgIHUzMiBzaGFkZXJMb2NhdGlvbjsKKyAgICB1MzIgaW5wdXRTbG90OworICAg
IHUzMiBvZmZzZXQ7CisgICAgV2ViR1BVVmVydGV4Rm9ybWF0RW51bSBmb3JtYXQ7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDc4NmQ1MWZlOGZiYmJjYTQ5ZDQzYjNiMmQ3ZDdiMDc5Y2MwNTFmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
Rm9ybWF0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhGb3JtYXQg
PSBHUFVWZXJ0ZXhGb3JtYXQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVmVydGV4Rm9ybWF0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2ZlZjQxYWYwMzM1Y2YxNmEyNDZi
YzBlMmU5ZjM5YzI5OGJjODdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rl
c2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGlu
dGVyZmFjZSBXZWJHUFVWZXJ0ZXhGb3JtYXQgeworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMy
X0IzMl9BMzIgPSAwOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMyX0IzMiA9IDE7CisgICAg
Y29uc3QgdTMyIEZMT0FUX1IzMl9HMzIgPSAyOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzIgPSAz
OworICAgIC8vIFRPRE8gb3RoZXIgdmVydGV4IGZvcm1hdHMKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2ZWQzNzU3MzNmNmIxYWY3ZDYzZjkyMzA5MTY5YmE0YWQ4YzliOTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5w
dXRTdGVwTW9kZUVudW0gPSBHUFVJbnB1dFN0ZXBNb2RlRW51bTsKK3VzaW5nIFdlYkdQVVZlcnRl
eElucHV0RGVzY3JpcHRvciA9IEdQVVZlcnRleElucHV0RGVzY3JpcHRvcjsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2Ny
aXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwN2UzMTUzMDQ5ZTM0NTk1ZDE4ODdkNjg4ODZmOTg2ODRk
OTgyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMy
IFdlYkdQVUlucHV0U3RlcE1vZGVFbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yIHsKKyAgICB1MzIgc3RyaWRlOworICAgIFdlYkdQVUlucHV0U3RlcE1vZGVF
bnVtIHN0ZXBNb2RlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTM3M2EyNTZlZjExMjFjYzQyY2Qw
MWIwNzhhY2ViMDA0ZGQ4MTQ1Mi4uYjRiZGIyNWI1MTcwNjg3NDQwYmE2NjNmMDZhMDliZWM0MDFl
MGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMjgsNiArMzIyOCw5IEBAIEpTV2ViR1BVQnVmZmVy
VXNhZ2UuY3BwCiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYkdQVUNvbG9yLmNwcAog
SlNXZWJHUFVEZXZpY2UuY3BwCitKU1dlYkdQVUluZGV4Rm9ybWF0LmNwcAorSlNXZWJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVSW5wdXRTdGVwTW9kZS5jcHAKIEpTV2ViR1BV
UXVldWUuY3BwCiBKU1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBKU1dlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcApAQCAtMzI0MCwxMSArMzI0MywxMyBAQCBKU1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmNwcAogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3Bw
CiBKU1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIEpTV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5jcHAKLUpTV2ViR1BVU2hhZGVyU3RhZ2UuY3BwCiBKU1dlYkdQVVN3YXBDaGFpbi5jcHAKIEpT
V2ViR1BVVGV4dHVyZS5jcHAKIEpTV2ViR1BVVGV4dHVyZUZvcm1hdEVudW0uY3BwCiBKU1dlYkdQ
VVRleHR1cmVWaWV3LmNwcAorSlNXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmNwcAor
SlNXZWJHUFVWZXJ0ZXhGb3JtYXQuY3BwCitKU1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5j
cHAKIEpTV2ViTWV0YWxCdWZmZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZEJ1ZmZlci5jcHAKIEpT
V2ViTWV0YWxDb21tYW5kUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGJjYjRhN2VlMmU2N2NmMGMzYmZjYTk1OGQz
NWM4YjFlNGY2MDE1MC4uZWNlOTliNmQ3OWZhYThjY2RlYTYwNzBmNzBiNTVkZDk0NjZmYWY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM3OTgsOCArMTM3OTgsMTQgQEAKIAkJRDA2MTVGQ0MyMTdGRTVDNjAwOEE0OEE4IC8q
IFdlYkdQVVNoYWRlck1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTaGFkZXJNb2R1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0QyMTdGRTVDNjAwOEE0OEE4
IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTaGFk
ZXJNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDYxNUZDRTIxN0ZF
NUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJN
b2R1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMDYzQUU0QzIxQzA3QUI1
MDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVzYWdl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2
QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVz
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTNGMjFDMDVEREQwMDBF
NkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJV
c2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0MDIxQzA1REREMDAw
RTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVzYWdlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDQyMUMwNjE3RDAwMEU2QTM1
IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVWZXJ0ZXhGb3Jt
YXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDUyMUMwNjE3RDAwMEU2
QTM1IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVVmVydGV4Rm9ybWF0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDYyMUMwNjYyNjAwMEU2QTM1
IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5wdXRTdGVw
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0NzIxQzA2NjI2MDAw
RTZBMzUgLyogV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVSW5wdXRTdGVwTW9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ4MjFDMDY2REIwMDBF
NkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVJbmRleEZv
cm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0OTIxQzA2NkRCMDAw
RTZBMzUgLyogV2ViR1BVSW5kZXhGb3JtYXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUluZGV4Rm9ybWF0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNG
IC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA3REVBQjcwQTM2NTU0QTAwQ0EzMEY4IC8q
IEluc2VydExpc3RDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNlcnRMaXN0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzgzMCw4ICsxMzgzNiw2IEBACiAJCUQwQkQ0RjVCMTQwODg1MEYwMDY4MzlCNiAvKiBEaWN0
YXRpb25Db21tYW5kSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3Rh
dGlvbkNvbW1hbmRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RUIy
MTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwQzQxOUVDMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMEM0MTlFRTIxODNEOUM4MDA5RUMx
REUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyU3Rh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBDNDE5RUYyMTgzRDlDODAwOUVD
MURFIC8qIFdlYkdQVVNoYWRlclN0YWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJTdGFnZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYwMjE4M0VCMzEwMDlFQzFERSAv
KiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBD
NDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMEM0MTlGMjIxODNFRkVDMDA5RUMxREUgLyogV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4NTMsNiArMTM4NTcs
MTUgQEAKIAkJRDBEODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViR1BVQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEODY0
OTEyMUI3NjBDNDAwM0M5ODNDIC8qIEdQVUJ1ZmZlck1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR1BVQnVmZmVyTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
RDg2NDkyMjFCNzYwRjIwMDNDOTgzQyAvKiBHUFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BV
QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDkzMjFCQTE3M0Qw
MDNDOTgzQyAvKiBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5NDIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3Iu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTUyMUJBMThGNDAwM0M5ODNDIC8qIFdlYkdQVVZlcnRleEF0
dHJpYnV0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4QXR0cmlidXRl
RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5NjIxQkEx
OEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk4MjFCQTE5QTcwMDNDOTgzQyAv
KiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleElucHV0
RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk5MjFC
QTFCMUYwMDNDOTgzQyAvKiBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgzQyAvKiBHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU0MjE3OTMwRTIw
MDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU3dhcENo
YWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU1MjE3OTMwRTIwMDdG
RTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU3dh
cENoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEQTBCRTYyMTc5MzBF
MjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU3dhcENoYWluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDI0LDYgKzE4MDM3LDcgQEAKIAkJ
CQkzMTJGRjhCRDIxQTRDMkYxMDBFQjE5OUQgLyogR1BVQ29tbWFuZEJ1ZmZlci5oICovLAogCQkJ
CTMxMkZGOEJGMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuY3BwICovLAogCQkJCTMxMkZG
OEJFMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuaCAqLywKKwkJCQlEMEQ4NjQ5OTIxQkEx
QjFGMDAzQzk4M0MgLyogR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhD
NDIxQTRDMkY0MDBFQjE5OUQgLyogR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJ
CTMxMkZGOEMyMjFBNEMyRjMwMEVCMTk5RCAvKiBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5o
ICovLAogCQkJCUQwMzIxMUNGMjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5oICovLApAQCAtMTgwMzgsNiArMTgwNTIsOCBAQAogCQkJCTMxMkZGOEJBMjFBNEMy
RUYwMEVCMTk5RCAvKiBHUFVTd2FwQ2hhaW4uaCAqLywKIAkJCQkzMTJGRjhDNTIxQTRDMkY0MDBF
QjE5OUQgLyogR1BVVGV4dHVyZS5oICovLAogCQkJCTMxMkZGOEMzMjFBNEMyRjMwMEVCMTk5RCAv
KiBHUFVUZXh0dXJlRm9ybWF0RW51bS5oICovLAorCQkJCUQwRDg2NDlCMjFCQTFDMkQwMDNDOTgz
QyAvKiBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRDBEODY0OUMyMUJB
MUNFODAwM0M5ODNDIC8qIEdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAogCQkJCTQ5ODc3
MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEyNDJD
NTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTI1NTE1LDYgKzI1NTMxLDEwIEBACiAJCQkJRDBE
ODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5pZGwgKi8sCiAJCQkJRDBEODY0
ODIyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAqLywKIAkJCQlE
MEQ4NjQ4MzIxQjYxNzI3MDAzQzk4M0MgLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwgKi8s
CisJCQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8s
CisJCQkJRDA2M0FFM0YyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8s
CisJCQkJRDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAq
LywKKwkJCQlEMDYzQUU0MDIxQzA1REREMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRs
ICovLAogCQkJCUQwMDFEOUFDMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xvci5oICovLAog
CQkJCUQwMDFEOUFEMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xvci5pZGwgKi8sCiAJCQkJ
RDBFQUNGNzcyMTkzNzIyODAwMEZBNzVDIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXIuY3BwICovLApA
QCAtMjU1MjMsNiArMjU1NDMsMTIgQEAKIAkJCQlEMDBGNTk1MzIxNzAxRDhDMDAwRDcxREIgLyog
V2ViR1BVRGV2aWNlLmNwcCAqLywKIAkJCQlEMDBGNTk1MjIxNzAxRDhDMDAwRDcxREIgLyogV2Vi
R1BVRGV2aWNlLmggKi8sCiAJCQkJRDAwRjU5NTQyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURl
dmljZS5pZGwgKi8sCisJCQkJRDA2M0FFNDgyMUMwNjZEQjAwMEU2QTM1IC8qIFdlYkdQVUluZGV4
Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2QTM1IC8qIFdlYkdQVUluZGV4
Rm9ybWF0LmlkbCAqLywKKwkJCQlEMEQ4NjQ5MzIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5NDIxQkExNzNEMDAzQzk4M0MgLyog
V2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwNjNBRTQ2MjFDMDY2MjYw
MDBFNkEzNSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmggKi8sCisJCQkJRDA2M0FFNDcyMUMwNjYy
NjAwMEU2QTM1IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsICovLAogCQkJCUQwQzQxOUYwMjE4
M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJ
RDBDNDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
aWRsICovLAogCQkJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oICovLApAQCAtMjU1NTMsOCArMjU1NzksNiBAQAogCQkJCUQwNjE1RkNF
MjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLAogCQkJCUQwNjBE
ODg3MjE4MjY5NzAwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggKi8s
CiAJCQkJRDA2MEQ4ODQyMTgyNUQ1RjAwMzM5MzE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3IuaWRsICovLAotCQkJCUQwQzQxOUVFMjE4M0Q5QzgwMDlFQzFERSAvKiBXZWJHUFVTaGFk
ZXJTdGFnZS5oICovLAotCQkJCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFERSAvKiBXZWJHUFVTaGFk
ZXJTdGFnZS5pZGwgKi8sCiAJCQkJRDBEQTBCRTUyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3
YXBDaGFpbi5jcHAgKi8sCiAJCQkJRDBEQTBCRTQyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3
YXBDaGFpbi5oICovLAogCQkJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uaWRsICovLApAQCAtMjU1NjYsOCArMjU1OTAsMTIgQEAKIAkJCQlEMEVBQ0Y4ODIxOTNF
RTRFMDAwRkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuY3BwICovLAogCQkJCUQwRUFDRjg3MjE5
M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5oICovLAogCQkJCUQwRUFDRjg5MjE5
M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5pZGwgKi8sCi0JCQkJRDA2M0FFNEMy
MUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLywKLQkJCQlEMDYzQUU0
RTIxQzA4MTBBMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLywKKwkJCQlEMEQ4NjQ5
NTIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oICov
LAorCQkJCUQwRDg2NDk2MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVE
ZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NDIxQzA2MTdEMDAwRTZBMzUgLyogV2ViR1BV
VmVydGV4Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDUyMUMwNjE3RDAwMEU2QTM1IC8qIFdlYkdQ
VVZlcnRleEZvcm1hdC5pZGwgKi8sCisJCQkJRDBEODY0OTcyMUJBMTlBNzAwM0M5ODNDIC8qIFdl
YkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDk4MjFCQTE5QTcwMDND
OTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovLAogCQkJKTsKIAkJCXBh
dGggPSB3ZWJncHU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGQyNTY4MjdlYjhk
ZmNjODdmMzFmMDY0NGI0ODhhY2M0MjRiNDdhY2QuLmUwYjM5N2YzZGRkNjQzZTdlNGUxM2ZjOTg1
M2U1ZTAxZDFiMWZjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE5MywxNiArMTkzLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhXZWJHUFVCdWZmZXJVc2FnZSkgXAogICAgIG1hY3JvKFdlYkdQVUNvbW1h
bmRCdWZmZXIpIFwKICAgICBtYWNybyhXZWJHUFVEZXZpY2UpIFwKKyAgICBtYWNybyhXZWJHUFVJ
bmRleEZvcm1hdCkgXAorICAgIG1hY3JvKFdlYkdQVUlucHV0U3RlcE1vZGUpIFwKICAgICBtYWNy
byhXZWJHUFVRdWV1ZSkgXAogICAgIG1hY3JvKFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
KSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdQ
VVJlbmRlclBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyUGlwZWxpbmUpIFwK
LSAgICBtYWNybyhXZWJHUFVTaGFkZXJTdGFnZSkgXAogICAgIG1hY3JvKFdlYkdQVVNoYWRlck1v
ZHVsZSkgXAogICAgIG1hY3JvKFdlYkdQVVN3YXBDaGFpbikgXAogICAgIG1hY3JvKFdlYkdQVVRl
eHR1cmUpIFwKICAgICBtYWNybyhXZWJHUFVUZXh0dXJlVmlldykgXAorICAgIG1hY3JvKFdlYkdQ
VVZlcnRleEZvcm1hdCkgXAogICAgIG1hY3JvKFdlYk1ldGFsQnVmZmVyKSBcCiAgICAgbWFjcm8o
V2ViTWV0YWxDb21tYW5kQnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxDb21tYW5kUXVldWUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJ
bnB1dFN0YXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE3ODQ3NzNjYTU4NTg0
MmVjNWRkOWNmMGM1ZDY4NWY0MTEwNWE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBHUFVJbmRleEZvcm1hdEVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVJbmRl
eEZvcm1hdCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUluZGV4Rm9ybWF0PiB7CitwdWJsaWM6Cisg
ICAgZW51bSBFbnVtIDogR1BVSW5kZXhGb3JtYXRFbnVtIHsKKyAgICAgICAgVWludDE2ID0gMCwK
KyAgICAgICAgVWludDMyID0gMQorICAgIH07Cit9OworCitzdHJ1Y3QgR1BVSW5wdXRTdGF0ZURl
c2NyaXB0b3IgeworICAgIEdQVUluZGV4Rm9ybWF0RW51bSBpbmRleEZvcm1hdDsKKworICAgIFZl
Y3RvcjxHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yPiBhdHRyaWJ1dGVzOworICAgIFZlY3Rv
cjxHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I+IGlucHV0czsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CmluZGV4IDNiNjRkMDQ0Y2E1ZTljMWFiZGEwYWRlMjc0ZmIyMWJjYjlmMDA0MzUuLmM5MDcxY2Jm
NjFmNWEzYzJhYWVhZWRiOWJmYzEwY2IxNjQzMGY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CkBAIC0zMiwxMSArMzIsMTMgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBPQkpDX1BST1RPQ09MKE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyKTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHUFVCdWZmZXI7CiBjbGFzcyBHUFVDb21t
YW5kQnVmZmVyOwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKQEAgLTUxLDYgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYp
IGZpbmFsOwogCisgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcsIFZlY3Rv
cjxSZWY8Y29uc3QgR1BVQnVmZmVyPj4mJiwgVmVjdG9yPHVuc2lnbmVkPiYmKTsKICAgICB2b2lk
IGRyYXcodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWdu
ZWQgbG9uZyk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
aW5kZXggMTRlYzdkMmY5N2ViYzQ0YzdiMzZiOTVlZTRhNWNhM2JjY2Q5YmQyOC4uNWI0M2IxZWUx
YmZjYTg3NzBiNGIwMzg4OTdkNzIxNWMzMmI2YWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAor
I2luY2x1ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmgiCiAKQEAgLTQ2LDYgKzQ3LDcgQEAgc3RydWN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ciB7CiAgICAgR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2U7CiAgICAgR1BV
UGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKICAgICBQcmltaXRpdmVUb3Bv
bG9neSBwcmltaXRpdmVUb3BvbG9neTsKKyAgICBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBpbnB1
dFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRy
aWJ1dGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU4ZDZkZGExY2E3Y2ZjMTU3OTFlMjYyNWZi
MTg2MzU5MzBmNDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgR1BVVmVydGV4Rm9ybWF0RW51bSA9IHVuc2lnbmVkIGxvbmc7CisKK2NsYXNzIEdQVVZlcnRl
eEZvcm1hdCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVZlcnRleEZvcm1hdD4geworcHVibGljOgor
ICAgIGVudW0gRW51bSA6IEdQVVZlcnRleEZvcm1hdEVudW0geworICAgICAgICBGbG9hdFIzMkcz
MkIzMkEzMiA9IDAsCisgICAgICAgIEZsb2F0UjMyRzMyQjMyID0gMSwKKyAgICAgICAgRmxvYXRS
MzJHMzIgPSAyLAorICAgICAgICBGbG9hdFIzMiA9IDMKKyAgICB9OworfTsKKworc3RydWN0IEdQ
VVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IgeworICAgIHVuc2lnbmVkIGxvbmcgc2hhZGVyTG9j
YXRpb247CisgICAgdW5zaWduZWQgbG9uZyBpbnB1dFNsb3Q7CisgICAgdW5zaWduZWQgbG9uZyBv
ZmZzZXQ7CisgICAgR1BVVmVydGV4Rm9ybWF0RW51bSBmb3JtYXQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0
RGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MTliMjI2ZTgzYjU5MTU3OWMxOGQyNTIwZTg0MWIz
OWJiZDBlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgR1BVSW5w
dXRTdGVwTW9kZUVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVJbnB1dFN0ZXBNb2Rl
IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVSW5wdXRTdGVwTW9kZT4geworcHVibGljOgorICAgIGVu
dW0gRW51bSA6IEdQVUlucHV0U3RlcE1vZGVFbnVtIHsKKyAgICAgICAgVmVydGV4ID0gMCwKKyAg
ICAgICAgSW5zdGFuY2UgPSAxCisgICAgfTsKK307CisKK3N0cnVjdCBHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IgeworICAgIHVuc2lnbmVkIGxvbmcgc3RyaWRlOworICAgIEdQVUlucHV0U3RlcE1v
ZGVFbnVtIHN0ZXBNb2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0
YWwubW0KaW5kZXggMmM1ODJiMGIzMmQ4ZDQxMmQ4Y2Q2NTRhNDY5YWE3ZTZiOWRhN2E0OC4uOWUy
NzA2ZWE3OWYzMTc1OWRlYjVlNmVmMmU5N2ZiNDIyZmNmZTdhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVy
TWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShXRUJHUFUpCiAKKyNpbXBvcnQgIkdQVUJ1ZmZlci5oIgogI2ltcG9ydCAiR1BVQ29tbWFu
ZEJ1ZmZlci5oIgogI2ltcG9ydCAiR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIKICNpbXBvcnQg
IkdQVVJlbmRlclBpcGVsaW5lLmgiCkBAIC04Myw2ICs4NCwxMiBAQCB2b2lkIEdQVVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUp
CiAgICAgbV9waXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOwogfQogCit2b2lkIEdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFZlY3Rv
cjxSZWY8Y29uc3QgR1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8dW5zaWduZWQ+JiYgb2Zm
c2V0cykgCit7CisgICAgLy8gRklYTUU6IE9ubHkgd29ycnkgYWJvdXQgdGhlIGZpcnN0IGJ1ZmZl
ciBmb3Igbm93LCBhbmQgdHJlYXQgc3RhcnRTbG90IGFzIHRoZSBpbmRleC4KKyAgICBbbV9wbGF0
Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldFZlcnRleEJ1ZmZlcjpidWZmZXJzWzBdLT5wbGF0Zm9y
bUJ1ZmZlcigpIG9mZnNldDpvZmZzZXRzWzBdIGF0SW5kZXg6aW5kZXhdOworfQorCiBzdGF0aWMg
TVRMUHJpbWl0aXZlVHlwZSBwcmltaXRpdmVUeXBlRm9yR1BVUHJpbWl0aXZlVG9wb2xvZ3koUHJp
bWl0aXZlVG9wb2xvZ3kgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KaW5kZXggYTgwNjVmZWJiYWQ0NzgzNzAzYmJiNmUy
Y2NjMWFmOWM1NGRlMDQ4NS4uYWIzZDU2MmE0ZGMzN2Y3ZjkyY2Y2MGY3MWY5MzZiN2I4NjRhMDI4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KQEAgLTgyLDYgKzgy
LDQyIEBAIHN0YXRpYyBib29sIHNldEZ1bmN0aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihjb25z
dCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1UCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0
YXRpYyB2b2lkIHNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoTVRMUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yICptdGxEZXNjcmlwdG9yLCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgYXV0byBtdGxWZXJ0ZXhEZXNjcmlwdG9yID0g
YWRvcHROUyhbTVRMVmVydGV4RGVzY3JpcHRvciBuZXddKTsKKworICAgIC8vIFBvcHVsYXRlIHZl
cnRleCBhdHRyaWJ1dGVzLCBpZiBhbnkuCisgICAgY29uc3QgYXV0byYgYXR0cmlidXRlcyA9IGRl
c2NyaXB0b3IuaW5wdXRTdGF0ZS5hdHRyaWJ1dGVzOworCisgICAgLy8gRklYTUU6IFdoYXQga2lu
ZCBvZiB2YWxpZGF0aW9uIGlzIG5lZWRlZCBoZXJlPworICAgIE1UTFZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3JBcnJheSAqYXR0cmlidXRlQXJyYXkgPSBtdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgp
LmF0dHJpYnV0ZXM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgTVRMVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciAqbXRsQXR0
cmlidXRlRGVzYyA9IFthdHRyaWJ1dGVBcnJheSBvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6aV07
CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIGlucHV0U2xvdCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQ/
IFVzZSBzaGFkZXJMb2NhdGlvbiBhcyB0aGUgYnVmZmVySW5kZXggZm9yIG5vdy4KKyAgICAgICAg
Ly8gRklYTUU6IEhvb2sgdXAgV2ViR1BVVmVydGV4Rm9ybWF0RW51bS4gRGVmYXVsdCB0byB0aGlz
IE1UTFZlcnRleEZvcm1hdCBmb3Igbm93LgorICAgICAgICBtdGxBdHRyaWJ1dGVEZXNjLmZvcm1h
dCA9IE1UTFZlcnRleEZvcm1hdFVTaG9ydDsKKyAgICAgICAgbXRsQXR0cmlidXRlRGVzYy5vZmZz
ZXQgPSBhdHRyaWJ1dGVzW2ldLm9mZnNldDsKKyAgICAgICAgbXRsQXR0cmlidXRlRGVzYy5idWZm
ZXJJbmRleCA9IGF0dHJpYnV0ZXNbaV0uc2hhZGVyTG9jYXRpb247CisgICAgICAgIFttdGxWZXJ0
ZXhEZXNjcmlwdG9yLmdldCgpLmF0dHJpYnV0ZXMgc2V0T2JqZWN0Om10bEF0dHJpYnV0ZURlc2Mg
YXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgIH0KKworICAgIC8vIFBvcHVsYXRlIHZlcnRleCBi
dWZmZXIgbGF5b3V0cywgaWYgYW55LgorICAgIGNvbnN0IGF1dG8mIGlucHV0cyA9IGRlc2NyaXB0
b3IuaW5wdXRTdGF0ZS5pbnB1dHM7CisKKyAgICBNVExWZXJ0ZXhCdWZmZXJMYXlvdXREZXNjcmlw
dG9yQXJyYXkgKmxheW91dEFycmF5ID0gbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5sYXlvdXRz
OworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbnB1dHMuc2l6ZSgpOyArK2opIHsKKyAg
ICAgICAgTVRMVmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvciAqbXRsTGF5b3V0RGVzYyA9IFts
YXlvdXRBcnJheSBvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6al07CisgICAgICAgIC8vIEZJWE1F
OiBIb29rIHVwIFdlYkdQVUlucHV0U3RlcE1vZGVFbnVtLiBMZWF2ZSBhcyBkZWZhdWx0IE1UTFZl
cnRleFN0ZXBGdW5jdGlvblBlclZlcnRleCBmb3Igbm93LgorICAgICAgICBtdGxMYXlvdXREZXNj
LnN0cmlkZSA9IGlucHV0c1tqXS5zdHJpZGU7CisgICAgICAgIFttdGxWZXJ0ZXhEZXNjcmlwdG9y
LmdldCgpLmxheW91dHMgc2V0T2JqZWN0Om10bExheW91dERlc2MgYXRJbmRleGVkU3Vic2NyaXB0
OmpdOworICAgIH0KKworICAgIC8vIEZJWE1FOiBXaGF0IGhhcHBlbnMgaGVyZSB3aGVuIG10bFZl
cnRleERlc2NyaXB0b3IgUmV0YWluUHRyIGlzIGRlc3Ryb3llZD8KKyAgICBtdGxEZXNjcmlwdG9y
LnZlcnRleERlc2NyaXB0b3IgPSBtdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgpOworfQorCiBSZWZQ
dHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoY29uc3QgR1BV
RGV2aWNlJiBkZXZpY2UsIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYmIGRlc2NyaXB0b3Ip
CiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lID0gIkdQVVJlbmRlclBpcGVs
aW5lOjpjcmVhdGUoKSI7CkBAIC0xMDcsNiArMTQzLDggQEAgUmVmUHRyPEdQVVJlbmRlclBpcGVs
aW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBH
UFUKICAgICBpZiAoIXNldEZ1bmN0aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5h
bWUsIG10bERlc2NyaXB0b3IuZ2V0KCksIGRlc2NyaXB0b3IpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAorICAgIHNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IobXRsRGVzY3Jp
cHRvci5nZXQoKSwgZGVzY3JpcHRvcik7CisKICAgICAvLyBGSVhNRTogR2V0IHRoZSBwaXhlbEZv
cm1hdCBhcyBjb25maWd1cmVkIGZvciB0aGUgY29udGV4dC9DQU1ldGFsTGF5ZXIuCiAgICAgbXRs
RGVzY3JpcHRvci5nZXQoKS5jb2xvckF0dGFjaG1lbnRzWzBdLnBpeGVsRm9ybWF0ID0gTVRMUGl4
ZWxGb3JtYXRCR1JBOFVub3JtOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2MmU0ODg0NGYyYTMwNGVlNjRjZGM5NjJm
MzY4OTMwMmViYjI3Mi4uYTVmZWYyZDkyNzM5NDEyY2E1ZWY5YTE5NWYwMzBiOTYwYTdjNDIzZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTEyLTExICBKdXN0aW4gRmFuICA8anVzdGluX2Zh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4IGJ1ZmZlcnMgYW5kIFdlYkdQ
VUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHZhcmlhdGlvbiBvZiBzaW1wbGUtdHJpYW5nbGUtc3RyaXAgdG8gdXNlIGEgdmVy
dGV4IGJ1ZmZlci4gUmVmYWN0b3JlZCBhZm9yZW1lbnRpb25lZAorICAgICAgICB0ZXN0IHRvIHNo
YXJlIGNvZGUgd2l0aCBuZXcgdGVzdC4KKworICAgICAgICAqIHdlYmdwdS9qcy9iYXNpYy13ZWJn
cHUtZnVuY3Rpb25zLmpzOgorICAgICAgICAoc2V0VXBQaXBlbGluZURlc2NyaXB0b3IpOgorICAg
ICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGFz
eW5jLmdldEJhc2ljRGV2aWNlKToKKyAgICAgICAgKGNyZWF0ZUJhc2ljQ29udGV4dCk6CisgICAg
ICAgIChjcmVhdGVCYXNpY1BpcGVsaW5lKToKKyAgICAgICAgKGJlZ2luQmFzaWNSZW5kZXJQYXNz
KToKKyAgICAgICAgKiB3ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvc2lt
cGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3ZlcnRleC1idWZmZXIt
dHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3Zl
cnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbDogQWRkZWQuCisKIDIwMTgtMTItMTAgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgY29ubmVjdGVkQ2FsbGJh
Y2sgaXMgaW52b2tlZCBkdXJpbmcgdGhlIHJlbW92YWwgb2YgdGhlIGVsZW1lbnQgaW5zaWRlIGFu
b3RoZXIgZWxlbWVudCdzIGNvbm5lY3RlZENhbGxiYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdw
dS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGIzY2JiYzIxYmQ0OWMyODFlMmEw
YTlmMGYxMWQ1YTNhMjA0NzAxNDEuLjBkMDg3MDI2MmY3MDA5ZTFhM2Q5MzBlZWQ0ZGFlNDllMDAw
OTljNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVu
Y3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rp
b25zLmpzCkBAIC05MCwxOSArOTAsMTggQEAgZnVuY3Rpb24gc2V0VXBNb2R1bGUoKSB7CiAKIGZ1
bmN0aW9uIHNldFVwUGlwZWxpbmVEZXNjcmlwdG9yKCkgewogICAgIHZlcnRleFN0YWdlRGVzY3Jp
cHRvciA9IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6
IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwgCisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxl
LAogICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAogICAgIH07CiAKICAgICBmcmFn
bWVudFN0YWdlRGVzY3JpcHRvciA9IHsKICAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCi0g
ICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5GUkFHTUVOVCwKICAgICAgICAgZW50cnlQ
b2ludDogImZyYWdtZW50X21haW4iCiAgICAgfTsKIAogICAgIHBpcGVsaW5lRGVzY3JpcHRvciA9
IHsKLSAgICAgICAgc3RhZ2VzOiBbdmVydGV4U3RhZ2VEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdl
RGVzY3JpcHRvcl0sCisgICAgICAgIHZlcnRleFN0YWdlOiB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3Is
IAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAg
ICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzIGIvTGF5b3V0VGVz
dHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhZTgzODYyYmEx
ZTg1MTY4YWU3MGEwNzYzYTgzOGE0OThlYzZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNTIgQEAKK2FzeW5j
IGZ1bmN0aW9uIGdldEJhc2ljRGV2aWNlKCkgeworICAgIC8vIEZJWE1FOiByZXF1ZXN0QWRhcHRl
ciBzaG91bGQgdGFrZSBhIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLgorICAgIGNvbnN0IGFkYXB0
ZXIgPSBhd2FpdCB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9KTsKKyAgICBjb25zdCBk
ZXZpY2UgPSBhZGFwdGVyLmNyZWF0ZURldmljZSgpOworICAgIHJldHVybiBkZXZpY2U7Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSkgeworICAgIGNvbnN0
IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgid2ViZ3B1Iik7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCBhbmQgc3BlY2lmeSBhIFdlYkdQVVRleHR1cmVVc2FnZUVudW0uCisgICAgY29udGV4
dC5jb25maWd1cmUoeyBkZXZpY2U6IGRldmljZSwgZm9ybWF0OiJCOEc4UjhBOFVub3JtIiwgd2lk
dGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0IH0pOworICAgIHJldHVybiBj
b250ZXh0OworfQorCitmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwg
ZGV2aWNlLCBpbnB1dFN0YXRlRGVzY3JpcHRvcikgeworICAgIHZlcnRleFN0YWdlRGVzY3JpcHRv
ciA9IHsKKyAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCisgICAgICAgIGVudHJ5UG9pbnQ6
ICJ2ZXJ0ZXhfbWFpbiIgCisgICAgfTsKKworICAgIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yID0g
eworICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKKyAgICAgICAgZW50cnlQb2ludDogImZy
YWdtZW50X21haW4iCisgICAgfTsKKworICAgIHBpcGVsaW5lRGVzY3JpcHRvciA9IHsKKyAgICAg
ICAgdmVydGV4U3RhZ2U6IHZlcnRleFN0YWdlRGVzY3JpcHRvciwKKyAgICAgICAgZnJhZ21lbnRT
dGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCisgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5
OiAidHJpYW5nbGVTdHJpcCIsCisgICAgICAgIGlucHV0U3RhdGU6IGlucHV0U3RhdGVEZXNjcmlw
dG9yCisgICAgfTsKKworICAgIHJldHVybiBkZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUocGlw
ZWxpbmVEZXNjcmlwdG9yKTsKK30KKworZnVuY3Rpb24gYmVnaW5CYXNpY1JlbmRlclBhc3MoY29u
dGV4dCwgY29tbWFuZEJ1ZmZlcikgeworICAgIGNvbnN0IGJhc2ljQXR0YWNobWVudCA9IHsKKyAg
ICAgICAgYXR0YWNobWVudDogY29udGV4dC5nZXROZXh0VGV4dHVyZSgpLmNyZWF0ZURlZmF1bHRU
ZXh0dXJlVmlldygpLAorICAgICAgICBjbGVhckNvbG9yOiB7IHI6IDEuMCwgZzogMCwgYjogMCwg
YTogMS4wIH0KKyAgICB9CisKKyAgICAvLyBGSVhNRTogRmxlc2ggb3V0IHRoZSByZXN0IG9mIFdl
YkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLiAKKyAgICByZXR1cm4gY29tbWFuZEJ1ZmZlci5iZWdp
blJlbmRlclBhc3MoeyBjb2xvckF0dGFjaG1lbnRzIDogW2Jhc2ljQXR0YWNobWVudF0gfSk7Cit9
CisKK2Z1bmN0aW9uIGVuY29kZUJhc2ljQ29tbWFuZHMocmVuZGVyUGFzc0VuY29kZXIsIHJlbmRl
clBpcGVsaW5lLCB2ZXJ0ZXhCdWZmZXIpIHsKKyAgICBpZiAodmVydGV4QnVmZmVyKQorICAgICAg
ICByZW5kZXJQYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXJdLCBb
MF0pOworICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHJlbmRlclBpcGVsaW5lKTsK
KyAgICByZW5kZXJQYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOworICAgIHJldHVybiByZW5k
ZXJQYXNzRW5jb2Rlci5lbmRQYXNzKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGI2ZDg2YjBhY2FhZTI2ZWQ1ZjhhZGI3NTg1N2NkZjg4OWU2MzY0ZjYuLmYyNTA5MjYyMTQ5
NjBmOWE3NTNkNGQ3YjFiNTYwNDRkOWJhZDc0NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdwdS9yZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIFBBU1MgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlkIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvciB3YXMgbm90IGNyCiBQQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCBz
aGFkZXIgbW9kdWxlIHdhcyBub3QgY3JlYXRlZC4KIFBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUg
d2l0aCBpbnZhbGlkIHZlcnRleCBzaGFkZXIgc3RhZ2Ugd2FzIG5vdCBjcmVhdGVkLgogUEFTUyBX
ZWJHUFVSZW5kZXJQaXBlbGluZSB3aXRoIGludmFsaWQgdmVydGV4IHNoYWRlciBlbnRyeSBwb2lu
dCB3YXMgbm90IGNyZWF0ZWQuCi1QQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxp
ZCBXZWJHUFVTaGFkZXJTdGFnZUVudW0gd2FzIG5vdCBjcmVhdGVkLgogQWxsIHRlc3RzIGNvbXBs
ZXRlLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1
L3JlbmRlci1waXBlbGluZXMuaHRtbAppbmRleCBhM2I5MjllY2Q4NzVjZDBhYTUzNmQ3ZDFiNTMw
ZjE1MWJkNjcwOWNiLi42Y2I0YmVmYWExZDc0OWEzNzc5NWZjNDA1ZmVmYmNhZTk5YTk3NWM0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKQEAgLTE5LDQzICsxOSwz
MiBAQCBmdW5jdGlvbiBzZXRVcEJhZFBpcGVsaW5lcygpIHsKICAgICBjaGVja0JhZFJlbmRlclBp
cGVsaW5lKHt9LCAiV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIik7CiAKICAgICBsZXQg
bm9Nb2R1bGVWZXJ0ZXhEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVy
U3RhZ2UuVkVSVEVYLAogICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iCiAgICAgfQog
ICAgIGxldCBub01vZHVsZVBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBb
bm9Nb2R1bGVWZXJ0ZXhEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCisgICAg
ICAgIHZlcnRleFN0YWdlOiBub01vZHVsZVZlcnRleERlc2NyaXB0b3IsIAorICAgICAgICBmcmFn
bWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9w
b2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUo
bm9Nb2R1bGVQaXBlbGluZURlc2NyaXB0b3IsICJzaGFkZXIgbW9kdWxlIik7CiAKICAgICAvLyBB
IChNZXRhbCkgcmVuZGVycGlwZWxpbmUgbXVzdCBoYXZlIGEgdmVydGV4IGZ1bmN0aW9uLgogICAg
IGxldCBub1ZlcnRleFBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbZnJh
Z21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0
YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3Qi
CiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUobm9WZXJ0ZXhQaXBlbGluZURlc2Ny
aXB0b3IsICJ2ZXJ0ZXggc2hhZGVyIHN0YWdlIikKIAogICAgIGxldCBiYWRFbnRyeVBvaW50RGVz
Y3JpcHRvciA9IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3Rh
Z2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwgCisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9k
dWxlLAogICAgICAgICBlbnRyeVBvaW50OiAiVmVydGV4X01haW4iIAogICAgIH07CiAgICAgbGV0
IGJhZEVudHJ5UG9pbnRQaXBlbGluZURlc2NzcmlwdG9yID0gewotICAgICAgICBzdGFnZXM6IFti
YWRFbnRyeVBvaW50RGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAg
ICB2ZXJ0ZXhTdGFnZTogYmFkRW50cnlQb2ludERlc2NyaXB0b3IsIAorICAgICAgICBmcmFnbWVu
dFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xv
Z3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUoYmFk
RW50cnlQb2ludFBpcGVsaW5lRGVzY3NyaXB0b3IsICJ2ZXJ0ZXggc2hhZGVyIGVudHJ5IHBvaW50
Iik7Ci0KLSAgICBsZXQgYmFkU3RhZ2VFbnVtRGVzY3JpcHRvciA9IHsgCi0gICAgICAgIG1vZHVs
ZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLkNPTVBV
VEUsIAotICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAotICAgIH07Ci0gICAgbGV0
IGJhZFN0YWdlRW51bVBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbYmFk
U3RhZ2VFbnVtRGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAotICAgICAgICBw
cmltaXRpdmVUb3BvbG9neTogInRyaWFuZ2xlTGlzdCIKLSAgICB9Ci0gICAgY2hlY2tCYWRSZW5k
ZXJQaXBlbGluZShiYWRTdGFnZUVudW1QaXBlbGluZURlc2NyaXB0b3IsICJXZWJHUFVTaGFkZXJT
dGFnZUVudW0iKTsKIH0KIAogcnVuV2ViR1BVVGVzdHMoW3NldFVwUGlwZWxpbmUsIHNldFVwQmFk
UGlwZWxpbmVzXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFu
Z2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlw
Lmh0bWwKaW5kZXggZDc2ZmZkZGQ5YTU0ZjU3MmYwMjUwZWM3NGQwZjYxNzNiNWM1N2Q2Yi4uMzBh
YTRmMWMyMTY4ZWIzNjYxYTBjNTQ4ZmQyZGZiNTIyOWQyNTYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdwdS9zaW1wbGUtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtNSw2ICs1LDcgQEAKIDxsaW5r
IHJlbD0ibWF0Y2giIGhyZWY9InNpbXBsZS10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4K
IDxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4K
IDxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9
ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGNvbnN0IHNoYWRl
ckNvZGUgPSBgCiAjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgpAQCAtNDEsNTcgKzQyLDYgQEAgZnJh
Z21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkK
IH0KIGAKIAotYXN5bmMgZnVuY3Rpb24gZ2V0QmFzaWNEZXZpY2UoKSB7Ci0gICAgLy8gRklYTUU6
IHJlcXVlc3RBZGFwdGVyIHNob3VsZCB0YWtlIGEgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuCi0g
ICAgY29uc3QgYWRhcHRlciA9IGF3YWl0IHdpbmRvdy53ZWJncHUucmVxdWVzdEFkYXB0ZXIoe30p
OwotICAgIGNvbnN0IGRldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7Ci0gICAgcmV0dXJu
IGRldmljZTsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZhcywgZGV2aWNl
KSB7Ci0gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJncHUiKTsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGFuZCBzcGVjaWZ5IGEgV2ViR1BVVGV4dHVyZVVzYWdlRW51
bS4KLSAgICBjb250ZXh0LmNvbmZpZ3VyZSh7IGRldmljZTogZGV2aWNlLCBmb3JtYXQ6IkI4RzhS
OEE4VW5vcm0iLCB3aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQgfSk7
Ci0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUo
c2hhZGVyTW9kdWxlLCBkZXZpY2UpIHsKLSAgICB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IgPSB7Ci0g
ICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRl
clN0YWdlLlZFUlRFWCwgCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCi0gICAg
fTsKLQotICAgIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yID0gewotICAgICAgICBtb2R1bGU6IHNo
YWRlck1vZHVsZSwKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLkZSQUdNRU5ULAot
ICAgICAgICBlbnRyeVBvaW50OiAiZnJhZ21lbnRfbWFpbiIKLSAgICB9OwotCi0gICAgcGlwZWxp
bmVEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFnZXM6IFt2ZXJ0ZXhTdGFnZURlc2NyaXB0b3Is
IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKLSAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0
cmlhbmdsZVN0cmlwIgotICAgIH07Ci0KLSAgICByZXR1cm4gZGV2aWNlLmNyZWF0ZVJlbmRlclBp
cGVsaW5lKHBpcGVsaW5lRGVzY3JpcHRvcik7Ci19Ci0KLWZ1bmN0aW9uIGJlZ2luQmFzaWNSZW5k
ZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpIHsKLSAgICBjb25zdCBiYXNpY0F0dGFjaG1l
bnQgPSB7Ci0gICAgICAgIGF0dGFjaG1lbnQ6IGNvbnRleHQuZ2V0TmV4dFRleHR1cmUoKS5jcmVh
dGVEZWZhdWx0VGV4dHVyZVZpZXcoKSwKLSAgICAgICAgY2xlYXJDb2xvcjogeyByOiAxLjAsIGc6
IDAsIGI6IDAsIGE6IDEuMCB9Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IEZsZXNoIG91dCB0aGUg
cmVzdCBvZiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCi0gICAgcmV0dXJuIGNvbW1hbmRC
dWZmZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50cyA6IFtiYXNpY0F0dGFjaG1l
bnRdIH0pOwotfQotCi1mdW5jdGlvbiBlbmNvZGVCYXNpY0NvbW1hbmRzKHJlbmRlclBhc3NFbmNv
ZGVyLCByZW5kZXJQaXBlbGluZSkgewotICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5l
KHJlbmRlclBpcGVsaW5lKTsKLSAgICByZW5kZXJQYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDAp
OwotICAgIHJldHVybiByZW5kZXJQYXNzRW5jb2Rlci5lbmRQYXNzKCk7Ci19Ci0KIGFzeW5jIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2Uo
KTsKICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0
cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJp
cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE5ZDBmYjE5YzI1MmE1NDJhZmZhMDBiZTljYjc1YTQ3M2U2NThi
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10
cmlhbmdsZS1zdHJpcC5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdQVSBIZWxsbyBUcmlhbmdsZXM8L3RpdGxl
PgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXZWJHUFUgY29ycmVjdGx5IHJlbmRlcnMg
YSBncmVlbiBjYW52YXMuIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InNpbXBsZS10cmlhbmds
ZS1zdHJpcC1leHBlY3RlZC5odG1sIj4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBp
cyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAi
PjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRlckNvZGUgPSBgCisjaW5jbHVkZSA8bWV0YWxfc3RkbGli
PgorICAgIAordXNpbmcgbmFtZXNwYWNlIG1ldGFsOworCitzdHJ1Y3QgVmVydGV4Cit7CisgICAg
ZmxvYXQ0IHBvc2l0aW9uIFtbcG9zaXRpb25dXTsKK307CisKK3ZlcnRleCBWZXJ0ZXggdmVydGV4
X21haW4oY29uc3QgZGV2aWNlIFZlcnRleCogdmVydGV4X2FycmF5IFtbYnVmZmVyKDApXV0sIHVp
bnQgdmlkIFtbdmVydGV4X2lkXV0pCit7CisgICAgcmV0dXJuIHZlcnRleF9hcnJheVt2aWRdOwor
fQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRfbWFpbihWZXJ0ZXggdmVydGV4SW4gW1tzdGFn
ZV9pbl1dKQoreworICAgIHJldHVybiBmbG9hdDQoMC4wLCAxLjAsIDAuMCwgMS4wKTsKK30KK2AK
KworZnVuY3Rpb24gY3JlYXRlVmVydGV4QnVmZmVyKGRldmljZSkgeworICAgIGNvbnN0IGJ1ZmZl
clNpemUgPSA0ICogNCAqIDQ7CisgICAgY29uc3QgYnVmZmVyID0gZGV2aWNlLmNyZWF0ZUJ1ZmZl
cih7IHNpemU6IGJ1ZmZlclNpemUsIHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5NQVBfV1JJVEUg
fSk7CisgICAgCisgICAgbGV0IGFycmF5QnVmZmVyID0gYnVmZmVyLm1hcHBpbmc7CisgICAgbGV0
IGZsb2F0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGFycmF5QnVmZmVyKTsKKworICAgIGZsb2F0
QXJyYXlbMF0gPSAtMTsKKyAgICBmbG9hdEFycmF5WzFdID0gMTsKKyAgICBmbG9hdEFycmF5WzJd
ID0gMDsKKyAgICBmbG9hdEFycmF5WzNdID0gMTsKKworICAgIGZsb2F0QXJyYXlbNF0gPSAtMTsK
KyAgICBmbG9hdEFycmF5WzVdID0gLTE7CisgICAgZmxvYXRBcnJheVs2XSA9IDA7CisgICAgZmxv
YXRBcnJheVs3XSA9IDE7CisKKyAgICBmbG9hdEFycmF5WzhdID0gMTsKKyAgICBmbG9hdEFycmF5
WzldID0gMTsKKyAgICBmbG9hdEFycmF5WzEwXSA9IDA7CisgICAgZmxvYXRBcnJheVsxMV0gPSAx
OworCisgICAgZmxvYXRBcnJheVsxMl0gPSAxOworICAgIGZsb2F0QXJyYXlbMTNdID0gLTE7Cisg
ICAgZmxvYXRBcnJheVsxNF0gPSAwOworICAgIGZsb2F0QXJyYXlbMTVdID0gMTsKKworICAgIHJl
dHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9yKCkg
eworICAgIHJldHVybiB7CisgICAgICAgIGluZGV4Rm9ybWF0OiBXZWJHUFVJbmRleEZvcm1hdC5V
SU5UMzIsCisgICAgICAgIGF0dHJpYnV0ZXM6IFt7CisgICAgICAgICAgICBzaGFkZXJMb2NhdGlv
bjogMCwKKyAgICAgICAgICAgIGlucHV0U2xvdDogMCwKKyAgICAgICAgICAgIG9mZnNldDogMCwK
KyAgICAgICAgICAgIGZvcm1hdDogV2ViR1BVVmVydGV4Rm9ybWF0LkZMT0FUX1IzMl9HMzJfQjMy
X0EzMgorICAgICAgICB9XSwKKyAgICAgICAgaW5wdXRzOiBbeworICAgICAgICAgICAgc3RyaWRl
OiA0ICogNCwKKyAgICAgICAgICAgIHN0ZXBNb2RlOiBXZWJHUFVJbnB1dFN0ZXBNb2RlLlZFUlRF
WAorICAgICAgICB9XQorICAgIH0KK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBj
b25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgpOworICAgIGNvbnN0IGNhbnZhcyA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOworICAgIGNvbnN0IGNvbnRleHQgPSBj
cmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpOworICAgIC8vIEZJWE1FOiBSZXBsYWNl
IHdpdGggbm9uLU1TTCBzaGFkZXJzLgorICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5j
cmVhdGVTaGFkZXJNb2R1bGUoeyBjb2RlOiBzaGFkZXJDb2RlIH0pOworICAgIGNvbnN0IHZlcnRl
eEJ1ZmZlciA9IGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZpY2UpOworICAgIGNvbnN0IGlucHV0U3Rh
dGVEZXNjcmlwdG9yID0gY3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKTsKKyAgICBjb25zdCBw
aXBlbGluZSA9IGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UsIGlucHV0
U3RhdGVEZXNjcmlwdG9yKTsKKyAgICBjb25zdCBjb21tYW5kQnVmZmVyID0gZGV2aWNlLmNyZWF0
ZUNvbW1hbmRCdWZmZXIoKTsKKyAgICBjb25zdCBwYXNzRW5jb2RlciA9IGJlZ2luQmFzaWNSZW5k
ZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpOworICAgIGNvbnN0IGVuZENvbW1hbmRCdWZm
ZXIgPSBlbmNvZGVCYXNpY0NvbW1hbmRzKHBhc3NFbmNvZGVyLCBwaXBlbGluZSwgdmVydGV4QnVm
ZmVyKTsKKyAgICBjb25zdCBxdWV1ZSA9IGRldmljZS5nZXRRdWV1ZSgpOworCisgICAgcXVldWUu
c3VibWl0KFtlbmRDb21tYW5kQnVmZmVyXSk7CisgICAgY29udGV4dC5wcmVzZW50KCk7Cit9CisK
K3Rlc3QoKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357160</attachid>
            <date>2018-12-12 13:29:06 -0800</date>
            <delta_ts>2018-12-12 13:56:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181212132906.patch</filename>
            <type>text/plain</type>
            <size>90268</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ4OTRkYjBmOWM1MjM0
MjRiMTJhNzA5NzkzNjgzY2U2NzYxMGI0Yy4uN2VlMzA5ZmRjYWQ1M2FiZmNiNTAxNmFiYzMzMzEw
M2M3ZjgwY2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xl
LXN0cmlwLmh0bWwKKworICAgICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB2ZXJ0ZXggYnVm
ZmVycyB3aXRoIE1ldGFsIHNoYWRpbmcgbGFuZ3VhZ2UgaW4gV2ViR1BVLiBJbiAKKyAgICAgICAg
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLCByZWZhY3RvciB0byBtYXRjaCB1cGRhdGVk
IHNoYWRlciBzdGFnZSBzdHJ1Y3R1cmUgYW5kIGFkZCAKKyAgICAgICAgV2ViR1BVSW5wdXRTdGF0
ZURlc2NyaXB0b3IuIEFsc28gaW1wbGVtZW50IFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzLgorCisgICAgICAgIEFkZCBzeW1ib2xzIGFuZCBmaWxlcyBmb3IgV2ViR1BV
SW5kZXhGb3JtYXQsIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLCBXZWJHUFVJbnB1dFN0ZXBN
b2RlLCAKKyAgICAgICAgV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciwgV2ViR1BVVmVy
dGV4Rm9ybWF0LCBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgIEFk
ZCBhbmQgaW1wbGVtZW50IGludGVyZmFjZXMgYW5kIGRpY3Rpb25hcmllcyBmb3IgV2ViR1BVSW5w
dXRTdGF0ZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQnVm
ZmVyOjpidWZmZXIgY29uc3QpOiBBZGRlZCBnZXR0ZXIgZm9yIGJhY2tpbmcgR1BVQnVmZmVyLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmlkbDogTW92aW5nIFdl
YkdQVUJ1ZmZlclVzYWdlIG91dCBpbnRvIGl0cyBvd24gSURMLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
ZGV4Rm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4
Rm9ybWF0LmlkbDogQWRkZWQuIAorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBhc3NFbmNvZGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oOiBBZGRlZC4KKworICAgICAgICBSZWZhY3RvciB0byBzdXBwb3J0IHVwZGF0ZWQgc3Ry
dWN0dXJlIG9mIHBpcGVsaW5lIGRlc2NyaXB0b3IgaW4gc2tldGNoIElETDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS4qOiBSZW1vdmVkLgorCisgICAg
ICAgIEFkZCBhbmQgaW1wbGVtZW50IHNldFZlcnRleEJ1ZmZlcnM6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnMpOiBBZGRlZC4gCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGw6IAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5wdXRTdGF0ZUZvclBpcGVsaW5l
RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KToKKwogMjAxOC0xMi0xMSAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IGZlYXR1cmUgZmxhZyBmb3IgQ1NTIFR5cGVkIE9NCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGNlZmI2N2ZlYmY4Mjk3NDEzMWVlMDdiMzJlMzBhYjg2NDJk
ZTJjNWYuLjBiZGQyOWNkZTE4MDhjMjVkNWNlOGExNjU0NTU1ODQ3ODYwNjZmYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC00NjQsNiArNDY0LDkgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb2xvci5pZGwKICAgICBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwKKyAgICBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKKyAgICBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXIuaWRsCkBAIC00NzYsMTEgKzQ3OSwxMyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRl
eHQuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsCi0gICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BV
U3dhcENoYWluLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsCiAgICAg
TW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZUZvcm1hdEVudW0uaWRsCiAgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKKyAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0
ZXhGb3JtYXQuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlw
dG9yLmlkbAogCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaWRsCiAgICAgTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGIzZDRjNDY5MmZkNWRkZmQ3YWI0NmI5MGJkOTRjMGRhMTc1YWE3NTUuLmY2ZjdlMzUx
NmFlNzQ2NTg4MmNmYmYzMDUxMjc1NGQ5NDM0NjM3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzgxLDYgKzM4MSw5IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBcCkBAIC0zOTMs
MTEgKzM5NiwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2FwQ2hhaW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcAppbmRleCAxNDhkYWVhNWQxYzkxOTcyY2ExNTg4ZjFj
ZGRmMDc2Yzg1ODI3ZDJhLi4zNDk0MWQwZWE1Zjc5MjUxY2I0OGRkZWJmNzQxMzQzZjllNGJhNzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAK
QEAgLTM4LDcgKzM4LDYgQEAgUmVmUHRyPFdlYkdQVUJ1ZmZlcj4gV2ViR1BVQnVmZmVyOjpjcmVh
dGUoUmVmPEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiBXZWJHUFVCdWZmZXI6OldlYkdQVUJ1ZmZlcihS
ZWY8R1BVQnVmZmVyPiYmIGJ1ZmZlcikKICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkK
IHsKLSAgICBVTlVTRURfUEFSQU0obV9idWZmZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCmluZGV4
IDYzMzZkNTk1M2VjYzFkZTVmODQzOWMwNTczNzVjMWI4OGUxNGNkZGUuLmUyNzY0MjViZDQyYjVk
NjgyZmJlMjQyOGE0MDA2ZTIzZjQ5MjM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlci5oCkBAIC0zOCw2ICszOCw4IEBAIGNsYXNzIFdlYkdQVUJ1ZmZl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUJ1ZmZlcj4gewogcHVibGljOgogICAgIHN0YXRp
YyBSZWZQdHI8V2ViR1BVQnVmZmVyPiBjcmVhdGUoUmVmPEdQVUJ1ZmZlcj4mJik7CiAKKyAgICBj
b25zdCBHUFVCdWZmZXImIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9
CisKICAgICBKU0M6OkFycmF5QnVmZmVyKiBtYXBwaW5nKCkgY29uc3QgeyByZXR1cm4gbV9idWZm
ZXItPm1hcHBpbmcoKTsgfQogICAgIHZvaWQgdW5tYXAoKSB7IC8qIEZJWE1FOiBVbmltcGxlbWVu
dGVkIHN0dWIuICovIH0KICAgICB2b2lkIGRlc3Ryb3koKSB7IC8qIEZJWE1FOiBVbmltcGxlbWVu
dGVkIHN0dWIuICovIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCBiMzAzZjA5YmI2OGVjYzVlMGI3ZTI0NmVj
NzQ5Y2EzMDY4Y2Q3NTQwLi5jMDFkZjk1MDg0YjIwMDFhMTM3MTVlMDk4ZDFkOTBkNzc0NWU3MmVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVm
ZmVyRGVzY3JpcHRvci5oCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgV2ViR1BVQnVmZmVyRGVzY3JpcHRvciA9IEdQVUJ1ZmZlckRlc2NyaXB0b3I7CiB1c2lu
ZyBXZWJHUFVCdWZmZXJVc2FnZUZsYWdzID0gR1BVQnVmZmVyVXNhZ2VGbGFnczsKLXVzaW5nIFdl
YkdQVUJ1ZmZlclVzYWdlID0gR1BVQnVmZmVyVXNhZ2U7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAK
aW5kZXggN2Q2ZDBmYzMxMGE4Y2RmZjk4NWVjZmUzNzUwNDE2NTY0M2IwYjU5My4uNzdiYTRjYmMw
OGY5NmIxZTMyMmM2OWQ0ODdmNzA1OTQxMjg2YzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVk
ZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hh
ZGVyTW9kdWxlLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgot
I2luY2x1ZGUgIldlYkdQVVNoYWRlclN0YWdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNzIsNTkgKzcxLDI1IEBAIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlCiAgICAgcmV0dXJuIG1v
ZHVsZSA/IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKG1vZHVsZS5yZWxlYXNlTm9uTnVsbCgp
KSA6IG51bGxwdHI7CiB9CiAKLVJlZlB0cjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2
aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Im
JiBkZXNjcmlwdG9yKSBjb25zdAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3I+IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5lU3RhZ2UoY29uc3QgV2ViR1BV
UGlwZWxpbmVTdGFnZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgY29uc3QgY2hhciog
Y29uc3QgZnVuY3Rpb25OYW1lID0gIldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUo
KSI7Ci0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uTmFtZSk7Ci0j
ZW5kaWYKKyAgICBpZiAoIWRlc2NyaXB0b3IubW9kdWxlIHx8ICFkZXNjcmlwdG9yLm1vZHVsZS0+
bW9kdWxlKCkgfHwgZGVzY3JpcHRvci5lbnRyeVBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmIChkZXNjcmlwdG9yLnN0YWdlcy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBObyBzdGFnZXMgaW4gV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KKyAgICByZXR1cm4gR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgeyBkZXNjcmlw
dG9yLm1vZHVsZS0+bW9kdWxlKCksIGRlc2NyaXB0b3IuZW50cnlQb2ludCB9OworfQogCi0gICAg
R1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2U7Ci0gICAgR1BVUGlwZWxpbmVT
dGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKLQotICAgIGZvciAoY29uc3QgYXV0byYgc3Rh
Z2VEZXNjcmlwdG9yIDogZGVzY3JpcHRvci5zdGFnZXMpIHsKLSAgICAgICAgaWYgKCFzdGFnZURl
c2NyaXB0b3IubW9kdWxlIHx8ICFzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUoKSB8fCBz
dGFnZURlc2NyaXB0b3IuZW50cnlQb2ludC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExPRyhX
ZWJHUFUsICIlczogSW52YWxpZCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciEiLCBmdW5j
dGlvbk5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzd2l0Y2ggKHN0YWdlRGVzY3JpcHRvci5zdGFnZSkgewotICAgICAgICBjYXNlIFdlYkdQ
VVNoYWRlclN0YWdlOjpWRVJURVg6Ci0gICAgICAgICAgICBpZiAodmVydGV4U3RhZ2UubW9kdWxl
KSB7Ci0gICAgICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBNdWx0aXBsZSB2ZXJ0ZXggc3Rh
Z2VzIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICB2ZXJ0ZXhTdGFnZS5tb2R1bGUgPSBzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUo
KTsKLSAgICAgICAgICAgIHZlcnRleFN0YWdlLmVudHJ5UG9pbnQgPSBzdGFnZURlc2NyaXB0b3Iu
ZW50cnlQb2ludDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkdQVVNoYWRl
clN0YWdlOjpGUkFHTUVOVDoKLSAgICAgICAgICAgIGlmIChmcmFnbWVudFN0YWdlLm1vZHVsZSkg
ewotICAgICAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogTXVsdGlwbGUgZnJhZ21lbnQgc3Rh
Z2VzIGluIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmcmFnbWVudFN0YWdlLm1vZHVsZSA9IHN0YWdlRGVzY3JpcHRvci5tb2R1bGUtPm1vZHVs
ZSgpOwotICAgICAgICAgICAgZnJhZ21lbnRTdGFnZS5lbnRyeVBvaW50ID0gc3RhZ2VEZXNjcmlw
dG9yLmVudHJ5UG9pbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCBzaGFkZXIgc3RhZ2UgaW4gV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgIH0KK1JlZlB0cjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAoreworICAgIGF1dG8gdmVydGV4U3Rh
Z2UgPSB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0YWdlKGRlc2NyaXB0b3IudmVydGV4U3Rh
Z2UpOworICAgIGF1dG8gZnJhZ21lbnRTdGFnZSA9IHZhbGlkYXRlQW5kQ29udmVydFBpcGVsaW5l
U3RhZ2UoZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlKTsKIAotICAgIC8vIE1ldGFsIChpZiBub3Qg
b3RoZXIgQVBJcykgcmVxdWlyZXMgYXQgbGVhc3QgdGhlIHZlcnRleCBzaGFkZXIuCi0gICAgaWYg
KCF2ZXJ0ZXhTdGFnZS5tb2R1bGUgfHwgdmVydGV4U3RhZ2UuZW50cnlQb2ludC5pc0VtcHR5KCkp
IHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIHZlcnRleCBzdGFnZSBpbiBXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICBpZiAoIXZl
cnRleFN0YWdlIHx8ICFmcmFnbWVudFN0YWdlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJXZWJH
UFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKCk6IEludmFsaWQgV2ViR1BVUGlwZWxpbmVT
dGFnZURlc2NyaXB0b3IhIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+Y3JlYXRlUmVuZGVyUGlwZWxpbmUoR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yIHsgV1RGTW92ZSh2ZXJ0ZXhTdGFnZSksIFdURk1vdmUoZnJhZ21l
bnRTdGFnZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3kgfSk7CisgICAgYXV0byBwaXBl
bGluZSA9IG1fZGV2aWNlLT5jcmVhdGVSZW5kZXJQaXBlbGluZShHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IgeyBXVEZNb3ZlKCp2ZXJ0ZXhTdGFnZSksIFdURk1vdmUoKmZyYWdtZW50U3RhZ2Up
LCBkZXNjcmlwdG9yLnByaW1pdGl2ZVRvcG9sb2d5LCBkZXNjcmlwdG9yLmlucHV0U3RhdGUgfSk7
CiAgICAgcmV0dXJuIHBpcGVsaW5lID8gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShwaXBl
bGluZS5yZWxlYXNlTm9uTnVsbCgpKSA6IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9ybWF0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NDAz
NTg0YjViZTQ3MWRhNjEyOGYyZTE2MDRkYjliNjA1ZmUzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUp
CisKKyNpbmNsdWRlICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0ID0gR1BVSW5kZXhGb3JtYXQ7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTI1NmI0ZTU0NzMyZjdkMzViN2IzNjI0NmY0NGU3NDcxNTdjOTI3OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUluZGV4Rm9y
bWF0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNv
bS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAg
RG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVJbmRleEZvcm1hdCB7
CisgICAgY29uc3QgdTMyIFVJTlQxNiA9IDA7CisgICAgY29uc3QgdTMyIFVJTlQzMiA9IDE7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlu
cHV0U3RhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU5MzA2Yjk3ODJiYmNiZjIyZTEyYWU5
ZTEzZWMyODAwNGU0MzdhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1
ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUluZGV4Rm9ybWF0RW51
bSA9IEdQVUluZGV4Rm9ybWF0RW51bTsKK3VzaW5nIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9y
ID0gR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3I7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzk5NDI0MTI4NDhjMWFlYmViOWEwZmNiZTdhNjE1OWU1MWM2ODgwNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RhdGVEZXNj
cmlwdG9yLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5
cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0eXBlZGVmIHUzMiBXZWJHUFVJbmRleEZvcm1hdEVu
dW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciB7CisgICAgV2Vi
R1BVSW5kZXhGb3JtYXRFbnVtIGluZGV4Rm9ybWF0OworCisgICAgc2VxdWVuY2U8V2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBzZXF1ZW5jZTxXZWJHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3I+IGlucHV0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzZDM0
MmMzNDAzZWZjOWFlODdhZjBjYTllYmRkOTZjYjhjYzVhYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSAiR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5wdXRTdGVwTW9kZSA9IEdQVUlucHV0U3RlcE1vZGU7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBN
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1v
ZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwMGIyM2U5MGM1MGUyY2Q2YjMxMDhmMTM5ZDNhNWZkNjM4ODBh
NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVJbnB1dFN0ZXBNb2RlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBz
Oi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2Vi
aWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBXZWJHUFVJ
bnB1dFN0ZXBNb2RlIHsKKyAgICBjb25zdCB1MzIgVkVSVEVYID0gMDsKKyAgICBjb25zdCB1MzIg
SU5TVEFOQ0UgPSAxOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCAzMTIxYTliYTU2
ODM3NDAxNDNjZWMzMDU5MDgyYmM4MmNhNTQxNTkyLi41MmMyZjlhYzBmYjkxYzQwNzQ3OWRmZWZl
M2U4ZTA5YzIwMzExYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywxMyArMjcs
MTAgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJXZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7Ci0gICAgVmVj
dG9yPFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CisgICAgLy8gV2ViR1BV
UGlwZWxpbmVMYXlvdXQgbGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmlkbAppbmRleCAzM2Y3YTc2NjE3YWIxOTU5ZjIwNzE4ODY5YjU5
N2U3ZjVjMmU0OTI4Li5lYjEzNWI1NTc0NmU0NjE2NGVjNmQ3ODcwZDExOWM5YTMyNzVmMTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbApAQCAtMjksNSArMjksNCBAQAogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25hcnkgV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZSB7CiAgICAgLy8gV2ViR1BVUGlwZWxpbmVMYXlvdXQgbGF5b3V0OwotICAgIHNlcXVlbmNl
PFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yPiBzdGFnZXM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yLmgKaW5kZXggMzNmM2FlMDk1NjUwMGQ0ZjdiMzdjNWU1MDdkMDg3YWRmMGFkYTE2
Ni4uNDVhODdiZDZjZTU1ZTc3YWM4MmE5Mzg3NGM1MmFjOTYyYjU2MzFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oCkBAIC0zMywxMSArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVzaW5nIFdlYkdQVVNoYWRlclN0YWdlRW51bSA9IHVuc2lnbmVkIGxvbmc7Ci0KIHN0cnVj
dCBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgY29uc3QgV2ViR1BVU2hhZGVy
TW9kdWxlKiBtb2R1bGUgPSBudWxscHRyOwotICAgIFdlYkdQVVNoYWRlclN0YWdlRW51bSBzdGFn
ZTsKICAgICBTdHJpbmcgZW50cnlQb2ludDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmlkbAppbmRleCAwZDZiMDg4MTdkOTJkYTdiY2NkMDI4YWM3ZmUzZWNjMTEyMjM1OWI0Li5lZWRh
ZjA4MTZmNTQ0ODFkMzdkODNjNjc0NjkyYzI5YjZmN2VjNzkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURl
c2NyaXB0b3IuaWRsCkBAIC0zMSw2ICszMSw1IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBXZWJH
UFVTaGFkZXJTdGFnZUVudW07CiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKIF0gZGljdGlv
bmFyeSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB7CiAgICAgV2ViR1BVU2hhZGVyTW9k
dWxlIG1vZHVsZTsKLSAgICBXZWJHUFVTaGFkZXJTdGFnZUVudW0gc3RhZ2U7CiAgICAgRE9NU3Ry
aW5nIGVudHJ5UG9pbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCmluZGV4IDEyZTY5MDNmOTk5YmMz
MDYzMWE3OTBlN2FkYjUxNTZmMDBhZjUyMjkuLjgzZGEwNzBlOWZiMzQwMjdhMThiODAwMjkzZTEz
MmFhM2E3NDAxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lu
Y2x1ZGUgIkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVy
UGFzc0VuY29kZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVQnVm
ZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNiArNDYsMjEgQEAgV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI6OldlYkdQVVJlbmRlclBhc3NFbmNvZGVyKFJlZjxXZWJHUFVDb21t
YW5kQnVmZmVyPiYmIGNyZWEKIHsKIH0KIAordm9pZCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIHN0YXJ0U2xvdCwgVmVjdG9yPFJlZlB0cjxX
ZWJHUFVCdWZmZXI+PiYmIGJ1ZmZlcnMsIFZlY3Rvcjx1bnNpZ25lZD4mJiBvZmZzZXRzKQorewor
ICAgIGlmIChidWZmZXJzLmlzRW1wdHkoKSB8fCBvZmZzZXRzLmlzRW1wdHkoKSB8fCBidWZmZXJz
LnNpemUoKSAhPSBvZmZzZXRzLnNpemUoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BV
UmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1ZmZlcnM6IEludmFsaWQgbnVtYmVyIG9mIGJ1
ZmZlcnMgb3Igb2Zmc2V0cyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8g
Z3B1QnVmZmVycyA9IGJ1ZmZlcnMubWFwKFtdIChjb25zdCBhdXRvJiBidWZmZXIpIC0+IFJlZjxj
b25zdCBHUFVCdWZmZXI+IHsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci0+YnVmZmVyKCk7CisgICAg
fSk7CisKKyAgICAvLyBGSVhNRTogVXNlIHN0YXJ0U2xvdCBwcm9wZXJseS4KKyAgICBtX3Bhc3NF
bmNvZGVyLT5zZXRWZXJ0ZXhCdWZmZXJzKHN0YXJ0U2xvdCwgV1RGTW92ZShncHVCdWZmZXJzKSwg
V1RGTW92ZShvZmZzZXRzKSk7Cit9CisKIHZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OmRy
YXcodW5zaWduZWQgbG9uZyB2ZXJ0ZXhDb3VudCwgdW5zaWduZWQgbG9uZyBpbnN0YW5jZUNvdW50
LCB1bnNpZ25lZCBsb25nIGZpcnN0VmVydGV4LCB1bnNpZ25lZCBsb25nIGZpcnN0SW5zdGFuY2Up
CiB7CiAgICAgLy8gRklYTUU6IFdoYXQga2luZCBvZiB2YWxpZGF0aW9uIGRvIHdlIG5lZWQgdG8g
aGFuZGxlIGhlcmU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCBjMzhjOWZkY2U5OWQ0MDZkMDljOGI0N2E1
NDE5ZDYxODg1YzgyOTQxLi4zMTI5NmUzZTllODI4ZTEwNDIxMGVkNDA1OTc4ZTJlMmYzMWZjMDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBhc3NFbmNvZGVyLmgKQEAgLTMwLDE2ICszMCwyMCBAQAogI2luY2x1ZGUgIldlYkdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyOwogY2xhc3MgR1BVUmVuZGVyUGFzc0VuY29kZXI7CitjbGFz
cyBXZWJHUFVCdWZmZXI7CiAKIGNsYXNzIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyIGZpbmFsIDog
cHVibGljIFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmUHRyPFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyPiBjcmVhdGUoUmVmPFdlYkdQVUNvbW1h
bmRCdWZmZXI+JiYsIFJlZjxHUFVSZW5kZXJQYXNzRW5jb2Rlcj4mJik7CiAKKyAgICAvLyBGSVhN
RTogTGFzdCBhcmd1bWVudCBzaG91bGQgYmUgVmVjdG9yPHVuc2lnbmVkIGxvbmc+LiBXaHkgaXMg
dGhlIGdlbmVyYXRlZCBjb2RlIGluY29ycmVjdGx5IGFzc3VtaW5nIHRoZSBJREwgd2FudHMgYSBz
ZXF1ZW5jZTx1bnNpZ25lZCBpbnQ+PworICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25l
ZCBsb25nLCBWZWN0b3I8UmVmUHRyPFdlYkdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4m
Jik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVk
IGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsCmluZGV4
IDg2OGY2OGZjNGFkMWZlODhhZTRkZGQ3YzdlNmRkNWY0ZTk2MmM1ODYuLmQxNjJlYzUyOGVkYmUx
ZDY4MDU0NDZiZWE5NGZhYmE2MjA5MWU5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGwKQEAgLTMxLDEy
ICszMSwxMyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwogICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViR1BVLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBXZWJHUFVS
ZW5kZXJQYXNzRW5jb2RlciA6IFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyIHsKKyAgICB2
b2lkIHNldFZlcnRleEJ1ZmZlcnModTMyIHN0YXJ0U2xvdCwgc2VxdWVuY2U8V2ViR1BVQnVmZmVy
PiBidWZmZXJzLCBzZXF1ZW5jZTx1MzI+IG9mZnNldHMpOworCiAgICAgdm9pZCBkcmF3KHUzMiB2
ZXJ0ZXhDb3VudCwgdTMyIGluc3RhbmNlQ291bnQsIHUzMiBmaXJzdFZlcnRleCwgdTMyIGZpcnN0
SW5zdGFuY2UpOwogCiAvKiBOb3QgWWV0IEltcGxlbWVudGVkCiAgICAgdm9pZCBzZXRCbGVuZENv
bG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpOwogICAgIHZvaWQgc2V0SW5k
ZXhCdWZmZXIoV2ViR1BVQnVmZmVyIGJ1ZmZlciwgdTMyIG9mZnNldCk7Ci0gICAgdm9pZCBzZXRW
ZXJ0ZXhCdWZmZXJzKHUzMiBzdGFydFNsb3QsIHNlcXVlbmNlPFdlYkdQVUJ1ZmZlcj4gYnVmZmVy
cywgc2VxdWVuY2U8dTMyPiBvZmZzZXRzKTsKIAogICAgIHZvaWQgZHJhd0luZGV4ZWQodTMyIGlu
ZGV4Q291bnQsIHUzMiBpbnN0YW5jZUNvdW50LCB1MzIgZmlyc3RJbmRleCwgaTMyIGJhc2VWZXJ0
ZXgsIHUzMiBmaXJzdEluc3RhbmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAppbmRl
eCA5YzI2NDYzOTA4NDZkZGE4MjllZmNjMjg5MTM2OGRjYTg5OTQwNzJiLi5jMTJmNzU4YTdiZmNl
ODlhYWExNGM2MWQyMDVjZWY5M2ZkOWEwMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
aApAQCAtMjgsMTQgKzI4LDE5IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKIAogI2luY2x1ZGUgIkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIgor
I2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IFdlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewogICAgIHVzaW5nIFByaW1pdGl2ZVRvcG9sb2d5ID0g
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOjpQcmltaXRpdmVUb3BvbG9neTsKIAorICAgIFdl
YkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xvZ3kg
cHJpbWl0aXZlVG9wb2xvZ3k7CisgICAgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRT
dGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaWRsCmluZGV4IDdmYTU0NDc0M2RmMjY5ZjJjYzM4Yjg0MWYyOGE1N2EyMzUwYTE1OTQu
LmZkZGI2MjhkZmE0MGI5MDUyZjc5ODkyMTg1NjA4MDI0ZWUzOTA5NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmlkbApAQCAtMzYsMTEgKzM2LDE1IEBAIGVudW0gV2ViR1BVUHJpbWl0
aXZlVG9wb2xvZ3kgewogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50
aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgeworICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yIHZlcnRleFN0YWdlOworICAgIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
IGZyYWdtZW50U3RhZ2U7CisKICAgICBXZWJHUFVQcmltaXRpdmVUb3BvbG9neSBwcmltaXRpdmVU
b3BvbG9neTsKLSAgICAvKiBUbyBCZSBJbXBsZW1lbnRlZDoKLSAgICBzZXF1ZW5jZTxXZWJHUFVC
bGVuZFN0YXRlPiBibGVuZFN0YXRlczsKLSAgICBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZSBkZXB0
aFN0ZW5jaWxTdGF0ZTsKLSAgICBXZWJHUFVJbnB1dFN0YXRlIGlucHV0U3RhdGU7Ci0gICAgV2Vi
R1BVQXR0YWNobWVudHNTdGF0ZSBhdHRhY2htZW50c1N0YXRlOyAqLworICAgIFdlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yIGlucHV0U3RhdGU7CisvKiBUbyBCZSBJbXBsZW1lbnRlZDoKKyAgICBz
ZXF1ZW5jZTxXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRvcj4gYmxlbmRTdGF0ZXM7CisgICAgV2Vi
R1BVRGVwdGhTdGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlcHRoU3RlbmNpbFN0YXRlOworICAgIFdl
YkdQVUF0dGFjaG1lbnRzU3RhdGVEZXNjcmlwdG9yIGF0dGFjaG1lbnRzU3RhdGU7CiAgICAgLy8g
VE9ETyBvdGhlciBwcm9wZXJ0aWVzCisqLwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYTUxMzBjMmYxNzQwODYzZGNiZmY1MWUxNjNkZWQ3ZTJjOWIyNmExLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBXZWJHUFVTaGFkZXJTdGFnZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlclN0YWdl
PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgVkVSVEVYID0gMDsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBGUkFHTUVOVCA9IDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFVURSA9IDI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaWRsCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYTM3YTM3NDEyZDQ5MzAxYmJmNTc4MTdlODU2Yzk2ZDA2MzRjZTZiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9n
cHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKLQotdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHUzMjsKLQotWwotICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKLSAgICBFbmFibGVkQXRS
dW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFj
ZSBXZWJHUFVTaGFkZXJTdGFnZSB7Ci0gICAgY29uc3QgdTMyIFZFUlRFWCA9IDA7Ci0gICAgY29u
c3QgdTMyIEZSQUdNRU5UID0gMTsKLSAgICBjb25zdCB1MzIgQ09NUFVURSA9IDI7Ci19OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmli
dXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZDgxYTg5ODMzMmQzYzI0YmFj
NzAyOTdjYzQxOWJmNzZlZTFjZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yID0gR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvcjsKK3VzaW5nIFdlYkdQVVZlcnRleEZvcm1hdEVudW0g
PSBHUFVWZXJ0ZXhGb3JtYXRFbnVtOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44OTZhZWEzMzY3YzE3NjhiOGViZDliNjMzZWJmZDQ4YWJlMDczYWJjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0
cmlidXRlRGVzY3JpcHRvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRw
czovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndl
YmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BVVmVy
dGV4Rm9ybWF0RW51bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2Ny
aXB0b3IgeworICAgIHUzMiBzaGFkZXJMb2NhdGlvbjsKKyAgICB1MzIgaW5wdXRTbG90OworICAg
IHUzMiBvZmZzZXQ7CisgICAgV2ViR1BVVmVydGV4Rm9ybWF0RW51bSBmb3JtYXQ7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDc4NmQ1MWZlOGZiYmJjYTQ5ZDQzYjNiMmQ3ZDdiMDc5Y2MwNTFmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
Rm9ybWF0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVWZXJ0ZXhGb3JtYXQg
PSBHUFVWZXJ0ZXhGb3JtYXQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVmVydGV4Rm9ybWF0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2ZlZjQxYWYwMzM1Y2YxNmEyNDZi
YzBlMmU5ZjM5YzI5OGJjODdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rl
c2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7CisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGlu
dGVyZmFjZSBXZWJHUFVWZXJ0ZXhGb3JtYXQgeworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMy
X0IzMl9BMzIgPSAwOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMyX0IzMiA9IDE7CisgICAg
Y29uc3QgdTMyIEZMT0FUX1IzMl9HMzIgPSAyOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzIgPSAz
OworICAgIC8vIFRPRE8gb3RoZXIgdmVydGV4IGZvcm1hdHMKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2ZWQzNzU3MzNmNmIxYWY3ZDYzZjkyMzA5MTY5YmE0YWQ4YzliOTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVSW5w
dXRTdGVwTW9kZUVudW0gPSBHUFVJbnB1dFN0ZXBNb2RlRW51bTsKK3VzaW5nIFdlYkdQVVZlcnRl
eElucHV0RGVzY3JpcHRvciA9IEdQVVZlcnRleElucHV0RGVzY3JpcHRvcjsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2Ny
aXB0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwN2UzMTUzMDQ5ZTM0NTk1ZDE4ODdkNjg4ODZmOTg2ODRk
OTgyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWdu
L3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMy
IFdlYkdQVUlucHV0U3RlcE1vZGVFbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yIHsKKyAgICB1MzIgc3RyaWRlOworICAgIFdlYkdQVUlucHV0U3RlcE1vZGVF
bnVtIHN0ZXBNb2RlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTM3M2EyNTZlZjExMjFjYzQyY2Qw
MWIwNzhhY2ViMDA0ZGQ4MTQ1Mi4uYjRiZGIyNWI1MTcwNjg3NDQwYmE2NjNmMDZhMDliZWM0MDFl
MGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMjgsNiArMzIyOCw5IEBAIEpTV2ViR1BVQnVmZmVy
VXNhZ2UuY3BwCiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYkdQVUNvbG9yLmNwcAog
SlNXZWJHUFVEZXZpY2UuY3BwCitKU1dlYkdQVUluZGV4Rm9ybWF0LmNwcAorSlNXZWJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVSW5wdXRTdGVwTW9kZS5jcHAKIEpTV2ViR1BV
UXVldWUuY3BwCiBKU1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBKU1dlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcApAQCAtMzI0MCwxMSArMzI0MywxMyBAQCBKU1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmNwcAogSlNXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3Bw
CiBKU1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKIEpTV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5jcHAKLUpTV2ViR1BVU2hhZGVyU3RhZ2UuY3BwCiBKU1dlYkdQVVN3YXBDaGFpbi5jcHAKIEpT
V2ViR1BVVGV4dHVyZS5jcHAKIEpTV2ViR1BVVGV4dHVyZUZvcm1hdEVudW0uY3BwCiBKU1dlYkdQ
VVRleHR1cmVWaWV3LmNwcAorSlNXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmNwcAor
SlNXZWJHUFVWZXJ0ZXhGb3JtYXQuY3BwCitKU1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5j
cHAKIEpTV2ViTWV0YWxCdWZmZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZEJ1ZmZlci5jcHAKIEpT
V2ViTWV0YWxDb21tYW5kUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGJjYjRhN2VlMmU2N2NmMGMzYmZjYTk1OGQz
NWM4YjFlNGY2MDE1MC4uZWNlOTliNmQ3OWZhYThjY2RlYTYwNzBmNzBiNTVkZDk0NjZmYWY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM3OTgsOCArMTM3OTgsMTQgQEAKIAkJRDA2MTVGQ0MyMTdGRTVDNjAwOEE0OEE4IC8q
IFdlYkdQVVNoYWRlck1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVTaGFkZXJNb2R1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0QyMTdGRTVDNjAwOEE0OEE4
IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTaGFk
ZXJNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDYxNUZDRTIxN0ZF
NUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJN
b2R1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMDYzQUU0QzIxQzA3QUI1
MDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVzYWdl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2
QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVz
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTNGMjFDMDVEREQwMDBF
NkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJV
c2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0MDIxQzA1REREMDAw
RTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZlclVzYWdlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDQyMUMwNjE3RDAwMEU2QTM1
IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVWZXJ0ZXhGb3Jt
YXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDUyMUMwNjE3RDAwMEU2
QTM1IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVVmVydGV4Rm9ybWF0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDYyMUMwNjYyNjAwMEU2QTM1
IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5wdXRTdGVw
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0NzIxQzA2NjI2MDAw
RTZBMzUgLyogV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVSW5wdXRTdGVwTW9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ4MjFDMDY2REIwMDBF
NkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVJbmRleEZv
cm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0OTIxQzA2NkRCMDAw
RTZBMzUgLyogV2ViR1BVSW5kZXhGb3JtYXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUluZGV4Rm9ybWF0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNG
IC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA3REVBQjcwQTM2NTU0QTAwQ0EzMEY4IC8q
IEluc2VydExpc3RDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNlcnRMaXN0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzgzMCw4ICsxMzgzNiw2IEBACiAJCUQwQkQ0RjVCMTQwODg1MEYwMDY4MzlCNiAvKiBEaWN0
YXRpb25Db21tYW5kSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3Rh
dGlvbkNvbW1hbmRJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RUIy
MTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwQzQxOUVDMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMEM0MTlFRTIxODNEOUM4MDA5RUMx
REUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyU3Rh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBDNDE5RUYyMTgzRDlDODAwOUVD
MURFIC8qIFdlYkdQVVNoYWRlclN0YWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVTaGFkZXJTdGFnZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYwMjE4M0VCMzEwMDlFQzFERSAv
KiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBD
NDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMEM0MTlGMjIxODNFRkVDMDA5RUMxREUgLyogV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4NTMsNiArMTM4NTcs
MTUgQEAKIAkJRDBEODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViR1BVQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEODY0
OTEyMUI3NjBDNDAwM0M5ODNDIC8qIEdQVUJ1ZmZlck1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR1BVQnVmZmVyTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
RDg2NDkyMjFCNzYwRjIwMDNDOTgzQyAvKiBHUFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BV
QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDkzMjFCQTE3M0Qw
MDNDOTgzQyAvKiBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5NDIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3Iu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTUyMUJBMThGNDAwM0M5ODNDIC8qIFdlYkdQVVZlcnRleEF0
dHJpYnV0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4QXR0cmlidXRl
RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5NjIxQkEx
OEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk4MjFCQTE5QTcwMDNDOTgzQyAv
KiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleElucHV0
RGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk5MjFC
QTFCMUYwMDNDOTgzQyAvKiBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgzQyAvKiBHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU0MjE3OTMwRTIw
MDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU3dhcENo
YWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU1MjE3OTMwRTIwMDdG
RTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU3dh
cENoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBEQTBCRTYyMTc5MzBF
MjAwN0ZFMkFDIC8qIFdlYkdQVVN3YXBDaGFpbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU3dhcENoYWluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDI0LDYgKzE4MDM3LDcgQEAKIAkJ
CQkzMTJGRjhCRDIxQTRDMkYxMDBFQjE5OUQgLyogR1BVQ29tbWFuZEJ1ZmZlci5oICovLAogCQkJ
CTMxMkZGOEJGMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuY3BwICovLAogCQkJCTMxMkZG
OEJFMjFBNEMyRjEwMEVCMTk5RCAvKiBHUFVEZXZpY2UuaCAqLywKKwkJCQlEMEQ4NjQ5OTIxQkEx
QjFGMDAzQzk4M0MgLyogR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKIAkJCQkzMTJGRjhD
NDIxQTRDMkY0MDBFQjE5OUQgLyogR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJ
CTMxMkZGOEMyMjFBNEMyRjMwMEVCMTk5RCAvKiBHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5o
ICovLAogCQkJCUQwMzIxMUNGMjFBQzk1NEUwMDc2M0NGMiAvKiBHUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5oICovLApAQCAtMTgwMzgsNiArMTgwNTIsOCBAQAogCQkJCTMxMkZGOEJBMjFBNEMy
RUYwMEVCMTk5RCAvKiBHUFVTd2FwQ2hhaW4uaCAqLywKIAkJCQkzMTJGRjhDNTIxQTRDMkY0MDBF
QjE5OUQgLyogR1BVVGV4dHVyZS5oICovLAogCQkJCTMxMkZGOEMzMjFBNEMyRjMwMEVCMTk5RCAv
KiBHUFVUZXh0dXJlRm9ybWF0RW51bS5oICovLAorCQkJCUQwRDg2NDlCMjFCQTFDMkQwMDNDOTgz
QyAvKiBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRDBEODY0OUMyMUJB
MUNFODAwM0M5ODNDIC8qIEdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAogCQkJCTQ5ODc3
MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEyNDJD
NTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTI1NTE1LDYgKzI1NTMxLDEwIEBACiAJCQkJRDBE
ODY0OEUyMUI3MDY3NjAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlci5pZGwgKi8sCiAJCQkJRDBEODY0
ODIyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAqLywKIAkJCQlE
MEQ4NjQ4MzIxQjYxNzI3MDAzQzk4M0MgLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGwgKi8s
CisJCQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8s
CisJCQkJRDA2M0FFM0YyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8s
CisJCQkJRDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAq
LywKKwkJCQlEMDYzQUU0MDIxQzA1REREMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaWRs
ICovLAogCQkJCUQwMDFEOUFDMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xvci5oICovLAog
CQkJCUQwMDFEOUFEMjFCMEM4MUEwMDIzQjlCQyAvKiBXZWJHUFVDb2xvci5pZGwgKi8sCiAJCQkJ
RDBFQUNGNzcyMTkzNzIyODAwMEZBNzVDIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXIuY3BwICovLApA
QCAtMjU1MjMsNiArMjU1NDMsMTIgQEAKIAkJCQlEMDBGNTk1MzIxNzAxRDhDMDAwRDcxREIgLyog
V2ViR1BVRGV2aWNlLmNwcCAqLywKIAkJCQlEMDBGNTk1MjIxNzAxRDhDMDAwRDcxREIgLyogV2Vi
R1BVRGV2aWNlLmggKi8sCiAJCQkJRDAwRjU5NTQyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURl
dmljZS5pZGwgKi8sCisJCQkJRDA2M0FFNDgyMUMwNjZEQjAwMEU2QTM1IC8qIFdlYkdQVUluZGV4
Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2QTM1IC8qIFdlYkdQVUluZGV4
Rm9ybWF0LmlkbCAqLywKKwkJCQlEMEQ4NjQ5MzIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5NDIxQkExNzNEMDAzQzk4M0MgLyog
V2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwNjNBRTQ2MjFDMDY2MjYw
MDBFNkEzNSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmggKi8sCisJCQkJRDA2M0FFNDcyMUMwNjYy
NjAwMEU2QTM1IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsICovLAogCQkJCUQwQzQxOUYwMjE4
M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJ
RDBDNDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
aWRsICovLAogCQkJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZVN0
YWdlRGVzY3JpcHRvci5oICovLApAQCAtMjU1NTMsOCArMjU1NzksNiBAQAogCQkJCUQwNjE1RkNF
MjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaWRsICovLAogCQkJCUQwNjBE
ODg3MjE4MjY5NzAwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmggKi8s
CiAJCQkJRDA2MEQ4ODQyMTgyNUQ1RjAwMzM5MzE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3IuaWRsICovLAotCQkJCUQwQzQxOUVFMjE4M0Q5QzgwMDlFQzFERSAvKiBXZWJHUFVTaGFk
ZXJTdGFnZS5oICovLAotCQkJCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFERSAvKiBXZWJHUFVTaGFk
ZXJTdGFnZS5pZGwgKi8sCiAJCQkJRDBEQTBCRTUyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3
YXBDaGFpbi5jcHAgKi8sCiAJCQkJRDBEQTBCRTQyMTc5MzBFMjAwN0ZFMkFDIC8qIFdlYkdQVVN3
YXBDaGFpbi5oICovLAogCQkJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uaWRsICovLApAQCAtMjU1NjYsOCArMjU1OTAsMTIgQEAKIAkJCQlEMEVBQ0Y4ODIxOTNF
RTRFMDAwRkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuY3BwICovLAogCQkJCUQwRUFDRjg3MjE5
M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5oICovLAogCQkJCUQwRUFDRjg5MjE5
M0VFNEUwMDBGQTc1QyAvKiBXZWJHUFVUZXh0dXJlVmlldy5pZGwgKi8sCi0JCQkJRDA2M0FFNEMy
MUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLywKLQkJCQlEMDYzQUU0
RTIxQzA4MTBBMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLywKKwkJCQlEMEQ4NjQ5
NTIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oICov
LAorCQkJCUQwRDg2NDk2MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVE
ZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NDIxQzA2MTdEMDAwRTZBMzUgLyogV2ViR1BV
VmVydGV4Rm9ybWF0LmggKi8sCisJCQkJRDA2M0FFNDUyMUMwNjE3RDAwMEU2QTM1IC8qIFdlYkdQ
VVZlcnRleEZvcm1hdC5pZGwgKi8sCisJCQkJRDBEODY0OTcyMUJBMTlBNzAwM0M5ODNDIC8qIFdl
YkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDk4MjFCQTE5QTcwMDND
OTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsICovLAogCQkJKTsKIAkJCXBh
dGggPSB3ZWJncHU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGQyNTY4MjdlYjhk
ZmNjODdmMzFmMDY0NGI0ODhhY2M0MjRiNDdhY2QuLmUwYjM5N2YzZGRkNjQzZTdlNGUxM2ZjOTg1
M2U1ZTAxZDFiMWZjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE5MywxNiArMTkzLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhXZWJHUFVCdWZmZXJVc2FnZSkgXAogICAgIG1hY3JvKFdlYkdQVUNvbW1h
bmRCdWZmZXIpIFwKICAgICBtYWNybyhXZWJHUFVEZXZpY2UpIFwKKyAgICBtYWNybyhXZWJHUFVJ
bmRleEZvcm1hdCkgXAorICAgIG1hY3JvKFdlYkdQVUlucHV0U3RlcE1vZGUpIFwKICAgICBtYWNy
byhXZWJHUFVRdWV1ZSkgXAogICAgIG1hY3JvKFdlYkdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVy
KSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdQ
VVJlbmRlclBhc3NFbmNvZGVyKSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyUGlwZWxpbmUpIFwK
LSAgICBtYWNybyhXZWJHUFVTaGFkZXJTdGFnZSkgXAogICAgIG1hY3JvKFdlYkdQVVNoYWRlck1v
ZHVsZSkgXAogICAgIG1hY3JvKFdlYkdQVVN3YXBDaGFpbikgXAogICAgIG1hY3JvKFdlYkdQVVRl
eHR1cmUpIFwKICAgICBtYWNybyhXZWJHUFVUZXh0dXJlVmlldykgXAorICAgIG1hY3JvKFdlYkdQ
VVZlcnRleEZvcm1hdCkgXAogICAgIG1hY3JvKFdlYk1ldGFsQnVmZmVyKSBcCiAgICAgbWFjcm8o
V2ViTWV0YWxDb21tYW5kQnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViTWV0YWxDb21tYW5kUXVldWUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJ
bnB1dFN0YXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE3ODQ3NzNjYTU4NTg0
MmVjNWRkOWNmMGM1ZDY4NWY0MTEwNWE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBHUFVJbmRleEZvcm1hdEVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVJbmRl
eEZvcm1hdCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUluZGV4Rm9ybWF0PiB7CitwdWJsaWM6Cisg
ICAgZW51bSBFbnVtIDogR1BVSW5kZXhGb3JtYXRFbnVtIHsKKyAgICAgICAgVWludDE2ID0gMCwK
KyAgICAgICAgVWludDMyID0gMQorICAgIH07Cit9OworCitzdHJ1Y3QgR1BVSW5wdXRTdGF0ZURl
c2NyaXB0b3IgeworICAgIEdQVUluZGV4Rm9ybWF0RW51bSBpbmRleEZvcm1hdDsKKworICAgIFZl
Y3RvcjxHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yPiBhdHRyaWJ1dGVzOworICAgIFZlY3Rv
cjxHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I+IGlucHV0czsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CmluZGV4IDNiNjRkMDQ0Y2E1ZTljMWFiZGEwYWRlMjc0ZmIyMWJjYjlmMDA0MzUuLmM5MDcxY2Jm
NjFmNWEzYzJhYWVhZWRiOWJmYzEwY2IxNjQzMGY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQYXNzRW5jb2Rlci5o
CkBAIC0zMiwxMSArMzIsMTMgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBPQkpDX1BST1RPQ09MKE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyKTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBHUFVCdWZmZXI7CiBjbGFzcyBHUFVDb21t
YW5kQnVmZmVyOwogY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CiAKQEAgLTUxLDYgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYp
IGZpbmFsOwogCisgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcsIFZlY3Rv
cjxSZWY8Y29uc3QgR1BVQnVmZmVyPj4mJiwgVmVjdG9yPHVuc2lnbmVkPiYmKTsKICAgICB2b2lk
IGRyYXcodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWdu
ZWQgbG9uZyk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
aW5kZXggMTRlYzdkMmY5N2ViYzQ0YzdiMzZiOTVlZTRhNWNhM2JjY2Q5YmQyOC4uNWI0M2IxZWUx
YmZjYTg3NzBiNGIwMzg4OTdkNzIxNWMzMmI2YWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAor
I2luY2x1ZGUgIkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmgiCiAKQEAgLTQ2LDYgKzQ3LDcgQEAgc3RydWN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ciB7CiAgICAgR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2U7CiAgICAgR1BV
UGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgZnJhZ21lbnRTdGFnZTsKICAgICBQcmltaXRpdmVUb3Bv
bG9neSBwcmltaXRpdmVUb3BvbG9neTsKKyAgICBHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBpbnB1
dFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRy
aWJ1dGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU4ZDZkZGExY2E3Y2ZjMTU3OTFlMjYyNWZi
MTg2MzU5MzBmNDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgR1BVVmVydGV4Rm9ybWF0RW51bSA9IHVuc2lnbmVkIGxvbmc7CisKK2NsYXNzIEdQVVZlcnRl
eEZvcm1hdCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVZlcnRleEZvcm1hdD4geworcHVibGljOgor
ICAgIGVudW0gRW51bSA6IEdQVVZlcnRleEZvcm1hdEVudW0geworICAgICAgICBGbG9hdFIzMkcz
MkIzMkEzMiA9IDAsCisgICAgICAgIEZsb2F0UjMyRzMyQjMyID0gMSwKKyAgICAgICAgRmxvYXRS
MzJHMzIgPSAyLAorICAgICAgICBGbG9hdFIzMiA9IDMKKyAgICB9OworfTsKKworc3RydWN0IEdQ
VVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IgeworICAgIHVuc2lnbmVkIGxvbmcgc2hhZGVyTG9j
YXRpb247CisgICAgdW5zaWduZWQgbG9uZyBpbnB1dFNsb3Q7CisgICAgdW5zaWduZWQgbG9uZyBv
ZmZzZXQ7CisgICAgR1BVVmVydGV4Rm9ybWF0RW51bSBmb3JtYXQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0
RGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MTliMjI2ZTgzYjU5MTU3OWMxOGQyNTIwZTg0MWIz
OWJiZDBlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgR1BVSW5w
dXRTdGVwTW9kZUVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVJbnB1dFN0ZXBNb2Rl
IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVSW5wdXRTdGVwTW9kZT4geworcHVibGljOgorICAgIGVu
dW0gRW51bSA6IEdQVUlucHV0U3RlcE1vZGVFbnVtIHsKKyAgICAgICAgVmVydGV4ID0gMCwKKyAg
ICAgICAgSW5zdGFuY2UgPSAxCisgICAgfTsKK307CisKK3N0cnVjdCBHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IgeworICAgIHVuc2lnbmVkIGxvbmcgc3RyaWRlOworICAgIEdQVUlucHV0U3RlcE1v
ZGVFbnVtIHN0ZXBNb2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0
YWwubW0KaW5kZXggMmM1ODJiMGIzMmQ4ZDQxMmQ4Y2Q2NTRhNDY5YWE3ZTZiOWRhN2E0OC4uOWUy
NzA2ZWE3OWYzMTc1OWRlYjVlNmVmMmU5N2ZiNDIyZmNmZTdhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBhc3NFbmNvZGVy
TWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBhc3NFbmNvZGVyTWV0YWwubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShXRUJHUFUpCiAKKyNpbXBvcnQgIkdQVUJ1ZmZlci5oIgogI2ltcG9ydCAiR1BVQ29tbWFu
ZEJ1ZmZlci5oIgogI2ltcG9ydCAiR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIKICNpbXBvcnQg
IkdQVVJlbmRlclBpcGVsaW5lLmgiCkBAIC04Myw2ICs4NCwxMiBAQCB2b2lkIEdQVVJlbmRlclBh
c3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUp
CiAgICAgbV9waXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOwogfQogCit2b2lkIEdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFZlY3Rv
cjxSZWY8Y29uc3QgR1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8dW5zaWduZWQ+JiYgb2Zm
c2V0cykgCit7CisgICAgLy8gRklYTUU6IE9ubHkgd29ycnkgYWJvdXQgdGhlIGZpcnN0IGJ1ZmZl
ciBmb3Igbm93LCBhbmQgdHJlYXQgc3RhcnRTbG90IGFzIHRoZSBpbmRleC4KKyAgICBbbV9wbGF0
Zm9ybVJlbmRlclBhc3NFbmNvZGVyIHNldFZlcnRleEJ1ZmZlcjpidWZmZXJzWzBdLT5wbGF0Zm9y
bUJ1ZmZlcigpIG9mZnNldDpvZmZzZXRzWzBdIGF0SW5kZXg6aW5kZXhdOworfQorCiBzdGF0aWMg
TVRMUHJpbWl0aXZlVHlwZSBwcmltaXRpdmVUeXBlRm9yR1BVUHJpbWl0aXZlVG9wb2xvZ3koUHJp
bWl0aXZlVG9wb2xvZ3kgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBl
bGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KaW5kZXggYTgwNjVmZWJiYWQ0NzgzNzAzYmJiNmUy
Y2NjMWFmOWM1NGRlMDQ4NS4uYTVjZWMzOGNiZTYzYmU3ZGNkY2FjNGRmZGUwNjI0ODkyYWZjYjg0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29h
L0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KQEAgLTMxLDYgKzMx
LDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKIAogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNp
bXBvcnQgPG9wdGlvbmFsPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNiArODMsODQgQEAgc3RhdGljIGJvb2wgc2V0RnVu
Y3Rpb25zRm9yUGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFt
ZSwgTVQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMVmVy
dGV4Rm9ybWF0PiB2YWxpZGF0ZUFuZENvbnZlcnRWZXJ0ZXhGb3JtYXRUb01UTFZlcnRleEZvcm1h
dChHUFVWZXJ0ZXhGb3JtYXRFbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1hdCkgewor
ICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdFIzMkczMkIzMkEzMjoKKyAgICAgICAgcmV0
dXJuIE1UTFZlcnRleEZvcm1hdEZsb2F0NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6Rmxv
YXRSMzJHMzJCMzI6CisgICAgICAgIHJldHVybiBNVExWZXJ0ZXhGb3JtYXRGbG9hdDM7CisgICAg
Y2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OkZsb2F0UjMyRzMyOgorICAgICAgICByZXR1cm4gTVRMVmVy
dGV4Rm9ybWF0RmxvYXQyOworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdFIzMjoKKyAg
ICAgICAgcmV0dXJuIE1UTFZlcnRleEZvcm1hdEZsb2F0OworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxN
VExWZXJ0ZXhTdGVwRnVuY3Rpb24+IHZhbGlkYXRlQW5kQ29udmVydFN0ZXBNb2RlVG9NVExTdGVw
RnVuY3Rpb24oR1BVSW5wdXRTdGVwTW9kZUVudW0gbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUp
IHsKKyAgICBjYXNlIEdQVUlucHV0U3RlcE1vZGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIE1U
TFZlcnRleFN0ZXBGdW5jdGlvblBlclZlcnRleDsKKyAgICBjYXNlIEdQVUlucHV0U3RlcE1vZGU6
Okluc3RhbmNlOgorICAgICAgICByZXR1cm4gTVRMVmVydGV4U3RlcEZ1bmN0aW9uUGVySW5zdGFu
Y2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9Cit9
CisKK3N0YXRpYyBib29sIHNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoY29uc3Qg
Y2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgKm10
bERlc2NyaXB0b3IsIGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKK3sKKyNpZiBMT0dfRElTQUJMRUQKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsK
KyNlbmRpZgorICAgIGF1dG8gbXRsVmVydGV4RGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTFZlcnRl
eERlc2NyaXB0b3IgbmV3XSk7CisKKyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYXR0cmlidXRlcywg
aWYgYW55LgorICAgIGNvbnN0IGF1dG8mIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmlucHV0U3Rh
dGUuYXR0cmlidXRlczsKKworICAgIC8vIEZJWE1FOiBXaGF0IGtpbmQgb2YgdmFsaWRhdGlvbiBp
cyBuZWVkZWQgaGVyZT8KKyAgICBNVExWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yQXJyYXkgKmF0
dHJpYnV0ZUFycmF5ID0gbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5hdHRyaWJ1dGVzOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIGF1dG8gbXRsRm9ybWF0ID0gdmFsaWRhdGVBbmRDb252ZXJ0VmVydGV4Rm9ybWF0VG9NVExW
ZXJ0ZXhGb3JtYXQoYXR0cmlidXRlc1tpXS5mb3JtYXQpOworICAgICAgICBpZiAoIW10bEZvcm1h
dCkgeworICAgICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVVZlcnRleEZv
cm1hdEVudW0gZm9yIHZlcnRleCBhdHRyaWJ1dGUhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIE1UTFZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IgKm10bEF0dHJpYnV0ZURlc2MgPSBbYXR0cmlidXRlQXJyYXkgb2JqZWN0QXRJ
bmRleGVkU3Vic2NyaXB0OmldOworICAgICAgICBtdGxBdHRyaWJ1dGVEZXNjLmZvcm1hdCA9ICpt
dGxGb3JtYXQ7CisgICAgICAgIG10bEF0dHJpYnV0ZURlc2Mub2Zmc2V0ID0gYXR0cmlidXRlc1tp
XS5vZmZzZXQ7CisgICAgICAgIG10bEF0dHJpYnV0ZURlc2MuYnVmZmVySW5kZXggPSBhdHRyaWJ1
dGVzW2ldLnNoYWRlckxvY2F0aW9uOworICAgICAgICBbbXRsVmVydGV4RGVzY3JpcHRvci5nZXQo
KS5hdHRyaWJ1dGVzIHNldE9iamVjdDptdGxBdHRyaWJ1dGVEZXNjIGF0SW5kZXhlZFN1YnNjcmlw
dDppXTsKKyAgICB9CisKKyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYnVmZmVyIGxheW91dHMsIGlm
IGFueS4KKyAgICBjb25zdCBhdXRvJiBpbnB1dHMgPSBkZXNjcmlwdG9yLmlucHV0U3RhdGUuaW5w
dXRzOworCisgICAgTVRMVmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvckFycmF5ICpsYXlvdXRB
cnJheSA9IG10bFZlcnRleERlc2NyaXB0b3IuZ2V0KCkubGF5b3V0czsKKworICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgaW5wdXRzLnNpemUoKTsgKytqKSB7CisgICAgICAgIGF1dG8gbXRsU3Rl
cEZ1bmN0aW9uID0gdmFsaWRhdGVBbmRDb252ZXJ0U3RlcE1vZGVUb01UTFN0ZXBGdW5jdGlvbihp
bnB1dHNbal0uc3RlcE1vZGUpOworICAgICAgICBpZiAoIW10bFN0ZXBGdW5jdGlvbikgeworICAg
ICAgICAgICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVUlucHV0U3RlcE1vZGUgZm9y
IHZlcnRleCBpbnB1dCEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisKKyAgICAgICAgTVRMVmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvciAq
bXRsTGF5b3V0RGVzYyA9IFtsYXlvdXRBcnJheSBvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6al07
CisgICAgICAgIG10bExheW91dERlc2Muc3RlcEZ1bmN0aW9uID0gKm10bFN0ZXBGdW5jdGlvbjsK
KyAgICAgICAgbXRsTGF5b3V0RGVzYy5zdHJpZGUgPSBpbnB1dHNbal0uc3RyaWRlOworICAgICAg
ICBbbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5sYXlvdXRzIHNldE9iamVjdDptdGxMYXlvdXRE
ZXNjIGF0SW5kZXhlZFN1YnNjcmlwdDpqXTsKKyAgICB9CisKKyAgICBtdGxEZXNjcmlwdG9yLnZl
cnRleERlc2NyaXB0b3IgPSBtdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgpOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVuZGVyUGlwZWxpbmU6
OmNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yJiYgZGVzY3JpcHRvcikKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUg
PSAiR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgpIjsKQEAgLTEwNCw3ICsxODMsOCBAQCBSZWZQ
dHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoY29uc3QgR1BV
RGV2aWNlJiBkZXZpY2UsIEdQVQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICBpZiAoIXNldEZ1bmN0aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIG10
bERlc2NyaXB0b3IuZ2V0KCksIGRlc2NyaXB0b3IpKQorICAgIGlmICghc2V0RnVuY3Rpb25zRm9y
UGlwZWxpbmVEZXNjcmlwdG9yKGZ1bmN0aW9uTmFtZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgZGVz
Y3JpcHRvcikKKyAgICAgICAgfHwgIXNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3Io
ZnVuY3Rpb25OYW1lLCBtdGxEZXNjcmlwdG9yLmdldCgpLCBkZXNjcmlwdG9yKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogR2V0IHRoZSBwaXhlbEZvcm1hdCBhcyBj
b25maWd1cmVkIGZvciB0aGUgY29udGV4dC9DQU1ldGFsTGF5ZXIuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2MmU0ODg0
NGYyYTMwNGVlNjRjZGM5NjJmMzY4OTMwMmViYjI3Mi4uYTVmZWYyZDkyNzM5NDEyY2E1ZWY5YTE5
NWYwMzBiOTYwYTdjNDIzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHZhcmlhdGlvbiBvZiBzaW1wbGUtdHJpYW5nbGUt
c3RyaXAgdG8gdXNlIGEgdmVydGV4IGJ1ZmZlci4gUmVmYWN0b3JlZCBhZm9yZW1lbnRpb25lZAor
ICAgICAgICB0ZXN0IHRvIHNoYXJlIGNvZGUgd2l0aCBuZXcgdGVzdC4KKworICAgICAgICAqIHdl
YmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzOgorICAgICAgICAoc2V0VXBQaXBlbGlu
ZURlc2NyaXB0b3IpOgorICAgICAgICAqIHdlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGFzeW5jLmdldEJhc2ljRGV2aWNlKToKKyAgICAgICAgKGNyZWF0ZUJh
c2ljQ29udGV4dCk6CisgICAgICAgIChjcmVhdGVCYXNpY1BpcGVsaW5lKToKKyAgICAgICAgKGJl
Z2luQmFzaWNSZW5kZXJQYXNzKToKKyAgICAgICAgKiB3ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbDoKKyAg
ICAgICAgKiB3ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWw6CisgICAgICAgICogd2Vi
Z3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbDogQWRkZWQu
CisKIDIwMTgtMTItMTAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgY29ubmVjdGVkQ2FsbGJhY2sgaXMgaW52b2tlZCBkdXJpbmcgdGhlIHJlbW92YWwgb2YgdGhl
IGVsZW1lbnQgaW5zaWRlIGFub3RoZXIgZWxlbWVudCdzIGNvbm5lY3RlZENhbGxiYWNrCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcyBi
L0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGIz
Y2JiYzIxYmQ0OWMyODFlMmEwYTlmMGYxMWQ1YTNhMjA0NzAxNDEuLjBkMDg3MDI2MmY3MDA5ZTFh
M2Q5MzBlZWQ0ZGFlNDllMDAwOTljNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9q
cy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy9i
YXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC05MCwxOSArOTAsMTggQEAgZnVuY3Rpb24gc2V0
VXBNb2R1bGUoKSB7CiAKIGZ1bmN0aW9uIHNldFVwUGlwZWxpbmVEZXNjcmlwdG9yKCkgewogICAg
IHZlcnRleFN0YWdlRGVzY3JpcHRvciA9IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxl
LCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwgCisgICAgICAgIG1v
ZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAog
ICAgIH07CiAKICAgICBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciA9IHsKICAgICAgICAgbW9kdWxl
OiBzaGFkZXJNb2R1bGUsCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5GUkFHTUVO
VCwKICAgICAgICAgZW50cnlQb2ludDogImZyYWdtZW50X21haW4iCiAgICAgfTsKIAogICAgIHBp
cGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbdmVydGV4U3RhZ2VEZXNjcmlw
dG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCisgICAgICAgIHZlcnRleFN0YWdlOiB2ZXJ0
ZXhTdGFnZURlc2NyaXB0b3IsIAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdl
RGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAg
ICAgfTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rp
b25zLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pzL3dlYmdwdS1mdW5jdGlvbnMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTlhZTgzODYyYmExZTg1MTY4YWU3MGEwNzYzYTgzOGE0OThlYzZkZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC0w
LDAgKzEsNTIgQEAKK2FzeW5jIGZ1bmN0aW9uIGdldEJhc2ljRGV2aWNlKCkgeworICAgIC8vIEZJ
WE1FOiByZXF1ZXN0QWRhcHRlciBzaG91bGQgdGFrZSBhIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9y
LgorICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVy
KHt9KTsKKyAgICBjb25zdCBkZXZpY2UgPSBhZGFwdGVyLmNyZWF0ZURldmljZSgpOworICAgIHJl
dHVybiBkZXZpY2U7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRl
dmljZSkgeworICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgid2ViZ3B1Iik7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBhbmQgc3BlY2lmeSBhIFdlYkdQVVRleHR1cmVVc2Fn
ZUVudW0uCisgICAgY29udGV4dC5jb25maWd1cmUoeyBkZXZpY2U6IGRldmljZSwgZm9ybWF0OiJC
OEc4UjhBOFVub3JtIiwgd2lkdGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0
IH0pOworICAgIHJldHVybiBjb250ZXh0OworfQorCitmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVs
aW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBpbnB1dFN0YXRlRGVzY3JpcHRvcikgeworICAgIHZl
cnRleFN0YWdlRGVzY3JpcHRvciA9IHsKKyAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCisg
ICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCisgICAgfTsKKworICAgIGZyYWdtZW50
U3RhZ2VEZXNjcmlwdG9yID0geworICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKKyAgICAg
ICAgZW50cnlQb2ludDogImZyYWdtZW50X21haW4iCisgICAgfTsKKworICAgIHBpcGVsaW5lRGVz
Y3JpcHRvciA9IHsKKyAgICAgICAgdmVydGV4U3RhZ2U6IHZlcnRleFN0YWdlRGVzY3JpcHRvciwK
KyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCisgICAgICAg
IHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVTdHJpcCIsCisgICAgICAgIGlucHV0U3RhdGU6
IGlucHV0U3RhdGVEZXNjcmlwdG9yCisgICAgfTsKKworICAgIHJldHVybiBkZXZpY2UuY3JlYXRl
UmVuZGVyUGlwZWxpbmUocGlwZWxpbmVEZXNjcmlwdG9yKTsKK30KKworZnVuY3Rpb24gYmVnaW5C
YXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZlcikgeworICAgIGNvbnN0IGJhc2lj
QXR0YWNobWVudCA9IHsKKyAgICAgICAgYXR0YWNobWVudDogY29udGV4dC5nZXROZXh0VGV4dHVy
ZSgpLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygpLAorICAgICAgICBjbGVhckNvbG9yOiB7IHI6
IDEuMCwgZzogMCwgYjogMCwgYTogMS4wIH0KKyAgICB9CisKKyAgICAvLyBGSVhNRTogRmxlc2gg
b3V0IHRoZSByZXN0IG9mIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLiAKKyAgICByZXR1cm4g
Y29tbWFuZEJ1ZmZlci5iZWdpblJlbmRlclBhc3MoeyBjb2xvckF0dGFjaG1lbnRzIDogW2Jhc2lj
QXR0YWNobWVudF0gfSk7Cit9CisKK2Z1bmN0aW9uIGVuY29kZUJhc2ljQ29tbWFuZHMocmVuZGVy
UGFzc0VuY29kZXIsIHJlbmRlclBpcGVsaW5lLCB2ZXJ0ZXhCdWZmZXIpIHsKKyAgICBpZiAodmVy
dGV4QnVmZmVyKQorICAgICAgICByZW5kZXJQYXNzRW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAs
IFt2ZXJ0ZXhCdWZmZXJdLCBbMF0pOworICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5l
KHJlbmRlclBpcGVsaW5lKTsKKyAgICByZW5kZXJQYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDAp
OworICAgIHJldHVybiByZW5kZXJQYXNzRW5jb2Rlci5lbmRQYXNzKCk7Cit9ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1w
aXBlbGluZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGlu
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZDg2YjBhY2FhZTI2ZWQ1ZjhhZGI3NTg1N2NkZjg4OWU2
MzY0ZjYuLmYyNTA5MjYyMTQ5NjBmOWE3NTNkNGQ3YjFiNTYwNDRkOWJhZDc0NzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50eHQKQEAgLTMs
NyArMyw2IEBAIFBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlkIFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciB3YXMgbm90IGNyCiBQQVNTIFdlYkdQVVJlbmRlclBpcGVs
aW5lIHdpdGggaW52YWxpZCBzaGFkZXIgbW9kdWxlIHdhcyBub3QgY3JlYXRlZC4KIFBBU1MgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlkIHZlcnRleCBzaGFkZXIgc3RhZ2Ugd2FzIG5v
dCBjcmVhdGVkLgogUEFTUyBXZWJHUFVSZW5kZXJQaXBlbGluZSB3aXRoIGludmFsaWQgdmVydGV4
IHNoYWRlciBlbnRyeSBwb2ludCB3YXMgbm90IGNyZWF0ZWQuCi1QQVNTIFdlYkdQVVJlbmRlclBp
cGVsaW5lIHdpdGggaW52YWxpZCBXZWJHUFVTaGFkZXJTdGFnZUVudW0gd2FzIG5vdCBjcmVhdGVk
LgogQWxsIHRlc3RzIGNvbXBsZXRlLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbAppbmRleCBhM2I5MjllY2Q4
NzVjZDBhYTUzNmQ3ZDFiNTMwZjE1MWJkNjcwOWNiLi42Y2I0YmVmYWExZDc0OWEzNzc5NWZjNDA1
ZmVmYmNhZTk5YTk3NWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBp
cGVsaW5lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0
bWwKQEAgLTE5LDQzICsxOSwzMiBAQCBmdW5jdGlvbiBzZXRVcEJhZFBpcGVsaW5lcygpIHsKICAg
ICBjaGVja0JhZFJlbmRlclBpcGVsaW5lKHt9LCAiV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yIik7CiAKICAgICBsZXQgbm9Nb2R1bGVWZXJ0ZXhEZXNjcmlwdG9yID0gewotICAgICAgICBz
dGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuVkVSVEVYLAogICAgICAgICBlbnRyeVBvaW50OiAidmVy
dGV4X21haW4iCiAgICAgfQogICAgIGxldCBub01vZHVsZVBpcGVsaW5lRGVzY3JpcHRvciA9IHsK
LSAgICAgICAgc3RhZ2VzOiBbbm9Nb2R1bGVWZXJ0ZXhEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdl
RGVzY3JpcHRvcl0sCisgICAgICAgIHZlcnRleFN0YWdlOiBub01vZHVsZVZlcnRleERlc2NyaXB0
b3IsIAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAg
ICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNr
QmFkUmVuZGVyUGlwZWxpbmUobm9Nb2R1bGVQaXBlbGluZURlc2NyaXB0b3IsICJzaGFkZXIgbW9k
dWxlIik7CiAKICAgICAvLyBBIChNZXRhbCkgcmVuZGVycGlwZWxpbmUgbXVzdCBoYXZlIGEgdmVy
dGV4IGZ1bmN0aW9uLgogICAgIGxldCBub1ZlcnRleFBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAg
ICAgICAgc3RhZ2VzOiBbZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAgICBmcmFnbWVu
dFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xv
Z3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUobm9W
ZXJ0ZXhQaXBlbGluZURlc2NyaXB0b3IsICJ2ZXJ0ZXggc2hhZGVyIHN0YWdlIikKIAogICAgIGxl
dCBiYWRFbnRyeVBvaW50RGVzY3JpcHRvciA9IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9k
dWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwgCisgICAgICAg
IG1vZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAgICBlbnRyeVBvaW50OiAiVmVydGV4X01haW4i
IAogICAgIH07CiAgICAgbGV0IGJhZEVudHJ5UG9pbnRQaXBlbGluZURlc2NzcmlwdG9yID0gewot
ICAgICAgICBzdGFnZXM6IFtiYWRFbnRyeVBvaW50RGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURl
c2NyaXB0b3JdLAorICAgICAgICB2ZXJ0ZXhTdGFnZTogYmFkRW50cnlQb2ludERlc2NyaXB0b3Is
IAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAg
ICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFk
UmVuZGVyUGlwZWxpbmUoYmFkRW50cnlQb2ludFBpcGVsaW5lRGVzY3NyaXB0b3IsICJ2ZXJ0ZXgg
c2hhZGVyIGVudHJ5IHBvaW50Iik7Ci0KLSAgICBsZXQgYmFkU3RhZ2VFbnVtRGVzY3JpcHRvciA9
IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQ
VVNoYWRlclN0YWdlLkNPTVBVVEUsIAotICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4i
IAotICAgIH07Ci0gICAgbGV0IGJhZFN0YWdlRW51bVBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAg
ICAgICAgc3RhZ2VzOiBbYmFkU3RhZ2VFbnVtRGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2Ny
aXB0b3JdLAotICAgICAgICBwcmltaXRpdmVUb3BvbG9neTogInRyaWFuZ2xlTGlzdCIKLSAgICB9
Ci0gICAgY2hlY2tCYWRSZW5kZXJQaXBlbGluZShiYWRTdGFnZUVudW1QaXBlbGluZURlc2NyaXB0
b3IsICJXZWJHUFVTaGFkZXJTdGFnZUVudW0iKTsKIH0KIAogcnVuV2ViR1BVVGVzdHMoW3NldFVw
UGlwZWxpbmUsIHNldFVwQmFkUGlwZWxpbmVzXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2lt
cGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5kZXggZDc2ZmZkZGQ5YTU0ZjU3MmYwMjUwZWM3NGQw
ZjYxNzNiNWM1N2Q2Yi4uMzBhYTRmMWMyMTY4ZWIzNjYxYTBjNTQ4ZmQyZGZiNTIyOWQyNTYwYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9zaW1wbGUtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAt
NSw2ICs1LDcgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InNpbXBsZS10cmlhbmdsZS1zdHJp
cC1leHBlY3RlZC5odG1sIj4KIDxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21w
bGV0ZWx5IGdyZWVuLjwvcD4KIDxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2Fu
dmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KIGNvbnN0IHNoYWRlckNvZGUgPSBgCiAjaW5jbHVkZSA8bWV0YWxfc3RkbGliPgpAQCAt
NDEsNTcgKzQyLDYgQEAgZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRl
eEluIFtbc3RhZ2VfaW5dXSkKIH0KIGAKIAotYXN5bmMgZnVuY3Rpb24gZ2V0QmFzaWNEZXZpY2Uo
KSB7Ci0gICAgLy8gRklYTUU6IHJlcXVlc3RBZGFwdGVyIHNob3VsZCB0YWtlIGEgV2ViR1BVQWRh
cHRlckRlc2NyaXB0b3IuCi0gICAgY29uc3QgYWRhcHRlciA9IGF3YWl0IHdpbmRvdy53ZWJncHUu
cmVxdWVzdEFkYXB0ZXIoe30pOwotICAgIGNvbnN0IGRldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2
aWNlKCk7Ci0gICAgcmV0dXJuIGRldmljZTsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQmFzaWNDb250
ZXh0KGNhbnZhcywgZGV2aWNlKSB7Ci0gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250
ZXh0KCJ3ZWJncHUiKTsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFuZCBzcGVjaWZ5IGEgV2Vi
R1BVVGV4dHVyZVVzYWdlRW51bS4KLSAgICBjb250ZXh0LmNvbmZpZ3VyZSh7IGRldmljZTogZGV2
aWNlLCBmb3JtYXQ6IkI4RzhSOEE4VW5vcm0iLCB3aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6
IGNhbnZhcy5oZWlnaHQgfSk7Ci0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxlLCBkZXZpY2UpIHsKLSAgICB2ZXJ0ZXhTdGFn
ZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAg
c3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRFWCwgCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJ2
ZXJ0ZXhfbWFpbiIgCi0gICAgfTsKLQotICAgIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yID0gewot
ICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRl
clN0YWdlLkZSQUdNRU5ULAotICAgICAgICBlbnRyeVBvaW50OiAiZnJhZ21lbnRfbWFpbiIKLSAg
ICB9OwotCi0gICAgcGlwZWxpbmVEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFnZXM6IFt2ZXJ0
ZXhTdGFnZURlc2NyaXB0b3IsIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKLSAgICAgICAgcHJp
bWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZVN0cmlwIgotICAgIH07Ci0KLSAgICByZXR1cm4gZGV2
aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKHBpcGVsaW5lRGVzY3JpcHRvcik7Ci19Ci0KLWZ1bmN0
aW9uIGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRleHQsIGNvbW1hbmRCdWZmZXIpIHsKLSAgICBj
b25zdCBiYXNpY0F0dGFjaG1lbnQgPSB7Ci0gICAgICAgIGF0dGFjaG1lbnQ6IGNvbnRleHQuZ2V0
TmV4dFRleHR1cmUoKS5jcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKSwKLSAgICAgICAgY2xlYXJD
b2xvcjogeyByOiAxLjAsIGc6IDAsIGI6IDAsIGE6IDEuMCB9Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IEZsZXNoIG91dCB0aGUgcmVzdCBvZiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCi0g
ICAgcmV0dXJuIGNvbW1hbmRCdWZmZXIuYmVnaW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50
cyA6IFtiYXNpY0F0dGFjaG1lbnRdIH0pOwotfQotCi1mdW5jdGlvbiBlbmNvZGVCYXNpY0NvbW1h
bmRzKHJlbmRlclBhc3NFbmNvZGVyLCByZW5kZXJQaXBlbGluZSkgewotICAgIHJlbmRlclBhc3NF
bmNvZGVyLnNldFBpcGVsaW5lKHJlbmRlclBpcGVsaW5lKTsKLSAgICByZW5kZXJQYXNzRW5jb2Rl
ci5kcmF3KDQsIDEsIDAsIDApOwotICAgIHJldHVybiByZW5kZXJQYXNzRW5jb2Rlci5lbmRQYXNz
KCk7Ci19Ci0KIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgY29uc3QgZGV2aWNlID0gYXdh
aXQgZ2V0QmFzaWNEZXZpY2UoKTsKICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJjYW52YXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgt
YnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUv
dmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4
NmYxM2U4MTIwMzk3YTVjYzYzMzZjOWUyYTQ4NWU3NzhiYTk5MzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPkhUTUwgUmVmZXJlbmNlIEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBz
cXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0
aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0PgorY29uc3QgY2FudmFzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7Citjb25zdCBjb250ZXh0ID0gY2FudmFz
LmdldENvbnRleHQoJzJkJyk7CisKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDAp
JzsKK2NvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsK
Kzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc0MmI0ODRmNTYyMTIyODNiN2U0MGQ5NThiNjI4MTQ5ODBiYWQ1MzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1s
CkBAIC0wLDAgKzEsOTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdQVSBIZWxsbyBUcmlhbmdsZXM8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJXZWJHUFUgY29ycmVjdGx5IHJlbmRlcnMgYSBncmVlbiBjYW52YXMuIj4K
KzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAtZXhw
ZWN0ZWQuaHRtbCI+Cis8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVs
eSBncmVlbi48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4K
KzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Citjb25zdCBzaGFkZXJDb2RlID0gYAorI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KKyAgICAKK3Vz
aW5nIG5hbWVzcGFjZSBtZXRhbDsKKworc3RydWN0IFZlcnRleAoreworICAgIGZsb2F0NCBwb3Np
dGlvbiBbW3Bvc2l0aW9uXV07Cit9OworCit2ZXJ0ZXggVmVydGV4IHZlcnRleF9tYWluKGNvbnN0
IGRldmljZSBWZXJ0ZXgqIHZlcnRleF9hcnJheSBbW2J1ZmZlcigwKV1dLCB1aW50IHZpZCBbW3Zl
cnRleF9pZF1dKQoreworICAgIHJldHVybiB2ZXJ0ZXhfYXJyYXlbdmlkXTsKK30KKworZnJhZ21l
bnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKK3sK
KyAgICByZXR1cm4gZmxvYXQ0KDAuMCwgMS4wLCAwLjAsIDEuMCk7Cit9CitgCisKK2Z1bmN0aW9u
IGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZpY2UpIHsKKyAgICBjb25zdCBidWZmZXJTaXplID0gNCAq
IDQgKiA0OworICAgIGNvbnN0IGJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoeyBzaXplOiBi
dWZmZXJTaXplLCB1c2FnZTogV2ViR1BVQnVmZmVyVXNhZ2UuTUFQX1dSSVRFIH0pOworICAgIAor
ICAgIGxldCBhcnJheUJ1ZmZlciA9IGJ1ZmZlci5tYXBwaW5nOworICAgIGxldCBmbG9hdEFycmF5
ID0gbmV3IEZsb2F0MzJBcnJheShhcnJheUJ1ZmZlcik7CisKKyAgICBmbG9hdEFycmF5WzBdID0g
LTE7CisgICAgZmxvYXRBcnJheVsxXSA9IDE7CisgICAgZmxvYXRBcnJheVsyXSA9IDA7CisgICAg
ZmxvYXRBcnJheVszXSA9IDE7CisKKyAgICBmbG9hdEFycmF5WzRdID0gLTE7CisgICAgZmxvYXRB
cnJheVs1XSA9IC0xOworICAgIGZsb2F0QXJyYXlbNl0gPSAwOworICAgIGZsb2F0QXJyYXlbN10g
PSAxOworCisgICAgZmxvYXRBcnJheVs4XSA9IDE7CisgICAgZmxvYXRBcnJheVs5XSA9IDE7Cisg
ICAgZmxvYXRBcnJheVsxMF0gPSAwOworICAgIGZsb2F0QXJyYXlbMTFdID0gMTsKKworICAgIGZs
b2F0QXJyYXlbMTJdID0gMTsKKyAgICBmbG9hdEFycmF5WzEzXSA9IC0xOworICAgIGZsb2F0QXJy
YXlbMTRdID0gMDsKKyAgICBmbG9hdEFycmF5WzE1XSA9IDE7CisKKyAgICByZXR1cm4gYnVmZmVy
OworfQorCitmdW5jdGlvbiBjcmVhdGVJbnB1dFN0YXRlRGVzY3JpcHRvcigpIHsKKyAgICByZXR1
cm4geworICAgICAgICBpbmRleEZvcm1hdDogV2ViR1BVSW5kZXhGb3JtYXQuVUlOVDMyLAorICAg
ICAgICBhdHRyaWJ1dGVzOiBbeworICAgICAgICAgICAgc2hhZGVyTG9jYXRpb246IDAsCisgICAg
ICAgICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAgICAgICBvZmZzZXQ6IDAsCisgICAgICAgICAg
ICBmb3JtYXQ6IFdlYkdQVVZlcnRleEZvcm1hdC5GTE9BVF9SMzJfRzMyX0IzMl9BMzIKKyAgICAg
ICAgfV0sCisgICAgICAgIGlucHV0czogW3sKKyAgICAgICAgICAgIHN0cmlkZTogNCAqIDQsCisg
ICAgICAgICAgICBzdGVwTW9kZTogV2ViR1BVSW5wdXRTdGVwTW9kZS5WRVJURVgKKyAgICAgICAg
fV0KKyAgICB9Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNl
ID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWND
b250ZXh0KGNhbnZhcywgZGV2aWNlKTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1N
U0wgc2hhZGVycy4KKyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVy
TW9kdWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsKKyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBj
cmVhdGVWZXJ0ZXhCdWZmZXIoZGV2aWNlKTsKKyAgICBjb25zdCBpbnB1dFN0YXRlRGVzY3JpcHRv
ciA9IGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9yKCk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBj
cmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBpbnB1dFN0YXRlRGVzY3Jp
cHRvcik7CisgICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVm
ZmVyKCk7CisgICAgY29uc3QgcGFzc0VuY29kZXIgPSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250
ZXh0LCBjb21tYW5kQnVmZmVyKTsKKyAgICBjb25zdCBlbmRDb21tYW5kQnVmZmVyID0gZW5jb2Rl
QmFzaWNDb21tYW5kcyhwYXNzRW5jb2RlciwgcGlwZWxpbmUsIHZlcnRleEJ1ZmZlcik7CisgICAg
Y29uc3QgcXVldWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKworICAgIHF1ZXVlLnN1Ym1pdChbZW5k
Q29tbWFuZEJ1ZmZlcl0pOworICAgIGNvbnRleHQucHJlc2VudCgpOworfQorCit0ZXN0KCk7Cis8
L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357164</attachid>
            <date>2018-12-12 13:56:44 -0800</date>
            <delta_ts>2018-12-12 15:37:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181212135644.patch</filename>
            <type>text/plain</type>
            <size>90251</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ4OTRkYjBmOWM1MjM0
MjRiMTJhNzA5NzkzNjgzY2U2NzYxMGI0Yy4uMTIwYmY4N2NlYmQ5ZDdjM2RmMzBiOGY0YzRhNTVl
MTU0Y2JkMDAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBUZXN0OiB3ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1z
dHJpcC5odG1sCisKKyAgICAgICAgQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgdmVydGV4IGJ1ZmZl
cnMgd2l0aCBNZXRhbCBzaGFkaW5nIGxhbmd1YWdlIGluIFdlYkdQVS4gSW4gCisgICAgICAgIFdl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciwgcmVmYWN0b3IgdG8gbWF0Y2ggdXBkYXRlZCBz
aGFkZXIgc3RhZ2Ugc3RydWN0dXJlIGFuZCBhZGQgCisgICAgICAgIFdlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLiBBbHNvIGltcGxlbWVudCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVy
dGV4QnVmZmVycy4KKworICAgICAgICBBZGQgc3ltYm9scyBhbmQgZmlsZXMgZm9yIFdlYkdQVUlu
ZGV4Rm9ybWF0LCBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciwgV2ViR1BVSW5wdXRTdGVwTW9k
ZSwgCisgICAgICAgIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IsIFdlYkdQVVZlcnRl
eEZvcm1hdCwgV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yOgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKworICAgICAgICBBZGQg
YW5kIGltcGxlbWVudCBpbnRlcmZhY2VzIGFuZCBkaWN0aW9uYXJpZXMgZm9yIFdlYkdQVUlucHV0
U3RhdGU6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVUJ1ZmZlcjo6V2ViR1BVQnVmZmVyKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJ1ZmZl
cjo6YnVmZmVyIGNvbnN0KTogQWRkZWQgZ2V0dGVyIGZvciBiYWNraW5nIEdQVUJ1ZmZlci4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGw6IE1vdmluZyBXZWJH
UFVCdWZmZXJVc2FnZSBvdXQgaW50byBpdHMgb3duIElETC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRl
eEZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZv
cm1hdC5pZGw6IEFkZGVkLiAKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0
YXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJ
bnB1dFN0YXRlRGVzY3JpcHRvci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUlucHV0U3RlcE1vZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVSW5wdXRTdGVwTW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9y
LmlkbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUlucHV0U3Rh
dGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVSZW5kZXJQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaDogQWRkZWQuCisKKyAgICAgICAgUmVmYWN0b3IgdG8gc3VwcG9ydCB1cGRhdGVkIHN0cnVj
dHVyZSBvZiBwaXBlbGluZSBkZXNjcmlwdG9yIGluIHNrZXRjaCBJREw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRl
QW5kQ29udmVydFBpcGVsaW5lU3RhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNl
OjpjcmVhdGVSZW5kZXJQaXBlbGluZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGw6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuKjogUmVtb3ZlZC4KKworICAgICAg
ICBBZGQgYW5kIGltcGxlbWVudCBzZXRWZXJ0ZXhCdWZmZXJzOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKTogQWRkZWQuIAorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsOiAKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxp
bmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNldElucHV0U3RhdGVGb3JQaXBlbGluZURl
c2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSk6
CisKIDIwMTgtMTItMTEgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBmZWF0dXJlIGZsYWcgZm9yIENTUyBUeXBlZCBPTQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBjZWZiNjdmZWJmODI5NzQxMzFlZTA3YjMyZTMwYWI4NjQyZGUy
YzVmLi4wYmRkMjljZGUxODA4YzI1ZDVjZThhMTY1NDU1NTg0Nzg2MDY2ZmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNDY0LDYgKzQ2NCw5IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29sb3IuaWRsCiAgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2UuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsCisgICAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmlkbApAQCAtNDc2LDExICs0NzksMTMgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0
LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbAotICAgIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3
YXBDaGFpbi5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmlkbAogICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
Rm9ybWF0LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5pZGwKIAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbAogICAgIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCBiM2Q0YzQ2OTJmZDVkZGZkN2FiNDZiOTBiZDk0YzBkYTE3NWFhNzU1Li5mNmY3ZTM1MTZh
ZTc0NjU4ODJjZmJmMzA1MTI3NTRkOTQzNDYzN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTM4MSw2ICszODEsOSBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb2xvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgXApAQCAtMzkzLDEx
ICszOTYsMTMgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVUZXh0dXJlRm9ybWF0RW51bS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAKaW5kZXggMTQ4ZGFlYTVkMWM5MTk3MmNhMTU4OGYxY2Rk
ZjA3NmM4NTgyN2QyYS4uMzQ5NDFkMGVhNWY3OTI1MWNiNDhkZGViZjc0MTM0M2Y5ZTRiYTcwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwCkBA
IC0zOCw3ICszOCw2IEBAIFJlZlB0cjxXZWJHUFVCdWZmZXI+IFdlYkdQVUJ1ZmZlcjo6Y3JlYXRl
KFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVyKQogV2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIoUmVm
PEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKG1fYnVmZmVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAppbmRleCA2
MzM2ZDU5NTNlY2MxZGU1Zjg0MzljMDU3Mzc1YzFiODhlMTRjZGRlLi5lMjc2NDI1YmQ0MmI1ZDY4
MmZiZTI0MjhhNDAwNmUyM2Y0OTIzODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCdWZmZXIuaApAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBXZWJHUFVCdWZmZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmUHRyPFdlYkdQVUJ1ZmZlcj4gY3JlYXRlKFJlZjxHUFVCdWZmZXI+JiYpOwogCisgICAgY29u
c3QgR1BVQnVmZmVyJiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQor
CiAgICAgSlNDOjpBcnJheUJ1ZmZlciogbWFwcGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVy
LT5tYXBwaW5nKCk7IH0KICAgICB2b2lkIHVubWFwKCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRl
ZCBzdHViLiAqLyB9CiAgICAgdm9pZCBkZXN0cm95KCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRl
ZCBzdHViLiAqLyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggYjMwM2YwOWJiNjhlY2M1ZTBiN2UyNDZlYzc0
OWNhMzA2OGNkNzU0MC4uYzAxZGY5NTA4NGIyMDAxYTEzNzE1ZTA5OGQxZDkwZDc3NDVlNzJlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZl
ckRlc2NyaXB0b3IuaApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IgPSBHUFVCdWZmZXJEZXNjcmlwdG9yOwogdXNpbmcg
V2ViR1BVQnVmZmVyVXNhZ2VGbGFncyA9IEdQVUJ1ZmZlclVzYWdlRmxhZ3M7Ci11c2luZyBXZWJH
UFVCdWZmZXJVc2FnZSA9IEdQVUJ1ZmZlclVzYWdlOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmlu
ZGV4IDdkNmQwZmMzMTBhOGNkZmY5ODVlY2ZlMzc1MDQxNjU2NDNiMGI1OTMuLjc3YmE0Y2JjMDhm
OTZiMWUzMjJjNjlkNDg3ZjcwNTk0MTI4NmM0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUg
IldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgogI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKLSNp
bmNsdWRlICJXZWJHUFVTaGFkZXJTdGFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTcyLDU5ICs3MSwyNSBAQCBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6
OmNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1bGVEZQogICAgIHJldHVybiBtb2R1
bGUgPyBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShtb2R1bGUucmVsZWFzZU5vbk51bGwoKSkg
OiBudWxscHRyOwogfQogCi1SZWZQdHI8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYg
ZGVzY3JpcHRvcikgY29uc3QKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yPiB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0YWdlKGNvbnN0IFdlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmN0aW9uTmFtZSA9ICJXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKCki
OwotI2lmIExPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2Vu
ZGlmCisgICAgaWYgKCFkZXNjcmlwdG9yLm1vZHVsZSB8fCAhZGVzY3JpcHRvci5tb2R1bGUtPm1v
ZHVsZSgpIHx8IGRlc2NyaXB0b3IuZW50cnlQb2ludC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoZGVzY3JpcHRvci5zdGFnZXMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogTm8gc3RhZ2VzIGluIFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9CisgICAgcmV0dXJuIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHsgZGVzY3JpcHRv
ci5tb2R1bGUtPm1vZHVsZSgpLCBkZXNjcmlwdG9yLmVudHJ5UG9pbnQgfTsKK30KIAotICAgIEdQ
VVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOwotICAgIEdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YWdl
RGVzY3JpcHRvciA6IGRlc2NyaXB0b3Iuc3RhZ2VzKSB7Ci0gICAgICAgIGlmICghc3RhZ2VEZXNj
cmlwdG9yLm1vZHVsZSB8fCAhc3RhZ2VEZXNjcmlwdG9yLm1vZHVsZS0+bW9kdWxlKCkgfHwgc3Rh
Z2VEZXNjcmlwdG9yLmVudHJ5UG9pbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBMT0coV2Vi
R1BVLCAiJXM6IEludmFsaWQgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IhIiwgZnVuY3Rp
b25OYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3dpdGNoIChzdGFnZURlc2NyaXB0b3Iuc3RhZ2UpIHsKLSAgICAgICAgY2FzZSBXZWJHUFVT
aGFkZXJTdGFnZTo6VkVSVEVYOgotICAgICAgICAgICAgaWYgKHZlcnRleFN0YWdlLm1vZHVsZSkg
ewotICAgICAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogTXVsdGlwbGUgdmVydGV4IHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgdmVydGV4U3RhZ2UubW9kdWxlID0gc3RhZ2VEZXNjcmlwdG9yLm1vZHVsZS0+bW9kdWxlKCk7
Ci0gICAgICAgICAgICB2ZXJ0ZXhTdGFnZS5lbnRyeVBvaW50ID0gc3RhZ2VEZXNjcmlwdG9yLmVu
dHJ5UG9pbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJHUFVTaGFkZXJT
dGFnZTo6RlJBR01FTlQ6Ci0gICAgICAgICAgICBpZiAoZnJhZ21lbnRTdGFnZS5tb2R1bGUpIHsK
LSAgICAgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE11bHRpcGxlIGZyYWdtZW50IHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnJhZ21lbnRTdGFnZS5tb2R1bGUgPSBzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUo
KTsKLSAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UuZW50cnlQb2ludCA9IHN0YWdlRGVzY3JpcHRv
ci5lbnRyeVBvaW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgc2hhZGVyIHN0YWdlIGluIFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICB9CitSZWZQdHI8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+IFdlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK3sKKyAgICBhdXRvIHZlcnRleFN0YWdl
ID0gdmFsaWRhdGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZShkZXNjcmlwdG9yLnZlcnRleFN0YWdl
KTsKKyAgICBhdXRvIGZyYWdtZW50U3RhZ2UgPSB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0
YWdlKGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZSk7CiAKLSAgICAvLyBNZXRhbCAoaWYgbm90IG90
aGVyIEFQSXMpIHJlcXVpcmVzIGF0IGxlYXN0IHRoZSB2ZXJ0ZXggc2hhZGVyLgotICAgIGlmICgh
dmVydGV4U3RhZ2UubW9kdWxlIHx8IHZlcnRleFN0YWdlLmVudHJ5UG9pbnQuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCB2ZXJ0ZXggc3RhZ2UgaW4gV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgaWYgKCF2ZXJ0
ZXhTdGFnZSB8fCAhZnJhZ21lbnRTdGFnZSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BV
RGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSgpOiBJbnZhbGlkIFdlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yISIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBh
dXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPmNyZWF0ZVJlbmRlclBpcGVsaW5lKEdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciB7IFdURk1vdmUodmVydGV4U3RhZ2UpLCBXVEZNb3ZlKGZyYWdtZW50
U3RhZ2UpLCBkZXNjcmlwdG9yLnByaW1pdGl2ZVRvcG9sb2d5IH0pOworICAgIGF1dG8gcGlwZWxp
bmUgPSBtX2RldmljZS0+Y3JlYXRlUmVuZGVyUGlwZWxpbmUoR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yIHsgV1RGTW92ZSgqdmVydGV4U3RhZ2UpLCBXVEZNb3ZlKCpmcmFnbWVudFN0YWdlKSwg
ZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9neSwgZGVzY3JpcHRvci5pbnB1dFN0YXRlIH0pOwog
ICAgIHJldHVybiBwaXBlbGluZSA/IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUocGlwZWxp
bmUucmVsZWFzZU5vbk51bGwoKSkgOiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDQwMzU4
NGI1YmU0NzFkYTYxMjhmMmUxNjA0ZGI5YjYwNWZlM2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBXZWJHUFVJbmRleEZvcm1hdCA9IEdQVUluZGV4Rm9ybWF0OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUyNTZiNGU1NDczMmY3ZDM1YjdiMzYyNDZmNDRlNzQ3MTU3YzkyNzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1h
dC5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20v
Z3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0eXBlZGVm
IHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIERv
Tm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVSW5kZXhGb3JtYXQgewor
ICAgIGNvbnN0IHUzMiBVSU5UMTYgPSAwOworICAgIGNvbnN0IHUzMiBVSU5UMzIgPSAxOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3Rh
dGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1OTMwNmI5NzgyYmJjYmYyMmUxMmFlOWUx
M2VjMjgwMDRlNDM3YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRl
ICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEF0dHJp
YnV0ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVJbmRleEZvcm1hdEVudW0g
PSBHUFVJbmRleEZvcm1hdEVudW07Cit1c2luZyBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciA9
IEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5OTQyNDEyODQ4YzFhZWJlYjlhMGZjYmU3YTYxNTllNTFjNjg4MDQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3Jp
cHRvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BVSW5kZXhGb3JtYXRFbnVt
OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
R1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgeworICAgIFdlYkdQ
VUluZGV4Rm9ybWF0RW51bSBpbmRleEZvcm1hdDsKKworICAgIHNlcXVlbmNlPFdlYkdQVVZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3I+IGF0dHJpYnV0ZXM7CisgICAgc2VxdWVuY2U8V2ViR1BVVmVy
dGV4SW5wdXREZXNjcmlwdG9yPiBpbnB1dHM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkM2QzNDJj
MzQwM2VmYzlhZTg3YWYwY2E5ZWJkZDk2Y2I4Y2M1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmgKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIFdlYkdQVUlucHV0U3RlcE1vZGUgPSBHUFVJbnB1dFN0ZXBNb2RlOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2Rl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMDBiMjNlOTBjNTBlMmNkNmIzMTA4ZjEzOWQzYTVmZDYzODgwYTRk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
SW5wdXRTdGVwTW9kZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczov
L2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlk
bAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VC
R1BVLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJH
UFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVSW5w
dXRTdGVwTW9kZSB7CisgICAgY29uc3QgdTMyIFZFUlRFWCA9IDA7CisgICAgY29uc3QgdTMyIElO
U1RBTkNFID0gMTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKaW5kZXggMzEyMWE5YmE1Njgz
NzQwMTQzY2VjMzA1OTA4MmJjODJjYTU0MTU5Mi4uNTJjMmY5YWMwZmI5MWM0MDc0NzlkZmVmZTNl
OGUwOWMyMDMxMWEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMjcsMTMgKzI3LDEw
IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewotICAgIFZlY3Rv
cjxXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gc3RhZ2VzOworICAgIC8vIFdlYkdQVVBp
cGVsaW5lTGF5b3V0IGxheW91dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5pZGwKaW5kZXggMzNmN2E3NjYxN2FiMTk1OWYyMDcxODg2OWI1OTdl
N2Y1YzJlNDkyOC4uZWIxMzViNTU3NDZlNDYxNjRlYzZkNzg3MGQxMTljOWEzMjc1ZjExMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwKQEAgLTI5LDUgKzI5LDQgQEAKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJh
c2UgewogICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGxheW91dDsKLSAgICBzZXF1ZW5jZTxX
ZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gc3RhZ2VzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVz
Y3JpcHRvci5oCmluZGV4IDMzZjNhZTA5NTY1MDBkNGY3YjM3YzVlNTA3ZDA4N2FkZjBhZGExNjYu
LjQ1YTg3YmQ2Y2U1NWU3N2FjODJhOTM4NzRjNTJhYzk2MmI1NjMxYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaApAQCAtMzMsMTEgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci11c2luZyBXZWJHUFVTaGFkZXJTdGFnZUVudW0gPSB1bnNpZ25lZCBsb25nOwotCiBzdHJ1Y3Qg
V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgewogICAgIGNvbnN0IFdlYkdQVVNoYWRlck1v
ZHVsZSogbW9kdWxlID0gbnVsbHB0cjsKLSAgICBXZWJHUFVTaGFkZXJTdGFnZUVudW0gc3RhZ2U7
CiAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5p
ZGwKaW5kZXggMGQ2YjA4ODE3ZDkyZGE3YmNjZDAyOGFjN2ZlM2VjYzExMjIzNTliNC4uZWVkYWYw
ODE2ZjU0NDgxZDM3ZDgzYzY3NDY5MmMyOWI2ZjdlYzc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yLmlkbApAQCAtMzEsNiArMzEsNSBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgV2ViR1BV
U2hhZGVyU3RhZ2VFbnVtOwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25h
cnkgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgewogICAgIFdlYkdQVVNoYWRlck1vZHVs
ZSBtb2R1bGU7Ci0gICAgV2ViR1BVU2hhZGVyU3RhZ2VFbnVtIHN0YWdlOwogICAgIERPTVN0cmlu
ZyBlbnRyeVBvaW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAppbmRleCAxMmU2OTAzZjk5OWJjMzA2
MzFhNzkwZTdhZGI1MTU2ZjAwYWY1MjI5Li44M2RhMDcwZTlmYjM0MDI3YTE4YjgwMDI5M2UxMzJh
YTNhNzQwMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBh
c3NFbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDYgKzQ2LDIxIEBAIFdlYkdQVVJl
bmRlclBhc3NFbmNvZGVyOjpXZWJHUFVSZW5kZXJQYXNzRW5jb2RlcihSZWY8V2ViR1BVQ29tbWFu
ZEJ1ZmZlcj4mJiBjcmVhCiB7CiB9CiAKK3ZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcnModW5zaWduZWQgbG9uZyBzdGFydFNsb3QsIFZlY3RvcjxSZWZQdHI8V2Vi
R1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8dW5zaWduZWQ+JiYgb2Zmc2V0cykKK3sKKyAg
ICBpZiAoYnVmZmVycy5pc0VtcHR5KCkgfHwgb2Zmc2V0cy5pc0VtcHR5KCkgfHwgYnVmZmVycy5z
aXplKCkgIT0gb2Zmc2V0cy5zaXplKCkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIldlYkdQVVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzOiBJbnZhbGlkIG51bWJlciBvZiBidWZm
ZXJzIG9yIG9mZnNldHMhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGdw
dUJ1ZmZlcnMgPSBidWZmZXJzLm1hcChbXSAoY29uc3QgYXV0byYgYnVmZmVyKSAtPiBSZWY8Y29u
c3QgR1BVQnVmZmVyPiB7CisgICAgICAgIHJldHVybiBidWZmZXItPmJ1ZmZlcigpOworICAgIH0p
OworCisgICAgLy8gRklYTUU6IFVzZSBzdGFydFNsb3QgcHJvcGVybHkuCisgICAgbV9wYXNzRW5j
b2Rlci0+c2V0VmVydGV4QnVmZmVycyhzdGFydFNsb3QsIFdURk1vdmUoZ3B1QnVmZmVycyksIFdU
Rk1vdmUob2Zmc2V0cykpOworfQorCiB2b2lkIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3
KHVuc2lnbmVkIGxvbmcgdmVydGV4Q291bnQsIHVuc2lnbmVkIGxvbmcgaW5zdGFuY2VDb3VudCwg
dW5zaWduZWQgbG9uZyBmaXJzdFZlcnRleCwgdW5zaWduZWQgbG9uZyBmaXJzdEluc3RhbmNlKQog
ewogICAgIC8vIEZJWE1FOiBXaGF0IGtpbmQgb2YgdmFsaWRhdGlvbiBkbyB3ZSBuZWVkIHRvIGhh
bmRsZSBoZXJlPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmgKaW5kZXggYzM4YzlmZGNlOTlkNDA2ZDA5YzhiNDdhNTQx
OWQ2MTg4NWM4Mjk0MS4uMzEyOTZlM2U5ZTgyOGUxMDQyMTBlZDQwNTk3OGUyZTJmMzFmYzA3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFz
c0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlci5oCkBAIC0zMCwxNiArMzAsMjAgQEAKICNpbmNsdWRlICJXZWJHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2Rlci5oIgogCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVQcm9n
cmFtbWFibGVQYXNzRW5jb2RlcjsKIGNsYXNzIEdQVVJlbmRlclBhc3NFbmNvZGVyOworY2xhc3Mg
V2ViR1BVQnVmZmVyOwogCiBjbGFzcyBXZWJHUFVSZW5kZXJQYXNzRW5jb2RlciBmaW5hbCA6IHB1
YmxpYyBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcj4gY3JlYXRlKFJlZjxXZWJHUFVDb21tYW5k
QnVmZmVyPiYmLCBSZWY8R1BVUmVuZGVyUGFzc0VuY29kZXI+JiYpOwogCisgICAgLy8gRklYTUU6
IExhc3QgYXJndW1lbnQgc2hvdWxkIGJlIFZlY3Rvcjx1bnNpZ25lZCBsb25nPi4gV2h5IGlzIHRo
ZSBnZW5lcmF0ZWQgY29kZSBpbmNvcnJlY3RseSBhc3N1bWluZyB0aGUgSURMIHdhbnRzIGEgc2Vx
dWVuY2U8dW5zaWduZWQgaW50Pj8KKyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcnModW5zaWduZWQg
bG9uZywgVmVjdG9yPFJlZlB0cjxXZWJHUFVCdWZmZXI+PiYmLCBWZWN0b3I8dW5zaWduZWQ+JiYp
OwogICAgIHZvaWQgZHJhdyh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBs
b25nLCB1bnNpZ25lZCBsb25nKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbAppbmRleCA4
NjhmNjhmYzRhZDFmZTg4YWU0ZGRkN2M3ZTZkZDVmNGU5NjJjNTg2Li5kMTYyZWM1MjhlZGJlMWQ2
ODA1NDQ2YmVhOTRmYWJhNjIwOTFlOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsCkBAIC0zMSwxMiAr
MzEsMTMgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKICAgICBFbmFibGVkQXRSdW50aW1l
PVdlYkdQVSwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgV2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXIgOiBXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB7CisgICAgdm9p
ZCBzZXRWZXJ0ZXhCdWZmZXJzKHUzMiBzdGFydFNsb3QsIHNlcXVlbmNlPFdlYkdQVUJ1ZmZlcj4g
YnVmZmVycywgc2VxdWVuY2U8dTMyPiBvZmZzZXRzKTsKKwogICAgIHZvaWQgZHJhdyh1MzIgdmVy
dGV4Q291bnQsIHUzMiBpbnN0YW5jZUNvdW50LCB1MzIgZmlyc3RWZXJ0ZXgsIHUzMiBmaXJzdElu
c3RhbmNlKTsKIAogLyogTm90IFlldCBJbXBsZW1lbnRlZAogICAgIHZvaWQgc2V0QmxlbmRDb2xv
cihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKTsKICAgICB2b2lkIHNldEluZGV4
QnVmZmVyKFdlYkdQVUJ1ZmZlciBidWZmZXIsIHUzMiBvZmZzZXQpOwotICAgIHZvaWQgc2V0VmVy
dGV4QnVmZmVycyh1MzIgc3RhcnRTbG90LCBzZXF1ZW5jZTxXZWJHUFVCdWZmZXI+IGJ1ZmZlcnMs
IHNlcXVlbmNlPHUzMj4gb2Zmc2V0cyk7CiAKICAgICB2b2lkIGRyYXdJbmRleGVkKHUzMiBpbmRl
eENvdW50LCB1MzIgaW5zdGFuY2VDb3VudCwgdTMyIGZpcnN0SW5kZXgsIGkzMiBiYXNlVmVydGV4
LCB1MzIgZmlyc3RJbnN0YW5jZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXgg
OWMyNjQ2MzkwODQ2ZGRhODI5ZWZjYzI4OTEzNjhkY2E4OTk0MDcyYi4uYzEyZjc1OGE3YmZjZTg5
YWFhMTRjNjFkMjA1Y2VmOTNmZDlhMDM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgK
QEAgLTI4LDE0ICsyOCwxOSBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVJbnB1dFN0YXRlRGVz
Y3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCIKKyNp
bmNsdWRlICJXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBXZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlIHsKICAgICB1c2luZyBQcmltaXRpdmVUb3BvbG9neSA9IEdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcjo6UHJpbWl0aXZlVG9wb2xvZ3k7CiAKKyAgICBXZWJH
UFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZTsKKyAgICBXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvciBmcmFnbWVudFN0YWdlOwogICAgIFByaW1pdGl2ZVRvcG9sb2d5IHBy
aW1pdGl2ZVRvcG9sb2d5OworICAgIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIGlucHV0U3Rh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLmlkbAppbmRleCA3ZmE1NDQ3NDNkZjI2OWYyY2MzOGI4NDFmMjhhNTdhMjM1MGExNTk0Li5m
ZGRiNjI4ZGZhNDBiOTA1MmY3OTg5MjE4NTYwODAyNGVlMzkwOTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvci5pZGwKQEAgLTM2LDExICszNiwxNSBAQCBlbnVtIFdlYkdQVVByaW1pdGl2
ZVRvcG9sb2d5IHsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHUFUKIF0gZGljdGlvbmFyeSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlIHsKKyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVz
Y3JpcHRvciB2ZXJ0ZXhTdGFnZTsKKyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBm
cmFnbWVudFN0YWdlOworCiAgICAgV2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kgcHJpbWl0aXZlVG9w
b2xvZ3k7Ci0gICAgLyogVG8gQmUgSW1wbGVtZW50ZWQ6Ci0gICAgc2VxdWVuY2U8V2ViR1BVQmxl
bmRTdGF0ZT4gYmxlbmRTdGF0ZXM7Ci0gICAgV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUgZGVwdGhT
dGVuY2lsU3RhdGU7Ci0gICAgV2ViR1BVSW5wdXRTdGF0ZSBpbnB1dFN0YXRlOwotICAgIFdlYkdQ
VUF0dGFjaG1lbnRzU3RhdGUgYXR0YWNobWVudHNTdGF0ZTsgKi8KKyAgICBXZWJHUFVJbnB1dFN0
YXRlRGVzY3JpcHRvciBpbnB1dFN0YXRlOworLyogVG8gQmUgSW1wbGVtZW50ZWQ6CisgICAgc2Vx
dWVuY2U8V2ViR1BVQmxlbmRTdGF0ZURlc2NyaXB0b3I+IGJsZW5kU3RhdGVzOworICAgIFdlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciBkZXB0aFN0ZW5jaWxTdGF0ZTsKKyAgICBXZWJH
UFVBdHRhY2htZW50c1N0YXRlRGVzY3JpcHRvciBhdHRhY2htZW50c1N0YXRlOwogICAgIC8vIFRP
RE8gb3RoZXIgcHJvcGVydGllcworKi8KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmE1MTMwYzJmMTc0MDg2M2RjYmZmNTFlMTYzZGVkN2UyYzliMjZhMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQkdQVSkKLQotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
V2ViR1BVU2hhZGVyU3RhZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVTaGFkZXJTdGFnZT4g
ewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIFZFUlRFWCA9IDA7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgRlJBR01FTlQgPSAxOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBsb25nIENPTVBVVEUgPSAyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2EzN2EzNzQxMmQ0OTMwMWJiZjU3ODE3ZTg1NmM5NmQwNjM0Y2U2Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5pZGwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1
d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCi0KLXR5cGVkZWYgdW5zaWduZWQg
bG9uZyB1MzI7Ci0KLVsKLSAgICBDb25kaXRpb25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2Ug
V2ViR1BVU2hhZGVyU3RhZ2UgewotICAgIGNvbnN0IHUzMiBWRVJURVggPSAwOwotICAgIGNvbnN0
IHUzMiBGUkFHTUVOVCA9IDE7Ci0gICAgY29uc3QgdTMyIENPTVBVVEUgPSAyOwotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0
ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmQ4MWE4OTgzMzJkM2MyNGJhYzcw
Mjk3Y2M0MTliZjc2ZWUxY2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisK
KyNpbmNsdWRlICJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciA9IEdQVVZl
cnRleEF0dHJpYnV0ZURlc2NyaXB0b3I7Cit1c2luZyBXZWJHUFVWZXJ0ZXhGb3JtYXRFbnVtID0g
R1BVVmVydGV4Rm9ybWF0RW51bTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODk2YWVhMzM2N2MxNzY4YjhlYmQ5YjYzM2ViZmQ0OGFiZTA3M2FiYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJp
YnV0ZURlc2NyaXB0b3IuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6
Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJp
ZGwKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMyIFdlYkdQVVZlcnRl
eEZvcm1hdEVudW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHUFUKK10gZGljdGlvbmFyeSBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlw
dG9yIHsKKyAgICB1MzIgc2hhZGVyTG9jYXRpb247CisgICAgdTMyIGlucHV0U2xvdDsKKyAgICB1
MzIgb2Zmc2V0OworICAgIFdlYkdQVVZlcnRleEZvcm1hdEVudW0gZm9ybWF0OworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDA3ODZkNTFmZThmYmJiY2E0OWQ0M2IzYjJkN2Q3YjA3OWNjMDUxZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZv
cm1hdC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9y
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2ViR1BVVmVydGV4Rm9ybWF0ID0g
R1BVVmVydGV4Rm9ybWF0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVVmVydGV4Rm9ybWF0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVZlcnRleEZvcm1hdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNmZWY0MWFmMDMzNWNmMTZhMjQ2YmMw
ZTJlOWYzOWMyOThiYzg3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNp
Z24vc2tldGNoLndlYmlkbAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAg
Q29uZGl0aW9uYWw9V0VCR1BVLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRl
cmZhY2UgV2ViR1BVVmVydGV4Rm9ybWF0IHsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyX0czMl9C
MzJfQTMyID0gMDsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyX0czMl9CMzIgPSAxOworICAgIGNv
bnN0IHUzMiBGTE9BVF9SMzJfRzMyID0gMjsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyID0gMzsK
KyAgICAvLyBUT0RPIG90aGVyIHZlcnRleCBmb3JtYXRzCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NmVkMzc1NzMzZjZiMWFmN2Q2M2Y5MjMwOTE2OWJhNGFkOGM5YjkxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4SW5wdXREZXNjcmlwdG9yLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleElucHV0
RGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUlucHV0
U3RlcE1vZGVFbnVtID0gR1BVSW5wdXRTdGVwTW9kZUVudW07Cit1c2luZyBXZWJHUFVWZXJ0ZXhJ
bnB1dERlc2NyaXB0b3IgPSBHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3I7CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlw
dG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMDdlMzE1MzA0OWUzNDU5NWQxODg3ZDY4ODg2Zjk4Njg0ZDk4
MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
Ky8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9z
a2V0Y2gud2ViaWRsCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0eXBlZGVmIHUzMiBX
ZWJHUFVJbnB1dFN0ZXBNb2RlRW51bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVVZlcnRleElucHV0
RGVzY3JpcHRvciB7CisgICAgdTMyIHN0cmlkZTsKKyAgICBXZWJHUFVJbnB1dFN0ZXBNb2RlRW51
bSBzdGVwTW9kZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDkzNzNhMjU2ZWYxMTIxY2M0MmNkMDFi
MDc4YWNlYjAwNGRkODE0NTIuLmI0YmRiMjViNTE3MDY4NzQ0MGJhNjYzZjA2YTA5YmVjNDAxZTBl
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMjI4LDYgKzMyMjgsOSBAQCBKU1dlYkdQVUJ1ZmZlclVz
YWdlLmNwcAogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogSlNXZWJHUFVDb2xvci5jcHAKIEpT
V2ViR1BVRGV2aWNlLmNwcAorSlNXZWJHUFVJbmRleEZvcm1hdC5jcHAKK0pTV2ViR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuY3BwCitKU1dlYkdQVUlucHV0U3RlcE1vZGUuY3BwCiBKU1dlYkdQVVF1
ZXVlLmNwcAogSlNXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcAogSlNXZWJHUFVQaXBl
bGluZVN0YWdlRGVzY3JpcHRvci5jcHAKQEAgLTMyNDAsMTEgKzMyNDMsMTMgQEAgSlNXZWJHUFVS
ZW5kZXJQaXBlbGluZS5jcHAKIEpTV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAog
SlNXZWJHUFVTaGFkZXJNb2R1bGUuY3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3Iu
Y3BwCi1KU1dlYkdQVVNoYWRlclN0YWdlLmNwcAogSlNXZWJHUFVTd2FwQ2hhaW4uY3BwCiBKU1dl
YkdQVVRleHR1cmUuY3BwCiBKU1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmNwcAogSlNXZWJHUFVU
ZXh0dXJlVmlldy5jcHAKK0pTV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5jcHAKK0pT
V2ViR1BVVmVydGV4Rm9ybWF0LmNwcAorSlNXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuY3Bw
CiBKU1dlYk1ldGFsQnVmZmVyLmNwcAogSlNXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3BwCiBKU1dl
Yk1ldGFsQ29tbWFuZFF1ZXVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRiY2I0YTdlZTJlNjdjZjBjM2JmY2E5NThkMzVj
OGIxZTRmNjAxNTAuLmVjZTk5YjZkNzlmYWE4Y2NkZWE2MDcwZjcwYjU1ZGQ5NDY2ZmFmOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEzNzk4LDggKzEzNzk4LDE0IEBACiAJCUQwNjE1RkNDMjE3RkU1QzYwMDhBNDhBOCAvKiBX
ZWJHUFVTaGFkZXJNb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNjE1RkNEMjE3RkU1QzYwMDhBNDhBOCAv
KiBXZWJHUFVTaGFkZXJNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2hhZGVy
TW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0UyMTdGRTVD
NjAwOEE0OEE4IC8qIFdlYkdQVVNoYWRlck1vZHVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyTW9k
dWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEMyMUMwN0FCNTAw
MEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwNjNBRTRFMjFDMDgxMEEwMDBFNkEz
NSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2Fn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUUzRjIxQzA1REREMDAwRTZB
MzUgLyogV2ViR1BVQnVmZmVyVXNhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQnVmZmVyVXNh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDAyMUMwNURERDAwMEU2
QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ0MjFDMDYxN0QwMDBFNkEzNSAv
KiBXZWJHUFVWZXJ0ZXhGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4Rm9ybWF0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEz
NSAvKiBXZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleEZvcm1hdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwNjNBRTQ2MjFDMDY2MjYwMDBFNkEzNSAv
KiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDcyMUMwNjYyNjAwMEU2
QTM1IC8qIFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1vZGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDYzQUU0ODIxQzA2NkRCMDAwRTZB
MzUgLyogV2ViR1BVSW5kZXhGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5kZXhGb3Jt
YXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2
QTM1IC8qIFdlYkdQVUluZGV4Rm9ybWF0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVJbmRleEZvcm1hdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAv
KiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW92ZUZvcm1hdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2
QzBEOEUwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwN0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJ
bnNlcnRMaXN0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5zZXJ0TGlzdENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTM4MzAsOCArMTM4MzYsNiBAQAogCQlEMEJENEY1QjE0MDg4NTBGMDA2ODM5QjYgLyogRGljdGF0
aW9uQ29tbWFuZElPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRp
b25Db21tYW5kSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVCMjE4
M0NGQTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMEM0MTlFQzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVT
dGFnZURlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDBDNDE5RUUyMTgzRDlDODAwOUVDMURF
IC8qIFdlYkdQVVNoYWRlclN0YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNoYWRlclN0YWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFE
RSAvKiBXZWJHUFVTaGFkZXJTdGFnZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyU3RhZ2UuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyog
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQx
OUYxMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDBDNDE5RjIyMTgzRUZFQzAwOUVDMURFIC8qIFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzODUzLDYgKzEzODU3LDE1
IEBACiAJCUQwRDg2NDhFMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkdQVUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRDg2NDkx
MjFCNzYwQzQwMDNDOTgzQyAvKiBHUFVCdWZmZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEdQVUJ1ZmZlck1ldGFsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEQ4
NjQ5MjIxQjc2MEYyMDAzQzk4M0MgLyogR1BVQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJ1
ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5MzIxQkExNzNEMDAz
Qzk4M0MgLyogV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
R1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDBEODY0OTQyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwRDg2NDk1MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhBdHRy
aWJ1dGVEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTYyMUJBMThG
NDAwM0M5ODNDIC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEMEQ4NjQ5NzIxQkExOUE3MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4M0MgLyog
V2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5OTIxQkEx
QjFGMDAzQzk4M0MgLyogR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDBEODY0OUIyMUJBMUMyRDAwM0M5ODNDIC8qIEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5QzIxQkExQ0U4MDAzQzk4M0MgLyogR1BVVmVy
dGV4SW5wdXREZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMERBMEJFNDIxNzkzMEUyMDA3
RkUyQUMgLyogV2ViR1BVU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFp
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMERBMEJFNTIxNzkzMEUyMDA3RkUy
QUMgLyogV2ViR1BVU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN3YXBD
aGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU2MjE3OTMwRTIw
MDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAyNCw2ICsxODAzNyw3IEBACiAJCQkJ
MzEyRkY4QkQyMUE0QzJGMTAwRUIxOTlEIC8qIEdQVUNvbW1hbmRCdWZmZXIuaCAqLywKIAkJCQkz
MTJGRjhCRjIxQTRDMkYxMDBFQjE5OUQgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTJGRjhC
RTIxQTRDMkYxMDBFQjE5OUQgLyogR1BVRGV2aWNlLmggKi8sCisJCQkJRDBEODY0OTkyMUJBMUIx
RjAwM0M5ODNDIC8qIEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzEyRkY4QzQy
MUE0QzJGNDAwRUIxOTlEIC8qIEdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkz
MTJGRjhDMjIxQTRDMkYzMDBFQjE5OUQgLyogR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAq
LywKIAkJCQlEMDMyMTFDRjIxQUM5NTRFMDA3NjNDRjIgLyogR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXIuaCAqLywKQEAgLTE4MDM4LDYgKzE4MDUyLDggQEAKIAkJCQkzMTJGRjhCQTIxQTRDMkVG
MDBFQjE5OUQgLyogR1BVU3dhcENoYWluLmggKi8sCiAJCQkJMzEyRkY4QzUyMUE0QzJGNDAwRUIx
OTlEIC8qIEdQVVRleHR1cmUuaCAqLywKIAkJCQkzMTJGRjhDMzIxQTRDMkYzMDBFQjE5OUQgLyog
R1BVVGV4dHVyZUZvcm1hdEVudW0uaCAqLywKKwkJCQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0Mg
LyogR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDlDMjFCQTFD
RTgwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKIAkJCQk0OTg3NzBE
NzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgKi8sCiAJCQkJNDk4NzcwRDgxMjQyQzUz
NTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLywKIAkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEg
LyogVGlsaW5nRGF0YS5jcHAgKi8sCkBAIC0yNTUxNSw2ICsyNTUzMSwxMCBAQAogCQkJCUQwRDg2
NDhFMjFCNzA2NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovLAogCQkJCUQwRDg2NDgy
MjFCNjE3MjcwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDBE
ODY0ODMyMUI2MTcyNzAwM0M5ODNDIC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsICovLAor
CQkJCUQwNjNBRTRFMjFDMDgxMEEwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAor
CQkJCUQwNjNBRTNGMjFDMDVEREQwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAor
CQkJCUQwNjNBRTRDMjFDMDdBQjUwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8s
CisJCQkJRDA2M0FFNDAyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAq
LywKIAkJCQlEMDAxRDlBQzIxQjBDODFBMDAyM0I5QkMgLyogV2ViR1BVQ29sb3IuaCAqLywKIAkJ
CQlEMDAxRDlBRDIxQjBDODFBMDAyM0I5QkMgLyogV2ViR1BVQ29sb3IuaWRsICovLAogCQkJCUQw
RUFDRjc3MjE5MzcyMjgwMDBGQTc1QyAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCAqLywKQEAg
LTI1NTIzLDYgKzI1NTQzLDEyIEBACiAJCQkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdl
YkdQVURldmljZS5jcHAgKi8sCiAJCQkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQ
VURldmljZS5oICovLAogCQkJCUQwMEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZp
Y2UuaWRsICovLAorCQkJCUQwNjNBRTQ4MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZv
cm1hdC5oICovLAorCQkJCUQwNjNBRTQ5MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZv
cm1hdC5pZGwgKi8sCisJCQkJRDBEODY0OTMyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRDBEODY0OTQyMUJBMTczRDAwM0M5ODNDIC8qIFdl
YkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NjIxQzA2NjI2MDAw
RTZBMzUgLyogV2ViR1BVSW5wdXRTdGVwTW9kZS5oICovLAorCQkJCUQwNjNBRTQ3MjFDMDY2MjYw
MDBFNkEzNSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2RlLmlkbCAqLywKIAkJCQlEMEM0MTlGMDIxODNF
QjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQw
QzQxOUYxMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlk
bCAqLywKIAkJCQlEMEM0MTlFQjIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaCAqLywKQEAgLTI1NTUzLDggKzI1NTc5LDYgQEAKIAkJCQlEMDYxNUZDRTIx
N0ZFNUM2MDA4QTQ4QTggLyogV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCAqLywKIAkJCQlEMDYwRDg4
NzIxODI2OTcwMDAzMzkzMTggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oICovLAog
CQkJCUQwNjBEODg0MjE4MjVENUYwMDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yLmlkbCAqLywKLQkJCQlEMEM0MTlFRTIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVy
U3RhZ2UuaCAqLywKLQkJCQlEMEM0MTlFRjIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVy
U3RhZ2UuaWRsICovLAogCQkJCUQwREEwQkU1MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uY3BwICovLAogCQkJCUQwREEwQkU0MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uaCAqLywKIAkJCQlEMERBMEJFNjIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENo
YWluLmlkbCAqLywKQEAgLTI1NTY2LDggKzI1NTkwLDEyIEBACiAJCQkJRDBFQUNGODgyMTkzRUU0
RTAwMEZBNzVDIC8qIFdlYkdQVVRleHR1cmVWaWV3LmNwcCAqLywKIAkJCQlEMEVBQ0Y4NzIxOTNF
RTRFMDAwRkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaCAqLywKIAkJCQlEMEVBQ0Y4OTIxOTNF
RTRFMDAwRkE3NUMgLyogV2ViR1BVVGV4dHVyZVZpZXcuaWRsICovLAotCQkJCUQwNjNBRTRDMjFD
MDdBQjUwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8sCi0JCQkJRDA2M0FFNEUy
MUMwODEwQTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmggKi8sCisJCQkJRDBEODY0OTUy
MUJBMThGNDAwM0M5ODNDIC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLywK
KwkJCQlEMEQ4NjQ5NjIxQkExOEY0MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVz
Y3JpcHRvci5pZGwgKi8sCisJCQkJRDA2M0FFNDQyMUMwNjE3RDAwMEU2QTM1IC8qIFdlYkdQVVZl
cnRleEZvcm1hdC5oICovLAorCQkJCUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJHUFVW
ZXJ0ZXhGb3JtYXQuaWRsICovLAorCQkJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJH
UFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4
M0MgLyogV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gd2ViZ3B1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBkMjU2ODI3ZWI4ZGZj
Yzg3ZjMxZjA2NDRiNDg4YWNjNDI0YjQ3YWNkLi5lMGIzOTdmM2RkZDY0M2U3ZTRlMTNmYzk4NTNl
NWUwMWQxYjFmY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oCkBAIC0xOTMsMTYgKzE5MywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oV2ViR1BVQnVmZmVyVXNhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVDb21tYW5k
QnVmZmVyKSBcCiAgICAgbWFjcm8oV2ViR1BVRGV2aWNlKSBcCisgICAgbWFjcm8oV2ViR1BVSW5k
ZXhGb3JtYXQpIFwKKyAgICBtYWNybyhXZWJHUFVJbnB1dFN0ZXBNb2RlKSBcCiAgICAgbWFjcm8o
V2ViR1BVUXVldWUpIFwKICAgICBtYWNybyhXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlcikg
XAogICAgIG1hY3JvKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHUFVS
ZW5kZXJQYXNzRW5jb2RlcikgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBcCi0g
ICAgbWFjcm8oV2ViR1BVU2hhZGVyU3RhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVTaGFkZXJNb2R1
bGUpIFwKICAgICBtYWNybyhXZWJHUFVTd2FwQ2hhaW4pIFwKICAgICBtYWNybyhXZWJHUFVUZXh0
dXJlKSBcCiAgICAgbWFjcm8oV2ViR1BVVGV4dHVyZVZpZXcpIFwKKyAgICBtYWNybyhXZWJHUFVW
ZXJ0ZXhGb3JtYXQpIFwKICAgICBtYWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdl
Yk1ldGFsQ29tbWFuZEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhNzg0NzczY2E1ODU4NDJl
YzVkZDljZjBjNWQ2ODVmNDExMDVhNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSAiR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUg
IkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgR1BVSW5kZXhGb3JtYXRFbnVtID0gdW5zaWduZWQgbG9uZzsKKworY2xhc3MgR1BVSW5kZXhG
b3JtYXQgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVJbmRleEZvcm1hdD4geworcHVibGljOgorICAg
IGVudW0gRW51bSA6IEdQVUluZGV4Rm9ybWF0RW51bSB7CisgICAgICAgIFVpbnQxNiA9IDAsCisg
ICAgICAgIFVpbnQzMiA9IDEKKyAgICB9OworfTsKKworc3RydWN0IEdQVUlucHV0U3RhdGVEZXNj
cmlwdG9yIHsKKyAgICBHUFVJbmRleEZvcm1hdEVudW0gaW5kZXhGb3JtYXQ7CisKKyAgICBWZWN0
b3I8R1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBWZWN0b3I8
R1BVVmVydGV4SW5wdXREZXNjcmlwdG9yPiBpbnB1dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaApp
bmRleCAzYjY0ZDA0NGNhNWU5YzFhYmRhMGFkZTI3NGZiMjFiY2I5ZjAwNDM1Li5jOTA3MWNiZjYx
ZjVhM2MyYWFlYWVkYjliZmMxMGNiMTY0MzBmNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaApA
QCAtMzIsMTEgKzMyLDEzIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogT0JKQ19QUk9UT0NPTChNVExSZW5kZXJDb21tYW5kRW5jb2Rlcik7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFu
ZEJ1ZmZlcjsKIGNsYXNzIEdQVVJlbmRlclBpcGVsaW5lOwogCkBAIC01MSw2ICs1Myw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSBm
aW5hbDsKIAorICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0b3I8
UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7CiAgICAgdm9pZCBk
cmF3KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVk
IGxvbmcpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmlu
ZGV4IDE0ZWM3ZDJmOTdlYmM0NGM3YjM2Yjk1ZWU0YTVjYTNiY2NkOWJkMjguLjViNDNiMWVlMWJm
Y2E4NzcwYjRiMDM4ODk3ZDcyMTVjMzJiNmFjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNp
bmNsdWRlICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5l
RGVzY3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5o
IgogCkBAIC00Niw2ICs0Nyw3IEBAIHN0cnVjdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Ig
ewogICAgIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOwogICAgIEdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xv
Z3kgcHJpbWl0aXZlVG9wb2xvZ3k7CisgICAgR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRT
dGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmVydGV4QXR0cmli
dXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1OGQ2ZGRhMWNhN2NmYzE1NzkxZTI2MjVmYjE4
NjM1OTMwZjQyZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5n
IEdQVVZlcnRleEZvcm1hdEVudW0gPSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVWZXJ0ZXhG
b3JtYXQgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVWZXJ0ZXhGb3JtYXQ+IHsKK3B1YmxpYzoKKyAg
ICBlbnVtIEVudW0gOiBHUFVWZXJ0ZXhGb3JtYXRFbnVtIHsKKyAgICAgICAgRmxvYXRSMzJHMzJC
MzJBMzIgPSAwLAorICAgICAgICBGbG9hdFIzMkczMkIzMiA9IDEsCisgICAgICAgIEZsb2F0UjMy
RzMyID0gMiwKKyAgICAgICAgRmxvYXRSMzIgPSAzCisgICAgfTsKK307CisKK3N0cnVjdCBHUFVW
ZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yIHsKKyAgICB1bnNpZ25lZCBsb25nIHNoYWRlckxvY2F0
aW9uOworICAgIHVuc2lnbmVkIGxvbmcgaW5wdXRTbG90OworICAgIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0OworICAgIEdQVVZlcnRleEZvcm1hdEVudW0gZm9ybWF0OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERl
c2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjE5YjIyNmU4M2I1OTE1NzljMThkMjUyMGU4NDFiMzli
YmQwZWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVZlcnRleElucHV0RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVUlucHV0
U3RlcE1vZGVFbnVtID0gdW5zaWduZWQgbG9uZzsKKworY2xhc3MgR1BVSW5wdXRTdGVwTW9kZSA6
IHB1YmxpYyBSZWZDb3VudGVkPEdQVUlucHV0U3RlcE1vZGU+IHsKK3B1YmxpYzoKKyAgICBlbnVt
IEVudW0gOiBHUFVJbnB1dFN0ZXBNb2RlRW51bSB7CisgICAgICAgIFZlcnRleCA9IDAsCisgICAg
ICAgIEluc3RhbmNlID0gMQorICAgIH07Cit9OworCitzdHJ1Y3QgR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yIHsKKyAgICB1bnNpZ25lZCBsb25nIHN0cmlkZTsKKyAgICBHUFVJbnB1dFN0ZXBNb2Rl
RW51bSBzdGVwTW9kZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFs
Lm1tCmluZGV4IDJjNTgyYjBiMzJkOGQ0MTJkOGNkNjU0YTQ2OWFhN2U2YjlkYTdhNDguLjllMjcw
NmVhNzlmMzE3NTlkZWI1ZTZlZjJlOTdmYjQyMmZjZmU3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1l
dGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoV0VCR1BVKQogCisjaW1wb3J0ICJHUFVCdWZmZXIuaCIKICNpbXBvcnQgIkdQVUNvbW1hbmRC
dWZmZXIuaCIKICNpbXBvcnQgIkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJH
UFVSZW5kZXJQaXBlbGluZS5oIgpAQCAtODMsNiArODQsMTIgQEAgdm9pZCBHUFVSZW5kZXJQYXNz
RW5jb2Rlcjo6c2V0UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQog
ICAgIG1fcGlwZWxpbmUgPSBXVEZNb3ZlKHBpcGVsaW5lKTsKIH0KIAordm9pZCBHUFVSZW5kZXJQ
YXNzRW5jb2Rlcjo6c2V0VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nIGluZGV4LCBWZWN0b3I8
UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+JiYgYnVmZmVycywgVmVjdG9yPHVuc2lnbmVkPiYmIG9mZnNl
dHMpIAoreworICAgIC8vIEZJWE1FOiBPbmx5IHdvcnJ5IGFib3V0IHRoZSBmaXJzdCBidWZmZXIg
Zm9yIG5vdywgYW5kIHRyZWF0IHN0YXJ0U2xvdCBhcyB0aGUgaW5kZXguCisgICAgW21fcGxhdGZv
cm1SZW5kZXJQYXNzRW5jb2RlciBzZXRWZXJ0ZXhCdWZmZXI6YnVmZmVyc1swXS0+cGxhdGZvcm1C
dWZmZXIoKSBvZmZzZXQ6b2Zmc2V0c1swXSBhdEluZGV4OmluZGV4XTsKK30KKwogc3RhdGljIE1U
TFByaW1pdGl2ZVR5cGUgcHJpbWl0aXZlVHlwZUZvckdQVVByaW1pdGl2ZVRvcG9sb2d5KFByaW1p
dGl2ZVRvcG9sb2d5IHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxp
bmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IGE4MDY1ZmViYmFkNDc4MzcwM2JiYjZlMmNj
YzFhZjljNTRkZTA0ODUuLmM4MTk4MzYyMmI3NTc5NWQ0YWIxMzAwYzc1NWM4MmEzYTBlMTM1OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC0zMiw2ICszMiw3
IEBACiAKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtODIsNiArODMsODQgQEAgc3RhdGljIGJvb2wgc2V0RnVuY3Rpb25zRm9yUGlwZWxp
bmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSwgTVQKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMVmVydGV4Rm9ybWF0PiB2YWxp
ZGF0ZUFuZENvbnZlcnRWZXJ0ZXhGb3JtYXRUb01UTFZlcnRleEZvcm1hdChHUFVWZXJ0ZXhGb3Jt
YXRFbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgR1BVVmVy
dGV4Rm9ybWF0OjpGbG9hdFIzMkczMkIzMkEzMjoKKyAgICAgICAgcmV0dXJuIE1UTFZlcnRleEZv
cm1hdEZsb2F0NDsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXRSMzJHMzJCMzI6Cisg
ICAgICAgIHJldHVybiBNVExWZXJ0ZXhGb3JtYXRGbG9hdDM7CisgICAgY2FzZSBHUFVWZXJ0ZXhG
b3JtYXQ6OkZsb2F0UjMyRzMyOgorICAgICAgICByZXR1cm4gTVRMVmVydGV4Rm9ybWF0RmxvYXQy
OworICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdFIzMjoKKyAgICAgICAgcmV0dXJuIE1U
TFZlcnRleEZvcm1hdEZsb2F0OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgfQorfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxNVExWZXJ0ZXhTdGVwRnVu
Y3Rpb24+IHZhbGlkYXRlQW5kQ29udmVydFN0ZXBNb2RlVG9NVExTdGVwRnVuY3Rpb24oR1BVSW5w
dXRTdGVwTW9kZUVudW0gbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdQ
VUlucHV0U3RlcE1vZGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIE1UTFZlcnRleFN0ZXBGdW5j
dGlvblBlclZlcnRleDsKKyAgICBjYXNlIEdQVUlucHV0U3RlcE1vZGU6Okluc3RhbmNlOgorICAg
ICAgICByZXR1cm4gTVRMVmVydGV4U3RlcEZ1bmN0aW9uUGVySW5zdGFuY2U7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9Cit9CisKK3N0YXRpYyBib29s
IHNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoY29uc3QgY2hhciogY29uc3QgZnVu
Y3Rpb25OYW1lLCBNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNv
bnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyNpZiBMT0df
RElTQUJMRUQKKyAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb25OYW1lKTsKKyNlbmRpZgorICAgIGF1
dG8gbXRsVmVydGV4RGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTFZlcnRleERlc2NyaXB0b3IgbmV3
XSk7CisKKyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYXR0cmlidXRlcywgaWYgYW55LgorICAgIGNv
bnN0IGF1dG8mIGF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmlucHV0U3RhdGUuYXR0cmlidXRlczsK
KworICAgIC8vIEZJWE1FOiBXaGF0IGtpbmQgb2YgdmFsaWRhdGlvbiBpcyBuZWVkZWQgaGVyZT8K
KyAgICBNVExWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yQXJyYXkgKmF0dHJpYnV0ZUFycmF5ID0g
bXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5hdHRyaWJ1dGVzOworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBhdHRyaWJ1dGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1dG8gbXRsRm9y
bWF0ID0gdmFsaWRhdGVBbmRDb252ZXJ0VmVydGV4Rm9ybWF0VG9NVExWZXJ0ZXhGb3JtYXQoYXR0
cmlidXRlc1tpXS5mb3JtYXQpOworICAgICAgICBpZiAoIW10bEZvcm1hdCkgeworICAgICAgICAg
ICAgTE9HKFdlYkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVVZlcnRleEZvcm1hdEVudW0gZm9yIHZl
cnRleCBhdHRyaWJ1dGUhIiwgZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIE1UTFZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IgKm10
bEF0dHJpYnV0ZURlc2MgPSBbYXR0cmlidXRlQXJyYXkgb2JqZWN0QXRJbmRleGVkU3Vic2NyaXB0
OmldOworICAgICAgICBtdGxBdHRyaWJ1dGVEZXNjLmZvcm1hdCA9ICptdGxGb3JtYXQ7CisgICAg
ICAgIG10bEF0dHJpYnV0ZURlc2Mub2Zmc2V0ID0gYXR0cmlidXRlc1tpXS5vZmZzZXQ7CisgICAg
ICAgIG10bEF0dHJpYnV0ZURlc2MuYnVmZmVySW5kZXggPSBhdHRyaWJ1dGVzW2ldLnNoYWRlckxv
Y2F0aW9uOworICAgICAgICBbbXRsVmVydGV4RGVzY3JpcHRvci5nZXQoKS5hdHRyaWJ1dGVzIHNl
dE9iamVjdDptdGxBdHRyaWJ1dGVEZXNjIGF0SW5kZXhlZFN1YnNjcmlwdDppXTsKKyAgICB9CisK
KyAgICAvLyBQb3B1bGF0ZSB2ZXJ0ZXggYnVmZmVyIGxheW91dHMsIGlmIGFueS4KKyAgICBjb25z
dCBhdXRvJiBpbnB1dHMgPSBkZXNjcmlwdG9yLmlucHV0U3RhdGUuaW5wdXRzOworCisgICAgTVRM
VmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvckFycmF5ICpsYXlvdXRBcnJheSA9IG10bFZlcnRl
eERlc2NyaXB0b3IuZ2V0KCkubGF5b3V0czsKKworICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwg
aW5wdXRzLnNpemUoKTsgKytqKSB7CisgICAgICAgIGF1dG8gbXRsU3RlcEZ1bmN0aW9uID0gdmFs
aWRhdGVBbmRDb252ZXJ0U3RlcE1vZGVUb01UTFN0ZXBGdW5jdGlvbihpbnB1dHNbal0uc3RlcE1v
ZGUpOworICAgICAgICBpZiAoIW10bFN0ZXBGdW5jdGlvbikgeworICAgICAgICAgICAgTE9HKFdl
YkdQVSwgIiVzOiBJbnZhbGlkIFdlYkdQVUlucHV0U3RlcE1vZGUgZm9yIHZlcnRleCBpbnB1dCEi
LCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisK
KyAgICAgICAgTVRMVmVydGV4QnVmZmVyTGF5b3V0RGVzY3JpcHRvciAqbXRsTGF5b3V0RGVzYyA9
IFtsYXlvdXRBcnJheSBvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6al07CisgICAgICAgIG10bExh
eW91dERlc2Muc3RlcEZ1bmN0aW9uID0gKm10bFN0ZXBGdW5jdGlvbjsKKyAgICAgICAgbXRsTGF5
b3V0RGVzYy5zdHJpZGUgPSBpbnB1dHNbal0uc3RyaWRlOworICAgICAgICBbbXRsVmVydGV4RGVz
Y3JpcHRvci5nZXQoKS5sYXlvdXRzIHNldE9iamVjdDptdGxMYXlvdXREZXNjIGF0SW5kZXhlZFN1
YnNjcmlwdDpqXTsKKyAgICB9CisKKyAgICBtdGxEZXNjcmlwdG9yLnZlcnRleERlc2NyaXB0b3Ig
PSBtdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShjb25zdCBH
UFVEZXZpY2UmIGRldmljZSwgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYgZGVzY3JpcHRv
cikKIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUgPSAiR1BVUmVuZGVyUGlw
ZWxpbmU6OmNyZWF0ZSgpIjsKQEAgLTEwNCw3ICsxODMsOCBAQCBSZWZQdHI8R1BVUmVuZGVyUGlw
ZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2Us
IEdQVQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoIXNldEZ1bmN0
aW9uc0ZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIG10bERlc2NyaXB0b3IuZ2V0
KCksIGRlc2NyaXB0b3IpKQorICAgIGlmICghc2V0RnVuY3Rpb25zRm9yUGlwZWxpbmVEZXNjcmlw
dG9yKGZ1bmN0aW9uTmFtZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgZGVzY3JpcHRvcikKKyAgICAg
ICAgfHwgIXNldElucHV0U3RhdGVGb3JQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25OYW1lLCBt
dGxEZXNjcmlwdG9yLmdldCgpLCBkZXNjcmlwdG9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICAvLyBGSVhNRTogR2V0IHRoZSBwaXhlbEZvcm1hdCBhcyBjb25maWd1cmVkIGZvciB0
aGUgY29udGV4dC9DQU1ldGFsTGF5ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2MmU0ODg0NGYyYTMwNGVlNjRjZGM5
NjJmMzY4OTMwMmViYjI3Mi4uOTVkN2Y4YmFjMTc4ZmY2YjgxY2MwYzRmZTFkNGEwYWEyNGExYmVh
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTEyLTExICBKdXN0aW4gRmFuICA8anVzdGlu
X2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4IGJ1ZmZlcnMgYW5kIFdl
YkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICBBZGRlZCB2YXJpYXRpb24gb2Ygc2ltcGxlLXRyaWFuZ2xlLXN0cmlwIHRvIHVzZSBhIHZl
cnRleCBidWZmZXIuIFJlZmFjdG9yZWQgYWZvcmVtZW50aW9uZWQKKyAgICAgICAgdGVzdCB0byBz
aGFyZSBjb2RlIHdpdGggbmV3IHRlc3QuCisKKyAgICAgICAgKiB3ZWJncHUvanMvYmFzaWMtd2Vi
Z3B1LWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKHNldFVwUGlwZWxpbmVEZXNjcmlwdG9yKToKKyAg
ICAgICAgKiB3ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qczogQWRkZWQuCisgICAgICAgIChh
c3luYy5nZXRCYXNpY0RldmljZSk6CisgICAgICAgIChjcmVhdGVCYXNpY0NvbnRleHQpOgorICAg
ICAgICAoY3JlYXRlQmFzaWNQaXBlbGluZSk6CisgICAgICAgIChiZWdpbkJhc2ljUmVuZGVyUGFz
cyk6CisgICAgICAgICogd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3Np
bXBsZS10cmlhbmdsZS1zdHJpcC5odG1sOgorICAgICAgICAqIHdlYmdwdS92ZXJ0ZXgtYnVmZmVy
LXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS92
ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEyLTEwICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGNvbm5lY3RlZENhbGxi
YWNrIGlzIGludm9rZWQgZHVyaW5nIHRoZSByZW1vdmFsIG9mIHRoZSBlbGVtZW50IGluc2lkZSBh
bm90aGVyIGVsZW1lbnQncyBjb25uZWN0ZWRDYWxsYmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L2pzL2Jhc2ljLXdlYmdwdS1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy93ZWJn
cHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcwppbmRleCBiM2NiYmMyMWJkNDljMjgxZTJh
MGE5ZjBmMTFkNWEzYTIwNDcwMTQxLi4wZDA4NzAyNjJmNzAwOWUxYTNkOTMwZWVkNGRhZTQ5ZTAw
MDk5YzZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1
bmN0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvanMvYmFzaWMtd2ViZ3B1LWZ1bmN0
aW9ucy5qcwpAQCAtOTAsMTkgKzkwLDE4IEBAIGZ1bmN0aW9uIHNldFVwTW9kdWxlKCkgewogCiBm
dW5jdGlvbiBzZXRVcFBpcGVsaW5lRGVzY3JpcHRvcigpIHsKICAgICB2ZXJ0ZXhTdGFnZURlc2Ny
aXB0b3IgPSB7IAotICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwgCi0gICAgICAgIHN0YWdl
OiBXZWJHUFVTaGFkZXJTdGFnZS5WRVJURVgsIAorICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVs
ZSwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWluIiAKICAgICB9OwogCiAgICAgZnJh
Z21lbnRTdGFnZURlc2NyaXB0b3IgPSB7CiAgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAot
ICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuRlJBR01FTlQsCiAgICAgICAgIGVudHJ5
UG9pbnQ6ICJmcmFnbWVudF9tYWluIgogICAgIH07CiAKICAgICBwaXBlbGluZURlc2NyaXB0b3Ig
PSB7Ci0gICAgICAgIHN0YWdlczogW3ZlcnRleFN0YWdlRGVzY3JpcHRvciwgZnJhZ21lbnRTdGFn
ZURlc2NyaXB0b3JdLAorICAgICAgICB2ZXJ0ZXhTdGFnZTogdmVydGV4U3RhZ2VEZXNjcmlwdG9y
LCAKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCiAgICAg
ICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH07CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRl
c3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5YWU4Mzg2MmJh
MWU4NTE2OGFlNzBhMDc2M2E4MzhhNDk4ZWM2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJncHUvanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcwpAQCAtMCwwICsxLDUyIEBACithc3lu
YyBmdW5jdGlvbiBnZXRCYXNpY0RldmljZSgpIHsKKyAgICAvLyBGSVhNRTogcmVxdWVzdEFkYXB0
ZXIgc2hvdWxkIHRha2UgYSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci4KKyAgICBjb25zdCBhZGFw
dGVyID0gYXdhaXQgd2luZG93LndlYmdwdS5yZXF1ZXN0QWRhcHRlcih7fSk7CisgICAgY29uc3Qg
ZGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZpY2UoKTsKKyAgICByZXR1cm4gZGV2aWNlOworfQor
CitmdW5jdGlvbiBjcmVhdGVCYXNpY0NvbnRleHQoY2FudmFzLCBkZXZpY2UpIHsKKyAgICBjb25z
dCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIndlYmdwdSIpOworICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgYW5kIHNwZWNpZnkgYSBXZWJHUFVUZXh0dXJlVXNhZ2VFbnVtLgorICAgIGNvbnRl
eHQuY29uZmlndXJlKHsgZGV2aWNlOiBkZXZpY2UsIGZvcm1hdDoiQjhHOFI4QThVbm9ybSIsIHdp
ZHRoOiBjYW52YXMud2lkdGgsIGhlaWdodDogY2FudmFzLmhlaWdodCB9KTsKKyAgICByZXR1cm4g
Y29udGV4dDsKK30KKworZnVuY3Rpb24gY3JlYXRlQmFzaWNQaXBlbGluZShzaGFkZXJNb2R1bGUs
IGRldmljZSwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpIHsKKyAgICB2ZXJ0ZXhTdGFnZURlc2NyaXB0
b3IgPSB7CisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAorICAgICAgICBlbnRyeVBvaW50
OiAidmVydGV4X21haW4iIAorICAgIH07CisKKyAgICBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciA9
IHsKKyAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCisgICAgICAgIGVudHJ5UG9pbnQ6ICJm
cmFnbWVudF9tYWluIgorICAgIH07CisKKyAgICBwaXBlbGluZURlc2NyaXB0b3IgPSB7CisgICAg
ICAgIHZlcnRleFN0YWdlOiB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IsCisgICAgICAgIGZyYWdtZW50
U3RhZ2U6IGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yLAorICAgICAgICBwcmltaXRpdmVUb3BvbG9n
eTogInRyaWFuZ2xlU3RyaXAiLAorICAgICAgICBpbnB1dFN0YXRlOiBpbnB1dFN0YXRlRGVzY3Jp
cHRvcgorICAgIH07CisKKyAgICByZXR1cm4gZGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKHBp
cGVsaW5lRGVzY3JpcHRvcik7Cit9CisKK2Z1bmN0aW9uIGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNv
bnRleHQsIGNvbW1hbmRCdWZmZXIpIHsKKyAgICBjb25zdCBiYXNpY0F0dGFjaG1lbnQgPSB7Cisg
ICAgICAgIGF0dGFjaG1lbnQ6IGNvbnRleHQuZ2V0TmV4dFRleHR1cmUoKS5jcmVhdGVEZWZhdWx0
VGV4dHVyZVZpZXcoKSwKKyAgICAgICAgY2xlYXJDb2xvcjogeyByOiAxLjAsIGc6IDAsIGI6IDAs
IGE6IDEuMCB9CisgICAgfQorCisgICAgLy8gRklYTUU6IEZsZXNoIG91dCB0aGUgcmVzdCBvZiBX
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCisgICAgcmV0dXJuIGNvbW1hbmRCdWZmZXIuYmVn
aW5SZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50cyA6IFtiYXNpY0F0dGFjaG1lbnRdIH0pOwor
fQorCitmdW5jdGlvbiBlbmNvZGVCYXNpY0NvbW1hbmRzKHJlbmRlclBhc3NFbmNvZGVyLCByZW5k
ZXJQaXBlbGluZSwgdmVydGV4QnVmZmVyKSB7CisgICAgaWYgKHZlcnRleEJ1ZmZlcikKKyAgICAg
ICAgcmVuZGVyUGFzc0VuY29kZXIuc2V0VmVydGV4QnVmZmVycygwLCBbdmVydGV4QnVmZmVyXSwg
WzBdKTsKKyAgICByZW5kZXJQYXNzRW5jb2Rlci5zZXRQaXBlbGluZShyZW5kZXJQaXBlbGluZSk7
CisgICAgcmVuZGVyUGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAwKTsKKyAgICByZXR1cm4gcmVu
ZGVyUGFzc0VuY29kZXIuZW5kUGFzcygpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLWV4cGVjdGVkLnR4dApp
bmRleCBiNmQ4NmIwYWNhYWUyNmVkNWY4YWRiNzU4NTdjZGY4ODllNjM2NGY2Li5mMjUwOTI2MjE0
OTYwZjlhNzUzZDRkN2IxYjU2MDQ0ZDliYWQ3NDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNiBAQCBQQVNTIFdl
YkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3Igd2FzIG5vdCBjcgogUEFTUyBXZWJHUFVSZW5kZXJQaXBlbGluZSB3aXRoIGludmFsaWQg
c2hhZGVyIG1vZHVsZSB3YXMgbm90IGNyZWF0ZWQuCiBQQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5l
IHdpdGggaW52YWxpZCB2ZXJ0ZXggc2hhZGVyIHN0YWdlIHdhcyBub3QgY3JlYXRlZC4KIFBBU1Mg
V2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlkIHZlcnRleCBzaGFkZXIgZW50cnkgcG9p
bnQgd2FzIG5vdCBjcmVhdGVkLgotUEFTUyBXZWJHUFVSZW5kZXJQaXBlbGluZSB3aXRoIGludmFs
aWQgV2ViR1BVU2hhZGVyU3RhZ2VFbnVtIHdhcyBub3QgY3JlYXRlZC4KIEFsbCB0ZXN0cyBjb21w
bGV0ZS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdw
dS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKaW5kZXggYTNiOTI5ZWNkODc1Y2QwYWE1MzZkN2QxYjUz
MGYxNTFiZDY3MDljYi4uNmNiNGJlZmFhMWQ3NDlhMzc3OTVmYzQwNWZlZmJjYWU5OWE5NzVjNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCkBAIC0xOSw0MyArMTks
MzIgQEAgZnVuY3Rpb24gc2V0VXBCYWRQaXBlbGluZXMoKSB7CiAgICAgY2hlY2tCYWRSZW5kZXJQ
aXBlbGluZSh7fSwgIldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciIpOwogCiAgICAgbGV0
IG5vTW9kdWxlVmVydGV4RGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRl
clN0YWdlLlZFUlRFWCwKICAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWluIgogICAgIH0K
ICAgICBsZXQgbm9Nb2R1bGVQaXBlbGluZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlczog
W25vTW9kdWxlVmVydGV4RGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAg
ICAgICB2ZXJ0ZXhTdGFnZTogbm9Nb2R1bGVWZXJ0ZXhEZXNjcmlwdG9yLCAKKyAgICAgICAgZnJh
Z21lbnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCiAgICAgICAgIHByaW1pdGl2ZVRv
cG9sb2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH0KICAgICBjaGVja0JhZFJlbmRlclBpcGVsaW5l
KG5vTW9kdWxlUGlwZWxpbmVEZXNjcmlwdG9yLCAic2hhZGVyIG1vZHVsZSIpOwogCiAgICAgLy8g
QSAoTWV0YWwpIHJlbmRlcnBpcGVsaW5lIG11c3QgaGF2ZSBhIHZlcnRleCBmdW5jdGlvbi4KICAg
ICBsZXQgbm9WZXJ0ZXhQaXBlbGluZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlczogW2Zy
YWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21lbnRT
dGFnZURlc2NyaXB0b3IsCiAgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVMaXN0
IgogICAgIH0KICAgICBjaGVja0JhZFJlbmRlclBpcGVsaW5lKG5vVmVydGV4UGlwZWxpbmVEZXNj
cmlwdG9yLCAidmVydGV4IHNoYWRlciBzdGFnZSIpCiAKICAgICBsZXQgYmFkRW50cnlQb2ludERl
c2NyaXB0b3IgPSB7IAotICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwgCi0gICAgICAgIHN0
YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5WRVJURVgsIAorICAgICAgICBtb2R1bGU6IHNoYWRlck1v
ZHVsZSwKICAgICAgICAgZW50cnlQb2ludDogIlZlcnRleF9NYWluIiAKICAgICB9OwogICAgIGxl
dCBiYWRFbnRyeVBvaW50UGlwZWxpbmVEZXNjc3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBb
YmFkRW50cnlQb2ludERlc2NyaXB0b3IsIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKKyAgICAg
ICAgdmVydGV4U3RhZ2U6IGJhZEVudHJ5UG9pbnREZXNjcmlwdG9yLCAKKyAgICAgICAgZnJhZ21l
bnRTdGFnZTogZnJhZ21lbnRTdGFnZURlc2NyaXB0b3IsCiAgICAgICAgIHByaW1pdGl2ZVRvcG9s
b2d5OiAidHJpYW5nbGVMaXN0IgogICAgIH0KICAgICBjaGVja0JhZFJlbmRlclBpcGVsaW5lKGJh
ZEVudHJ5UG9pbnRQaXBlbGluZURlc2NzcmlwdG9yLCAidmVydGV4IHNoYWRlciBlbnRyeSBwb2lu
dCIpOwotCi0gICAgbGV0IGJhZFN0YWdlRW51bURlc2NyaXB0b3IgPSB7IAotICAgICAgICBtb2R1
bGU6IHNoYWRlck1vZHVsZSwgCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5DT01Q
VVRFLCAKLSAgICAgICAgZW50cnlQb2ludDogInZlcnRleF9tYWluIiAKLSAgICB9OwotICAgIGxl
dCBiYWRTdGFnZUVudW1QaXBlbGluZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIHN0YWdlczogW2Jh
ZFN0YWdlRW51bURlc2NyaXB0b3IsIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yXSwKLSAgICAgICAg
cHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCi0gICAgfQotICAgIGNoZWNrQmFkUmVu
ZGVyUGlwZWxpbmUoYmFkU3RhZ2VFbnVtUGlwZWxpbmVEZXNjcmlwdG9yLCAiV2ViR1BVU2hhZGVy
U3RhZ2VFbnVtIik7CiB9CiAKIHJ1bldlYkdQVVRlc3RzKFtzZXRVcFBpcGVsaW5lLCBzZXRVcEJh
ZFBpcGVsaW5lc10pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlh
bmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3NpbXBsZS10cmlhbmdsZS1zdHJp
cC5odG1sCmluZGV4IGQ3NmZmZGRkOWE1NGY1NzJmMDI1MGVjNzRkMGY2MTczYjVjNTdkNmIuLjMw
YWE0ZjFjMjE2OGViMzY2MWEwYzU0OGZkMmRmYjUyMjlkMjU2MGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmdwdS9zaW1wbGUtdHJpYW5nbGUtc3RyaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKQEAgLTUsNiArNSw3IEBACiA8bGlu
ayByZWw9Im1hdGNoIiBocmVmPSJzaW1wbGUtdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCI+
CiA8cD5QYXNzIGlmIHNxdWFyZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+
CiA8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBjb25zdCBzaGFk
ZXJDb2RlID0gYAogI2luY2x1ZGUgPG1ldGFsX3N0ZGxpYj4KQEAgLTQxLDU3ICs0Miw2IEBAIGZy
YWdtZW50IGZsb2F0NCBmcmFnbWVudF9tYWluKFZlcnRleCB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0p
CiB9CiBgCiAKLWFzeW5jIGZ1bmN0aW9uIGdldEJhc2ljRGV2aWNlKCkgewotICAgIC8vIEZJWE1F
OiByZXF1ZXN0QWRhcHRlciBzaG91bGQgdGFrZSBhIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLgot
ICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9
KTsKLSAgICBjb25zdCBkZXZpY2UgPSBhZGFwdGVyLmNyZWF0ZURldmljZSgpOwotICAgIHJldHVy
biBkZXZpY2U7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmlj
ZSkgewotICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgid2ViZ3B1Iik7Ci0g
ICAgLy8gRklYTUU6IEltcGxlbWVudCBhbmQgc3BlY2lmeSBhIFdlYkdQVVRleHR1cmVVc2FnZUVu
dW0uCi0gICAgY29udGV4dC5jb25maWd1cmUoeyBkZXZpY2U6IGRldmljZSwgZm9ybWF0OiJCOEc4
UjhBOFVub3JtIiwgd2lkdGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0IH0p
OwotICAgIHJldHVybiBjb250ZXh0OwotfQotCi1mdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5l
KHNoYWRlck1vZHVsZSwgZGV2aWNlKSB7Ci0gICAgdmVydGV4U3RhZ2VEZXNjcmlwdG9yID0gewot
ICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwgCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFk
ZXJTdGFnZS5WRVJURVgsIAotICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAotICAg
IH07Ci0KLSAgICBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciA9IHsKLSAgICAgICAgbW9kdWxlOiBz
aGFkZXJNb2R1bGUsCi0gICAgICAgIHN0YWdlOiBXZWJHUFVTaGFkZXJTdGFnZS5GUkFHTUVOVCwK
LSAgICAgICAgZW50cnlQb2ludDogImZyYWdtZW50X21haW4iCi0gICAgfTsKLQotICAgIHBpcGVs
aW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbdmVydGV4U3RhZ2VEZXNjcmlwdG9y
LCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCi0gICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAi
dHJpYW5nbGVTdHJpcCIKLSAgICB9OwotCi0gICAgcmV0dXJuIGRldmljZS5jcmVhdGVSZW5kZXJQ
aXBlbGluZShwaXBlbGluZURlc2NyaXB0b3IpOwotfQotCi1mdW5jdGlvbiBiZWdpbkJhc2ljUmVu
ZGVyUGFzcyhjb250ZXh0LCBjb21tYW5kQnVmZmVyKSB7Ci0gICAgY29uc3QgYmFzaWNBdHRhY2ht
ZW50ID0gewotICAgICAgICBhdHRhY2htZW50OiBjb250ZXh0LmdldE5leHRUZXh0dXJlKCkuY3Jl
YXRlRGVmYXVsdFRleHR1cmVWaWV3KCksCi0gICAgICAgIGNsZWFyQ29sb3I6IHsgcjogMS4wLCBn
OiAwLCBiOiAwLCBhOiAxLjAgfQotICAgIH0KLQotICAgIC8vIEZJWE1FOiBGbGVzaCBvdXQgdGhl
IHJlc3Qgb2YgV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuIAotICAgIHJldHVybiBjb21tYW5k
QnVmZmVyLmJlZ2luUmVuZGVyUGFzcyh7IGNvbG9yQXR0YWNobWVudHMgOiBbYmFzaWNBdHRhY2ht
ZW50XSB9KTsKLX0KLQotZnVuY3Rpb24gZW5jb2RlQmFzaWNDb21tYW5kcyhyZW5kZXJQYXNzRW5j
b2RlciwgcmVuZGVyUGlwZWxpbmUpIHsKLSAgICByZW5kZXJQYXNzRW5jb2Rlci5zZXRQaXBlbGlu
ZShyZW5kZXJQaXBlbGluZSk7Ci0gICAgcmVuZGVyUGFzc0VuY29kZXIuZHJhdyg0LCAxLCAwLCAw
KTsKLSAgICByZXR1cm4gcmVuZGVyUGFzc0VuY29kZXIuZW5kUGFzcygpOwotfQotCiBhc3luYyBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2ljRGV2aWNl
KCk7CiAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1z
dHJpcC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJp
YW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODZmMTNlODEyMDM5N2E1Y2M2
MzM2YzllMmE0ODVlNzc4YmE5OTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5I
VE1MIFJlZmVyZW5jZSBGaWxlPC90aXRsZT4KKzxwPlBhc3MgaWYgc3F1YXJlIGNhbnZhcyBiZWxv
dyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0
MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImNhbnZhcyIpOworY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OworCitjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2IoMCwgMjU1LCAwKSc7Citjb250ZXh0LmZpbGxS
ZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cis8L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvdmVy
dGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3ZlcnRl
eC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDJiNDg0ZjU2MjEyMjgz
YjdlNDBkOTU4YjYyODE0OTgwYmFkNTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtMCwwICsxLDk2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHUFUg
SGVsbG8gVHJpYW5nbGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2Vi
R1BVIGNvcnJlY3RseSByZW5kZXJzIGEgZ3JlZW4gY2FudmFzLiI+Cis8bGluayByZWw9Im1hdGNo
IiBocmVmPSJ2ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVkLmh0bWwiPgorPHA+
UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRlbHkgZ3JlZW4uPC9wPgorPGNh
bnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0IHNyYz0ianMv
d2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgc2hhZGVyQ29k
ZSA9IGAKKyNpbmNsdWRlIDxtZXRhbF9zdGRsaWI+CisgICAgCit1c2luZyBuYW1lc3BhY2UgbWV0
YWw7CisKK3N0cnVjdCBWZXJ0ZXgKK3sKKyAgICBmbG9hdDQgcG9zaXRpb24gW1twb3NpdGlvbl1d
OworfTsKKwordmVydGV4IFZlcnRleCB2ZXJ0ZXhfbWFpbihjb25zdCBkZXZpY2UgVmVydGV4KiB2
ZXJ0ZXhfYXJyYXkgW1tidWZmZXIoMCldXSwgdWludCB2aWQgW1t2ZXJ0ZXhfaWRdXSkKK3sKKyAg
ICByZXR1cm4gdmVydGV4X2FycmF5W3ZpZF07Cit9CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVu
dF9tYWluKFZlcnRleCB2ZXJ0ZXhJbiBbW3N0YWdlX2luXV0pCit7CisgICAgcmV0dXJuIGZsb2F0
NCgwLjAsIDEuMCwgMC4wLCAxLjApOworfQorYAorCitmdW5jdGlvbiBjcmVhdGVWZXJ0ZXhCdWZm
ZXIoZGV2aWNlKSB7CisgICAgY29uc3QgYnVmZmVyU2l6ZSA9IDQgKiA0ICogNDsKKyAgICBjb25z
dCBidWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsgc2l6ZTogYnVmZmVyU2l6ZSwgdXNhZ2U6
IFdlYkdQVUJ1ZmZlclVzYWdlLk1BUF9XUklURSB9KTsKKyAgICAKKyAgICBsZXQgYXJyYXlCdWZm
ZXIgPSBidWZmZXIubWFwcGluZzsKKyAgICBsZXQgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJy
YXkoYXJyYXlCdWZmZXIpOworCisgICAgZmxvYXRBcnJheVswXSA9IC0xOworICAgIGZsb2F0QXJy
YXlbMV0gPSAxOworICAgIGZsb2F0QXJyYXlbMl0gPSAwOworICAgIGZsb2F0QXJyYXlbM10gPSAx
OworCisgICAgZmxvYXRBcnJheVs0XSA9IC0xOworICAgIGZsb2F0QXJyYXlbNV0gPSAtMTsKKyAg
ICBmbG9hdEFycmF5WzZdID0gMDsKKyAgICBmbG9hdEFycmF5WzddID0gMTsKKworICAgIGZsb2F0
QXJyYXlbOF0gPSAxOworICAgIGZsb2F0QXJyYXlbOV0gPSAxOworICAgIGZsb2F0QXJyYXlbMTBd
ID0gMDsKKyAgICBmbG9hdEFycmF5WzExXSA9IDE7CisKKyAgICBmbG9hdEFycmF5WzEyXSA9IDE7
CisgICAgZmxvYXRBcnJheVsxM10gPSAtMTsKKyAgICBmbG9hdEFycmF5WzE0XSA9IDA7CisgICAg
ZmxvYXRBcnJheVsxNV0gPSAxOworCisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24g
Y3JlYXRlSW5wdXRTdGF0ZURlc2NyaXB0b3IoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgaW5k
ZXhGb3JtYXQ6IFdlYkdQVUluZGV4Rm9ybWF0LlVJTlQzMiwKKyAgICAgICAgYXR0cmlidXRlczog
W3sKKyAgICAgICAgICAgIHNoYWRlckxvY2F0aW9uOiAwLAorICAgICAgICAgICAgaW5wdXRTbG90
OiAwLAorICAgICAgICAgICAgb2Zmc2V0OiAwLAorICAgICAgICAgICAgZm9ybWF0OiBXZWJHUFVW
ZXJ0ZXhGb3JtYXQuRkxPQVRfUjMyX0czMl9CMzJfQTMyCisgICAgICAgIH1dLAorICAgICAgICBp
bnB1dHM6IFt7CisgICAgICAgICAgICBzdHJpZGU6IDQgKiA0LAorICAgICAgICAgICAgc3RlcE1v
ZGU6IFdlYkdQVUlucHV0U3RlcE1vZGUuVkVSVEVYCisgICAgICAgIH1dCisgICAgfQorfQorCith
c3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEJhc2lj
RGV2aWNlKCk7CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2Fu
dmFzIik7CisgICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRl
dmljZSk7CisgICAgLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBub24tTVNMIHNoYWRlcnMuCisgICAg
Y29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7IGNvZGU6IHNo
YWRlckNvZGUgfSk7CisgICAgY29uc3QgdmVydGV4QnVmZmVyID0gY3JlYXRlVmVydGV4QnVmZmVy
KGRldmljZSk7CisgICAgY29uc3QgaW5wdXRTdGF0ZURlc2NyaXB0b3IgPSBjcmVhdGVJbnB1dFN0
YXRlRGVzY3JpcHRvcigpOworICAgIGNvbnN0IHBpcGVsaW5lID0gY3JlYXRlQmFzaWNQaXBlbGlu
ZShzaGFkZXJNb2R1bGUsIGRldmljZSwgaW5wdXRTdGF0ZURlc2NyaXB0b3IpOworICAgIGNvbnN0
IGNvbW1hbmRCdWZmZXIgPSBkZXZpY2UuY3JlYXRlQ29tbWFuZEJ1ZmZlcigpOworICAgIGNvbnN0
IHBhc3NFbmNvZGVyID0gYmVnaW5CYXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFuZEJ1ZmZl
cik7CisgICAgY29uc3QgZW5kQ29tbWFuZEJ1ZmZlciA9IGVuY29kZUJhc2ljQ29tbWFuZHMocGFz
c0VuY29kZXIsIHBpcGVsaW5lLCB2ZXJ0ZXhCdWZmZXIpOworICAgIGNvbnN0IHF1ZXVlID0gZGV2
aWNlLmdldFF1ZXVlKCk7CisKKyAgICBxdWV1ZS5zdWJtaXQoW2VuZENvbW1hbmRCdWZmZXJdKTsK
KyAgICBjb250ZXh0LnByZXNlbnQoKTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357179</attachid>
            <date>2018-12-12 15:37:52 -0800</date>
            <delta_ts>2018-12-12 17:26:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192611-20181212153751.patch</filename>
            <type>text/plain</type>
            <size>90295</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ4OTRkYjBmOWM1MjM0
MjRiMTJhNzA5NzkzNjgzY2U2NzYxMGI0Yy4uMTIwYmY4N2NlYmQ5ZDdjM2RmMzBiOGY0YzRhNTVl
MTU0Y2JkMDAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE4LTEyLTExICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gVmVydGV4
IGJ1ZmZlcnMgYW5kIFdlYkdQVUlucHV0U3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBUZXN0OiB3ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1z
dHJpcC5odG1sCisKKyAgICAgICAgQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgdmVydGV4IGJ1ZmZl
cnMgd2l0aCBNZXRhbCBzaGFkaW5nIGxhbmd1YWdlIGluIFdlYkdQVS4gSW4gCisgICAgICAgIFdl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciwgcmVmYWN0b3IgdG8gbWF0Y2ggdXBkYXRlZCBz
aGFkZXIgc3RhZ2Ugc3RydWN0dXJlIGFuZCBhZGQgCisgICAgICAgIFdlYkdQVUlucHV0U3RhdGVE
ZXNjcmlwdG9yLiBBbHNvIGltcGxlbWVudCBXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVy
dGV4QnVmZmVycy4KKworICAgICAgICBBZGQgc3ltYm9scyBhbmQgZmlsZXMgZm9yIFdlYkdQVUlu
ZGV4Rm9ybWF0LCBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciwgV2ViR1BVSW5wdXRTdGVwTW9k
ZSwgCisgICAgICAgIFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IsIFdlYkdQVVZlcnRl
eEZvcm1hdCwgV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yOgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKworICAgICAgICBBZGQg
YW5kIGltcGxlbWVudCBpbnRlcmZhY2VzIGFuZCBkaWN0aW9uYXJpZXMgZm9yIFdlYkdQVUlucHV0
U3RhdGU6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdQVUJ1ZmZlcjo6V2ViR1BVQnVmZmVyKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJ1ZmZl
cjo6YnVmZmVyIGNvbnN0KTogQWRkZWQgZ2V0dGVyIGZvciBiYWNraW5nIEdQVUJ1ZmZlci4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5pZGw6IE1vdmluZyBXZWJH
UFVCdWZmZXJVc2FnZSBvdXQgaW50byBpdHMgb3duIElETC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRl
eEZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZv
cm1hdC5pZGw6IEFkZGVkLiAKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0
YXRlRGVzY3JpcHRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVJ
bnB1dFN0YXRlRGVzY3JpcHRvci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUlucHV0U3RlcE1vZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVSW5wdXRTdGVwTW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9y
LmlkbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUlucHV0U3Rh
dGVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVSZW5kZXJQYXNzRW5jb2Rlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaDogQWRkZWQuCisKKyAgICAgICAgUmVmYWN0b3IgdG8gc3VwcG9ydCB1cGRhdGVkIHN0cnVj
dHVyZSBvZiBwaXBlbGluZSBkZXNjcmlwdG9yIGluIHNrZXRjaCBJREw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRl
QW5kQ29udmVydFBpcGVsaW5lU3RhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNl
OjpjcmVhdGVSZW5kZXJQaXBlbGluZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGw6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyU3RhZ2UuKjogUmVtb3ZlZC4KKworICAgICAg
ICBBZGQgYW5kIGltcGxlbWVudCBzZXRWZXJ0ZXhCdWZmZXJzOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKTogQWRkZWQuIAorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsOiAKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxp
bmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNldElucHV0U3RhdGVGb3JQaXBlbGluZURl
c2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSk6
CisKIDIwMTgtMTItMTEgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBmZWF0dXJlIGZsYWcgZm9yIENTUyBUeXBlZCBPTQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBjZWZiNjdmZWJmODI5NzQxMzFlZTA3YjMyZTMwYWI4NjQyZGUy
YzVmLi4wYmRkMjljZGUxODA4YzI1ZDVjZThhMTY1NDU1NTg0Nzg2MDY2ZmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNDY0LDYgKzQ2NCw5IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29sb3IuaWRsCiAgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZp
Y2UuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsCisgICAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1t
YWJsZVBhc3NFbmNvZGVyLmlkbApAQCAtNDc2LDExICs0NzksMTMgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0
LmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbAotICAgIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlclN0YWdlLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3
YXBDaGFpbi5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVGb3JtYXRFbnVtLmlkbAogICAgIE1vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4
Rm9ybWF0LmlkbAorICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleElucHV0RGVzY3JpcHRv
ci5pZGwKIAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbAogICAgIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCBiM2Q0YzQ2OTJmZDVkZGZkN2FiNDZiOTBiZDk0YzBkYTE3NWFhNzU1Li5mNmY3ZTM1MTZh
ZTc0NjU4ODJjZmJmMzA1MTI3NTRkOTQzNDYzN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTM4MSw2ICszODEsOSBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb2xvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVJbmRleEZvcm1hdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3RlcE1vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgXApAQCAtMzkzLDEx
ICszOTYsMTMgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJTdGFnZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVUZXh0dXJlRm9ybWF0RW51bS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAKaW5kZXggMTQ4ZGFlYTVkMWM5MTk3MmNhMTU4OGYxY2Rk
ZjA3NmM4NTgyN2QyYS4uMzQ5NDFkMGVhNWY3OTI1MWNiNDhkZGViZjc0MTM0M2Y5ZTRiYTcwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwCkBA
IC0zOCw3ICszOCw2IEBAIFJlZlB0cjxXZWJHUFVCdWZmZXI+IFdlYkdQVUJ1ZmZlcjo6Y3JlYXRl
KFJlZjxHUFVCdWZmZXI+JiYgYnVmZmVyKQogV2ViR1BVQnVmZmVyOjpXZWJHUFVCdWZmZXIoUmVm
PEdQVUJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKG1fYnVmZmVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAppbmRleCA2
MzM2ZDU5NTNlY2MxZGU1Zjg0MzljMDU3Mzc1YzFiODhlMTRjZGRlLi5lMjc2NDI1YmQ0MmI1ZDY4
MmZiZTI0MjhhNDAwNmUyM2Y0OTIzODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCdWZmZXIuaApAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBXZWJHUFVCdWZmZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmUHRyPFdlYkdQVUJ1ZmZlcj4gY3JlYXRlKFJlZjxHUFVCdWZmZXI+JiYpOwogCisgICAgY29u
c3QgR1BVQnVmZmVyJiBidWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQor
CiAgICAgSlNDOjpBcnJheUJ1ZmZlciogbWFwcGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVy
LT5tYXBwaW5nKCk7IH0KICAgICB2b2lkIHVubWFwKCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRl
ZCBzdHViLiAqLyB9CiAgICAgdm9pZCBkZXN0cm95KCkgeyAvKiBGSVhNRTogVW5pbXBsZW1lbnRl
ZCBzdHViLiAqLyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggYjMwM2YwOWJiNjhlY2M1ZTBiN2UyNDZlYzc0
OWNhMzA2OGNkNzU0MC4uYzAxZGY5NTA4NGIyMDAxYTEzNzE1ZTA5OGQxZDkwZDc3NDVlNzJlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZl
ckRlc2NyaXB0b3IuaApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IgPSBHUFVCdWZmZXJEZXNjcmlwdG9yOwogdXNpbmcg
V2ViR1BVQnVmZmVyVXNhZ2VGbGFncyA9IEdQVUJ1ZmZlclVzYWdlRmxhZ3M7Ci11c2luZyBXZWJH
UFVCdWZmZXJVc2FnZSA9IEdQVUJ1ZmZlclVzYWdlOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmlu
ZGV4IDdkNmQwZmMzMTBhOGNkZmY5ODVlY2ZlMzc1MDQxNjU2NDNiMGI1OTMuLjc3YmE0Y2JjMDhm
OTZiMWUzMjJjNjlkNDg3ZjcwNTk0MTI4NmM0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUg
IldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgogI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKLSNp
bmNsdWRlICJXZWJHUFVTaGFkZXJTdGFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTcyLDU5ICs3MSwyNSBAQCBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6
OmNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1bGVEZQogICAgIHJldHVybiBtb2R1
bGUgPyBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShtb2R1bGUucmVsZWFzZU5vbk51bGwoKSkg
OiBudWxscHRyOwogfQogCi1SZWZQdHI8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVURldmlj
ZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiYg
ZGVzY3JpcHRvcikgY29uc3QKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yPiB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0YWdlKGNvbnN0IFdlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIGNvbnN0IGNoYXIqIGNv
bnN0IGZ1bmN0aW9uTmFtZSA9ICJXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKCki
OwotI2lmIExPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOwotI2Vu
ZGlmCisgICAgaWYgKCFkZXNjcmlwdG9yLm1vZHVsZSB8fCAhZGVzY3JpcHRvci5tb2R1bGUtPm1v
ZHVsZSgpIHx8IGRlc2NyaXB0b3IuZW50cnlQb2ludC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoZGVzY3JpcHRvci5zdGFnZXMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogTm8gc3RhZ2VzIGluIFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9CisgICAgcmV0dXJuIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHsgZGVzY3JpcHRv
ci5tb2R1bGUtPm1vZHVsZSgpLCBkZXNjcmlwdG9yLmVudHJ5UG9pbnQgfTsKK30KIAotICAgIEdQ
VVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOwotICAgIEdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yIGZyYWdtZW50U3RhZ2U7Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YWdl
RGVzY3JpcHRvciA6IGRlc2NyaXB0b3Iuc3RhZ2VzKSB7Ci0gICAgICAgIGlmICghc3RhZ2VEZXNj
cmlwdG9yLm1vZHVsZSB8fCAhc3RhZ2VEZXNjcmlwdG9yLm1vZHVsZS0+bW9kdWxlKCkgfHwgc3Rh
Z2VEZXNjcmlwdG9yLmVudHJ5UG9pbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBMT0coV2Vi
R1BVLCAiJXM6IEludmFsaWQgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IhIiwgZnVuY3Rp
b25OYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3dpdGNoIChzdGFnZURlc2NyaXB0b3Iuc3RhZ2UpIHsKLSAgICAgICAgY2FzZSBXZWJHUFVT
aGFkZXJTdGFnZTo6VkVSVEVYOgotICAgICAgICAgICAgaWYgKHZlcnRleFN0YWdlLm1vZHVsZSkg
ewotICAgICAgICAgICAgICAgIExPRyhXZWJHUFUsICIlczogTXVsdGlwbGUgdmVydGV4IHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgdmVydGV4U3RhZ2UubW9kdWxlID0gc3RhZ2VEZXNjcmlwdG9yLm1vZHVsZS0+bW9kdWxlKCk7
Ci0gICAgICAgICAgICB2ZXJ0ZXhTdGFnZS5lbnRyeVBvaW50ID0gc3RhZ2VEZXNjcmlwdG9yLmVu
dHJ5UG9pbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJHUFVTaGFkZXJT
dGFnZTo6RlJBR01FTlQ6Ci0gICAgICAgICAgICBpZiAoZnJhZ21lbnRTdGFnZS5tb2R1bGUpIHsK
LSAgICAgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IE11bHRpcGxlIGZyYWdtZW50IHN0YWdl
cyBpbiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IhIiwgZnVuY3Rpb25OYW1lKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnJhZ21lbnRTdGFnZS5tb2R1bGUgPSBzdGFnZURlc2NyaXB0b3IubW9kdWxlLT5tb2R1bGUo
KTsKLSAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UuZW50cnlQb2ludCA9IHN0YWdlRGVzY3JpcHRv
ci5lbnRyeVBvaW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICBMT0coV2ViR1BVLCAiJXM6IEludmFsaWQgc2hhZGVyIHN0YWdlIGluIFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICB9CitSZWZQdHI8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+IFdlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKK3sKKyAgICBhdXRvIHZlcnRleFN0YWdl
ID0gdmFsaWRhdGVBbmRDb252ZXJ0UGlwZWxpbmVTdGFnZShkZXNjcmlwdG9yLnZlcnRleFN0YWdl
KTsKKyAgICBhdXRvIGZyYWdtZW50U3RhZ2UgPSB2YWxpZGF0ZUFuZENvbnZlcnRQaXBlbGluZVN0
YWdlKGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZSk7CiAKLSAgICAvLyBNZXRhbCAoaWYgbm90IG90
aGVyIEFQSXMpIHJlcXVpcmVzIGF0IGxlYXN0IHRoZSB2ZXJ0ZXggc2hhZGVyLgotICAgIGlmICgh
dmVydGV4U3RhZ2UubW9kdWxlIHx8IHZlcnRleFN0YWdlLmVudHJ5UG9pbnQuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIExPRyhXZWJHUFUsICIlczogSW52YWxpZCB2ZXJ0ZXggc3RhZ2UgaW4gV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yISIsIGZ1bmN0aW9uTmFtZSk7CisgICAgaWYgKCF2ZXJ0
ZXhTdGFnZSB8fCAhZnJhZ21lbnRTdGFnZSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BV
RGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSgpOiBJbnZhbGlkIFdlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yISIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBh
dXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPmNyZWF0ZVJlbmRlclBpcGVsaW5lKEdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciB7IFdURk1vdmUodmVydGV4U3RhZ2UpLCBXVEZNb3ZlKGZyYWdtZW50
U3RhZ2UpLCBkZXNjcmlwdG9yLnByaW1pdGl2ZVRvcG9sb2d5IH0pOworICAgIGF1dG8gcGlwZWxp
bmUgPSBtX2RldmljZS0+Y3JlYXRlUmVuZGVyUGlwZWxpbmUoR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yIHsgV1RGTW92ZSgqdmVydGV4U3RhZ2UpLCBXVEZNb3ZlKCpmcmFnbWVudFN0YWdlKSwg
ZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9neSwgZGVzY3JpcHRvci5pbnB1dFN0YXRlIH0pOwog
ICAgIHJldHVybiBwaXBlbGluZSA/IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUocGlwZWxp
bmUucmVsZWFzZU5vbk51bGwoKSkgOiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDQwMzU4
NGI1YmU0NzFkYTYxMjhmMmUxNjA0ZGI5YjYwNWZlM2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaApAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBXZWJHUFVJbmRleEZvcm1hdCA9IEdQVUluZGV4Rm9ybWF0OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5kZXhGb3JtYXQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUyNTZiNGU1NDczMmY3ZDM1YjdiMzYyNDZmNDRlNzQ3MTU3YzkyNzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbmRleEZvcm1h
dC5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20v
Z3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0eXBlZGVm
IHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIERv
Tm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVSW5kZXhGb3JtYXQgewor
ICAgIGNvbnN0IHUzMiBVSU5UMTYgPSAwOworICAgIGNvbnN0IHUzMiBVSU5UMzIgPSAxOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUlucHV0U3Rh
dGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1
dFN0YXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1OTMwNmI5NzgyYmJjYmYyMmUxMmFlOWUx
M2VjMjgwMDRlNDM3YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRl
ICJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEF0dHJp
YnV0ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBXZWJHUFVJbmRleEZvcm1hdEVudW0g
PSBHUFVJbmRleEZvcm1hdEVudW07Cit1c2luZyBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciA9
IEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5OTQyNDEyODQ4YzFhZWJlYjlhMGZjYmU3YTYxNTllNTFjNjg4MDQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0YXRlRGVzY3Jp
cHRvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5j
b20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgdTMyOwordHlwZWRlZiB1MzIgV2ViR1BVSW5kZXhGb3JtYXRFbnVt
OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
R1BVCitdIGRpY3Rpb25hcnkgV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgeworICAgIFdlYkdQ
VUluZGV4Rm9ybWF0RW51bSBpbmRleEZvcm1hdDsKKworICAgIHNlcXVlbmNlPFdlYkdQVVZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3I+IGF0dHJpYnV0ZXM7CisgICAgc2VxdWVuY2U8V2ViR1BVVmVy
dGV4SW5wdXREZXNjcmlwdG9yPiBpbnB1dHM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkM2QzNDJj
MzQwM2VmYzlhZTg3YWYwY2E5ZWJkZDk2Y2I4Y2M1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2RlLmgKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIFdlYkdQVUlucHV0U3RlcE1vZGUgPSBHUFVJbnB1dFN0ZXBNb2RlOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVSW5wdXRTdGVwTW9k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVJbnB1dFN0ZXBNb2Rl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMDBiMjNlOTBjNTBlMmNkNmIzMTA4ZjEzOWQzYTVmZDYzODgwYTRk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
SW5wdXRTdGVwTW9kZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczov
L2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlk
bAorCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VC
R1BVLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJH
UFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVSW5w
dXRTdGVwTW9kZSB7CisgICAgY29uc3QgdTMyIFZFUlRFWCA9IDA7CisgICAgY29uc3QgdTMyIElO
U1RBTkNFID0gMTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKaW5kZXggMzEyMWE5YmE1Njgz
NzQwMTQzY2VjMzA1OTA4MmJjODJjYTU0MTU5Mi4uNTJjMmY5YWMwZmI5MWM0MDc0NzlkZmVmZTNl
OGUwOWMyMDMxMWEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaApAQCAtMjcsMTMgKzI3LDEw
IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UgewotICAgIFZlY3Rv
cjxXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gc3RhZ2VzOworICAgIC8vIFdlYkdQVVBp
cGVsaW5lTGF5b3V0IGxheW91dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5pZGwKaW5kZXggMzNmN2E3NjYxN2FiMTk1OWYyMDcxODg2OWI1OTdl
N2Y1YzJlNDkyOC4uZWIxMzViNTU3NDZlNDYxNjRlYzZkNzg3MGQxMTljOWEzMjc1ZjExMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwKQEAgLTI5LDUgKzI5LDQgQEAKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVQogXSBkaWN0aW9uYXJ5IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJh
c2UgewogICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGxheW91dDsKLSAgICBzZXF1ZW5jZTxX
ZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvcj4gc3RhZ2VzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVz
Y3JpcHRvci5oCmluZGV4IDMzZjNhZTA5NTY1MDBkNGY3YjM3YzVlNTA3ZDA4N2FkZjBhZGExNjYu
LjQ1YTg3YmQ2Y2U1NWU3N2FjODJhOTM4NzRjNTJhYzk2MmI1NjMxYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFn
ZURlc2NyaXB0b3IuaApAQCAtMzMsMTEgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci11c2luZyBXZWJHUFVTaGFkZXJTdGFnZUVudW0gPSB1bnNpZ25lZCBsb25nOwotCiBzdHJ1Y3Qg
V2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgewogICAgIGNvbnN0IFdlYkdQVVNoYWRlck1v
ZHVsZSogbW9kdWxlID0gbnVsbHB0cjsKLSAgICBXZWJHUFVTaGFkZXJTdGFnZUVudW0gc3RhZ2U7
CiAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5p
ZGwKaW5kZXggMGQ2YjA4ODE3ZDkyZGE3YmNjZDAyOGFjN2ZlM2VjYzExMjIzNTliNC4uZWVkYWYw
ODE2ZjU0NDgxZDM3ZDgzYzY3NDY5MmMyOWI2ZjdlYzc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNj
cmlwdG9yLmlkbApAQCAtMzEsNiArMzEsNSBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgV2ViR1BV
U2hhZGVyU3RhZ2VFbnVtOwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVCiBdIGRpY3Rpb25h
cnkgV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IgewogICAgIFdlYkdQVVNoYWRlck1vZHVs
ZSBtb2R1bGU7Ci0gICAgV2ViR1BVU2hhZGVyU3RhZ2VFbnVtIHN0YWdlOwogICAgIERPTVN0cmlu
ZyBlbnRyeVBvaW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmNwcAppbmRleCAxMmU2OTAzZjk5OWJjMzA2
MzFhNzkwZTdhZGI1MTU2ZjAwYWY1MjI5Li4xYTFjNTJjYmM5NzUwY2I3NGE2ZGI3NjU3YjJjZTgx
ZDZhMDcwODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNs
dWRlICJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBh
c3NFbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDYgKzQ2LDIxIEBAIFdlYkdQVVJl
bmRlclBhc3NFbmNvZGVyOjpXZWJHUFVSZW5kZXJQYXNzRW5jb2RlcihSZWY8V2ViR1BVQ29tbWFu
ZEJ1ZmZlcj4mJiBjcmVhCiB7CiB9CiAKK3ZvaWQgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcnModW5zaWduZWQgbG9uZyBzdGFydFNsb3QsIFZlY3RvcjxSZWZQdHI8V2Vi
R1BVQnVmZmVyPj4mJiBidWZmZXJzLCBWZWN0b3I8dW5zaWduZWQ+JiYgb2Zmc2V0cykKK3sKKyAg
ICBpZiAoYnVmZmVycy5pc0VtcHR5KCkgfHwgYnVmZmVycy5zaXplKCkgIT0gb2Zmc2V0cy5zaXpl
KCkpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIldlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRW
ZXJ0ZXhCdWZmZXJzOiBJbnZhbGlkIG51bWJlciBvZiBidWZmZXJzIG9yIG9mZnNldHMhIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGdwdUJ1ZmZlcnMgPSBidWZmZXJzLm1h
cChbXSAoY29uc3QgYXV0byYgYnVmZmVyKSAtPiBSZWY8Y29uc3QgR1BVQnVmZmVyPiB7CisgICAg
ICAgIHJldHVybiBidWZmZXItPmJ1ZmZlcigpOworICAgIH0pOworCisgICAgLy8gRklYTUU6IFVz
ZSBzdGFydFNsb3QgcHJvcGVybHkuCisgICAgbV9wYXNzRW5jb2Rlci0+c2V0VmVydGV4QnVmZmVy
cyhzdGFydFNsb3QsIFdURk1vdmUoZ3B1QnVmZmVycyksIFdURk1vdmUob2Zmc2V0cykpOworfQor
CiB2b2lkIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3KHVuc2lnbmVkIGxvbmcgdmVydGV4
Q291bnQsIHVuc2lnbmVkIGxvbmcgaW5zdGFuY2VDb3VudCwgdW5zaWduZWQgbG9uZyBmaXJzdFZl
cnRleCwgdW5zaWduZWQgbG9uZyBmaXJzdEluc3RhbmNlKQogewogICAgIC8vIEZJWE1FOiBXaGF0
IGtpbmQgb2YgdmFsaWRhdGlvbiBkbyB3ZSBuZWVkIHRvIGhhbmRsZSBoZXJlPwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVy
LmgKaW5kZXggYzM4YzlmZGNlOTlkNDA2ZDA5YzhiNDdhNTQxOWQ2MTg4NWM4Mjk0MS4uMzEyOTZl
M2U5ZTgyOGUxMDQyMTBlZDQwNTk3OGUyZTJmMzFmYzA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5oCkBAIC0z
MCwxNiArMzAsMjAgQEAKICNpbmNsdWRlICJXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlci5o
IgogCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcjsK
IGNsYXNzIEdQVVJlbmRlclBhc3NFbmNvZGVyOworY2xhc3MgV2ViR1BVQnVmZmVyOwogCiBjbGFz
cyBXZWJHUFVSZW5kZXJQYXNzRW5jb2RlciBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQcm9ncmFtbWFi
bGVQYXNzRW5jb2RlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxXZWJHUFVSZW5kZXJQ
YXNzRW5jb2Rlcj4gY3JlYXRlKFJlZjxXZWJHUFVDb21tYW5kQnVmZmVyPiYmLCBSZWY8R1BVUmVu
ZGVyUGFzc0VuY29kZXI+JiYpOwogCisgICAgLy8gRklYTUU6IExhc3QgYXJndW1lbnQgc2hvdWxk
IGJlIFZlY3Rvcjx1bnNpZ25lZCBsb25nPi4gV2h5IGlzIHRoZSBnZW5lcmF0ZWQgY29kZSBpbmNv
cnJlY3RseSBhc3N1bWluZyB0aGUgSURMIHdhbnRzIGEgc2VxdWVuY2U8dW5zaWduZWQgaW50Pj8K
KyAgICB2b2lkIHNldFZlcnRleEJ1ZmZlcnModW5zaWduZWQgbG9uZywgVmVjdG9yPFJlZlB0cjxX
ZWJHUFVCdWZmZXI+PiYmLCBWZWN0b3I8dW5zaWduZWQ+JiYpOwogICAgIHZvaWQgZHJhdyh1bnNp
Z25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVyLmlkbAppbmRleCA4NjhmNjhmYzRhZDFmZTg4YWU0ZGRk
N2M3ZTZkZDVmNGU5NjJjNTg2Li5kMTYyZWM1MjhlZGJlMWQ2ODA1NDQ2YmVhOTRmYWJhNjIwOTFl
OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5k
ZXJQYXNzRW5jb2Rlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXIuaWRsCkBAIC0zMSwxMiArMzEsMTMgQEAgdHlwZWRlZiB1bnNp
Z25lZCBsb25nIHUzMjsKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgV2ViR1BVUmVuZGVyUGFzc0VuY29kZXIgOiBXZWJH
UFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlciB7CisgICAgdm9pZCBzZXRWZXJ0ZXhCdWZmZXJzKHUz
MiBzdGFydFNsb3QsIHNlcXVlbmNlPFdlYkdQVUJ1ZmZlcj4gYnVmZmVycywgc2VxdWVuY2U8dTMy
PiBvZmZzZXRzKTsKKwogICAgIHZvaWQgZHJhdyh1MzIgdmVydGV4Q291bnQsIHUzMiBpbnN0YW5j
ZUNvdW50LCB1MzIgZmlyc3RWZXJ0ZXgsIHUzMiBmaXJzdEluc3RhbmNlKTsKIAogLyogTm90IFll
dCBJbXBsZW1lbnRlZAogICAgIHZvaWQgc2V0QmxlbmRDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBm
bG9hdCBiLCBmbG9hdCBhKTsKICAgICB2b2lkIHNldEluZGV4QnVmZmVyKFdlYkdQVUJ1ZmZlciBi
dWZmZXIsIHUzMiBvZmZzZXQpOwotICAgIHZvaWQgc2V0VmVydGV4QnVmZmVycyh1MzIgc3RhcnRT
bG90LCBzZXF1ZW5jZTxXZWJHUFVCdWZmZXI+IGJ1ZmZlcnMsIHNlcXVlbmNlPHUzMj4gb2Zmc2V0
cyk7CiAKICAgICB2b2lkIGRyYXdJbmRleGVkKHUzMiBpbmRleENvdW50LCB1MzIgaW5zdGFuY2VD
b3VudCwgdTMyIGZpcnN0SW5kZXgsIGkzMiBiYXNlVmVydGV4LCB1MzIgZmlyc3RJbnN0YW5jZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggOWMyNjQ2MzkwODQ2ZGRhODI5ZWZj
YzI4OTEzNjhkY2E4OTk0MDcyYi4uYzEyZjc1OGE3YmZjZTg5YWFhMTRjNjFkMjA1Y2VmOTNmZDlh
MDM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTI4LDE0ICsyOCwxOSBAQAog
I2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUg
IldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNl
IHsKICAgICB1c2luZyBQcmltaXRpdmVUb3BvbG9neSA9IEdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvcjo6UHJpbWl0aXZlVG9wb2xvZ3k7CiAKKyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3Jp
cHRvciB2ZXJ0ZXhTdGFnZTsKKyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBmcmFn
bWVudFN0YWdlOwogICAgIFByaW1pdGl2ZVRvcG9sb2d5IHByaW1pdGl2ZVRvcG9sb2d5OworICAg
IFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIGlucHV0U3RhdGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmlkbAppbmRleCA3ZmE1NDQ3
NDNkZjI2OWYyY2MzOGI4NDFmMjhhNTdhMjM1MGExNTk0Li5mZGRiNjI4ZGZhNDBiOTA1MmY3OTg5
MjE4NTYwODAyNGVlMzkwOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5pZGwKQEAg
LTM2LDExICszNiwxNSBAQCBlbnVtIFdlYkdQVVByaW1pdGl2ZVRvcG9sb2d5IHsKICAgICBDb25k
aXRpb25hbD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKIF0gZGljdGlvbmFy
eSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBXZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlIHsKKyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZTsK
KyAgICBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvciBmcmFnbWVudFN0YWdlOworCiAgICAg
V2ViR1BVUHJpbWl0aXZlVG9wb2xvZ3kgcHJpbWl0aXZlVG9wb2xvZ3k7Ci0gICAgLyogVG8gQmUg
SW1wbGVtZW50ZWQ6Ci0gICAgc2VxdWVuY2U8V2ViR1BVQmxlbmRTdGF0ZT4gYmxlbmRTdGF0ZXM7
Ci0gICAgV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUgZGVwdGhTdGVuY2lsU3RhdGU7Ci0gICAgV2Vi
R1BVSW5wdXRTdGF0ZSBpbnB1dFN0YXRlOwotICAgIFdlYkdQVUF0dGFjaG1lbnRzU3RhdGUgYXR0
YWNobWVudHNTdGF0ZTsgKi8KKyAgICBXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBpbnB1dFN0
YXRlOworLyogVG8gQmUgSW1wbGVtZW50ZWQ6CisgICAgc2VxdWVuY2U8V2ViR1BVQmxlbmRTdGF0
ZURlc2NyaXB0b3I+IGJsZW5kU3RhdGVzOworICAgIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlRGVz
Y3JpcHRvciBkZXB0aFN0ZW5jaWxTdGF0ZTsKKyAgICBXZWJHUFVBdHRhY2htZW50c1N0YXRlRGVz
Y3JpcHRvciBhdHRhY2htZW50c1N0YXRlOwogICAgIC8vIFRPRE8gb3RoZXIgcHJvcGVydGllcwor
Ki8KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVT
aGFkZXJTdGFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVy
U3RhZ2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE1MTMwYzJmMTc0MDg2M2Rj
YmZmNTFlMTYzZGVkN2UyYzliMjZhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJT
dGFnZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQkdQVSkKLQotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV2ViR1BVU2hhZGVyU3RhZ2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJHUFVTaGFkZXJTdGFnZT4gewotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBsb25nIFZFUlRFWCA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGxvbmcgRlJBR01FTlQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIENP
TVBVVEUgPSAyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVNoYWRlclN0YWdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVNoYWRlclN0YWdlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EzN2EzNzQx
MmQ0OTMwMWJiZjU3ODE3ZTg1NmM5NmQwNjM0Y2U2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVTaGFkZXJTdGFnZS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2ln
bi9za2V0Y2gud2ViaWRsCi0KLXR5cGVkZWYgdW5zaWduZWQgbG9uZyB1MzI7Ci0KLVsKLSAgICBD
b25kaXRpb25hbD1XRUJHUFUsCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgV2ViR1BVU2hhZGVyU3RhZ2Ugewot
ICAgIGNvbnN0IHUzMiBWRVJURVggPSAwOwotICAgIGNvbnN0IHUzMiBGUkFHTUVOVCA9IDE7Ci0g
ICAgY29uc3QgdTMyIENPTVBVVEUgPSAyOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMmQ4MWE4OTgzMzJkM2MyNGJhYzcwMjk3Y2M0MTliZjc2ZWUxY2RhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVWZXJ0ZXhB
dHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgV2Vi
R1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciA9IEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3I7Cit1c2luZyBXZWJHUFVWZXJ0ZXhGb3JtYXRFbnVtID0gR1BVVmVydGV4Rm9ybWF0RW51bTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJp
YnV0ZURlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk2YWVhMzM2N2MxNzY4
YjhlYmQ5YjYzM2ViZmQ0OGFiZTA3M2FiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9n
cHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKwordHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHUzMjsKK3R5cGVkZWYgdTMyIFdlYkdQVVZlcnRleEZvcm1hdEVudW07CisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUKK10gZGlj
dGlvbmFyeSBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yIHsKKyAgICB1MzIgc2hhZGVy
TG9jYXRpb247CisgICAgdTMyIGlucHV0U2xvdDsKKyAgICB1MzIgb2Zmc2V0OworICAgIFdlYkdQ
VVZlcnRleEZvcm1hdEVudW0gZm9ybWF0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA3ODZkNTFmZThm
YmJiY2E0OWQ0M2IzYjJkN2Q3YjA3OWNjMDUxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5oCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNp
bmNsdWRlICJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgV2ViR1BVVmVydGV4Rm9ybWF0ID0gR1BVVmVydGV4Rm9ybWF0OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4Rm9ybWF0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRleEZvcm1hdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGNmZWY0MWFmMDMzNWNmMTZhMjQ2YmMwZTJlOWYzOWMyOThiYzg3YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVZlcnRl
eEZvcm1hdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1
Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9iL21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCit0
eXBlZGVmIHVuc2lnbmVkIGxvbmcgdTMyOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAor
ICAgIERvTm90Q2hlY2tDb25zdGFudHMsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVVmVydGV4Rm9y
bWF0IHsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyX0czMl9CMzJfQTMyID0gMDsKKyAgICBjb25z
dCB1MzIgRkxPQVRfUjMyX0czMl9CMzIgPSAxOworICAgIGNvbnN0IHUzMiBGTE9BVF9SMzJfRzMy
ID0gMjsKKyAgICBjb25zdCB1MzIgRkxPQVRfUjMyID0gMzsKKyAgICAvLyBUT0RPIG90aGVyIHZl
cnRleCBmb3JtYXRzCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVkMzc1
NzMzZjZiMWFmN2Q2M2Y5MjMwOTE2OWJhNGFkOGM5YjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFdlYkdQVUlucHV0U3RlcE1vZGVFbnVtID0gR1BVSW5w
dXRTdGVwTW9kZUVudW07Cit1c2luZyBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IgPSBHUFVW
ZXJ0ZXhJbnB1dERlc2NyaXB0b3I7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MDdlMzE1MzA0OWUzNDU5NWQxODg3ZDY4ODg2Zjk4Njg0ZDk4MmU0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVVmVydGV4SW5wdXREZXNjcmlw
dG9yLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNv
bS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyB1MzI7Cit0eXBlZGVmIHUzMiBXZWJHUFVJbnB1dFN0ZXBNb2RlRW51
bTsKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkdQVQorXSBkaWN0aW9uYXJ5IFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvciB7CisgICAgdTMy
IHN0cmlkZTsKKyAgICBXZWJHUFVJbnB1dFN0ZXBNb2RlRW51bSBzdGVwTW9kZTsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDkzNzNhMjU2ZWYxMTIxY2M0MmNkMDFiMDc4YWNlYjAwNGRkODE0NTIuLmI0
YmRiMjViNTE3MDY4NzQ0MGJhNjYzZjA2YTA5YmVjNDAxZTBlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0zMjI4LDYgKzMyMjgsOSBAQCBKU1dlYkdQVUJ1ZmZlclVzYWdlLmNwcAogSlNXZWJHUFVDb21t
YW5kQnVmZmVyLmNwcAogSlNXZWJHUFVDb2xvci5jcHAKIEpTV2ViR1BVRGV2aWNlLmNwcAorSlNX
ZWJHUFVJbmRleEZvcm1hdC5jcHAKK0pTV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuY3BwCitK
U1dlYkdQVUlucHV0U3RlcE1vZGUuY3BwCiBKU1dlYkdQVVF1ZXVlLmNwcAogSlNXZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmNwcAogSlNXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5j
cHAKQEAgLTMyNDAsMTEgKzMyNDMsMTMgQEAgSlNXZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKIEpT
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVTaGFkZXJNb2R1bGUu
Y3BwCiBKU1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCi1KU1dlYkdQVVNoYWRlclN0
YWdlLmNwcAogSlNXZWJHUFVTd2FwQ2hhaW4uY3BwCiBKU1dlYkdQVVRleHR1cmUuY3BwCiBKU1dl
YkdQVVRleHR1cmVGb3JtYXRFbnVtLmNwcAogSlNXZWJHUFVUZXh0dXJlVmlldy5jcHAKK0pTV2Vi
R1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVVmVydGV4Rm9ybWF0LmNw
cAorSlNXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuY3BwCiBKU1dlYk1ldGFsQnVmZmVyLmNw
cAogSlNXZWJNZXRhbENvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYk1ldGFsQ29tbWFuZFF1ZXVlLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGRiY2I0YTdlZTJlNjdjZjBjM2JmY2E5NThkMzVjOGIxZTRmNjAxNTAuLmVjZTk5YjZk
NzlmYWE4Y2NkZWE2MDcwZjcwYjU1ZGQ5NDY2ZmFmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzk4LDggKzEzNzk4LDE0
IEBACiAJCUQwNjE1RkNDMjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUQwNjE1RkNEMjE3RkU1QzYwMDhBNDhBOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2MTVGQ0UyMTdGRTVDNjAwOEE0OEE4IC8qIFdlYkdQVVNo
YWRlck1vZHVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRDA2M0FFNEMyMUMwN0FCNTAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZl
clVzYWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUQwNjNBRTRFMjFDMDgxMEEwMDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2Fn
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEMDYzQUUzRjIxQzA1REREMDAwRTZBMzUgLyogV2ViR1BVQnVmZmVyVXNh
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQnVmZmVyVXNhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDAyMUMwNURERDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVz
YWdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJHUFVCdWZmZXJVc2FnZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwNjNBRTQ0MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJHUFVWZXJ0ZXhGb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVVmVydGV4Rm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJHUFVWZXJ0ZXhGb3Jt
YXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleEZvcm1hdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQwNjNBRTQ2MjFDMDY2MjYwMDBFNkEzNSAvKiBXZWJHUFVJbnB1dFN0ZXBNb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDcyMUMwNjYyNjAwMEU2QTM1IC8qIFdlYkdQVUlucHV0U3Rl
cE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkdQVUlucHV0U3RlcE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEMDYzQUU0ODIxQzA2NkRCMDAwRTZBMzUgLyogV2ViR1BVSW5kZXhGb3Jt
YXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5kZXhGb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDA2M0FFNDkyMUMwNjZEQjAwMEU2QTM1IC8qIFdlYkdQVUluZGV4Rm9y
bWF0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJHUFVJbmRleEZvcm1hdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW92ZUZvcm1hdENvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEUwQ0ZEMTE0NjAwNjVGNDNG
IC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwN0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zZXJ0TGlzdENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM4MzAsOCArMTM4MzYsNiBAQAog
CQlEMEJENEY1QjE0MDg4NTBGMDA2ODM5QjYgLyogRGljdGF0aW9uQ29tbWFuZElPUy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25Db21tYW5kSU9TLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFERSAvKiBXZWJH
UFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBlbGlu
ZVN0YWdlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEM0MTlF
QzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRDBDNDE5RUUyMTgzRDlDODAwOUVDMURFIC8qIFdlYkdQVVNoYWRlclN0YWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVNoYWRlclN0YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUQwQzQxOUVGMjE4M0Q5QzgwMDlFQzFERSAvKiBXZWJHUFVTaGFkZXJTdGFn
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViR1BVU2hhZGVyU3RhZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYxMjE4M0VCMzEwMDlFQzFERSAv
KiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RjIy
MTgzRUZFQzAwOUVDMURFIC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzODUzLDYgKzEzODU3LDE1IEBACiAJCUQwRDg2NDhFMjFCNzA2
NzYwMDNDOTgzQyAvKiBXZWJHUFVCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJ1ZmZlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwRDg2NDkxMjFCNzYwQzQwMDNDOTgzQyAvKiBH
UFVCdWZmZXJNZXRhbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVUJ1ZmZlck1ldGFsLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEQ4NjQ5MjIxQjc2MEYyMDAzQzk4M0Mg
LyogR1BVQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMEQ4NjQ5MzIxQkExNzNEMDAzQzk4M0MgLyogV2ViR1BVSW5wdXRT
dGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTQyMUJBMTczRDAwM0M5
ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVJbnB1dFN0
YXRlRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwRDg2NDk1
MjFCQTE4RjQwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OTYyMUJBMThGNDAwM0M5ODNDIC8qIFdlYkdQVVZl
cnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVZlcnRleEF0dHJpYnV0ZURl
c2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5NzIxQkEx
OUE3MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMEQ4NjQ5OTIxQkExQjFGMDAzQzk4M0MgLyogR1BVSW5w
dXRTdGF0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVSW5wdXRTdGF0ZURlc2NyaXB0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBEODY0OUIyMUJBMUMyRDAwM0M5
ODNDIC8qIEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BV
VmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMEQ4NjQ5QzIxQkExQ0U4MDAzQzk4M0MgLyogR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdQVVZlcnRleElucHV0RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMERBMEJFNDIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENo
YWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMERBMEJFNTIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENoYWlu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwREEwQkU2MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2Fw
Q2hhaW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkdQVVN3YXBDaGFpbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODAyNCw2ICsxODAzNyw3IEBACiAJCQkJMzEyRkY4QkQyMUE0QzJGMTAwRUIx
OTlEIC8qIEdQVUNvbW1hbmRCdWZmZXIuaCAqLywKIAkJCQkzMTJGRjhCRjIxQTRDMkYxMDBFQjE5
OUQgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTJGRjhCRTIxQTRDMkYxMDBFQjE5OUQgLyog
R1BVRGV2aWNlLmggKi8sCisJCQkJRDBEODY0OTkyMUJBMUIxRjAwM0M5ODNDIC8qIEdQVUlucHV0
U3RhdGVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJGNDAwRUIxOTlEIC8qIEdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQkzMTJGRjhDMjIxQTRDMkYzMDBFQjE5
OUQgLyogR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAqLywKIAkJCQlEMDMyMTFDRjIxQUM5
NTRFMDA3NjNDRjIgLyogR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuaCAqLywKQEAgLTE4MDM4
LDYgKzE4MDUyLDggQEAKIAkJCQkzMTJGRjhCQTIxQTRDMkVGMDBFQjE5OUQgLyogR1BVU3dhcENo
YWluLmggKi8sCiAJCQkJMzEyRkY4QzUyMUE0QzJGNDAwRUIxOTlEIC8qIEdQVVRleHR1cmUuaCAq
LywKIAkJCQkzMTJGRjhDMzIxQTRDMkYzMDBFQjE5OUQgLyogR1BVVGV4dHVyZUZvcm1hdEVudW0u
aCAqLywKKwkJCQlEMEQ4NjQ5QjIxQkExQzJEMDAzQzk4M0MgLyogR1BVVmVydGV4QXR0cmlidXRl
RGVzY3JpcHRvci5oICovLAorCQkJCUQwRDg2NDlDMjFCQTFDRTgwMDNDOTgzQyAvKiBHUFVWZXJ0
ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKIAkJCQk0OTg3NzBENzEyNDJDNTM1MDAyMjI2QkEgLyog
VGV4dHVyZS5jcHAgKi8sCiAJCQkJNDk4NzcwRDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUu
aCAqLywKIAkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi8s
CkBAIC0yNTUxNSw2ICsyNTUzMSwxMCBAQAogCQkJCUQwRDg2NDhFMjFCNzA2NzYwMDNDOTgzQyAv
KiBXZWJHUFVCdWZmZXIuaWRsICovLAogCQkJCUQwRDg2NDgyMjFCNjE3MjcwMDNDOTgzQyAvKiBX
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDBEODY0ODMyMUI2MTcyNzAwM0M5ODND
IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaWRsICovLAorCQkJCUQwNjNBRTRFMjFDMDgxMEEw
MDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAorCQkJCUQwNjNBRTNGMjFDMDVEREQw
MDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5oICovLAorCQkJCUQwNjNBRTRDMjFDMDdBQjUw
MDBFNkEzNSAvKiBXZWJHUFVCdWZmZXJVc2FnZS5pZGwgKi8sCisJCQkJRDA2M0FFNDAyMUMwNURE
RDAwMEU2QTM1IC8qIFdlYkdQVUJ1ZmZlclVzYWdlLmlkbCAqLywKIAkJCQlEMDAxRDlBQzIxQjBD
ODFBMDAyM0I5QkMgLyogV2ViR1BVQ29sb3IuaCAqLywKIAkJCQlEMDAxRDlBRDIxQjBDODFBMDAy
M0I5QkMgLyogV2ViR1BVQ29sb3IuaWRsICovLAogCQkJCUQwRUFDRjc3MjE5MzcyMjgwMDBGQTc1
QyAvKiBXZWJHUFVDb21tYW5kQnVmZmVyLmNwcCAqLywKQEAgLTI1NTIzLDYgKzI1NTQzLDEyIEBA
CiAJCQkJRDAwRjU5NTMyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5jcHAgKi8sCiAJ
CQkJRDAwRjU5NTIyMTcwMUQ4QzAwMEQ3MURCIC8qIFdlYkdQVURldmljZS5oICovLAogCQkJCUQw
MEY1OTU0MjE3MDFEOEMwMDBENzFEQiAvKiBXZWJHUFVEZXZpY2UuaWRsICovLAorCQkJCUQwNjNB
RTQ4MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5oICovLAorCQkJCUQwNjNB
RTQ5MjFDMDY2REIwMDBFNkEzNSAvKiBXZWJHUFVJbmRleEZvcm1hdC5pZGwgKi8sCisJCQkJRDBE
ODY0OTMyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yLmggKi8s
CisJCQkJRDBEODY0OTQyMUJBMTczRDAwM0M5ODNDIC8qIFdlYkdQVUlucHV0U3RhdGVEZXNjcmlw
dG9yLmlkbCAqLywKKwkJCQlEMDYzQUU0NjIxQzA2NjI2MDAwRTZBMzUgLyogV2ViR1BVSW5wdXRT
dGVwTW9kZS5oICovLAorCQkJCUQwNjNBRTQ3MjFDMDY2MjYwMDBFNkEzNSAvKiBXZWJHUFVJbnB1
dFN0ZXBNb2RlLmlkbCAqLywKIAkJCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQwQzQxOUYxMjE4M0VCMzEwMDlFQzFE
RSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLywKIAkJCQlEMEM0MTlFQjIx
ODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAqLywKQEAg
LTI1NTUzLDggKzI1NTc5LDYgQEAKIAkJCQlEMDYxNUZDRTIxN0ZFNUM2MDA4QTQ4QTggLyogV2Vi
R1BVU2hhZGVyTW9kdWxlLmlkbCAqLywKIAkJCQlEMDYwRDg4NzIxODI2OTcwMDAzMzkzMTggLyog
V2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oICovLAogCQkJCUQwNjBEODg0MjE4MjVENUYw
MDMzOTMxOCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmlkbCAqLywKLQkJCQlEMEM0
MTlFRTIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaCAqLywKLQkJCQlEMEM0
MTlFRjIxODNEOUM4MDA5RUMxREUgLyogV2ViR1BVU2hhZGVyU3RhZ2UuaWRsICovLAogCQkJCUQw
REEwQkU1MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uY3BwICovLAogCQkJCUQw
REEwQkU0MjE3OTMwRTIwMDdGRTJBQyAvKiBXZWJHUFVTd2FwQ2hhaW4uaCAqLywKIAkJCQlEMERB
MEJFNjIxNzkzMEUyMDA3RkUyQUMgLyogV2ViR1BVU3dhcENoYWluLmlkbCAqLywKQEAgLTI1NTY2
LDggKzI1NTkwLDEyIEBACiAJCQkJRDBFQUNGODgyMTkzRUU0RTAwMEZBNzVDIC8qIFdlYkdQVVRl
eHR1cmVWaWV3LmNwcCAqLywKIAkJCQlEMEVBQ0Y4NzIxOTNFRTRFMDAwRkE3NUMgLyogV2ViR1BV
VGV4dHVyZVZpZXcuaCAqLywKIAkJCQlEMEVBQ0Y4OTIxOTNFRTRFMDAwRkE3NUMgLyogV2ViR1BV
VGV4dHVyZVZpZXcuaWRsICovLAotCQkJCUQwNjNBRTRDMjFDMDdBQjUwMDBFNkEzNSAvKiBXZWJH
UFVCdWZmZXJVc2FnZS5pZGwgKi8sCi0JCQkJRDA2M0FFNEUyMUMwODEwQTAwMEU2QTM1IC8qIFdl
YkdQVUJ1ZmZlclVzYWdlLmggKi8sCisJCQkJRDBEODY0OTUyMUJBMThGNDAwM0M5ODNDIC8qIFdl
YkdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuaCAqLywKKwkJCQlEMEQ4NjQ5NjIxQkExOEY0
MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5pZGwgKi8sCisJCQkJ
RDA2M0FFNDQyMUMwNjE3RDAwMEU2QTM1IC8qIFdlYkdQVVZlcnRleEZvcm1hdC5oICovLAorCQkJ
CUQwNjNBRTQ1MjFDMDYxN0QwMDBFNkEzNSAvKiBXZWJHUFVWZXJ0ZXhGb3JtYXQuaWRsICovLAor
CQkJCUQwRDg2NDk3MjFCQTE5QTcwMDNDOTgzQyAvKiBXZWJHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0
b3IuaCAqLywKKwkJCQlEMEQ4NjQ5ODIxQkExOUE3MDAzQzk4M0MgLyogV2ViR1BVVmVydGV4SW5w
dXREZXNjcmlwdG9yLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2ViZ3B1OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAppbmRleCBkMjU2ODI3ZWI4ZGZjYzg3ZjMxZjA2NDRiNDg4YWNjNDI0
YjQ3YWNkLi5lMGIzOTdmM2RkZDY0M2U3ZTRlMTNmYzk4NTNlNWUwMWQxYjFmY2YxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0x
OTMsMTYgKzE5MywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2ViR1BVQnVm
ZmVyVXNhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVDb21tYW5kQnVmZmVyKSBcCiAgICAgbWFjcm8o
V2ViR1BVRGV2aWNlKSBcCisgICAgbWFjcm8oV2ViR1BVSW5kZXhGb3JtYXQpIFwKKyAgICBtYWNy
byhXZWJHUFVJbnB1dFN0ZXBNb2RlKSBcCiAgICAgbWFjcm8oV2ViR1BVUXVldWUpIFwKICAgICBt
YWNybyhXZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2RlcikgXAogICAgIG1hY3JvKFdlYkdQVVJl
bmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHUFVSZW5kZXJQYXNzRW5jb2RlcikgXAog
ICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBcCi0gICAgbWFjcm8oV2ViR1BVU2hhZGVy
U3RhZ2UpIFwKICAgICBtYWNybyhXZWJHUFVTaGFkZXJNb2R1bGUpIFwKICAgICBtYWNybyhXZWJH
UFVTd2FwQ2hhaW4pIFwKICAgICBtYWNybyhXZWJHUFVUZXh0dXJlKSBcCiAgICAgbWFjcm8oV2Vi
R1BVVGV4dHVyZVZpZXcpIFwKKyAgICBtYWNybyhXZWJHUFVWZXJ0ZXhGb3JtYXQpIFwKICAgICBt
YWNybyhXZWJNZXRhbEJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZEJ1ZmZlcikg
XAogICAgIG1hY3JvKFdlYk1ldGFsQ29tbWFuZFF1ZXVlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVJbnB1dFN0YXRlRGVzY3Jp
cHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhNzg0NzczY2E1ODU4NDJlYzVkZDljZjBjNWQ2ODVmNDExMDVh
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVVmVy
dGV4QXR0cmlidXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVZlcnRleElucHV0RGVzY3Jp
cHRvci5oIgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgR1BVSW5kZXhGb3JtYXRFbnVt
ID0gdW5zaWduZWQgbG9uZzsKKworY2xhc3MgR1BVSW5kZXhGb3JtYXQgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVJbmRleEZvcm1hdD4geworcHVibGljOgorICAgIGVudW0gRW51bSA6IEdQVUluZGV4
Rm9ybWF0RW51bSB7CisgICAgICAgIFVpbnQxNiA9IDAsCisgICAgICAgIFVpbnQzMiA9IDEKKyAg
ICB9OworfTsKKworc3RydWN0IEdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIHsKKyAgICBHUFVJbmRl
eEZvcm1hdEVudW0gaW5kZXhGb3JtYXQ7CisKKyAgICBWZWN0b3I8R1BVVmVydGV4QXR0cmlidXRl
RGVzY3JpcHRvcj4gYXR0cmlidXRlczsKKyAgICBWZWN0b3I8R1BVVmVydGV4SW5wdXREZXNjcmlw
dG9yPiBpbnB1dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVJlbmRlclBhc3NFbmNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAppbmRleCAzYjY0ZDA0NGNhNWU5YzFh
YmRhMGFkZTI3NGZiMjFiY2I5ZjAwNDM1Li5jOTA3MWNiZjYxZjVhM2MyYWFlYWVkYjliZmMxMGNi
MTY0MzBmNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGFzc0VuY29kZXIuaApAQCAtMzIsMTEgKzMyLDEzIEBACiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogT0JKQ19Q
Uk9UT0NPTChNVExSZW5kZXJDb21tYW5kRW5jb2Rlcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BVQ29tbWFuZEJ1ZmZlcjsKIGNsYXNzIEdQVVJl
bmRlclBpcGVsaW5lOwogCkBAIC01MSw2ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
UGlwZWxpbmUoUmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmKSBmaW5hbDsKIAorICAgIHZvaWQgc2V0
VmVydGV4QnVmZmVycyh1bnNpZ25lZCBsb25nLCBWZWN0b3I8UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+
JiYsIFZlY3Rvcjx1bnNpZ25lZD4mJik7CiAgICAgdm9pZCBkcmF3KHVuc2lnbmVkIGxvbmcsIHVu
c2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IDE0ZWM3ZDJmOTdlYmM0NGM3
YjM2Yjk1ZWU0YTVjYTNiY2NkOWJkMjguLjViNDNiMWVlMWJmY2E4NzcwYjRiMDM4ODk3ZDcyMTVj
MzJiNmFjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVJbnB1dFN0YXRl
RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCIKICNp
bmNsdWRlICJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oIgogCkBAIC00Niw2ICs0Nyw3IEBA
IHN0cnVjdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgewogICAgIEdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlOwogICAgIEdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9y
IGZyYWdtZW50U3RhZ2U7CiAgICAgUHJpbWl0aXZlVG9wb2xvZ3kgcHJpbWl0aXZlVG9wb2xvZ3k7
CisgICAgR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgaW5wdXRTdGF0ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ1OGQ2ZGRhMWNhN2NmYzE1NzkxZTI2MjVmYjE4NjM1OTMwZjQyZWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmVydGV4
QXR0cmlidXRlRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVVZlcnRleEZvcm1hdEVudW0g
PSB1bnNpZ25lZCBsb25nOworCitjbGFzcyBHUFVWZXJ0ZXhGb3JtYXQgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVWZXJ0ZXhGb3JtYXQ+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW0gOiBHUFVWZXJ0
ZXhGb3JtYXRFbnVtIHsKKyAgICAgICAgRmxvYXRSMzJHMzJCMzJBMzIgPSAwLAorICAgICAgICBG
bG9hdFIzMkczMkIzMiA9IDEsCisgICAgICAgIEZsb2F0UjMyRzMyID0gMiwKKyAgICAgICAgRmxv
YXRSMzIgPSAzCisgICAgfTsKK307CisKK3N0cnVjdCBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNjcmlw
dG9yIHsKKyAgICB1bnNpZ25lZCBsb25nIHNoYWRlckxvY2F0aW9uOworICAgIHVuc2lnbmVkIGxv
bmcgaW5wdXRTbG90OworICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0OworICAgIEdQVVZlcnRleEZv
cm1hdEVudW0gZm9ybWF0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNjE5YjIyNmU4M2I1OTE1NzljMThkMjUyMGU4NDFiMzliYmQwZWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZlcnRleElucHV0
RGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEdQVUlucHV0U3RlcE1vZGVFbnVtID0gdW5zaWdu
ZWQgbG9uZzsKKworY2xhc3MgR1BVSW5wdXRTdGVwTW9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQ
VUlucHV0U3RlcE1vZGU+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW0gOiBHUFVJbnB1dFN0ZXBN
b2RlRW51bSB7CisgICAgICAgIFZlcnRleCA9IDAsCisgICAgICAgIEluc3RhbmNlID0gMQorICAg
IH07Cit9OworCitzdHJ1Y3QgR1BVVmVydGV4SW5wdXREZXNjcmlwdG9yIHsKKyAgICB1bnNpZ25l
ZCBsb25nIHN0cmlkZTsKKyAgICBHUFVJbnB1dFN0ZXBNb2RlRW51bSBzdGVwTW9kZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVu
ZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDJjNTgyYjBiMzJk
OGQ0MTJkOGNkNjU0YTQ2OWFhN2U2YjlkYTdhNDguLjVhNzNiZWU1YmQ1YjA5ZDc5YjE1ZDY4YTA2
ODNmNTg3MmY0ZDJkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1l
dGFsLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW1wb3J0
ICJHUFVCdWZmZXIuaCIKICNpbXBvcnQgIkdQVUNvbW1hbmRCdWZmZXIuaCIKICNpbXBvcnQgIkdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVSZW5kZXJQaXBlbGluZS5oIgpA
QCAtODMsNiArODQsMTMgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUo
UmVmPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQogICAgIG1fcGlwZWxpbmUgPSBXVEZN
b3ZlKHBpcGVsaW5lKTsKIH0KIAordm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0VmVydGV4
QnVmZmVycyh1bnNpZ25lZCBsb25nIGluZGV4LCBWZWN0b3I8UmVmPGNvbnN0IEdQVUJ1ZmZlcj4+
JiYgYnVmZmVycywgVmVjdG9yPHVuc2lnbmVkPiYmIG9mZnNldHMpIAoreworICAgIEFTU0VSVChi
dWZmZXJzLnNpemUoKSAmJiBvZmZzZXRzLnNpemUoKSA9PSBidWZmZXJzLnNpemUoKSk7CisgICAg
Ly8gRklYTUU6IE9ubHkgd29ycnkgYWJvdXQgdGhlIGZpcnN0IGJ1ZmZlciBmb3Igbm93LCBhbmQg
dHJlYXQgc3RhcnRTbG90IGFzIHRoZSBpbmRleC4KKyAgICBbbV9wbGF0Zm9ybVJlbmRlclBhc3NF
bmNvZGVyIHNldFZlcnRleEJ1ZmZlcjpidWZmZXJzWzBdLT5wbGF0Zm9ybUJ1ZmZlcigpIG9mZnNl
dDpvZmZzZXRzWzBdIGF0SW5kZXg6aW5kZXhdOworfQorCiBzdGF0aWMgTVRMUHJpbWl0aXZlVHlw
ZSBwcmltaXRpdmVUeXBlRm9yR1BVUHJpbWl0aXZlVG9wb2xvZ3koUHJpbWl0aXZlVG9wb2xvZ3kg
dHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVs
aW5lTWV0YWwubW0KaW5kZXggYTgwNjVmZWJiYWQ0NzgzNzAzYmJiNmUyY2NjMWFmOWM1NGRlMDQ4
NS4uYzgxOTgzNjIyYjc1Nzk1ZDRhYjEzMDBjNzU1YzgyYTNhMGUxMzU5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVs
aW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2Nv
Y29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KQEAgLTMyLDYgKzMyLDcgQEAKIAogI2ltcG9y
dCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Cisj
aW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Miw2
ICs4Myw4NCBAQCBzdGF0aWMgYm9vbCBzZXRGdW5jdGlvbnNGb3JQaXBlbGluZURlc2NyaXB0b3Io
Y29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25OYW1lLCBNVAogICAgIHJldHVybiB0cnVlOwogfQog
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxNVExWZXJ0ZXhGb3JtYXQ+IHZhbGlkYXRlQW5kQ29udmVy
dFZlcnRleEZvcm1hdFRvTVRMVmVydGV4Rm9ybWF0KEdQVVZlcnRleEZvcm1hdEVudW0gZm9ybWF0
KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHUFVWZXJ0ZXhGb3JtYXQ6OkZs
b2F0UjMyRzMyQjMyQTMyOgorICAgICAgICByZXR1cm4gTVRMVmVydGV4Rm9ybWF0RmxvYXQ0Owor
ICAgIGNhc2UgR1BVVmVydGV4Rm9ybWF0OjpGbG9hdFIzMkczMkIzMjoKKyAgICAgICAgcmV0dXJu
IE1UTFZlcnRleEZvcm1hdEZsb2F0MzsKKyAgICBjYXNlIEdQVVZlcnRleEZvcm1hdDo6RmxvYXRS
MzJHMzI6CisgICAgICAgIHJldHVybiBNVExWZXJ0ZXhGb3JtYXRGbG9hdDI7CisgICAgY2FzZSBH
UFVWZXJ0ZXhGb3JtYXQ6OkZsb2F0UjMyOgorICAgICAgICByZXR1cm4gTVRMVmVydGV4Rm9ybWF0
RmxvYXQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
Cit9CisKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPE1UTFZlcnRleFN0ZXBGdW5jdGlvbj4gdmFsaWRh
dGVBbmRDb252ZXJ0U3RlcE1vZGVUb01UTFN0ZXBGdW5jdGlvbihHUFVJbnB1dFN0ZXBNb2RlRW51
bSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgR1BVSW5wdXRTdGVwTW9k
ZTo6VmVydGV4OgorICAgICAgICByZXR1cm4gTVRMVmVydGV4U3RlcEZ1bmN0aW9uUGVyVmVydGV4
OworICAgIGNhc2UgR1BVSW5wdXRTdGVwTW9kZTo6SW5zdGFuY2U6CisgICAgICAgIHJldHVybiBN
VExWZXJ0ZXhTdGVwRnVuY3Rpb25QZXJJbnN0YW5jZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KK30KKworc3RhdGljIGJvb2wgc2V0SW5wdXRTdGF0
ZUZvclBpcGVsaW5lRGVzY3JpcHRvcihjb25zdCBjaGFyKiBjb25zdCBmdW5jdGlvbk5hbWUsIE1U
TFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciAqbXRsRGVzY3JpcHRvciwgY29uc3QgR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworI2lmIExPR19ESVNBQkxFRAorICAg
IFVOVVNFRF9QQVJBTShmdW5jdGlvbk5hbWUpOworI2VuZGlmCisgICAgYXV0byBtdGxWZXJ0ZXhE
ZXNjcmlwdG9yID0gYWRvcHROUyhbTVRMVmVydGV4RGVzY3JpcHRvciBuZXddKTsKKworICAgIC8v
IFBvcHVsYXRlIHZlcnRleCBhdHRyaWJ1dGVzLCBpZiBhbnkuCisgICAgY29uc3QgYXV0byYgYXR0
cmlidXRlcyA9IGRlc2NyaXB0b3IuaW5wdXRTdGF0ZS5hdHRyaWJ1dGVzOworCisgICAgLy8gRklY
TUU6IFdoYXQga2luZCBvZiB2YWxpZGF0aW9uIGlzIG5lZWRlZCBoZXJlPworICAgIE1UTFZlcnRl
eEF0dHJpYnV0ZURlc2NyaXB0b3JBcnJheSAqYXR0cmlidXRlQXJyYXkgPSBtdGxWZXJ0ZXhEZXNj
cmlwdG9yLmdldCgpLmF0dHJpYnV0ZXM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF0
dHJpYnV0ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byBtdGxGb3JtYXQgPSB2YWxpZGF0
ZUFuZENvbnZlcnRWZXJ0ZXhGb3JtYXRUb01UTFZlcnRleEZvcm1hdChhdHRyaWJ1dGVzW2ldLmZv
cm1hdCk7CisgICAgICAgIGlmICghbXRsRm9ybWF0KSB7CisgICAgICAgICAgICBMT0coV2ViR1BV
LCAiJXM6IEludmFsaWQgV2ViR1BVVmVydGV4Rm9ybWF0RW51bSBmb3IgdmVydGV4IGF0dHJpYnV0
ZSEiLCBmdW5jdGlvbk5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgTVRMVmVydGV4QXR0cmlidXRlRGVzY3JpcHRvciAqbXRsQXR0cmlidXRlRGVz
YyA9IFthdHRyaWJ1dGVBcnJheSBvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6aV07CisgICAgICAg
IG10bEF0dHJpYnV0ZURlc2MuZm9ybWF0ID0gKm10bEZvcm1hdDsKKyAgICAgICAgbXRsQXR0cmli
dXRlRGVzYy5vZmZzZXQgPSBhdHRyaWJ1dGVzW2ldLm9mZnNldDsKKyAgICAgICAgbXRsQXR0cmli
dXRlRGVzYy5idWZmZXJJbmRleCA9IGF0dHJpYnV0ZXNbaV0uc2hhZGVyTG9jYXRpb247CisgICAg
ICAgIFttdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgpLmF0dHJpYnV0ZXMgc2V0T2JqZWN0Om10bEF0
dHJpYnV0ZURlc2MgYXRJbmRleGVkU3Vic2NyaXB0OmldOworICAgIH0KKworICAgIC8vIFBvcHVs
YXRlIHZlcnRleCBidWZmZXIgbGF5b3V0cywgaWYgYW55LgorICAgIGNvbnN0IGF1dG8mIGlucHV0
cyA9IGRlc2NyaXB0b3IuaW5wdXRTdGF0ZS5pbnB1dHM7CisKKyAgICBNVExWZXJ0ZXhCdWZmZXJM
YXlvdXREZXNjcmlwdG9yQXJyYXkgKmxheW91dEFycmF5ID0gbXRsVmVydGV4RGVzY3JpcHRvci5n
ZXQoKS5sYXlvdXRzOworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbnB1dHMuc2l6ZSgp
OyArK2opIHsKKyAgICAgICAgYXV0byBtdGxTdGVwRnVuY3Rpb24gPSB2YWxpZGF0ZUFuZENvbnZl
cnRTdGVwTW9kZVRvTVRMU3RlcEZ1bmN0aW9uKGlucHV0c1tqXS5zdGVwTW9kZSk7CisgICAgICAg
IGlmICghbXRsU3RlcEZ1bmN0aW9uKSB7CisgICAgICAgICAgICBMT0coV2ViR1BVLCAiJXM6IElu
dmFsaWQgV2ViR1BVSW5wdXRTdGVwTW9kZSBmb3IgdmVydGV4IGlucHV0ISIsIGZ1bmN0aW9uTmFt
ZSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBNVExW
ZXJ0ZXhCdWZmZXJMYXlvdXREZXNjcmlwdG9yICptdGxMYXlvdXREZXNjID0gW2xheW91dEFycmF5
IG9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDpqXTsKKyAgICAgICAgbXRsTGF5b3V0RGVzYy5zdGVw
RnVuY3Rpb24gPSAqbXRsU3RlcEZ1bmN0aW9uOworICAgICAgICBtdGxMYXlvdXREZXNjLnN0cmlk
ZSA9IGlucHV0c1tqXS5zdHJpZGU7CisgICAgICAgIFttdGxWZXJ0ZXhEZXNjcmlwdG9yLmdldCgp
LmxheW91dHMgc2V0T2JqZWN0Om10bExheW91dERlc2MgYXRJbmRleGVkU3Vic2NyaXB0OmpdOwor
ICAgIH0KKworICAgIG10bERlc2NyaXB0b3IudmVydGV4RGVzY3JpcHRvciA9IG10bFZlcnRleERl
c2NyaXB0b3IuZ2V0KCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogUmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2
aWNlLCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQogewogICAgIGNv
bnN0IGNoYXIqIGNvbnN0IGZ1bmN0aW9uTmFtZSA9ICJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KCkiOwpAQCAtMTA0LDcgKzE4Myw4IEBAIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVu
ZGVyUGlwZWxpbmU6OmNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmICghc2V0RnVuY3Rpb25zRm9yUGlwZWxp
bmVEZXNjcmlwdG9yKGZ1bmN0aW9uTmFtZSwgbXRsRGVzY3JpcHRvci5nZXQoKSwgZGVzY3JpcHRv
cikpCisgICAgaWYgKCFzZXRGdW5jdGlvbnNGb3JQaXBlbGluZURlc2NyaXB0b3IoZnVuY3Rpb25O
YW1lLCBtdGxEZXNjcmlwdG9yLmdldCgpLCBkZXNjcmlwdG9yKQorICAgICAgICB8fCAhc2V0SW5w
dXRTdGF0ZUZvclBpcGVsaW5lRGVzY3JpcHRvcihmdW5jdGlvbk5hbWUsIG10bERlc2NyaXB0b3Iu
Z2V0KCksIGRlc2NyaXB0b3IpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJ
WE1FOiBHZXQgdGhlIHBpeGVsRm9ybWF0IGFzIGNvbmZpZ3VyZWQgZm9yIHRoZSBjb250ZXh0L0NB
TWV0YWxMYXllci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1NDYyZTQ4ODQ0ZjJhMzA0ZWU2NGNkYzk2MmYzNjg5MzAyZWJi
MjcyLi45NWQ3ZjhiYWMxNzhmZjZiODFjYzBjNGZlMWQ0YTBhYTI0YTFiZWFlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTgtMTItMTEgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViR1BVXSBWZXJ0ZXggYnVmZmVycyBhbmQgV2ViR1BVSW5wdXRTdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNjEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZGVkIHZh
cmlhdGlvbiBvZiBzaW1wbGUtdHJpYW5nbGUtc3RyaXAgdG8gdXNlIGEgdmVydGV4IGJ1ZmZlci4g
UmVmYWN0b3JlZCBhZm9yZW1lbnRpb25lZAorICAgICAgICB0ZXN0IHRvIHNoYXJlIGNvZGUgd2l0
aCBuZXcgdGVzdC4KKworICAgICAgICAqIHdlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25z
LmpzOgorICAgICAgICAoc2V0VXBQaXBlbGluZURlc2NyaXB0b3IpOgorICAgICAgICAqIHdlYmdw
dS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLmdldEJhc2lj
RGV2aWNlKToKKyAgICAgICAgKGNyZWF0ZUJhc2ljQ29udGV4dCk6CisgICAgICAgIChjcmVhdGVC
YXNpY1BpcGVsaW5lKToKKyAgICAgICAgKGJlZ2luQmFzaWNSZW5kZXJQYXNzKToKKyAgICAgICAg
KiB3ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ3B1
L3JlbmRlci1waXBlbGluZXMuaHRtbDoKKyAgICAgICAgKiB3ZWJncHUvc2ltcGxlLXRyaWFuZ2xl
LXN0cmlwLmh0bWw6CisgICAgICAgICogd2ViZ3B1L3ZlcnRleC1idWZmZXItdHJpYW5nbGUtc3Ry
aXAtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3ZlcnRleC1idWZmZXIt
dHJpYW5nbGUtc3RyaXAuaHRtbDogQWRkZWQuCisKIDIwMTgtMTItMTAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgY29ubmVjdGVkQ2FsbGJhY2sgaXMgaW52b2tl
ZCBkdXJpbmcgdGhlIHJlbW92YWwgb2YgdGhlIGVsZW1lbnQgaW5zaWRlIGFub3RoZXIgZWxlbWVu
dCdzIGNvbm5lY3RlZENhbGxiYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvanMv
YmFzaWMtd2ViZ3B1LWZ1bmN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13
ZWJncHUtZnVuY3Rpb25zLmpzCmluZGV4IGIzY2JiYzIxYmQ0OWMyODFlMmEwYTlmMGYxMWQ1YTNh
MjA0NzAxNDEuLjBkMDg3MDI2MmY3MDA5ZTFhM2Q5MzBlZWQ0ZGFlNDllMDAwOTljNmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCisr
KyBiL0xheW91dFRlc3RzL3dlYmdwdS9qcy9iYXNpYy13ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC05
MCwxOSArOTAsMTggQEAgZnVuY3Rpb24gc2V0VXBNb2R1bGUoKSB7CiAKIGZ1bmN0aW9uIHNldFVw
UGlwZWxpbmVEZXNjcmlwdG9yKCkgewogICAgIHZlcnRleFN0YWdlRGVzY3JpcHRvciA9IHsgCi0g
ICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRl
clN0YWdlLlZFUlRFWCwgCisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAgICBl
bnRyeVBvaW50OiAidmVydGV4X21haW4iIAogICAgIH07CiAKICAgICBmcmFnbWVudFN0YWdlRGVz
Y3JpcHRvciA9IHsKICAgICAgICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCi0gICAgICAgIHN0YWdl
OiBXZWJHUFVTaGFkZXJTdGFnZS5GUkFHTUVOVCwKICAgICAgICAgZW50cnlQb2ludDogImZyYWdt
ZW50X21haW4iCiAgICAgfTsKIAogICAgIHBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAg
c3RhZ2VzOiBbdmVydGV4U3RhZ2VEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0s
CisgICAgICAgIHZlcnRleFN0YWdlOiB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IsIAorICAgICAgICBm
cmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZl
VG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdwdS9qcy93ZWJncHUtZnVuY3Rpb25zLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2pz
L3dlYmdwdS1mdW5jdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhZTgzODYyYmExZTg1MTY4YWU3MGEw
NzYzYTgzOGE0OThlYzZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9q
cy93ZWJncHUtZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNTIgQEAKK2FzeW5jIGZ1bmN0aW9uIGdl
dEJhc2ljRGV2aWNlKCkgeworICAgIC8vIEZJWE1FOiByZXF1ZXN0QWRhcHRlciBzaG91bGQgdGFr
ZSBhIFdlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLgorICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCB3
aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9KTsKKyAgICBjb25zdCBkZXZpY2UgPSBhZGFw
dGVyLmNyZWF0ZURldmljZSgpOworICAgIHJldHVybiBkZXZpY2U7Cit9CisKK2Z1bmN0aW9uIGNy
ZWF0ZUJhc2ljQ29udGV4dChjYW52YXMsIGRldmljZSkgeworICAgIGNvbnN0IGNvbnRleHQgPSBj
YW52YXMuZ2V0Q29udGV4dCgid2ViZ3B1Iik7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBhbmQg
c3BlY2lmeSBhIFdlYkdQVVRleHR1cmVVc2FnZUVudW0uCisgICAgY29udGV4dC5jb25maWd1cmUo
eyBkZXZpY2U6IGRldmljZSwgZm9ybWF0OiJCOEc4UjhBOFVub3JtIiwgd2lkdGg6IGNhbnZhcy53
aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0IH0pOworICAgIHJldHVybiBjb250ZXh0OworfQor
CitmdW5jdGlvbiBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVsZSwgZGV2aWNlLCBpbnB1
dFN0YXRlRGVzY3JpcHRvcikgeworICAgIHZlcnRleFN0YWdlRGVzY3JpcHRvciA9IHsKKyAgICAg
ICAgbW9kdWxlOiBzaGFkZXJNb2R1bGUsCisgICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFp
biIgCisgICAgfTsKKworICAgIGZyYWdtZW50U3RhZ2VEZXNjcmlwdG9yID0geworICAgICAgICBt
b2R1bGU6IHNoYWRlck1vZHVsZSwKKyAgICAgICAgZW50cnlQb2ludDogImZyYWdtZW50X21haW4i
CisgICAgfTsKKworICAgIHBpcGVsaW5lRGVzY3JpcHRvciA9IHsKKyAgICAgICAgdmVydGV4U3Rh
Z2U6IHZlcnRleFN0YWdlRGVzY3JpcHRvciwKKyAgICAgICAgZnJhZ21lbnRTdGFnZTogZnJhZ21l
bnRTdGFnZURlc2NyaXB0b3IsCisgICAgICAgIHByaW1pdGl2ZVRvcG9sb2d5OiAidHJpYW5nbGVT
dHJpcCIsCisgICAgICAgIGlucHV0U3RhdGU6IGlucHV0U3RhdGVEZXNjcmlwdG9yCisgICAgfTsK
KworICAgIHJldHVybiBkZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUocGlwZWxpbmVEZXNjcmlw
dG9yKTsKK30KKworZnVuY3Rpb24gYmVnaW5CYXNpY1JlbmRlclBhc3MoY29udGV4dCwgY29tbWFu
ZEJ1ZmZlcikgeworICAgIGNvbnN0IGJhc2ljQXR0YWNobWVudCA9IHsKKyAgICAgICAgYXR0YWNo
bWVudDogY29udGV4dC5nZXROZXh0VGV4dHVyZSgpLmNyZWF0ZURlZmF1bHRUZXh0dXJlVmlldygp
LAorICAgICAgICBjbGVhckNvbG9yOiB7IHI6IDEuMCwgZzogMCwgYjogMCwgYTogMS4wIH0KKyAg
ICB9CisKKyAgICAvLyBGSVhNRTogRmxlc2ggb3V0IHRoZSByZXN0IG9mIFdlYkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yLiAKKyAgICByZXR1cm4gY29tbWFuZEJ1ZmZlci5iZWdpblJlbmRlclBhc3Mo
eyBjb2xvckF0dGFjaG1lbnRzIDogW2Jhc2ljQXR0YWNobWVudF0gfSk7Cit9CisKK2Z1bmN0aW9u
IGVuY29kZUJhc2ljQ29tbWFuZHMocmVuZGVyUGFzc0VuY29kZXIsIHJlbmRlclBpcGVsaW5lLCB2
ZXJ0ZXhCdWZmZXIpIHsKKyAgICBpZiAodmVydGV4QnVmZmVyKQorICAgICAgICByZW5kZXJQYXNz
RW5jb2Rlci5zZXRWZXJ0ZXhCdWZmZXJzKDAsIFt2ZXJ0ZXhCdWZmZXJdLCBbMF0pOworICAgIHJl
bmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHJlbmRlclBpcGVsaW5lKTsKKyAgICByZW5kZXJQ
YXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOworICAgIHJldHVybiByZW5kZXJQYXNzRW5jb2Rl
ci5lbmRQYXNzKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBlbGluZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZDg2YjBh
Y2FhZTI2ZWQ1ZjhhZGI3NTg1N2NkZjg4OWU2MzY0ZjYuLmYyNTA5MjYyMTQ5NjBmOWE3NTNkNGQ3
YjFiNTYwNDRkOWJhZDc0NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdwdS9yZW5kZXIt
cGlwZWxpbmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBp
cGVsaW5lcy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIFBBU1MgV2ViR1BVUmVuZGVyUGlw
ZWxpbmUgd2l0aCBpbnZhbGlkIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciB3YXMgbm90
IGNyCiBQQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCBzaGFkZXIgbW9kdWxl
IHdhcyBub3QgY3JlYXRlZC4KIFBBU1MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgd2l0aCBpbnZhbGlk
IHZlcnRleCBzaGFkZXIgc3RhZ2Ugd2FzIG5vdCBjcmVhdGVkLgogUEFTUyBXZWJHUFVSZW5kZXJQ
aXBlbGluZSB3aXRoIGludmFsaWQgdmVydGV4IHNoYWRlciBlbnRyeSBwb2ludCB3YXMgbm90IGNy
ZWF0ZWQuCi1QQVNTIFdlYkdQVVJlbmRlclBpcGVsaW5lIHdpdGggaW52YWxpZCBXZWJHUFVTaGFk
ZXJTdGFnZUVudW0gd2FzIG5vdCBjcmVhdGVkLgogQWxsIHRlc3RzIGNvbXBsZXRlLgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
cHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3JlbmRlci1waXBl
bGluZXMuaHRtbAppbmRleCBhM2I5MjllY2Q4NzVjZDBhYTUzNmQ3ZDFiNTMwZjE1MWJkNjcwOWNi
Li42Y2I0YmVmYWExZDc0OWEzNzc5NWZjNDA1ZmVmYmNhZTk5YTk3NWM0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJncHUvcmVuZGVyLXBpcGVsaW5lcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdwdS9yZW5kZXItcGlwZWxpbmVzLmh0bWwKQEAgLTE5LDQzICsxOSwzMiBAQCBmdW5jdGlv
biBzZXRVcEJhZFBpcGVsaW5lcygpIHsKICAgICBjaGVja0JhZFJlbmRlclBpcGVsaW5lKHt9LCAi
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIik7CiAKICAgICBsZXQgbm9Nb2R1bGVWZXJ0
ZXhEZXNjcmlwdG9yID0gewotICAgICAgICBzdGFnZTogV2ViR1BVU2hhZGVyU3RhZ2UuVkVSVEVY
LAogICAgICAgICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iCiAgICAgfQogICAgIGxldCBub01v
ZHVsZVBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbbm9Nb2R1bGVWZXJ0
ZXhEZXNjcmlwdG9yLCBmcmFnbWVudFN0YWdlRGVzY3JpcHRvcl0sCisgICAgICAgIHZlcnRleFN0
YWdlOiBub01vZHVsZVZlcnRleERlc2NyaXB0b3IsIAorICAgICAgICBmcmFnbWVudFN0YWdlOiBm
cmFnbWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlh
bmdsZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUobm9Nb2R1bGVQaXBl
bGluZURlc2NyaXB0b3IsICJzaGFkZXIgbW9kdWxlIik7CiAKICAgICAvLyBBIChNZXRhbCkgcmVu
ZGVycGlwZWxpbmUgbXVzdCBoYXZlIGEgdmVydGV4IGZ1bmN0aW9uLgogICAgIGxldCBub1ZlcnRl
eFBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbZnJhZ21lbnRTdGFnZURl
c2NyaXB0b3JdLAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFnbWVudFN0YWdlRGVzY3JpcHRv
ciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZUxpc3QiCiAgICAgfQogICAg
IGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUobm9WZXJ0ZXhQaXBlbGluZURlc2NyaXB0b3IsICJ2ZXJ0
ZXggc2hhZGVyIHN0YWdlIikKIAogICAgIGxldCBiYWRFbnRyeVBvaW50RGVzY3JpcHRvciA9IHsg
Ci0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNo
YWRlclN0YWdlLlZFUlRFWCwgCisgICAgICAgIG1vZHVsZTogc2hhZGVyTW9kdWxlLAogICAgICAg
ICBlbnRyeVBvaW50OiAiVmVydGV4X01haW4iIAogICAgIH07CiAgICAgbGV0IGJhZEVudHJ5UG9p
bnRQaXBlbGluZURlc2NzcmlwdG9yID0gewotICAgICAgICBzdGFnZXM6IFtiYWRFbnRyeVBvaW50
RGVzY3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAorICAgICAgICB2ZXJ0ZXhTdGFn
ZTogYmFkRW50cnlQb2ludERlc2NyaXB0b3IsIAorICAgICAgICBmcmFnbWVudFN0YWdlOiBmcmFn
bWVudFN0YWdlRGVzY3JpcHRvciwKICAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmds
ZUxpc3QiCiAgICAgfQogICAgIGNoZWNrQmFkUmVuZGVyUGlwZWxpbmUoYmFkRW50cnlQb2ludFBp
cGVsaW5lRGVzY3NyaXB0b3IsICJ2ZXJ0ZXggc2hhZGVyIGVudHJ5IHBvaW50Iik7Ci0KLSAgICBs
ZXQgYmFkU3RhZ2VFbnVtRGVzY3JpcHRvciA9IHsgCi0gICAgICAgIG1vZHVsZTogc2hhZGVyTW9k
dWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLkNPTVBVVEUsIAotICAgICAg
ICBlbnRyeVBvaW50OiAidmVydGV4X21haW4iIAotICAgIH07Ci0gICAgbGV0IGJhZFN0YWdlRW51
bVBpcGVsaW5lRGVzY3JpcHRvciA9IHsKLSAgICAgICAgc3RhZ2VzOiBbYmFkU3RhZ2VFbnVtRGVz
Y3JpcHRvciwgZnJhZ21lbnRTdGFnZURlc2NyaXB0b3JdLAotICAgICAgICBwcmltaXRpdmVUb3Bv
bG9neTogInRyaWFuZ2xlTGlzdCIKLSAgICB9Ci0gICAgY2hlY2tCYWRSZW5kZXJQaXBlbGluZShi
YWRTdGFnZUVudW1QaXBlbGluZURlc2NyaXB0b3IsICJXZWJHUFVTaGFkZXJTdGFnZUVudW0iKTsK
IH0KIAogcnVuV2ViR1BVVGVzdHMoW3NldFVwUGlwZWxpbmUsIHNldFVwQmFkUGlwZWxpbmVzXSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvc2ltcGxlLXRyaWFuZ2xlLXN0cmlwLmh0bWwKaW5kZXgg
ZDc2ZmZkZGQ5YTU0ZjU3MmYwMjUwZWM3NGQwZjYxNzNiNWM1N2Q2Yi4uMzBhYTRmMWMyMTY4ZWIz
NjYxYTBjNTQ4ZmQyZGZiNTIyOWQyNTYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1
L3NpbXBsZS10cmlhbmdsZS1zdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9zaW1w
bGUtdHJpYW5nbGUtc3RyaXAuaHRtbApAQCAtNSw2ICs1LDcgQEAKIDxsaW5rIHJlbD0ibWF0Y2gi
IGhyZWY9InNpbXBsZS10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sIj4KIDxwPlBhc3MgaWYg
c3F1YXJlIGNhbnZhcyBiZWxvdyBpcyBjb21wbGV0ZWx5IGdyZWVuLjwvcD4KIDxjYW52YXMgd2lk
dGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1m
dW5jdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGNvbnN0IHNoYWRlckNvZGUgPSBgCiAj
aW5jbHVkZSA8bWV0YWxfc3RkbGliPgpAQCAtNDEsNTcgKzQyLDYgQEAgZnJhZ21lbnQgZmxvYXQ0
IGZyYWdtZW50X21haW4oVmVydGV4IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKIH0KIGAKIAotYXN5
bmMgZnVuY3Rpb24gZ2V0QmFzaWNEZXZpY2UoKSB7Ci0gICAgLy8gRklYTUU6IHJlcXVlc3RBZGFw
dGVyIHNob3VsZCB0YWtlIGEgV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuCi0gICAgY29uc3QgYWRh
cHRlciA9IGF3YWl0IHdpbmRvdy53ZWJncHUucmVxdWVzdEFkYXB0ZXIoe30pOwotICAgIGNvbnN0
IGRldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2aWNlKCk7Ci0gICAgcmV0dXJuIGRldmljZTsKLX0K
LQotZnVuY3Rpb24gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZhcywgZGV2aWNlKSB7Ci0gICAgY29u
c3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJncHUiKTsKLSAgICAvLyBGSVhNRTog
SW1wbGVtZW50IGFuZCBzcGVjaWZ5IGEgV2ViR1BVVGV4dHVyZVVzYWdlRW51bS4KLSAgICBjb250
ZXh0LmNvbmZpZ3VyZSh7IGRldmljZTogZGV2aWNlLCBmb3JtYXQ6IkI4RzhSOEE4VW5vcm0iLCB3
aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQgfSk7Ci0gICAgcmV0dXJu
IGNvbnRleHQ7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUJhc2ljUGlwZWxpbmUoc2hhZGVyTW9kdWxl
LCBkZXZpY2UpIHsKLSAgICB2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IgPSB7Ci0gICAgICAgIG1vZHVs
ZTogc2hhZGVyTW9kdWxlLCAKLSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLlZFUlRF
WCwgCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhfbWFpbiIgCi0gICAgfTsKLQotICAgIGZy
YWdtZW50U3RhZ2VEZXNjcmlwdG9yID0gewotICAgICAgICBtb2R1bGU6IHNoYWRlck1vZHVsZSwK
LSAgICAgICAgc3RhZ2U6IFdlYkdQVVNoYWRlclN0YWdlLkZSQUdNRU5ULAotICAgICAgICBlbnRy
eVBvaW50OiAiZnJhZ21lbnRfbWFpbiIKLSAgICB9OwotCi0gICAgcGlwZWxpbmVEZXNjcmlwdG9y
ID0gewotICAgICAgICBzdGFnZXM6IFt2ZXJ0ZXhTdGFnZURlc2NyaXB0b3IsIGZyYWdtZW50U3Rh
Z2VEZXNjcmlwdG9yXSwKLSAgICAgICAgcHJpbWl0aXZlVG9wb2xvZ3k6ICJ0cmlhbmdsZVN0cmlw
IgotICAgIH07Ci0KLSAgICByZXR1cm4gZGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKHBpcGVs
aW5lRGVzY3JpcHRvcik7Ci19Ci0KLWZ1bmN0aW9uIGJlZ2luQmFzaWNSZW5kZXJQYXNzKGNvbnRl
eHQsIGNvbW1hbmRCdWZmZXIpIHsKLSAgICBjb25zdCBiYXNpY0F0dGFjaG1lbnQgPSB7Ci0gICAg
ICAgIGF0dGFjaG1lbnQ6IGNvbnRleHQuZ2V0TmV4dFRleHR1cmUoKS5jcmVhdGVEZWZhdWx0VGV4
dHVyZVZpZXcoKSwKLSAgICAgICAgY2xlYXJDb2xvcjogeyByOiAxLjAsIGc6IDAsIGI6IDAsIGE6
IDEuMCB9Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IEZsZXNoIG91dCB0aGUgcmVzdCBvZiBXZWJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci4gCi0gICAgcmV0dXJuIGNvbW1hbmRCdWZmZXIuYmVnaW5S
ZW5kZXJQYXNzKHsgY29sb3JBdHRhY2htZW50cyA6IFtiYXNpY0F0dGFjaG1lbnRdIH0pOwotfQot
Ci1mdW5jdGlvbiBlbmNvZGVCYXNpY0NvbW1hbmRzKHJlbmRlclBhc3NFbmNvZGVyLCByZW5kZXJQ
aXBlbGluZSkgewotICAgIHJlbmRlclBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKHJlbmRlclBpcGVs
aW5lKTsKLSAgICByZW5kZXJQYXNzRW5jb2Rlci5kcmF3KDQsIDEsIDAsIDApOwotICAgIHJldHVy
biByZW5kZXJQYXNzRW5jb2Rlci5lbmRQYXNzKCk7Ci19Ci0KIGFzeW5jIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKICAgICBjb25z
dCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRyaWFuZ2xlLXN0cmlwLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NmYxM2U4MTIwMzk3YTVjYzYzMzZjOWUyYTQ4NWU3
NzhiYTk5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1
ZmZlci10cmlhbmdsZS1zdHJpcC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkhUTUwgUmVmZXJlbmNl
IEZpbGU8L3RpdGxlPgorPHA+UGFzcyBpZiBzcXVhcmUgY2FudmFzIGJlbG93IGlzIGNvbXBsZXRl
bHkgZ3JlZW4uPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+
Cis8c2NyaXB0PgorY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFz
Iik7Citjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnRleHQu
ZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDApJzsKK2NvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS92ZXJ0ZXgtYnVmZmVyLXRy
aWFuZ2xlLXN0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4LWJ1ZmZlci10cmlh
bmdsZS1zdHJpcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0MmI0ODRmNTYyMTIyODNiN2U0MGQ5NThiNjI4
MTQ5ODBiYWQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvdmVydGV4
LWJ1ZmZlci10cmlhbmdsZS1zdHJpcC5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdQVSBIZWxsbyBUcmlhbmds
ZXM8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXZWJHUFUgY29ycmVjdGx5
IHJlbmRlcnMgYSBncmVlbiBjYW52YXMuIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InZlcnRl
eC1idWZmZXItdHJpYW5nbGUtc3RyaXAtZXhwZWN0ZWQuaHRtbCI+Cis8cD5QYXNzIGlmIHNxdWFy
ZSBjYW52YXMgYmVsb3cgaXMgY29tcGxldGVseSBncmVlbi48L3A+Cis8Y2FudmFzIHdpZHRoPSI0
MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rp
b25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCBzaGFkZXJDb2RlID0gYAorI2luY2x1
ZGUgPG1ldGFsX3N0ZGxpYj4KKyAgICAKK3VzaW5nIG5hbWVzcGFjZSBtZXRhbDsKKworc3RydWN0
IFZlcnRleAoreworICAgIGZsb2F0NCBwb3NpdGlvbiBbW3Bvc2l0aW9uXV07Cit9OworCit2ZXJ0
ZXggVmVydGV4IHZlcnRleF9tYWluKGNvbnN0IGRldmljZSBWZXJ0ZXgqIHZlcnRleF9hcnJheSBb
W2J1ZmZlcigwKV1dLCB1aW50IHZpZCBbW3ZlcnRleF9pZF1dKQoreworICAgIHJldHVybiB2ZXJ0
ZXhfYXJyYXlbdmlkXTsKK30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50X21haW4oVmVydGV4
IHZlcnRleEluIFtbc3RhZ2VfaW5dXSkKK3sKKyAgICByZXR1cm4gZmxvYXQ0KDAuMCwgMS4wLCAw
LjAsIDEuMCk7Cit9CitgCisKK2Z1bmN0aW9uIGNyZWF0ZVZlcnRleEJ1ZmZlcihkZXZpY2UpIHsK
KyAgICBjb25zdCBidWZmZXJTaXplID0gNCAqIDQgKiA0OworICAgIGNvbnN0IGJ1ZmZlciA9IGRl
dmljZS5jcmVhdGVCdWZmZXIoeyBzaXplOiBidWZmZXJTaXplLCB1c2FnZTogV2ViR1BVQnVmZmVy
VXNhZ2UuTUFQX1dSSVRFIH0pOworICAgIAorICAgIGxldCBhcnJheUJ1ZmZlciA9IGJ1ZmZlci5t
YXBwaW5nOworICAgIGxldCBmbG9hdEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShhcnJheUJ1ZmZl
cik7CisKKyAgICBmbG9hdEFycmF5WzBdID0gLTE7CisgICAgZmxvYXRBcnJheVsxXSA9IDE7Cisg
ICAgZmxvYXRBcnJheVsyXSA9IDA7CisgICAgZmxvYXRBcnJheVszXSA9IDE7CisKKyAgICBmbG9h
dEFycmF5WzRdID0gLTE7CisgICAgZmxvYXRBcnJheVs1XSA9IC0xOworICAgIGZsb2F0QXJyYXlb
Nl0gPSAwOworICAgIGZsb2F0QXJyYXlbN10gPSAxOworCisgICAgZmxvYXRBcnJheVs4XSA9IDE7
CisgICAgZmxvYXRBcnJheVs5XSA9IDE7CisgICAgZmxvYXRBcnJheVsxMF0gPSAwOworICAgIGZs
b2F0QXJyYXlbMTFdID0gMTsKKworICAgIGZsb2F0QXJyYXlbMTJdID0gMTsKKyAgICBmbG9hdEFy
cmF5WzEzXSA9IC0xOworICAgIGZsb2F0QXJyYXlbMTRdID0gMDsKKyAgICBmbG9hdEFycmF5WzE1
XSA9IDE7CisKKyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVJbnB1dFN0
YXRlRGVzY3JpcHRvcigpIHsKKyAgICByZXR1cm4geworICAgICAgICBpbmRleEZvcm1hdDogV2Vi
R1BVSW5kZXhGb3JtYXQuVUlOVDMyLAorICAgICAgICBhdHRyaWJ1dGVzOiBbeworICAgICAgICAg
ICAgc2hhZGVyTG9jYXRpb246IDAsCisgICAgICAgICAgICBpbnB1dFNsb3Q6IDAsCisgICAgICAg
ICAgICBvZmZzZXQ6IDAsCisgICAgICAgICAgICBmb3JtYXQ6IFdlYkdQVVZlcnRleEZvcm1hdC5G
TE9BVF9SMzJfRzMyX0IzMl9BMzIKKyAgICAgICAgfV0sCisgICAgICAgIGlucHV0czogW3sKKyAg
ICAgICAgICAgIHN0cmlkZTogNCAqIDQsCisgICAgICAgICAgICBzdGVwTW9kZTogV2ViR1BVSW5w
dXRTdGVwTW9kZS5WRVJURVgKKyAgICAgICAgfV0KKyAgICB9Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHRlc3QoKSB7CisgICAgY29uc3QgZGV2aWNlID0gYXdhaXQgZ2V0QmFzaWNEZXZpY2UoKTsKKyAg
ICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKKyAgICBj
b25zdCBjb250ZXh0ID0gY3JlYXRlQmFzaWNDb250ZXh0KGNhbnZhcywgZGV2aWNlKTsKKyAgICAv
LyBGSVhNRTogUmVwbGFjZSB3aXRoIG5vbi1NU0wgc2hhZGVycy4KKyAgICBjb25zdCBzaGFkZXJN
b2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHsgY29kZTogc2hhZGVyQ29kZSB9KTsK
KyAgICBjb25zdCB2ZXJ0ZXhCdWZmZXIgPSBjcmVhdGVWZXJ0ZXhCdWZmZXIoZGV2aWNlKTsKKyAg
ICBjb25zdCBpbnB1dFN0YXRlRGVzY3JpcHRvciA9IGNyZWF0ZUlucHV0U3RhdGVEZXNjcmlwdG9y
KCk7CisgICAgY29uc3QgcGlwZWxpbmUgPSBjcmVhdGVCYXNpY1BpcGVsaW5lKHNoYWRlck1vZHVs
ZSwgZGV2aWNlLCBpbnB1dFN0YXRlRGVzY3JpcHRvcik7CisgICAgY29uc3QgY29tbWFuZEJ1ZmZl
ciA9IGRldmljZS5jcmVhdGVDb21tYW5kQnVmZmVyKCk7CisgICAgY29uc3QgcGFzc0VuY29kZXIg
PSBiZWdpbkJhc2ljUmVuZGVyUGFzcyhjb250ZXh0LCBjb21tYW5kQnVmZmVyKTsKKyAgICBjb25z
dCBlbmRDb21tYW5kQnVmZmVyID0gZW5jb2RlQmFzaWNDb21tYW5kcyhwYXNzRW5jb2RlciwgcGlw
ZWxpbmUsIHZlcnRleEJ1ZmZlcik7CisgICAgY29uc3QgcXVldWUgPSBkZXZpY2UuZ2V0UXVldWUo
KTsKKworICAgIHF1ZXVlLnN1Ym1pdChbZW5kQ29tbWFuZEJ1ZmZlcl0pOworICAgIGNvbnRleHQu
cHJlc2VudCgpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>