<?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>207618</bug_id>
          
          <creation_ts>2020-02-12 01:55:10 -0800</creation_ts>
          <short_desc>Shrink CachedResource</short_desc>
          <delta_ts>2021-04-03 13:04:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1617902</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 01:55:10 -0800</bug_when>
    <thetext>Shrink CachedResource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617903</commentid>
    <comment_count>1</comment_count>
      <attachid>390499</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 01:57:54 -0800</bug_when>
    <thetext>Created attachment 390499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617904</commentid>
    <comment_count>2</comment_count>
      <attachid>390500</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 02:04:51 -0800</bug_when>
    <thetext>Created attachment 390500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618145</commentid>
    <comment_count>3</comment_count>
      <attachid>390500</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-12 11:44:04 -0800</bug_when>
    <thetext>Comment on attachment 390500
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        For each enum class, we define `bitsOfXXX` value, which indicates # of bits to represent it. And using

Let&apos;s replace bitsOfXXX with XXXBitWidth to be consistent with https://bugs.webkit.org/show_bug.cgi?id=207616.

&gt; Source/WTF/wtf/Markable.h:150
&gt; +    Optional&lt;T&gt; asOptional() const
&gt; +    {
&gt; +        if (bool(*this))
&gt; +            return m_value;
&gt; +        return WTF::nullopt;
&gt; +    }

This is identical to the cast operator above.  Can you implement this in terms of the cast operator or better yet, implement the cast operator in term of asOptional()?

&gt; Source/WebCore/loader/ResourceLoaderOptions.h:49
&gt; +static constexpr unsigned bitsOfSendCallbackPolicy = 1;

Let&apos;s call this sendCallbackPolicyBitWidth.

&gt; Source/WebCore/loader/ResourceLoaderOptions.h:57
&gt; +static constexpr unsigned bitsOfContentSniffingPolicy = 1;

Ditto: contentSniffingPolicyBitWidth.

&gt; Source/WebCore/loader/ResourceLoaderOptions.h:63
&gt; +static constexpr unsigned bitsOfDataBufferingPolicy = 1;

Ditto here and the others below.

&gt; Source/WebCore/loader/cache/CachedResource.h:94
&gt; +    static constexpr unsigned bitsOfType = 5;
&gt; +    static_assert(static_cast&lt;unsigned&gt;(Type::LastType) &lt;= ((1U &lt;&lt; bitsOfType) - 1));

nit: Let&apos;s call this typeBitWidth instead.

&gt; Source/WebCore/loader/cache/CachedResource.h:104
&gt; +    static constexpr unsigned bitsOfStatus = 3;
&gt; +    static_assert(static_cast&lt;unsigned&gt;(DecodeError) &lt;= ((1ULL &lt;&lt; bitsOfStatus) - 1));

Ditto: statusBitWidth.

&gt; Source/WebCore/loader/cache/CachedResource.h:150
&gt; +    static constexpr unsigned bitsOfPreloadResult = 2;

Ditto: preloadResultBitWidth.

&gt; Source/WebCore/platform/network/ResourceLoadPriority.h:40
&gt; +static constexpr unsigned bitsOfResourceLoadPriority = 3;

Ditto: resourceLoadPriorityBitWidth.

&gt; Source/WebCore/platform/network/ResourceResponseBase.h:51
&gt; +    static constexpr unsigned bitsOfType = 3;

Ditto: typeBitWidth.

&gt; Source/WebCore/platform/network/ResourceResponseBase.h:53
&gt; +    static constexpr unsigned bitsOfTainting = 2;

Ditto: taintingBitWidth.

&gt; Source/WebCore/platform/network/StoredCredentialsPolicy.h:35
&gt; +static constexpr unsigned bitsOfStoredCredentialsPolicy = 2;

Ditto: storedCredentialsPolicyBitWidth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618204</commentid>
    <comment_count>4</comment_count>
      <attachid>390500</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 13:55:50 -0800</bug_when>
    <thetext>Comment on attachment 390500
Patch

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

Thanks!

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        For each enum class, we define `bitsOfXXX` value, which indicates # of bits to represent it. And using
&gt; 
&gt; Let&apos;s replace bitsOfXXX with XXXBitWidth to be consistent with https://bugs.webkit.org/show_bug.cgi?id=207616.

Talked with Mark, replacing it with bitWidthOfXXX.

&gt;&gt; Source/WTF/wtf/Markable.h:150
&gt;&gt; +    }
&gt; 
&gt; This is identical to the cast operator above.  Can you implement this in terms of the cast operator or better yet, implement the cast operator in term of asOptional()?

OK, implementing it via cast operator.

&gt;&gt; Source/WebCore/loader/ResourceLoaderOptions.h:49
&gt;&gt; +static constexpr unsigned bitsOfSendCallbackPolicy = 1;
&gt; 
&gt; Let&apos;s call this sendCallbackPolicyBitWidth.

Fixed.

&gt;&gt; Source/WebCore/loader/ResourceLoaderOptions.h:57
&gt;&gt; +static constexpr unsigned bitsOfContentSniffingPolicy = 1;
&gt; 
&gt; Ditto: contentSniffingPolicyBitWidth.

Fixed.

&gt;&gt; Source/WebCore/loader/ResourceLoaderOptions.h:63
&gt;&gt; +static constexpr unsigned bitsOfDataBufferingPolicy = 1;
&gt; 
&gt; Ditto here and the others below.

Fixed.

&gt;&gt; Source/WebCore/loader/cache/CachedResource.h:94
&gt;&gt; +    static_assert(static_cast&lt;unsigned&gt;(Type::LastType) &lt;= ((1U &lt;&lt; bitsOfType) - 1));
&gt; 
&gt; nit: Let&apos;s call this typeBitWidth instead.

Fixed.

&gt;&gt; Source/WebCore/loader/cache/CachedResource.h:104
&gt;&gt; +    static_assert(static_cast&lt;unsigned&gt;(DecodeError) &lt;= ((1ULL &lt;&lt; bitsOfStatus) - 1));
&gt; 
&gt; Ditto: statusBitWidth.

Fixed.

&gt;&gt; Source/WebCore/loader/cache/CachedResource.h:150
&gt;&gt; +    static constexpr unsigned bitsOfPreloadResult = 2;
&gt; 
&gt; Ditto: preloadResultBitWidth.

Fixed.

&gt;&gt; Source/WebCore/platform/network/ResourceLoadPriority.h:40
&gt;&gt; +static constexpr unsigned bitsOfResourceLoadPriority = 3;
&gt; 
&gt; Ditto: resourceLoadPriorityBitWidth.

Fixed.

&gt;&gt; Source/WebCore/platform/network/ResourceResponseBase.h:51
&gt;&gt; +    static constexpr unsigned bitsOfType = 3;
&gt; 
&gt; Ditto: typeBitWidth.

Fixed.

&gt;&gt; Source/WebCore/platform/network/ResourceResponseBase.h:53
&gt;&gt; +    static constexpr unsigned bitsOfTainting = 2;
&gt; 
&gt; Ditto: taintingBitWidth.

Fixed.

&gt;&gt; Source/WebCore/platform/network/StoredCredentialsPolicy.h:35
&gt;&gt; +static constexpr unsigned bitsOfStoredCredentialsPolicy = 2;
&gt; 
&gt; Ditto: storedCredentialsPolicyBitWidth.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618209</commentid>
    <comment_count>5</comment_count>
      <attachid>390500</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 13:58:23 -0800</bug_when>
    <thetext>Comment on attachment 390500
Patch

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

&gt; Source/WebCore/loader/cache/CachedImage.h:188
&gt; +    unsigned m_updateImageDataCount : 3;

Initializer of this is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618236</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 14:51:26 -0800</bug_when>
    <thetext>Committed r256482: &lt;https://trac.webkit.org/changeset/256482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618237</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-12 14:52:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/59402466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746815</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-03 13:04:33 -0700</bug_when>
    <thetext>*** Bug 187460 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390499</attachid>
            <date>2020-02-12 01:57:54 -0800</date>
            <delta_ts>2020-02-12 02:04:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207618-20200212015753.patch</filename>
            <type>text/plain</type>
            <size>33222</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJkMTIwYWVkNTVjMzVmZmVjODk5YWMz
