<?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>220981</bug_id>
          
          <creation_ts>2021-01-26 07:32:52 -0800</creation_ts>
          <short_desc>Load data URLs in the web process also for synchronous loads</short_desc>
          <delta_ts>2021-01-28 04:41:15 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220509</see_also>
          <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>
          
          <blocked>220764</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>lmoura</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1722502</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-26 07:32:52 -0800</bug_when>
    <thetext>In r271879 I removed the support for data URLs in the network process for soup, assuming data URLs were always loaded from the web process, but that&apos;s not the case for synchronous loads. We don&apos;t need to go to the network process for sync loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722505</commentid>
    <comment_count>1</comment_count>
      <attachid>418418</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-26 07:41:12 -0800</bug_when>
    <thetext>Created attachment 418418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722509</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-26 07:49:46 -0800</bug_when>
    <thetext>It seems it&apos;s failing to find &lt;WebCore/DataURLDecoder.h&gt;. Aren&apos;t forwarding headers automatic in mac? I added the header to Source/WebCore/Headers.cmake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722848</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 00:40:08 -0800</bug_when>
    <thetext>*** Bug 221023 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722901</commentid>
    <comment_count>4</comment_count>
      <attachid>418525</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 03:55:18 -0800</bug_when>
    <thetext>Created attachment 418525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722902</commentid>
    <comment_count>5</comment_count>
      <attachid>418526</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 04:03:23 -0800</bug_when>
    <thetext>Created attachment 418526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722906</commentid>
    <comment_count>6</comment_count>
      <attachid>418528</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 04:10:30 -0800</bug_when>
    <thetext>Created attachment 418528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723166</commentid>
    <comment_count>7</comment_count>
      <attachid>418528</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-27 15:01:22 -0800</bug_when>
    <thetext>Comment on attachment 418528
Patch

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

&gt; Source/WebCore/platform/network/DataURLDecoder.cpp:221
&gt; +    bool success = task-&gt;process();

I don&apos;t think we need a local variable here.  I think the function logic would look simpler like this:

if (!task-&gt;process())
    return WTF::nullopt;
if (task-&gt;isBase64) {
    if (!decodeBase64(*task, mode))
        return WTF::nullopt;
} else
    decodeEscaped(*task);
return WTFMove(task-&gt;result);

Also, this whole thing is duplicate code.  I think this function should be called decodeSynchronously and decode should call it.

&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:547
&gt; +    result.response.setHTTPStatusCode(200);

This is adding duplicate code with ResourceLoader::loadDataURL.  Could we make them share code?

&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:601
&gt; +        auto syncLoadResult = loadDataURLSynchronously(request);

WebLoaderStrategy::loadResourceSynchronously should return a SyncLoadResult instead of taking error, response, and data as out params.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723334</commentid>
    <comment_count>8</comment_count>
      <attachid>418528</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-28 03:00:55 -0800</bug_when>
    <thetext>Comment on attachment 418528
Patch

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

&gt;&gt; Source/WebCore/platform/network/DataURLDecoder.cpp:221
&gt;&gt; +    bool success = task-&gt;process();
&gt; 
&gt; I don&apos;t think we need a local variable here.  I think the function logic would look simpler like this:
&gt; 
&gt; if (!task-&gt;process())
&gt;     return WTF::nullopt;
&gt; if (task-&gt;isBase64) {
&gt;     if (!decodeBase64(*task, mode))
&gt;         return WTF::nullopt;
&gt; } else
&gt;     decodeEscaped(*task);
&gt; return WTFMove(task-&gt;result);
&gt; 
&gt; Also, this whole thing is duplicate code.  I think this function should be called decodeSynchronously and decode should call it.

Ok, I&apos;ll moved the common parts, the whole function can&apos;t be used from the async function because the task creation is different.

&gt;&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:547
&gt;&gt; +    result.response.setHTTPStatusCode(200);
&gt; 
&gt; This is adding duplicate code with ResourceLoader::loadDataURL.  Could we make them share code?

Yes.

&gt;&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:601
&gt;&gt; +        auto syncLoadResult = loadDataURLSynchronously(request);
&gt; 
&gt; WebLoaderStrategy::loadResourceSynchronously should return a SyncLoadResult instead of taking error, response, and data as out params.

SyncLoadResult is private. We could make it public and update all the callers, but I think that refactoring is out of scope of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723336</commentid>
    <comment_count>9</comment_count>
      <attachid>418633</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-28 03:08:25 -0800</bug_when>
    <thetext>Created attachment 418633
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723348</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-28 04:40:54 -0800</bug_when>
    <thetext>Committed r272009: &lt;https://trac.webkit.org/changeset/272009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723349</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-28 04:41:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73704517&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418418</attachid>
            <date>2021-01-26 07:41:12 -0800</date>
            <delta_ts>2021-01-27 03:55:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-sync-data-url.diff</filename>
            <type>text/plain</type>
            <size>15555</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YWExNWEwOTE4NTQuLjBiYmE4MzhmODAyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDIxLTAxLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3Mg
YWxzbyBmb3Igc3luY2hyb25vdXMgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzeW5jaHJvbm91cyBBUEkgZm9yIERhdGFVUkxEZWNvZGVy
LiBJdCBub3cgdXNlcyBhIFZlY3RvcjxjaGFyPiBmb3IgdGhlIGRhdGEgaW5zdGVhZCBvZiBTaGFy
ZWRCdWZmZXIuIFRoYXQKKyAgICAgICAgd2F5LCBSZXNvdXJjZUxvYWRlciBjYW4gY3JlYXRlIHRo
ZSBTaGFyZWRCdWZmZXIgZnJvbSB0aGUgZ2l2ZW4gZGF0YSBhbmQgbG9hZGVyIHN0cmF0ZWd5IGNh
biBzaW1wbHkgbW92ZSBpdC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6IEFkZCBEYXRhVVJM
RGVjb2Rlci5oCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCk6IEFkYXB0IHRvIHRoZSBEYXRh
VVJMRGVjb2RlciBBUEkgY2hhbmdlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFV
UkxEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpwYXJzZU1l
ZGlhVHlwZSk6IFVwZGF0ZSB0aGUgZGF0YSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFVUkxEZWNvZGVyOjpkZWNvZGVCYXNlNjQpOiBSZXR1cm4gYm9vbCB0byBpbmRpY2F0
ZSBzdWNjZXNzIG9yIGVycm9yIGFuZCBtb3ZlIHRoZSByZXN1bHRpbmcgdmVjdG9yCisgICAgICAg
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTaGFyZWRCdWZmZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6ZGVjb2RlRXNjYXBlZCk6IE1vdmUgdGhlIHJlc3VsdGluZyB2ZWN0b3Ig
aW5zdGVhZCBvZiBjcmVhdGluZyBhIFNoYXJlZEJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFVUkxEZWNvZGVyOjpkZWNvZGUpOiBSZXR1cm4gbnVsbG9wdCBpbiBjYXNlIG9mIGZhaWx1cmUg
b3IgdGhlIHRhc2sgcmVzdWx0IG90aGVyd2lzZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxE
ZWNvZGVyOjpkZWNvZGUpOiBTeW5jaHJvbm91cyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZVVSTEVz
Y2FwZVNlcXVlbmNlc0FzRGF0YSk6IFVzZSBWZWN0b3I8Y2hhcj4gc28gdGhhdCB3ZSBjYW4gYXZv
aWQgZGF0YSBjb3BpZXMuCisKIDIwMjEtMDEtMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzE1MTQgYW5kIHIyNzE1
NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGVkMDY2YzExY2FjMi4uZTdkMDA4MTI5YzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEzOTAsNiArMTM5MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdl
LmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9ETlNS
ZXNvbHZlUXVldWUuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuaAogICAg
IHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGIzNTRlN2FhYWY3
OS4uZjc3YTBlNTRjZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTI3MiwxNCArMjcyLDE0IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmxvYWREYXRhVVJM
KCkKICAgICAgICAgaWYgKHRoaXMtPndhc0NhbmNlbGxlZCgpKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBhdXRvJiByZXN1bHQgPSBkZWNvZGVSZXN1bHQudmFsdWUoKTsKLSAgICAgICAg
YXV0byBkYXRhU2l6ZSA9IHJlc3VsdC5kYXRhID8gcmVzdWx0LmRhdGEtPnNpemUoKSA6IDA7Cisg
ICAgICAgIGF1dG8gZGF0YVNpemUgPSByZXN1bHQuZGF0YS5zaXplKCk7CiAKICAgICAgICAgUmVz
b3VyY2VSZXNwb25zZSBkYXRhUmVzcG9uc2UgeyB1cmwsIHJlc3VsdC5taW1lVHlwZSwgc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIHJlc3VsdC5jaGFyc2V0IH07CiAgICAgICAgIGRh
dGFSZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICBkYXRhUmVzcG9uc2Uu
c2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgZGF0YVJlc3BvbnNlLnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIHJlc3VsdC5jb250ZW50VHlw
ZSk7CiAgICAgICAgIGRhdGFSZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpOZXR3b3JrKTsKLSAgICAgICAgdGhpcy0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGRhdGFSZXNw
b25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBkYXRh
U2l6ZSwgZGF0YSA9IHJlc3VsdC5kYXRhLnJlbGVhc2VOb25OdWxsKCldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIHRoaXMtPmRpZFJlY2VpdmVSZXNwb25zZShkYXRhUmVzcG9uc2UsIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZGF0YVNpemUsIGRhdGEgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShXVEZNb3ZlKHJlc3VsdC5kYXRhKSldKCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoIXRoaXMtPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkgJiYgZGF0YVNpemUgJiYg
bV9yZXF1ZXN0Lmh0dHBNZXRob2QoKSAhPSAiSEVBRCIpCiAgICAgICAgICAgICAgICAgdGhpcy0+
ZGlkUmVjZWl2ZUJ1ZmZlcihXVEZNb3ZlKGRhdGEpLCBkYXRhU2l6ZSwgRGF0YVBheWxvYWRXaG9s
ZVJlc291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Rh
dGFVUkxEZWNvZGVyLmNwcAppbmRleCBlOGJmOWMyZTFhODcuLjE0M2E0YmM1NjhlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAK
QEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCIKICNp
bmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIlBhcnNlZENvbnRlbnRUeXBlLmgiCi0j
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTcx
LDggKzcwLDggQEAgc3RhdGljIFdvcmtRdWV1ZSYgZGVjb2RlUXVldWUoKQogc3RhdGljIFJlc3Vs
dCBwYXJzZU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoT3B0
aW9uYWw8UGFyc2VkQ29udGVudFR5cGU+IHBhcnNlZENvbnRlbnRUeXBlID0gUGFyc2VkQ29udGVu
dFR5cGU6OmNyZWF0ZShtZWRpYVR5cGUpKQotICAgICAgICByZXR1cm4geyBwYXJzZWRDb250ZW50
VHlwZS0+bWltZVR5cGUoKSwgcGFyc2VkQ29udGVudFR5cGUtPmNoYXJzZXQoKSwgcGFyc2VkQ29u
dGVudFR5cGUtPnNlcmlhbGl6ZSgpLCBudWxscHRyIH07Ci0gICAgcmV0dXJuIHsgInRleHQvcGxh
aW4iX3MsICJVUy1BU0NJSSJfcywgInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSJfcywgbnVs
bHB0ciB9OworICAgICAgICByZXR1cm4geyBwYXJzZWRDb250ZW50VHlwZS0+bWltZVR5cGUoKSwg
cGFyc2VkQ29udGVudFR5cGUtPmNoYXJzZXQoKSwgcGFyc2VkQ29udGVudFR5cGUtPnNlcmlhbGl6
ZSgpLCB7IH0gfTsKKyAgICByZXR1cm4geyAidGV4dC9wbGFpbiJfcywgIlVTLUFTQ0lJIl9zLCAi
dGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFTQ0lJIl9zLCB7IH0gfTsKIH0KIAogc3RydWN0IERlY29k
ZVRhc2sgewpAQCAtMTQ5LDI0ICsxNDgsMjYgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVUYXNrPiBjcmVhdGVEZWNvZGVUYXNrKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY2hlZHUKICAg
ICApOwogfQogCi1zdGF0aWMgdm9pZCBkZWNvZGVCYXNlNjQoRGVjb2RlVGFzayYgdGFzaywgTW9k
ZSBtb2RlKQorc3RhdGljIGJvb2wgZGVjb2RlQmFzZTY0KERlY29kZVRhc2smIHRhc2ssIE1vZGUg
bW9kZSkKIHsKICAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOwogICAgIGlmIChtb2RlID09IE1vZGU6
OkZvcmdpdmluZ0Jhc2U2NCkgewogICAgICAgICBhdXRvIHVuZXNjYXBlZFN0cmluZyA9IGRlY29k
ZVVSTEVzY2FwZVNlcXVlbmNlcyh0YXNrLmVuY29kZWREYXRhLnRvU3RyaW5nV2l0aG91dENvcHlp
bmcoKSk7CiAgICAgICAgIGlmICghYmFzZTY0RGVjb2RlKHVuZXNjYXBlZFN0cmluZywgYnVmZmVy
LCBCYXNlNjRWYWxpZGF0ZVBhZGRpbmcgfCBCYXNlNjRJZ25vcmVTcGFjZXNBbmROZXdMaW5lcyB8
IEJhc2U2NERpc2NhcmRWZXJ0aWNhbFRhYikpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRmlyc3QgdHJ5IGJh
c2U2NHVybC4KICAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUodGFzay5lbmNvZGVkRGF0YS50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGJ1ZmZlcikpIHsKICAgICAgICAgICAgIC8vIERpZG4n
dCB3b3JrLCB0cnkgdW5lc2NhcGluZyBhbmQgZGVjb2RpbmcgYXMgYmFzZTY0LgogICAgICAgICAg
ICAgYXV0byB1bmVzY2FwZWRTdHJpbmcgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModGFzay5l
bmNvZGVkRGF0YS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwogICAgICAgICAgICAgaWYgKCFi
YXNlNjREZWNvZGUodW5lc2NhcGVkU3RyaW5nLCBidWZmZXIsIEJhc2U2NElnbm9yZVNwYWNlc0Fu
ZE5ld0xpbmVzIHwgQmFzZTY0RGlzY2FyZFZlcnRpY2FsVGFiKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQog
ICAgIGJ1ZmZlci5zaHJpbmtUb0ZpdCgpOwotICAgIHRhc2sucmVzdWx0LmRhdGEgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlcikpOworICAgIHRhc2sucmVzdWx0LmRhdGEgPSBX
VEZNb3ZlKGJ1ZmZlcik7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgZGVj
b2RlRXNjYXBlZChEZWNvZGVUYXNrJiB0YXNrKQpAQCAtMTc2LDcgKzE3Nyw3IEBAIHN0YXRpYyB2
b2lkIGRlY29kZUVzY2FwZWQoRGVjb2RlVGFzayYgdGFzaykKICAgICBhdXRvIGJ1ZmZlciA9IGRl
Y29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YSh0YXNrLmVuY29kZWREYXRhLCBlbmNvZGluZyk7
CiAKICAgICBidWZmZXIuc2hyaW5rVG9GaXQoKTsKLSAgICB0YXNrLnJlc3VsdC5kYXRhID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsKKyAgICB0YXNrLnJlc3VsdC5kYXRh
ID0gV1RGTW92ZShidWZmZXIpOwogfQogCiB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU2NoZWR1bGVDb250ZXh0JiBzY2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRGVjb2RlQ29t
cGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE4NCw5ICsxODUsMTAgQEAg
dm9pZCBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjaGVkdWxlQ29udGV4dCYgc2NoZWR1
bGVDb250ZXh0LCBNb2RlIG1vZGUsIEQKICAgICBBU1NFUlQodXJsLnByb3RvY29sSXNEYXRhKCkp
OwogCiAgICAgZGVjb2RlUXVldWUoKS5kaXNwYXRjaChbZGVjb2RlVGFzayA9IGNyZWF0ZURlY29k
ZVRhc2sodXJsLCBzY2hlZHVsZUNvbnRleHQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSwg
bW9kZV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGRlY29kZVRhc2stPnByb2Nlc3MoKSkgewor
ICAgICAgICBib29sIHN1Y2Nlc3MgPSBkZWNvZGVUYXNrLT5wcm9jZXNzKCk7CisgICAgICAgIGlm
IChzdWNjZXNzKSB7CiAgICAgICAgICAgICBpZiAoZGVjb2RlVGFzay0+aXNCYXNlNjQpCi0gICAg
ICAgICAgICAgICAgZGVjb2RlQmFzZTY0KCpkZWNvZGVUYXNrLCBtb2RlKTsKKyAgICAgICAgICAg
ICAgICBzdWNjZXNzID0gZGVjb2RlQmFzZTY0KCpkZWNvZGVUYXNrLCBtb2RlKTsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBkZWNvZGVFc2NhcGVkKCpkZWNvZGVUYXNrKTsKICAg
ICAgICAgfQpAQCAtMTk1LDkgKzE5Nyw5IEBAIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTY2hlZHVsZUNvbnRleHQmIHNjaGVkdWxlQ29udGV4dCwgTW9kZSBtb2RlLCBECiAgICAg
ICAgIGF1dG8gc2NoZWR1bGVkUGFpcnMgPSBkZWNvZGVUYXNrLT5zY2hlZHVsZUNvbnRleHQuc2No
ZWR1bGVkUGFpcnM7CiAjZW5kaWYKIAotICAgICAgICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxl
ciA9IFtkZWNvZGVUYXNrID0gV1RGTW92ZShkZWNvZGVUYXNrKV0gewotICAgICAgICAgICAgaWYg
KCFkZWNvZGVUYXNrLT5yZXN1bHQuZGF0YSkgewotICAgICAgICAgICAgICAgIGRlY29kZVRhc2st
PmNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIGF1dG8gY2FsbENvbXBsZXRpb25IYW5k
bGVyID0gW3N1Y2Nlc3MsIGRlY29kZVRhc2sgPSBXVEZNb3ZlKGRlY29kZVRhc2spXSB7CisgICAg
ICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBkZWNvZGVUYXNrLT5jb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGRlY29kZVRhc2stPmNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoZGVjb2RlVGFzay0+cmVzdWx0KSk7CkBAIC0yMTEsNSArMjEzLDI0IEBAIHZvaWQgZGVj
b2RlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmIHNjaGVkdWxlQ29udGV4
dCwgTW9kZSBtb2RlLCBECiAgICAgfSk7CiB9CiAKK09wdGlvbmFsPFJlc3VsdD4gZGVjb2RlKGNv
bnN0IFVSTCYgdXJsLCBNb2RlIG1vZGUpCit7CisgICAgQVNTRVJUKHVybC5wcm90b2NvbElzRGF0
YSgpKTsKKworICAgIGF1dG8gdGFzayA9IGNyZWF0ZURlY29kZVRhc2sodXJsLCB7IH0sIG51bGxw
dHIpOworICAgIGJvb2wgc3VjY2VzcyA9IHRhc2stPnByb2Nlc3MoKTsKKyAgICBpZiAoc3VjY2Vz
cykgeworICAgICAgICBpZiAodGFzay0+aXNCYXNlNjQpCisgICAgICAgICAgICBzdWNjZXNzID0g
ZGVjb2RlQmFzZTY0KCp0YXNrLCBtb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVj
b2RlRXNjYXBlZCgqdGFzayk7CisgICAgfQorCisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFdURk1vdmUodGFzay0+cmVzdWx0KTsK
IH0KLX0KKworfSAvLyBuYW1lc3BhY2UgRGF0YVVSTERlY29kZXIKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29k
ZXIuaAppbmRleCAzZDBhNzJlNTY1ZDUuLjlkMjcwOWU4ZmQ3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuaApAQCAtNDEsNyArNDEsNyBA
QCBzdHJ1Y3QgUmVzdWx0IHsKICAgICBTdHJpbmcgbWltZVR5cGU7CiAgICAgU3RyaW5nIGNoYXJz
ZXQ7CiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRh
dGE7CisgICAgVmVjdG9yPGNoYXI+IGRhdGE7CiB9OwogCiB1c2luZyBEZWNvZGVDb21wbGV0aW9u
SGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8UmVzdWx0Pik+OwpAQCAtNTMs
NiArNTMsNyBAQCBzdHJ1Y3QgU2NoZWR1bGVDb250ZXh0IHsKIAogZW51bSBjbGFzcyBNb2RlIHsg
TGVnYWN5LCBGb3JnaXZpbmdCYXNlNjQgfTsKIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYsIGNvbnN0
IFNjaGVkdWxlQ29udGV4dCYsIE1vZGUsIERlY29kZUNvbXBsZXRpb25IYW5kbGVyJiYpOworT3B0
aW9uYWw8UmVzdWx0PiBkZWNvZGUoY29uc3QgVVJMJiwgTW9kZSk7CiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKaW5k
ZXggMTRjZjQxNTM2ZjMwLi42ZTkxNTE5MjkzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaApAQCAtMTU0LDExICsxNTQs
MTEgQEAgU3RyaW5nIGRlY29kZUVzY2FwZVNlcXVlbmNlcyhTdHJpbmdWaWV3IHN0cmluZywgY29u
c3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CiB9CiAKLWlubGluZSBWZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNE
YXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQoraW5s
aW5lIFZlY3RvcjxjaGFyPiBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNBc0RhdGEoU3RyaW5nVmll
dyBzdHJpbmcsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiB7CiAgICAgQVNTRVJUKGVu
Y29kaW5nLmlzVmFsaWQoKSk7CiAKLSAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0OworICAgIFZl
Y3RvcjxjaGFyPiByZXN1bHQ7CiAgICAgc2l6ZV90IGRlY29kZWRQb3NpdGlvbiA9IDA7CiAgICAg
c2l6ZV90IHNlYXJjaFBvc2l0aW9uID0gMDsKICAgICB3aGlsZSAodHJ1ZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBhODk2Zjg2ZjYwYzAuLmYxYTU2NjQ2MDVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAyMS0wMS0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgTG9hZCBkYXRhIFVSTHMgaW4gdGhlIHdlYiBwcm9jZXNzIGFsc28gZm9yIHN5bmNo
cm9ub3VzIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjA5ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiByMjcxODc5IEkgcmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3IgZGF0YSBVUkxzIGluIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgZm9yIHNvdXAsIGFzc3VtaW5nIGRhdGEgVVJMcyB3ZXJlIGFsd2F5
cworICAgICAgICBsb2FkZWQgZnJvbSB0aGUgd2ViIHByb2Nlc3MsIGJ1dCB0aGF0J3Mgbm90IHRo
ZSBjYXNlIGZvciBzeW5jaHJvbm91cyBsb2Fkcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QpOiBTY2hlZHVsZSBhbiBlcnJvciBpZiBVUkwgaXMg
bm90IGZpbGUgb3IgSFRUUCBmYW1pbHkuCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6
OmxvYWREYXRhVVJMU3luY2hyb25vdXNseSk6IEhlbHBlciB0byBsb2FkIGEgRGF0YSBVUkwgc3lu
Y2hyb25vdXNseS4KKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOiBDYWxsIGxvYWREYXRhVVJMU3luY2hyb25vdXNseSBmb3IgZGF0
YSBVUkxzLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5o
OgorCiAyMDIxLTAxLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbU09VUF0gU3RvcCB1c2luZyBTb3VwUmVxdWVzdCBBUEkgdG8gbG9hZCBm
aWxlcyBpbiBwcmVwYXJhdGlvbiBmb3IgbGlic291cDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAy
OGM2M2IwYTcyMDcuLmRlMDNjNjZmMDliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMTEzLDYg
KzExMywxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2FzQmxvY2tpbmdDbwogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSkgeworICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzb3VwVVJJID0g
bV9jdXJyZW50UmVxdWVzdC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgaWYgKCFzb3VwVVJJKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5k
ZXggNjlkZWE3NDkzZTI2Li40OWI5NjYyODA5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTQ4LDYgKzQ4
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNl
Y3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVVJMRGVjb2Rlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KQEAgLTUyNyw2ICs1MjgsMzEgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdChGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K1dlYkxvYWRlclN0cmF0ZWd5OjpTeW5jTG9hZFJlc3VsdCBXZWJMb2FkZXJTdHJhdGVneTo6bG9h
ZERhdGFVUkxTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICBhdXRvIG1vZGUgPSBEYXRhVVJMRGVjb2Rlcjo6TW9kZTo6TGVnYWN5OworICAgIGlmIChy
ZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpGZXRjaCkK
KyAgICAgICAgbW9kZSA9IERhdGFVUkxEZWNvZGVyOjpNb2RlOjpGb3JnaXZpbmdCYXNlNjQ7CisK
KyAgICBTeW5jTG9hZFJlc3VsdCByZXN1bHQ7CisgICAgYXV0byBkZWNvZGVSZXN1bHQgPSBEYXRh
VVJMRGVjb2Rlcjo6ZGVjb2RlKHJlcXVlc3QudXJsKCksIG1vZGUpOworICAgIGlmICghZGVjb2Rl
UmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWREYXRhVVJMU3lu
Y2hyb25vdXNseTogZGVjb2Rpbmcgb2YgZGF0YSBmYWlsZWQiKTsKKyAgICAgICAgcmVzdWx0LmVy
cm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisKKyAgICBhdXRvIGRhdGFTaXplID0gZGVjb2RlUmVzdWx0LT5kYXRhLnNpemUo
KTsKKyAgICByZXN1bHQucmVzcG9uc2UgPSB7IHJlcXVlc3QudXJsKCksIGRlY29kZVJlc3VsdC0+
bWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0YVNpemUpLCBkZWNvZGVSZXN1bHQt
PmNoYXJzZXQgfTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsK
KyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAgICByZXN1
bHQucmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlw
ZSwgZGVjb2RlUmVzdWx0LT5jb250ZW50VHlwZSk7CisgICAgcmVzdWx0LnJlc3BvbnNlLnNldFNv
dXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOworICAgIHJlc3VsdC5kYXRh
ID0gV1RGTW92ZShkZWNvZGVSZXN1bHQtPmRhdGEpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogT3B0aW9uYWw8V2ViTG9hZGVyU3RyYXRlZ3k6OlN5bmNMb2FkUmVzdWx0PiBXZWJMb2FkZXJT
dHJhdGVneTo6dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoRnJh
bWVMb2FkZXImIGZyYW1lTG9hZGVyLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRvKiB3ZWJGcmFtZUxv
YWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2FkZXIuY2xpZW50KCkp
OwpAQCAtNTcwLDYgKzU5NiwxNSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgaWYgKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkg
eworICAgICAgICBXRUJMT0FERVJTVFJBVEVHWV9XSVRIX0ZSQU1FTE9BREVSX1JFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQoImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IFVSTCB3aWxsIGJl
IGxvYWRlZCBhcyBkYXRhIik7CisgICAgICAgIGF1dG8gc3luY0xvYWRSZXN1bHQgPSBsb2FkRGF0
YVVSTFN5bmNocm9ub3VzbHkocmVxdWVzdCk7CisgICAgICAgIGVycm9yID0gV1RGTW92ZShzeW5j
TG9hZFJlc3VsdC5lcnJvcik7CisgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5jTG9hZFJl
c3VsdC5yZXNwb25zZSk7CisgICAgICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LmRh
dGEpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGF1dG8gc3luY0xvYWRSZXN1
bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlcihmcmFtZUxv
YWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVzdCkpIHsKICAgICAgICAgV0VCTE9B
REVSU1RSQVRFR1lfV0lUSF9GUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KCJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlMb2FkaW5nU3lu
Y2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAoZXJyb3I9JWQpIiwgc3luY0xvYWRSZXN1
bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5bmNMb2Fk
UmVzdWx0LT5lcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5ZDk4ODQxODNlYzkuLjY1MGY1NTUwYTllNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVjdG9yPGNo
YXI+IGRhdGE7CiAgICAgfTsKICAgICBPcHRpb25hbDxTeW5jTG9hZFJlc3VsdD4gdHJ5TG9hZGlu
Z1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoV2ViQ29yZTo6RnJhbWVMb2FkZXIm
LCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICBTeW5jTG9hZFJlc3VsdCBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlRnJvbVJlc291cmNlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2Fk
SWRlbnRpZmllcikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNvcmU6Ok5ldHdvcmtUcmFuc2FjdGlv
bkluZm9ybWF0aW9uPiBpbnRlcm1lZGlhdGVMb2FkSW5mb3JtYXRpb25Gcm9tUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSBmaW5hbDsK
</data>
<flag name="commit-queue"
          id="436382"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418525</attachid>
            <date>2021-01-27 03:55:18 -0800</date>
            <delta_ts>2021-01-27 04:10:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-sync-data-url.diff</filename>
            <type>text/plain</type>
            <size>17271</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NjQ2NDdkNzQ5ZmEuLjk2YWY4YjNlMGM5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDIxLTAxLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3Mg
