<?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>193341</bug_id>
          
          <creation_ts>2019-01-10 14:53:10 -0800</creation_ts>
          <short_desc>[WebGPU] WebGPUBindGroup and device::createBindGroup prototype</short_desc>
          <delta_ts>2019-01-10 18:14:28 -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>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1493487</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-10 14:53:10 -0800</bug_when>
    <thetext>[WebGPU] WebGPUBindGroup and device::createBindGroup prototype</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493499</commentid>
    <comment_count>1</comment_count>
      <attachid>358840</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-10 15:05:03 -0800</bug_when>
    <thetext>Created attachment 358840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493535</commentid>
    <comment_count>2</comment_count>
      <attachid>358852</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-10 16:55:49 -0800</bug_when>
    <thetext>Created attachment 358852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493537</commentid>
    <comment_count>3</comment_count>
      <attachid>358852</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-10 17:07:01 -0800</bug_when>
    <thetext>Comment on attachment 358852
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUBindGroup.cpp:33
&gt; +Ref&lt;WebGPUBindGroup&gt; WebGPUBindGroup::create(RefPtr&lt;GPUBindGroup&gt;&amp;&amp; bindGroup)

Why not use Ref&lt;&gt;? You won&apos;t have to perform as many null checks.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:118
&gt; +        return WebGPUBindGroup::create(nullptr);

This should refuse to create the object. In JS, if you call this function with garbage, it should return null, not a real object with nothing inside it.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:125
&gt; +        auto bindingResource = WTF::visit(BindingResourceVisitor(), binding.resource);

Please use WTF::makeVisitor()

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:130
&gt; +            return WebGPUBindGroup::create(nullptr);

Ditto from above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493539</commentid>
    <comment_count>4</comment_count>
      <attachid>358840</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-01-10 17:08:07 -0800</bug_when>
    <thetext>Comment on attachment 358840
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:112
&gt; +struct BindingResourceVisitor {
&gt; +    Optional&lt;GPUBindingResource&gt; operator()(RefPtr&lt;WebGPUTextureView&gt; textureView) const
&gt; +    {
&gt; +        if (textureView)
&gt; +            return static_cast&lt;GPUBindingResource&gt;(textureView-&gt;texture());
&gt; +        return WTF::nullopt;
&gt; +    }
&gt; +
&gt; +    Optional&lt;GPUBindingResource&gt; operator()(WebGPUBufferBinding binding) const
&gt; +    {
&gt; +        // FIXME: What kind of validation should be performed on binding.offset and binding.size?
&gt; +        if (binding.buffer)
&gt; +            return static_cast&lt;GPUBindingResource&gt;(GPUBufferBinding { binding.buffer-&gt;buffer(), binding.offset, binding.size });
&gt; +        return WTF::nullopt;
&gt; +    }
&gt; +};

We usually do this with WTF::makeVisitor inline, just above the call to ::visit.

Also, we tend to use inline function syntax rather than operator()... so it would be something like this:

auto visitor = WTF::makeVisitor([&amp;](RefPtr&lt;WebGPUTextureView&gt; textureView) -&gt; Optional&lt;GPUBindingResource&gt; {
        ...
    }, [&amp;](WebGPUBufferBinding binding) -&gt; Optional&lt;GPUBindingResource&gt; {
        ...
    });

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:124
&gt; +    Vector&lt;GPUBindGroupBinding&gt; bindGroupBindings;
&gt; +    bindGroupBindings.reserveCapacity(descriptor.bindings.size());
&gt; +
&gt; +    for (const auto&amp; binding : descriptor.bindings) {

You could do this with Vector::map. e.g.

auto bindGroupBindings = descriptor.bindings.map([] (const auto&amp; binding) { .... } );

However, if you want to handle errors... I guess you&apos;d have to have a variable outside the scope of the function.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.cpp:125
&gt; +        auto bindingResource = WTF::visit(BindingResourceVisitor(), binding.resource);

See WebGLRenderingContextBase::texSubImage2D for an example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493543</commentid>
    <comment_count>5</comment_count>
      <attachid>358856</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-01-10 17:34:30 -0800</bug_when>
    <thetext>Created attachment 358856
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493549</commentid>
    <comment_count>6</comment_count>
      <attachid>358856</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-10 18:13:07 -0800</bug_when>
    <thetext>Comment on attachment 358856
Patch for landing

Clearing flags on attachment: 358856

Committed r239853: &lt;https://trac.webkit.org/changeset/239853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493550</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-10 18:13:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493551</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-10 18:14:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47197555&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358840</attachid>
            <date>2019-01-10 15:05:03 -0800</date>
            <delta_ts>2019-01-10 16:55:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193341-20190110150502.patch</filename>
            <type>text/plain</type>
            <size>23705</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y4YjllNWYwMzU1YTQ0
MzU0Yjc4OTdlMTRhNjE0MDQwYzVmNWY0MC4uNTRhNDViMTkzZDI3YzVlMjc3ZDMzMjRmOTNmYWI0
ZDU5YmU0OWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTAxLTEwICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
QmluZEdyb3VwIGFuZCBkZXZpY2U6OmNyZWF0ZUJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzM0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCAqR1BVQmluZEdyb3Vw
IGNsYXNzIHN0dWIgYW5kIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBXZWJHUFVCaW5kR3JvdXBzIHZp
YSB0aGUgQVBJLgorCisgICAgICAgIFRlc3QgVEJELgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJp
bmRHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUJpbmRHcm91cDo6V2Vi
R1BVQmluZEdyb3VwKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsOiBFbmFibGUg
Y3JlYXRlQmluZEdyb3VwKCkuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpbmRpbmdSZXNvdXJjZVZpc2l0b3I6Om9wZXJhdG9y
KCkgY29uc3QpOiBBZGRlZC4gVmFsaWRhdGUgYW5kIGNvbnZlcnQgV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvciB0byBHUFUqIHZlcnNpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6
OmNyZWF0ZUJpbmRHcm91cCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQmluZEdyb3VwOjpHUFVCaW5kR3JvdXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVQnVmZmVyQmluZGluZy5oOgorCiAyMDE5LTAxLTEwICBKdXN0aW4gRmFu
ICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gQWRkIEJpbmRHcm91
cEJpbmRpbmcsIEJpbmRHcm91cERlc2NyaXB0b3IsIGFuZCBCdWZmZXJCaW5kaW5nIGRpY3Rpb25h
cmllcyBmcm9tIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZGQ1MzI5YTliNTk2Nzk4MjM5
ZTdlMmE3MTQwNTg3M2U0MDIwNDRjLi5mMjc3NWViYjM5MzJhNGYzMDhiZTM0MTQ0MGIxM2FkOTJk
NmIyZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDY0LDYgKzQ2NCw3IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVLmlkbAogICAg
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdy
b3VwLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsCiAg
ICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5pZGwKICAgICBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBlMTdjNmFmYTdhN2MwMTMxOTFjOGMzZTk3NTdmMzZlYjYwZmIzZTU1Li44
YzIwYzQ5NDUzNDQ2ZjUzMWQ2ZGU5MTdhYTI2ZjhjOGY3NTUxOWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTM3NSw2ICszNzUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjQ4ZmUxZGYxNjNmYzU1YWNiY2M1MWE3NDIwOTA2ZjJkYzE2NGY4OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5jcHAK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUJpbmRHcm91cD4gV2ViR1BVQmluZEdyb3VwOjpjcmVh
dGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJiBiaW5kR3JvdXApCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViR1BVQmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3VwKSkpOworfQorCitXZWJH
UFVCaW5kR3JvdXA6OldlYkdQVUJpbmRHcm91cChSZWZQdHI8R1BVQmluZEdyb3VwPiYmIGJpbmRH
cm91cCkKKyAgICA6IG1fYmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3VwKSkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGEwNDcwOTU1M2JkNGU5YWNhZjJmOGExYTE0NThlMTcxMzFiY2I4MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5oCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXZWJHUFVCaW5kR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVCaW5kR3JvdXA+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlKFJlZlB0
cjxHUFVCaW5kR3JvdXA+JiYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkdQVUJpbmRH
cm91cChSZWZQdHI8R1BVQmluZEdyb3VwPiYmKTsKKworICAgIFJlZlB0cjxHUFVCaW5kR3JvdXA+
IG1fYmluZEdyb3VwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVCaW5kR3JvdXAuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MGIwZTEyY2RhOTNhMmY2ZDJiZTllZTQ4YTdh
NDYyZDdlNzg1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8g
aHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIvZGVzaWduL3NrZXRj
aC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBX
ZWJHUFVCaW5kR3JvdXAgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuY3BwCmluZGV4IDJmZmEzYjdhNmQ4YTlhZGZiMzdjMWY0NGNjNjY5OWUwNmM3
ZTUzYzUuLjUyNjU4OGFmZTE5MmEyMzExYmZlNDQxNzNlNjVlMzg0MGY3OWM4YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMjgsMTMg
KzI4LDIxIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQmluZEdyb3Vw
LmgiCisjaW5jbHVkZSAiR1BVQmluZEdyb3VwQmluZGluZy5oIgorI2luY2x1ZGUgIkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBCaW5k
aW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIgogI2luY2x1ZGUg
IldlYkdQVUJpbmRHcm91cExheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVUJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJHUFVDb21tYW5kQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJXZWJH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKQEAgLTQ0LDYgKzUyLDcgQEAKICNpbmNsdWRl
ICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFk
ZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgiCisj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04NSw2
ICs5NCw0NiBAQCBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IFdlYkdQVURldmljZTo6Y3JlYXRl
UGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdQogICAgIHJldHVybiBXZWJHUFVQaXBl
bGluZUxheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKK3N0cnVjdCBCaW5kaW5n
UmVzb3VyY2VWaXNpdG9yIHsKKyAgICBPcHRpb25hbDxHUFVCaW5kaW5nUmVzb3VyY2U+IG9wZXJh
dG9yKCkoUmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiB0ZXh0dXJlVmlldykgY29uc3QKKyAgICB7
CisgICAgICAgIGlmICh0ZXh0dXJlVmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxHUFVCaW5kaW5nUmVzb3VyY2U+KHRleHR1cmVWaWV3LT50ZXh0dXJlKCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIE9wdGlvbmFsPEdQVUJpbmRpbmdSZXNv
dXJjZT4gb3BlcmF0b3IoKShXZWJHUFVCdWZmZXJCaW5kaW5nIGJpbmRpbmcpIGNvbnN0CisgICAg
eworICAgICAgICAvLyBGSVhNRTogV2hhdCBraW5kIG9mIHZhbGlkYXRpb24gc2hvdWxkIGJlIHBl
cmZvcm1lZCBvbiBiaW5kaW5nLm9mZnNldCBhbmQgYmluZGluZy5zaXplPworICAgICAgICBpZiAo
YmluZGluZy5idWZmZXIpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGlu
Z1Jlc291cmNlPihHUFVCdWZmZXJCaW5kaW5nIHsgYmluZGluZy5idWZmZXItPmJ1ZmZlcigpLCBi
aW5kaW5nLm9mZnNldCwgYmluZGluZy5zaXplIH0pOworICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgIH0KK307CisKK1JlZjxXZWJHUFVCaW5kR3JvdXA+IFdlYkdQVURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25z
dAoreworICAgIGlmICghZGVzY3JpcHRvci5sYXlvdXQgfHwgIWRlc2NyaXB0b3IubGF5b3V0LT5i
aW5kR3JvdXBMYXlvdXQoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVRGV2aWNlOjpj
cmVhdGVCaW5kR3JvdXA6IEludmFsaWQgV2ViR1BVQmluZEdyb3VwTGF5b3V0ISIpOworICAgICAg
ICByZXR1cm4gV2ViR1BVQmluZEdyb3VwOjpjcmVhdGUobnVsbHB0cik7CisgICAgfQorCisgICAg
VmVjdG9yPEdQVUJpbmRHcm91cEJpbmRpbmc+IGJpbmRHcm91cEJpbmRpbmdzOworICAgIGJpbmRH
cm91cEJpbmRpbmdzLnJlc2VydmVDYXBhY2l0eShkZXNjcmlwdG9yLmJpbmRpbmdzLnNpemUoKSk7
CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBkZXNjcmlwdG9yLmJpbmRpbmdzKSB7
CisgICAgICAgIGF1dG8gYmluZGluZ1Jlc291cmNlID0gV1RGOjp2aXNpdChCaW5kaW5nUmVzb3Vy
Y2VWaXNpdG9yKCksIGJpbmRpbmcucmVzb3VyY2UpOworICAgICAgICBpZiAoYmluZGluZ1Jlc291
cmNlKQorICAgICAgICAgICAgYmluZEdyb3VwQmluZGluZ3MudW5jaGVja2VkQXBwZW5kKEdQVUJp
bmRHcm91cEJpbmRpbmcgeyBiaW5kaW5nLmJpbmRpbmcsIFdURk1vdmUoYmluZGluZ1Jlc291cmNl
LnZhbHVlKCkpIH0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIExPRyhXZWJHUFUsICJX
ZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cDogSW52YWxpZCBXZWJHUFVCaW5kaW5nUmVzb3Vy
Y2UgaW4gV2ViR1BVQmluZEdyb3VwQmluZGluZ3MhIik7CisgICAgICAgICAgICByZXR1cm4gV2Vi
R1BVQmluZEdyb3VwOjpjcmVhdGUobnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9CisgICAgYXV0
byBiaW5kR3JvdXAgPSBHUFVCaW5kR3JvdXA6OmNyZWF0ZShHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
IHsgZGVzY3JpcHRvci5sYXlvdXQtPmJpbmRHcm91cExheW91dCgpLnJlbGVhc2VOb25OdWxsKCks
IFdURk1vdmUoYmluZEdyb3VwQmluZGluZ3MpIH0pOworICAgIHJldHVybiBXZWJHUFVCaW5kR3Jv
dXA6OmNyZWF0ZShXVEZNb3ZlKGJpbmRHcm91cCkpOworfQorCiBSZWZQdHI8V2ViR1BVU2hhZGVy
TW9kdWxlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2hhdCBj
YW4gYmUgdmFsaWRhdGVkIGhlcmU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oCmluZGV4IDQ0Y2NlMDViYTVjZTRjODNhZDU5ZTQ0NGY2YjZkYWQ2NmQwYzNi
M2UuLjg5OThhZDYzY2QwZjliYWFkMDZlMzI0ZjU2MDVjNGU5YTFiYWQzMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCkBAIC00MCw2ICs0MCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBXZWJHUFVCaW5kR3JvdXA7CiBjbGFzcyBXZWJHUFVCaW5kR3JvdXBMYXlvdXQ7CiBjbGFz
cyBXZWJHUFVCdWZmZXI7CiBjbGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyOwpAQCAtNDcsNiArNDgs
NyBAQCBjbGFzcyBXZWJHUFVQaXBlbGluZUxheW91dDsKIGNsYXNzIFdlYkdQVVJlbmRlclBpcGVs
aW5lOwogY2xhc3MgV2ViR1BVU2hhZGVyTW9kdWxlOwogCitzdHJ1Y3QgV2ViR1BVQmluZEdyb3Vw
RGVzY3JpcHRvcjsKIHN0cnVjdCBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CiBzdHJ1
Y3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOwogc3RydWN0IFdlYkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3I7CkBAIC02Miw2ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZjxXZWJH
UFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogICAgIFJlZjxXZWJHUFVQaXBlbGluZUxheW91dD4g
Y3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yJiYpIGNv
bnN0OworICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29u
c3Q7CiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGlu
ZShXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDIzOGVhN2QzMzg5MjIwOTdhNjZiZmY3NDZhZDQwNTUwZGNmYmNhNmYuLjg0MDcwOWI4MTIy
NmFmODRiYzY5MjMxNzk1OTI0ZmI1ZmVkMTI5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMDgsNiAr
MzA4LDcgQEAgTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcAogTW9kdWxlcy93ZWJncHUvRE9NV2luZG93V2ViR1BVLmNwcAogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xMZXhlci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKK01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0
ZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuY3BwCiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVCdWZmZXIuY3BwCkBAIC0xNzUwLDYgKzE3NTEsNyBAQCBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VHcmFwaGljLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRT
b3VyY2UuY3BwCiAKK3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVBpcGVsaW5lTGF5b3V0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2xlZ2FjeS9HUFVMZWdh
Y3lCdWZmZXIuY3BwCkBAIC0zMjM1LDYgKzMyMzcsNyBAQCBKU1dlYkFuaW1hdGlvbi5jcHAKIEpT
V2ViR1BVLmNwcAogSlNXZWJHUFVBZGFwdGVyLmNwcAogSlNXZWJHUFVBZGFwdGVyRGVzY3JpcHRv
ci5jcHAKK0pTV2ViR1BVQmluZEdyb3VwLmNwcAogSlNXZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmNw
cAogSlNXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVCaW5kR3JvdXBMYXlv
dXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYjA4MzIwNTJlNzI2ZDI5MGE1OTk2NTcwODM3ODY0NGQxZTBjYWNlNy4uOTg1
NTg1YWIxYTBmODU0MWRiZmViZDFmZGIxNzcwZWUyZWZkNTNjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4ODksNiArMTM4
ODksMTEgQEAKIAkJRDBCRTEwNTEyMUU2QTcwRTAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cERlc2Ny
aXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEMEJFMTA1MjIxRTZBQTBEMDBFNDJBODkgLyogV2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQkUxMDUzMjFFNkFBMEQw
MEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBCRTEw
NUUyMUU2QkFEMzAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVC
aW5kR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBCRTEwNUYyMUU2QkFE
MzAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVCaW5k
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEJFMTA2MDIxRTZDMEVC
MDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUJpbmRH
cm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEJFMTA2MTIxRTZDMEVCMDBF
NDJBODkgLyogV2ViR1BVQmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJp
bmRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQkUxMDYyMjFFNkMw
RUIwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVCMjE4M0NGQTIwMDlFQzFE
RSAvKiBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
UFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMEM0MTlFQzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0
b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RjAyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwODgsNiArMTgw
OTMsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRDA4N0NFMzcyMUFDQTk0MjAwQkRFMTc0IC8q
IGNvY29hICovLAogCQkJCTMxMkZGOENFMjFBNEMzM0YwMEVCMTk5RCAvKiBsZWdhY3kgKi8sCisJ
CQkJRDBCRTEwNUYyMUU2QkFEMzAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cC5jcHAgKi8sCisJCQkJ
RDBCRTEwNUUyMUU2QkFEMzAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cC5oICovLAogCQkJCUQwQkUx
MDRFMjFFNjk1RTIwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXBCaW5kaW5nLmggKi8sCiAJCQkJRDBC
RTEwNTEyMUU2QTcwRTAwRTQyQTg5IC8qIEdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCAqLywKIAkJ
CQlEMDI0NTREMDIxQzRBNDFDMDBCNzM2MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmggKi8sCkBA
IC0yNTYzNiw2ICsyNTY0Myw5IEBACiAJCQkJRDAwRjU5NTEyMTZGRkFDMjAwMEQ3MURCIC8qIFdl
YkdQVUFkYXB0ZXIuaWRsICovLAogCQkJCUQwMkMyNjkxMjE4MTQxNkQwMEQ4MThFNCAvKiBXZWJH
UFVBZGFwdGVyRGVzY3JpcHRvci5oICovLAogCQkJCUQwMkMyNjkyMjE4MTQxNkQwMEQ4MThFNCAv
KiBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGwgKi8sCisJCQkJRDBCRTEwNjEyMUU2QzBFQjAw
RTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cC5jcHAgKi8sCisJCQkJRDBCRTEwNjAyMUU2QzBFQjAw
RTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cC5oICovLAorCQkJCUQwQkUxMDYyMjFFNkMwRUIwMEU0
MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXAuaWRsICovLAogCQkJCUQwQkUxMDRGMjFFNjlGODMwMEU0
MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmggKi8sCiAJCQkJRDBCRTEwNTAyMUU2OUY4
MzAwRTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsICovLAogCQkJCUQwQkUxMDUy
MjFFNkFBMEQwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXgg
MmFlMWVjZjc4MzYxZDg2NjgyMWM2ZTljODNlZDVjNDNiYmVjNDU2Yy4uNTU1YTkzOTJiMGYyYWQz
OWEwOTczNDdhMGY3YjUwNjhjZmM4YmViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTkwLDYgKzE5MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhXZWJHTFZlcnRleEFycmF5T2JqZWN0KSBcCiAgICAgbWFj
cm8oV2ViR1BVKSBcCiAgICAgbWFjcm8oV2ViR1BVQWRhcHRlcikgXAorICAgIG1hY3JvKFdlYkdQ
VUJpbmRHcm91cCkgXAogICAgIG1hY3JvKFdlYkdQVUJpbmRHcm91cExheW91dCkgXAogICAgIG1h
Y3JvKFdlYkdQVUJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYkdQVUJ1ZmZlclVzYWdlKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhkZmQzNjFhZDllYTVjNDgzNGRkZDI3Zjc5N2QxZjYwOWUyOGJjMDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQmluZEdyb3VwLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVUJpbmRHcm91cC5oIgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKKyNpbmNsdWRlICJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPEdQVUJpbmRH
cm91cD4gR1BVQmluZEdyb3VwOjpjcmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmIGRlc2Ny
aXB0b3IpCit7CisgICAgLy8gRklYTUU6IFVuZmluaXNoZWQgc3R1Yi4KKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHUFVCaW5kR3JvdXAoV1RGTW92ZShkZXNjcmlwdG9yKSkpOworfQorCitHUFVC
aW5kR3JvdXA6OkdQVUJpbmRHcm91cChHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYgZGVzY3JpcHRv
cikKKyAgICA6IG1fbGF5b3V0KFdURk1vdmUoZGVzY3JpcHRvci5sYXlvdXQpKQorICAgICwgbV9i
aW5kaW5ncyhXVEZNb3ZlKGRlc2NyaXB0b3IuYmluZGluZ3MpKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViN2YyOWY0ZTEyN2IwMmE3ZjkzNTA2MzAwMGRmY2UyNGRlYjk2ZjYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUJpbmRHcm91cEJpbmRpbmcuaCIKKyNpbmNsdWRlICJH
UFVCaW5kR3JvdXBMYXlvdXQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IEdQVUJpbmRHcm91cERlc2NyaXB0b3I7CisKK2NsYXNzIEdQVUJpbmRH
cm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUJpbmRHcm91cD4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8R1BVQmluZEdyb3VwPiBjcmVhdGUoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKTsK
KworcHJpdmF0ZToKKyAgICBHUFVCaW5kR3JvdXAoR1BVQmluZEdyb3VwRGVzY3JpcHRvciYmKTsK
KworICAgIFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IG1fbGF5b3V0OworICAgIFZlY3RvcjxHUFVC
aW5kR3JvdXBCaW5kaW5nPiBtX2JpbmRpbmdzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyQmluZGluZy5oCmluZGV4IDkxZTA4NzMz
YzY5MzQ4ODc0MjFjZjk0YTc1YzY2MzYyOTRkMjM0OWMuLjgyNDhkOGI4YzkwMWM1M2ZiNTQzMmY3
MDFkMjgwNTUxYzQ4M2JhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlckJpbmRpbmcuaApAQCAtMzMsNyArMzMsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgR1BVQnVmZmVyQmluZGluZyB7Ci0gICAgUmVmPEdQ
VUJ1ZmZlcj4gYnVmZmVyOworICAgIFJlZjxjb25zdCBHUFVCdWZmZXI+IGJ1ZmZlcjsKICAgICB1
bnNpZ25lZCBsb25nIG9mZnNldDsKICAgICB1bnNpZ25lZCBsb25nIHNpemU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358852</attachid>
            <date>2019-01-10 16:55:49 -0800</date>
            <delta_ts>2019-01-10 17:34:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193341-20190110165548.patch</filename>
            <type>text/plain</type>
            <size>28081</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y4YjllNWYwMzU1YTQ0
MzU0Yjc4OTdlMTRhNjE0MDQwYzVmNWY0MC4uYzg0Y2E4MDAwNTY2Y2EyYjllMDc5Y2I0YmJkNDlh
ZmFkZGJmMGRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTEwICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
QmluZEdyb3VwIGFuZCBkZXZpY2U6OmNyZWF0ZUJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzM0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCAqR1BVQmluZEdyb3Vw
IGNsYXNzIHN0dWJzIGFuZCB0aGUgYWJpbGl0eSB0byBjcmVhdGUgV2ViR1BVQmluZEdyb3VwcyB2
aWEgdGhlIEFQSS4KKworICAgICAgICBUZXN0OiBiaW5kLWdyb3Vwcy5odG1sCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR1BVQmluZEdyb3VwOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
QmluZEdyb3VwOjpXZWJHUFVCaW5kR3JvdXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVUJpbmRHcm91cC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91
cC5pZGw6IEVuYWJsZSBjcmVhdGVCaW5kR3JvdXAoKS4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmluZGluZ1Jlc291cmNlVmlz
aXRvcjo6b3BlcmF0b3IoKSBjb25zdCk6IEFkZGVkLiBWYWxpZGF0ZSBhbmQgY29udmVydCBXZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yIHRvIEdQVSogdmVyc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwIGNvbnN0KTogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUJpbmRHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6OkdQVUJpbmRHcm91cCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQXJndW1lbnRUb0FycmF5KTogUGFzcyBSZXRhaW5QdHIg
YnkgcmVmZXJlbmNlIHRvIGFjdHVhbGx5IHVwZGF0ZSBkZXNjcmlwdG9yLgorCiAyMDE5LTAxLTEw
ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0g
QWRkIEJpbmRHcm91cEJpbmRpbmcsIEJpbmRHcm91cERlc2NyaXB0b3IsIGFuZCBCdWZmZXJCaW5k
aW5nIGRpY3Rpb25hcmllcyBmcm9tIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZGQ1MzI5
YTliNTk2Nzk4MjM5ZTdlMmE3MTQwNTg3M2U0MDIwNDRjLi5mMjc3NWViYjM5MzJhNGYzMDhiZTM0
MTQ0MGIxM2FkOTJkNmIyZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDY0LDYgKzQ2NCw3
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2Vi
R1BVLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCiAgICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJp
bmRpbmcuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5p
ZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaWRsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlMTdjNmFmYTdhN2MwMTMxOTFjOGMzZTk3NTdmMzZl
YjYwZmIzZTU1Li44YzIwYzQ5NDUzNDQ2ZjUzMWQ2ZGU5MTdhYTI2ZjhjOGY3NTUxOWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3NSw2ICszNzUsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdy
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjQ4ZmUxZGYxNjNmYzU1YWNiY2M1MWE3NDIwOTA2ZjJkYzE2NGY4OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJMRShXRUJHUFUp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUJpbmRHcm91cD4gV2ViR1BVQmlu
ZEdyb3VwOjpjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJiBiaW5kR3JvdXApCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3VwKSkp
OworfQorCitXZWJHUFVCaW5kR3JvdXA6OldlYkdQVUJpbmRHcm91cChSZWZQdHI8R1BVQmluZEdy
b3VwPiYmIGJpbmRHcm91cCkKKyAgICA6IG1fYmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3VwKSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRH
cm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGEwNDcwOTU1M2JkNGU5YWNhZjJmOGExYTE0NThlMTcxMzFiY2I4MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRH
cm91cC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBXZWJHUFVCaW5kR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJH
UFVCaW5kR3JvdXA+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUJpbmRHcm91cD4g
Y3JlYXRlKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFdlYkdQVUJpbmRHcm91cChSZWZQdHI8R1BVQmluZEdyb3VwPiYmKTsKKworICAgIFJlZlB0cjxH
UFVCaW5kR3JvdXA+IG1fYmluZEdyb3VwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MGIwZTEyY2RhOTNhMmY2
ZDJiZTllZTQ4YTdhNDYyZDdlNzg1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0ZXIv
ZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitd
IGludGVyZmFjZSBXZWJHUFVCaW5kR3JvdXAgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IDJmZmEzYjdhNmQ4YTlhZGZiMzdjMWY0
NGNjNjY5OWUwNmM3ZTUzYzUuLjUyNjU4OGFmZTE5MmEyMzExYmZlNDQxNzNlNjVlMzg0MGY3OWM4
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNw
cApAQCAtMjgsMTMgKzI4LDIxIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAi
R1BVQmluZEdyb3VwLmgiCisjaW5jbHVkZSAiR1BVQmluZEdyb3VwQmluZGluZy5oIgorI2luY2x1
ZGUgIkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVCdWZmZXJCaW5kaW5n
LmgiCiAjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBpcGVsaW5l
U3RhZ2VEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
LmgiCiAjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRlICJXZWJHUFVC
aW5kR3JvdXBCaW5kaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cExheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVUJ1
ZmZlci5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJH
UFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCIKICNp
bmNsdWRlICJXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKQEAgLTQ0LDYgKzUyLDcg
QEAKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRl
ICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC04NSw2ICs5NCw0NiBAQCBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IFdlYkdQVURl
dmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdQogICAgIHJldHVy
biBXZWJHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKK3N0
cnVjdCBCaW5kaW5nUmVzb3VyY2VWaXNpdG9yIHsKKyAgICBPcHRpb25hbDxHUFVCaW5kaW5nUmVz
b3VyY2U+IG9wZXJhdG9yKCkoUmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3PiB0ZXh0dXJlVmlldykg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICh0ZXh0dXJlVmlldykKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxHUFVCaW5kaW5nUmVzb3VyY2U+KHRleHR1cmVWaWV3LT50ZXh0dXJlKCkp
OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIE9wdGlvbmFsPEdQ
VUJpbmRpbmdSZXNvdXJjZT4gb3BlcmF0b3IoKShXZWJHUFVCdWZmZXJCaW5kaW5nIGJpbmRpbmcp
IGNvbnN0CisgICAgeworICAgICAgICAvLyBGSVhNRTogV2hhdCBraW5kIG9mIHZhbGlkYXRpb24g
c2hvdWxkIGJlIHBlcmZvcm1lZCBvbiBiaW5kaW5nLm9mZnNldCBhbmQgYmluZGluZy5zaXplPwor
ICAgICAgICBpZiAoYmluZGluZy5idWZmZXIpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8R1BVQmluZGluZ1Jlc291cmNlPihHUFVCdWZmZXJCaW5kaW5nIHsgYmluZGluZy5idWZmZXIt
PmJ1ZmZlcigpLCBiaW5kaW5nLm9mZnNldCwgYmluZGluZy5zaXplIH0pOworICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgIH0KK307CisKK1JlZjxXZWJHUFVCaW5kR3JvdXA+IFdlYkdQ
VURldmljZTo6Y3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3ImJiBkZXNj
cmlwdG9yKSBjb25zdAoreworICAgIGlmICghZGVzY3JpcHRvci5sYXlvdXQgfHwgIWRlc2NyaXB0
b3IubGF5b3V0LT5iaW5kR3JvdXBMYXlvdXQoKSkgeworICAgICAgICBMT0coV2ViR1BVLCAiV2Vi
R1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXA6IEludmFsaWQgV2ViR1BVQmluZEdyb3VwTGF5b3V0
ISIpOworICAgICAgICByZXR1cm4gV2ViR1BVQmluZEdyb3VwOjpjcmVhdGUobnVsbHB0cik7Cisg
ICAgfQorCisgICAgVmVjdG9yPEdQVUJpbmRHcm91cEJpbmRpbmc+IGJpbmRHcm91cEJpbmRpbmdz
OworICAgIGJpbmRHcm91cEJpbmRpbmdzLnJlc2VydmVDYXBhY2l0eShkZXNjcmlwdG9yLmJpbmRp
bmdzLnNpemUoKSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRpbmcgOiBkZXNjcmlwdG9y
LmJpbmRpbmdzKSB7CisgICAgICAgIGF1dG8gYmluZGluZ1Jlc291cmNlID0gV1RGOjp2aXNpdChC
aW5kaW5nUmVzb3VyY2VWaXNpdG9yKCksIGJpbmRpbmcucmVzb3VyY2UpOworICAgICAgICBpZiAo
YmluZGluZ1Jlc291cmNlKQorICAgICAgICAgICAgYmluZEdyb3VwQmluZGluZ3MudW5jaGVja2Vk
QXBwZW5kKEdQVUJpbmRHcm91cEJpbmRpbmcgeyBiaW5kaW5nLmJpbmRpbmcsIFdURk1vdmUoYmlu
ZGluZ1Jlc291cmNlLnZhbHVlKCkpIH0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIExP
RyhXZWJHUFUsICJXZWJHUFVEZXZpY2U6OmNyZWF0ZUJpbmRHcm91cDogSW52YWxpZCBXZWJHUFVC
aW5kaW5nUmVzb3VyY2UgaW4gV2ViR1BVQmluZEdyb3VwQmluZGluZ3MhIik7CisgICAgICAgICAg
ICByZXR1cm4gV2ViR1BVQmluZEdyb3VwOjpjcmVhdGUobnVsbHB0cik7CisgICAgICAgIH0KKyAg
ICB9CisgICAgYXV0byBiaW5kR3JvdXAgPSBHUFVCaW5kR3JvdXA6OmNyZWF0ZShHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yIHsgZGVzY3JpcHRvci5sYXlvdXQtPmJpbmRHcm91cExheW91dCgpLnJlbGVh
c2VOb25OdWxsKCksIFdURk1vdmUoYmluZEdyb3VwQmluZGluZ3MpIH0pOworICAgIHJldHVybiBX
ZWJHUFVCaW5kR3JvdXA6OmNyZWF0ZShXVEZNb3ZlKGJpbmRHcm91cCkpOworfQorCiBSZWZQdHI8
V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVsZShXZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogV2hhdCBjYW4gYmUgdmFsaWRhdGVkIGhlcmU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCmluZGV4IDQ0Y2NlMDViYTVjZTRjODNhZDU5ZTQ0NGY2
YjZkYWQ2NmQwYzNiM2UuLjg5OThhZDYzY2QwZjliYWFkMDZlMzI0ZjU2MDVjNGU5YTFiYWQzMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCkBAIC00
MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBXZWJHUFVCaW5kR3JvdXA7CiBjbGFzcyBXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ7CiBjbGFzcyBXZWJHUFVCdWZmZXI7CiBjbGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyOwpA
QCAtNDcsNiArNDgsNyBAQCBjbGFzcyBXZWJHUFVQaXBlbGluZUxheW91dDsKIGNsYXNzIFdlYkdQ
VVJlbmRlclBpcGVsaW5lOwogY2xhc3MgV2ViR1BVU2hhZGVyTW9kdWxlOwogCitzdHJ1Y3QgV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvcjsKIHN0cnVjdCBXZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3I7CiBzdHJ1Y3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yOwogc3RydWN0IFdl
YkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3I7CkBAIC02Miw2ICs2NCw3IEBAIHB1YmxpYzoKIAog
ICAgIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJH
UFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogICAgIFJlZjxXZWJHUFVQaXBl
bGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yJiYpIGNvbnN0OworICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRHcm91
cChXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPFdlYkdQ
VVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3ImJikgY29uc3Q7CiAgICAgUmVmUHRyPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVS
ZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAppbmRleCA3
NjA3ZDkyZTk0OWE0YmUxZWViOTM1Y2RkYTA1MWQ3Yjg2MTA2MWVhLi5mMmI2Nzc0Y2QwZGU5NDdi
YjU0ZTg0OTI2NmY3NmFiZjhkNzQzMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5pZGwKQEAgLTM3LDYgKzM3LDcgQEAKIAogICAgIFdlYkdQVUJp
bmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKICAgICBXZWJHUFVQaXBlbGluZUxheW91dCBjcmVhdGVQ
aXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7
CisgICAgV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOwogCiAgICAgV2ViR1BVU2hhZGVyTW9kdWxlIGNyZWF0ZVNoYWRl
ck1vZHVsZShXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwogICAgIFdl
YkdQVVJlbmRlclBpcGVsaW5lIGNyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjM4ZWE3ZDMzODky
MjA5N2E2NmJmZjc0NmFkNDA1NTBkY2ZiY2E2Zi4uODQwNzA5YjgxMjI2YWY4NGJjNjkyMzE3OTU5
MjRmYjVmZWQxMjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMwOCw2ICszMDgsNyBAQCBNb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCiBNb2R1bGVz
L3dlYmdwdS9ET01XaW5kb3dXZWJHUFUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExl
eGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BV
QmluZEdyb3VwLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1
ZmZlci5jcHAKQEAgLTE3NTAsNiArMTc1MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAKIAorcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbGVnYWN5L0dQVUxlZ2FjeUJ1ZmZlci5jcHAKQEAg
LTMyMzUsNiArMzIzNyw3IEBAIEpTV2ViQW5pbWF0aW9uLmNwcAogSlNXZWJHUFUuY3BwCiBKU1dl
YkdQVUFkYXB0ZXIuY3BwCiBKU1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmNwcAorSlNXZWJHUFVC
aW5kR3JvdXAuY3BwCiBKU1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuY3BwCiBKU1dlYkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuY3BwCiBKU1dlYkdQVUJpbmRHcm91cExheW91dC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMDgz
MjA1MmU3MjZkMjkwYTU5OTY1NzA4Mzc4NjQ0ZDFlMGNhY2U3Li45ODU1ODVhYjFhMGY4NTQxZGJm
ZWJkMWZkYjE3NzBlZTJlZmQ1M2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzg4OSw2ICsxMzg4OSwxMSBAQAogCQlEMEJF
MTA1MTIxRTZBNzBFMDBFNDJBODkgLyogR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwQkUxMDUyMjFFNkFBMEQwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlw
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCRTEwNTMyMUU2QUEwRDAwRTQyQTg5IC8qIFdlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEJFMTA1RTIxRTZCQUQzMDBFNDJB
ODkgLyogR1BVQmluZEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJpbmRHcm91cC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMEJFMTA1RjIxRTZCQUQzMDBFNDJBODkgLyogR1BV
QmluZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUJpbmRHcm91cC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQkUxMDYwMjFFNkMwRUIwMEU0MkE4OSAvKiBXZWJH
UFVCaW5kR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQkUxMDYxMjFFNkMwRUIwMEU0MkE4OSAvKiBXZWJHUFVC
aW5kR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBCRTEwNjIyMUU2QzBFQjAwRTQyQTg5IC8qIFdl
YkdQVUJpbmRHcm91cC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR1BVQmluZEdyb3VwLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RUIyMTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lU3RhZ2VE
ZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUVDMjE4M0NG
QTIwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
R1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODA4OCw2ICsxODA5Myw4IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQlEMDg3Q0UzNzIxQUNBOTQyMDBCREUxNzQgLyogY29jb2EgKi8sCiAJCQkJ
MzEyRkY4Q0UyMUE0QzMzRjAwRUIxOTlEIC8qIGxlZ2FjeSAqLywKKwkJCQlEMEJFMTA1RjIxRTZC
QUQzMDBFNDJBODkgLyogR1BVQmluZEdyb3VwLmNwcCAqLywKKwkJCQlEMEJFMTA1RTIxRTZCQUQz
MDBFNDJBODkgLyogR1BVQmluZEdyb3VwLmggKi8sCiAJCQkJRDBCRTEwNEUyMUU2OTVFMjAwRTQy
QTg5IC8qIEdQVUJpbmRHcm91cEJpbmRpbmcuaCAqLywKIAkJCQlEMEJFMTA1MTIxRTZBNzBFMDBF
NDJBODkgLyogR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oICovLAogCQkJCUQwMjQ1NEQwMjFDNEE0
MUMwMEI3MzYyOCAvKiBHUFVCaW5kR3JvdXBMYXlvdXQuaCAqLywKQEAgLTI1NjM2LDYgKzI1NjQz
LDkgQEAKIAkJCQlEMDBGNTk1MTIxNkZGQUMyMDAwRDcxREIgLyogV2ViR1BVQWRhcHRlci5pZGwg
Ki8sCiAJCQkJRDAyQzI2OTEyMTgxNDE2RDAwRDgxOEU0IC8qIFdlYkdQVUFkYXB0ZXJEZXNjcmlw
dG9yLmggKi8sCiAJCQkJRDAyQzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIFdlYkdQVUFkYXB0ZXJE
ZXNjcmlwdG9yLmlkbCAqLywKKwkJCQlEMEJFMTA2MTIxRTZDMEVCMDBFNDJBODkgLyogV2ViR1BV
QmluZEdyb3VwLmNwcCAqLywKKwkJCQlEMEJFMTA2MDIxRTZDMEVCMDBFNDJBODkgLyogV2ViR1BV
QmluZEdyb3VwLmggKi8sCisJCQkJRDBCRTEwNjIyMUU2QzBFQjAwRTQyQTg5IC8qIFdlYkdQVUJp
bmRHcm91cC5pZGwgKi8sCiAJCQkJRDBCRTEwNEYyMUU2OUY4MzAwRTQyQTg5IC8qIFdlYkdQVUJp
bmRHcm91cEJpbmRpbmcuaCAqLywKIAkJCQlEMEJFMTA1MDIxRTY5RjgzMDBFNDJBODkgLyogV2Vi
R1BVQmluZEdyb3VwQmluZGluZy5pZGwgKi8sCiAJCQkJRDBCRTEwNTIyMUU2QUEwRDAwRTQyQTg5
IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCAyYWUxZWNmNzgzNjFkODY2
ODIxYzZlOWM4M2VkNWM0M2JiZWM0NTZjLi41NTVhOTM5MmIwZjJhZDM5YTA5NzM0N2EwZjdiNTA2
OGNmYzhiZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCkBAIC0xOTAsNiArMTkwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKFdlYkdMVmVydGV4QXJyYXlPYmplY3QpIFwKICAgICBtYWNybyhXZWJHUFUpIFwKICAg
ICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCisgICAgbWFjcm8oV2ViR1BVQmluZEdyb3VwKSBcCiAg
ICAgbWFjcm8oV2ViR1BVQmluZEdyb3VwTGF5b3V0KSBcCiAgICAgbWFjcm8oV2ViR1BVQnVmZmVy
KSBcCiAgICAgbWFjcm8oV2ViR1BVQnVmZmVyVXNhZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGRmZDM2MWFkOWVhNWM0ODM0ZGRkMjdmNzk3ZDFmNjA5ZTI4YmMwOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuY3Bw
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR1BVQmluZEdyb3VwLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAi
R1BVQmluZEdyb3VwQmluZGluZy5oIgorI2luY2x1ZGUgIkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8R1BVQmluZEdyb3VwPiBHUFVCaW5kR3Jv
dXA6OmNyZWF0ZShHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKK3sKKyAgICAv
LyBGSVhNRTogVW5maW5pc2hlZCBzdHViLgorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJp
bmRHcm91cChXVEZNb3ZlKGRlc2NyaXB0b3IpKSk7Cit9CisKK0dQVUJpbmRHcm91cDo6R1BVQmlu
ZEdyb3VwKEdQVUJpbmRHcm91cERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorICAgIDogbV9sYXlv
dXQoV1RGTW92ZShkZXNjcmlwdG9yLmxheW91dCkpCisgICAgLCBtX2JpbmRpbmdzKFdURk1vdmUo
ZGVzY3JpcHRvci5iaW5kaW5ncykpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI3ZjI5ZjRlMTI3YjAy
YTdmOTM1MDYzMDAwZGZjZTI0ZGViOTZmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXAuaApAQCAtMCwwICsxLDUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiR1BVQmluZEdyb3VwQmluZGluZy5oIgorI2luY2x1ZGUgIkdQVUJpbmRHcm91cExheW91
dC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
R1BVQmluZEdyb3VwRGVzY3JpcHRvcjsKKworY2xhc3MgR1BVQmluZEdyb3VwIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVQmluZEdyb3VwPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxHUFVCaW5k
R3JvdXA+IGNyZWF0ZShHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOworCitwcml2YXRlOgorICAg
IEdQVUJpbmRHcm91cChHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJiYpOworCisgICAgUmVmPEdQVUJp
bmRHcm91cExheW91dD4gbV9sYXlvdXQ7CisgICAgVmVjdG9yPEdQVUJpbmRHcm91cEJpbmRpbmc+
IG1fYmluZGluZ3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmgKaW5kZXggOTFlMDg3MzNjNjkzNDg4NzQyMWNmOTRh
NzVjNjYzNjI5NGQyMzQ5Yy4uODI0OGQ4YjhjOTAxYzUzZmI1NDMyZjcwMWQyODA1NTFjNDgzYmE0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1
ZmZlckJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQnVmZmVyQmluZGluZy5oCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBHUFVCdWZmZXJCaW5kaW5nIHsKLSAgICBSZWY8R1BVQnVmZmVyPiBidWZmZXI7
CisgICAgUmVmPGNvbnN0IEdQVUJ1ZmZlcj4gYnVmZmVyOwogICAgIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0OwogICAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdy
b3VwTGF5b3V0TWV0YWwubW0KaW5kZXggODc2ODBhODNjMGY0MTg5ODgyYzNiODQ5ZjI4MTYzZmU3
MTIwMjFiMC4uNWExOWU2NDE3OGMzNTg3ZGRlNDk5NjIxZWE5ZWUxNzgyZGY5OGVmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRH
cm91cExheW91dE1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQpAQCAtNTEsNyArNTEsNyBAQCBz
dGF0aWMgTVRMRGF0YVR5cGUgTVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlwZShHUFVCaW5kR3JvdXBM
YXlvdXRCaW5kaW5nOjpCaW5kaW5nVAogfQogCiB1c2luZyBBcmd1bWVudEFycmF5ID0gUmV0YWlu
UHRyPE5TTXV0YWJsZUFycmF5PE1UTEFyZ3VtZW50RGVzY3JpcHRvciAqPj47Ci1zdGF0aWMgdm9p
ZCBhcHBlbmRBcmd1bWVudFRvQXJyYXkoQXJndW1lbnRBcnJheSBhcnJheSwgUmV0YWluUHRyPE1U
TEFyZ3VtZW50RGVzY3JpcHRvcj4gYXJndW1lbnQpCitzdGF0aWMgdm9pZCBhcHBlbmRBcmd1bWVu
dFRvQXJyYXkoQXJndW1lbnRBcnJheSYgYXJyYXksIFJldGFpblB0cjxNVExBcmd1bWVudERlc2Ny
aXB0b3I+IGFyZ3VtZW50KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAg
ICBpZiAoIWFycmF5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIxZjc3ODgyNWQ3MWI3ZjYxNjU5MmMyNmMyOTczYTAxZGY5
ODA0ZmMuLjQyNjljNGNhZmU4ZTRmZDljNWUwMjk4NGE0Y2M0ZGJiYWM4MzhhYjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOS0wMS0xMCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtXZWJHUFVdIFdlYkdQVUJpbmRHcm91cCBhbmQgZGV2aWNlOjpjcmVh
dGVCaW5kR3JvdXAgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTMzNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTbWFsbCB0ZXN0IHRoYXQgY3JlYXRlcyBhIFdlYkdQVUJpbmRHcm91cC4K
KworICAgICAgICAqIHdlYmdwdS9iaW5kLWdyb3Vwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdwdS9iaW5kLWdyb3Vwcy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMS0xMCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjIzOTgyNS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9i
aW5kLWdyb3Vwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxZWI3ZGViNDgxM2IzYWM2YWU1MTM2ZDUwMDlkMmRi
ODE2MGEzNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91
cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENyZWF0ZSBhIGJhc2ljIFdl
YkdQVUJpbmRHcm91cCB2aWEgV2ViR1BVRGV2aWNlLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ3B1L2JpbmQtZ3JvdXBzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91
cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGE4ZWJmNjc1MmY0YTBmODkzYzVjYmRhYjNlYWRlYjlhNWUw
NGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L2JpbmQtZ3JvdXBzLmh0
bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZD10cnVlIF0gLS0+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPHRpdGxlPkNyZWF0ZSBhIGJhc2ljIFdlYkdQVUJpbmRHcm91cC48L3RpdGxlPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgY29uc3QgZGV2aWNlID0gYXdh
aXQgZ2V0QmFzaWNEZXZpY2UoKTsKKworICAgIC8vIFdlYkdQVUJpbmRHcm91cExheW91dEJpbmRp
bmdzCisgICAgLy8gRklYTUU6IEFsc28gdGVzdCBzYW1wbGVkIHRleHR1cmUgYmluZGluZ3MuIAor
ICAgIGNvbnN0IGJ1ZmZlckxheW91dEJpbmRpbmcgPSB7CisgICAgICAgIGJpbmRpbmc6IDEsCisg
ICAgICAgIHZpc2liaWxpdHk6IFdlYkdQVVNoYWRlclN0YWdlQml0LlZFUlRFWCwKKyAgICAgICAg
dHlwZTogInN0b3JhZ2VCdWZmZXIiCisgICAgfTsKKworICAgIGNvbnN0IGJpbmRHcm91cExheW91
dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoeyBiaW5kaW5nczogW2J1ZmZlckxheW91
dEJpbmRpbmddfSk7CisKKyAgICBjb25zdCBidWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsg
c2l6ZTogMTYsIHVzYWdlOiBXZWJHUFVCdWZmZXJVc2FnZS5TVE9SQUdFIH0pOworICAgIGNvbnN0
IGJ1ZmZlckJpbmRpbmcgPSB7IGJ1ZmZlcjogYnVmZmVyLCBvZmZzZXQ6IDAsIHNpemU6IDE2IH07
CisgICAgY29uc3QgYmluZEdyb3VwQmluZGluZyA9IHsgYmluZGluZzogMSwgcmVzb3VyY2U6IGJ1
ZmZlckJpbmRpbmcgfTsKKworICAgIGNvbnN0IGJpbmRHcm91cCA9IGRldmljZS5jcmVhdGVCaW5k
R3JvdXAoeyBsYXlvdXQ6IGJpbmRHcm91cExheW91dCwgYmluZGluZ3M6IFtiaW5kR3JvdXBCaW5k
aW5nXX0pOworICAgIGFzc2VydF90cnVlKGJpbmRHcm91cCBpbnN0YW5jZW9mIFdlYkdQVUJpbmRH
cm91cCwgIldlYkdQVUJpbmRHcm91cCBzdWNjZXNzZnVsbHkgY3JlYXRlZC4iKQorfSwgIkNyZWF0
ZSBhIGJhc2ljIFdlYkdQVUJpbmRHcm91cCB2aWEgV2ViR1BVRGV2aWNlLiIpCis8L3NjcmlwdD4K
KzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358856</attachid>
            <date>2019-01-10 17:34:30 -0800</date>
            <delta_ts>2019-01-10 18:13:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193341-20190110173429.patch</filename>
            <type>text/plain</type>
            <size>27948</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y4YjllNWYwMzU1YTQ0
MzU0Yjc4OTdlMTRhNjE0MDQwYzVmNWY0MC4uNGZlM2JmMGNmYjRlZWM4MTk1YmYzMzk0MDE1NzU2
ZDY3NDZkYzMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTEwICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gV2ViR1BV
QmluZEdyb3VwIGFuZCBkZXZpY2U6OmNyZWF0ZUJpbmRHcm91cCBwcm90b3R5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzM0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgorCisgICAgICAgIEFkZCAqR1BVQmluZEdy
b3VwIGNsYXNzIHN0dWJzIGFuZCB0aGUgYWJpbGl0eSB0byBjcmVhdGUgV2ViR1BVQmluZEdyb3Vw
cyB2aWEgdGhlIEFQSS4KKworICAgICAgICBUZXN0OiBiaW5kLWdyb3Vwcy5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVQmluZEdyb3VwOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVQmluZEdyb3VwOjpXZWJHUFVCaW5kR3JvdXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRH
cm91cC5pZGw6IEVuYWJsZSBjcmVhdGVCaW5kR3JvdXAoKS4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmluZGluZ1Jlc291cmNl
VmlzaXRvcjo6b3BlcmF0b3IoKSBjb25zdCk6IEFkZGVkLiBWYWxpZGF0ZSBhbmQgY29udmVydCBX
ZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yIHRvIEdQVSogdmVyc2lvbi4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwIGNvbnN0KTogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3Jv
dXA6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5kR3JvdXA6OkdQVUJpbmRHcm91
cCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQXJndW1lbnRUb0FycmF5KTogUGFzcyBSZXRhaW5Q
dHIgYnkgcmVmZXJlbmNlIHRvIGFjdHVhbGx5IHVwZGF0ZSBkZXNjcmlwdG9yLgorCiAyMDE5LTAx
LTEwICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQ
VV0gQWRkIEJpbmRHcm91cEJpbmRpbmcsIEJpbmRHcm91cERlc2NyaXB0b3IsIGFuZCBCdWZmZXJC
aW5kaW5nIGRpY3Rpb25hcmllcyBmcm9tIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZGQ1
MzI5YTliNTk2Nzk4MjM5ZTdlMmE3MTQwNTg3M2U0MDIwNDRjLi5mMjc3NWViYjM5MzJhNGYzMDhi
ZTM0MTQ0MGIxM2FkOTJkNmIyZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDY0LDYgKzQ2
NCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUv
V2ViR1BVLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsCiAgICAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91
cEJpbmRpbmcuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRv
ci5pZGwKICAgICBNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlMTdjNmFmYTdhN2MwMTMxOTFjOGMzZTk3NTdm
MzZlYjYwZmIzZTU1Li44YzIwYzQ5NDUzNDQ2ZjUzMWQ2ZGU5MTdhYTI2ZjhjOGY3NTUxOWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3NSw2ICszNzUsNyBAQCBKU19CSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFUuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cEJpbmRpbmcuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmlu
ZEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91
cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjQ4ZmUxZGYxNjNmYzU1YWNiY2M1MWE3NDIwOTA2ZjJkYzE2NGY4
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUJpbmRHcm91cC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKworI2lmIEVOQUJMRShXRUJH
UFUpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYkdQVUJpbmRHcm91cD4gV2ViR1BV
QmluZEdyb3VwOjpjcmVhdGUoUmVmUHRyPEdQVUJpbmRHcm91cD4mJiBiaW5kR3JvdXApCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3Vw
KSkpOworfQorCitXZWJHUFVCaW5kR3JvdXA6OldlYkdQVUJpbmRHcm91cChSZWZQdHI8R1BVQmlu
ZEdyb3VwPiYmIGJpbmRHcm91cCkKKyAgICA6IG1fYmluZEdyb3VwKFdURk1vdmUoYmluZEdyb3Vw
KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3Vw
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGEwNDcwOTU1M2JkNGU5YWNhZjJmOGExYTE0NThlMTcxMzFiY2I4Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJp
bmRHcm91cC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXZWJHUFVCaW5kR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJHUFVCaW5kR3JvdXA+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUJpbmRHcm91
cD4gY3JlYXRlKFJlZlB0cjxHUFVCaW5kR3JvdXA+JiYpOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IFdlYkdQVUJpbmRHcm91cChSZWZQdHI8R1BVQmluZEdyb3VwPiYmKTsKKworICAgIFJlZlB0
cjxHUFVCaW5kR3JvdXA+IG1fYmluZEdyb3VwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MGIwZTEyY2RhOTNh
MmY2ZDJiZTllZTQ4YTdhNDYyZDdlNzg1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuaWRsCkBAIC0wLDAgKzEsMzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworLy8gaHR0cHM6Ly9naXRodWIuY29tL2dwdXdlYi9ncHV3ZWIvYmxvYi9tYXN0
ZXIvZGVzaWduL3NrZXRjaC53ZWJpZGwKKworWworICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
CitdIGludGVyZmFjZSBXZWJHUFVCaW5kR3JvdXAgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IDJmZmEzYjdhNmQ4YTlhZGZiMzdj
MWY0NGNjNjY5OWUwNmM3ZTUzYzUuLjNjNGMwZWIyNTFhYzdjODIzMDdmYWE3M2ZmN2FmOTAzYWIz
ZDc1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmNwcApAQCAtMjgsMTMgKzI4LDIxIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVk
ZSAiR1BVQmluZEdyb3VwLmgiCisjaW5jbHVkZSAiR1BVQmluZEdyb3VwQmluZGluZy5oIgorI2lu
Y2x1ZGUgIkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVCdWZmZXJCaW5k
aW5nLmgiCiAjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdQVVBpcGVs
aW5lU3RhZ2VEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXAuaCIKKyNpbmNsdWRlICJXZWJH
UFVCaW5kR3JvdXBCaW5kaW5nLmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cExheW91dC5oIgogI2luY2x1ZGUgIldlYkdQ
VUJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmcuaCIKICNpbmNsdWRlICJX
ZWJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXQuaCIK
ICNpbmNsdWRlICJXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKQEAgLTQ0LDYgKzUy
LDcgQEAKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04NSw2ICs5NCwzOSBAQCBSZWY8V2ViR1BVUGlwZWxpbmVMYXlvdXQ+IFdlYkdQ
VURldmljZTo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdQogICAgIHJl
dHVybiBXZWJHUFVQaXBlbGluZUxheW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAK
K1JlZjxXZWJHUFVCaW5kR3JvdXA+IFdlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwKFdlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAoreworICAgIGlmICghZGVz
Y3JpcHRvci5sYXlvdXQgfHwgIWRlc2NyaXB0b3IubGF5b3V0LT5iaW5kR3JvdXBMYXlvdXQoKSkg
eworICAgICAgICBMT0coV2ViR1BVLCAiV2ViR1BVRGV2aWNlOjpjcmVhdGVCaW5kR3JvdXA6IElu
dmFsaWQgV2ViR1BVQmluZEdyb3VwTGF5b3V0ISIpOworICAgICAgICByZXR1cm4gV2ViR1BVQmlu
ZEdyb3VwOjpjcmVhdGUobnVsbHB0cik7CisgICAgfQorCisgICAgYXV0byBiaW5kaW5nUmVzb3Vy
Y2VWaXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbXSAoUmVmUHRyPFdlYkdQVVRleHR1cmVWaWV3
PiB2aWV3KSAtPiBPcHRpb25hbDxHUFVCaW5kaW5nUmVzb3VyY2U+IHsKKyAgICAgICAgaWYgKHZp
ZXcpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BVQmluZGluZ1Jlc291cmNlPih2
aWV3LT50ZXh0dXJlKCkpOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0sIFtd
IChjb25zdCBXZWJHUFVCdWZmZXJCaW5kaW5nJiBiaW5kaW5nKSAtPiBPcHRpb25hbDxHUFVCaW5k
aW5nUmVzb3VyY2U+IHsKKyAgICAgICAgaWYgKGJpbmRpbmcuYnVmZmVyKQorICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEdQVUJpbmRpbmdSZXNvdXJjZT4oR1BVQnVmZmVyQmluZGluZyB7
IGJpbmRpbmcuYnVmZmVyLT5idWZmZXIoKSwgYmluZGluZy5vZmZzZXQsIGJpbmRpbmcuc2l6ZSB9
KTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9KTsKKworICAgIFZlY3RvcjxH
UFVCaW5kR3JvdXBCaW5kaW5nPiBiaW5kR3JvdXBCaW5kaW5nczsKKyAgICBiaW5kR3JvdXBCaW5k
aW5ncy5yZXNlcnZlQ2FwYWNpdHkoZGVzY3JpcHRvci5iaW5kaW5ncy5zaXplKCkpOworCisgICAg
Zm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogZGVzY3JpcHRvci5iaW5kaW5ncykgeworICAgICAg
ICBhdXRvIGJpbmRpbmdSZXNvdXJjZSA9IFdURjo6dmlzaXQoYmluZGluZ1Jlc291cmNlVmlzaXRv
ciwgYmluZGluZy5yZXNvdXJjZSk7CisgICAgICAgIGlmIChiaW5kaW5nUmVzb3VyY2UpCisgICAg
ICAgICAgICBiaW5kR3JvdXBCaW5kaW5ncy51bmNoZWNrZWRBcHBlbmQoR1BVQmluZEdyb3VwQmlu
ZGluZyB7IGJpbmRpbmcuYmluZGluZywgV1RGTW92ZShiaW5kaW5nUmVzb3VyY2UudmFsdWUoKSkg
fSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgTE9HKFdlYkdQVSwgIldlYkdQVURldmlj
ZTo6Y3JlYXRlQmluZEdyb3VwOiBJbnZhbGlkIFdlYkdQVUJpbmRpbmdSZXNvdXJjZSBpbiBXZWJH
UFVCaW5kR3JvdXBCaW5kaW5ncyEiKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHUFVCaW5kR3Jv
dXA6OmNyZWF0ZShudWxscHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBhdXRvIGJpbmRHcm91
cCA9IEdQVUJpbmRHcm91cDo6Y3JlYXRlKEdQVUJpbmRHcm91cERlc2NyaXB0b3IgeyBkZXNjcmlw
dG9yLmxheW91dC0+YmluZEdyb3VwTGF5b3V0KCkucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShi
aW5kR3JvdXBCaW5kaW5ncykgfSk7CisgICAgcmV0dXJuIFdlYkdQVUJpbmRHcm91cDo6Y3JlYXRl
KFdURk1vdmUoYmluZEdyb3VwKSk7Cit9CisKIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdl
YkdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3ImJiBkZXNjcmlwdG9yKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBXaGF0IGNhbiBiZSB2YWxp
ZGF0ZWQgaGVyZT8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmgKaW5kZXggNDRjY2UwNWJhNWNlNGM4M2FkNTllNDQ0ZjZiNmRhZDY2ZDBjM2IzZS4uODk5OGFk
NjNjZDBmOWJhYWQwNmUzMjRmNTYwNWM0ZTlhMWJhZDMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdQ
VUJpbmRHcm91cDsKIGNsYXNzIFdlYkdQVUJpbmRHcm91cExheW91dDsKIGNsYXNzIFdlYkdQVUJ1
ZmZlcjsKIGNsYXNzIFdlYkdQVUNvbW1hbmRCdWZmZXI7CkBAIC00Nyw2ICs0OCw3IEBAIGNsYXNz
IFdlYkdQVVBpcGVsaW5lTGF5b3V0OwogY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmU7CiBjbGFz
cyBXZWJHUFVTaGFkZXJNb2R1bGU7CiAKK3N0cnVjdCBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
Owogc3RydWN0IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjsKIHN0cnVjdCBXZWJHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CiBzdHJ1Y3QgV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvcjsKQEAgLTYyLDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgUmVmPFdlYkdQVUJpbmRHcm91
cExheW91dD4gY3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3ImJikgY29uc3Q7CiAgICAgUmVmPFdlYkdQVVBpcGVsaW5lTGF5b3V0PiBjcmVhdGVQaXBl
bGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3ImJikgY29uc3Q7CisgICAg
UmVmPFdlYkdQVUJpbmRHcm91cD4gY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2Ny
aXB0b3ImJikgY29uc3Q7CiAKICAgICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGVT
aGFkZXJNb2R1bGUoV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYmKSBjb25zdDsKICAgICBS
ZWZQdHI8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYkdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciYmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCmluZGV4IDc2MDdkOTJlOTQ5YTRiZTFlZWI5MzVj
ZGRhMDUxZDdiODYxMDYxZWEuLmYyYjY3NzRjZDBkZTk0N2JiNTRlODQ5MjY2Zjc2YWJmOGQ3NDMw
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlk
bApAQCAtMzcsNiArMzcsNyBAQAogCiAgICAgV2ViR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0ZUJp
bmRHcm91cExheW91dChXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3Ip
OwogICAgIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KFdlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICBXZWJHUFVCaW5kR3JvdXAg
Y3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAK
ICAgICBXZWJHUFVTaGFkZXJNb2R1bGUgY3JlYXRlU2hhZGVyTW9kdWxlKFdlYkdQVVNoYWRlck1v
ZHVsZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiAgICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUgY3Jl
YXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0
b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAyMzhlYTdkMzM4OTIyMDk3YTY2YmZmNzQ2YWQ0MDU1MGRj
ZmJjYTZmLi44NDA3MDliODEyMjZhZjg0YmM2OTIzMTc5NTkyNGZiNWZlZDEyOTA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMzA4LDYgKzMwOCw3IEBAIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIE1vZHVsZXMvd2ViZ3B1L0RPTVdpbmRvd1dlYkdQ
VS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMTGV4ZXIuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFUuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVCaW5kR3JvdXAuY3BwCiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0LmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmNwcApAQCAtMTc1MCw2ICsx
NzUxLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmNwcAogCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
QmluZEdyb3VwLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9sZWdhY3kvR1BVTGVnYWN5QnVmZmVyLmNwcApAQCAtMzIzNSw2ICszMjM3LDcgQEAgSlNX
ZWJBbmltYXRpb24uY3BwCiBKU1dlYkdQVS5jcHAKIEpTV2ViR1BVQWRhcHRlci5jcHAKIEpTV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuY3BwCitKU1dlYkdQVUJpbmRHcm91cC5jcHAKIEpTV2ViR1BV
QmluZEdyb3VwQmluZGluZy5jcHAKIEpTV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKIEpT
V2ViR1BVQmluZEdyb3VwTGF5b3V0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIwODMyMDUyZTcyNmQyOTBhNTk5NjU3MDgz
Nzg2NDRkMWUwY2FjZTcuLjk4NTU4NWFiMWEwZjg1NDFkYmZlYmQxZmRiMTc3MGVlMmVmZDUzYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEzODg5LDYgKzEzODg5LDExIEBACiAJCUQwQkUxMDUxMjFFNkE3MEUwMEU0MkE4OSAv
KiBHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUJpbmRHcm91cERl
c2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBCRTEwNTIyMUU2QUEw
RDAwRTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMEJFMTA1MzIxRTZBQTBEMDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQwQkUxMDVFMjFFNkJBRDMwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQwQkUxMDVGMjFFNkJBRDMwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR1BVQmluZEdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRDBCRTEwNjAyMUU2QzBFQjAwRTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHUFVCaW5kR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDBCRTEwNjEyMUU2QzBFQjAwRTQyQTg5IC8qIFdlYkdQVUJpbmRHcm91cC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEMEJFMTA2MjIxRTZDMEVCMDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHUFVCaW5kR3JvdXAuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEM0
MTlFQjIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBDNDE5RUMyMTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBp
cGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3Jp
cHRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwQzQxOUYwMjE4M0VCMzEw
MDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4MDg4LDYgKzE4MDkzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUQwODdDRTM3
MjFBQ0E5NDIwMEJERTE3NCAvKiBjb2NvYSAqLywKIAkJCQkzMTJGRjhDRTIxQTRDMzNGMDBFQjE5
OUQgLyogbGVnYWN5ICovLAorCQkJCUQwQkUxMDVGMjFFNkJBRDMwMEU0MkE4OSAvKiBHUFVCaW5k
R3JvdXAuY3BwICovLAorCQkJCUQwQkUxMDVFMjFFNkJBRDMwMEU0MkE4OSAvKiBHUFVCaW5kR3Jv
dXAuaCAqLywKIAkJCQlEMEJFMTA0RTIxRTY5NUUyMDBFNDJBODkgLyogR1BVQmluZEdyb3VwQmlu
ZGluZy5oICovLAogCQkJCUQwQkUxMDUxMjFFNkE3MEUwMEU0MkE4OSAvKiBHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yLmggKi8sCiAJCQkJRDAyNDU0RDAyMUM0QTQxQzAwQjczNjI4IC8qIEdQVUJpbmRH
cm91cExheW91dC5oICovLApAQCAtMjU2MzYsNiArMjU2NDMsOSBAQAogCQkJCUQwMEY1OTUxMjE2
RkZBQzIwMDBENzFEQiAvKiBXZWJHUFVBZGFwdGVyLmlkbCAqLywKIAkJCQlEMDJDMjY5MTIxODE0
MTZEMDBEODE4RTQgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLywKIAkJCQlEMDJDMjY5
MjIxODE0MTZEMDBEODE4RTQgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsICovLAorCQkJ
CUQwQkUxMDYxMjFFNkMwRUIwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXAuY3BwICovLAorCQkJ
CUQwQkUxMDYwMjFFNkMwRUIwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXAuaCAqLywKKwkJCQlE
MEJFMTA2MjIxRTZDMEVCMDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwLmlkbCAqLywKIAkJCQlE
MEJFMTA0RjIxRTY5RjgzMDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwQmluZGluZy5oICovLAog
CQkJCUQwQkUxMDUwMjFFNjlGODMwMEU0MkE4OSAvKiBXZWJHUFVCaW5kR3JvdXBCaW5kaW5nLmlk
bCAqLywKIAkJCQlEMEJFMTA1MjIxRTZBQTBEMDBFNDJBODkgLyogV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCmluZGV4IDJhZTFlY2Y3ODM2MWQ4NjY4MjFjNmU5YzgzZWQ1YzQzYmJlYzQ1
NmMuLjU1NWE5MzkyYjBmMmFkMzlhMDk3MzQ3YTBmN2I1MDY4Y2ZjOGJlYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE5MCw2
ICsxOTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCkgXAogICAgIG1hY3JvKFdlYkdQVSkgXAogICAgIG1hY3JvKFdlYkdQVUFkYXB0ZXIp
IFwKKyAgICBtYWNybyhXZWJHUFVCaW5kR3JvdXApIFwKICAgICBtYWNybyhXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQpIFwKICAgICBtYWNybyhXZWJHUFVCdWZmZXIpIFwKICAgICBtYWNybyhXZWJHUFVC
dWZmZXJVc2FnZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUJpbmRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQmluZEdyb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGZkMzYxYWQ5ZWE1YzQ4MzRkZGQy
N2Y3OTdkMWY2MDllMjhiYzA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91cC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXAuaCIK
KworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXBCaW5kaW5nLmgi
CisjaW5jbHVkZSAiR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1JlZjxHUFVCaW5kR3JvdXA+IEdQVUJpbmRHcm91cDo6Y3JlYXRlKEdQVUJpbmRHcm91
cERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQoreworICAgIC8vIEZJWE1FOiBVbmZpbmlzaGVkIHN0
dWIuCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3VwKFdURk1vdmUoZGVzY3Jp
cHRvcikpKTsKK30KKworR1BVQmluZEdyb3VwOjpHUFVCaW5kR3JvdXAoR1BVQmluZEdyb3VwRGVz
Y3JpcHRvciYmIGRlc2NyaXB0b3IpCisgICAgOiBtX2xheW91dChXVEZNb3ZlKGRlc2NyaXB0b3Iu
bGF5b3V0KSkKKyAgICAsIG1fYmluZGluZ3MoV1RGTW92ZShkZXNjcmlwdG9yLmJpbmRpbmdzKSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVC
aW5kR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYjdmMjlmNGUxMjdiMDJhN2Y5MzUwNjMwMDBkZmNlMjRkZWI5
NmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUJpbmRHcm91cC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVCaW5kR3JvdXBCaW5k
aW5nLmgiCisjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5b3V0LmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
OworCitjbGFzcyBHUFVCaW5kR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVCaW5kR3JvdXA+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdQVUJpbmRHcm91cD4gY3JlYXRlKEdQVUJpbmRH
cm91cERlc2NyaXB0b3ImJik7CisKK3ByaXZhdGU6CisgICAgR1BVQmluZEdyb3VwKEdQVUJpbmRH
cm91cERlc2NyaXB0b3ImJik7CisKKyAgICBSZWY8R1BVQmluZEdyb3VwTGF5b3V0PiBtX2xheW91
dDsKKyAgICBWZWN0b3I8R1BVQmluZEdyb3VwQmluZGluZz4gbV9iaW5kaW5nczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyQmluZGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlckJpbmRp
bmcuaAppbmRleCA5MWUwODczM2M2OTM0ODg3NDIxY2Y5NGE3NWM2NjM2Mjk0ZDIzNDljLi44MjQ4
ZDhiOGM5MDFjNTNmYjU0MzJmNzAxZDI4MDU1MWM0ODNiYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyQmluZGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXJCaW5kaW5nLmgKQEAg
LTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEdQVUJ1ZmZlckJp
bmRpbmcgewotICAgIFJlZjxHUFVCdWZmZXI+IGJ1ZmZlcjsKKyAgICBSZWY8Y29uc3QgR1BVQnVm
ZmVyPiBidWZmZXI7CiAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAgICAgdW5zaWduZWQgbG9u
ZyBzaXplOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQppbmRl
eCA4NzY4MGE4M2MwZjQxODk4ODJjM2I4NDlmMjgxNjNmZTcxMjAyMWIwLi41YTE5ZTY0MTc4YzM1
ODdkZGU0OTk2MjFlYTllZTE3ODJkZjk4ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91
cExheW91dE1ldGFsLm1tCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBNVExEYXRhVHlwZSBNVExE
YXRhVHlwZUZvckJpbmRpbmdUeXBlKEdQVUJpbmRHcm91cExheW91dEJpbmRpbmc6OkJpbmRpbmdU
CiB9CiAKIHVzaW5nIEFyZ3VtZW50QXJyYXkgPSBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TVRM
QXJndW1lbnREZXNjcmlwdG9yICo+PjsKLXN0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50VG9BcnJh
eShBcmd1bWVudEFycmF5IGFycmF5LCBSZXRhaW5QdHI8TVRMQXJndW1lbnREZXNjcmlwdG9yPiBh
cmd1bWVudCkKK3N0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50VG9BcnJheShBcmd1bWVudEFycmF5
JiBhcnJheSwgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVzY3JpcHRvcj4gYXJndW1lbnQpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIGlmICghYXJyYXkpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MjFmNzc4ODI1ZDcxYjdmNjE2NTkyYzI2YzI5NzNhMDFkZjk4MDRmYy4uZjZkMzE5YWI1MDM0OTZi
MzljNzkyNDk2MmIyMGJhZTQzYzM5OTdkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAx
LTEwICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gV2ViR1BVQmluZEdyb3VwIGFuZCBkZXZpY2U6OmNyZWF0ZUJpbmRHcm91cCBwcm90b3R5cGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzM0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgorCisgICAgICAgIFNtYWxs
IHRlc3QgdGhhdCBjcmVhdGVzIGEgV2ViR1BVQmluZEdyb3VwLgorCisgICAgICAgICogd2ViZ3B1
L2JpbmQtZ3JvdXBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L2JpbmQt
Z3JvdXBzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTEwICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjM5
ODI1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L2JpbmQtZ3JvdXBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTFlYjdkZWI0ODEzYjNhYzZhZTUxMzZkNTAwOWQyZGI4MTYwYTM0MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgQ3JlYXRlIGEgYmFzaWMgV2ViR1BVQmluZEdyb3VwIHZpYSBX
ZWJHUFVEZXZpY2UuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91
cHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS9iaW5kLWdyb3Vwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE4YThlYmY2NzUyZjRhMGY4OTNjNWNiZGFiM2VhZGViOWE1ZTA0ZDEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJncHUvYmluZC1ncm91cHMuaHRtbApAQCAtMCwwICsxLDMwIEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpX
ZWJHUFVFbmFibGVkPXRydWUgXSAtLT4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+Q3Jl
YXRlIGEgYmFzaWMgV2ViR1BVQmluZEdyb3VwLjwvdGl0bGU+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcHJvbWlzZV90ZXN0
KGFzeW5jICgpID0+IHsKKyAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBnZXRCYXNpY0RldmljZSgp
OworCisgICAgLy8gV2ViR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZ3MKKyAgICAvLyBGSVhNRTog
QWxzbyB0ZXN0IHNhbXBsZWQgdGV4dHVyZSBiaW5kaW5ncy4gCisgICAgY29uc3QgYnVmZmVyTGF5
b3V0QmluZGluZyA9IHsKKyAgICAgICAgYmluZGluZzogMSwKKyAgICAgICAgdmlzaWJpbGl0eTog
V2ViR1BVU2hhZGVyU3RhZ2VCaXQuVkVSVEVYLAorICAgICAgICB0eXBlOiAic3RvcmFnZUJ1ZmZl
ciIKKyAgICB9OworCisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJp
bmRHcm91cExheW91dCh7IGJpbmRpbmdzOiBbYnVmZmVyTGF5b3V0QmluZGluZ119KTsKKworICAg
IGNvbnN0IGJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoeyBzaXplOiAxNiwgdXNhZ2U6IFdl
YkdQVUJ1ZmZlclVzYWdlLlNUT1JBR0UgfSk7CisgICAgY29uc3QgYnVmZmVyQmluZGluZyA9IHsg
YnVmZmVyOiBidWZmZXIsIG9mZnNldDogMCwgc2l6ZTogMTYgfTsKKyAgICBjb25zdCBiaW5kR3Jv
dXBCaW5kaW5nID0geyBiaW5kaW5nOiAxLCByZXNvdXJjZTogYnVmZmVyQmluZGluZyB9OworCisg
ICAgY29uc3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91cCh7IGxheW91dDogYmlu
ZEdyb3VwTGF5b3V0LCBiaW5kaW5nczogW2JpbmRHcm91cEJpbmRpbmddfSk7CisgICAgYXNzZXJ0
X3RydWUoYmluZEdyb3VwIGluc3RhbmNlb2YgV2ViR1BVQmluZEdyb3VwLCAiV2ViR1BVQmluZEdy
b3VwIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLiIpCit9LCAiQ3JlYXRlIGEgYmFzaWMgV2ViR1BVQmlu
ZEdyb3VwIHZpYSBXZWJHUFVEZXZpY2UuIikKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>