NTFmNzAwNWI3ZWU4ZjkyZDkuLjliM2U1MjljODdjODY1MTMyZmE0ZjIwZTM2MjdjN2M5M2U3ODA5
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDItMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaHJpbmsgQ2FjaGVkUmVzb3VyY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzYxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL01hcmthYmxlLmg6
CisgICAgICAgIChXVEY6Ok1hcmthYmxlOjphc09wdGlvbmFsIGNvbnN0KTogQWRkIGhlbHBlciBt
ZXRob2QgdG8gZ2V0IE9wdGlvbmFsIGVhc2lseSBmcm9tIE1hcmthYmxlLgorICAgICAgICAqIHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpPYmplY3RJZGVudGlm
aWVyOjpNYXJrYWJsZVRyYWl0czo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Ok9iamVjdElk
ZW50aWZpZXI6Ok9iamVjdElkZW50aWZpZXIpOiBBZGQgTWFya2FibGVUcmFpdHMgZm9yIE9iamVj
dElkZW50aWZpZXIuCisKIDIwMjAtMDItMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBpbi1iYW5kIFZUVCBjYXB0aW9ucyB3aGVuIGxv
YWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U5NWY3MGVjZjY0
YTllODViMmIxYTVjYzQ4ZTM5NzMxMDAwM2FlNi4uZThhZTg1OWNjNzIxNzJjZTlkN2Y2NjdjYjE0
NDY4YWI3N2U5NTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAyLTEyICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rIENhY2hl
ZFJlc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHNocmlua3Mgc2l6ZW9mKENhY2hlZFJlc291cmNlKSBieSA4MCBieXRlcyBi
eSBhZ2dyZXNzaXZlbHkgdXNpbmcgYml0LWZpZWxkcyBhbmQgTWFya2FibGU8Pi4KKyAgICAgICAg
Rm9yIGVhY2ggZW51bSBjbGFzcywgd2UgZGVmaW5lIGBiaXRzT2ZYWFhgIHZhbHVlLCB3aGljaCBp
bmRpY2F0ZXMgIyBvZiBiaXRzIHRvIHJlcHJlc2VudCBpdC4gQW5kIHVzaW5nCisgICAgICAgIHRo
aXMgdmFsdWUgZm9yIGJpdC1maWVsZCdzIHdpZHRoLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIGxvYWRlci9GZXRjaE9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlv
bnM6OlJlc291cmNlTG9hZGVyT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlck9wdGlvbnM6OmxvYWRlZEZyb21PcGFxdWVTb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2Fj
aGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OnNob3VsZERlZmVyVXBk
YXRlSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRV
cGRhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6
OmZpbmlzaCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2V0U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczo6TWFya2FibGVUcmFp
dHM6OmlzRW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnM6Ok1hcmthYmxlVHJhaXRzOjplbXB0eVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczo6Q29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OlJlc291cmNlUmVxdWVzdEJh
c2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg6CisK
IDIwMjAtMDItMTEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIzNjAyNSk6IENvcnJlY3QgZmxha3kgV2ViR0wyIHRlc3QgZmFpbHVy
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hcmthYmxlLmggYi9Tb3VyY2UvV1RGL3d0
Zi9NYXJrYWJsZS5oCmluZGV4IDlhYjIyMmJlOGIzMWZmN2E1MzNmN2MwMzhjMmVlNGE0NTc2NmY0
MjAuLjQwM2MzM2UxNjMzOGQxMzkyYWVkZTQ4Mjk5ZDFiM2Q0YTA1NTlhNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01hcmthYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvTWFya2FibGUu
aApAQCAtMTQyLDYgKzE0MiwxMyBAQCBjbGFzcyBNYXJrYWJsZSB7CiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgfQogCisgICAgT3B0aW9uYWw8VD4gYXNPcHRpb25hbCgpIGNvbnN0
CisgICAgeworICAgICAgICBpZiAoYm9vbCgqdGhpcykpCisgICAgICAgICAgICByZXR1cm4gbV92
YWx1ZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKIHByaXZhdGU6CiAg
ICAgVCBtX3ZhbHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50
aWZpZXIuaCBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaAppbmRleCBjMWRkNDNl
ODBlZDZlYTc0ZTRiM2E4ZTI3NDY2OTljMmZiZjEzYzJiLi5hMTkxMjEwNTlmMmNkN2FhMjcyMWM4
ZGRlM2M4ZjMwNDVlMDIyNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVu
dGlmaWVyLmgKKysrIGIvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCkBAIC05Niw2
ICs5NiwxOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPYmplY3RJZGVudGlmaWVyIDog
cHJpdmF0ZSBPYmplY3RJZGVudGlmaWVyQmFzZSB7CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51
bWJlcihtX2lkZW50aWZpZXIpOwogICAgIH0KIAorICAgIHN0cnVjdCBNYXJrYWJsZVRyYWl0cyB7
CisgICAgICAgIHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShPYmplY3RJZGVudGlmaWVyIGlkZW50
aWZpZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhaWRlbnRpZmllci5tX2lkZW50
aWZpZXI7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29uc3RleHByIE9iamVjdElkZW50
aWZpZXIgZW1wdHlWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBPYmplY3RJ
ZGVudGlmaWVyKCk7CisgICAgICAgIH0KKyAgICB9OworCiBwcml2YXRlOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGZyaWVuZCBPYmplY3RJZGVudGlmaWVyPFU+IG1ha2VPYmplY3RJZGVudGlm
aWVyKHVpbnQ2NF90KTsKICAgICBmcmllbmQgc3RydWN0IEhhc2hUcmFpdHM8T2JqZWN0SWRlbnRp
Zmllcj47CkBAIC0xMDQsNyArMTE2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT2Jq
ZWN0SWRlbnRpZmllciA6IHByaXZhdGUgT2JqZWN0SWRlbnRpZmllckJhc2UgewogICAgIHN0YXRp
YyB1aW50NjRfdCBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRp
Zmllcih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBpZGVudGlmaWVyICYmIGlkZW50aWZp
ZXIgIT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIAotICAgIGV4cGxpY2l0IE9iamVjdElk
ZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikKKyAgICBleHBsaWNpdCBjb25zdGV4cHIgT2Jq
ZWN0SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQogICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25z
LmgKaW5kZXggOTdjNDgzYmI5MDk0ZTQ5MDdkZjZlNmM0MTMyM2ZjMzM1YjMwZDQ4Ni4uZDZhYjQ2
YjQ4MWE3Nzg0MDE1OTMzNmQ4ODZjNTc5YTM4NzUzMjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
ZXRjaE9wdGlvbnMuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDx3dGYvTWFy
a2FibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTgsNyArNTksNyBAQCBzdHJ1Y3QgRmV0Y2hPcHRpb25zIHsKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSB7IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyB9
OwogICAgIGJvb2wga2VlcEFsaXZlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgaW50ZWdyaXR5Owot
ICAgIE9wdGlvbmFsPERvY3VtZW50SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBN
YXJrYWJsZTxEb2N1bWVudElkZW50aWZpZXIsIERvY3VtZW50SWRlbnRpZmllcjo6TWFya2FibGVU
cmFpdHM+IGNsaWVudElkZW50aWZpZXI7CiB9OwogCiBpbmxpbmUgRmV0Y2hPcHRpb25zOjpGZXRj
aE9wdGlvbnMoRGVzdGluYXRpb24gZGVzdGluYXRpb24sIE1vZGUgbW9kZSwgQ3JlZGVudGlhbHMg
Y3JlZGVudGlhbHMsIENhY2hlIGNhY2hlLCBSZWRpcmVjdCByZWRpcmVjdCwgUmVmZXJyZXJQb2xp
Y3kgcmVmZXJyZXJQb2xpY3ksIFN0cmluZyYmIGludGVncml0eSwgYm9vbCBrZWVwQWxpdmUpCkBA
IC0yMjgsNyArMjI5LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIGJvb2wgRmV0
Y2hPcHRpb25zOjpkZWNvZGVQZXJzaXN0ZW50KERlY29kZXImIGRlY28KIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IGlubGluZSB2b2lkIEZldGNoT3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlUGVyc2lzdGVudChlbmNvZGVyKTsKLSAgICBlbmNvZGVy
IDw8IGNsaWVudElkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyLmFz
T3B0aW9uYWwoKTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFs
PEZldGNoT3B0aW9ucz4gRmV0Y2hPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaAppbmRleCA0YTQ5
MDA4MGY4Y2ZmMTdmN2UxMGI4MmQzM2IxYjk4NDYxMWFhY2QzLi5jY2Q2N2I3ZTI3N2NjZmUwZWEw
MzAwNzMxNjY3NTZkZGRhZGNmM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyT3B0aW9ucy5oCkBAIC00Niw2ICs0Niw3IEBAIGVudW0gY2xhc3MgU2VuZENhbGxi
YWNrUG9saWN5IDogdWludDhfdCB7CiAgICAgU2VuZENhbGxiYWNrcywKICAgICBEb05vdFNlbmRD
YWxsYmFja3MKIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlNlbmRDYWxsYmFj
a1BvbGljeSA9IDE7CiAKIC8vIEZJWE1FOiBUaGVzZSBvcHRpb25zIGFyZSBuYW1lZCBwb29ybHku
IFdlIG9ubHkgaW1wbGVtZW50IGZvcmNlIGRpc2FibGluZyBjb250ZW50IHNuaWZmaW5nLCBub3Qg
ZW5hYmxpbmcgaXQsCiAvLyBhbmQgZXZlbiB0aGF0IG9ubHkgb24gc29tZSBwbGF0Zm9ybXMuCkBA
IC01Myw2MiArNTQsNzQgQEAgZW51bSBjbGFzcyBDb250ZW50U25pZmZpbmdQb2xpY3kgOiB1aW50
OF90IHsKICAgICBTbmlmZkNvbnRlbnQsCiAgICAgRG9Ob3RTbmlmZkNvbnRlbnQKIH07CitzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZkNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IDE7CiAK
IGVudW0gY2xhc3MgRGF0YUJ1ZmZlcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIEJ1ZmZlckRh
dGEsCiAgICAgRG9Ob3RCdWZmZXJEYXRhCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBi
aXRzT2ZEYXRhQnVmZmVyaW5nUG9saWN5ID0gMTsKIAogZW51bSBjbGFzcyBTZWN1cml0eUNoZWNr
UG9saWN5IDogdWludDhfdCB7CiAgICAgU2tpcFNlY3VyaXR5Q2hlY2ssCiAgICAgRG9TZWN1cml0
eUNoZWNrCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZTZWN1cml0eUNoZWNr
UG9saWN5ID0gMTsKIAogZW51bSBjbGFzcyBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgOiB1aW50OF90
IHsKICAgICBJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLAogICAgIERvTm90SW5jbHVkZUNlcnRpZmlj
YXRlSW5mbwogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mQ2VydGlmaWNhdGVJ
bmZvUG9saWN5ID0gMTsKIAogZW51bSBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uIDogdWludDhfdCB7CiAgICAgU2tpcFBvbGljeUNoZWNrLAogICAgIERvUG9saWN5Q2hlY2sK
IH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZkNvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb24gPSAxOwogCiBlbnVtIGNsYXNzIERlZmVyc0xvYWRpbmdQb2xpY3kgOiB1aW50
OF90IHsKICAgICBBbGxvd0RlZmVyc0xvYWRpbmcsCiAgICAgRGlzYWxsb3dEZWZlcnNMb2FkaW5n
CiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZEZWZlcnNMb2FkaW5nUG9saWN5
ID0gMTsKIAogZW51bSBjbGFzcyBDYWNoaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgQWxsb3dD
YWNoaW5nLAogICAgIERpc2FsbG93Q2FjaGluZwogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgYml0c09mQ2FjaGluZ1BvbGljeSA9IDE7CiAKIGVudW0gY2xhc3MgQ2xpZW50Q3JlZGVudGlh
bFBvbGljeSA6IHVpbnQ4X3QgewogICAgIENhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLAog
ICAgIE1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBiaXRzT2ZDbGllbnRDcmVkZW50aWFsUG9saWN5ID0gMTsKIAogZW51bSBjbGFzcyBTYW1l
T3JpZ2luRGF0YVVSTEZsYWcgOiB1aW50OF90IHsKICAgICBTZXQsCiAgICAgVW5zZXQKIH07Citz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlNhbWVPcmlnaW5EYXRhVVJMRmxhZyA9IDE7
CiAKIGVudW0gY2xhc3MgSW5pdGlhdG9yQ29udGV4dCA6IHVpbnQ4X3QgewogICAgIERvY3VtZW50
LAogICAgIFdvcmtlciwKIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZkluaXRp
YXRvckNvbnRleHQgPSAxOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJzTW9kZSA6IHVpbnQ4
X3QgewogICAgIEFsbCwKICAgICBOb25lLAogICAgIE9ubHkgLy8gQW4gZXJyb3Igd2lsbCBoYXBw
ZW4gaWYgc2VydmljZSB3b3JrZXIgaXMgbm90IGhhbmRsaW5nIHRoZSBmZXRjaC4gVXNlZCB0byBi
eXBhc3MgcHJlZmxpZ2h0IHNhZmVseS4KIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJp
dHNPZlNlcnZpY2VXb3JrZXJzTW9kZSA9IDI7CiAKIGVudW0gY2xhc3MgQXBwbGljYXRpb25DYWNo
ZU1vZGUgOiB1aW50OF90IHsKICAgICBVc2UsCiAgICAgQnlwYXNzCiB9Oworc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBiaXRzT2ZBcHBsaWNhdGlvbkNhY2hlTW9kZSA9IDE7CiAKIC8vIEZJWE1F
OiBUaGVzZSBvcHRpb25zIGFyZSBuYW1lZCBwb29ybHkuIFdlIG9ubHkgaW1wbGVtZW50IGZvcmNl
IGRpc2FibGluZyBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nLCBub3QgZW5hYmxpbmcgaXQsCiAv
LyBhbmQgZXZlbiB0aGF0IG9ubHkgb24gc29tZSBwbGF0Zm9ybXMuCkBAIC0xMTYsMjYgKzEyOSw1
MiBAQCBlbnVtIGNsYXNzIENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgU25pZmYsCiAgICAgRG9Ob3RTbmlmZiwKIH07CitzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGJpdHNPZkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gMTsKIAogZW51bSBjbGFz
cyBQcmVmbGlnaHRQb2xpY3kgOiB1aW50OF90IHsKICAgICBDb25zaWRlciwKICAgICBGb3JjZSwK
ICAgICBQcmV2ZW50CiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZQcmVmbGln
aHRQb2xpY3kgPSAyOwogCiBlbnVtIGNsYXNzIExvYWRlZEZyb21PcGFxdWVTb3VyY2UgOiB1aW50
OF90IHsKICAgICBZZXMsCiAgICAgTm8KIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJp
dHNPZkxvYWRlZEZyb21PcGFxdWVTb3VyY2UgPSAxOwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zIDogcHVibGljIEZldGNoT3B0aW9ucyB7Ci0gICAgUmVzb3VyY2VMb2FkZXJPcHRpb25z
KCkgeyB9CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKCkKKyAgICAgICAgOiBSZXNvdXJjZUxv
YWRlck9wdGlvbnMoRmV0Y2hPcHRpb25zKCkpCisgICAgeworICAgIH0KIAotICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyhGZXRjaE9wdGlvbnMgb3B0aW9ucykgOiBGZXRjaE9wdGlvbnMgeyBXVEZN
b3ZlKG9wdGlvbnMpIH0geyB9CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKEZldGNoT3B0aW9u
cyBvcHRpb25zKQorICAgICAgICA6IEZldGNoT3B0aW9ucyB7IFdURk1vdmUob3B0aW9ucykgfQor
ICAgICAgICAsIHNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja1BvbGljeTo6RG9Ob3RTZW5k
Q2FsbGJhY2tzKQorICAgICAgICAsIHNuaWZmQ29udGVudChDb250ZW50U25pZmZpbmdQb2xpY3k6
OkRvTm90U25pZmZDb250ZW50KQorICAgICAgICAsIHNuaWZmQ29udGVudEVuY29kaW5nKENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZikKKyAgICAgICAgLCBkYXRhQnVmZmVyaW5n
UG9saWN5KERhdGFCdWZmZXJpbmdQb2xpY3k6OkJ1ZmZlckRhdGEpCisgICAgICAgICwgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3koU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlKQorICAg
ICAgICAsIHNlY3VyaXR5Q2hlY2soU2VjdXJpdHlDaGVja1BvbGljeTo6RG9TZWN1cml0eUNoZWNr
KQorICAgICAgICAsIGNlcnRpZmljYXRlSW5mb1BvbGljeShDZXJ0aWZpY2F0ZUluZm9Qb2xpY3k6
OkRvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5
Q2hlY2spCisgICAgICAgICwgZGVmZXJzTG9hZGluZ1BvbGljeShEZWZlcnNMb2FkaW5nUG9saWN5
OjpBbGxvd0RlZmVyc0xvYWRpbmcpCisgICAgICAgICwgY2FjaGluZ1BvbGljeShDYWNoaW5nUG9s
aWN5OjpBbGxvd0NhY2hpbmcpCisgICAgICAgICwgc2FtZU9yaWdpbkRhdGFVUkxGbGFnKFNhbWVP
cmlnaW5EYXRhVVJMRmxhZzo6VW5zZXQpCisgICAgICAgICwgaW5pdGlhdG9yQ29udGV4dChJbml0
aWF0b3JDb250ZXh0OjpEb2N1bWVudCkKKyAgICAgICAgLCBzZXJ2aWNlV29ya2Vyc01vZGUoU2Vy
dmljZVdvcmtlcnNNb2RlOjpBbGwpCisgICAgICAgICwgYXBwbGljYXRpb25DYWNoZU1vZGUoQXBw
bGljYXRpb25DYWNoZU1vZGU6OlVzZSkKKyAgICAgICAgLCBjbGllbnRDcmVkZW50aWFsUG9saWN5
KENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzKQor
ICAgICAgICAsIHByZWZsaWdodFBvbGljeShQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyKQorICAg
ICAgICAsIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UoTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8p
CisgICAgeyB9CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrUG9saWN5
IHNlbmRMb2FkQ2FsbGJhY2tzLCBDb250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50LCBE
YXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3ksIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNy
ZWRlbnRpYWxQb2xpY3ksIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIFNl
Y3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlIG1vZGUs
IENlcnRpZmljYXRlSW5mb1BvbGljeSBjZXJ0aWZpY2F0ZUluZm9Qb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb24gY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgRGVm
ZXJzTG9hZGluZ1BvbGljeSBkZWZlcnNMb2FkaW5nUG9saWN5LCBDYWNoaW5nUG9saWN5IGNhY2hp
bmdQb2xpY3kpCiAgICAgICAgIDogc2VuZExvYWRDYWxsYmFja3Moc2VuZExvYWRDYWxsYmFja3Mp
CiAgICAgICAgICwgc25pZmZDb250ZW50KHNuaWZmQ29udGVudCkKKyAgICAgICAgLCBzbmlmZkNv
bnRlbnRFbmNvZGluZyhDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpCiAgICAg
ICAgICwgZGF0YUJ1ZmZlcmluZ1BvbGljeShkYXRhQnVmZmVyaW5nUG9saWN5KQogICAgICAgICAs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQogICAgICAg
ICAsIHNlY3VyaXR5Q2hlY2soc2VjdXJpdHlDaGVjaykKQEAgLTE0MywzNiArMTgyLDQzIEBAIHN0
cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICAg
ICAgLCBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKGNvbnRlbnRTZWN1cml0eVBvbGlj
eUltcG9zaXRpb24pCiAgICAgICAgICwgZGVmZXJzTG9hZGluZ1BvbGljeShkZWZlcnNMb2FkaW5n
UG9saWN5KQogICAgICAgICAsIGNhY2hpbmdQb2xpY3koY2FjaGluZ1BvbGljeSkKKyAgICAgICAg
LCBzYW1lT3JpZ2luRGF0YVVSTEZsYWcoU2FtZU9yaWdpbkRhdGFVUkxGbGFnOjpVbnNldCkKKyAg
ICAgICAgLCBpbml0aWF0b3JDb250ZXh0KEluaXRpYXRvckNvbnRleHQ6OkRvY3VtZW50KQorICAg
ICAgICAsIHNlcnZpY2VXb3JrZXJzTW9kZShTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCkKKyAgICAg
ICAgLCBhcHBsaWNhdGlvbkNhY2hlTW9kZShBcHBsaWNhdGlvbkNhY2hlTW9kZTo6VXNlKQogICAg
ICAgICAsIGNsaWVudENyZWRlbnRpYWxQb2xpY3koY3JlZGVudGlhbFBvbGljeSkKKyAgICAgICAg
LCBwcmVmbGlnaHRQb2xpY3koUHJlZmxpZ2h0UG9saWN5OjpDb25zaWRlcikKKyAgICAgICAgLCBs
b2FkZWRGcm9tT3BhcXVlU291cmNlKExvYWRlZEZyb21PcGFxdWVTb3VyY2U6Ok5vKQorCiAgICAg
ewogICAgICAgICB0aGlzLT5jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzOwogICAgICAgICB0aGlz
LT5tb2RlID0gbW9kZTsKICAgICB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAg
T3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IHNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyOworICAgIE1hcmthYmxlPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcjo6
TWFya2FibGVUcmFpdHM+IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyOwogI2Vu
ZGlmCisgICAgTWFya2FibGU8Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM6Ok1hcmthYmxlVHJhaXRzPiBjc3BS
ZXNwb25zZUhlYWRlcnM7CiAgICAgT3B0aW9uU2V0PEhUVFBIZWFkZXJzVG9LZWVwRnJvbUNsZWFu
aW5nPiBodHRwSGVhZGVyc1RvS2VlcDsKLSAgICBPcHRpb25hbDxDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnM+IGNzcFJlc3BvbnNlSGVhZGVyczsKLSAgICB1bnNpZ25lZCBtYXhS
ZWRpcmVjdENvdW50IHsgMjAgfTsKLQotICAgIFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENh
bGxiYWNrcyB7IFNlbmRDYWxsYmFja1BvbGljeTo6RG9Ob3RTZW5kQ2FsbGJhY2tzIH07Ci0gICAg
Q29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IENvbnRlbnRTbmlmZmluZ1BvbGlj
eTo6RG9Ob3RTbmlmZkNvbnRlbnQgfTsKLSAgICBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSBzbmlmZkNvbnRlbnRFbmNvZGluZyB7IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpT
bmlmZiB9OwotICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSB7IERh
dGFCdWZmZXJpbmdQb2xpY3k6OkJ1ZmZlckRhdGEgfTsKLSAgICBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpE
b05vdFVzZSB9OwotICAgIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjayB7IFNlY3Vy
aXR5Q2hlY2tQb2xpY3k6OkRvU2VjdXJpdHlDaGVjayB9OwotICAgIENlcnRpZmljYXRlSW5mb1Bv
bGljeSBjZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgeyBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3k6OkRvTm90
SW5jbHVkZUNlcnRpZmljYXRlSW5mbyB9OwotICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb24gY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiB7IENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sgfTsKLSAgICBEZWZlcnNMb2FkaW5nUG9saWN5
IGRlZmVyc0xvYWRpbmdQb2xpY3kgeyBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xv
YWRpbmcgfTsKLSAgICBDYWNoaW5nUG9saWN5IGNhY2hpbmdQb2xpY3kgeyBDYWNoaW5nUG9saWN5
OjpBbGxvd0NhY2hpbmcgfTsKLSAgICBTYW1lT3JpZ2luRGF0YVVSTEZsYWcgc2FtZU9yaWdpbkRh
dGFVUkxGbGFnIHsgU2FtZU9yaWdpbkRhdGFVUkxGbGFnOjpVbnNldCB9OwotICAgIEluaXRpYXRv
ckNvbnRleHQgaW5pdGlhdG9yQ29udGV4dCB7IEluaXRpYXRvckNvbnRleHQ6OkRvY3VtZW50IH07
Ci0gICAgU2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJzTW9kZSB7IFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6QWxsIH07Ci0gICAgQXBwbGljYXRpb25DYWNoZU1vZGUgYXBwbGljYXRpb25DYWNo
ZU1vZGUgeyBBcHBsaWNhdGlvbkNhY2hlTW9kZTo6VXNlIH07Ci0gICAgQ2xpZW50Q3JlZGVudGlh
bFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5IHsgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6
Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKLSAgICBQcmVmbGlnaHRQb2xpY3kgcHJl
ZmxpZ2h0UG9saWN5IHsgUHJlZmxpZ2h0UG9saWN5OjpDb25zaWRlciB9OwotICAgIExvYWRlZEZy
b21PcGFxdWVTb3VyY2UgbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSB7IExvYWRlZEZyb21PcGFxdWVT
b3VyY2U6Ok5vIH07CisgICAgdWludDhfdCBtYXhSZWRpcmVjdENvdW50IHsgMjAgfTsKKworICAg
IFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcyA6IGJpdHNPZlNlbmRDYWxsYmFj
a1BvbGljeTsKKyAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50IDogYml0c09m
Q29udGVudFNuaWZmaW5nUG9saWN5OworICAgIENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
IHNuaWZmQ29udGVudEVuY29kaW5nIDogYml0c09mQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xp
Y3k7CisgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5IDogYml0c09m
RGF0YUJ1ZmZlcmluZ1BvbGljeTsKKyAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA6IGJpdHNPZlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OworICAgIFNl
Y3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjayA6IGJpdHNPZlNlY3VyaXR5Q2hlY2tQb2xp
Y3k7CisgICAgQ2VydGlmaWNhdGVJbmZvUG9saWN5IGNlcnRpZmljYXRlSW5mb1BvbGljeSA6IGJp
dHNPZkNlcnRpZmljYXRlSW5mb1BvbGljeTsKKyAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gOiBiaXRzT2ZDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOworICAgIERlZmVyc0xvYWRpbmdQb2xpY3kgZGVmZXJzTG9h
ZGluZ1BvbGljeSA6IGJpdHNPZkRlZmVyc0xvYWRpbmdQb2xpY3k7CisgICAgQ2FjaGluZ1BvbGlj
eSBjYWNoaW5nUG9saWN5IDogYml0c09mQ2FjaGluZ1BvbGljeTsKKyAgICBTYW1lT3JpZ2luRGF0
YVVSTEZsYWcgc2FtZU9yaWdpbkRhdGFVUkxGbGFnIDogYml0c09mU2FtZU9yaWdpbkRhdGFVUkxG
bGFnOworICAgIEluaXRpYXRvckNvbnRleHQgaW5pdGlhdG9yQ29udGV4dCA6IGJpdHNPZkluaXRp
YXRvckNvbnRleHQ7CisgICAgU2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJzTW9kZSA6
IGJpdHNPZlNlcnZpY2VXb3JrZXJzTW9kZTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlTW9kZSBhcHBs
aWNhdGlvbkNhY2hlTW9kZSA6IGJpdHNPZkFwcGxpY2F0aW9uQ2FjaGVNb2RlOworICAgIENsaWVu
dENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSA6IGJpdHNPZkNsaWVudENy
ZWRlbnRpYWxQb2xpY3k7CisgICAgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSA6IGJp
dHNPZlByZWZsaWdodFBvbGljeTsKKyAgICBMb2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZy
b21PcGFxdWVTb3VyY2UgOiBiaXRzT2ZMb2FkZWRGcm9tT3BhcXVlU291cmNlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5jcHAKaW5kZXggZWZiNmY1YTViMzljZGFjZWQ2NGQyNmVmZGFmZmU3NTU0ZDg5MmNhNi4u
NGZmM2E0Y2ExMDlhMWU0Y2I2NDM2YTc2OWE4ZmQxYTk4ZjdmZjg2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC01Nyw2ICs1Nyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZUphciogY29va2llSmFyKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1
ZXN0KSwgVHlwZTo6SW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklELCBjb29raWVKYXIpCisgICAgLCBt
X2lzTWFudWFsbHlDYWNoZWQoZmFsc2UpCisgICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2Uo
dHJ1ZSkKKyAgICAsIG1fZm9yY2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhmYWxz
ZSkKIHsKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CkBAIC02NCw2ICs2Nyw5IEBAIENhY2hl
ZEltYWdlOjpDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25z
dCBQQUw6OlNlc3Npb25JRCYKIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2Us
IGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZUphciogY29va2ll
SmFyKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoVVJMKCksIFR5cGU6OkltYWdlUmVzb3VyY2UsIHNl
c3Npb25JRCwgY29va2llSmFyKQogICAgICwgbV9pbWFnZShpbWFnZSkKKyAgICAsIG1faXNNYW51
YWxseUNhY2hlZChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQor
ICAgICwgbV9mb3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nKGZhbHNlKQogewog
fQogCkBAIC03MSw2ICs3Nyw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwm
IHVybCwgSW1hZ2UqIGltYWdlLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2VzCiAgICAgOiBDYWNo
ZWRSZXNvdXJjZSh1cmwsIFR5cGU6OkltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCwgY29va2llSmFy
KQogICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZCh0cnVlKQor
ICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCisgICAgLCBtX2ZvcmNlVXBkYXRl
SW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoZmFsc2UpCiB7CiAgICAgbV9yZXNvdXJjZVJlcXVl
c3Quc2V0RG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOwog
CkBAIC00OTMsNyArNTAxLDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6dXBkYXRlQnVmZmVySW50ZXJu
YWwoU2hhcmVkQnVmZmVyJiBkYXRhKQogYm9vbCBDYWNoZWRJbWFnZTo6c2hvdWxkRGVmZXJVcGRh
dGVJbWFnZURhdGEoKSBjb25zdAogewogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgdXBkYXRlSW1h
Z2VEYXRhQmFja29mZkludGVydmFsc1tdID0geyAwLCAxLCAzLCA2LCAxNSB9OwotICAgIHVuc2ln
bmVkIGludGVydmFsID0gc3RkOjptaW48dW5zaWduZWQ+KG1fdXBkYXRlSW1hZ2VEYXRhQ291bnQs
IDQpOworICAgIHVuc2lnbmVkIGludGVydmFsID0gbV91cGRhdGVJbWFnZURhdGFDb3VudDsKIAog
ICAgIC8vIFRoZSBmaXJzdCB0aW1lIHRocm91Z2gsIHRoZSBjaHVuayB0aW1lIHdpbGwgYmUgMCBh
bmQgdGhlIGltYWdlIHdpbGwgZ2V0IGFuIHVwZGF0ZS4KICAgICByZXR1cm4gKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9sYXN0VXBkYXRlSW1hZ2VEYXRhVGltZSkuc2Vjb25kcygpIDwgdXBkYXRl
SW1hZ2VEYXRhQmFja29mZkludGVydmFsc1tpbnRlcnZhbF07CkBAIC01MTUsOCArNTIzLDkgQEAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gQ2FjaGVkSW1hZ2U6OmNvbnZlcnRlZERhdGFJZk5lZWRlZChT
aGFyZWRCdWZmZXIqIGRhdGEpIGNvbnMKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRpZFVwZGF0ZUltYWdl
RGF0YSgpCiB7CiAgICAgbV9sYXN0VXBkYXRlSW1hZ2VEYXRhVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwotICAgIEFTU0VSVChtX3VwZGF0ZUltYWdlRGF0YUNvdW50IDwgc3RkOjpudW1lcmlj
X2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKLSAgICArK21fdXBkYXRlSW1hZ2VEYXRhQ291bnQ7
CisgICAgdW5zaWduZWQgcHJldmlvdXMgPSBtX3VwZGF0ZUltYWdlRGF0YUNvdW50OworICAgIGlm
IChwcmV2aW91cyAhPSBtYXhVcGRhdGVJbWFnZURhdGFDb3VudCkKKyAgICAgICAgbV91cGRhdGVJ
bWFnZURhdGFDb3VudCArPSAxOwogfQogCiBFbmNvZGVkRGF0YVN0YXR1cyBDYWNoZWRJbWFnZTo6
dXBkYXRlSW1hZ2VEYXRhKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAppbmRleCAyM2M0ZjU0ZTZhNzMxMzBjZmU4NGY0ZDcwYzYz
OWY3NmNlNjc3M2Q4Li43NDA0NWJlOWNiNjBjMzdjZTRmZWMwYTFlZjBhYWYxZjYwMzQyYThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtMTg0LDEwICsx
ODQsMTEgQEAgY2xhc3MgQ2FjaGVkSW1hZ2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
ewogCiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RVcGRhdGVJbWFnZURhdGFUaW1lOwogCi0gICAg
dW5zaWduZWQgbV91cGRhdGVJbWFnZURhdGFDb3VudCB7IDAgfTsKLSAgICBib29sIG1faXNNYW51
YWxseUNhY2hlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2Ug
eyB0cnVlIH07Ci0gICAgYm9vbCBtX2ZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3Rp
bmcgeyBmYWxzZSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4VXBkYXRlSW1h
Z2VEYXRhQ291bnQgPSA0OworICAgIHVuc2lnbmVkIG1fdXBkYXRlSW1hZ2VEYXRhQ291bnQgOiAz
OworICAgIGJvb2wgbV9pc01hbnVhbGx5Q2FjaGVkIDogMTsKKyAgICBib29sIG1fc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZSA6IDE7CisgICAgYm9vbCBtX2ZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxl
ZEZvclRlc3RpbmcgOiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggYzc1YjNkYzBi
MmM0ZmE0NzU5MDNkMzMxYTkyMmIxODA0ODBkZGVmNC4uOGJlNjI5ZmE1OWJkYzM3NmI5NTA4ZDUw
OWE4MTMwODAyNzZkYjIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMjksMTAgKzEyOSwxNyBAQCBDYWNoZWRSZXNvdXJjZTo6Q2Fj
aGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBj
b25zdAogICAgICwgbV9mcmFnbWVudElkZW50aWZpZXJGb3JSZXF1ZXN0KHJlcXVlc3QucmVsZWFz
ZUZyYWdtZW50SWRlbnRpZmllcigpKQogICAgICwgbV9vcmlnaW4ocmVxdWVzdC5yZWxlYXNlT3Jp
Z2luKCkpCiAgICAgLCBtX2luaXRpYXRvck5hbWUocmVxdWVzdC5pbml0aWF0b3JOYW1lKCkpCi0g
ICAgLCBtX2xvYWRQcmlvcml0eShkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZSkp
CiAgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fcHJlbG9hZFJlc3VsdChQcmVsb2FkUmVzdWx0
OjpQcmVsb2FkTm90UmVmZXJlbmNlZCkKKyAgICAsIG1fcmVzcG9uc2VUYWludGluZyhSZXNvdXJj
ZVJlc3BvbnNlOjpUYWludGluZzo6QmFzaWMpCisgICAgLCBtX2xvYWRQcmlvcml0eShkZWZhdWx0
UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZSkpCisgICAgLCBtX3N0YXR1cyhQZW5kaW5nKQor
ICAgICwgbV9yZXF1ZXN0ZWRGcm9tTmV0d29ya2luZ0xheWVyKGZhbHNlKQorICAgICwgbV9pbkNh
Y2hlKGZhbHNlKQorICAgICwgbV9sb2FkaW5nKGZhbHNlKQogICAgICwgbV9pc0xpbmtQcmVsb2Fk
KHJlcXVlc3QuaXNMaW5rUHJlbG9hZCgpKQogICAgICwgbV9oYXNVbmtub3duRW5jb2RpbmcocmVx
dWVzdC5pc0xpbmtQcmVsb2FkKCkpCisgICAgLCBtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRh
dGVkUmVzb3VyY2UoZmFsc2UpCiAgICAgLCBtX2lnbm9yZUZvclJlcXVlc3RDb3VudChyZXF1ZXN0
Lmlnbm9yZUZvclJlcXVlc3RDb3VudCgpKQogewogICAgIEFTU0VSVChtX3Nlc3Npb25JRC5pc1Zh
bGlkKCkpOwpAQCAtMTU3LDggKzE2NCwxNyBAQCBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3Vy
Y2UoY29uc3QgVVJMJiB1cmwsIFR5cGUgdHlwZSwgY29uc3QgUEFMOjpTZXNzaW9uSUQmCiAgICAg
LCBtX2Nvb2tpZUphcihjb29raWVKYXIpCiAgICAgLCBtX3Jlc3BvbnNlVGltZXN0YW1wKFdhbGxU
aW1lOjpub3coKSkKICAgICAsIG1fZnJhZ21lbnRJZGVudGlmaWVyRm9yUmVxdWVzdChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OnNwbGl0RnJhZ21lbnRJZGVudGlmaWVyRnJvbVJlcXVlc3RVUkwobV9y
ZXNvdXJjZVJlcXVlc3QpKQotICAgICwgbV9zdGF0dXMoQ2FjaGVkKQogICAgICwgbV90eXBlKHR5
cGUpCisgICAgLCBtX3ByZWxvYWRSZXN1bHQoUHJlbG9hZFJlc3VsdDo6UHJlbG9hZE5vdFJlZmVy
ZW5jZWQpCisgICAgLCBtX3Jlc3BvbnNlVGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRp
bmc6OkJhc2ljKQorICAgICwgbV9zdGF0dXMoQ2FjaGVkKQorICAgICwgbV9yZXF1ZXN0ZWRGcm9t
TmV0d29ya2luZ0xheWVyKGZhbHNlKQorICAgICwgbV9pbkNhY2hlKGZhbHNlKQorICAgICwgbV9s
b2FkaW5nKGZhbHNlKQorICAgICwgbV9pc0xpbmtQcmVsb2FkKGZhbHNlKQorICAgICwgbV9oYXNV
bmtub3duRW5jb2RpbmcoZmFsc2UpCisgICAgLCBtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRh
dGVkUmVzb3VyY2UoZmFsc2UpCisgICAgLCBtX2lnbm9yZUZvclJlcXVlc3RDb3VudChmYWxzZSkK
IHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQuaXNWYWxpZCgpKTsKICNpZm5kZWYgTkRFQlVHCkBA
IC0zMTIsNyArMzI4LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJj
ZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgICAgICBmYWlsQmVmb3JlU3Rh
cnRpbmcoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtX3N0YXR1
cyA9IFBlbmRpbmc7CisgICAgICAgIHNldFN0YXR1cyhQZW5kaW5nKTsKICAgICB9KTsKIH0KIApA
QCAtMzk5LDcgKzQxNSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNhbmNlbExvYWQoKQogdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6ZmluaXNoKCkKIHsKICAgICBpZiAoIWVycm9yT2NjdXJyZWQoKSkK
LSAgICAgICAgbV9zdGF0dXMgPSBDYWNoZWQ7CisgICAgICAgIHNldFN0YXR1cyhDYWNoZWQpOwog
fQogCiB2b2lkIENhY2hlZFJlc291cmNlOjpzZXRDcm9zc09yaWdpbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGM0ZGI0ZWJjYzQ5ZGI1NWZh
YjdjZDAyMDdmZmFhYzA0M2UyNmExMTEuLjg5MDA5MDU0Yjg4MjI5ZTRiYjQ0MDRkODUwNWE0YmYx
OWE5OGEwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oCkBAIC03NywyNiArNzcsMzEgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2UgewogICAgICAgICBJ
Y29uLAogICAgICAgICBCZWFjb24sCiAgICAgICAgIFBpbmcsCi0gICAgICAgIFNWR0RvY3VtZW50
UmVzb3VyY2UKICNpZiBFTkFCTEUoWFNMVCkKLSAgICAgICAgLCBYU0xTdHlsZVNoZWV0CisgICAg
ICAgIFhTTFN0eWxlU2hlZXQsCiAjZW5kaWYKLSAgICAgICAgLCBMaW5rUHJlZmV0Y2gKKyAgICAg
ICAgTGlua1ByZWZldGNoLAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgLCBUZXh0
VHJhY2tSZXNvdXJjZQorICAgICAgICBUZXh0VHJhY2tSZXNvdXJjZSwKICNlbmRpZgogI2lmIEVO
QUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKLSAgICAgICAgLCBBcHBsaWNhdGlvbk1hbmlmZXN0
CisgICAgICAgIEFwcGxpY2F0aW9uTWFuaWZlc3QsCiAjZW5kaWYKKyAgICAgICAgU1ZHRG9jdW1l
bnRSZXNvdXJjZSwKKyAgICAgICAgTGFzdFR5cGUgPSBTVkdEb2N1bWVudFJlc291cmNlLAogICAg
IH07CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZUeXBlID0gNTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihUeXBlOjpMYXN0VHlwZSkgPD0gKCgx
VSA8PCBiaXRzT2ZUeXBlKSAtIDEpKTsKIAotICAgIGVudW0gU3RhdHVzIHsKKyAgICBlbnVtIFN0
YXR1cyA6IHVpbnQ4X3QgewogICAgICAgICBVbmtub3duLCAgICAgIC8vIGxldCBjYWNoZSBkZWNp
ZGUgd2hhdCB0byBkbyB3aXRoIGl0CiAgICAgICAgIFBlbmRpbmcsICAgICAgLy8gb25seSBwYXJ0
aWFsbHkgbG9hZGVkCiAgICAgICAgIENhY2hlZCwgICAgICAgLy8gcmVndWxhciBjYXNlCiAgICAg
ICAgIExvYWRFcnJvciwKICAgICAgICAgRGVjb2RlRXJyb3IKICAgICB9OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgYml0c09mU3RhdHVzID0gMzsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHVuc2lnbmVkPihEZWNvZGVFcnJvcikgPD0gKCgxVUxMIDw8IGJpdHNPZlN0YXR1
cykgLSAxKSk7CiAKICAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwg
VHlwZSwgY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBDb29raWVKYXIqKTsKICAgICB2aXJ0
dWFsIH5DYWNoZWRSZXNvdXJjZSgpOwpAQCAtMTQyLDYgKzE0Nyw4IEBAIGNsYXNzIENhY2hlZFJl
c291cmNlIHsKICAgICAgICAgUHJlbG9hZFJlZmVyZW5jZWRXaGlsZUxvYWRpbmcsCiAgICAgICAg
IFByZWxvYWRSZWZlcmVuY2VkV2hpbGVDb21wbGV0ZQogICAgIH07CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBiaXRzT2ZQcmVsb2FkUmVzdWx0ID0gMjsKKwogICAgIFByZWxvYWRSZXN1
bHQgcHJlbG9hZFJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByZWxvYWRSZXN1
bHQ+KG1fcHJlbG9hZFJlc3VsdCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRDbGllbnQo
Q2FjaGVkUmVzb3VyY2VDbGllbnQmKTsKQEAgLTE1Miw3ICsxNTksMTEgQEAgY2xhc3MgQ2FjaGVk
UmVzb3VyY2UgewogICAgIHVuc2lnbmVkIG51bWJlck9mQ2xpZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpZW50cy5zaXplKCk7IH0KIAogICAgIFN0YXR1cyBzdGF0dXMoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTdGF0dXM+KG1fc3RhdHVzKTsgfQotICAgIHZvaWQgc2V0U3RhdHVzKFN0
YXR1cyBzdGF0dXMpIHsgbV9zdGF0dXMgPSBzdGF0dXM7IH0KKyAgICB2b2lkIHNldFN0YXR1cyhT
dGF0dXMgc3RhdHVzKQorICAgIHsKKyAgICAgICAgbV9zdGF0dXMgPSBzdGF0dXM7CisgICAgICAg
IEFTU0VSVCh0aGlzLT5zdGF0dXMoKSA9PSBzdGF0dXMpOworICAgIH0KIAogICAgIHVuc2lnbmVk
IHNpemUoKSBjb25zdCB7IHJldHVybiBlbmNvZGVkU2l6ZSgpICsgZGVjb2RlZFNpemUoKSArIG92
ZXJoZWFkU2l6ZSgpOyB9CiAgICAgdW5zaWduZWQgZW5jb2RlZFNpemUoKSBjb25zdCB7IHJldHVy
biBtX2VuY29kZWRTaXplOyB9CkBAIC0zNTMsMzAgKzM2NCwyOCBAQCBjbGFzcyBDYWNoZWRSZXNv
dXJjZSB7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKICAgICBBdG9tU3Ry
aW5nIG1faW5pdGlhdG9yTmFtZTsKIAotICAgIFJlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1cyBtX3Jl
ZGlyZWN0Q2hhaW5DYWNoZVN0YXR1czsKLQogICAgIHVuc2lnbmVkIG1fZW5jb2RlZFNpemUgeyAw
IH07CiAgICAgdW5zaWduZWQgbV9kZWNvZGVkU2l6ZSB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2Fj
Y2Vzc0NvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIG1faGFuZGxlQ291bnQgeyAwIH07CiAgICAg
dW5zaWduZWQgbV9wcmVsb2FkQ291bnQgeyAwIH07CiAKLSAgICB1bnNpZ25lZCBtX3N0YXR1cyB7
IFBlbmRpbmcgfTsgLy8gU3RhdHVzCi0KLSAgICBQcmVsb2FkUmVzdWx0IG1fcHJlbG9hZFJlc3Vs
dCB7IFByZWxvYWRSZXN1bHQ6OlByZWxvYWROb3RSZWZlcmVuY2VkIH07CisgICAgUmVkaXJlY3RD
aGFpbkNhY2hlU3RhdHVzIG1fcmVkaXJlY3RDaGFpbkNhY2hlU3RhdHVzOwogCi0gICAgUmVzb3Vy
Y2VSZXNwb25zZTo6VGFpbnRpbmcgbV9yZXNwb25zZVRhaW50aW5nIHsgUmVzb3VyY2VSZXNwb25z
ZTo6VGFpbnRpbmc6OkJhc2ljIH07Ci0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9sb2FkUHJp
b3JpdHk7CisgICAgVHlwZSBtX3R5cGUgOiBiaXRzT2ZUeXBlOwogCi0gICAgVHlwZSBtX3R5cGU7
IC8vIFR5cGUKKyAgICBQcmVsb2FkUmVzdWx0IG1fcHJlbG9hZFJlc3VsdCA6IGJpdHNPZlByZWxv
YWRSZXN1bHQ7CisgICAgUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmcgbV9yZXNwb25zZVRhaW50
aW5nIDogUmVzb3VyY2VSZXNwb25zZTo6Yml0c09mVGFpbnRpbmc7CisgICAgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgbV9sb2FkUHJpb3JpdHkgOiBiaXRzT2ZSZXNvdXJjZUxvYWRQcmlvcml0eTsKIAot
ICAgIGJvb2wgbV9yZXF1ZXN0ZWRGcm9tTmV0d29ya2luZ0xheWVyIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1faW5DYWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2xvYWRpbmcgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9pc0xpbmtQcmVsb2FkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzVW5rbm93
bkVuY29kaW5nIHsgZmFsc2UgfTsKLSAgICBib29sIG1fc3dpdGNoaW5nQ2xpZW50c1RvUmV2YWxp
ZGF0ZWRSZXNvdXJjZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lnbm9yZUZvclJlcXVlc3RDb3Vu
dCB7IGZhbHNlIH07CisgICAgU3RhdHVzIG1fc3RhdHVzIDogYml0c09mU3RhdHVzOworICAgIGJv
b2wgbV9yZXF1ZXN0ZWRGcm9tTmV0d29ya2luZ0xheWVyIDogMTsKKyAgICBib29sIG1faW5DYWNo
ZSA6IDE7CisgICAgYm9vbCBtX2xvYWRpbmcgOiAxOworICAgIGJvb2wgbV9pc0xpbmtQcmVsb2Fk
IDogMTsKKyAgICBib29sIG1faGFzVW5rbm93bkVuY29kaW5nIDogMTsKKyAgICBib29sIG1fc3dp
dGNoaW5nQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSA6IDE7CisgICAgYm9vbCBtX2lnbm9y
ZUZvclJlcXVlc3RDb3VudCA6IDE7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgbV9k
ZWxldGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgKaW5kZXggNWIzNjlm
NDQ0ODRjNjE3Y2Y4ZTA1ODYxMzEyM2U2MDNmOWI2NTQzZC4uYzA5NjUyMGE0OWVjZGExYjc5OWUx
MDEyNGViMjI2N2RjYzZhYzllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgKQEAgLTUw
LDExICs1MCwyOCBAQCBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMg
ewogICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJik7CiAKKyAgICBlbnVt
IEVtcHR5VGFnIHsgRW1wdHkgfTsKKyAgICBzdHJ1Y3QgTWFya2FibGVUcmFpdHMgeworICAgICAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiBpZGVudGlmaWVyKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
aWRlbnRpZmllci5tX2VtcHR5Rm9yTWFya2FibGU7CisgICAgICAgIH0KKworICAgICAgICBzdGF0
aWMgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIGVtcHR5VmFsdWUoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzKEVtcHR5KTsKKyAgICAgICAgfQorICAgIH07CisKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMoRW1wdHlUYWcpCisgICAgICAgIDogbV9lbXB0eUZvck1hcmthYmxlKHRy
dWUpCisgICAgeyB9CiAKICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgQ29udGVudFNlY3Vy
aXR5UG9saWN5SGVhZGVyVHlwZT4+IG1faGVhZGVyczsKICAgICBpbnQgbV9odHRwU3RhdHVzQ29k
ZSB7IDAgfTsKKyAgICBib29sIG1fZW1wdHlGb3JNYXJrYWJsZSB7IGZhbHNlIH07CiB9OwogCiB0
ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oCmluZGV4IGVhN2Y4OGVlNDU1NWYwYTU2NTM2
Y2E3NGM0ZjcwZjU3ZTBjODRjOTQuLjg3OTIzZmVlZWU5MDMyYmZkZmY5ODFjNzMyNWQ1ZjJlZDRk
NGNiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a0xvYWRNZXRyaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrTG9hZE1ldHJpY3MuaApAQCAtMTY2LDEyICsxNjYsMTIgQEAgY2xhc3MgTmV0d29ya0xvYWRN
ZXRyaWNzIHsKIAogICAgIFN0cmluZyByZW1vdGVBZGRyZXNzOwogICAgIFN0cmluZyBjb25uZWN0
aW9uSWRlbnRpZmllcjsKLSAgICBOZXR3b3JrTG9hZFByaW9yaXR5IHByaW9yaXR5OwogCiAgICAg
U3RyaW5nIHRsc1Byb3RvY29sOwogICAgIFN0cmluZyB0bHNDaXBoZXI7CiAKICAgICAvLyBXaGV0
aGVyIG9yIG5vdCBhbGwgb2YgdGhlIHByb3BlcnRpZXMgKDAgb3Igb3RoZXJ3aXNlKSBoYXZlIGJl
ZW4gc2V0LgorICAgIE5ldHdvcmtMb2FkUHJpb3JpdHkgcHJpb3JpdHk7CiAgICAgYm9vbCBjb21w
bGV0ZSB7IGZhbHNlIH07CiAKICAgICBIVFRQSGVhZGVyTWFwIHJlcXVlc3RIZWFkZXJzOwpAQCAt
MjAyLDkgKzIwMiw5IEBAIHZvaWQgTmV0d29ya0xvYWRNZXRyaWNzOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHByb3RvY29sOwogICAgIGVuY29kZXIgPDwg
cmVtb3RlQWRkcmVzczsKICAgICBlbmNvZGVyIDw8IGNvbm5lY3Rpb25JZGVudGlmaWVyOwotICAg
IGVuY29kZXIgPDwgcHJpb3JpdHk7CiAgICAgZW5jb2RlciA8PCB0bHNQcm90b2NvbDsKICAgICBl
bmNvZGVyIDw8IHRsc0NpcGhlcjsKKyAgICBlbmNvZGVyIDw8IHByaW9yaXR5OwogICAgIGVuY29k
ZXIgPDwgcmVxdWVzdEhlYWRlcnM7CiAgICAgZW5jb2RlciA8PCByZXF1ZXN0SGVhZGVyQnl0ZXNT
ZW50OwogICAgIGVuY29kZXIgPDwgcmVxdWVzdEJvZHlCeXRlc1NlbnQ7CkBAIC0yMjgsOSArMjI4
LDkgQEAgYm9vbCBOZXR3b3JrTG9hZE1ldHJpY3M6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBO
ZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1l
dHJpY3MucHJvdG9jb2wpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MucmVtb3Rl
QWRkcmVzcykKICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUobWV0cmljcy5jb25uZWN0aW9uSWRl
bnRpZmllcikKLSAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUobWV0cmljcy5wcmlvcml0eSkKICAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUobWV0cmljcy50bHNQcm90b2NvbCkKICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUobWV0cmljcy50bHNDaXBoZXIpCisgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlKG1ldHJpY3MucHJpb3JpdHkpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3Mu
cmVxdWVzdEhlYWRlcnMpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MucmVxdWVz
dEhlYWRlckJ5dGVzU2VudCkKICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUobWV0cmljcy5yZXF1
ZXN0Qm9keUJ5dGVzU2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaAppbmRleCA0MTJlYjBiNzg5MGY4MDgzMzM3NGJk
MTZhNDg5YmY1N2E3MWFiN2ZkLi4yMDRjZmI1MTNkMWI2MGRkOTA4ODkxNzUxOTE0MDIzYjAzYmNj
NDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
TG9hZFByaW9yaXR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUxvYWRQcmlvcml0eS5oCkBAIC0zNyw2ICszNyw4IEBAIGVudW0gY2xhc3MgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgOiB1aW50OF90IHsKICAgICBMb3dlc3QgPSBWZXJ5TG93LAogICAgIEhpZ2hl
c3QgPSBWZXJ5SGlnaCwKIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlJlc291
cmNlTG9hZFByaW9yaXR5ID0gMzsKK3N0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlc291cmNlTG9hZFByaW9yaXR5OjpIaWdoZXN0KSA8PSAoKDFVIDw8IGJpdHNPZlJlc291cmNl
TG9hZFByaW9yaXR5KSAtIDEpKTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHJlc291cmNlTG9h
ZFByaW9yaXR5Q291bnQgeyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVzb3VyY2VMb2FkUHJpb3Jp
dHk6OkhpZ2hlc3QpICsgMSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmluZGV4IDA5ZmJkNDk0MWIwYmRmOWM4YWIz
Zjc1ZjMwMjA4NmI2YzM2ODQ4ZjguLjZlMDNhOWI1MTI2N2UyZjM4MDBlZDg2N2M5YWRhODQ4MTE1
MTk3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xOTcsOCArMTk3LDEzIEBAIGNsYXNzIFJlc291cmNlUmVx
dWVzdEJhc2UgewogcHJvdGVjdGVkOgogICAgIC8vIFVzZWQgd2hlbiBSZXNvdXJjZVJlcXVlc3Qg
aXMgaW5pdGlhbGl6ZWQgZnJvbSBhIHBsYXRmb3JtIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXF1
ZXN0CiAgICAgUmVzb3VyY2VSZXF1ZXN0QmFzZSgpCi0gICAgICAgIDogbV9wbGF0Zm9ybVJlcXVl
c3RVcGRhdGVkKHRydWUpCisgICAgICAgIDogbV9hbGxvd0Nvb2tpZXMoZmFsc2UpCisgICAgICAg
ICwgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkKGZhbHNlKQorICAgICAgICAsIG1fcGxhdGZvcm1S
ZXF1ZXN0VXBkYXRlZCh0cnVlKQorICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0
ZWQoZmFsc2UpCiAgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RCb2R5VXBkYXRlZCh0cnVlKQor
ICAgICAgICAsIG1faGlkZGVuRnJvbUluc3BlY3RvcihmYWxzZSkKKyAgICAgICAgLCBtX2lzVG9w
U2l0ZShmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC0yMDksNyArMjE0LDExIEBAIGNsYXNzIFJl
c291cmNlUmVxdWVzdEJhc2UgewogICAgICAgICAsIG1fY2FjaGVQb2xpY3kocG9saWN5KQogICAg
ICAgICAsIG1fYWxsb3dDb29raWVzKHRydWUpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3RV
cGRhdGVkKHRydWUpCisgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQog
ICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0ZWQodHJ1ZSkKKyAgICAgICAgLCBt
X3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkKGZhbHNlKQorICAgICAgICAsIG1faGlkZGVuRnJv
bUluc3BlY3RvcihmYWxzZSkKKyAgICAgICAgLCBtX2lzVG9wU2l0ZShmYWxzZSkKICAgICB7CiAg
ICAgfQogCkBAIC0yMzYsMTMgKzI0NSwxMyBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlIHsK
ICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5IHsgUmVzb3VyY2VMb2FkUHJpb3Jp
dHk6OkxvdyB9OwogICAgIFJlcXVlc3RlciBtX3JlcXVlc3RlciB7IFJlcXVlc3Rlcjo6VW5zcGVj
aWZpZWQgfTsKICAgICBPcHRpb25hbDxpbnQ+IG1faW5zcGVjdG9ySW5pdGlhdG9yTm9kZUlkZW50
aWZpZXI7Ci0gICAgYm9vbCBtX2FsbG93Q29va2llcyB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBi
b29sIG1fcmVzb3VyY2VSZXF1ZXN0VXBkYXRlZCB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBib29s
IG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBib29sIG1f
cmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0ZWQgeyBmYWxzZSB9OwotICAgIG11dGFibGUgYm9vbCBt
X3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGlkZGVu
RnJvbUluc3BlY3RvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzVG9wU2l0ZSB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2FsbG93Q29va2llcyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fcmVzb3Vy
Y2VSZXF1ZXN0VXBkYXRlZCA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0
VXBkYXRlZCA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0
ZWQgOiAxOworICAgIG11dGFibGUgYm9vbCBtX3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkIDog
MTsKKyAgICBib29sIG1faGlkZGVuRnJvbUluc3BlY3RvciA6IDE7CisgICAgYm9vbCBtX2lzVG9w
U2l0ZSA6IDE7CiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogICAgIE9wdGlvbmFsPFN5c3RlbVBy
ZXZpZXdJbmZvPiBtX3N5c3RlbVByZXZpZXdJbmZvOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXgg
ZDJiNGYxZGUxZTYwMWNmMTE5Yzk1MGM1YWQyZDk3YmQxYTlmZWFiZS4uYmE1NjMwZjE1ZjlmOGYz
MTlhYjIzMmNlMTMwMDI0ZDRkMGZiOThiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApAQCAtNDgsNyArNDgsOSBA
QCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7IEJhc2ljLCBDb3Jz
LCBEZWZhdWx0LCBFcnJvciwgT3BhcXVlLCBPcGFxdWVyZWRpcmVjdCB9OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgYml0c09mVHlwZSA9IDM7CiAgICAgZW51bSBjbGFzcyBUYWludGlu
ZyA6IHVpbnQ4X3QgeyBCYXNpYywgQ29ycywgT3BhcXVlLCBPcGFxdWVyZWRpcmVjdCB9OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mVGFpbnRpbmcgPSAyOwogCiAgICAgc3Rh
dGljIGJvb2wgaXNSZWRpcmVjdGlvblN0YXR1c0NvZGUoaW50IGNvZGUpIHsgcmV0dXJuIGNvZGUg
PT0gMzAxIHx8IGNvZGUgPT0gMzAyIHx8IGNvZGUgPT0gMzAzIHx8IGNvZGUgPT0gMzA3IHx8IGNv
ZGUgPT0gMzA4OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaAppbmRleCBhZDQ3NGZiZDE1MzhkNzk0Nzdl
NDkwNjA3MjczMmU4Nzc3NGZmNjNkLi45ZDIwMTQzMmEyNGJiNDY3NTg4NTViOTg0YWVjYmE4Mzk1
MDA0MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oCkBAIC0zMiw1ICszMiw2IEBAIGVudW0gY2xhc3Mg
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgOiB1aW50OF90IHsKICAgICBVc2UsCiAgICAgRXBoZW1l
cmFsU3RhdGVsZXNzCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA9IDI7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390500</attachid>
            <date>2020-02-12 02:04:51 -0800</date>
            <delta_ts>2020-02-12 11:44:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207618-20200212020450.patch</filename>
            <type>text/plain</type>
            <size>34939</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJkMTIwYWVkNTVjMzVmZmVjODk5YWMz