YWxzbyBmb3Igc3luY2hyb25vdXMgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzeW5jaHJvbm91cyBBUEkgZm9yIERhdGFVUkxEZWNvZGVy
LiBJdCBub3cgdXNlcyBhIFZlY3RvcjxjaGFyPiBmb3IgdGhlIGRhdGEgaW5zdGVhZCBvZiBTaGFy
ZWRCdWZmZXIuIFRoYXQKKyAgICAgICAgd2F5LCBSZXNvdXJjZUxvYWRlciBjYW4gY3JlYXRlIHRo
ZSBTaGFyZWRCdWZmZXIgZnJvbSB0aGUgZ2l2ZW4gZGF0YSBhbmQgbG9hZGVyIHN0cmF0ZWd5IGNh
biBzaW1wbHkgbW92ZSBpdC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6IEFkZCBEYXRhVVJM
RGVjb2Rlci5oCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCk6IEFkYXB0IHRvIHRoZSBEYXRh
VVJMRGVjb2RlciBBUEkgY2hhbmdlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFV
UkxEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpwYXJzZU1l
ZGlhVHlwZSk6IFVwZGF0ZSB0aGUgZGF0YSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFVUkxEZWNvZGVyOjpkZWNvZGVCYXNlNjQpOiBSZXR1cm4gYm9vbCB0byBpbmRpY2F0
ZSBzdWNjZXNzIG9yIGVycm9yIGFuZCBtb3ZlIHRoZSByZXN1bHRpbmcgdmVjdG9yCisgICAgICAg
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTaGFyZWRCdWZmZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6ZGVjb2RlRXNjYXBlZCk6IE1vdmUgdGhlIHJlc3VsdGluZyB2ZWN0b3Ig
aW5zdGVhZCBvZiBjcmVhdGluZyBhIFNoYXJlZEJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFVUkxEZWNvZGVyOjpkZWNvZGUpOiBSZXR1cm4gbnVsbG9wdCBpbiBjYXNlIG9mIGZhaWx1cmUg
b3IgdGhlIHRhc2sgcmVzdWx0IG90aGVyd2lzZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxE
ZWNvZGVyOjpkZWNvZGUpOiBTeW5jaHJvbm91cyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZVVSTEVz
Y2FwZVNlcXVlbmNlc0FzRGF0YSk6IFVzZSBWZWN0b3I8Y2hhcj4gc28gdGhhdCB3ZSBjYW4gYXZv
aWQgZGF0YSBjb3BpZXMuCisKIDIwMjEtMDEtMjcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFw
IGNhbiBoYW5nIHdoZW4gc3RlcHBpbmcgdG8gdGhlIGVuZCBvZiBhIHRyYWNrIHRoYXQgaGFzbid0
IGJlZW4gZnVsbHkgcGFyc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlZDA2NmMxMWNhYzIuLmU3
ZDAwODEyOWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzkwLDYgKzEzOTAsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbmV0d29yay9D
cmVkZW50aWFsU3RvcmFnZS5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9ETlMuaAogICAgIHBsYXRm
b3JtL25ldHdvcmsvRE5TUmVzb2x2ZVF1ZXVlLmgKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFV
UkxEZWNvZGVyLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAogICAgIHBsYXRmb3JtL25ldHdvcmsv
SFRUUEhlYWRlck1hcC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMDA3ZTIzZTNmMTIyLi44ZTEyNzZjOTc1NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4
Myw3ICs5ODMsNyBAQAogCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29kZVJh
bmdlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3MUY1M0U3MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oICovOyB9
OwogCQkzNzJBREEzODE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MkFEQTM3MTk3
RjQ3QjkwMEZDNTAxRSAvKiBQcm90ZWN0aW9uU3BhY2VDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MkMwMEQ5MTI5NjE5RjgwMDVDOTU3
NSAvKiBGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzcyQzAwRDgxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzcyRDNFNTQyMTY1
NzhBRTAwQzVFMDIxIC8qIERhdGFVUkxEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEEwMDc4MjFCODIwRUM4MDAyQzVBNkUgLyogRGF0YVVS
TERlY29kZXIuaCAqLzsgfTsKKwkJMzcyRDNFNTQyMTY1NzhBRTAwQzVFMDIxIC8qIERhdGFVUkxE
ZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEEwMDc4MjFCODIwRUM4MDAyQzVBNkUgLyogRGF0YVVSTERlY29kZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzJEM0U1NTIxNjU3OEFFMDBD
NUUwMjEgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9k
dWxlTG9hZGVyLmggKi87IH07CiAJCTM3MkQzRTU3MjE2NTc4QUUwMEM1RTAyMSAvKiBOYXZpZ2F0
b3JDcmVkZW50aWFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdEODQ2MjYxRkU4OTVGODAwQ0EzNjgyIC8qIE5hdmlnYXRvckNyZWRlbnRpYWxzLmgg
Ki87IH07CiAJCTM3NUNEMjMyMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc1Q0QyMzExMTlENDND
ODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCBiMzU0ZTdhYWFmNzkuLmY3N2EwZTU0Y2ZlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzIsMTQgKzI3MiwxNCBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCgpCiAgICAgICAgIGlmICh0aGlzLT53
YXNDYW5jZWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYXV0byYgcmVzdWx0
ID0gZGVjb2RlUmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGF1dG8gZGF0YVNpemUgPSByZXN1bHQu
ZGF0YSA/IHJlc3VsdC5kYXRhLT5zaXplKCkgOiAwOworICAgICAgICBhdXRvIGRhdGFTaXplID0g
cmVzdWx0LmRhdGEuc2l6ZSgpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgZGF0YVJlc3Bv
bnNlIHsgdXJsLCByZXN1bHQubWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0YVNp
emUpLCByZXN1bHQuY2hhcnNldCB9OwogICAgICAgICBkYXRhUmVzcG9uc2Uuc2V0SFRUUFN0YXR1
c0NvZGUoMjAwKTsKICAgICAgICAgZGF0YVJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJf
cyk7CiAgICAgICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5h
bWU6OkNvbnRlbnRUeXBlLCByZXN1bHQuY29udGVudFR5cGUpOwogICAgICAgICBkYXRhUmVzcG9u
c2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7Ci0gICAgICAg
IHRoaXMtPmRpZFJlY2VpdmVSZXNwb25zZShkYXRhUmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZGF0YVNpemUsIGRhdGEgPSByZXN1bHQuZGF0
YS5yZWxlYXNlTm9uTnVsbCgpXSgpIG11dGFibGUgeworICAgICAgICB0aGlzLT5kaWRSZWNlaXZl
UmVzcG9uc2UoZGF0YVJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJv
dGVjdGVkVGhpcyksIGRhdGFTaXplLCBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92
ZShyZXN1bHQuZGF0YSkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF0aGlzLT5yZWFj
aGVkVGVybWluYWxTdGF0ZSgpICYmIGRhdGFTaXplICYmIG1fcmVxdWVzdC5odHRwTWV0aG9kKCkg
IT0gIkhFQUQiKQogICAgICAgICAgICAgICAgIHRoaXMtPmRpZFJlY2VpdmVCdWZmZXIoV1RGTW92
ZShkYXRhKSwgZGF0YVNpemUsIERhdGFQYXlsb2FkV2hvbGVSZXNvdXJjZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXgg
ZThiZjljMmUxYTg3Li4xNDNhNGJjNTY4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIK
ICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC03MSw4ICs3MCw4IEBAIHN0YXRpYyBXb3Jr
UXVldWUmIGRlY29kZVF1ZXVlKCkKIHN0YXRpYyBSZXN1bHQgcGFyc2VNZWRpYVR5cGUoY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPFBhcnNlZENvbnRlbnRUeXBl
PiBwYXJzZWRDb250ZW50VHlwZSA9IFBhcnNlZENvbnRlbnRUeXBlOjpjcmVhdGUobWVkaWFUeXBl
KSkKLSAgICAgICAgcmV0dXJuIHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBlKCksIHBhcnNl
ZENvbnRlbnRUeXBlLT5jaGFyc2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJpYWxpemUoKSwg
bnVsbHB0ciB9OwotICAgIHJldHVybiB7ICJ0ZXh0L3BsYWluIl9zLCAiVVMtQVNDSUkiX3MsICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9VVMtQVNDSUkiX3MsIG51bGxwdHIgfTsKKyAgICAgICAgcmV0dXJu
IHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBlKCksIHBhcnNlZENvbnRlbnRUeXBlLT5jaGFy
c2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJpYWxpemUoKSwgeyB9IH07CisgICAgcmV0dXJu
IHsgInRleHQvcGxhaW4iX3MsICJVUy1BU0NJSSJfcywgInRleHQvcGxhaW47Y2hhcnNldD1VUy1B
U0NJSSJfcywgeyB9IH07CiB9CiAKIHN0cnVjdCBEZWNvZGVUYXNrIHsKQEAgLTE0OSwyNCArMTQ4
LDI2IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2RlVGFzaz4gY3JlYXRlRGVjb2RlVGFz
ayhjb25zdCBVUkwmIHVybCwgY29uc3QgU2NoZWR1CiAgICAgKTsKIH0KIAotc3RhdGljIHZvaWQg
ZGVjb2RlQmFzZTY0KERlY29kZVRhc2smIHRhc2ssIE1vZGUgbW9kZSkKK3N0YXRpYyBib29sIGRl
Y29kZUJhc2U2NChEZWNvZGVUYXNrJiB0YXNrLCBNb2RlIG1vZGUpCiB7CiAgICAgVmVjdG9yPGNo
YXI+IGJ1ZmZlcjsKICAgICBpZiAobW9kZSA9PSBNb2RlOjpGb3JnaXZpbmdCYXNlNjQpIHsKICAg
ICAgICAgYXV0byB1bmVzY2FwZWRTdHJpbmcgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModGFz
ay5lbmNvZGVkRGF0YS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwogICAgICAgICBpZiAoIWJh
c2U2NERlY29kZSh1bmVzY2FwZWRTdHJpbmcsIGJ1ZmZlciwgQmFzZTY0VmFsaWRhdGVQYWRkaW5n
IHwgQmFzZTY0SWdub3JlU3BhY2VzQW5kTmV3TGluZXMgfCBCYXNlNjREaXNjYXJkVmVydGljYWxU
YWIpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIEZpcnN0IHRyeSBiYXNlNjR1cmwuCiAgICAgICAgIGlmICgh
YmFzZTY0VVJMRGVjb2RlKHRhc2suZW5jb2RlZERhdGEudG9TdHJpbmdXaXRob3V0Q29weWluZygp
LCBidWZmZXIpKSB7CiAgICAgICAgICAgICAvLyBEaWRuJ3Qgd29yaywgdHJ5IHVuZXNjYXBpbmcg
YW5kIGRlY29kaW5nIGFzIGJhc2U2NC4KICAgICAgICAgICAgIGF1dG8gdW5lc2NhcGVkU3RyaW5n
ID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHRhc2suZW5jb2RlZERhdGEudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKTsKICAgICAgICAgICAgIGlmICghYmFzZTY0RGVjb2RlKHVuZXNjYXBlZFN0
cmluZywgYnVmZmVyLCBCYXNlNjRJZ25vcmVTcGFjZXNBbmROZXdMaW5lcyB8IEJhc2U2NERpc2Nh
cmRWZXJ0aWNhbFRhYikpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KICAgICBidWZmZXIuc2hyaW5rVG9GaXQo
KTsKLSAgICB0YXNrLnJlc3VsdC5kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShi
dWZmZXIpKTsKKyAgICB0YXNrLnJlc3VsdC5kYXRhID0gV1RGTW92ZShidWZmZXIpOworCisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGRlY29kZUVzY2FwZWQoRGVjb2RlVGFzayYg
dGFzaykKQEAgLTE3Niw3ICsxNzcsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVFc2NhcGVkKERlY29k
ZVRhc2smIHRhc2spCiAgICAgYXV0byBidWZmZXIgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNB
c0RhdGEodGFzay5lbmNvZGVkRGF0YSwgZW5jb2RpbmcpOwogCiAgICAgYnVmZmVyLnNocmlua1Rv
Rml0KCk7Ci0gICAgdGFzay5yZXN1bHQuZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUoYnVmZmVyKSk7CisgICAgdGFzay5yZXN1bHQuZGF0YSA9IFdURk1vdmUoYnVmZmVyKTsKIH0K
IAogdm9pZCBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjaGVkdWxlQ29udGV4dCYgc2No
ZWR1bGVDb250ZXh0LCBNb2RlIG1vZGUsIERlY29kZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC0xODQsOSArMTg1LDEwIEBAIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmIHNjaGVkdWxlQ29udGV4dCwgTW9kZSBtb2RlLCBE
CiAgICAgQVNTRVJUKHVybC5wcm90b2NvbElzRGF0YSgpKTsKIAogICAgIGRlY29kZVF1ZXVlKCku
ZGlzcGF0Y2goW2RlY29kZVRhc2sgPSBjcmVhdGVEZWNvZGVUYXNrKHVybCwgc2NoZWR1bGVDb250
ZXh0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSksIG1vZGVdKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGlmIChkZWNvZGVUYXNrLT5wcm9jZXNzKCkpIHsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0g
ZGVjb2RlVGFzay0+cHJvY2VzcygpOworICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAg
ICAgaWYgKGRlY29kZVRhc2stPmlzQmFzZTY0KQotICAgICAgICAgICAgICAgIGRlY29kZUJhc2U2
NCgqZGVjb2RlVGFzaywgbW9kZSk7CisgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGRlY29kZUJh
c2U2NCgqZGVjb2RlVGFzaywgbW9kZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgZGVjb2RlRXNjYXBlZCgqZGVjb2RlVGFzayk7CiAgICAgICAgIH0KQEAgLTE5NSw5ICsxOTcs
OSBAQCB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29uc3QgU2NoZWR1bGVDb250ZXh0JiBz
Y2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRAogICAgICAgICBhdXRvIHNjaGVkdWxlZFBhaXJz
ID0gZGVjb2RlVGFzay0+c2NoZWR1bGVDb250ZXh0LnNjaGVkdWxlZFBhaXJzOwogI2VuZGlmCiAK
LSAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVjb2RlVGFzayA9IFdURk1v
dmUoZGVjb2RlVGFzayldIHsKLSAgICAgICAgICAgIGlmICghZGVjb2RlVGFzay0+cmVzdWx0LmRh
dGEpIHsKLSAgICAgICAgICAgICAgICBkZWNvZGVUYXNrLT5jb21wbGV0aW9uSGFuZGxlcih7IH0p
OworICAgICAgICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxlciA9IFtzdWNjZXNzLCBkZWNvZGVU
YXNrID0gV1RGTW92ZShkZWNvZGVUYXNrKV0geworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7
CisgICAgICAgICAgICAgICAgZGVjb2RlVGFzay0+Y29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxs
b3B0KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBkZWNvZGVUYXNrLT5jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRlY29kZVRhc2stPnJlc3Vs
dCkpOwpAQCAtMjExLDUgKzIxMywyNCBAQCB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU2NoZWR1bGVDb250ZXh0JiBzY2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRAogICAgIH0p
OwogfQogCitPcHRpb25hbDxSZXN1bHQ+IGRlY29kZShjb25zdCBVUkwmIHVybCwgTW9kZSBtb2Rl
KQoreworICAgIEFTU0VSVCh1cmwucHJvdG9jb2xJc0RhdGEoKSk7CisKKyAgICBhdXRvIHRhc2sg
PSBjcmVhdGVEZWNvZGVUYXNrKHVybCwgeyB9LCBudWxscHRyKTsKKyAgICBib29sIHN1Y2Nlc3Mg
PSB0YXNrLT5wcm9jZXNzKCk7CisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKHRhc2st
PmlzQmFzZTY0KQorICAgICAgICAgICAgc3VjY2VzcyA9IGRlY29kZUJhc2U2NCgqdGFzaywgbW9k
ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlY29kZUVzY2FwZWQoKnRhc2spOworICAg
IH0KKworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBXVEZNb3ZlKHRhc2stPnJlc3VsdCk7CiB9Ci19CisKK30gLy8gbmFtZXNwYWNl
IERhdGFVUkxEZWNvZGVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmgKaW5kZXggM2QwYTcyZTU2NWQ1
Li45ZDI3MDllOGZkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTERlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0RhdGFVUkxEZWNvZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFJlc3VsdCB7CiAgICAg
U3RyaW5nIG1pbWVUeXBlOwogICAgIFN0cmluZyBjaGFyc2V0OwogICAgIFN0cmluZyBjb250ZW50
VHlwZTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhOworICAgIFZlY3RvcjxjaGFyPiBk
YXRhOwogfTsKIAogdXNpbmcgRGVjb2RlQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9u
PHZvaWQgKE9wdGlvbmFsPFJlc3VsdD4pPjsKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IFNjaGVk
dWxlQ29udGV4dCB7CiAKIGVudW0gY2xhc3MgTW9kZSB7IExlZ2FjeSwgRm9yZ2l2aW5nQmFzZTY0
IH07CiB2b2lkIGRlY29kZShjb25zdCBVUkwmLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmLCBNb2Rl
LCBEZWNvZGVDb21wbGV0aW9uSGFuZGxlciYmKTsKK09wdGlvbmFsPFJlc3VsdD4gZGVjb2RlKGNv
bnN0IFVSTCYsIE1vZGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0MTUzNmYzMC4uNmU5MTUx
OTI5MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVz
Y2FwZVNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2Rl
RXNjYXBlU2VxdWVuY2VzLmgKQEAgLTE1NCwxMSArMTU0LDExIEBAIFN0cmluZyBkZWNvZGVFc2Nh
cGVTZXF1ZW5jZXMoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2Rp
bmcpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1pbmxpbmUgVmVjdG9yPHVp
bnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YShTdHJpbmdWaWV3IHN0cmluZywg
Y29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKK2lubGluZSBWZWN0b3I8Y2hhcj4gZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5j
b2RpbmcmIGVuY29kaW5nKQogewogICAgIEFTU0VSVChlbmNvZGluZy5pc1ZhbGlkKCkpOwogCi0g
ICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBWZWN0b3I8Y2hhcj4gcmVzdWx0OwogICAg
IHNpemVfdCBkZWNvZGVkUG9zaXRpb24gPSAwOwogICAgIHNpemVfdCBzZWFyY2hQb3NpdGlvbiA9
IDA7CiAgICAgd2hpbGUgKHRydWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDMxNjE2NTFmN2JjLi44Yzg0NTAx
OTQ5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDEtMjYgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIExvYWQgZGF0YSBVUkxz
IGluIHRoZSB3ZWIgcHJvY2VzcyBhbHNvIGZvciBzeW5jaHJvbm91cyBsb2FkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwOTgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcjI3MTg3OSBJIHJlbW92
ZWQgdGhlIHN1cHBvcnQgZm9yIGRhdGEgVVJMcyBpbiB0aGUgbmV0d29yayBwcm9jZXNzIGZvciBz
b3VwLCBhc3N1bWluZyBkYXRhIFVSTHMgd2VyZSBhbHdheXMKKyAgICAgICAgbG9hZGVkIGZyb20g
dGhlIHdlYiBwcm9jZXNzLCBidXQgdGhhdCdzIG5vdCB0aGUgY2FzZSBmb3Igc3luY2hyb25vdXMg
bG9hZHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1
ZXN0KTogU2NoZWR1bGUgYW4gZXJyb3IgaWYgVVJMIGlzIG5vdCBmaWxlIG9yIEhUVFAgZmFtaWx5
LgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkRGF0YVVSTFN5bmNocm9ub3Vz
bHkpOiBIZWxwZXIgdG8gbG9hZCBhIERhdGEgVVJMIHN5bmNocm9ub3VzbHkuCisgICAgICAgIChX
ZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogQ2Fs
bCBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkgZm9yIGRhdGEgVVJMcy4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAyMS0wMS0yNyAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gTWVkaWFTYW1wbGVDdXJz
b3I6OnN0ZXBJbk9yZGVyZWRNYXAgY2FuIGhhbmcgd2hlbiBzdGVwcGluZyB0byB0aGUgZW5kIG9m
IGEgdHJhY2sgdGhhdCBoYXNuJ3QgYmVlbiBmdWxseSBwYXJzZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAyOGM2M2IwYTcyMDcuLmRlMDNjNjZmMDliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAt
MTEzLDYgKzExMywxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2FzQmxvY2tpbmdDbwogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhU
VFBGYW1pbHkoKSkgeworICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzb3Vw
VVJJID0gbV9jdXJyZW50UmVxdWVzdC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgaWYgKCFzb3VwVVJJ
KSB7CiAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKaW5kZXggNjlkZWE3NDkzZTI2Li40OWI5NjYyODA5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTQ4
LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29u
dGVudFNlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVVJMRGVjb2Rlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KQEAgLTUyNyw2ICs1MjgsMzEgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK1dlYkxvYWRlclN0cmF0ZWd5OjpTeW5jTG9hZFJlc3VsdCBXZWJMb2FkZXJTdHJhdGVn
eTo6bG9hZERhdGFVUkxTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICBhdXRvIG1vZGUgPSBEYXRhVVJMRGVjb2Rlcjo6TW9kZTo6TGVnYWN5OworICAg
IGlmIChyZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpG
ZXRjaCkKKyAgICAgICAgbW9kZSA9IERhdGFVUkxEZWNvZGVyOjpNb2RlOjpGb3JnaXZpbmdCYXNl
NjQ7CisKKyAgICBTeW5jTG9hZFJlc3VsdCByZXN1bHQ7CisgICAgYXV0byBkZWNvZGVSZXN1bHQg
PSBEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKHJlcXVlc3QudXJsKCksIG1vZGUpOworICAgIGlmICgh
ZGVjb2RlUmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWREYXRh
VVJMU3luY2hyb25vdXNseTogZGVjb2Rpbmcgb2YgZGF0YSBmYWlsZWQiKTsKKyAgICAgICAgcmVz
dWx0LmVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisKKyAgICBhdXRvIGRhdGFTaXplID0gZGVjb2RlUmVzdWx0LT5kYXRh
LnNpemUoKTsKKyAgICByZXN1bHQucmVzcG9uc2UgPSB7IHJlcXVlc3QudXJsKCksIGRlY29kZVJl
c3VsdC0+bWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0YVNpemUpLCBkZWNvZGVS
ZXN1bHQtPmNoYXJzZXQgfTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUo
MjAwKTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAg
ICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250
ZW50VHlwZSwgZGVjb2RlUmVzdWx0LT5jb250ZW50VHlwZSk7CisgICAgcmVzdWx0LnJlc3BvbnNl
LnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOworICAgIHJlc3Vs
dC5kYXRhID0gV1RGTW92ZShkZWNvZGVSZXN1bHQtPmRhdGEpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogT3B0aW9uYWw8V2ViTG9hZGVyU3RyYXRlZ3k6OlN5bmNMb2FkUmVzdWx0PiBXZWJM
b2FkZXJTdHJhdGVneTo6dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRs
ZXIoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRvKiB3ZWJG
cmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2FkZXIuY2xp
ZW50KCkpOwpAQCAtNTcwLDYgKzU5NiwxNSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Rh
dGEoKSkgeworICAgICAgICBXRUJMT0FERVJTVFJBVEVHWV9XSVRIX0ZSQU1FTE9BREVSX1JFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IFVSTCB3
aWxsIGJlIGxvYWRlZCBhcyBkYXRhIik7CisgICAgICAgIGF1dG8gc3luY0xvYWRSZXN1bHQgPSBs
b2FkRGF0YVVSTFN5bmNocm9ub3VzbHkocmVxdWVzdCk7CisgICAgICAgIGVycm9yID0gV1RGTW92
ZShzeW5jTG9hZFJlc3VsdC5lcnJvcik7CisgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5j
TG9hZFJlc3VsdC5yZXNwb25zZSk7CisgICAgICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVz
dWx0LmRhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGF1dG8gc3luY0xv
YWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlcihm
cmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVzdCkpIHsKICAgICAgICAg
V0VCTE9BREVSU1RSQVRFR1lfV0lUSF9GUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKCJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlMb2Fk
aW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAoZXJyb3I9JWQpIiwgc3luY0xv
YWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5
bmNMb2FkUmVzdWx0LT5lcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5ZDk4ODQxODNlYzkuLjY1MGY1NTUw
YTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVj
dG9yPGNoYXI+IGRhdGE7CiAgICAgfTsKICAgICBPcHRpb25hbDxTeW5jTG9hZFJlc3VsdD4gdHJ5
TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoV2ViQ29yZTo6RnJhbWVM
b2FkZXImLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICBTeW5jTG9hZFJlc3VsdCBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlRnJvbVJlc291cmNlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNvcmU6Ok5ldHdvcmtUcmFu
c2FjdGlvbkluZm9ybWF0aW9uPiBpbnRlcm1lZGlhdGVMb2FkSW5mb3JtYXRpb25Gcm9tUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSBmaW5hbDsK
</data>
<flag name="commit-queue"
          id="436522"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418526</attachid>
            <date>2021-01-27 04:03:23 -0800</date>
            <delta_ts>2021-01-27 04:10:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-sync-data-url.diff</filename>
            <type>text/plain</type>
            <size>17286</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NjQ2NDdkNzQ5ZmEuLjk2YWY4YjNlMGM5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDIxLTAxLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3Mg
YWxzbyBmb3Igc3luY2hyb25vdXMgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzeW5jaHJvbm91cyBBUEkgZm9yIERhdGFVUkxEZWNvZGVy
LiBJdCBub3cgdXNlcyBhIFZlY3RvcjxjaGFyPiBmb3IgdGhlIGRhdGEgaW5zdGVhZCBvZiBTaGFy
ZWRCdWZmZXIuIFRoYXQKKyAgICAgICAgd2F5LCBSZXNvdXJjZUxvYWRlciBjYW4gY3JlYXRlIHRo
ZSBTaGFyZWRCdWZmZXIgZnJvbSB0aGUgZ2l2ZW4gZGF0YSBhbmQgbG9hZGVyIHN0cmF0ZWd5IGNh
biBzaW1wbHkgbW92ZSBpdC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6IEFkZCBEYXRhVVJM
RGVjb2Rlci5oCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCk6IEFkYXB0IHRvIHRoZSBEYXRh
VVJMRGVjb2RlciBBUEkgY2hhbmdlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFV
UkxEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpwYXJzZU1l
ZGlhVHlwZSk6IFVwZGF0ZSB0aGUgZGF0YSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFVUkxEZWNvZGVyOjpkZWNvZGVCYXNlNjQpOiBSZXR1cm4gYm9vbCB0byBpbmRpY2F0
ZSBzdWNjZXNzIG9yIGVycm9yIGFuZCBtb3ZlIHRoZSByZXN1bHRpbmcgdmVjdG9yCisgICAgICAg
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTaGFyZWRCdWZmZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6ZGVjb2RlRXNjYXBlZCk6IE1vdmUgdGhlIHJlc3VsdGluZyB2ZWN0b3Ig
aW5zdGVhZCBvZiBjcmVhdGluZyBhIFNoYXJlZEJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFVUkxEZWNvZGVyOjpkZWNvZGUpOiBSZXR1cm4gbnVsbG9wdCBpbiBjYXNlIG9mIGZhaWx1cmUg
b3IgdGhlIHRhc2sgcmVzdWx0IG90aGVyd2lzZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxE
ZWNvZGVyOjpkZWNvZGUpOiBTeW5jaHJvbm91cyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZVVSTEVz
Y2FwZVNlcXVlbmNlc0FzRGF0YSk6IFVzZSBWZWN0b3I8Y2hhcj4gc28gdGhhdCB3ZSBjYW4gYXZv
aWQgZGF0YSBjb3BpZXMuCisKIDIwMjEtMDEtMjcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFw
IGNhbiBoYW5nIHdoZW4gc3RlcHBpbmcgdG8gdGhlIGVuZCBvZiBhIHRyYWNrIHRoYXQgaGFzbid0
IGJlZW4gZnVsbHkgcGFyc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlZDA2NmMxMWNhYzIuLmU3
ZDAwODEyOWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzkwLDYgKzEzOTAsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbmV0d29yay9D
cmVkZW50aWFsU3RvcmFnZS5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9ETlMuaAogICAgIHBsYXRm
b3JtL25ldHdvcmsvRE5TUmVzb2x2ZVF1ZXVlLmgKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFV
UkxEZWNvZGVyLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAogICAgIHBsYXRmb3JtL25ldHdvcmsv
SFRUUEhlYWRlck1hcC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMDA3ZTIzZTNmMTIyLi44ZTEyNzZjOTc1NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4
Myw3ICs5ODMsNyBAQAogCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29kZVJh
bmdlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3MUY1M0U3MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oICovOyB9
OwogCQkzNzJBREEzODE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MkFEQTM3MTk3
RjQ3QjkwMEZDNTAxRSAvKiBQcm90ZWN0aW9uU3BhY2VDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MkMwMEQ5MTI5NjE5RjgwMDVDOTU3
NSAvKiBGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzcyQzAwRDgxMjk2MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzcyRDNFNTQyMTY1
NzhBRTAwQzVFMDIxIC8qIERhdGFVUkxEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEEwMDc4MjFCODIwRUM4MDAyQzVBNkUgLyogRGF0YVVS
TERlY29kZXIuaCAqLzsgfTsKKwkJMzcyRDNFNTQyMTY1NzhBRTAwQzVFMDIxIC8qIERhdGFVUkxE
ZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEEwMDc4MjFCODIwRUM4MDAyQzVBNkUgLyogRGF0YVVSTERlY29kZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzJEM0U1NTIxNjU3OEFFMDBD
NUUwMjEgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9k
dWxlTG9hZGVyLmggKi87IH07CiAJCTM3MkQzRTU3MjE2NTc4QUUwMEM1RTAyMSAvKiBOYXZpZ2F0
b3JDcmVkZW50aWFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdEODQ2MjYxRkU4OTVGODAwQ0EzNjgyIC8qIE5hdmlnYXRvckNyZWRlbnRpYWxzLmgg
Ki87IH07CiAJCTM3NUNEMjMyMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc1Q0QyMzExMTlENDND
ODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCBiMzU0ZTdhYWFmNzkuLmY3N2EwZTU0Y2ZlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzIsMTQgKzI3MiwxNCBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkRGF0YVVSTCgpCiAgICAgICAgIGlmICh0aGlzLT53
YXNDYW5jZWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYXV0byYgcmVzdWx0
ID0gZGVjb2RlUmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGF1dG8gZGF0YVNpemUgPSByZXN1bHQu
ZGF0YSA/IHJlc3VsdC5kYXRhLT5zaXplKCkgOiAwOworICAgICAgICBhdXRvIGRhdGFTaXplID0g
cmVzdWx0LmRhdGEuc2l6ZSgpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgZGF0YVJlc3Bv
bnNlIHsgdXJsLCByZXN1bHQubWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0YVNp
emUpLCByZXN1bHQuY2hhcnNldCB9OwogICAgICAgICBkYXRhUmVzcG9uc2Uuc2V0SFRUUFN0YXR1
c0NvZGUoMjAwKTsKICAgICAgICAgZGF0YVJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJf
cyk7CiAgICAgICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5h
bWU6OkNvbnRlbnRUeXBlLCByZXN1bHQuY29udGVudFR5cGUpOwogICAgICAgICBkYXRhUmVzcG9u
c2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7Ci0gICAgICAg
IHRoaXMtPmRpZFJlY2VpdmVSZXNwb25zZShkYXRhUmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZGF0YVNpemUsIGRhdGEgPSByZXN1bHQuZGF0
YS5yZWxlYXNlTm9uTnVsbCgpXSgpIG11dGFibGUgeworICAgICAgICB0aGlzLT5kaWRSZWNlaXZl
UmVzcG9uc2UoZGF0YVJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJv
dGVjdGVkVGhpcyksIGRhdGFTaXplLCBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92
ZShyZXN1bHQuZGF0YSkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF0aGlzLT5yZWFj
aGVkVGVybWluYWxTdGF0ZSgpICYmIGRhdGFTaXplICYmIG1fcmVxdWVzdC5odHRwTWV0aG9kKCkg
IT0gIkhFQUQiKQogICAgICAgICAgICAgICAgIHRoaXMtPmRpZFJlY2VpdmVCdWZmZXIoV1RGTW92
ZShkYXRhKSwgZGF0YVNpemUsIERhdGFQYXlsb2FkV2hvbGVSZXNvdXJjZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXgg
ZThiZjljMmUxYTg3Li4xNDNhNGJjNTY4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIK
ICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC03MSw4ICs3MCw4IEBAIHN0YXRpYyBXb3Jr
UXVldWUmIGRlY29kZVF1ZXVlKCkKIHN0YXRpYyBSZXN1bHQgcGFyc2VNZWRpYVR5cGUoY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPFBhcnNlZENvbnRlbnRUeXBl
PiBwYXJzZWRDb250ZW50VHlwZSA9IFBhcnNlZENvbnRlbnRUeXBlOjpjcmVhdGUobWVkaWFUeXBl
KSkKLSAgICAgICAgcmV0dXJuIHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBlKCksIHBhcnNl
ZENvbnRlbnRUeXBlLT5jaGFyc2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJpYWxpemUoKSwg
bnVsbHB0ciB9OwotICAgIHJldHVybiB7ICJ0ZXh0L3BsYWluIl9zLCAiVVMtQVNDSUkiX3MsICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9VVMtQVNDSUkiX3MsIG51bGxwdHIgfTsKKyAgICAgICAgcmV0dXJu
IHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBlKCksIHBhcnNlZENvbnRlbnRUeXBlLT5jaGFy
c2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJpYWxpemUoKSwgeyB9IH07CisgICAgcmV0dXJu
IHsgInRleHQvcGxhaW4iX3MsICJVUy1BU0NJSSJfcywgInRleHQvcGxhaW47Y2hhcnNldD1VUy1B
U0NJSSJfcywgeyB9IH07CiB9CiAKIHN0cnVjdCBEZWNvZGVUYXNrIHsKQEAgLTE0OSwyNCArMTQ4
LDI2IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2RlVGFzaz4gY3JlYXRlRGVjb2RlVGFz
ayhjb25zdCBVUkwmIHVybCwgY29uc3QgU2NoZWR1CiAgICAgKTsKIH0KIAotc3RhdGljIHZvaWQg
ZGVjb2RlQmFzZTY0KERlY29kZVRhc2smIHRhc2ssIE1vZGUgbW9kZSkKK3N0YXRpYyBib29sIGRl
Y29kZUJhc2U2NChEZWNvZGVUYXNrJiB0YXNrLCBNb2RlIG1vZGUpCiB7CiAgICAgVmVjdG9yPGNo
YXI+IGJ1ZmZlcjsKICAgICBpZiAobW9kZSA9PSBNb2RlOjpGb3JnaXZpbmdCYXNlNjQpIHsKICAg
ICAgICAgYXV0byB1bmVzY2FwZWRTdHJpbmcgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModGFz
ay5lbmNvZGVkRGF0YS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwogICAgICAgICBpZiAoIWJh
c2U2NERlY29kZSh1bmVzY2FwZWRTdHJpbmcsIGJ1ZmZlciwgQmFzZTY0VmFsaWRhdGVQYWRkaW5n
IHwgQmFzZTY0SWdub3JlU3BhY2VzQW5kTmV3TGluZXMgfCBCYXNlNjREaXNjYXJkVmVydGljYWxU
YWIpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIEZpcnN0IHRyeSBiYXNlNjR1cmwuCiAgICAgICAgIGlmICgh
YmFzZTY0VVJMRGVjb2RlKHRhc2suZW5jb2RlZERhdGEudG9TdHJpbmdXaXRob3V0Q29weWluZygp
LCBidWZmZXIpKSB7CiAgICAgICAgICAgICAvLyBEaWRuJ3Qgd29yaywgdHJ5IHVuZXNjYXBpbmcg
YW5kIGRlY29kaW5nIGFzIGJhc2U2NC4KICAgICAgICAgICAgIGF1dG8gdW5lc2NhcGVkU3RyaW5n
ID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHRhc2suZW5jb2RlZERhdGEudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKTsKICAgICAgICAgICAgIGlmICghYmFzZTY0RGVjb2RlKHVuZXNjYXBlZFN0
cmluZywgYnVmZmVyLCBCYXNlNjRJZ25vcmVTcGFjZXNBbmROZXdMaW5lcyB8IEJhc2U2NERpc2Nh
cmRWZXJ0aWNhbFRhYikpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KICAgICBidWZmZXIuc2hyaW5rVG9GaXQo
KTsKLSAgICB0YXNrLnJlc3VsdC5kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShi
dWZmZXIpKTsKKyAgICB0YXNrLnJlc3VsdC5kYXRhID0gV1RGTW92ZShidWZmZXIpOworCisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGRlY29kZUVzY2FwZWQoRGVjb2RlVGFzayYg
dGFzaykKQEAgLTE3Niw3ICsxNzcsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVFc2NhcGVkKERlY29k
ZVRhc2smIHRhc2spCiAgICAgYXV0byBidWZmZXIgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNB
c0RhdGEodGFzay5lbmNvZGVkRGF0YSwgZW5jb2RpbmcpOwogCiAgICAgYnVmZmVyLnNocmlua1Rv
Rml0KCk7Ci0gICAgdGFzay5yZXN1bHQuZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUoYnVmZmVyKSk7CisgICAgdGFzay5yZXN1bHQuZGF0YSA9IFdURk1vdmUoYnVmZmVyKTsKIH0K
IAogdm9pZCBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjaGVkdWxlQ29udGV4dCYgc2No
ZWR1bGVDb250ZXh0LCBNb2RlIG1vZGUsIERlY29kZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC0xODQsOSArMTg1LDEwIEBAIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmIHNjaGVkdWxlQ29udGV4dCwgTW9kZSBtb2RlLCBE
CiAgICAgQVNTRVJUKHVybC5wcm90b2NvbElzRGF0YSgpKTsKIAogICAgIGRlY29kZVF1ZXVlKCku
ZGlzcGF0Y2goW2RlY29kZVRhc2sgPSBjcmVhdGVEZWNvZGVUYXNrKHVybCwgc2NoZWR1bGVDb250
ZXh0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSksIG1vZGVdKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGlmIChkZWNvZGVUYXNrLT5wcm9jZXNzKCkpIHsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0g
ZGVjb2RlVGFzay0+cHJvY2VzcygpOworICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAg
ICAgaWYgKGRlY29kZVRhc2stPmlzQmFzZTY0KQotICAgICAgICAgICAgICAgIGRlY29kZUJhc2U2
NCgqZGVjb2RlVGFzaywgbW9kZSk7CisgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGRlY29kZUJh
c2U2NCgqZGVjb2RlVGFzaywgbW9kZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgZGVjb2RlRXNjYXBlZCgqZGVjb2RlVGFzayk7CiAgICAgICAgIH0KQEAgLTE5NSw5ICsxOTcs
OSBAQCB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29uc3QgU2NoZWR1bGVDb250ZXh0JiBz
Y2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRAogICAgICAgICBhdXRvIHNjaGVkdWxlZFBhaXJz
ID0gZGVjb2RlVGFzay0+c2NoZWR1bGVDb250ZXh0LnNjaGVkdWxlZFBhaXJzOwogI2VuZGlmCiAK
LSAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVjb2RlVGFzayA9IFdURk1v
dmUoZGVjb2RlVGFzayldIHsKLSAgICAgICAgICAgIGlmICghZGVjb2RlVGFzay0+cmVzdWx0LmRh
dGEpIHsKLSAgICAgICAgICAgICAgICBkZWNvZGVUYXNrLT5jb21wbGV0aW9uSGFuZGxlcih7IH0p
OworICAgICAgICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxlciA9IFtzdWNjZXNzLCBkZWNvZGVU
YXNrID0gV1RGTW92ZShkZWNvZGVUYXNrKV0geworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7
CisgICAgICAgICAgICAgICAgZGVjb2RlVGFzay0+Y29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxs
b3B0KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBkZWNvZGVUYXNrLT5jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRlY29kZVRhc2stPnJlc3Vs
dCkpOwpAQCAtMjExLDUgKzIxMywyNCBAQCB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU2NoZWR1bGVDb250ZXh0JiBzY2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRAogICAgIH0p
OwogfQogCitPcHRpb25hbDxSZXN1bHQ+IGRlY29kZShjb25zdCBVUkwmIHVybCwgTW9kZSBtb2Rl
KQoreworICAgIEFTU0VSVCh1cmwucHJvdG9jb2xJc0RhdGEoKSk7CisKKyAgICBhdXRvIHRhc2sg
PSBjcmVhdGVEZWNvZGVUYXNrKHVybCwgeyB9LCBudWxscHRyKTsKKyAgICBib29sIHN1Y2Nlc3Mg
PSB0YXNrLT5wcm9jZXNzKCk7CisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKHRhc2st
PmlzQmFzZTY0KQorICAgICAgICAgICAgc3VjY2VzcyA9IGRlY29kZUJhc2U2NCgqdGFzaywgbW9k
ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlY29kZUVzY2FwZWQoKnRhc2spOworICAg
IH0KKworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBXVEZNb3ZlKHRhc2stPnJlc3VsdCk7CiB9Ci19CisKK30gLy8gbmFtZXNwYWNl
IERhdGFVUkxEZWNvZGVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmgKaW5kZXggM2QwYTcyZTU2NWQ1
Li44MzUyOWU2YWFmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTERlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0RhdGFVUkxEZWNvZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFJlc3VsdCB7CiAgICAg
U3RyaW5nIG1pbWVUeXBlOwogICAgIFN0cmluZyBjaGFyc2V0OwogICAgIFN0cmluZyBjb250ZW50
VHlwZTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhOworICAgIFZlY3RvcjxjaGFyPiBk
YXRhOwogfTsKIAogdXNpbmcgRGVjb2RlQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9u
PHZvaWQgKE9wdGlvbmFsPFJlc3VsdD4pPjsKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IFNjaGVk
dWxlQ29udGV4dCB7CiAKIGVudW0gY2xhc3MgTW9kZSB7IExlZ2FjeSwgRm9yZ2l2aW5nQmFzZTY0
IH07CiB2b2lkIGRlY29kZShjb25zdCBVUkwmLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmLCBNb2Rl
LCBEZWNvZGVDb21wbGV0aW9uSGFuZGxlciYmKTsKK1dFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFJl
c3VsdD4gZGVjb2RlKGNvbnN0IFVSTCYsIE1vZGUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0
MTUzNmYzMC4uNmU5MTUxOTI5MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAgLTE1NCwxMSArMTU0LDExIEBAIFN0
cmluZyBkZWNvZGVFc2NhcGVTZXF1ZW5jZXMoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IFRleHRF
bmNvZGluZyYgZW5jb2RpbmcpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1p
bmxpbmUgVmVjdG9yPHVpbnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YShTdHJp
bmdWaWV3IHN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKK2lubGluZSBWZWN0
b3I8Y2hhcj4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcgc3RyaW5n
LCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewogICAgIEFTU0VSVChlbmNvZGluZy5p
c1ZhbGlkKCkpOwogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBWZWN0b3I8Y2hh
cj4gcmVzdWx0OwogICAgIHNpemVfdCBkZWNvZGVkUG9zaXRpb24gPSAwOwogICAgIHNpemVfdCBz
ZWFyY2hQb3NpdGlvbiA9IDA7CiAgICAgd2hpbGUgKHRydWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDMxNjE2
NTFmN2JjLi44Yzg0NTAxOTQ5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDEt
MjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IExvYWQgZGF0YSBVUkxzIGluIHRoZSB3ZWIgcHJvY2VzcyBhbHNvIGZvciBzeW5jaHJvbm91cyBs
b2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIw
OTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
cjI3MTg3OSBJIHJlbW92ZWQgdGhlIHN1cHBvcnQgZm9yIGRhdGEgVVJMcyBpbiB0aGUgbmV0d29y
ayBwcm9jZXNzIGZvciBzb3VwLCBhc3N1bWluZyBkYXRhIFVSTHMgd2VyZSBhbHdheXMKKyAgICAg
ICAgbG9hZGVkIGZyb20gdGhlIHdlYiBwcm9jZXNzLCBidXQgdGhhdCdzIG5vdCB0aGUgY2FzZSBm
b3Igc3luY2hyb25vdXMgbG9hZHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tT
b3VwOjpjcmVhdGVSZXF1ZXN0KTogU2NoZWR1bGUgYW4gZXJyb3IgaWYgVVJMIGlzIG5vdCBmaWxl
IG9yIEhUVFAgZmFtaWx5LgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkRGF0
YVVSTFN5bmNocm9ub3VzbHkpOiBIZWxwZXIgdG8gbG9hZCBhIERhdGEgVVJMIHN5bmNocm9ub3Vz
bHkuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KTogQ2FsbCBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkgZm9yIGRhdGEgVVJMcy4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAy
MS0wMS0yNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10g
TWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJbk9yZGVyZWRNYXAgY2FuIGhhbmcgd2hlbiBzdGVwcGlu
ZyB0byB0aGUgZW5kIG9mIGEgdHJhY2sgdGhhdCBoYXNuJ3QgYmVlbiBmdWxseSBwYXJzZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRh
c2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcAppbmRleCAyOGM2M2IwYTcyMDcuLmRlMDNjNjZmMDliOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRh
c2tTb3VwLmNwcApAQCAtMTEzLDYgKzExMywxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2FzQmxvY2tpbmdDbwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0LnVybCgp
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52
YWxpZFVSTEZhaWx1cmUpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgR1VuaXF1ZVB0
cjxTb3VwVVJJPiBzb3VwVVJJID0gbV9jdXJyZW50UmVxdWVzdC5jcmVhdGVTb3VwVVJJKCk7CiAg
ICAgaWYgKCFzb3VwVVJJKSB7CiAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFp
bHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKaW5kZXggNjlkZWE3NDkzZTI2Li40OWI5NjYyODA5YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9E
YXRhVVJMRGVjb2Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KQEAgLTUyNyw2ICs1MjgsMzEgQEAgc3RhdGljIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChGcmFtZSogZnJhbWUpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK1dlYkxvYWRlclN0cmF0ZWd5OjpTeW5jTG9hZFJlc3VsdCBX
ZWJMb2FkZXJTdHJhdGVneTo6bG9hZERhdGFVUkxTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIG1vZGUgPSBEYXRhVVJMRGVjb2Rlcjo6TW9k
ZTo6TGVnYWN5OworICAgIGlmIChyZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVz
dDo6UmVxdWVzdGVyOjpGZXRjaCkKKyAgICAgICAgbW9kZSA9IERhdGFVUkxEZWNvZGVyOjpNb2Rl
OjpGb3JnaXZpbmdCYXNlNjQ7CisKKyAgICBTeW5jTG9hZFJlc3VsdCByZXN1bHQ7CisgICAgYXV0
byBkZWNvZGVSZXN1bHQgPSBEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKHJlcXVlc3QudXJsKCksIG1v
ZGUpOworICAgIGlmICghZGVjb2RlUmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImxvYWREYXRhVVJMU3luY2hyb25vdXNseTogZGVjb2Rpbmcgb2YgZGF0YSBmYWlsZWQi
KTsKKyAgICAgICAgcmVzdWx0LmVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBhdXRvIGRhdGFTaXplID0gZGVj
b2RlUmVzdWx0LT5kYXRhLnNpemUoKTsKKyAgICByZXN1bHQucmVzcG9uc2UgPSB7IHJlcXVlc3Qu
dXJsKCksIGRlY29kZVJlc3VsdC0+bWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0
YVNpemUpLCBkZWNvZGVSZXN1bHQtPmNoYXJzZXQgfTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0
SFRUUFN0YXR1c0NvZGUoMjAwKTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1Rl
eHQoIk9LIl9zKTsKKyAgICByZXN1bHQucmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgZGVjb2RlUmVzdWx0LT5jb250ZW50VHlwZSk7CisgICAg
cmVzdWx0LnJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdv
cmspOworICAgIHJlc3VsdC5kYXRhID0gV1RGTW92ZShkZWNvZGVSZXN1bHQtPmRhdGEpOworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogT3B0aW9uYWw8V2ViTG9hZGVyU3RyYXRlZ3k6OlN5bmNM
b2FkUmVzdWx0PiBXZWJMb2FkZXJTdHJhdGVneTo6dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2lu
Z1VSTFNjaGVtZUhhbmRsZXIoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
ICAgICBhdXRvKiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQo
ZnJhbWVMb2FkZXIuY2xpZW50KCkpOwpAQCAtNTcwLDYgKzU5NiwxNSBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxv
YWRlciwgdW5zaQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHJlcXVlc3QudXJs
KCkucHJvdG9jb2xJc0RhdGEoKSkgeworICAgICAgICBXRUJMT0FERVJTVFJBVEVHWV9XSVRIX0ZS
QU1FTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHk6IFVSTCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIik7CisgICAgICAgIGF1dG8gc3lu
Y0xvYWRSZXN1bHQgPSBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkocmVxdWVzdCk7CisgICAgICAg
IGVycm9yID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC5lcnJvcik7CisgICAgICAgIHJlc3BvbnNl
ID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC5yZXNwb25zZSk7CisgICAgICAgIGRhdGEgPSBXVEZN
b3ZlKHN5bmNMb2FkUmVzdWx0LmRhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKGF1dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJM
U2NoZW1lSGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVz
dCkpIHsKICAgICAgICAgV0VCTE9BREVSU1RSQVRFR1lfV0lUSF9GUkFNRUxPQURFUl9SRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKCJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQg
Y2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAoZXJy
b3I9JWQpIiwgc3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJy
b3IgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5lcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA5ZDk4ODQx
ODNlYzkuLjY1MGY1NTUwYTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgVmVjdG9yPGNoYXI+IGRhdGE7CiAgICAgfTsKICAgICBPcHRpb25hbDxTeW5j
TG9hZFJlc3VsdD4gdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIo
V2ViQ29yZTo6RnJhbWVMb2FkZXImLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBTeW5jTG9hZFJlc3VsdCBsb2FkRGF0YVVSTFN5
bmNocm9ub3VzbHkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlRnJvbVJlc291cmNlTG9hZElkZW50aWZpZXIo
dWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNv
cmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uPiBpbnRlcm1lZGlhdGVMb2FkSW5mb3Jt
YXRpb25Gcm9tUmVzb3VyY2VMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418528</attachid>
            <date>2021-01-27 04:10:30 -0800</date>
            <delta_ts>2021-01-28 03:08:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-sync-data-url.diff</filename>
            <type>text/plain</type>
            <size>19624</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNzg1NmM4N2ZlYzMuLjA5NjE5ZDljNTYzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTAxLTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KworICAgICAgICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3MgYWxzbyBmb3Igc3lu