NTFmNzAwNWI3ZWU4ZjkyZDkuLjliM2U1MjljODdjODY1MTMyZmE0ZjIwZTM2MjdjN2M5M2U3ODA5
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDItMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTaHJpbmsgQ2FjaGVkUmVzb3VyY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzYxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL01hcmthYmxlLmg6
CisgICAgICAgIChXVEY6Ok1hcmthYmxlOjphc09wdGlvbmFsIGNvbnN0KTogQWRkIGhlbHBlciBt
ZXRob2QgdG8gZ2V0IE9wdGlvbmFsIGVhc2lseSBmcm9tIE1hcmthYmxlLgorICAgICAgICAqIHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6Ok1h
cmthYmxlVHJhaXRzOjppc0VtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpPYmplY3RJZGVudGlm
aWVyOjpNYXJrYWJsZVRyYWl0czo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Ok9iamVjdElk
ZW50aWZpZXI6Ok9iamVjdElkZW50aWZpZXIpOiBBZGQgTWFya2FibGVUcmFpdHMgZm9yIE9iamVj
dElkZW50aWZpZXIuCisKIDIwMjAtMDItMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBpbi1iYW5kIFZUVCBjYXB0aW9ucyB3aGVuIGxv
YWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U5NWY3MGVjZjY0
YTllODViMmIxYTVjYzQ4ZTM5NzMxMDAwM2FlNi4uNTMwMzc0NTc4NDUzY2Q2ZTMwNTFmOWJlNDdm
NWVkYmVkM2I1Y2Q0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTAyLTEyICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rIENhY2hl
ZFJlc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHNocmlua3Mgc2l6ZW9mKENhY2hlZFJlc291cmNlKSBieSA4MCBieXRlcyBi
eSBhZ2dyZXNzaXZlbHkgdXNpbmcgYml0LWZpZWxkcyBhbmQgTWFya2FibGU8Pi4KKyAgICAgICAg
Rm9yIGVhY2ggZW51bSBjbGFzcywgd2UgZGVmaW5lIGBiaXRzT2ZYWFhgIHZhbHVlLCB3aGljaCBp
bmRpY2F0ZXMgIyBvZiBiaXRzIHRvIHJlcHJlc2VudCBpdC4gQW5kIHVzaW5nCisgICAgICAgIHRo
aXMgdmFsdWUgZm9yIGJpdC1maWVsZCdzIHdpZHRoLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIGxvYWRlci9GZXRjaE9wdGlvbnMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlv
bnM6OlJlc291cmNlTG9hZGVyT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlck9wdGlvbnM6OmxvYWRlZEZyb21PcGFxdWVTb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2Fj
aGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OnNob3VsZERlZmVyVXBk
YXRlSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRV
cGRhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6
OmZpbmlzaCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2V0U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczo6TWFya2FibGVUcmFp
dHM6OmlzRW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnM6Ok1hcmthYmxlVHJhaXRzOjplbXB0eVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczo6Q29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRN
ZXRyaWNzOjpjbGVhck5vblRpbWluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtM
b2FkTWV0cmljczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2Fk
TWV0cmljczo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9h
ZFByaW9yaXR5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXNvdXJjZVJl
cXVlc3RCYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGlj
eS5oOgorCiAyMDIwLTAyLTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzYwMjUpOiBDb3JyZWN0IGZsYWt5IFdlYkdMMiB0ZXN0
IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXJrYWJsZS5oIGIvU291cmNl
L1dURi93dGYvTWFya2FibGUuaAppbmRleCA5YWIyMjJiZThiMzFmZjdhNTMzZjdjMDM4YzJlZTRh
NDU3NjZmNDIwLi40MDNjMzNlMTYzMzhkMTM5MmFlZGU0ODI5OWQxYjNkNGEwNTU5YTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXJrYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01h
cmthYmxlLmgKQEAgLTE0Miw2ICsxNDIsMTMgQEAgY2xhc3MgTWFya2FibGUgewogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAorICAgIE9wdGlvbmFsPFQ+IGFzT3B0aW9uYWwo
KSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGJvb2woKnRoaXMpKQorICAgICAgICAgICAgcmV0
dXJuIG1fdmFsdWU7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorCiBwcml2
YXRlOgogICAgIFQgbV92YWx1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmpl
Y3RJZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXgg
YzFkZDQzZTgwZWQ2ZWE3NGU0YjNhOGUyNzQ2Njk5YzJmYmYxM2MyYi4uYTE5MTIxMDU5ZjJjZDdh
YTI3MjFjOGRkZTNjOGYzMDQ1ZTAyMjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2Jq
ZWN0SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApA
QCAtOTYsNiArOTYsMTggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT2JqZWN0SWRlbnRp
ZmllciA6IHByaXZhdGUgT2JqZWN0SWRlbnRpZmllckJhc2UgewogICAgICAgICByZXR1cm4gU3Ry
aW5nOjpudW1iZXIobV9pZGVudGlmaWVyKTsKICAgICB9CiAKKyAgICBzdHJ1Y3QgTWFya2FibGVU
cmFpdHMgeworICAgICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoT2JqZWN0SWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIWlkZW50aWZpZXIu
bV9pZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBPYmpl
Y3RJZGVudGlmaWVyIGVtcHR5VmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
T2JqZWN0SWRlbnRpZmllcigpOworICAgICAgICB9CisgICAgfTsKKwogcHJpdmF0ZToKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgT2JqZWN0SWRlbnRpZmllcjxVPiBtYWtlT2JqZWN0
SWRlbnRpZmllcih1aW50NjRfdCk7CiAgICAgZnJpZW5kIHN0cnVjdCBIYXNoVHJhaXRzPE9iamVj
dElkZW50aWZpZXI+OwpAQCAtMTA0LDcgKzExNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIE9iamVjdElkZW50aWZpZXIgOiBwcml2YXRlIE9iamVjdElkZW50aWZpZXJCYXNlIHsKICAg
ICBzdGF0aWMgdWludDY0X3QgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gc3RkOjpu
dW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNWYWxp
ZElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRpZmllciAmJiBp
ZGVudGlmaWVyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CiAKLSAgICBleHBsaWNpdCBP
YmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgZXhwbGljaXQgY29uc3Rl
eHByIE9iamVjdElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikKICAgICAgICAgOiBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNo
T3B0aW9ucy5oCmluZGV4IDk3YzQ4M2JiOTA5NGU0OTA3ZGY2ZTZjNDEzMjNmYzMzNWIzMGQ0ODYu
LmQ2YWI0NmI0ODFhNzc4NDAxNTkzMzZkODg2YzU3OWEzODc1MzIwNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRmV0Y2hPcHRpb25zLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRvY3Vt
ZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSA8
d3RmL01hcmthYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU4LDcgKzU5LDcgQEAgc3RydWN0IEZldGNoT3B0aW9ucyB7CiAg
ICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1wdHlT
dHJpbmcgfTsKICAgICBib29sIGtlZXBBbGl2ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIGludGVn
cml0eTsKLSAgICBPcHRpb25hbDxEb2N1bWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7
CisgICAgTWFya2FibGU8RG9jdW1lbnRJZGVudGlmaWVyLCBEb2N1bWVudElkZW50aWZpZXI6Ok1h
cmthYmxlVHJhaXRzPiBjbGllbnRJZGVudGlmaWVyOwogfTsKIAogaW5saW5lIEZldGNoT3B0aW9u
czo6RmV0Y2hPcHRpb25zKERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNb2RlIG1vZGUsIENyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzLCBDYWNoZSBjYWNoZSwgUmVkaXJlY3QgcmVkaXJlY3QsIFJlZmVy
cmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBTdHJpbmcmJiBpbnRlZ3JpdHksIGJvb2wga2VlcEFs
aXZlKQpAQCAtMjI4LDcgKzIyOSw3IEBAIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBi
b29sIEZldGNoT3B0aW9uczo6ZGVjb2RlUGVyc2lzdGVudChEZWNvZGVyJiBkZWNvCiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBGZXRjaE9wdGlvbnM6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZVBlcnNpc3RlbnQoZW5jb2Rlcik7Ci0gICAg
ZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRp
Zmllci5hc09wdGlvbmFsKCk7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBP
cHRpb25hbDxGZXRjaE9wdGlvbnM+IEZldGNoT3B0aW9uczo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKaW5k
ZXggNGE0OTAwODBmOGNmZjE3ZjdlMTBiODJkMzNiMWI5ODQ2MTFhYWNkMy4uY2NkNjdiN2UyNzdj
Y2ZlMGVhMDMwMDczMTY2NzU2ZGRkYWRjZjNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtNDYsNiArNDYsNyBAQCBlbnVtIGNsYXNzIFNl
bmRDYWxsYmFja1BvbGljeSA6IHVpbnQ4X3QgewogICAgIFNlbmRDYWxsYmFja3MsCiAgICAgRG9O
b3RTZW5kQ2FsbGJhY2tzCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZTZW5k
Q2FsbGJhY2tQb2xpY3kgPSAxOwogCiAvLyBGSVhNRTogVGhlc2Ugb3B0aW9ucyBhcmUgbmFtZWQg
cG9vcmx5LiBXZSBvbmx5IGltcGxlbWVudCBmb3JjZSBkaXNhYmxpbmcgY29udGVudCBzbmlmZmlu
Zywgbm90IGVuYWJsaW5nIGl0LAogLy8gYW5kIGV2ZW4gdGhhdCBvbmx5IG9uIHNvbWUgcGxhdGZv
cm1zLgpAQCAtNTMsNjIgKzU0LDc0IEBAIGVudW0gY2xhc3MgQ29udGVudFNuaWZmaW5nUG9saWN5
IDogdWludDhfdCB7CiAgICAgU25pZmZDb250ZW50LAogICAgIERvTm90U25pZmZDb250ZW50CiB9
Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZDb250ZW50U25pZmZpbmdQb2xpY3kg
PSAxOwogCiBlbnVtIGNsYXNzIERhdGFCdWZmZXJpbmdQb2xpY3kgOiB1aW50OF90IHsKICAgICBC
dWZmZXJEYXRhLAogICAgIERvTm90QnVmZmVyRGF0YQogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgYml0c09mRGF0YUJ1ZmZlcmluZ1BvbGljeSA9IDE7CiAKIGVudW0gY2xhc3MgU2VjdXJp
dHlDaGVja1BvbGljeSA6IHVpbnQ4X3QgewogICAgIFNraXBTZWN1cml0eUNoZWNrLAogICAgIERv
U2VjdXJpdHlDaGVjawogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mU2VjdXJp
dHlDaGVja1BvbGljeSA9IDE7CiAKIGVudW0gY2xhc3MgQ2VydGlmaWNhdGVJbmZvUG9saWN5IDog
dWludDhfdCB7CiAgICAgSW5jbHVkZUNlcnRpZmljYXRlSW5mbywKICAgICBEb05vdEluY2x1ZGVD
ZXJ0aWZpY2F0ZUluZm8KIH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZkNlcnRp
ZmljYXRlSW5mb1BvbGljeSA9IDE7CiAKIGVudW0gY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbiA6IHVpbnQ4X3QgewogICAgIFNraXBQb2xpY3lDaGVjaywKICAgICBEb1BvbGlj
eUNoZWNrCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uID0gMTsKIAogZW51bSBjbGFzcyBEZWZlcnNMb2FkaW5nUG9saWN5
IDogdWludDhfdCB7CiAgICAgQWxsb3dEZWZlcnNMb2FkaW5nLAogICAgIERpc2FsbG93RGVmZXJz
TG9hZGluZwogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mRGVmZXJzTG9hZGlu
Z1BvbGljeSA9IDE7CiAKIGVudW0gY2xhc3MgQ2FjaGluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAg
IEFsbG93Q2FjaGluZywKICAgICBEaXNhbGxvd0NhY2hpbmcKIH07CitzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGJpdHNPZkNhY2hpbmdQb2xpY3kgPSAxOwogCiBlbnVtIGNsYXNzIENsaWVudENy
ZWRlbnRpYWxQb2xpY3kgOiB1aW50OF90IHsKICAgICBDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50
aWFscywKICAgICBNYXlBc2tDbGllbnRGb3JDcmVkZW50aWFscwogfTsKK3N0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgYml0c09mQ2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IDE7CiAKIGVudW0gY2xh
c3MgU2FtZU9yaWdpbkRhdGFVUkxGbGFnIDogdWludDhfdCB7CiAgICAgU2V0LAogICAgIFVuc2V0
CiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRzT2ZTYW1lT3JpZ2luRGF0YVVSTEZs
YWcgPSAxOwogCiBlbnVtIGNsYXNzIEluaXRpYXRvckNvbnRleHQgOiB1aW50OF90IHsKICAgICBE
b2N1bWVudCwKICAgICBXb3JrZXIsCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRz
T2ZJbml0aWF0b3JDb250ZXh0ID0gMTsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2Vyc01vZGUg
OiB1aW50OF90IHsKICAgICBBbGwsCiAgICAgTm9uZSwKICAgICBPbmx5IC8vIEFuIGVycm9yIHdp
bGwgaGFwcGVuIGlmIHNlcnZpY2Ugd29ya2VyIGlzIG5vdCBoYW5kbGluZyB0aGUgZmV0Y2guIFVz
ZWQgdG8gYnlwYXNzIHByZWZsaWdodCBzYWZlbHkuCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBiaXRzT2ZTZXJ2aWNlV29ya2Vyc01vZGUgPSAyOwogCiBlbnVtIGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVNb2RlIDogdWludDhfdCB7CiAgICAgVXNlLAogICAgIEJ5cGFzcwogfTsKK3N0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mQXBwbGljYXRpb25DYWNoZU1vZGUgPSAxOwogCiAv
LyBGSVhNRTogVGhlc2Ugb3B0aW9ucyBhcmUgbmFtZWQgcG9vcmx5LiBXZSBvbmx5IGltcGxlbWVu
dCBmb3JjZSBkaXNhYmxpbmcgY29udGVudCBlbmNvZGluZyBzbmlmZmluZywgbm90IGVuYWJsaW5n
IGl0LAogLy8gYW5kIGV2ZW4gdGhhdCBvbmx5IG9uIHNvbWUgcGxhdGZvcm1zLgpAQCAtMTE2LDI2
ICsxMjksNTIgQEAgZW51bSBjbGFzcyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA6IHVp
bnQ4X3QgewogICAgIFNuaWZmLAogICAgIERvTm90U25pZmYsCiB9Oworc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBiaXRzT2ZDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IDE7CiAKIGVu
dW0gY2xhc3MgUHJlZmxpZ2h0UG9saWN5IDogdWludDhfdCB7CiAgICAgQ29uc2lkZXIsCiAgICAg
Rm9yY2UsCiAgICAgUHJldmVudAogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09m
UHJlZmxpZ2h0UG9saWN5ID0gMjsKIAogZW51bSBjbGFzcyBMb2FkZWRGcm9tT3BhcXVlU291cmNl
IDogdWludDhfdCB7CiAgICAgWWVzLAogICAgIE5vCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBiaXRzT2ZMb2FkZWRGcm9tT3BhcXVlU291cmNlID0gMTsKIAogc3RydWN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewotICAgIFJlc291cmNlTG9hZGVy
T3B0aW9ucygpIHsgfQorICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpCisgICAgICAgIDogUmVz
b3VyY2VMb2FkZXJPcHRpb25zKEZldGNoT3B0aW9ucygpKQorICAgIHsKKyAgICB9CiAKLSAgICBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMoRmV0Y2hPcHRpb25zIG9wdGlvbnMpIDogRmV0Y2hPcHRpb25z
IHsgV1RGTW92ZShvcHRpb25zKSB9IHsgfQorICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyhGZXRj
aE9wdGlvbnMgb3B0aW9ucykKKyAgICAgICAgOiBGZXRjaE9wdGlvbnMgeyBXVEZNb3ZlKG9wdGlv
bnMpIH0KKyAgICAgICAgLCBzZW5kTG9hZENhbGxiYWNrcyhTZW5kQ2FsbGJhY2tQb2xpY3k6OkRv
Tm90U2VuZENhbGxiYWNrcykKKyAgICAgICAgLCBzbmlmZkNvbnRlbnQoQ29udGVudFNuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmQ29udGVudCkKKyAgICAgICAgLCBzbmlmZkNvbnRlbnRFbmNvZGlu
ZyhDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpCisgICAgICAgICwgZGF0YUJ1
ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZmZXJEYXRhKQorICAgICAgICAs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVz
ZSkKKyAgICAgICAgLCBzZWN1cml0eUNoZWNrKFNlY3VyaXR5Q2hlY2tQb2xpY3k6OkRvU2VjdXJp
dHlDaGVjaykKKyAgICAgICAgLCBjZXJ0aWZpY2F0ZUluZm9Qb2xpY3koQ2VydGlmaWNhdGVJbmZv
UG9saWN5OjpEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8pCisgICAgICAgICwgY29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpE
b1BvbGljeUNoZWNrKQorICAgICAgICAsIGRlZmVyc0xvYWRpbmdQb2xpY3koRGVmZXJzTG9hZGlu
Z1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nKQorICAgICAgICAsIGNhY2hpbmdQb2xpY3koQ2Fj
aGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nKQorICAgICAgICAsIHNhbWVPcmlnaW5EYXRhVVJMRmxh
ZyhTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlVuc2V0KQorICAgICAgICAsIGluaXRpYXRvckNvbnRl
eHQoSW5pdGlhdG9yQ29udGV4dDo6RG9jdW1lbnQpCisgICAgICAgICwgc2VydmljZVdvcmtlcnNN
b2RlKFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsKQorICAgICAgICAsIGFwcGxpY2F0aW9uQ2FjaGVN
b2RlKEFwcGxpY2F0aW9uQ2FjaGVNb2RlOjpVc2UpCisgICAgICAgICwgY2xpZW50Q3JlZGVudGlh
bFBvbGljeShDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50
aWFscykKKyAgICAgICAgLCBwcmVmbGlnaHRQb2xpY3koUHJlZmxpZ2h0UG9saWN5OjpDb25zaWRl
cikKKyAgICAgICAgLCBsb2FkZWRGcm9tT3BhcXVlU291cmNlKExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKQorICAgIHsgfQogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFj
a1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcywgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29u
dGVudCwgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9saWN5LCBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgQ2xpZW50Q3JlZGVudGlhbFBv
bGljeSBjcmVkZW50aWFsUG9saWN5LCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzLCBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9k
ZSBtb2RlLCBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgY2VydGlmaWNhdGVJbmZvUG9saWN5LCBDb250
ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b24sIERlZmVyc0xvYWRpbmdQb2xpY3kgZGVmZXJzTG9hZGluZ1BvbGljeSwgQ2FjaGluZ1BvbGlj
eSBjYWNoaW5nUG9saWN5KQogICAgICAgICA6IHNlbmRMb2FkQ2FsbGJhY2tzKHNlbmRMb2FkQ2Fs
bGJhY2tzKQogICAgICAgICAsIHNuaWZmQ29udGVudChzbmlmZkNvbnRlbnQpCisgICAgICAgICwg
c25pZmZDb250ZW50RW5jb2RpbmcoQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZm
KQogICAgICAgICAsIGRhdGFCdWZmZXJpbmdQb2xpY3koZGF0YUJ1ZmZlcmluZ1BvbGljeSkKICAg
ICAgICAgLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkK
ICAgICAgICAgLCBzZWN1cml0eUNoZWNrKHNlY3VyaXR5Q2hlY2spCkBAIC0xNDMsMzYgKzE4Miw0
MyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIDogcHVibGljIEZldGNoT3B0aW9ucyB7
CiAgICAgICAgICwgY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihjb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uKQogICAgICAgICAsIGRlZmVyc0xvYWRpbmdQb2xpY3koZGVmZXJz
TG9hZGluZ1BvbGljeSkKICAgICAgICAgLCBjYWNoaW5nUG9saWN5KGNhY2hpbmdQb2xpY3kpCisg
ICAgICAgICwgc2FtZU9yaWdpbkRhdGFVUkxGbGFnKFNhbWVPcmlnaW5EYXRhVVJMRmxhZzo6VW5z
ZXQpCisgICAgICAgICwgaW5pdGlhdG9yQ29udGV4dChJbml0aWF0b3JDb250ZXh0OjpEb2N1bWVu
dCkKKyAgICAgICAgLCBzZXJ2aWNlV29ya2Vyc01vZGUoU2VydmljZVdvcmtlcnNNb2RlOjpBbGwp
CisgICAgICAgICwgYXBwbGljYXRpb25DYWNoZU1vZGUoQXBwbGljYXRpb25DYWNoZU1vZGU6OlVz
ZSkKICAgICAgICAgLCBjbGllbnRDcmVkZW50aWFsUG9saWN5KGNyZWRlbnRpYWxQb2xpY3kpCisg
ICAgICAgICwgcHJlZmxpZ2h0UG9saWN5KFByZWZsaWdodFBvbGljeTo6Q29uc2lkZXIpCisgICAg
ICAgICwgbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZShMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObykK
KwogICAgIHsKICAgICAgICAgdGhpcy0+Y3JlZGVudGlhbHMgPSBjcmVkZW50aWFsczsKICAgICAg
ICAgdGhpcy0+bW9kZSA9IG1vZGU7CiAgICAgfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQotICAgIE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBzZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcjsKKyAgICBNYXJrYWJsZTxTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXI6Ok1hcmthYmxlVHJhaXRzPiBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cjsKICNlbmRpZgorICAgIE1hcmthYmxlPENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOjpNYXJrYWJsZVRyYWl0
cz4gY3NwUmVzcG9uc2VIZWFkZXJzOwogICAgIE9wdGlvblNldDxIVFRQSGVhZGVyc1RvS2VlcEZy
b21DbGVhbmluZz4gaHR0cEhlYWRlcnNUb0tlZXA7Ci0gICAgT3B0aW9uYWw8Q29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzPiBjc3BSZXNwb25zZUhlYWRlcnM7Ci0gICAgdW5zaWdu
ZWQgbWF4UmVkaXJlY3RDb3VudCB7IDIwIH07Ci0KLSAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2Vu
ZExvYWRDYWxsYmFja3MgeyBTZW5kQ2FsbGJhY2tQb2xpY3k6OkRvTm90U2VuZENhbGxiYWNrcyB9
OwotICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQgeyBDb250ZW50U25pZmZp
bmdQb2xpY3k6OkRvTm90U25pZmZDb250ZW50IH07Ci0gICAgQ29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc25pZmZDb250ZW50RW5jb2RpbmcgeyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeTo6U25pZmYgfTsKLSAgICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xp
Y3kgeyBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZmZXJEYXRhIH07Ci0gICAgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2UgfTsKLSAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2sg
eyBTZWN1cml0eUNoZWNrUG9saWN5OjpEb1NlY3VyaXR5Q2hlY2sgfTsKLSAgICBDZXJ0aWZpY2F0
ZUluZm9Qb2xpY3kgY2VydGlmaWNhdGVJbmZvUG9saWN5IHsgQ2VydGlmaWNhdGVJbmZvUG9saWN5
OjpEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8gfTsKLSAgICBDb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24geyBDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrIH07Ci0gICAgRGVmZXJzTG9hZGlu
Z1BvbGljeSBkZWZlcnNMb2FkaW5nUG9saWN5IHsgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dE
ZWZlcnNMb2FkaW5nIH07Ci0gICAgQ2FjaGluZ1BvbGljeSBjYWNoaW5nUG9saWN5IHsgQ2FjaGlu
Z1BvbGljeTo6QWxsb3dDYWNoaW5nIH07Ci0gICAgU2FtZU9yaWdpbkRhdGFVUkxGbGFnIHNhbWVP
cmlnaW5EYXRhVVJMRmxhZyB7IFNhbWVPcmlnaW5EYXRhVVJMRmxhZzo6VW5zZXQgfTsKLSAgICBJ
bml0aWF0b3JDb250ZXh0IGluaXRpYXRvckNvbnRleHQgeyBJbml0aWF0b3JDb250ZXh0OjpEb2N1
bWVudCB9OwotICAgIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29ya2Vyc01vZGUgeyBTZXJ2
aWNlV29ya2Vyc01vZGU6OkFsbCB9OwotICAgIEFwcGxpY2F0aW9uQ2FjaGVNb2RlIGFwcGxpY2F0
aW9uQ2FjaGVNb2RlIHsgQXBwbGljYXRpb25DYWNoZU1vZGU6OlVzZSB9OwotICAgIENsaWVudENy
ZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSB7IENsaWVudENyZWRlbnRpYWxQ
b2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzIH07Ci0gICAgUHJlZmxpZ2h0UG9s
aWN5IHByZWZsaWdodFBvbGljeSB7IFByZWZsaWdodFBvbGljeTo6Q29uc2lkZXIgfTsKLSAgICBM
b2FkZWRGcm9tT3BhcXVlU291cmNlIGxvYWRlZEZyb21PcGFxdWVTb3VyY2UgeyBMb2FkZWRGcm9t
T3BhcXVlU291cmNlOjpObyB9OworICAgIHVpbnQ4X3QgbWF4UmVkaXJlY3RDb3VudCB7IDIwIH07
CisKKyAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MgOiBiaXRzT2ZTZW5k
Q2FsbGJhY2tQb2xpY3k7CisgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCA6
IGJpdHNPZkNvbnRlbnRTbmlmZmluZ1BvbGljeTsKKyAgICBDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSBzbmlmZkNvbnRlbnRFbmNvZGluZyA6IGJpdHNPZkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OworICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSA6
IGJpdHNPZkRhdGFCdWZmZXJpbmdQb2xpY3k7CisgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgOiBiaXRzT2ZTdG9yZWRDcmVkZW50aWFsc1BvbGljeTsK
KyAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2sgOiBiaXRzT2ZTZWN1cml0eUNo
ZWNrUG9saWN5OworICAgIENlcnRpZmljYXRlSW5mb1BvbGljeSBjZXJ0aWZpY2F0ZUluZm9Qb2xp
Y3kgOiBiaXRzT2ZDZXJ0aWZpY2F0ZUluZm9Qb2xpY3k7CisgICAgQ29udGVudFNlY3VyaXR5UG9s
aWN5SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uIDogYml0c09mQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjsKKyAgICBEZWZlcnNMb2FkaW5nUG9saWN5IGRl
ZmVyc0xvYWRpbmdQb2xpY3kgOiBiaXRzT2ZEZWZlcnNMb2FkaW5nUG9saWN5OworICAgIENhY2hp
bmdQb2xpY3kgY2FjaGluZ1BvbGljeSA6IGJpdHNPZkNhY2hpbmdQb2xpY3k7CisgICAgU2FtZU9y
aWdpbkRhdGFVUkxGbGFnIHNhbWVPcmlnaW5EYXRhVVJMRmxhZyA6IGJpdHNPZlNhbWVPcmlnaW5E
YXRhVVJMRmxhZzsKKyAgICBJbml0aWF0b3JDb250ZXh0IGluaXRpYXRvckNvbnRleHQgOiBiaXRz
T2ZJbml0aWF0b3JDb250ZXh0OworICAgIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29ya2Vy
c01vZGUgOiBiaXRzT2ZTZXJ2aWNlV29ya2Vyc01vZGU7CisgICAgQXBwbGljYXRpb25DYWNoZU1v
ZGUgYXBwbGljYXRpb25DYWNoZU1vZGUgOiBiaXRzT2ZBcHBsaWNhdGlvbkNhY2hlTW9kZTsKKyAg
ICBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3kgOiBiaXRzT2ZD
bGllbnRDcmVkZW50aWFsUG9saWN5OworICAgIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xp
Y3kgOiBiaXRzT2ZQcmVmbGlnaHRQb2xpY3k7CisgICAgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSBs
b2FkZWRGcm9tT3BhcXVlU291cmNlIDogYml0c09mTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCmluZGV4IGVmYjZmNWE1YjM5Y2RhY2VkNjRkMjZlZmRhZmZlNzU1NGQ4
OTJjYTYuLjRmZjNhNGNhMTA5YTFlNGNiNjQzNmE3NjlhOGZkMWE5OGY3ZmY4NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNTcsNiArNTcsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklE
LCBjb25zdCBDb29raWVKYXIqIGNvb2tpZUphcikKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1v
dmUocmVxdWVzdCksIFR5cGU6OkltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCwgY29va2llSmFyKQor
ICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tl
bkltYWdlKHRydWUpCisgICAgLCBtX2ZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3Rp
bmcoZmFsc2UpCiB7CiAgICAgc2V0U3RhdHVzKFVua25vd24pOwogfQpAQCAtNjQsNiArNjcsOSBA
QCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmCiBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoSW1hZ2Uq
IGltYWdlLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBDb29raWVKYXIq
IGNvb2tpZUphcikKICAgICA6IENhY2hlZFJlc291cmNlKFVSTCgpLCBUeXBlOjpJbWFnZVJlc291
cmNlLCBzZXNzaW9uSUQsIGNvb2tpZUphcikKICAgICAsIG1faW1hZ2UoaW1hZ2UpCisgICAgLCBt
X2lzTWFudWFsbHlDYWNoZWQoZmFsc2UpCisgICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2Uo
dHJ1ZSkKKyAgICAsIG1fZm9yY2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhmYWxz
ZSkKIHsKIH0KIApAQCAtNzEsNiArNzcsOCBAQCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29u
c3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlcwogICAg
IDogQ2FjaGVkUmVzb3VyY2UodXJsLCBUeXBlOjpJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQsIGNv
b2tpZUphcikKICAgICAsIG1faW1hZ2UoaW1hZ2UpCiAgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQo
dHJ1ZSkKKyAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQorICAgICwgbV9mb3Jj
ZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nKGZhbHNlKQogewogICAgIG1fcmVzb3Vy
Y2VSZXF1ZXN0LnNldERvbWFpbkZvckNhY2hlUGFydGl0aW9uKGRvbWFpbkZvckNhY2hlUGFydGl0
aW9uKTsKIApAQCAtNDkzLDcgKzUwMSw3IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OnVwZGF0ZUJ1ZmZl
ckludGVybmFsKFNoYXJlZEJ1ZmZlciYgZGF0YSkKIGJvb2wgQ2FjaGVkSW1hZ2U6OnNob3VsZERl
ZmVyVXBkYXRlSW1hZ2VEYXRhKCkgY29uc3QKIHsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHVw
ZGF0ZUltYWdlRGF0YUJhY2tvZmZJbnRlcnZhbHNbXSA9IHsgMCwgMSwgMywgNiwgMTUgfTsKLSAg
ICB1bnNpZ25lZCBpbnRlcnZhbCA9IHN0ZDo6bWluPHVuc2lnbmVkPihtX3VwZGF0ZUltYWdlRGF0
YUNvdW50LCA0KTsKKyAgICB1bnNpZ25lZCBpbnRlcnZhbCA9IG1fdXBkYXRlSW1hZ2VEYXRhQ291
bnQ7CiAKICAgICAvLyBUaGUgZmlyc3QgdGltZSB0aHJvdWdoLCB0aGUgY2h1bmsgdGltZSB3aWxs
IGJlIDAgYW5kIHRoZSBpbWFnZSB3aWxsIGdldCBhbiB1cGRhdGUuCiAgICAgcmV0dXJuIChNb25v
dG9uaWNUaW1lOjpub3coKSAtIG1fbGFzdFVwZGF0ZUltYWdlRGF0YVRpbWUpLnNlY29uZHMoKSA8
IHVwZGF0ZUltYWdlRGF0YUJhY2tvZmZJbnRlcnZhbHNbaW50ZXJ2YWxdOwpAQCAtNTE1LDggKzUy
Myw5IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IENhY2hlZEltYWdlOjpjb252ZXJ0ZWREYXRhSWZO
ZWVkZWQoU2hhcmVkQnVmZmVyKiBkYXRhKSBjb25zCiB2b2lkIENhY2hlZEltYWdlOjpkaWRVcGRh
dGVJbWFnZURhdGEoKQogewogICAgIG1fbGFzdFVwZGF0ZUltYWdlRGF0YVRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKLSAgICBBU1NFUlQobV91cGRhdGVJbWFnZURhdGFDb3VudCA8IHN0ZDo6
bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSk7Ci0gICAgKyttX3VwZGF0ZUltYWdlRGF0
YUNvdW50OworICAgIHVuc2lnbmVkIHByZXZpb3VzID0gbV91cGRhdGVJbWFnZURhdGFDb3VudDsK
KyAgICBpZiAocHJldmlvdXMgIT0gbWF4VXBkYXRlSW1hZ2VEYXRhQ291bnQpCisgICAgICAgIG1f
dXBkYXRlSW1hZ2VEYXRhQ291bnQgKz0gMTsKIH0KIAogRW5jb2RlZERhdGFTdGF0dXMgQ2FjaGVk
SW1hZ2U6OnVwZGF0ZUltYWdlRGF0YShib29sIGFsbERhdGFSZWNlaXZlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggMjNjNGY1NGU2YTczMTMwY2ZlODRm
NGQ3MGM2MzlmNzZjZTY3NzNkOC4uNzQwNDViZTljYjYwYzM3Y2U0ZmVjMGExZWYwYWFmMWY2MDM0
MmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTE4
NCwxMCArMTg0LDExIEBAIGNsYXNzIENhY2hlZEltYWdlIGZpbmFsIDogcHVibGljIENhY2hlZFJl
c291cmNlIHsKIAogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VXBkYXRlSW1hZ2VEYXRhVGltZTsK
IAotICAgIHVuc2lnbmVkIG1fdXBkYXRlSW1hZ2VEYXRhQ291bnQgeyAwIH07Ci0gICAgYm9vbCBt
X2lzTWFudWFsbHlDYWNoZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tl
bkltYWdlIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9mb3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRG
b3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFVw
ZGF0ZUltYWdlRGF0YUNvdW50ID0gNDsKKyAgICB1bnNpZ25lZCBtX3VwZGF0ZUltYWdlRGF0YUNv
dW50IDogMzsKKyAgICBib29sIG1faXNNYW51YWxseUNhY2hlZCA6IDE7CisgICAgYm9vbCBtX3No
b3VsZFBhaW50QnJva2VuSW1hZ2UgOiAxOworICAgIGJvb2wgbV9mb3JjZVVwZGF0ZUltYWdlRGF0
YUVuYWJsZWRGb3JUZXN0aW5nIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGM3
NWIzZGMwYjJjNGZhNDc1OTAzZDMzMWE5MjJiMTgwNDgwZGRlZjQuLjhiZTYyOWZhNTliZGMzNzZi
OTUwOGQ1MDlhODEzMDgwMjc2ZGIyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTI5LDEwICsxMjksMTcgQEAgQ2FjaGVkUmVzb3Vy
Y2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUg
dHlwZSwgY29uc3QKICAgICAsIG1fZnJhZ21lbnRJZGVudGlmaWVyRm9yUmVxdWVzdChyZXF1ZXN0
LnJlbGVhc2VGcmFnbWVudElkZW50aWZpZXIoKSkKICAgICAsIG1fb3JpZ2luKHJlcXVlc3QucmVs
ZWFzZU9yaWdpbigpKQogICAgICwgbV9pbml0aWF0b3JOYW1lKHJlcXVlc3QuaW5pdGlhdG9yTmFt
ZSgpKQotICAgICwgbV9sb2FkUHJpb3JpdHkoZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBl
KHR5cGUpKQogICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX3ByZWxvYWRSZXN1bHQoUHJlbG9h
ZFJlc3VsdDo6UHJlbG9hZE5vdFJlZmVyZW5jZWQpCisgICAgLCBtX3Jlc3BvbnNlVGFpbnRpbmco
UmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6OkJhc2ljKQorICAgICwgbV9sb2FkUHJpb3JpdHko
ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUpKQorICAgICwgbV9zdGF0dXMoUGVu
ZGluZykKKyAgICAsIG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllcihmYWxzZSkKKyAgICAs
IG1faW5DYWNoZShmYWxzZSkKKyAgICAsIG1fbG9hZGluZyhmYWxzZSkKICAgICAsIG1faXNMaW5r
UHJlbG9hZChyZXF1ZXN0LmlzTGlua1ByZWxvYWQoKSkKICAgICAsIG1faGFzVW5rbm93bkVuY29k
aW5nKHJlcXVlc3QuaXNMaW5rUHJlbG9hZCgpKQorICAgICwgbV9zd2l0Y2hpbmdDbGllbnRzVG9S
ZXZhbGlkYXRlZFJlc291cmNlKGZhbHNlKQogICAgICwgbV9pZ25vcmVGb3JSZXF1ZXN0Q291bnQo
cmVxdWVzdC5pZ25vcmVGb3JSZXF1ZXN0Q291bnQoKSkKIHsKICAgICBBU1NFUlQobV9zZXNzaW9u
SUQuaXNWYWxpZCgpKTsKQEAgLTE1Nyw4ICsxNjQsMTcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKGNvbnN0IFVSTCYgdXJsLCBUeXBlIHR5cGUsIGNvbnN0IFBBTDo6U2Vzc2lvbklE
JgogICAgICwgbV9jb29raWVKYXIoY29va2llSmFyKQogICAgICwgbV9yZXNwb25zZVRpbWVzdGFt
cChXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX2ZyYWdtZW50SWRlbnRpZmllckZvclJlcXVlc3Qo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzcGxpdEZyYWdtZW50SWRlbnRpZmllckZyb21SZXF1ZXN0
VVJMKG1fcmVzb3VyY2VSZXF1ZXN0KSkKLSAgICAsIG1fc3RhdHVzKENhY2hlZCkKICAgICAsIG1f
dHlwZSh0eXBlKQorICAgICwgbV9wcmVsb2FkUmVzdWx0KFByZWxvYWRSZXN1bHQ6OlByZWxvYWRO
b3RSZWZlcmVuY2VkKQorICAgICwgbV9yZXNwb25zZVRhaW50aW5nKFJlc291cmNlUmVzcG9uc2U6
OlRhaW50aW5nOjpCYXNpYykKKyAgICAsIG1fc3RhdHVzKENhY2hlZCkKKyAgICAsIG1fcmVxdWVz
dGVkRnJvbU5ldHdvcmtpbmdMYXllcihmYWxzZSkKKyAgICAsIG1faW5DYWNoZShmYWxzZSkKKyAg
ICAsIG1fbG9hZGluZyhmYWxzZSkKKyAgICAsIG1faXNMaW5rUHJlbG9hZChmYWxzZSkKKyAgICAs
IG1faGFzVW5rbm93bkVuY29kaW5nKGZhbHNlKQorICAgICwgbV9zd2l0Y2hpbmdDbGllbnRzVG9S
ZXZhbGlkYXRlZFJlc291cmNlKGZhbHNlKQorICAgICwgbV9pZ25vcmVGb3JSZXF1ZXN0Q291bnQo
ZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAjaWZuZGVmIE5E
RUJVRwpAQCAtMzEyLDcgKzMyOCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVk
UmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQogICAgICAgICAgICAgZmFpbEJl
Zm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
bV9zdGF0dXMgPSBQZW5kaW5nOworICAgICAgICBzZXRTdGF0dXMoUGVuZGluZyk7CiAgICAgfSk7
CiB9CiAKQEAgLTM5OSw3ICs0MTUsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpjYW5jZWxMb2Fk
KCkKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaCgpCiB7CiAgICAgaWYgKCFlcnJvck9jY3Vy
cmVkKCkpCi0gICAgICAgIG1fc3RhdHVzID0gQ2FjaGVkOworICAgICAgICBzZXRTdGF0dXMoQ2Fj
aGVkKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0Q3Jvc3NPcmlnaW4oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBjNGRiNGViY2M0
OWRiNTVmYWI3Y2QwMjA3ZmZhYWMwNDNlMjZhMTExLi44OTAwOTA1NGI4ODIyOWU0YmI0NDA0ZDg1
MDVhNGJmMTlhOThhMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuaApAQCAtNzcsMjYgKzc3LDMxIEBAIGNsYXNzIENhY2hlZFJlc291cmNlIHsKICAg
ICAgICAgSWNvbiwKICAgICAgICAgQmVhY29uLAogICAgICAgICBQaW5nLAotICAgICAgICBTVkdE
b2N1bWVudFJlc291cmNlCiAjaWYgRU5BQkxFKFhTTFQpCi0gICAgICAgICwgWFNMU3R5bGVTaGVl
dAorICAgICAgICBYU0xTdHlsZVNoZWV0LAogI2VuZGlmCi0gICAgICAgICwgTGlua1ByZWZldGNo
CisgICAgICAgIExpbmtQcmVmZXRjaCwKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgICAg
ICwgVGV4dFRyYWNrUmVzb3VyY2UKKyAgICAgICAgVGV4dFRyYWNrUmVzb3VyY2UsCiAjZW5kaWYK
ICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCi0gICAgICAgICwgQXBwbGljYXRpb25N
YW5pZmVzdAorICAgICAgICBBcHBsaWNhdGlvbk1hbmlmZXN0LAogI2VuZGlmCisgICAgICAgIFNW
R0RvY3VtZW50UmVzb3VyY2UsCisgICAgICAgIExhc3RUeXBlID0gU1ZHRG9jdW1lbnRSZXNvdXJj
ZSwKICAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mVHlwZSA9IDU7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oVHlwZTo6TGFzdFR5cGUp
IDw9ICgoMVUgPDwgYml0c09mVHlwZSkgLSAxKSk7CiAKLSAgICBlbnVtIFN0YXR1cyB7CisgICAg
ZW51bSBTdGF0dXMgOiB1aW50OF90IHsKICAgICAgICAgVW5rbm93biwgICAgICAvLyBsZXQgY2Fj
aGUgZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCBpdAogICAgICAgICBQZW5kaW5nLCAgICAgIC8vIG9u
bHkgcGFydGlhbGx5IGxvYWRlZAogICAgICAgICBDYWNoZWQsICAgICAgIC8vIHJlZ3VsYXIgY2Fz
ZQogICAgICAgICBMb2FkRXJyb3IsCiAgICAgICAgIERlY29kZUVycm9yCiAgICAgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlN0YXR1cyA9IDM7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRGVjb2RlRXJyb3IpIDw9ICgoMVVMTCA8PCBiaXRz
T2ZTdGF0dXMpIC0gMSkpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYsIFR5cGUsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgQ29va2llSmFyKik7CiAg
ICAgdmlydHVhbCB+Q2FjaGVkUmVzb3VyY2UoKTsKQEAgLTE0Miw2ICsxNDcsOCBAQCBjbGFzcyBD
YWNoZWRSZXNvdXJjZSB7CiAgICAgICAgIFByZWxvYWRSZWZlcmVuY2VkV2hpbGVMb2FkaW5nLAog
ICAgICAgICBQcmVsb2FkUmVmZXJlbmNlZFdoaWxlQ29tcGxldGUKICAgICB9OworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09mUHJlbG9hZFJlc3VsdCA9IDI7CisKICAgICBQcmVs
b2FkUmVzdWx0IHByZWxvYWRSZXN1bHQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQcmVs
b2FkUmVzdWx0PihtX3ByZWxvYWRSZXN1bHQpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
Q2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Jik7CkBAIC0xNTIsNyArMTU5LDExIEBAIGNsYXNz
IENhY2hlZFJlc291cmNlIHsKICAgICB1bnNpZ25lZCBudW1iZXJPZkNsaWVudHMoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudHMuc2l6ZSgpOyB9CiAKICAgICBTdGF0dXMgc3RhdHVzKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RhdHVzPihtX3N0YXR1cyk7IH0KLSAgICB2b2lkIHNldFN0
YXR1cyhTdGF0dXMgc3RhdHVzKSB7IG1fc3RhdHVzID0gc3RhdHVzOyB9CisgICAgdm9pZCBzZXRT
dGF0dXMoU3RhdHVzIHN0YXR1cykKKyAgICB7CisgICAgICAgIG1fc3RhdHVzID0gc3RhdHVzOwor
ICAgICAgICBBU1NFUlQodGhpcy0+c3RhdHVzKCkgPT0gc3RhdHVzKTsKKyAgICB9CiAKICAgICB1
bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gZW5jb2RlZFNpemUoKSArIGRlY29kZWRTaXpl
KCkgKyBvdmVyaGVhZFNpemUoKTsgfQogICAgIHVuc2lnbmVkIGVuY29kZWRTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmNvZGVkU2l6ZTsgfQpAQCAtMzUzLDMwICszNjQsMjggQEAgY2xhc3MgQ2Fj
aGVkUmVzb3VyY2UgewogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiAgICAg
QXRvbVN0cmluZyBtX2luaXRpYXRvck5hbWU7CiAKLSAgICBSZWRpcmVjdENoYWluQ2FjaGVTdGF0
dXMgbV9yZWRpcmVjdENoYWluQ2FjaGVTdGF0dXM7Ci0KICAgICB1bnNpZ25lZCBtX2VuY29kZWRT
aXplIHsgMCB9OwogICAgIHVuc2lnbmVkIG1fZGVjb2RlZFNpemUgeyAwIH07CiAgICAgdW5zaWdu
ZWQgbV9hY2Nlc3NDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2hhbmRsZUNvdW50IHsgMCB9
OwogICAgIHVuc2lnbmVkIG1fcHJlbG9hZENvdW50IHsgMCB9OwogCi0gICAgdW5zaWduZWQgbV9z
dGF0dXMgeyBQZW5kaW5nIH07IC8vIFN0YXR1cwotCi0gICAgUHJlbG9hZFJlc3VsdCBtX3ByZWxv
YWRSZXN1bHQgeyBQcmVsb2FkUmVzdWx0OjpQcmVsb2FkTm90UmVmZXJlbmNlZCB9OworICAgIFJl
ZGlyZWN0Q2hhaW5DYWNoZVN0YXR1cyBtX3JlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1czsKIAotICAg
IFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nIG1fcmVzcG9uc2VUYWludGluZyB7IFJlc291cmNl
UmVzcG9uc2U6OlRhaW50aW5nOjpCYXNpYyB9OwotICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1f
bG9hZFByaW9yaXR5OworICAgIFR5cGUgbV90eXBlIDogYml0c09mVHlwZTsKIAotICAgIFR5cGUg
bV90eXBlOyAvLyBUeXBlCisgICAgUHJlbG9hZFJlc3VsdCBtX3ByZWxvYWRSZXN1bHQgOiBiaXRz
T2ZQcmVsb2FkUmVzdWx0OworICAgIFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nIG1fcmVzcG9u
c2VUYWludGluZyA6IFJlc291cmNlUmVzcG9uc2U6OmJpdHNPZlRhaW50aW5nOworICAgIFJlc291
cmNlTG9hZFByaW9yaXR5IG1fbG9hZFByaW9yaXR5IDogYml0c09mUmVzb3VyY2VMb2FkUHJpb3Jp
dHk7CiAKLSAgICBib29sIG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2luQ2FjaGUgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9sb2FkaW5nIHsgZmFs
c2UgfTsKLSAgICBib29sIG1faXNMaW5rUHJlbG9hZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hh
c1Vua25vd25FbmNvZGluZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3N3aXRjaGluZ0NsaWVudHNU
b1JldmFsaWRhdGVkUmVzb3VyY2UgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pZ25vcmVGb3JSZXF1
ZXN0Q291bnQgeyBmYWxzZSB9OworICAgIFN0YXR1cyBtX3N0YXR1cyA6IGJpdHNPZlN0YXR1czsK
KyAgICBib29sIG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA6IDE7CisgICAgYm9vbCBt
X2luQ2FjaGUgOiAxOworICAgIGJvb2wgbV9sb2FkaW5nIDogMTsKKyAgICBib29sIG1faXNMaW5r
UHJlbG9hZCA6IDE7CisgICAgYm9vbCBtX2hhc1Vua25vd25FbmNvZGluZyA6IDE7CisgICAgYm9v
bCBtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UgOiAxOworICAgIGJvb2wg
bV9pZ25vcmVGb3JSZXF1ZXN0Q291bnQgOiAxOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBi
b29sIG1fZGVsZXRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oCmluZGV4
IDViMzY5ZjQ0NDg0YzYxN2NmOGUwNTg2MTMxMjNlNjAzZjliNjU0M2QuLmMwOTY1MjBhNDllY2Rh
MWI3OTllMTAxMjRlYjIyNjdkY2M2YWM5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5o
CkBAIC01MCwxMSArNTAsMjggQEAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOwogCisg
ICAgZW51bSBFbXB0eVRhZyB7IEVtcHR5IH07CisgICAgc3RydWN0IE1hcmthYmxlVHJhaXRzIHsK
KyAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYgaWRlbnRpZmllcikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGlkZW50aWZpZXIubV9lbXB0eUZvck1hcmthYmxlOworICAgICAgICB9CisKKyAgICAg
ICAgc3RhdGljIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBlbXB0eVZhbHVl
KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyhFbXB0eSk7CisgICAgICAgIH0KKyAgICB9OworCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzKEVtcHR5VGFnKQorICAgICAgICA6IG1fZW1wdHlGb3JNYXJr
YWJsZSh0cnVlKQorICAgIHsgfQogCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIENvbnRl
bnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGU+PiBtX2hlYWRlcnM7CiAgICAgaW50IG1faHR0cFN0
YXR1c0NvZGUgeyAwIH07CisgICAgYm9vbCBtX2VtcHR5Rm9yTWFya2FibGUgeyBmYWxzZSB9Owog
fTsKIAogdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAppbmRleCBlYTdmODhlZTQ1NTVm
MGE1NjUzNmNhNzRjNGY3MGY1N2UwYzg0Yzk0Li5hMzZmMzQ5NzI1N2Q2ODgzZjVlY2I5MjFiY2Uy
YWUwYjM0ZDE2YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKQEAgLTcwLDkgKzcwLDkgQEAgY2xhc3MgTmV0d29ya0xv
YWRNZXRyaWNzIHsKIAogICAgICAgICBjb3B5LnJlbW90ZUFkZHJlc3MgPSByZW1vdGVBZGRyZXNz
Lmlzb2xhdGVkQ29weSgpOwogICAgICAgICBjb3B5LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29u
bmVjdGlvbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCk7Ci0gICAgICAgIGNvcHkucHJpb3JpdHkg
PSBwcmlvcml0eTsKICAgICAgICAgY29weS50bHNQcm90b2NvbCA9IHRsc1Byb3RvY29sLmlzb2xh
dGVkQ29weSgpOwogICAgICAgICBjb3B5LnRsc0NpcGhlciA9IHRsc0NpcGhlci5pc29sYXRlZENv
cHkoKTsKKyAgICAgICAgY29weS5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgICAgICBjb3B5LnJl
cXVlc3RIZWFkZXJzID0gcmVxdWVzdEhlYWRlcnMuaXNvbGF0ZWRDb3B5KCk7CiAKICAgICAgICAg
Y29weS5yZXF1ZXN0SGVhZGVyQnl0ZXNTZW50ID0gcmVxdWVzdEhlYWRlckJ5dGVzU2VudDsKQEAg
LTEwMyw5ICsxMDMsOSBAQCBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3MgewogICAgIHsKICAgICAg
ICAgcmVtb3RlQWRkcmVzcyA9IFN0cmluZygpOwogICAgICAgICBjb25uZWN0aW9uSWRlbnRpZmll
ciA9IFN0cmluZygpOwotICAgICAgICBwcmlvcml0eSA9IE5ldHdvcmtMb2FkUHJpb3JpdHk6OlVu
a25vd247CiAgICAgICAgIHRsc1Byb3RvY29sID0gU3RyaW5nKCk7CiAgICAgICAgIHRsc0NpcGhl
ciA9IFN0cmluZygpOworICAgICAgICBwcmlvcml0eSA9IE5ldHdvcmtMb2FkUHJpb3JpdHk6OlVu
a25vd247CiAgICAgICAgIHJlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CiAgICAgICAgIHJlcXVlc3RI
ZWFkZXJCeXRlc1NlbnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7CiAg
ICAgICAgIHJlcXVlc3RCb2R5Qnl0ZXNTZW50ID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRf
dD46Om1heCgpOwpAQCAtMTI4LDkgKzEyOCw5IEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljcyB7
CiAgICAgICAgICAgICAmJiBwcm90b2NvbCA9PSBvdGhlci5wcm90b2NvbAogICAgICAgICAgICAg
JiYgcmVtb3RlQWRkcmVzcyA9PSBvdGhlci5yZW1vdGVBZGRyZXNzCiAgICAgICAgICAgICAmJiBj
b25uZWN0aW9uSWRlbnRpZmllciA9PSBvdGhlci5jb25uZWN0aW9uSWRlbnRpZmllcgotICAgICAg
ICAgICAgJiYgcHJpb3JpdHkgPT0gb3RoZXIucHJpb3JpdHkKICAgICAgICAgICAgICYmIHRsc1By
b3RvY29sID09IG90aGVyLnRsc1Byb3RvY29sCiAgICAgICAgICAgICAmJiB0bHNDaXBoZXIgPT0g
b3RoZXIudGxzQ2lwaGVyCisgICAgICAgICAgICAmJiBwcmlvcml0eSA9PSBvdGhlci5wcmlvcml0
eQogICAgICAgICAgICAgJiYgcmVxdWVzdEhlYWRlcnMgPT0gb3RoZXIucmVxdWVzdEhlYWRlcnMK
ICAgICAgICAgICAgICYmIHJlcXVlc3RIZWFkZXJCeXRlc1NlbnQgPT0gb3RoZXIucmVxdWVzdEhl
YWRlckJ5dGVzU2VudAogICAgICAgICAgICAgJiYgcmVxdWVzdEJvZHlCeXRlc1NlbnQgPT0gb3Ro
ZXIucmVxdWVzdEJvZHlCeXRlc1NlbnQKQEAgLTE2NiwxMiArMTY2LDEyIEBAIGNsYXNzIE5ldHdv
cmtMb2FkTWV0cmljcyB7CiAKICAgICBTdHJpbmcgcmVtb3RlQWRkcmVzczsKICAgICBTdHJpbmcg
Y29ubmVjdGlvbklkZW50aWZpZXI7Ci0gICAgTmV0d29ya0xvYWRQcmlvcml0eSBwcmlvcml0eTsK
IAogICAgIFN0cmluZyB0bHNQcm90b2NvbDsKICAgICBTdHJpbmcgdGxzQ2lwaGVyOwogCiAgICAg
Ly8gV2hldGhlciBvciBub3QgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzICgwIG9yIG90aGVyd2lzZSkg
aGF2ZSBiZWVuIHNldC4KKyAgICBOZXR3b3JrTG9hZFByaW9yaXR5IHByaW9yaXR5OwogICAgIGJv
b2wgY29tcGxldGUgeyBmYWxzZSB9OwogCiAgICAgSFRUUEhlYWRlck1hcCByZXF1ZXN0SGVhZGVy
czsKQEAgLTIwMiw5ICsyMDIsOSBAQCB2b2lkIE5ldHdvcmtMb2FkTWV0cmljczo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBwcm90b2NvbDsKICAgICBlbmNv
ZGVyIDw8IHJlbW90ZUFkZHJlc3M7CiAgICAgZW5jb2RlciA8PCBjb25uZWN0aW9uSWRlbnRpZmll
cjsKLSAgICBlbmNvZGVyIDw8IHByaW9yaXR5OwogICAgIGVuY29kZXIgPDwgdGxzUHJvdG9jb2w7
CiAgICAgZW5jb2RlciA8PCB0bHNDaXBoZXI7CisgICAgZW5jb2RlciA8PCBwcmlvcml0eTsKICAg
ICBlbmNvZGVyIDw8IHJlcXVlc3RIZWFkZXJzOwogICAgIGVuY29kZXIgPDwgcmVxdWVzdEhlYWRl
ckJ5dGVzU2VudDsKICAgICBlbmNvZGVyIDw8IHJlcXVlc3RCb2R5Qnl0ZXNTZW50OwpAQCAtMjI4
LDkgKzIyOCw5IEBAIGJvb2wgTmV0d29ya0xvYWRNZXRyaWNzOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgTmV0d29ya0xvYWRNZXRyaWNzJiBtZXRyaWNzKQogICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShtZXRyaWNzLnByb3RvY29sKQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShtZXRyaWNz
LnJlbW90ZUFkZHJlc3MpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MuY29ubmVj
dGlvbklkZW50aWZpZXIpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MucHJpb3Jp
dHkpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MudGxzUHJvdG9jb2wpCiAgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJpY3MudGxzQ2lwaGVyKQorICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShtZXRyaWNzLnByaW9yaXR5KQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZSht
ZXRyaWNzLnJlcXVlc3RIZWFkZXJzKQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShtZXRyaWNz
LnJlcXVlc3RIZWFkZXJCeXRlc1NlbnQpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKG1ldHJp
Y3MucmVxdWVzdEJvZHlCeXRlc1NlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgKaW5kZXggNDEyZWIwYjc4OTBmODA4
MzMzNzRiZDE2YTQ4OWJmNTdhNzFhYjdmZC4uMjA0Y2ZiNTEzZDFiNjBkZDkwODg5MTc1MTkxNDAy
M2IwM2JjYzQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRQcmlvcml0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaApAQCAtMzcsNiArMzcsOCBAQCBlbnVtIGNsYXNzIFJl
c291cmNlTG9hZFByaW9yaXR5IDogdWludDhfdCB7CiAgICAgTG93ZXN0ID0gVmVyeUxvdywKICAg
ICBIaWdoZXN0ID0gVmVyeUhpZ2gsCiB9Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRz
T2ZSZXNvdXJjZUxvYWRQcmlvcml0eSA9IDM7CitzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVu
c2lnbmVkPihSZXNvdXJjZUxvYWRQcmlvcml0eTo6SGlnaGVzdCkgPD0gKCgxVSA8PCBiaXRzT2ZS
ZXNvdXJjZUxvYWRQcmlvcml0eSkgLSAxKSk7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZXNv
dXJjZUxvYWRQcmlvcml0eUNvdW50IHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlc291cmNlTG9h
ZFByaW9yaXR5OjpIaWdoZXN0KSArIDEgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCAwOWZiZDQ5NDFiMGJk
ZjljOGFiM2Y3NWYzMDIwODZiNmMzNjg0OGY4Li42ZTAzYTliNTEyNjdlMmYzODAwZWQ4NjdjOWFk
YTg0ODExNTE5Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtMTk3LDggKzE5NywxMyBAQCBjbGFzcyBSZXNv
dXJjZVJlcXVlc3RCYXNlIHsKIHByb3RlY3RlZDoKICAgICAvLyBVc2VkIHdoZW4gUmVzb3VyY2VS
ZXF1ZXN0IGlzIGluaXRpYWxpemVkIGZyb20gYSBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbiBvZiB0
aGUgcmVxdWVzdAogICAgIFJlc291cmNlUmVxdWVzdEJhc2UoKQotICAgICAgICA6IG1fcGxhdGZv
cm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQorICAgICAgICA6IG1fYWxsb3dDb29raWVzKGZhbHNlKQor
ICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0VXBkYXRlZChmYWxzZSkKKyAgICAgICAgLCBtX3Bs
YXRmb3JtUmVxdWVzdFVwZGF0ZWQodHJ1ZSkKKyAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdEJv
ZHlVcGRhdGVkKGZhbHNlKQogICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0Qm9keVVwZGF0ZWQo
dHJ1ZSkKKyAgICAgICAgLCBtX2hpZGRlbkZyb21JbnNwZWN0b3IoZmFsc2UpCisgICAgICAgICwg
bV9pc1RvcFNpdGUoZmFsc2UpCiAgICAgewogICAgIH0KIApAQCAtMjA5LDcgKzIxNCwxMSBAQCBj
bGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlIHsKICAgICAgICAgLCBtX2NhY2hlUG9saWN5KHBvbGlj
eSkKICAgICAgICAgLCBtX2FsbG93Q29va2llcyh0cnVlKQogICAgICAgICAsIG1fcmVzb3VyY2VS
ZXF1ZXN0VXBkYXRlZCh0cnVlKQorICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZChm
YWxzZSkKICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkKHRydWUpCisgICAg
ICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RCb2R5VXBkYXRlZChmYWxzZSkKKyAgICAgICAgLCBtX2hp
ZGRlbkZyb21JbnNwZWN0b3IoZmFsc2UpCisgICAgICAgICwgbV9pc1RvcFNpdGUoZmFsc2UpCiAg
ICAgewogICAgIH0KIApAQCAtMjM2LDEzICsyNDUsMTMgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
QmFzZSB7CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eSB7IFJlc291cmNlTG9h
ZFByaW9yaXR5OjpMb3cgfTsKICAgICBSZXF1ZXN0ZXIgbV9yZXF1ZXN0ZXIgeyBSZXF1ZXN0ZXI6
OlVuc3BlY2lmaWVkIH07CiAgICAgT3B0aW9uYWw8aW50PiBtX2luc3BlY3RvckluaXRpYXRvck5v
ZGVJZGVudGlmaWVyOwotICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXMgeyBmYWxzZSB9OwotICAgIG11
dGFibGUgYm9vbCBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQgeyBmYWxzZSB9OwotICAgIG11dGFi
bGUgYm9vbCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgeyBmYWxzZSB9OwotICAgIG11dGFibGUg
Ym9vbCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkIHsgZmFsc2UgfTsKLSAgICBtdXRhYmxl
IGJvb2wgbV9wbGF0Zm9ybVJlcXVlc3RCb2R5VXBkYXRlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBt
X2hpZGRlbkZyb21JbnNwZWN0b3IgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1RvcFNpdGUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXMgOiAxOworICAgIG11dGFibGUgYm9vbCBt
X3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQgOiAxOworICAgIG11dGFibGUgYm9vbCBtX3BsYXRmb3Jt
UmVxdWVzdFVwZGF0ZWQgOiAxOworICAgIG11dGFibGUgYm9vbCBtX3Jlc291cmNlUmVxdWVzdEJv
ZHlVcGRhdGVkIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9wbGF0Zm9ybVJlcXVlc3RCb2R5VXBk
YXRlZCA6IDE7CisgICAgYm9vbCBtX2hpZGRlbkZyb21JbnNwZWN0b3IgOiAxOworICAgIGJvb2wg
bV9pc1RvcFNpdGUgOiAxOwogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBPcHRpb25hbDxT
eXN0ZW1QcmV2aWV3SW5mbz4gbV9zeXN0ZW1QcmV2aWV3SW5mbzsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5o
CmluZGV4IGQyYjRmMWRlMWU2MDFjZjExOWM5NTBjNWFkMmQ5N2JkMWE5ZmVhYmUuLmJhNTYzMGYx
NWY5ZjhmMzE5YWIyMzJjZTEzMDAyNGQ0ZDBmYjk4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAgLTQ4LDcg
KzQ4LDkgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2UgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeyBCYXNp
YywgQ29ycywgRGVmYXVsdCwgRXJyb3IsIE9wYXF1ZSwgT3BhcXVlcmVkaXJlY3QgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlR5cGUgPSAzOwogICAgIGVudW0gY2xhc3Mg
VGFpbnRpbmcgOiB1aW50OF90IHsgQmFzaWMsIENvcnMsIE9wYXF1ZSwgT3BhcXVlcmVkaXJlY3Qg
fTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNPZlRhaW50aW5nID0gMjsKIAog
ICAgIHN0YXRpYyBib29sIGlzUmVkaXJlY3Rpb25TdGF0dXNDb2RlKGludCBjb2RlKSB7IHJldHVy
biBjb2RlID09IDMwMSB8fCBjb2RlID09IDMwMiB8fCBjb2RlID09IDMwMyB8fCBjb2RlID09IDMw
NyB8fCBjb2RlID09IDMwODsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKaW5kZXggYWQ0NzRmYmQxNTM4
ZDc5NDc3ZTQ5MDYwNzI3MzJlODc3NzRmZjYzZC4uOWQyMDE0MzJhMjRiYjQ2NzU4ODU1Yjk4NGFl
Y2JhODM5NTAwNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaApAQCAtMzIsNSArMzIsNiBAQCBlbnVt
IGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IDogdWludDhfdCB7CiAgICAgVXNlLAogICAg
IEVwaGVtZXJhbFN0YXRlbGVzcwogfTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c09m
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSAyOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="406134"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>