Y2hyb25vdXMgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbnMgZm9yIHRlc3RzIHRoYXQgYXJlIG5vIGxvbmdlciBj
cmFzaGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAyMS0wMS0yNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01h
Y10gTWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJbk9yZGVyZWRNYXAgY2FuIGhhbmcgd2hlbiBzdGVw
cGluZyB0byB0aGUgZW5kIG9mIGEgdHJhY2sgdGhhdCBoYXNuJ3QgYmVlbiBmdWxseSBwYXJzZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYjg3ZDYw
OTVhY2EuLjczYmUyNGMzMWJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNzIzLDE2ICs3MjMsNiBAQCB3ZWJraXQub3JnL2IvMjE3MjY3IGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1zcGlubmluZy1mZXRjaC5odHRwcwog
d2Via2l0Lm9yZy9iLzIxNzI2NyBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXItc3Bpbm5pbmctaW5zdGFsbC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMTcyNjcgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLXNwaW5u
aW5nLW1lc3NhZ2UuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLSMgU3RhcnQgb2YgcjI3
MTg3OSByZWdyZXNzaW9ucyAoU291cGVNZXNzYWdlIGNoYW5nZXMgZm9yIGxpYnNvdXAzKQotd2Vi
a2l0Lm9yZy9iLzIyMTAyMyBmYXN0L2VuY29kaW5nL2NoYXItZGVjb2RpbmctbWFjLmh0bWwgWyBD
cmFzaCBdCi13ZWJraXQub3JnL2IvMjIxMDIzIGZhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy5o
dG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIyMTAyMyBzdmcvbG9hZC1ldmVudC1kZXRhY2hl
ZC5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIyMTAyMyBmYXN0L2V2ZW50cy9ldmVudC1o
YW5kbGVyLWRldGFjaGVkLWRvY3VtZW50Lmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMjIx
MDIzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXN5
bmMtYmxvY2stZGVmZXItc2NyaXB0cy5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIyMTAy
MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC1zeW5j
LWJsb2NrLXNjcmlwdHMuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8yMjEwMjMgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3Qtc3luYy1kZWZhdWx0
LWZlYXR1cmUtcG9saWN5LnN1Yi5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIyMTAyMyBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC1zeW5jLW5v
dC1oYW5nLXNjcmlwdGxvYWRlci5odG1sIFsgQ3Jhc2ggXQotCiAjLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIyBFbmQgb2YgU09VUCBhbmQgTmV0d29ya2luZy1yZWxhdGVkIGJ1Z3MK
ICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY0NjQ3ZDc0
OWZhLi5mZmZmODM4ODc2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wMS0y
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
TG9hZCBkYXRhIFVSTHMgaW4gdGhlIHdlYiBwcm9jZXNzIGFsc28gZm9yIHN5bmNocm9ub3VzIGxv
YWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA5
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3luY2hyb25vdXMgQVBJIGZvciBEYXRhVVJMRGVjb2Rlci4gSXQgbm93IHVzZXMgYSBWZWN0b3I8
Y2hhcj4gZm9yIHRoZSBkYXRhIGluc3RlYWQgb2YgU2hhcmVkQnVmZmVyLiBUaGF0CisgICAgICAg
IHdheSwgUmVzb3VyY2VMb2FkZXIgY2FuIGNyZWF0ZSB0aGUgU2hhcmVkQnVmZmVyIGZyb20gdGhl
IGdpdmVuIGRhdGEgYW5kIGxvYWRlciBzdHJhdGVneSBjYW4gc2ltcGx5IG1vdmUgaXQuCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOiBBZGQgRGF0YVVSTERlY29kZXIuaC4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1hcmsgRGF0YVVSTERlY29kZXIuaCBh
cyBwcml2YXRlLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZERhdGFVUkwpOiBBZGFwdCB0byB0aGUgRGF0
YVVSTERlY29kZXIgQVBJIGNoYW5nZXMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6cGFyc2VN
ZWRpYVR5cGUpOiBVcGRhdGUgdGhlIGRhdGEgaW5pdGlhbGl6YXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlQmFzZTY0KTogUmV0dXJuIGJvb2wgdG8gaW5kaWNh
dGUgc3VjY2VzcyBvciBlcnJvciBhbmQgbW92ZSB0aGUgcmVzdWx0aW5nIHZlY3RvcgorICAgICAg
ICBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgU2hhcmVkQnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVVSTERlY29kZXI6OmRlY29kZUVzY2FwZWQpOiBNb3ZlIHRoZSByZXN1bHRpbmcgdmVjdG9y
IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTaGFyZWRCdWZmZXIuCisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKTogUmV0dXJuIG51bGxvcHQgaW4gY2FzZSBvZiBmYWlsdXJl
IG9yIHRoZSB0YXNrIHJlc3VsdCBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJM
RGVjb2Rlcjo6ZGVjb2RlKTogU3luY2hyb25vdXMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmg6CisgICAgICAgIChXZWJDb3JlOjpkZWNvZGVVUkxF
c2NhcGVTZXF1ZW5jZXNBc0RhdGEpOiBVc2UgVmVjdG9yPGNoYXI+IHNvIHRoYXQgd2UgY2FuIGF2
b2lkIGRhdGEgY29waWVzLgorCiAyMDIxLTAxLTI3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTWFjXSBNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluT3JkZXJlZE1h
cCBjYW4gaGFuZyB3aGVuIHN0ZXBwaW5nIHRvIHRoZSBlbmQgb2YgYSB0cmFjayB0aGF0IGhhc24n
dCBiZWVuIGZ1bGx5IHBhcnNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWQwNjZjMTFjYWMyLi5l
N2QwMDgxMjljMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTM5MCw2ICsxMzkwLDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbFN0b3JhZ2UuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRE5TLmgKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0ROU1Jlc29sdmVRdWV1ZS5oCisgICAgcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCiAgICAgcGxhdGZv
cm0vbmV0d29yay9IVFRQQ29va2llQWNjZXB0UG9saWN5LmgKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBIZWFkZXJNYXAuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDAwN2UyM2UzZjEyMi4uOGUxMjc2Yzk3NTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
ODMsNyArOTgzLDcgQEAKIAkJMzcxRjUzRTkwRDI3MDRGOTAwRUNFMEQ1IC8qIENTU1VuaWNvZGVS
YW5nZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzNzFGNTNFNzBEMjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCAqLzsg
fTsKIAkJMzcyQURBMzgxOTdGNDdCOTAwRkM1MDFFIC8qIFByb3RlY3Rpb25TcGFjZUNvY29hLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzJBREEzNzE5
N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1
NzUgLyogRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3MkMwMEQ4MTI5NjE5RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTM3MkQzRTU0MjE2
NTc4QUUwMEM1RTAyMSAvKiBEYXRhVVJMRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBMDA3ODIxQjgyMEVDODAwMkM1QTZFIC8qIERhdGFV
UkxEZWNvZGVyLmggKi87IH07CisJCTM3MkQzRTU0MjE2NTc4QUUwMEM1RTAyMSAvKiBEYXRhVVJM
RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRBMDA3ODIxQjgyMEVDODAwMkM1QTZFIC8qIERhdGFVUkxEZWNvZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcyRDNFNTUyMTY1NzhBRTAw
QzVFMDIxIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1v
ZHVsZUxvYWRlci5oICovOyB9OwogCQkzNzJEM0U1NzIxNjU3OEFFMDBDNUUwMjEgLyogTmF2aWdh
dG9yQ3JlZGVudGlhbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3RDg0NjI2MUZFODk1RjgwMENBMzY4MiAvKiBOYXZpZ2F0b3JDcmVkZW50aWFscy5o
ICovOyB9OwogCQkzNzVDRDIzMjExOUQ0M0M4MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NUNEMjMxMTE5RDQz
QzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYjM1NGU3YWFhZjc5Li5mNzdhMGU1NGNmZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjcyLDE0ICsyNzIsMTQg
QEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6bG9hZERhdGFVUkwoKQogICAgICAgICBpZiAodGhpcy0+
d2FzQ2FuY2VsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8mIHJlc3Vs
dCA9IGRlY29kZVJlc3VsdC52YWx1ZSgpOwotICAgICAgICBhdXRvIGRhdGFTaXplID0gcmVzdWx0
LmRhdGEgPyByZXN1bHQuZGF0YS0+c2l6ZSgpIDogMDsKKyAgICAgICAgYXV0byBkYXRhU2l6ZSA9
IHJlc3VsdC5kYXRhLnNpemUoKTsKIAogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIGRhdGFSZXNw
b25zZSB7IHVybCwgcmVzdWx0Lm1pbWVUeXBlLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFT
aXplKSwgcmVzdWx0LmNoYXJzZXQgfTsKICAgICAgICAgZGF0YVJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDIwMCk7CiAgICAgICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dCgiT0si
X3MpOwogICAgICAgICBkYXRhUmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJO
YW1lOjpDb250ZW50VHlwZSwgcmVzdWx0LmNvbnRlbnRUeXBlKTsKICAgICAgICAgZGF0YVJlc3Bv
bnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwotICAgICAg
ICB0aGlzLT5kaWRSZWNlaXZlUmVzcG9uc2UoZGF0YVJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGRhdGFTaXplLCBkYXRhID0gcmVzdWx0LmRh
dGEucmVsZWFzZU5vbk51bGwoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgdGhpcy0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKGRhdGFSZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCBkYXRhU2l6ZSwgZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUocmVzdWx0LmRhdGEpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghdGhpcy0+cmVh
Y2hlZFRlcm1pbmFsU3RhdGUoKSAmJiBkYXRhU2l6ZSAmJiBtX3JlcXVlc3QuaHR0cE1ldGhvZCgp
ICE9ICJIRUFEIikKICAgICAgICAgICAgICAgICB0aGlzLT5kaWRSZWNlaXZlQnVmZmVyKFdURk1v
dmUoZGF0YSksIGRhdGFTaXplLCBEYXRhUGF5bG9hZFdob2xlUmVzb3VyY2UpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCmluZGV4
IGU4YmY5YzJlMWE4Ny4uMTQzYTRiYzU2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lu
Y2x1ZGUgIkRlY29kZUVzY2FwZVNlcXVlbmNlcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgi
CiAjaW5jbHVkZSAiUGFyc2VkQ29udGVudFR5cGUuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNzEsOCArNzAsOCBAQCBzdGF0aWMgV29y
a1F1ZXVlJiBkZWNvZGVRdWV1ZSgpCiBzdGF0aWMgUmVzdWx0IHBhcnNlTWVkaWFUeXBlKGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlKQogewogICAgIGlmIChPcHRpb25hbDxQYXJzZWRDb250ZW50VHlw
ZT4gcGFyc2VkQ29udGVudFR5cGUgPSBQYXJzZWRDb250ZW50VHlwZTo6Y3JlYXRlKG1lZGlhVHlw
ZSkpCi0gICAgICAgIHJldHVybiB7IHBhcnNlZENvbnRlbnRUeXBlLT5taW1lVHlwZSgpLCBwYXJz
ZWRDb250ZW50VHlwZS0+Y2hhcnNldCgpLCBwYXJzZWRDb250ZW50VHlwZS0+c2VyaWFsaXplKCks
IG51bGxwdHIgfTsKLSAgICByZXR1cm4geyAidGV4dC9wbGFpbiJfcywgIlVTLUFTQ0lJIl9zLCAi
dGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFTQ0lJIl9zLCBudWxscHRyIH07CisgICAgICAgIHJldHVy
biB7IHBhcnNlZENvbnRlbnRUeXBlLT5taW1lVHlwZSgpLCBwYXJzZWRDb250ZW50VHlwZS0+Y2hh
cnNldCgpLCBwYXJzZWRDb250ZW50VHlwZS0+c2VyaWFsaXplKCksIHsgfSB9OworICAgIHJldHVy
biB7ICJ0ZXh0L3BsYWluIl9zLCAiVVMtQVNDSUkiX3MsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVMt
QVNDSUkiX3MsIHsgfSB9OwogfQogCiBzdHJ1Y3QgRGVjb2RlVGFzayB7CkBAIC0xNDksMjQgKzE0
OCwyNiBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPERlY29kZVRhc2s+IGNyZWF0ZURlY29kZVRh
c2soY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjaGVkdQogICAgICk7CiB9CiAKLXN0YXRpYyB2b2lk
IGRlY29kZUJhc2U2NChEZWNvZGVUYXNrJiB0YXNrLCBNb2RlIG1vZGUpCitzdGF0aWMgYm9vbCBk
ZWNvZGVCYXNlNjQoRGVjb2RlVGFzayYgdGFzaywgTW9kZSBtb2RlKQogewogICAgIFZlY3Rvcjxj
aGFyPiBidWZmZXI7CiAgICAgaWYgKG1vZGUgPT0gTW9kZTo6Rm9yZ2l2aW5nQmFzZTY0KSB7CiAg
ICAgICAgIGF1dG8gdW5lc2NhcGVkU3RyaW5nID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHRh
c2suZW5jb2RlZERhdGEudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICAgICAgaWYgKCFi
YXNlNjREZWNvZGUodW5lc2NhcGVkU3RyaW5nLCBidWZmZXIsIEJhc2U2NFZhbGlkYXRlUGFkZGlu
ZyB8IEJhc2U2NElnbm9yZVNwYWNlc0FuZE5ld0xpbmVzIHwgQmFzZTY0RGlzY2FyZFZlcnRpY2Fs
VGFiKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBGaXJzdCB0cnkgYmFzZTY0dXJsLgogICAgICAgICBpZiAo
IWJhc2U2NFVSTERlY29kZSh0YXNrLmVuY29kZWREYXRhLnRvU3RyaW5nV2l0aG91dENvcHlpbmco
KSwgYnVmZmVyKSkgewogICAgICAgICAgICAgLy8gRGlkbid0IHdvcmssIHRyeSB1bmVzY2FwaW5n
IGFuZCBkZWNvZGluZyBhcyBiYXNlNjQuCiAgICAgICAgICAgICBhdXRvIHVuZXNjYXBlZFN0cmlu
ZyA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh0YXNrLmVuY29kZWREYXRhLnRvU3RyaW5nV2l0
aG91dENvcHlpbmcoKSk7CiAgICAgICAgICAgICBpZiAoIWJhc2U2NERlY29kZSh1bmVzY2FwZWRT
dHJpbmcsIGJ1ZmZlciwgQmFzZTY0SWdub3JlU3BhY2VzQW5kTmV3TGluZXMgfCBCYXNlNjREaXNj
YXJkVmVydGljYWxUYWIpKQotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAgICAgYnVmZmVyLnNocmlua1RvRml0
KCk7Ci0gICAgdGFzay5yZXN1bHQuZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUo
YnVmZmVyKSk7CisgICAgdGFzay5yZXN1bHQuZGF0YSA9IFdURk1vdmUoYnVmZmVyKTsKKworICAg
IHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBkZWNvZGVFc2NhcGVkKERlY29kZVRhc2sm
IHRhc2spCkBAIC0xNzYsNyArMTc3LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlRXNjYXBlZChEZWNv
ZGVUYXNrJiB0YXNrKQogICAgIGF1dG8gYnVmZmVyID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2Vz
QXNEYXRhKHRhc2suZW5jb2RlZERhdGEsIGVuY29kaW5nKTsKIAogICAgIGJ1ZmZlci5zaHJpbmtU
b0ZpdCgpOwotICAgIHRhc2sucmVzdWx0LmRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShXVEZN
b3ZlKGJ1ZmZlcikpOworICAgIHRhc2sucmVzdWx0LmRhdGEgPSBXVEZNb3ZlKGJ1ZmZlcik7CiB9
CiAKIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmIHNj
aGVkdWxlQ29udGV4dCwgTW9kZSBtb2RlLCBEZWNvZGVDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpAQCAtMTg0LDkgKzE4NSwxMCBAQCB2b2lkIGRlY29kZShjb25zdCBVUkwm
IHVybCwgY29uc3QgU2NoZWR1bGVDb250ZXh0JiBzY2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwg
RAogICAgIEFTU0VSVCh1cmwucHJvdG9jb2xJc0RhdGEoKSk7CiAKICAgICBkZWNvZGVRdWV1ZSgp
LmRpc3BhdGNoKFtkZWNvZGVUYXNrID0gY3JlYXRlRGVjb2RlVGFzayh1cmwsIHNjaGVkdWxlQ29u
dGV4dCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLCBtb2RlXSgpIG11dGFibGUgewotICAg
ICAgICBpZiAoZGVjb2RlVGFzay0+cHJvY2VzcygpKSB7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9
IGRlY29kZVRhc2stPnByb2Nlc3MoKTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgIGlmIChkZWNvZGVUYXNrLT5pc0Jhc2U2NCkKLSAgICAgICAgICAgICAgICBkZWNvZGVCYXNl
NjQoKmRlY29kZVRhc2ssIG1vZGUpOworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBkZWNvZGVC
YXNlNjQoKmRlY29kZVRhc2ssIG1vZGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIGRlY29kZUVzY2FwZWQoKmRlY29kZVRhc2spOwogICAgICAgICB9CkBAIC0xOTUsOSArMTk3
LDkgQEAgdm9pZCBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjaGVkdWxlQ29udGV4dCYg
c2NoZWR1bGVDb250ZXh0LCBNb2RlIG1vZGUsIEQKICAgICAgICAgYXV0byBzY2hlZHVsZWRQYWly
cyA9IGRlY29kZVRhc2stPnNjaGVkdWxlQ29udGV4dC5zY2hlZHVsZWRQYWlyczsKICNlbmRpZgog
Ci0gICAgICAgIGF1dG8gY2FsbENvbXBsZXRpb25IYW5kbGVyID0gW2RlY29kZVRhc2sgPSBXVEZN
b3ZlKGRlY29kZVRhc2spXSB7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZVRhc2stPnJlc3VsdC5k
YXRhKSB7Ci0gICAgICAgICAgICAgICAgZGVjb2RlVGFzay0+Y29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBbc3VjY2VzcywgZGVjb2Rl
VGFzayA9IFdURk1vdmUoZGVjb2RlVGFzayldIHsKKyAgICAgICAgICAgIGlmICghc3VjY2Vzcykg
eworICAgICAgICAgICAgICAgIGRlY29kZVRhc2stPmNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVs
bG9wdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZGVjb2RlVGFzay0+Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShkZWNvZGVUYXNrLT5yZXN1
bHQpKTsKQEAgLTIxMSw1ICsyMTMsMjQgQEAgdm9pZCBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFNjaGVkdWxlQ29udGV4dCYgc2NoZWR1bGVDb250ZXh0LCBNb2RlIG1vZGUsIEQKICAgICB9
KTsKIH0KIAorT3B0aW9uYWw8UmVzdWx0PiBkZWNvZGUoY29uc3QgVVJMJiB1cmwsIE1vZGUgbW9k
ZSkKK3sKKyAgICBBU1NFUlQodXJsLnByb3RvY29sSXNEYXRhKCkpOworCisgICAgYXV0byB0YXNr
ID0gY3JlYXRlRGVjb2RlVGFzayh1cmwsIHsgfSwgbnVsbHB0cik7CisgICAgYm9vbCBzdWNjZXNz
ID0gdGFzay0+cHJvY2VzcygpOworICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgIGlmICh0YXNr
LT5pc0Jhc2U2NCkKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBkZWNvZGVCYXNlNjQoKnRhc2ssIG1v
ZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZWNvZGVFc2NhcGVkKCp0YXNrKTsKKyAg
ICB9CisKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4gV1RGTW92ZSh0YXNrLT5yZXN1bHQpOwogfQotfQorCit9IC8vIG5hbWVzcGFj
ZSBEYXRhVVJMRGVjb2RlcgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5oCmluZGV4IDNkMGE3MmU1NjVk
NS4uODM1MjllNmFhZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0RhdGFVUkxEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMRGVjb2Rlci5oCkBAIC00MSw3ICs0MSw3IEBAIHN0cnVjdCBSZXN1bHQgewogICAg
IFN0cmluZyBtaW1lVHlwZTsKICAgICBTdHJpbmcgY2hhcnNldDsKICAgICBTdHJpbmcgY29udGVu
dFR5cGU7Ci0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKKyAgICBWZWN0b3I8Y2hhcj4g
ZGF0YTsKIH07CiAKIHVzaW5nIERlY29kZUNvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5jdGlv
bjx2b2lkIChPcHRpb25hbDxSZXN1bHQ+KT47CkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBTY2hl
ZHVsZUNvbnRleHQgewogCiBlbnVtIGNsYXNzIE1vZGUgeyBMZWdhY3ksIEZvcmdpdmluZ0Jhc2U2
NCB9Owogdm9pZCBkZWNvZGUoY29uc3QgVVJMJiwgY29uc3QgU2NoZWR1bGVDb250ZXh0JiwgTW9k
ZSwgRGVjb2RlQ29tcGxldGlvbkhhbmRsZXImJik7CitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxS
ZXN1bHQ+IGRlY29kZShjb25zdCBVUkwmLCBNb2RlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaAppbmRleCAxNGNm
NDE1MzZmMzAuLjZlOTE1MTkyOTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCkBAIC0xNTQsMTEgKzE1NCwxMSBAQCBT
dHJpbmcgZGVjb2RlRXNjYXBlU2VxdWVuY2VzKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0
RW5jb2RpbmcmIGVuY29kaW5nKQogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAot
aW5saW5lIFZlY3Rvcjx1aW50OF90PiBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNBc0RhdGEoU3Ry
aW5nVmlldyBzdHJpbmcsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCitpbmxpbmUgVmVj
dG9yPGNoYXI+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YShTdHJpbmdWaWV3IHN0cmlu
ZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKIHsKICAgICBBU1NFUlQoZW5jb2Rpbmcu
aXNWYWxpZCgpKTsKIAotICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7CisgICAgVmVjdG9yPGNo
YXI+IHJlc3VsdDsKICAgICBzaXplX3QgZGVjb2RlZFBvc2l0aW9uID0gMDsKICAgICBzaXplX3Qg
c2VhcmNoUG9zaXRpb24gPSAwOwogICAgIHdoaWxlICh0cnVlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMTYx
NjUxZjdiYy4uMWI1MWU1ZDNiMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAx
LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAg
ICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3MgYWxzbyBmb3Igc3luY2hyb25vdXMg
bG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
IHIyNzE4NzkgSSByZW1vdmVkIHRoZSBzdXBwb3J0IGZvciBkYXRhIFVSTHMgaW4gdGhlIG5ldHdv
cmsgcHJvY2VzcyBmb3Igc291cCwgYXNzdW1pbmcgZGF0YSBVUkxzIHdlcmUgYWx3YXlzCisgICAg
ICAgIGxvYWRlZCBmcm9tIHRoZSB3ZWIgcHJvY2VzcywgYnV0IHRoYXQncyBub3QgdGhlIGNhc2Ug
Zm9yIHN5bmNocm9ub3VzIGxvYWRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
U291cDo6Y3JlYXRlUmVxdWVzdCk6IFNjaGVkdWxlIGFuIGVycm9yIGlmIFVSTCBpcyBub3QgZmls
ZSBvciBIVFRQIGZhbWlseS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZERh
dGFVUkxTeW5jaHJvbm91c2x5KTogSGVscGVyIHRvIGxvYWQgYSBEYXRhIFVSTCBzeW5jaHJvbm91
c2x5LgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6IENhbGwgbG9hZERhdGFVUkxTeW5jaHJvbm91c2x5IGZvciBkYXRhIFVSTHMu
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6CisKIDIw
MjEtMDEtMjcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
IE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFwIGNhbiBoYW5nIHdoZW4gc3RlcHBp
bmcgdG8gdGhlIGVuZCBvZiBhIHRyYWNrIHRoYXQgaGFzbid0IGJlZW4gZnVsbHkgcGFyc2VkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0Rh
dGFUYXNrU291cC5jcHAKaW5kZXggMjhjNjNiMGE3MjA3Li5kZTAzYzY2ZjA5YjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5jcHAKQEAgLTExMyw2ICsxMTMsMTEgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3Vw
OjpjcmVhdGVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdhc0Jsb2NraW5nQ28K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICghbV9jdXJyZW50UmVxdWVzdC51cmwo
KS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAgc2NoZWR1bGVGYWlsdXJlKElu
dmFsaWRVUkxGYWlsdXJlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEdVbmlxdWVQ
dHI8U291cFVSST4gc291cFVSSSA9IG1fY3VycmVudFJlcXVlc3QuY3JlYXRlU291cFVSSSgpOwog
ICAgIGlmICghc291cFVSSSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZh
aWx1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDY5ZGVhNzQ5M2UyNi4uNDliOTY2MjgwOWI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RGF0YVVSTERlY29kZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CkBAIC01MjcsNiArNTI4LDMxIEBAIHN0YXRpYyBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoRnJhbWUqIGZyYW1lKQog
ICAgIHJldHVybiB0cnVlOwogfQogCitXZWJMb2FkZXJTdHJhdGVneTo6U3luY0xvYWRSZXN1bHQg
V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWREYXRhVVJMU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgYXV0byBtb2RlID0gRGF0YVVSTERlY29kZXI6Ok1v
ZGU6OkxlZ2FjeTsKKyAgICBpZiAocmVxdWVzdC5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVl
c3Q6OlJlcXVlc3Rlcjo6RmV0Y2gpCisgICAgICAgIG1vZGUgPSBEYXRhVVJMRGVjb2Rlcjo6TW9k
ZTo6Rm9yZ2l2aW5nQmFzZTY0OworCisgICAgU3luY0xvYWRSZXN1bHQgcmVzdWx0OworICAgIGF1
dG8gZGVjb2RlUmVzdWx0ID0gRGF0YVVSTERlY29kZXI6OmRlY29kZShyZXF1ZXN0LnVybCgpLCBt
b2RlKTsKKyAgICBpZiAoIWRlY29kZVJlc3VsdCkgeworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHk6IGRlY29kaW5nIG9mIGRhdGEgZmFpbGVk
Iik7CisgICAgICAgIHJlc3VsdC5lcnJvciA9IGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgYXV0byBkYXRhU2l6ZSA9IGRl
Y29kZVJlc3VsdC0+ZGF0YS5zaXplKCk7CisgICAgcmVzdWx0LnJlc3BvbnNlID0geyByZXF1ZXN0
LnVybCgpLCBkZWNvZGVSZXN1bHQtPm1pbWVUeXBlLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRh
dGFTaXplKSwgZGVjb2RlUmVzdWx0LT5jaGFyc2V0IH07CisgICAgcmVzdWx0LnJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNDb2RlKDIwMCk7CisgICAgcmVzdWx0LnJlc3BvbnNlLnNldEhUVFBTdGF0dXNU
ZXh0KCJPSyJfcyk7CisgICAgcmVzdWx0LnJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIGRlY29kZVJlc3VsdC0+Y29udGVudFR5cGUpOworICAg
IHJlc3VsdC5yZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3
b3JrKTsKKyAgICByZXN1bHQuZGF0YSA9IFdURk1vdmUoZGVjb2RlUmVzdWx0LT5kYXRhKTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIE9wdGlvbmFsPFdlYkxvYWRlclN0cmF0ZWd5OjpTeW5j
TG9hZFJlc3VsdD4gV2ViTG9hZGVyU3RyYXRlZ3k6OnRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNp
bmdVUkxTY2hlbWVIYW5kbGVyKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
CiAgICAgYXV0byogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50
KGZyYW1lTG9hZGVyLmNsaWVudCgpKTsKQEAgLTU3MCw2ICs1OTYsMTUgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVM
b2FkZXIsIHVuc2kKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChyZXF1ZXN0LnVy
bCgpLnByb3RvY29sSXNEYXRhKCkpIHsKKyAgICAgICAgV0VCTE9BREVSU1RSQVRFR1lfV0lUSF9G
UkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5OiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSIpOworICAgICAgICBhdXRvIHN5
bmNMb2FkUmVzdWx0ID0gbG9hZERhdGFVUkxTeW5jaHJvbm91c2x5KHJlcXVlc3QpOworICAgICAg
ICBlcnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQuZXJyb3IpOworICAgICAgICByZXNwb25z
ZSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQucmVzcG9uc2UpOworICAgICAgICBkYXRhID0gV1RG
TW92ZShzeW5jTG9hZFJlc3VsdC5kYXRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlmIChhdXRvIHN5bmNMb2FkUmVzdWx0ID0gdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VS
TFNjaGVtZUhhbmRsZXIoZnJhbWVMb2FkZXIsIHJlc291cmNlTG9hZElkZW50aWZpZXIsIHJlcXVl
c3QpKSB7CiAgICAgICAgIFdFQkxPQURFUlNUUkFURUdZX1dJVEhfRlJBTUVMT0FERVJfUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRCgibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVk
IGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIgKGVy
cm9yPSVkKSIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgIGVy
cm9yID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggOWQ5ODg0
MTgzZWM5Li42NTBmNTU1MGE5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgIH07CiAgICAgT3B0aW9uYWw8U3lu
Y0xvYWRSZXN1bHQ+IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVy
KFdlYkNvcmU6OkZyYW1lTG9hZGVyJiwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgU3luY0xvYWRSZXN1bHQgbG9hZERhdGFVUkxT
eW5jaHJvbm91c2x5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZUZyb21SZXNvdXJjZUxvYWRJZGVudGlmaWVy
KHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIGZpbmFsOwogICAgIFZlY3RvcjxXZWJD
b3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gaW50ZXJtZWRpYXRlTG9hZEluZm9y
bWF0aW9uRnJvbVJlc291cmNlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRl
bnRpZmllcikgZmluYWw7Cg==
</data>
<flag name="review"
          id="436521"
          type_id="1"
          status="+"
          setter="aperez"
    />
    <flag name="commit-queue"
          id="436600"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418633</attachid>
            <date>2021-01-28 03:08:25 -0800</date>
            <delta_ts>2021-01-28 03:08:25 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-sync-data-url.diff</filename>
            <type>text/plain</type>
            <size>21837</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyN2YwZmYwNjE1Y2MuLjk0ODU1NTcwODFkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTAxLTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KworICAgICAgICBMb2FkIGRhdGEgVVJMcyBpbiB0aGUgd2ViIHByb2Nlc3MgYWxzbyBmb3Igc3lu
Y2hyb25vdXMgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMDk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8uCisKKyAgICAgICAgUmVtb3ZlIGV4cGVjdGF0aW9ucyBmb3IgdGVzdHMgdGhhdCBhcmUgbm8g
bG9uZ2VyIGNyYXNoaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDIxLTAxLTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjI2ODYxNSk6IGltYWdlcyBmbGlja2VyIG9uIGFwcGxlLmNv
bS9pb3MvaW9zLTE0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMWI4N2Q2MDk1YWNhLi43M2JlMjRjMzFiYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTcyMywxNiArNzIzLDYgQEAgd2Via2l0Lm9yZy9i
LzIxNzI2NyBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItc3Bpbm5pbmct
ZmV0Y2guaHR0cHMKIHdlYmtpdC5vcmcvYi8yMTcyNjcgaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyLXNwaW5uaW5nLWluc3RhbGwuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMjE3MjY3IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci1zcGlubmluZy1tZXNzYWdlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi0j
IFN0YXJ0IG9mIHIyNzE4NzkgcmVncmVzc2lvbnMgKFNvdXBlTWVzc2FnZSBjaGFuZ2VzIGZvciBs
aWJzb3VwMykKLXdlYmtpdC5vcmcvYi8yMjEwMjMgZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5n
LW1hYy5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIyMTAyMyBmYXN0L2VuY29kaW5nL2No
YXItZGVjb2RpbmcuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8yMjEwMjMgc3ZnL2xvYWQt
ZXZlbnQtZGV0YWNoZWQuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8yMjEwMjMgZmFzdC9l
dmVudHMvZXZlbnQtaGFuZGxlci1kZXRhY2hlZC1kb2N1bWVudC5odG1sIFsgQ3Jhc2ggXQotd2Vi
a2l0Lm9yZy9iLzIyMTAyMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxo
dHRwcmVxdWVzdC1zeW5jLWJsb2NrLWRlZmVyLXNjcmlwdHMuaHRtbCBbIENyYXNoIF0KLXdlYmtp
dC5vcmcvYi8yMjEwMjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0
cHJlcXVlc3Qtc3luYy1ibG9jay1zY3JpcHRzLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2Iv
MjIxMDIzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0
LXN5bmMtZGVmYXVsdC1mZWF0dXJlLXBvbGljeS5zdWIuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5v
cmcvYi8yMjEwMjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJl
cXVlc3Qtc3luYy1ub3QtaGFuZy1zY3JpcHRsb2FkZXIuaHRtbCBbIENyYXNoIF0KLQogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFNPVVAgYW5kIE5ldHdvcmtpbmct
cmVsYXRlZCBidWdzCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDFjODA4ZGJkYjkxZC4uYzQyYzY0ZmQ1YjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMjEtMDEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIExvYWQgZGF0YSBVUkxzIGluIHRoZSB3ZWIgcHJvY2VzcyBhbHNvIGZvciBz
eW5jaHJvbm91cyBsb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIwOTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRyaWFuIFBlcmV6IGRlIENh
c3Ryby4KKworICAgICAgICBBZGQgc3luY2hyb25vdXMgQVBJIGZvciBEYXRhVVJMRGVjb2Rlci4g
SXQgbm93IHVzZXMgYSBWZWN0b3I8Y2hhcj4gZm9yIHRoZSBkYXRhIGluc3RlYWQgb2YgU2hhcmVk
QnVmZmVyLiBUaGF0CisgICAgICAgIHdheSwgUmVzb3VyY2VMb2FkZXIgY2FuIGNyZWF0ZSB0aGUg
U2hhcmVkQnVmZmVyIGZyb20gdGhlIGdpdmVuIGRhdGEgYW5kIGxvYWRlciBzdHJhdGVneSBjYW4g
c2ltcGx5IG1vdmUgaXQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOiBBZGQgRGF0YVVSTERl
Y29kZXIuaC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1h
cmsgRGF0YVVSTERlY29kZXIuaCBhcyBwcml2YXRlLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6bG9hZERhdGFV
UkwpOiBBZGFwdCB0byB0aGUgRGF0YVVSTERlY29kZXIgQVBJIGNoYW5nZXMuCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6cGFyc2VNZWRpYVR5cGUpOiBVcGRhdGUgdGhlIGRhdGEgaW5pdGlhbGl6
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlQmFzZTY0KTog
UmV0dXJuIGJvb2wgdG8gaW5kaWNhdGUgc3VjY2VzcyBvciBlcnJvciBhbmQgbW92ZSB0aGUgcmVz
dWx0aW5nIHZlY3RvcgorICAgICAgICBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgU2hhcmVkQnVmZmVy
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OmRlY29kZUVzY2FwZWQpOiBNb3Zl
IHRoZSByZXN1bHRpbmcgdmVjdG9yIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTaGFyZWRCdWZmZXIu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlU3luY2hyb25vdXNseSk6
IEhlbHBlciB0byBkbyB0aGUgYWN0dWFsIGRlY29kaW5nIHN5bmNocm9ub3VzbHkuCisgICAgICAg
IChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKTogVXNlIGRlY29kZVN5bmNocm9ub3Vz
bHkuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKTogU3luY2hyb25v
dXMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmRhdGFVUkxSZXNw
b25zZSk6IENyZWF0ZSBhIFJlc291cmNlUmVzcG9uc2UgZm9yIHRoZSBnaXZlbiB1cmwgYW5kIERh
dGFVUkxEZWNvZGVyOjpSZXN1bHQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2Nh
cGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZVVSTEVzY2FwZVNlcXVlbmNl
c0FzRGF0YSk6IFVzZSBWZWN0b3I8Y2hhcj4gc28gdGhhdCB3ZSBjYW4gYXZvaWQgZGF0YSBjb3Bp
ZXMuCisKIDIwMjEtMDEtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjY4NjE1KTogaW1hZ2VzIGZsaWNrZXIgb24gYXBwbGUuY29t
L2lvcy9pb3MtMTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGE1ODA2MDllNmQwNC4uOWVmNTNjMzk0
M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzOTEsNiArMTM5MSw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRp
YWxTdG9yYWdlLmgKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCiAgICAgcGxhdGZvcm0vbmV0
d29yay9ETlNSZXNvbHZlUXVldWUuaAorICAgIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29k
ZXIuaAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAogICAgIHBsYXRmb3JtL25ldHdv
cmsvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCiAgICAgcGxhdGZvcm0vbmV0d29yay9IVFRQSGVh
ZGVyTWFwLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2MTM3MGZmYzNhOGYuLjc0OTMzMzVlZjM2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgzLDcgKzk4
Myw3IEBACiAJCTM3MUY1M0U5MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRjUz
RTcwRDI3MDRGOTAwRUNFMEQ1IC8qIENTU1VuaWNvZGVSYW5nZVZhbHVlLmggKi87IH07CiAJCTM3
MkFEQTM4MTk3RjQ3QjkwMEZDNTAxRSAvKiBQcm90ZWN0aW9uU3BhY2VDb2NvYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcyQURBMzcxOTdGNDdCOTAw
RkM1MDFFIC8qIFByb3RlY3Rpb25TcGFjZUNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcyQzAwRDkxMjk2MTlGODAwNUM5NTc1IC8qIEZp
bmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzNzJDMDBEODEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzNzJEM0U1NDIxNjU3OEFFMDBD
NUUwMjEgLyogRGF0YVVSTERlY29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0QTAwNzgyMUI4MjBFQzgwMDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rl
ci5oICovOyB9OworCQkzNzJEM0U1NDIxNjU3OEFFMDBDNUUwMjEgLyogRGF0YVVSTERlY29kZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTAwNzgy
MUI4MjBFQzgwMDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MkQzRTU1MjE2NTc4QUUwMEM1RTAyMSAv
KiBTY3JpcHRNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2Fk
ZXIuaCAqLzsgfTsKIAkJMzcyRDNFNTcyMTY1NzhBRTAwQzVFMDIxIC8qIE5hdmlnYXRvckNyZWRl
bnRpYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
N0Q4NDYyNjFGRTg5NUY4MDBDQTM2ODIgLyogTmF2aWdhdG9yQ3JlZGVudGlhbHMuaCAqLzsgfTsK
IAkJMzc1Q0QyMzIxMTlENDNDODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVDRDIzMTExOUQ0M0M4MDBBMkE4
NTkgLyogSHlwaGVuYXRpb24uaCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IGIzNTRlN2FhYWY3OS4uODBkZDE1MWQyZTkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI3MSwxNSArMjcxLDEwIEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OmxvYWREYXRhVVJMKCkKICAgICAgICAgfQogICAgICAgICBpZiAodGhp
cy0+d2FzQ2FuY2VsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGF1dG8mIHJl
c3VsdCA9IGRlY29kZVJlc3VsdC52YWx1ZSgpOwotICAgICAgICBhdXRvIGRhdGFTaXplID0gcmVz
dWx0LmRhdGEgPyByZXN1bHQuZGF0YS0+c2l6ZSgpIDogMDsKLQotICAgICAgICBSZXNvdXJjZVJl
c3BvbnNlIGRhdGFSZXNwb25zZSB7IHVybCwgcmVzdWx0Lm1pbWVUeXBlLCBzdGF0aWNfY2FzdDxs
b25nIGxvbmc+KGRhdGFTaXplKSwgcmVzdWx0LmNoYXJzZXQgfTsKLSAgICAgICAgZGF0YVJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7Ci0gICAgICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQ
U3RhdHVzVGV4dCgiT0siX3MpOwotICAgICAgICBkYXRhUmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZp
ZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgcmVzdWx0LmNvbnRlbnRUeXBlKTsKLSAg
ICAgICAgZGF0YVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5l
dHdvcmspOwotICAgICAgICB0aGlzLT5kaWRSZWNlaXZlUmVzcG9uc2UoZGF0YVJlc3BvbnNlLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGRhdGFTaXplLCBk
YXRhID0gcmVzdWx0LmRhdGEucmVsZWFzZU5vbk51bGwoKV0oKSBtdXRhYmxlIHsKKworICAgICAg
ICBhdXRvIGRhdGFTaXplID0gZGVjb2RlUmVzdWx0LT5kYXRhLnNpemUoKTsKKyAgICAgICAgUmVz
b3VyY2VSZXNwb25zZSBkYXRhUmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlOjpkYXRhVVJMUmVz
cG9uc2UodXJsLCBkZWNvZGVSZXN1bHQudmFsdWUoKSk7CisgICAgICAgIHRoaXMtPmRpZFJlY2Vp
dmVSZXNwb25zZShkYXRhUmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKSwgZGF0YVNpemUsIGRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShXVEZN
b3ZlKGRlY29kZVJlc3VsdC0+ZGF0YSkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF0
aGlzLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpICYmIGRhdGFTaXplICYmIG1fcmVxdWVzdC5odHRw
TWV0aG9kKCkgIT0gIkhFQUQiKQogICAgICAgICAgICAgICAgIHRoaXMtPmRpZFJlY2VpdmVCdWZm
ZXIoV1RGTW92ZShkYXRhKSwgZGF0YVNpemUsIERhdGFQYXlsb2FkV2hvbGVSZXNvdXJjZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29k
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5j
cHAKaW5kZXggZThiZjljMmUxYTg3Li5kOGE5MGI4ODdjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSFRUUFBh
cnNlcnMuaCIKICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgotI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC03MSw4ICs3MCw4IEBAIHN0
YXRpYyBXb3JrUXVldWUmIGRlY29kZVF1ZXVlKCkKIHN0YXRpYyBSZXN1bHQgcGFyc2VNZWRpYVR5
cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiB7CiAgICAgaWYgKE9wdGlvbmFsPFBhcnNlZENv
bnRlbnRUeXBlPiBwYXJzZWRDb250ZW50VHlwZSA9IFBhcnNlZENvbnRlbnRUeXBlOjpjcmVhdGUo
bWVkaWFUeXBlKSkKLSAgICAgICAgcmV0dXJuIHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBl
KCksIHBhcnNlZENvbnRlbnRUeXBlLT5jaGFyc2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJp
YWxpemUoKSwgbnVsbHB0ciB9OwotICAgIHJldHVybiB7ICJ0ZXh0L3BsYWluIl9zLCAiVVMtQVND
SUkiX3MsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVMtQVNDSUkiX3MsIG51bGxwdHIgfTsKKyAgICAg
ICAgcmV0dXJuIHsgcGFyc2VkQ29udGVudFR5cGUtPm1pbWVUeXBlKCksIHBhcnNlZENvbnRlbnRU
eXBlLT5jaGFyc2V0KCksIHBhcnNlZENvbnRlbnRUeXBlLT5zZXJpYWxpemUoKSwgeyB9IH07Cisg
ICAgcmV0dXJuIHsgInRleHQvcGxhaW4iX3MsICJVUy1BU0NJSSJfcywgInRleHQvcGxhaW47Y2hh
cnNldD1VUy1BU0NJSSJfcywgeyB9IH07CiB9CiAKIHN0cnVjdCBEZWNvZGVUYXNrIHsKQEAgLTEz
NSw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nVmlldyBlbmNvZGVkRGF0YTsKICAgICBi
b29sIGlzQmFzZTY0IHsgZmFsc2UgfTsKICAgICBjb25zdCBTY2hlZHVsZUNvbnRleHQgc2NoZWR1
bGVDb250ZXh0OwotICAgIGNvbnN0IERlY29kZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25I
YW5kbGVyOworICAgIERlY29kZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5kbGVyOwog
CiAgICAgUmVzdWx0IHJlc3VsdDsKIH07CkBAIC0xNDksMjQgKzE0OCwyNiBAQCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPERlY29kZVRhc2s+IGNyZWF0ZURlY29kZVRhc2soY29uc3QgVVJMJiB1cmws
IGNvbnN0IFNjaGVkdQogICAgICk7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY29kZUJhc2U2NChEZWNv
ZGVUYXNrJiB0YXNrLCBNb2RlIG1vZGUpCitzdGF0aWMgYm9vbCBkZWNvZGVCYXNlNjQoRGVjb2Rl
VGFzayYgdGFzaywgTW9kZSBtb2RlKQogewogICAgIFZlY3RvcjxjaGFyPiBidWZmZXI7CiAgICAg
aWYgKG1vZGUgPT0gTW9kZTo6Rm9yZ2l2aW5nQmFzZTY0KSB7CiAgICAgICAgIGF1dG8gdW5lc2Nh
cGVkU3RyaW5nID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHRhc2suZW5jb2RlZERhdGEudG9T
dHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICAgICAgaWYgKCFiYXNlNjREZWNvZGUodW5lc2Nh
cGVkU3RyaW5nLCBidWZmZXIsIEJhc2U2NFZhbGlkYXRlUGFkZGluZyB8IEJhc2U2NElnbm9yZVNw
YWNlc0FuZE5ld0xpbmVzIHwgQmFzZTY0RGlzY2FyZFZlcnRpY2FsVGFiKSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewogICAgICAg
ICAvLyBGaXJzdCB0cnkgYmFzZTY0dXJsLgogICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZSh0
YXNrLmVuY29kZWREYXRhLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgYnVmZmVyKSkgewogICAg
ICAgICAgICAgLy8gRGlkbid0IHdvcmssIHRyeSB1bmVzY2FwaW5nIGFuZCBkZWNvZGluZyBhcyBi
YXNlNjQuCiAgICAgICAgICAgICBhdXRvIHVuZXNjYXBlZFN0cmluZyA9IGRlY29kZVVSTEVzY2Fw
ZVNlcXVlbmNlcyh0YXNrLmVuY29kZWREYXRhLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CiAg
ICAgICAgICAgICBpZiAoIWJhc2U2NERlY29kZSh1bmVzY2FwZWRTdHJpbmcsIGJ1ZmZlciwgQmFz
ZTY0SWdub3JlU3BhY2VzQW5kTmV3TGluZXMgfCBCYXNlNjREaXNjYXJkVmVydGljYWxUYWIpKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgYnVmZmVyLnNocmlua1RvRml0KCk7Ci0gICAgdGFzay5yZXN1
bHQuZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSk7CisgICAgdGFz
ay5yZXN1bHQuZGF0YSA9IFdURk1vdmUoYnVmZmVyKTsKKworICAgIHJldHVybiB0cnVlOwogfQog
CiBzdGF0aWMgdm9pZCBkZWNvZGVFc2NhcGVkKERlY29kZVRhc2smIHRhc2spCkBAIC0xNzYsNyAr
MTc3LDIxIEBAIHN0YXRpYyB2b2lkIGRlY29kZUVzY2FwZWQoRGVjb2RlVGFzayYgdGFzaykKICAg
ICBhdXRvIGJ1ZmZlciA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YSh0YXNrLmVuY29k
ZWREYXRhLCBlbmNvZGluZyk7CiAKICAgICBidWZmZXIuc2hyaW5rVG9GaXQoKTsKLSAgICB0YXNr
LnJlc3VsdC5kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpKTsKKyAg
ICB0YXNrLnJlc3VsdC5kYXRhID0gV1RGTW92ZShidWZmZXIpOworfQorCitzdGF0aWMgT3B0aW9u
YWw8UmVzdWx0PiBkZWNvZGVTeW5jaHJvbm91c2x5KERlY29kZVRhc2smIHRhc2ssIE1vZGUgbW9k
ZSkKK3sKKyAgICBpZiAoIXRhc2sucHJvY2VzcygpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgaWYgKHRhc2suaXNCYXNlNjQpIHsKKyAgICAgICAgaWYgKCFkZWNvZGVCYXNl
NjQodGFzaywgbW9kZSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0g
ZWxzZQorICAgICAgICBkZWNvZGVFc2NhcGVkKHRhc2spOworCisgICAgcmV0dXJuIFdURk1vdmUo
dGFzay5yZXN1bHQpOwogfQogCiB2b2lkIGRlY29kZShjb25zdCBVUkwmIHVybCwgY29uc3QgU2No
ZWR1bGVDb250ZXh0JiBzY2hlZHVsZUNvbnRleHQsIE1vZGUgbW9kZSwgRGVjb2RlQ29tcGxldGlv
bkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE4NCwyMyArMTk5LDE0IEBAIHZvaWQg
ZGVjb2RlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY2hlZHVsZUNvbnRleHQmIHNjaGVkdWxlQ29u
dGV4dCwgTW9kZSBtb2RlLCBECiAgICAgQVNTRVJUKHVybC5wcm90b2NvbElzRGF0YSgpKTsKIAog
ICAgIGRlY29kZVF1ZXVlKCkuZGlzcGF0Y2goW2RlY29kZVRhc2sgPSBjcmVhdGVEZWNvZGVUYXNr
KHVybCwgc2NoZWR1bGVDb250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSksIG1vZGVd
KCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChkZWNvZGVUYXNrLT5wcm9jZXNzKCkpIHsKLSAgICAg
ICAgICAgIGlmIChkZWNvZGVUYXNrLT5pc0Jhc2U2NCkKLSAgICAgICAgICAgICAgICBkZWNvZGVC
YXNlNjQoKmRlY29kZVRhc2ssIG1vZGUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGRlY29kZUVzY2FwZWQoKmRlY29kZVRhc2spOwotICAgICAgICB9CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gZGVjb2RlU3luY2hyb25vdXNseSgqZGVjb2RlVGFzaywgbW9kZSk7CiAKICNpZiBV
U0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICAgICAgYXV0byBzY2hlZHVsZWRQYWlycyA9IGRlY29k
ZVRhc2stPnNjaGVkdWxlQ29udGV4dC5zY2hlZHVsZWRQYWlyczsKICNlbmRpZgogCi0gICAgICAg
IGF1dG8gY2FsbENvbXBsZXRpb25IYW5kbGVyID0gW2RlY29kZVRhc2sgPSBXVEZNb3ZlKGRlY29k
ZVRhc2spXSB7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZVRhc2stPnJlc3VsdC5kYXRhKSB7Ci0g
ICAgICAgICAgICAgICAgZGVjb2RlVGFzay0+Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWNvZGVUYXNr
LT5jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRlY29kZVRhc2stPnJlc3VsdCkpOworICAgICAg
ICBhdXRvIGNhbGxDb21wbGV0aW9uSGFuZGxlciA9IFtyZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShkZWNvZGVUYXNrLT5jb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdCkpOwogICAgICAgICB9OwogCiAjaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCkBAIC0yMTEs
NSArMjE3LDEzIEBAIHZvaWQgZGVjb2RlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY2hlZHVsZUNv
bnRleHQmIHNjaGVkdWxlQ29udGV4dCwgTW9kZSBtb2RlLCBECiAgICAgfSk7CiB9CiAKK09wdGlv
bmFsPFJlc3VsdD4gZGVjb2RlKGNvbnN0IFVSTCYgdXJsLCBNb2RlIG1vZGUpCit7CisgICAgQVNT
RVJUKHVybC5wcm90b2NvbElzRGF0YSgpKTsKKworICAgIGF1dG8gdGFzayA9IGNyZWF0ZURlY29k
ZVRhc2sodXJsLCB7IH0sIG51bGxwdHIpOworICAgIHJldHVybiBkZWNvZGVTeW5jaHJvbm91c2x5
KCp0YXNrLCBtb2RlKTsKIH0KLX0KKworfSAvLyBuYW1lc3BhY2UgRGF0YVVSTERlY29kZXIKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvRGF0YVVSTERlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRGF0YVVSTERlY29kZXIuaAppbmRleCAzZDBhNzJlNTY1ZDUuLjgzNTI5ZTZhYWYxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuaApA
QCAtNDEsNyArNDEsNyBAQCBzdHJ1Y3QgUmVzdWx0IHsKICAgICBTdHJpbmcgbWltZVR5cGU7CiAg
ICAgU3RyaW5nIGNoYXJzZXQ7CiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwotICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGRhdGE7CisgICAgVmVjdG9yPGNoYXI+IGRhdGE7CiB9OwogCiB1c2luZyBE
ZWNvZGVDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8UmVz
dWx0Pik+OwpAQCAtNTMsNiArNTMsNyBAQCBzdHJ1Y3QgU2NoZWR1bGVDb250ZXh0IHsKIAogZW51
bSBjbGFzcyBNb2RlIHsgTGVnYWN5LCBGb3JnaXZpbmdCYXNlNjQgfTsKIHZvaWQgZGVjb2RlKGNv
bnN0IFVSTCYsIGNvbnN0IFNjaGVkdWxlQ29udGV4dCYsIE1vZGUsIERlY29kZUNvbXBsZXRpb25I
YW5kbGVyJiYpOworV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UmVzdWx0PiBkZWNvZGUoY29uc3Qg
VVJMJiwgTW9kZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRleCA5ZDRiMzIyZGU0OTAuLjFm
MDkyZDhkNThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlQmFzZS5oIgogCiAjaW5jbHVkZSAiQ2FjaGVWYWxpZGF0aW9uLmgi
CisjaW5jbHVkZSAiRGF0YVVSTERlY29kZXIuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMu
aCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKQEAgLTE0OCw2ICsxNDksMTcgQEAgUmVzb3VyY2VSZXNwb25zZSBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6c3ludGhldGljUmVkaXJlY3RSZXNwb25zZShjb25zdCBVUkwmIGZyb20KICAgICByZXR1
cm4gcmVkaXJlY3RSZXNwb25zZTsKIH0KIAorUmVzb3VyY2VSZXNwb25zZSBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTo6ZGF0YVVSTFJlc3BvbnNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBEYXRhVVJMRGVj
b2Rlcjo6UmVzdWx0JiByZXN1bHQpCit7CisgICAgUmVzb3VyY2VSZXNwb25zZSBkYXRhUmVzcG9u
c2UgeyB1cmwsIHJlc3VsdC5taW1lVHlwZSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihyZXN1bHQu
ZGF0YS5zaXplKCkpLCByZXN1bHQuY2hhcnNldCB9OworICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQ
U3RhdHVzQ29kZSgyMDApOworICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dCgiT0si
X3MpOworICAgIGRhdGFSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNvbnRlbnRUeXBlLCByZXN1bHQuY29udGVudFR5cGUpOworICAgIGRhdGFSZXNwb25zZS5zZXRT
b3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKKworICAgIHJldHVybiBk
YXRhUmVzcG9uc2U7Cit9CisKIFJlc291cmNlUmVzcG9uc2UgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OmZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUGVyZm9ybUV4cG9zZUFs
bEhlYWRlcnNDaGVjayBwZXJmb3JtQ2hlY2spCiB7CiAgICAgaWYgKHJlc3BvbnNlLnRhaW50aW5n
KCkgPT0gVGFpbnRpbmc6Ok9wYXF1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCmluZGV4IGRkYWIwOGEyNDdkYi4u
MGU5N2ZlZTljNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC0zOSw2ICszOSwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK25hbWVzcGFjZSBEYXRhVVJMRGVjb2RlciB7CitzdHJ1Y3QgUmVzdWx0
OworfQorCiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCiBib29sIGlzU2NyaXB0QWxsb3dlZEJ5
Tm9zbmlmZihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CkBAIC0yMTEsNiArMjE1LDggQEAgcHVi
bGljOgogCiAgICAgYm9vbCBjb250YWluc0ludmFsaWRIVFRQSGVhZGVycygpIGNvbnN0OwogCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlc291cmNlUmVzcG9uc2UgZGF0YVVSTFJlc3BvbnNl
KGNvbnN0IFVSTCYsIGNvbnN0IERhdGFVUkxEZWNvZGVyOjpSZXN1bHQmKTsKKwogcHJvdGVjdGVk
OgogICAgIGVudW0gSW5pdExldmVsIHsKICAgICAgICAgVW5pbml0aWFsaXplZCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmlu
ZGV4IDE0Y2Y0MTUzNmYzMC4uNmU5MTUxOTI5MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAgLTE1NCwxMSArMTU0
LDExIEBAIFN0cmluZyBkZWNvZGVFc2NhcGVTZXF1ZW5jZXMoU3RyaW5nVmlldyBzdHJpbmcsIGNv
bnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OwogfQogCi1pbmxpbmUgVmVjdG9yPHVpbnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0Fz
RGF0YShTdHJpbmdWaWV3IHN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKK2lu
bGluZSBWZWN0b3I8Y2hhcj4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1Zp
ZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewogICAgIEFTU0VSVChl
bmNvZGluZy5pc1ZhbGlkKCkpOwogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBW
ZWN0b3I8Y2hhcj4gcmVzdWx0OwogICAgIHNpemVfdCBkZWNvZGVkUG9zaXRpb24gPSAwOwogICAg
IHNpemVfdCBzZWFyY2hQb3NpdGlvbiA9IDA7CiAgICAgd2hpbGUgKHRydWUpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggN2JkOGQ2MjIxMDgxLi5kZGM5OTFmMGJlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMjEtMDEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIExvYWQgZGF0YSBVUkxzIGluIHRoZSB3ZWIgcHJvY2VzcyBhbHNvIGZvciBzeW5j
aHJvbm91cyBsb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwOTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
by4KKworICAgICAgICBJbiByMjcxODc5IEkgcmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3IgZGF0YSBV
UkxzIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZm9yIHNvdXAsIGFzc3VtaW5nIGRhdGEgVVJMcyB3
ZXJlIGFsd2F5cworICAgICAgICBsb2FkZWQgZnJvbSB0aGUgd2ViIHByb2Nlc3MsIGJ1dCB0aGF0
J3Mgbm90IHRoZSBjYXNlIGZvciBzeW5jaHJvbm91cyBsb2Fkcy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QpOiBTY2hlZHVsZSBhbiBlcnJvciBp
ZiBVUkwgaXMgbm90IGZpbGUgb3IgSFRUUCBmYW1pbHkuCisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWREYXRhVVJMU3luY2hyb25vdXNseSk6IEhlbHBlciB0byBsb2FkIGEgRGF0
YSBVUkwgc3luY2hyb25vdXNseS4KKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOiBDYWxsIGxvYWREYXRhVVJMU3luY2hyb25vdXNs
eSBmb3IgZGF0YSBVUkxzLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5oOgorCiAyMDIxLTAxLTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBhZGQgYWNjZXNzaWJpbGl0eSBpbWFnZSBleHRyYWN0aW9uIGNv
bnRleHRtZW51IGl0ZW0gZm9yIHJldmVhbGluZyBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRl
eCAyOGM2M2IwYTcyMDcuLmRlMDNjNjZmMDliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMTEz
LDYgKzExMywxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2FzQmxvY2tpbmdDbwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSkgeworICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzb3VwVVJJ
ID0gbV9jdXJyZW50UmVxdWVzdC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgaWYgKCFzb3VwVVJJKSB7
CiAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
aW5kZXggN2M1NzY4YTViOGYwLi43ZDNkOWUzMTI5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVu
dFNlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVVJMRGVjb2Rlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KQEAgLTUyNyw2ICs1MjgsMjYgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdChGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK1dlYkxvYWRlclN0cmF0ZWd5OjpTeW5jTG9hZFJlc3VsdCBXZWJMb2FkZXJTdHJhdGVneTo6
bG9hZERhdGFVUkxTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICBhdXRvIG1vZGUgPSBEYXRhVVJMRGVjb2Rlcjo6TW9kZTo6TGVnYWN5OworICAgIGlm
IChyZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpGZXRj
aCkKKyAgICAgICAgbW9kZSA9IERhdGFVUkxEZWNvZGVyOjpNb2RlOjpGb3JnaXZpbmdCYXNlNjQ7
CisKKyAgICBTeW5jTG9hZFJlc3VsdCByZXN1bHQ7CisgICAgYXV0byBkZWNvZGVSZXN1bHQgPSBE
YXRhVVJMRGVjb2Rlcjo6ZGVjb2RlKHJlcXVlc3QudXJsKCksIG1vZGUpOworICAgIGlmICghZGVj
b2RlUmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWREYXRhVVJM
U3luY2hyb25vdXNseTogZGVjb2Rpbmcgb2YgZGF0YSBmYWlsZWQiKTsKKyAgICAgICAgcmVzdWx0
LmVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisKKyAgICByZXN1bHQucmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlOjpk
YXRhVVJMUmVzcG9uc2UocmVxdWVzdC51cmwoKSwgZGVjb2RlUmVzdWx0LnZhbHVlKCkpOworICAg
IHJlc3VsdC5kYXRhID0gV1RGTW92ZShkZWNvZGVSZXN1bHQtPmRhdGEpOworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogT3B0aW9uYWw8V2ViTG9hZGVyU3RyYXRlZ3k6OlN5bmNMb2FkUmVzdWx0
PiBXZWJMb2FkZXJTdHJhdGVneTo6dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVt
ZUhhbmRsZXIoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRv
KiB3ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2Fk
ZXIuY2xpZW50KCkpOwpAQCAtNTcwLDYgKzU5MSwxNSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5z
aQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHJlcXVlc3QudXJsKCkucHJvdG9j
b2xJc0RhdGEoKSkgeworICAgICAgICBXRUJMT0FERVJTVFJBVEVHWV9XSVRIX0ZSQU1FTE9BREVS
X1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6
IFVSTCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIik7CisgICAgICAgIGF1dG8gc3luY0xvYWRSZXN1
bHQgPSBsb2FkRGF0YVVSTFN5bmNocm9ub3VzbHkocmVxdWVzdCk7CisgICAgICAgIGVycm9yID0g
V1RGTW92ZShzeW5jTG9hZFJlc3VsdC5lcnJvcik7CisgICAgICAgIHJlc3BvbnNlID0gV1RGTW92
ZShzeW5jTG9hZFJlc3VsdC5yZXNwb25zZSk7CisgICAgICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNM
b2FkUmVzdWx0LmRhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGF1dG8g
c3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFu
ZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVzdCkpIHsKICAg
ICAgICAgV0VCTE9BREVSU1RSQVRFR1lfV0lUSF9GUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKCJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0
cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAoZXJyb3I9JWQpIiwg
c3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZN
b3ZlKHN5bmNMb2FkUmVzdWx0LT5lcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAwNGRmNDhmZWQzNmUuLmIy
M2Q1YjhhOWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgVmVjdG9yPGNoYXI+IGRhdGE7CiAgICAgfTsKICAgICBPcHRpb25hbDxTeW5jTG9hZFJlc3Vs
dD4gdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoV2ViQ29yZTo6
RnJhbWVMb2FkZXImLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICBTeW5jTG9hZFJlc3VsdCBsb2FkRGF0YVVSTFN5bmNocm9ub3Vz
bHkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlRnJvbVJlc291cmNlTG9hZElkZW50aWZpZXIodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllcikgZmluYWw7CiAgICAgVmVjdG9yPFdlYkNvcmU6Ok5ldHdv
cmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uPiBpbnRlcm1lZGlhdGVMb2FkSW5mb3JtYXRpb25Gcm9t
UmVzb3VyY2VMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSBm
aW5hbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>