<?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>74840</bug_id>
          
          <creation_ts>2011-12-18 23:36:00 -0800</creation_ts>
          <short_desc>[CSS Shaders] Follow up bug to fix issues mentioned in comment 23 from bug 73317</short_desc>
          <delta_ts>2011-12-22 05:26:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73317</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523769</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-12-18 23:36:00 -0800</bug_when>
    <thetext>There are some issues mentioned by Nikolas Zimmermann after the patch got reviewed and committed. This bug is a follow up that fixes those issues.
https://bugs.webkit.org/show_bug.cgi?id=73317#c23</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524553</commentid>
    <comment_count>1</comment_count>
      <attachid>120014</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-12-20 05:35:43 -0800</bug_when>
    <thetext>Created attachment 120014
Patch V1

The spec seems to have been updated to use 1 by 1 as the default mesh. I&apos;ve also updated that and added some comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524568</commentid>
    <comment_count>2</comment_count>
      <attachid>120018</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-12-20 06:05:10 -0800</bug_when>
    <thetext>Created attachment 120018
Patch V2

Using the StringBuilder only inside the CachedShader.cpp file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525463</commentid>
    <comment_count>3</comment_count>
      <attachid>120018</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-12-21 12:25:17 -0800</bug_when>
    <thetext>Comment on attachment 120018
Patch V2

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

Much nicer, thanks a lot. r=me with a few comments:

&gt; Source/WebCore/platform/graphics/filters/CustomFilterShader.cpp:51
&gt; +const char* CustomFilterShader::defaultFragmentShaderString =
&gt; +        &quot;precision mediump float;\n&quot; \

I admit, I like the other solution much more now :-)
It&apos;s much more readable, would you mind updating it once again?

&gt; Source/WebCore/platform/graphics/filters/CustomFilterShader.h:79
&gt; +    static const char* defaultVertexShaderString;
&gt; +    static const char* defaultFragmentShaderString;

This could be removed again using this SHADER technique.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526200</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-12-22 05:26:43 -0800</bug_when>
    <thetext>Landed in r103535. Closing the bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120014</attachid>
            <date>2011-12-20 05:35:43 -0800</date>
            <delta_ts>2011-12-20 06:05:10 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug74840_1.patch</filename>
            <type>text/plain</type>
            <size>58604</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNDk3YjkzLi43YTNlZGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTIt
MjAgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1MgU2hhZGVyc10gRm9sbG93IHVwIGJ1ZyB0byBmaXggaXNzdWVzIG1lbnRpb25lZCBpbiBjb21t
ZW50IDIzIGZyb20gYnVnIDczMzE3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDg0MAorCisgICAgICAgIFRoZSBuZXcgc2hhZGVycyBzeW50YXggY291
bnRzIHRoZSBsaW5lcyBhbmQgdGhlIGNvbHVtbnMsIG5vdCBqdXN0IHRoZQorICAgICAgICBhZGRp
dGlvbmFsIGxpbmVzIGFuZCBjb2x1bW5zLCBzbyB0aGUgbWluaW11bSBhY2NlcHRlZCBpcyBub3cg
MSBieSAxLiAKKyAgICAgICAgVGhlIGRlZmF1bHQgbWVzaCBzaXplIGlzIGFsc28gMSBieSAxLCBz
byBJJ3ZlIHVwZGF0ZWQgdGhlIHRlc3RzIGFuZCAKKyAgICAgICAgaW5jcmVtZW50ZWQgdGhlIG1l
c2ggc2l6ZXMgYnkgMS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0
eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1w
cm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMvZmls
dGVycy9lZmZlY3QtY3VzdG9tLmh0bWw6CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNl
cy9jb2xvci1vZmZzZXQuZnM6CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92ZXJ0
ZXgtZXhwbG9kZS1kZXRhY2hlZC52czoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L3ZlcnRleC1vZmZzZXQudnM6CisgICAgICAgICAgICBBZGRlZCBzb21lIGNvbW1lbnRzIGluIHRo
ZSBzaGFkZXJzLgorICAgICAgICAqIGNzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qczoKKyAgICAgICAgICAgIFVwZGF0ZWQgdGhl
IGV4cGVjdGVkIGRlZmF1bHQgbWVzaCBzaXplIHRvIGJlIDEgMS4KKyAgICAgICAgKiBjc3MzL2Zp
bHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlk
LmpzOgorICAgICAgICAgICAgQWRkZWQgc29tZSBpbnZhbGlkIG1lc2ggc2l6ZXMuCisKIDIwMTEt
MTItMTkgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIFJlbW92aW5nIHN1cHByZXNzaW9ucyBmcm9tOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXIt
cHJvcGVydHktY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IDQ5NmQ4MGUuLjE2ZTVj
NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50
eHQKQEAgLTUsMzEgKzUsMzEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBDdXN0b20g
d2l0aCB2ZXJ0ZXggc2hhZGVyIDogY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkKLVBBU1MgcmVt
b3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicp
KSBpcyAnY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAwIDAgZmlsdGVyLWJveCknCitQ
QVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1m
aWx0ZXInKSkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgbm9uZSwgMSAxIGZpbHRlci1i
b3gpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFsdWVMaXN0Jwog
UEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NTU1ZhbHVlTGlz
dFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25zdHJ1Y3Rvcikg
aXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwogUEFTUyBmaWx0ZXJSdWxlLmxlbmd0aCBpcyAx
CiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1
c3RvbSh1cmwodmVydGV4LnNoYWRlcikgbm9uZSwgMCAwIGZpbHRlci1ib3gpJworUEFTUyByZW1v
dmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikg
bm9uZSwgMSAxIGZpbHRlci1ib3gpJwogCiBDdXN0b20gd2l0aCBmcmFnbWVudCBzaGFkZXIgOiBj
dXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0
ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5v
bmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFz
ZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1Mg
anNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFw
cGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUn
CiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1
ZUxpc3RDb25zdHJ1Y3RvcicKIFBBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJS
dWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNU
T00KLVBBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJM
KHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAx
IDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3aXRoIGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwo
dmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpCi1QQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3Rv
bSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94
KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxl
KSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJv
dG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmls
dGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwogUEFTUyBm
aWx0ZXJSdWxlLmxlbmd0aCBpcyAxCiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1
YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50
LnNoYWRlciksIDAgMCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNz
c1RleHQpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpIHVybChmcmFnbWVudC5zaGFkZXIp
LCAxIDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3aXRoIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwo
dmVydGV4LnNoYWRlciksIDEwKQogUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFk
ZXIpIG5vbmUsIDEwIDEwIGZpbHRlci1ib3gpJwpAQCAtNTAsMTMgKzUwLDEzIEBAIFBBU1Mgc3Vi
UnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VT
VE9NCiBQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIwIGZpbHRlci1ib3gpJwogCiBDdXN0b20gd2l0aCBk
ZXRhY2hlZCBtZXNoIDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGRldGFjaGVk
KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZp
bHRlci1ib3ggZGV0YWNoZWQpJworUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21l
bnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3ggZGV0YWNoZWQpJwogUEFTUyBqc1dyYXBwZXJDbGFz
cyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0
ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFw
cGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVj
dG9yJwogUEFTUyBmaWx0ZXJSdWxlLmxlbmd0aCBpcyAxCiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9u
VHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQotUEFTUyByZW1v
dmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5z
aGFkZXIpLCAwIDAgZmlsdGVyLWJveCBkZXRhY2hlZCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3Vi
UnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBm
aWx0ZXItYm94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggZGV0YWNoZWQgYW5kIG1lc2ggc2l6
ZSA6IGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBkZXRhY2hlZCkKIFBB
U1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZp
bHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIwIGZpbHRl
ci1ib3ggZGV0YWNoZWQpJwpAQCAtNjgsNDAgKzY4LDQwIEBAIFBBU1Mgc3ViUnVsZS5vcGVyYXRp
b25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCiBQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIGZpbHRlci1ib3ggZGV0YWNoZWQpJwogCiBDdXN0b20gd2l0aCBkZWZh
dWx0IGZpbHRlci1ib3ggOiBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgZmlsdGVy
LWJveCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkg
aXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3Rv
X18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRl
clJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBBU1MgZmls
dGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVSTChzdWJS
dWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZp
bHRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3
aXRoIGNvbnRlbnQtYm94IDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGNvbnRl
bnQtYm94KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIGNvbnRlbnQtYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEgMSBjb250ZW50LWJveCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuX19w
cm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhm
aWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3InCiBQQVNT
IGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJhc2VVUkwo
c3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBjb250ZW50LWJveCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBjb250ZW50LWJveCknCiAKIEN1
c3RvbSB3aXRoIGJvcmRlci1ib3ggOiBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
Ym9yZGVyLWJveCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRl
ciksIDAgMCBib3JkZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdt
ZW50LnNoYWRlciksIDEgMSBib3JkZXItYm94KScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVy
UnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5f
X3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNz
KGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBB
U1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMg
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVS
TChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIGJvcmRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMg
J2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgYm9yZGVyLWJveCknCiAKIEN1
c3RvbSB3aXRoIHBhZGRpbmctYm94IDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IHBhZGRpbmctYm94KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSwgMCAwIHBhZGRpbmctYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZy
YWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZp
bHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJD
bGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3In
CiBQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBl
IGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJh
c2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRl
ciksIDAgMCBwYWRkaW5nLWJveCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0
KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCkn
CiAKIEN1c3RvbSB3aXRoIG1lc2gtc2l6ZSBhbmQgcGFkZGluZy1ib3ggOiBjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgcGFkZGluZy1ib3gpCiBQQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAxMCBwYWRkaW5nLWJveCknCkBAIC0xMTMs
MTMgKzExMywxMyBAQCBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQogUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3Nz
VGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAxMCBwYWRkaW5n
LWJveCknCiAKIEN1c3RvbSB3aXRoIG1lc2gtc2l6ZSBhbmQgcGFkZGluZy1ib3ggOiBjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3ggZGV0YWNoZWQpCi1QQVNTIHJl
bW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXIn
KSkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgcGFkZGluZy1ib3gg
ZGV0YWNoZWQpJworUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSwgMSAxIHBhZGRpbmctYm94IGRldGFjaGVkKScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVy
UnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5f
X3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNz
KGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBB
U1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMg
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVS
TChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIHBhZGRpbmctYm94IGRldGFjaGVkKScKK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNz
c1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIHBhZGRpbmct
Ym94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggYm90aCBtZXNoLXNpemVzIGFuZCBwYWRkaW5n
LWJveCA6IGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBwYWRkaW5nLWJv
eCkKIFBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIw
IHBhZGRpbmctYm94KScKQEAgLTE0MCwxNiArMTQwLDE2IEBAIFBBU1Mgc3ViUnVsZS5vcGVyYXRp
b25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCiBQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIHBhZGRpbmctYm94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggcGFk
ZGluZy1ib3ggYW5kIGRldGFjaGVkIDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IHBhZGRpbmctYm94IGRldGFjaGVkKQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94IGRldGFjaGVkKScKK1BBU1MgcmVtb3ZlQmFz
ZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCBkZXRhY2hl
ZCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQ
QVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0
UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBp
cyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3InCiBQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEK
IFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19G
SUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkn
CitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJs
KGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCBkZXRhY2hlZCknCiAKIE11bHRpcGxl
IHdpdGggZnJhZ21lbnQgc2hhZGVyIDogZ3JheXNjYWxlKCkgY3VzdG9tKG5vbmUgdXJsKGZyYWdt
ZW50LnNoYWRlcikpIHNlcGlhKCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnZ3JheXNjYWxlKDEpIGN1c3RvbShu
b25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkgc2VwaWEoMSknCitQQVNT
IHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKSkgaXMgJ2dyYXlzY2FsZSgxKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MSAxIGZpbHRlci1ib3gpIHNlcGlhKDEpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxl
KSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJv
dG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmls
dGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwpAQCAtMTU3
LDcgKzE1Nyw3IEBAIFBBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMwogUEFTUyBzdWJSdWxlLm9w
ZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9HUkFZU0NBTEUK
IFBBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdncmF5c2NhbGUoMSknCiBQ
QVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklM
VEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCknCitQQVNTIHJlbW92
ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfU0VQSUEKIFBBU1MgcmVtb3ZlQmFzZVVSTChz
dWJSdWxlLmNzc1RleHQpIGlzICdzZXBpYSgxKScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVy
LXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQu
dHh0CmluZGV4IGVhNjMxZmMuLjk0NGI3MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHkt
cGFyc2luZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtOTksNiArOTksMzYgQEAgUEFTUyBjc3NS
dWxlLnR5cGUgaXMgMQogUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAogUEFTUyBkZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKIAorTmVnYXRp
dmUgc2luZ2xlIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgLTEwKQorUEFTUyBjc3NS
dWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTmVnYXRp
dmUgYm90aCBtZXNoIHNpemVzIDogY3VzdG9tKHVybChzaGFkZXIpLCAtMTAgLTEwKQorUEFTUyBj
c3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNs
YXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTmVn
YXRpdmUgYW5kIHBvc2l0aXZlIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgLTEwIDEw
KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAor
UEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51
bGwKKworWmVybyBzaW5nbGUgbWVzaCBzaXplIDogY3VzdG9tKHVybChzaGFkZXIpLCAwKQorUEFT
UyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBk
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwor
WmVybyBib3RoIG1lc2ggc2l6ZXMgOiBjdXN0b20odXJsKHNoYWRlciksIDAgMCkKK1BBU1MgY3Nz
UnVsZS50eXBlIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKKzAgYW5k
IDEgbWVzaCBzaXplcyA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgMCAxKQorUEFTUyBjc3NSdWxlLnR5
cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwogVG9vIG1hbnkgcGFy
YW1ldGVyIHZhbHVlcyA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgcDEgMSAyIDMgNCA1KQogUEFTUyBj
c3NSdWxlLnR5cGUgaXMgMQogUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMApAQCAtMTIxLDQg
KzE1MSwzIEBAIFBBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2VmZmVjdC1jdXN0
b20uaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9lZmZlY3QtY3VzdG9tLmh0bWwKaW5k
ZXggZmIxNGU2MS4uZDBiNDViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2VmZmVjdC1jdXN0b20uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvZWZmZWN0
LWN1c3RvbS5odG1sCkBAIC0zLDcgKzMsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwog
PC9zY3JpcHQ+CiA8aW1nIHN0eWxlPSItd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3Vy
Y2VzL3ZlcnRleC1vZmZzZXQudnMnKSB1cmwoJ3Jlc291cmNlcy9jb2xvci1vZmZzZXQuZnMnKSki
IHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgotPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0
ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJyksIDUgMTApIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIj4KLTxpbWcgc3R5bGU9Ii13ZWJraXQtZmlsdGVyOiBj
dXN0b20odXJsKCdyZXNvdXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMnKSwgMiAyIGRl
dGFjaGVkKSIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyI+Ci08aW1nIHN0eWxlPSItd2Vi
a2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL3ZlcnRleC1leHBsb2RlLWRldGFjaGVk
LnZzJykgdXJsKCdyZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJyksIDIgMiBkZXRhY2hlZCkiIHNy
Yz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgorPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0ZXI6
IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJyksIDYgMTEpIiBzcmM9InJl
c291cmNlcy9yZWZlcmVuY2UucG5nIj4KKzxpbWcgc3R5bGU9Ii13ZWJraXQtZmlsdGVyOiBjdXN0
b20odXJsKCdyZXNvdXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMnKSwgMyAzIGRldGFj
aGVkKSIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyI+Cis8aW1nIHN0eWxlPSItd2Via2l0
LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL3ZlcnRleC1leHBsb2RlLWRldGFjaGVkLnZz
JykgdXJsKCdyZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJyksIDMgMyBkZXRhY2hlZCkiIHNyYz0i
cmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgogPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0ZXI6IGN1
c3RvbShub25lIHVybCgncmVzb3VyY2VzL2NvbG9yLW9mZnNldC5mcycpKSIgc3JjPSJyZXNvdXJj
ZXMvcmVmZXJlbmNlLnBuZyI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
cmVzb3VyY2VzL2NvbG9yLW9mZnNldC5mcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvY29sb3Itb2Zmc2V0LmZzCmluZGV4IDFiZDA3MzQuLjRmNTcwNDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzCkBAIC0z
LDUgKzMsNiBAQCB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKIHVuaWZvcm0gc2FtcGxlcjJEIHNf
dGV4dHVyZTsKIHZvaWQgbWFpbigpCiB7CisgICAgLy8gT2Zmc2V0IHRoZSBjb2xvciB2YWx1ZSB3
aXRoIDAuMyBvbiBlYWNoIGNvbG9yIGNoYW5uZWwuCiAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVy
ZTJEKHNfdGV4dHVyZSwgdl90ZXhDb29yZCkgKyAwLjM7CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92
ZXJ0ZXgtZXhwbG9kZS1kZXRhY2hlZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMKaW5kZXggNzc2OGEzYy4uMTdlZGVkZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92ZXJ0ZXgtZXhw
bG9kZS1kZXRhY2hlZC52cworKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L3ZlcnRleC1leHBsb2RlLWRldGFjaGVkLnZzCkBAIC05LDYgKzksOCBAQCB2YXJ5aW5nIHZlYzIg
dl90ZXhDb29yZDsKIAogdm9pZCBtYWluKCkKIHsKKyAgICAvLyBhX3RyaWFuZ2xlQ29vcmQueHkg
aXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0aWxlIGluIHRoZSBtZXNoLCBzbyB3ZSBvZmZzZXQgdGhl
IHZlcnRpY2VzCisgICAgLy8gd2l0aCB0aGUgcG9zaXRpb24gaW4gbWVzaC4gVGhlIHRpbGVzIHNo
b3VsZCBiZSBkZXRhY2hlZCBmcm9tIGVhY2ggb3RoZXIuCiAgICAgZ2xfUG9zaXRpb24gPSB1X3By
b2plY3Rpb25NYXRyaXggKiAoYV9wb3NpdGlvbiArIHZlYzQoYV90cmlhbmdsZUNvb3JkLnggLyA0
LjAsIGFfdHJpYW5nbGVDb29yZC55IC8gNC4wLCAwLjAsIDAuMCkpOwogICAgIHZfdGV4Q29vcmQg
PSBhX3RleENvb3JkOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
c291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291
cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzCmluZGV4IDc4ZDhjNDUuLmE5MWRiN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdmVydGV4LW9mZnNldC52cworKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3ZlcnRleC1vZmZzZXQudnMKQEAg
LTgsNiArOCw3IEBAIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwogCiB2b2lkIG1haW4oKQogewor
ICAgIC8vIE9mZnNldCB0aGUgcG9zaXRpb24gb2YgdGhlIHZlcnRpY2VzIHdpdGggMC4xIGluIHRo
ZSBYIGF4aXMuCiAgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiAoYV9wb3Np
dGlvbiArIHZlYzQoMC4xLCAwLjAsIDAuMCwgMC4wKSk7CiAgICAgdl90ZXhDb29yZCA9IGFfdGV4
Q29vcmQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRl
c3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuanMgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0
ZWQtc3R5bGUuanMKaW5kZXggMDdhODc5OC4uMTE2NjdkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1
dGVkLXN0eWxlLmpzCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMv
Y3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpAQCAtNjQsMTMgKzY0LDEz
IEBAIGZ1bmN0aW9uIHRlc3RGaWx0ZXJSdWxlKGRlc2NyaXB0aW9uLCBydWxlLCBleHBlY3RlZFZh
bHVlLCBleHBlY3RlZFR5cGVzLCBleHBlY3RlCiB9CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20g
d2l0aCB2ZXJ0ZXggc2hhZGVyIiwKLSAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkiLCAi
Y3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAwIDAgZmlsdGVyLWJveCkiKTsKKyAgICAi
Y3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBu
b25lLCAxIDEgZmlsdGVyLWJveCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGZy
YWdtZW50IHNoYWRlciIsCi0gICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIs
ICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpIik7Cisg
ICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20obm9uZSB1cmwo
ZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJD
dXN0b20gd2l0aCBib3RoIHNoYWRlcnMiLAotICAgICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIp
IHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpIHVybChm
cmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkiKTsKKyAgICAiY3VzdG9tKHVybCh2ZXJ0
ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hh
ZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIik7CiAKIHRlc3RGaWx0
ZXJSdWxlKCJDdXN0b20gd2l0aCBtZXNoIHNpemUiLAogICAgICJjdXN0b20odXJsKHZlcnRleC5z
aGFkZXIpLCAxMCkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAxMCAxMCBmaWx0
ZXItYm94KSIpOwpAQCAtNzksMjggKzc5LDI4IEBAIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20gd2l0
aCBib3RoIG1lc2ggc2l6ZXMiLAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSwgMTAgMjApIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBmaWx0
ZXItYm94KSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZGV0YWNoZWQgbWVzaCIs
Ci0gICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCBkZXRhY2hlZCkiLCAiY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94IGRldGFjaGVkKSIp
OworICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgZGV0YWNoZWQpIiwgImN1
c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCBkZXRhY2hlZCki
KTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGRldGFjaGVkIGFuZCBtZXNoIHNpemUi
LAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgMjAgZGV0YWNoZWQp
IiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBmaWx0ZXItYm94IGRl
dGFjaGVkKSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZGVmYXVsdCBmaWx0ZXIt
Ym94IiwKLSAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGZpbHRlci1ib3gp
IiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkiKTsK
KyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGZpbHRlci1ib3gpIiwgImN1
c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCkiKTsKIAogdGVz
dEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGNvbnRlbnQtYm94IiwKLSAgICAiY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIGNvbnRlbnQtYm94KSIsICJjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSwgMCAwIGNvbnRlbnQtYm94KSIpOworICAgICJjdXN0b20obm9uZSB1cmwo
ZnJhZ21lbnQuc2hhZGVyKSwgY29udGVudC1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVu
dC5zaGFkZXIpLCAxIDEgY29udGVudC1ib3gpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20g
d2l0aCBib3JkZXItYm94IiwKLSAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IGJvcmRlci1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgYm9y
ZGVyLWJveCkiKTsKKyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGJvcmRl
ci1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgYm9yZGVyLWJv
eCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIHBhZGRpbmctYm94IiwKLSAgICAi
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94KSIsICJjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94KSIpOworICAgICJjdXN0
b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3gpIiwgImN1c3RvbShub25l
IHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgcGFkZGluZy1ib3gpIik7CiAKIHRlc3RGaWx0ZXJS
dWxlKCJDdXN0b20gd2l0aCBtZXNoLXNpemUgYW5kIHBhZGRpbmctYm94IiwKICAgICAiY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIHBhZGRpbmctYm94KSIsICJjdXN0b20obm9u
ZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgMTAgcGFkZGluZy1ib3gpIik7CiAKIHRlc3RGaWx0
ZXJSdWxlKCJDdXN0b20gd2l0aCBtZXNoLXNpemUgYW5kIHBhZGRpbmctYm94IiwKLSAgICAiY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94IGRldGFjaGVkKSIsICJj
dXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94IGRldGFjaGVk
KSIpOworICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3gg
ZGV0YWNoZWQpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgcGFkZGlu
Zy1ib3ggZGV0YWNoZWQpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20gd2l0aCBib3RoIG1l
c2gtc2l6ZXMgYW5kIHBhZGRpbmctYm94IiwKICAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIHBhZGRpbmctYm94KSIsICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSwgMTAgMjAgcGFkZGluZy1ib3gpIik7CkBAIC0xMDksMTMgKzEwOSwxMyBAQCB0ZXN0
RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggYm90aCBtZXNoLXNpemVzIGFuZCBwYWRkaW5nLWJveCBh
bmQgZGV0YWNoZWQiLAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAg
MjAgcGFkZGluZy1ib3ggZGV0YWNoZWQpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFk
ZXIpLCAxMCAyMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1
c3RvbSB3aXRoIHBhZGRpbmctYm94IGFuZCBkZXRhY2hlZCIsCi0gICAgImN1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpLCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiLCAiY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiKTsKKyAgICAi
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94IGRldGFjaGVkKSIs
ICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIHBhZGRpbmctYm94IGRldGFj
aGVkKSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiTXVsdGlwbGUgd2l0aCBmcmFnbWVudCBzaGFkZXIi
LAotICAgICJncmF5c2NhbGUoKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkgc2Vw
aWEoKSIsICJncmF5c2NhbGUoMSkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBmaWx0ZXItYm94KSBzZXBpYSgxKSIsCisgICAgImdyYXlzY2FsZSgpIGN1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgpIiwgImdyYXlzY2FsZSgxKSBjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIHNlcGlhKDEpIiwKICAgICBbIldl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxFIiwKICAgICAiV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00iLAogICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5DU1NfRklMVEVSX1NFUElBIl0sCiAgICAgWyJncmF5c2NhbGUoMSkiLAotICAgICJjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpIiwKKyAgICAiY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBmaWx0ZXItYm94KSIsCiAgICAgInNlcGlh
KDEpIl0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0
cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC5qcyBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5n
LWludmFsaWQuanMKaW5kZXggYTc3MzI0MS4uODY2NmZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNp
bmctaW52YWxpZC5qcworKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3Rz
L2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlkLmpzCkBAIC00MSw2ICs0MSwx
MyBAQCB0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIG1lc2ggcGFyYW1ldGVyIiwgImN1c3RvbSh1
cmwoc2hhZGVyKSwgKSIpOwogdGVzdEludmFsaWRGaWx0ZXJSdWxlKCJXcm9uZyBtZXNoIHR5cGUg
LSBjb3JyZWN0IGlkZW50aWZpZXIgaXMgJ2RldGFjaGVkJyIsICJjdXN0b20odXJsKHNoYWRlciks
IGRldGFjaCkiKTsKIHRlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTm8gbWVzaCBzaXplIiwgImN1c3Rv
bSh1cmwoc2hhZGVyKSwgLCBwMSAyKSIpOwogCit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0
aXZlIHNpbmdsZSBtZXNoIHNpemUiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAtMTApIik7Cit0ZXN0
SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0aXZlIGJvdGggbWVzaCBzaXplcyIsICJjdXN0b20odXJs
KHNoYWRlciksIC0xMCAtMTApIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0aXZlIGFu
ZCBwb3NpdGl2ZSBtZXNoIHNpemUiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAtMTAgMTApIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlplcm8gc2luZ2xlIG1lc2ggc2l6ZSIsICJjdXN0b20odXJs
KHNoYWRlciksIDApIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlplcm8gYm90aCBtZXNoIHNp
emVzIiwgImN1c3RvbSh1cmwoc2hhZGVyKSwgMCAwKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxl
KCIwIGFuZCAxIG1lc2ggc2l6ZXMiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAwIDEpIik7CisKIHRl
c3RJbnZhbGlkRmlsdGVyUnVsZSgiVG9vIG1hbnkgcGFyYW1ldGVyIHZhbHVlcyIsICJjdXN0b20o
dXJsKHNoYWRlciksIHAxIDEgMiAzIDQgNSkiKTsKIHRlc3RJbnZhbGlkRmlsdGVyUnVsZSgiSW52
YWxpZCBwYXJhbWV0ZXIgdHlwZXMiLCAiY3VzdG9tKHVybChzaGFkZXIpLCBwMSAxLjAgMi4wICd0
ZXh0JykiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxMWY3NzMuLjlmZDY4YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4OSBAQAorMjAxMS0xMi0yMCAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBh
ZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkZXJzXSBGb2xsb3cgdXAgYnVnIHRvIGZpeCBp
c3N1ZXMgbWVudGlvbmVkIGluIGNvbW1lbnQgMjMgZnJvbSBidWcgNzMzMTcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQwCisgICAgICAgIAorICAg
ICAgICBTb21lIGNvbW1lbnRzIHdlcmUgYWRkZWQgb24gYnVnIDczMzE3IGFmdGVyIHRoZSBwYXRj
aCB3YXMgcmV2aWV3ZWQgYW5kIGNvbW1pdHRlZC4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmaXhp
bmcgdGhvc2UgaXNzdWVzLCBtb3N0bHkgYWJvdXQgY29kaW5nIHN0eWxlIGFuZCBzb21lIG1pc3Np
bmcgY29tbWVudHMuCisgICAgICAgIAorICAgICAgICBCZWNhdXNlIHRoZSBpbml0aWFsIHBhdGNo
IGhhZCBubyBleHBsYW5hdGlvbiBhYm91dCB0aGUgZmVhdHVyZSBpbiB0aGUgQ2hhbmdlTG9nLCBz
byBJJ20gaW5jbHVkaW5nIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICBpbiB0aGlzIHBhdGNoOgor
ICAgICAgICAKKyAgICAgICAgQ1NTIFNoYWRlcnMgYWxsb3cgYSBkZXNpZ25lciB0byB1c2UgYSBw
YWlyIG9mIFdlYkdMIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVycyB0byBhbHRlciB0aGUgZmlu
YWwKKyAgICAgICAgcmVuZGVyaW5nIG9mIGEgc3BlY2lmaWMgZWxlbWVudC4gVGhlIG5hdmlnYXRv
ciB3aWxsIHJlbmRlciB0aGUgZWxlbWVudCBpbnNpZGUgYSB0ZXh0dXJlIGFuZCBtYXAgaXQKKyAg
ICAgICAgdG8gYSBtZXNoLiBUaGUgbWVzaCBpcyBmb3JtZWQgYnkgZXF1YWwgc2l6ZWQgcXVhZHMs
IHRoYXQgZGVwZW5kaW5nIG9uIHRoZSBtZXNoIHN0eWxlLCBhdHRhY2hlZCBvciBkZXRhY2hlZCwK
KyAgICAgICAgY2FuIGJlIHN0aXRjaGVkIG9yIHNlcGFyYXRlZC4gVGhlIG51bWJlciBvZiBxdWFk
cyBjYW4gYmUgY2hhbmdlZCBmcm9tIENTUy4KKyAgICAgICAgCisgICAgICAgIFVzdWFsbHkgdGhl
IHZlcnRleCBzaGFkZXIgaXMgY2hhbmdpbmcgdGhlIHZlcnRpY2VzIG9mIHRoZSBtZXNoLCB3aGls
ZSB0aGUgZnJhZ21lbnQgc2hhZGVyIGFmZmVjdHMgb25seSB0aGUgY29sb3IKKyAgICAgICAgdGhh
dCBpcyByZW5kZXJlZCB0byBzY3JlZW4gKGZvciBleGFtcGxlIGxpZ2h0aW5nIGVmZmVjdHMpLgor
ICAgICAgICAKKyAgICAgICAgTW9yZSBpbmZvIGFib3V0IENTUyBTaGFkZXJzIGNhbiBiZSBmb3Vu
ZCBpbiB0aGUgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2R2Y3MudzMub3JnL2hnL0ZY
VEYvcmF3LWZpbGUvdGlwL2N1c3RvbS9pbmRleC5odG1sCisgICAgICAgIAorICAgICAgICBBbHNv
IGEgZ29vZCB0dXRvcmlhbCBpcyBwdWJsaXNoZWQgaGVyZQorICAgICAgICBodHRwOi8vd3d3LmFk
b2JlLmNvbS9kZXZuZXQvaHRtbDUvYXJ0aWNsZXMvY3NzLXNoYWRlcnMuaHRtbAorICAgICAgICAK
KyAgICAgICAgSW5pdGlhbGx5IHdlIGFyZSB1c2luZyB0aGUgc29mdHdhcmUgZmlsdGVyIGVmZmVj
dHMgcGlwZWxpbmUuIEl0IHVwbG9hZHMgdGhlIGltYWdlIHRvIHRoZSBHUFUsIGFwcGxpZXMKKyAg
ICAgICAgdGhlIHNoYWRlcnMsIHJlYWRzIGl0IGJhY2sgdG8gQ1BVIGFuZCBjb250aW51ZXMgdGhl
IHJlbmRlcmluZy4gVGhlIGFkdmFudGFnZSBvZiB1c2luZyB0aGUgc29mdHdhcmUgcGlwZWxpbmUg
aXMgdGhhdAorICAgICAgICBpdCBjYW4gYmUgZW5hYmxlZCBvbiBhbGwgdGhlIHBsYXRmb3JtcyB0
aGF0IGhhdmUgV2ViR0wgc3VwcG9ydC4gVGhlIG9idmlvdXMgZGlzYWR2YW50YWdlIGlzIHBlcmZv
cm1hbmNlOiBjb3BpZXMgZnJvbSBDUFUKKyAgICAgICAgbWVtb3J5IHRvIEdQVSBtZW1vcnkgYW5k
IHRoZSBDUFUgd2lsbCBuZWVkIHRvIHdhaXQgdGhlIEdQVSB0byBmaW5pc2ggYmVmb3JlIGl0IGNv
dWxkIGNvbnRpbnVlLiBJbiBmb2xsb3dpbmcgCisgICAgICAgIHBhdGNoZXMgdGhlIHNoYWRlcnMg
d2lsbCBiZSBpbnRlZ3JhdGVkIGluIHRoZSBoYXJkd2FyZSBhY2NlbGVyYXRlZCBwaXBlbGluZSwg
c28gdGhhdCBubyBjb3BpZXMgYW5kLCBtb3N0IAorICAgICAgICBpbXBvcnRhbnQsIG5vIHdhaXRz
IHdpbGwgYmUgcmVxdWlyZWQuCisgICAgICAgIAorICAgICAgICBBbHNvLCB0aGUgbmV3IHN5bnRh
eCBjb3VudHMgdG90YWwgbnVtYmVyIG9mIHRoZSBsaW5lcyBhbmQgdGhlIGNvbHVtbnMsIG5vdCBq
dXN0IHRoZQorICAgICAgICBhZGRpdGlvbmFsIGxpbmVzIGFuZCBjb2x1bW5zLCBzbyB0aGUgbWlu
aW11bSBhY2NlcHRlZCBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgaXMgbm93IDEgYnkgMS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIHRlc3RzIHdl
cmUgdXBkYXRlZCBmb3IgdGhlIGRlZmF1bHQgbWVzaCBzaXplIGNoYW5nZS4KKworICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAgICAgT25seSBhY2NlcHQgbm9uLXplcm8gcG9z
aXRpdmUgaW50IHZhbHVlcyBmb3IgbWVzaCBzaXplcy4KKyAgICAgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlcik6CisgICAgICAgICogY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAgICAgVXBkYXRlZCB0aGUgZGVmYXVsdCBtZXNo
IHNpemUgdG8gYmUgMSBjb2x1bW4gd2l0aCAxIGxpbmUuCisgICAgICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRTaGFkZXI6OnNoYWRlclN0cmluZyk6CisgICAgICAgICAgICBDb3JyZWN0ZWQg
dGhlIENhY2hlZFNoYWRlciB0byB1c2UgYSBTdHJpbmdCdWlsZGVyLiBBbHNvIHRoZXJlIHdhcyBh
biBpbmNvcnJlY3QgCisgICAgICAgICAgICBjYXN0IHRvIGJvb2wsIHdoaWNoIHJlc3VsdGVkIGZy
b20gYSBjb3B5L3Bhc3RlIGZyb20gQ2FjaGVkU2NyaXB0IHdoaWNoIHN0aWxsIGhhcworICAgICAg
ICAgICAgYm90aCBzYW1lIGlzc3Vlcy4KKyAgICAgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU2hhZGVyOjpkYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc2hHZW5lcmF0b3I6Ok1lc2hHZW5lcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6dmVydGljZXNDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZUF0dGFjaGVkTWVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZURldGFjaGVkTWVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkN1c3RvbUZpbHRlck1lc2g6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VzdG9tRmlsdGVyU2hhZGVyOjpDdXN0b21GaWx0ZXJTaGFkZXIpOgorICAgICAgICAgICAg
RXhwbG9kZWQgdGhlIGJvZHkgb2YgdGhlIGNvbnN0cnVjdG9yIGludG8gc21hbGxlciBoZWxwZXIg
ZnVuY3Rpb25zLgorICAgICAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJT
aGFkZXI6OmNvbXBpbGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyU2hh
ZGVyOjpsaW5rUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJTaGFkZXI6
OmluaXRpYWxpemVQYXJhbWV0ZXJMb2NhdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcnRo
b2dvbmFsUHJvamVjdGlvbk1hdHJpeCk6CisgICAgICAgICAgICBQYXNzaW5nIGEgVHJhbnNmb3Jt
YXRpb25NYXRyaXggYnkgcmVmZXJlbmNlIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSByZXN1bHQgbWF0
cml4LCBpbnN0ZWFkCisgICAgICAgICAgICBvZiByZXR1cm5pbmcgaXQgYnkgdmFsdWUuIEFsc28g
Y2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kLgorICAgICAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6RkVDdXN0b21GaWx0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDdXN0b21GaWx0ZXI6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICAgICBD
cmVhdGVkIHNvbWUgaGVscGVyIGZ1bmN0aW9ucyB0byBtYWtlIHRoaXMgbWV0aG9kIHNob3J0ZXIu
CisgICAgICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9tRmlsdGVyOjppbml0aWFs
aXplQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6cmVzaXplQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFZlcnRleEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRC
dWZmZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmls
dGVyLmg6CisKIDIwMTEtMTItMTkgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgdGhlIEVkaXRvcjo6c2V0SWdub3JlQ29tcG9z
aXRpb25TZWxlY3Rpb25DaGFuZ2UgcHVibGljIGFzIGl0IGlzIG5lZWRlZCBieSBRdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwODJhN2U1Li4zNTg1ZTJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtNjY5Niw3ICs2Njk2LDExIEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmls
dGVyVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXIoQ1NTUGFyc2VyVmFsdWUqIHZh
CiAgICAgd2hpbGUgKChhcmcgPSBhcmdzTGlzdC0+Y3VycmVudCgpKSkgewogICAgICAgICBpZiAo
IXZhbGlkVW5pdChhcmcsIEZJbnRlZ2VyIHwgRk5vbk5lZywgdHJ1ZSkpCiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgbWVzaFNpemVMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCktPmNyZWF0
ZVZhbHVlKGNsYW1wVG9JbnRlZ2VyKGFyZy0+ZlZhbHVlKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19OVU1CRVIpKTsKKyAgICAgICAgaW50IGludGVnZXJWYWx1ZSA9IGNsYW1wVG9JbnRlZ2VyKGFy
Zy0+ZlZhbHVlKTsKKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIHdl
IGNhbiBvbmx5IGFjY2VwdCBwb3NpdGl2ZSBub24temVybyB2YWx1ZXMuCisgICAgICAgIGlmIChp
bnRlZ2VyVmFsdWUgPCAxKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIG1lc2hTaXpl
TGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVWYWx1ZShpbnRlZ2VyVmFsdWUsIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CiAgICAgICAgIGFyZ3NMaXN0LT5uZXh0KCk7
CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4
IGM5NjlkMGUuLmE5YzUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKQEAgLTUwOTQsOCArNTA5NCw4IEBAIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9u
PiBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24oCiAgICAgUmVm
UHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFkZXIgPSBzdHlsZVNoYWRlcihzaGFkZXJzTGlzdC0+
aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CiAgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFn
bWVudFNoYWRlciA9IChzaGFkZXJzTGlzdC0+bGVuZ3RoKCkgPiAxKSA/IHN0eWxlU2hhZGVyKHNo
YWRlcnNMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDEpKSA6IDA7CiAgICAgCi0gICAgdW5z
aWduZWQgbWVzaFJvd3MgPSAwOwotICAgIHVuc2lnbmVkIG1lc2hDb2x1bW5zID0gMDsKKyAgICB1
bnNpZ25lZCBtZXNoUm93cyA9IDE7CisgICAgdW5zaWduZWQgbWVzaENvbHVtbnMgPSAxOwogICAg
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJveFR5cGUgPSBDdXN0b21G
aWx0ZXJPcGVyYXRpb246OkZJTFRFUl9CT1g7CiAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpN
ZXNoVHlwZSBtZXNoVHlwZSA9IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6QVRUQUNIRUQ7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCmluZGV4IDEz
YmRhMWQuLjFiYTZkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuY3BwCkBAIC00NywyMCArNDcsMjIgQEAgQ2FjaGVkU2hhZGVyOjp+Q2FjaGVkU2hhZGVy
KCkKIHsKIH0KIAotY29uc3QgU3RyaW5nJiBDYWNoZWRTaGFkZXI6OnNoYWRlclN0cmluZygpCitT
dHJpbmcgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogewotICAgIGlmICghbV9zaGFkZXJT
dHJpbmcgJiYgbV9kYXRhKSB7Ci0gICAgICAgIG1fc2hhZGVyU3RyaW5nID0gbV9kZWNvZGVyLT5k
ZWNvZGUobV9kYXRhLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKTsKLSAgICAgICAgbV9zaGFkZXJT
dHJpbmcgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOworICAgIGlmIChtX3NoYWRlclN0cmluZ0J1aWxk
ZXIuaXNFbXB0eSgpICYmIG1fZGF0YSkgeworICAgICAgICBtX3NoYWRlclN0cmluZ0J1aWxkZXIu
YXBwZW5kKG1fZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUoKSkp
OworICAgICAgICBtX3NoYWRlclN0cmluZ0J1aWxkZXIuYXBwZW5kKG1fZGVjb2Rlci0+Zmx1c2go
KSk7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fc2hhZGVyU3RyaW5nOworICAgIHJldHVybiBtX3No
YWRlclN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAogdm9pZCBDYWNoZWRTaGFkZXI6OmRh
dGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewotICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpCisgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgewog
ICAgICAgICBtX2RhdGEgPSBkYXRhOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgQ2Fj
aGVkUmVzb3VyY2U6OmRhdGEoZGF0YSwgYWxsRGF0YVJlY2VpdmVkKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaAppbmRleCBjYzM4ZjU4Li5kYWFhNjI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oCkBAIC0zMyw2ICsz
Myw3IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDMsMTIgKzQ0LDEyIEBAIHB1YmxpYzoKICAgICBDYWNoZWRTaGFkZXIo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB+Q2FjaGVkU2hhZGVyKCk7CiAg
ICAgCi0gICAgY29uc3QgU3RyaW5nJiBzaGFkZXJTdHJpbmcoKTsKKyAgICBTdHJpbmcgc2hhZGVy
U3RyaW5nKCk7CiAgICAgdm9pZCBkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpOwogICAgIAogcHJpdmF0ZToKICAgICBSZWZQdHI8VGV4dFJlc291cmNl
RGVjb2Rlcj4gbV9kZWNvZGVyOwotICAgIFN0cmluZyBtX3NoYWRlclN0cmluZzsKKyAgICBTdHJp
bmdCdWlsZGVyIG1fc2hhZGVyU3RyaW5nQnVpbGRlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
ck1lc2guY3BwCmluZGV4IDJhMDA1Y2UuLjQwZWMzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNo
LmNwcApAQCAtMzAsMzUgKzMwLDUxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpICYmIEVOQUJMRShXRUJHTCkKLQogI2luY2x1ZGUgIkN1c3RvbUZpbHRl
ck1lc2guaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKLSNkZWZpbmUgREVC
VUdfQ1VTVE9NX0ZJTFRFUl9NRVNIIDAKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorI2lm
bmRlZiBOREVCVUcKKy8vIFVzZSAiY2FsbCAnV2ViQ29yZTo6c19kdW1wQ3VzdG9tRmlsdGVyTWVz
aEJ1ZmZlcnMnID0gMSIgaW4gR0RCIHRvIGFjdGl2YXRlIHByaW50aW5nIG9mIHRoZSBtZXNoIGJ1
ZmZlcnMuCitzdGF0aWMgYm9vbCBzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycyA9IGZhbHNl
OworI2VuZGlmCiAKIGNsYXNzIE1lc2hHZW5lcmF0b3IgewogcHVibGljOgotICAgIE1lc2hHZW5l
cmF0b3IodW5zaWduZWQgY29scywgdW5zaWduZWQgcm93cywgY29uc3QgRmxvYXRSZWN0JiBtZXNo
Qm94LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBlIG1lc2hUeXBlKQorICAgIC8vIExp
bmVzIGFuZCBjb2x1bW5zIGFyZSB0aGUgdmFsdWVzIHBhc3NlZCBpbiBDU1MuIFRoZSByZXN1bHQg
aXMgdmVydGV4IG1lc2ggdGhhdCBoYXMgJ3Jvd3MnIG51bWJlcnMgb2Ygcm93cworICAgIC8vIGFu
ZCAnY29sdW1ucycgbnVtYmVyIG9mIGNvbHVtbnMgd2l0aCBhIHRvdGFsIG9mICdyb3dzICsgMScg
KiAnY29sdW1ucyArIDEnIHZlcnRpY2VzLgorICAgIC8vIE1lc2hCb3ggaXMgdGhlIGZpbHRlcmVk
IGFyZWEgY2FsY3VsYXRlZCBkZWZpbmVkIHVzaW5nIHRoZSBib3JkZXItYm94LCBwYWRkaW5nLWJv
eCwgY29udGVudC1ib3ggb3IgZmlsdGVyLWJveCAKKyAgICAvLyBhdHRyaWJ1dGVzLiBBIHZhbHVl
IG9mICgwLCAwLCAxLCAxKSB3aWxsIGNvdmVyIHRoZSBlbnRpcmUgb3V0cHV0IHN1cmZhY2UuCisg
ICAgTWVzaEdlbmVyYXRvcih1bnNpZ25lZCBjb2x1bW5zLCB1bnNpZ25lZCByb3dzLCBjb25zdCBG
bG9hdFJlY3QmIG1lc2hCb3gsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5
cGUpCiAgICAgICAgIDogbV9tZXNoVHlwZShtZXNoVHlwZSkKLSAgICAgICAgLCBtX3BvaW50cyhj
b2xzICsgMiwgcm93cyArIDIpCi0gICAgICAgICwgbV90aWxlcyhjb2xzICsgMSwgcm93cyArIDEp
CisgICAgICAgICwgbV9wb2ludHMoY29sdW1ucyArIDEsIHJvd3MgKyAxKQorICAgICAgICAsIG1f
dGlsZXMoY29sdW1ucywgcm93cykKICAgICAgICAgLCBtX3RpbGVTaXplSW5QaXhlbHMobWVzaEJv
eC53aWR0aCgpIC8gbV90aWxlcy53aWR0aCgpLCBtZXNoQm94LmhlaWdodCgpIC8gbV90aWxlcy5o
ZWlnaHQoKSkKICAgICAgICAgLCBtX3RpbGVTaXplSW5EZXZpY2VTcGFjZSgxLjBmIC8gbV90aWxl
cy53aWR0aCgpLCAxLjBmIC8gbV90aWxlcy5oZWlnaHQoKSkKICAgICAgICAgLCBtX21lc2hCb3go
bWVzaEJveCkKICAgICB7Ci0gICAgICAgIG1fdmVydGljZXMucmVzZXJ2ZUNhcGFjaXR5KHZlcnRl
eENvdW50KCkgKiBmbG9hdHNQZXJWZXJ0ZXgoKSk7CisgICAgICAgIC8vIEJ1aWxkIHRoZSB0d28g
YnVmZmVycyBuZWVkZWQgdG8gZHJhdyB0cmlhbmdsZXM6CisgICAgICAgIC8vICogbV92ZXJ0aWNl
cyBoYXMgYSBudW1iZXIgb2YgZmxvYXQgYXR0cmlidXRlcyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRv
IHRoZSB2ZXJ0ZXggc2hhZGVyCisgICAgICAgIC8vIGZvciBlYWNoIGNvbXB1dGVkIHZlcnRleC4g
VGhpcyBudW1iZXIgaXMgY2FsY3VsYXRlZCBpbiBmbG9hdHNQZXJWZXJ0ZXgoKSBiYXNlZCBvbiB0
aGUgbWVzaFR5cGUuCisgICAgICAgIC8vICogbV9pbmRpY2VzIGlzIGEgYnVmZmVyIHRoYXQgd2ls
bCBoYXZlIDMgaW5kaWNlcyBwZXIgdHJpYW5nbGUuIEVhY2ggaW5kZXggd2lsbCBwb2ludCBpbnNp
ZGUKKyAgICAgICAgLy8gdGhlIG1fdmVydGljZXMgYnVmZmVyLgorICAgICAgICBtX3ZlcnRpY2Vz
LnJlc2VydmVDYXBhY2l0eSh2ZXJ0aWNlc0NvdW50KCkgKiBmbG9hdHNQZXJWZXJ0ZXgoKSk7CiAg
ICAgICAgIG1faW5kaWNlcy5yZXNlcnZlQ2FwYWNpdHkoaW5kaWNlc0NvdW50KCkpOwogICAgICAg
ICAKKyAgICAgICAgLy8gQmFzZWQgb24gdGhlIG1lc2hUeXBlIHRoZXJlIGNhbiBiZSB0d28gdHlw
ZXMgb2YgbWVzaGVzLgorICAgICAgICAvLyAqIGF0dGFjaGVkOiBlYWNoIHRyaWFuZ2xlIHVzZXMg
dmVydGljZXMgZnJvbSB0aGUgbmVpZ2hib3IgdHJpYW5nbGVzLiBUaGlzIGlzIHVzZWZ1bCB0byBz
YXZlIHNvbWUgR1BVIG1lbW9yeQorICAgICAgICAvLyB3aGVuIHRoZXJlJ3Mgbm8gbmVlZCB0byBl
eHBsb2RlIHRoZSB0aWxlcy4KKyAgICAgICAgLy8gKiBkZXRhY2hlZDogZWFjaCB0cmlhbmdsZSBo
YXMgaXRzIG93biB2ZXJ0aWNlcy4gVGhpcyBtZWFucyBlYWNoIHRyaWFuZ2xlIGNhbiBiZSBtb3Zl
ZCBpbmRlcGVuZGVudGx5IGFuZCBhIHZlYzMKKyAgICAgICAgLy8gYXR0cmlidXRlIGlzIHBhc3Nl
ZCwgc28gdGhhdCBlYWNoIHZlcnRleCBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAg
ICAgaWYgKG1fbWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCkKICAg
ICAgICAgICAgIGdlbmVyYXRlQXR0YWNoZWRNZXNoKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGdlbmVyYXRlRGV0YWNoZWRNZXNoKCk7Ci0KLSNpZiBERUJVR19DVVNUT01fRklMVEVSX01F
U0gKLSAgICAgICAgZHVtcEJ1ZmZlcnMoKTsKKyAgICAgICAgCisjaWZuZGVmIE5ERUJVRworICAg
ICAgICBpZiAoc19kdW1wQ3VzdG9tRmlsdGVyTWVzaEJ1ZmZlcnMpCisgICAgICAgICAgICBkdW1w
QnVmZmVycygpOwogI2VuZGlmCiAgICAgfQogCkBAIC05MCw3ICsxMDYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBtX21lc2hUeXBlID09IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6QVRUQUNI
RUQgPyBBdHRhY2hlZE1lc2hWZXJ0ZXhTaXplIDogRGV0YWNoZWRNZXNoVmVydGV4U2l6ZTsKICAg
ICB9CiAgICAgCi0gICAgdW5zaWduZWQgdmVydGV4Q291bnQoKSBjb25zdAorICAgIHVuc2lnbmVk
IHZlcnRpY2VzQ291bnQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbWVzaFR5cGUg
PT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCA/IHBvaW50c0NvdW50KCkgOiBpbmRp
Y2VzQ291bnQoKTsKICAgICB9CkBAIC0xMTcsMTMgKzEzMywxNSBAQCBwcml2YXRlOgogICAgIAog
ICAgIHZvaWQgZ2VuZXJhdGVBdHRhY2hlZE1lc2goKQogICAgIHsKLSAgICAgICAgZm9yIChpbnQg
aiA9IDA7IGogPCBtX3BvaW50cy5oZWlnaHQoKTsgKytqKSAKKyAgICAgICAgZm9yIChpbnQgaiA9
IDA7IGogPCBtX3BvaW50cy5oZWlnaHQoKTsgKytqKSB7CiAgICAgICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1fcG9pbnRzLndpZHRoKCk7ICsraSkKICAgICAgICAgICAgICAgICBhZGRBdHRh
Y2hlZE1lc2hWZXJ0ZXhBdHRyaWJ1dGVzKGksIGopOworICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICBmb3IgKGludCBqID0gMDsgaiA8IG1fdGlsZXMuaGVpZ2h0KCk7ICsraikKKyAgICAgICAg
Zm9yIChpbnQgaiA9IDA7IGogPCBtX3RpbGVzLmhlaWdodCgpOyArK2opIHsKICAgICAgICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbV90aWxlcy53aWR0aCgpOyArK2kpCiAgICAgICAgICAgICAg
ICAgYWRkVGlsZTwmTWVzaEdlbmVyYXRvcjo6YWRkQXR0YWNoZWRNZXNoSW5kZXg+KGksIGopOwor
ICAgICAgICB9CiAgICAgfQogICAgIAogICAgIHZvaWQgYWRkRGV0YWNoZWRNZXNoVmVydGV4QW5k
SW5kZXgoaW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVks
IGludCB0cmlhbmdsZSkKQEAgLTEzNCw5ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICB2
b2lkIGdlbmVyYXRlRGV0YWNoZWRNZXNoKCkKICAgICB7Ci0gICAgICAgIGZvciAoaW50IGogPSAw
OyBqIDwgbV90aWxlcy5oZWlnaHQoKTsgKytqKQorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8
IG1fdGlsZXMuaGVpZ2h0KCk7ICsraikgewogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBtX3RpbGVzLndpZHRoKCk7ICsraSkKICAgICAgICAgICAgICAgICBhZGRUaWxlPCZNZXNoR2Vu
ZXJhdG9yOjphZGREZXRhY2hlZE1lc2hWZXJ0ZXhBbmRJbmRleD4oaSwgaik7CisgICAgICAgIH0K
ICAgICB9CiAgICAgCiAgICAgdm9pZCBhZGRQb3NpdGlvbkF0dHJpYnV0ZShpbnQgcXVhZFgsIGlu
dCBxdWFkWSkKQEAgLTE4Myw3ICsyMDIsNyBAQCBwcml2YXRlOgogICAgICAgICBhZGRUcmlhbmds
ZUNvb3JkQXR0cmlidXRlKHF1YWRYLCBxdWFkWSwgdHJpYW5nbGUpOwogICAgIH0KICAgICAKLSNp
ZmRlZiBERUJVR19DVVNUT01fRklMVEVSX01FU0gKKyNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBk
dW1wQnVmZmVycygpIGNvbnN0CiAgICAgewogICAgICAgICBwcmludGYoIk1lc2ggYnVmZmVyczog
UG9pbnRzLndpZHRoKCk6ICVkLCBQb2ludHMuaGVpZ2h0KCk6ICVkIG1lc2hCb3g6ICVmLCAlZiwg
JWYsICVmLCB0eXBlOiAlc1xuIiwgCkBAIC0yMDIsNyArMjIxLDYgQEAgcHJpdmF0ZToKICAgICB9
CiAjZW5kaWYKIAotICAgIAogcHJpdmF0ZToKICAgICBWZWN0b3I8ZmxvYXQ+IG1fdmVydGljZXM7
CiAgICAgVmVjdG9yPHVpbnQxNl90PiBtX2luZGljZXM7CkBAIC0yMTUsNyArMjMzLDcgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFJlY3QgbV9tZXNoQm94OwogfTsKIAotQ3VzdG9tRmlsdGVyTWVzaDo6
Q3VzdG9tRmlsdGVyTWVzaChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQgY29s
cywgdW5zaWduZWQgcm93cywgCitDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCB1bnNpZ25lZCBjb2x1bW5zLCB1bnNpZ25lZCByb3dz
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBt
ZXNoQm94LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBlIG1lc2hUeXBlKQogICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3ZlcnRpY2VzQnVmZmVyT2JqZWN0KDApCkBAIC0y
MjMsNyArMjQxLDcgQEAgQ3VzdG9tRmlsdGVyTWVzaDo6Q3VzdG9tRmlsdGVyTWVzaChHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQgY29scywgdW4KICAgICAsIG1fbWVzaEJveCht
ZXNoQm94KQogICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKIHsKLSAgICBNZXNoR2VuZXJhdG9y
IGdlbmVyYXRvcihjb2xzLCByb3dzLCBtZXNoQm94LCBtZXNoVHlwZSk7CisgICAgTWVzaEdlbmVy
YXRvciBnZW5lcmF0b3IoY29sdW1ucywgcm93cywgbWVzaEJveCwgbWVzaFR5cGUpOwogICAgIG1f
aW5kaWNlc0NvdW50ID0gZ2VuZXJhdG9yLmluZGljZXNDb3VudCgpOwogICAgIG1fYnl0ZXNQZXJW
ZXJ0ZXggPSBnZW5lcmF0b3IuZmxvYXRzUGVyVmVydGV4KCkgKiBzaXplb2YoZmxvYXQpOyAgICAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJNZXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlck1lc2guaAppbmRleCAyZTgwMWZhLi5iNTU3ZDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1l
c2guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlck1lc2guaApAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsK
IAogY2xhc3MgQ3VzdG9tRmlsdGVyTWVzaCA6IHB1YmxpYyBSZWZDb3VudGVkPEN1c3RvbUZpbHRl
ck1lc2g+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJNZXNo
PiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHVuc2lnbmVkIGNvbHMsIHVuc2ln
bmVkIHJvd3MsIGNvbnN0IEZsb2F0UmVjdCYgbWVzaEJveCwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5
cGUgbWVzaFR5cGUpIHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJNZXNoPiBj
cmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHVuc2lnbmVkIGNvbHMsIHVuc2lnbmVk
IHJvd3MsIGNvbnN0IEZsb2F0UmVjdCYgbWVzaEJveCwgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpN
ZXNoVHlwZSBtZXNoVHlwZSkKKyAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Vz
dG9tRmlsdGVyTWVzaChjb250ZXh0LCBjb2xzLCByb3dzLCBtZXNoQm94LCBtZXNoVHlwZSkpOwog
ICAgIH0KICAgICB+Q3VzdG9tRmlsdGVyTWVzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIu
Y3BwCmluZGV4IDQyM2Q4NjguLmEwNTJhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5j
cHAKQEAgLTMwLDQ5ICszMCwzNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaWYgRU5BQkxF
KENTU19TSEFERVJTKSAmJiBFTkFCTEUoV0VCR0wpCi0KLSNkZWZpbmUgU0hBREVSMChTcmMpICNT
cmMKLSNkZWZpbmUgU0hBREVSKFNyYykgU0hBREVSMChTcmMpCi0KICNpbmNsdWRlICJDdXN0b21G
aWx0ZXJTaGFkZXIuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU3RyaW5nIEN1c3RvbUZpbHRlclNoYWRlcjo6ZGVmYXVsdFZlcnRl
eFNoYWRlclN0cmluZygpCi17Ci0gICAgcmV0dXJuIFNIQURFUigKLSAgICAgICAgcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247Ci0gICAg
ICAgIGF0dHJpYnV0ZSB2ZWMyIGFfdGV4Q29vcmQ7Ci0gICAgICAgIHVuaWZvcm0gbWF0NCB1X3By
b2plY3Rpb25NYXRyaXg7Ci0gICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwotICAgICAg
ICB2b2lkIG1haW4oKQotICAgICAgICB7Ci0gICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Ci0gICAgICAgICAgICB2X3RleENvb3JkID0gYV90
ZXhDb29yZDsKLSAgICAgICAgfQotICAgICk7Ci19Citjb25zdCBjaGFyKiBDdXN0b21GaWx0ZXJT
aGFkZXI6OmRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmcgPSAKKyAgICAgICAgInByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0O1xuIiBcCisgICAgICAgICJhdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uO1xu
IiBcCisgICAgICAgICJhdHRyaWJ1dGUgdmVjMiBhX3RleENvb3JkO1xuIiBcCisgICAgICAgICJ1
bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4O1xuIiBcCisgICAgICAgICJ2YXJ5aW5nIHZl
YzIgdl90ZXhDb29yZDtcbiIgXAorICAgICAgICAidm9pZCBtYWluKClcbiIgXAorICAgICAgICAi
e1xuIiBcCisgICAgICAgICIgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBh
X3Bvc2l0aW9uO1xuIiBcCisgICAgICAgICIgICAgdl90ZXhDb29yZCA9IGFfdGV4Q29vcmQ7XG4i
IFwKKyAgICAgICAgIn1cbiI7CiAKLVN0cmluZyBDdXN0b21GaWx0ZXJTaGFkZXI6OmRlZmF1bHRG
cmFnbWVudFNoYWRlclN0cmluZygpCi17Ci0gICAgcmV0dXJuIFNIQURFUigKLSAgICAgICAgcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0gICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwot
ICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX3RleHR1cmU7Ci0gICAgICAgIHZvaWQgbWFpbigp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRChzX3RleHR1
cmUsIHZfdGV4Q29vcmQpOwotICAgICAgICB9Ci0gICAgKTsKLX0KK2NvbnN0IGNoYXIqIEN1c3Rv
bUZpbHRlclNoYWRlcjo6ZGVmYXVsdEZyYWdtZW50U2hhZGVyU3RyaW5nID0KKyAgICAgICAgInBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuIiBcCisgICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhD
b29yZDtcbiIgXAorICAgICAgICAidW5pZm9ybSBzYW1wbGVyMkQgc190ZXh0dXJlO1xuIiBcCisg
ICAgICAgICJ2b2lkIG1haW4oKVxuIiBcCisgICAgICAgICJ7XG4iIFwKKyAgICAgICAgIiAgICBn
bF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoc190ZXh0dXJlLCB2X3RleENvb3JkKTtcbiIgXAorICAg
ICAgICAifVxuIjsKIAogQ3VzdG9tRmlsdGVyU2hhZGVyOjpDdXN0b21GaWx0ZXJTaGFkZXIoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyU3RyaW5nKQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCi0gICAgLCBtX3ZlcnRleFNoYWRlclN0cmluZyghdmVydGV4U2hhZGVyU3RyaW5nLmlz
TnVsbCgpID8gdmVydGV4U2hhZGVyU3RyaW5nIDogZGVmYXVsdFZlcnRleFNoYWRlclN0cmluZygp
KQotICAgICwgbV9mcmFnbWVudFNoYWRlclN0cmluZyghZnJhZ21lbnRTaGFkZXJTdHJpbmcuaXNO
dWxsKCkgPyBmcmFnbWVudFNoYWRlclN0cmluZyA6IGRlZmF1bHRGcmFnbWVudFNoYWRlclN0cmlu
ZygpKQorICAgICwgbV92ZXJ0ZXhTaGFkZXJTdHJpbmcoIXZlcnRleFNoYWRlclN0cmluZy5pc051
bGwoKSA/IHZlcnRleFNoYWRlclN0cmluZyA6IFN0cmluZyhkZWZhdWx0VmVydGV4U2hhZGVyU3Ry
aW5nKSkKKyAgICAsIG1fZnJhZ21lbnRTaGFkZXJTdHJpbmcoIWZyYWdtZW50U2hhZGVyU3RyaW5n
LmlzTnVsbCgpID8gZnJhZ21lbnRTaGFkZXJTdHJpbmcgOiBTdHJpbmcoZGVmYXVsdEZyYWdtZW50
U2hhZGVyU3RyaW5nKSkKICAgICAsIG1fcHJvZ3JhbSgwKQogICAgICwgbV9wb3NpdGlvbkF0dHJp
YkxvY2F0aW9uKC0xKQogICAgICwgbV90ZXhBdHRyaWJMb2NhdGlvbigtMSkKQEAgLTg3LDQ2ICs3
NCw2OCBAQCBDdXN0b21GaWx0ZXJTaGFkZXI6OkN1c3RvbUZpbHRlclNoYWRlcihHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgICwgbV9jb250ZW50U2FtcGxlckxv
Y2F0aW9uKC0xKQogICAgICwgbV9pc0luaXRpYWxpemVkKGZhbHNlKQogewotICAgIFBsYXRmb3Jt
M0RPYmplY3QgdmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRT
aGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01F
TlRfU0hBREVSKTsKLQotICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwg
bV92ZXJ0ZXhTaGFkZXJTdHJpbmcpOwotICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcih2ZXJ0
ZXhTaGFkZXIpOworICAgIFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVyID0gY29tcGlsZVNo
YWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUiwgbV92ZXJ0ZXhTaGFkZXJTdHJp
bmcpOworICAgIGlmICghdmVydGV4U2hhZGVyKQorICAgICAgICByZXR1cm47CiAgICAgCi0gICAg
aW50IGNvbXBpbGVkID0gMDsKLSAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2KHZlcnRleFNoYWRl
ciwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmY29tcGlsZWQpOwotICAgIGlm
ICghY29tcGlsZWQpIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW52YWxpZCBzaGFk
ZXIuIFRocm93IHNvbWUgZXJyb3JzLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTYKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hh
ZGVyID0gY29tcGlsZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSLCBt
X2ZyYWdtZW50U2hhZGVyU3RyaW5nKTsKKyAgICBpZiAoIWZyYWdtZW50U2hhZGVyKSB7CisgICAg
ICAgIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFk
ZXIsIG1fZnJhZ21lbnRTaGFkZXJTdHJpbmcpOwotICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRl
cihmcmFnbWVudFNoYWRlcik7CisgICAgbV9wcm9ncmFtID0gbGlua1Byb2dyYW0odmVydGV4U2hh
ZGVyLCBmcmFnbWVudFNoYWRlcik7CisgICAgCisgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIo
dmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRl
cik7CiAgICAgCi0gICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNoYWRlciwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmY29tcGlsZWQpOworICAgIGlmICghbV9w
cm9ncmFtKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaW5pdGlhbGl6ZVBhcmFtZXRlckxv
Y2F0aW9ucygpOworICAgIAorICAgIG1faXNJbml0aWFsaXplZCA9IHRydWU7Cit9CisKK1BsYXRm
b3JtM0RPYmplY3QgQ3VzdG9tRmlsdGVyU2hhZGVyOjpjb21waWxlU2hhZGVyKEdDM0RlbnVtIHNo
YWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVyU3RyaW5nKQoreworICAgIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoc2hhZGVyVHlwZSk7CisgICAg
bV9jb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTdHJpbmcpOworICAgIG1fY29u
dGV4dC0+Y29tcGlsZVNoYWRlcihzaGFkZXIpOworICAgIAorICAgIGludCBjb21waWxlZCA9IDA7
CisgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihzaGFkZXIsIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKTsKICAgICBpZiAoIWNvbXBpbGVkKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGFuIGludmFsaWQgc2hhZGVyLiBUaHJvdyBzb21lIGVycm9ycy4K
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDE2
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIoc2hhZGVy
KTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIAotICAgIG1fcHJvZ3JhbSA9IG1fY29u
dGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOwotICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKG1fcHJv
Z3JhbSwgdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihtX3Byb2dy
YW0sIGZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmxpbmtQcm9ncmFtKG1fcHJvZ3Jh
bSk7Ci0gICAgCi0gICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKTsKLSAg
ICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRlcik7CisgICAgcmV0dXJuIHNo
YWRlcjsKK30KKworUGxhdGZvcm0zRE9iamVjdCBDdXN0b21GaWx0ZXJTaGFkZXI6OmxpbmtQcm9n
cmFtKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdt
ZW50U2hhZGVyKQoreworICAgIFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSA9IG1fY29udGV4dC0+
Y3JlYXRlUHJvZ3JhbSgpOworICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dyYW0sIHZl
cnRleFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21l
bnRTaGFkZXIpOworICAgIG1fY29udGV4dC0+bGlua1Byb2dyYW0ocHJvZ3JhbSk7CiAgICAgCiAg
ICAgaW50IGxpbmtlZCA9IDA7Ci0gICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYobV9wcm9ncmFt
LCBHcmFwaGljc0NvbnRleHQzRDo6TElOS19TVEFUVVMsICZsaW5rZWQpOworICAgIG1fY29udGV4
dC0+Z2V0UHJvZ3JhbWl2KHByb2dyYW0sIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUywg
JmxpbmtlZCk7CiAgICAgaWYgKCFsaW5rZWQpIHsKICAgICAgICAgLy8gRklYTUU6IEludmFsaWQg
dmVydGV4L2ZyYWdtZW50IHNoYWRlciBjb21iaW5hdGlvbi4gVGhyb3cgc29tZSBlcnJvcnMgaGVy
ZS4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0
NDE2Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKHBy
b2dyYW0pOworICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCisgICAgcmV0dXJuIHByb2dy
YW07Cit9CisKK3ZvaWQgQ3VzdG9tRmlsdGVyU2hhZGVyOjppbml0aWFsaXplUGFyYW1ldGVyTG9j
YXRpb25zKCkKK3sKICAgICBtX3Bvc2l0aW9uQXR0cmliTG9jYXRpb24gPSBtX2NvbnRleHQtPmdl
dEF0dHJpYkxvY2F0aW9uKG1fcHJvZ3JhbSwgImFfcG9zaXRpb24iKTsKICAgICBtX3RleEF0dHJp
YkxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRBdHRyaWJMb2NhdGlvbihtX3Byb2dyYW0sICJhX3Rl
eENvb3JkIik7CiAgICAgbV9tZXNoQXR0cmliTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldEF0dHJp
YkxvY2F0aW9uKG1fcHJvZ3JhbSwgImFfbWVzaENvb3JkIik7CkBAIC0xMzgsOCArMTQ3LDYgQEAg
Q3VzdG9tRmlsdGVyU2hhZGVyOjpDdXN0b21GaWx0ZXJTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBtX3NhbXBsZXJMb2NhdGlvbiA9IG1fY29udGV4
dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcHJvZ3JhbSwgInNfdGV4dHVyZSIpOwogICAgIG1fc2Ft
cGxlclNpemVMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcHJvZ3Jh
bSwgInNfdGV4dHVyZVNpemUiKTsKICAgICBtX2NvbnRlbnRTYW1wbGVyTG9jYXRpb24gPSBtX2Nv
bnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3Byb2dyYW0sICJzX2NvbnRlbnRUZXh0dXJlIik7
Ci0gICAgCi0gICAgbV9pc0luaXRpYWxpemVkID0gdHJ1ZTsKIH0KICAgICAKIEN1c3RvbUZpbHRl
clNoYWRlcjo6fkN1c3RvbUZpbHRlclNoYWRlcigpCkBAIC0xNDgsOSArMTU1LDUgQEAgQ3VzdG9t
RmlsdGVyU2hhZGVyOjp+Q3VzdG9tRmlsdGVyU2hhZGVyKCkKICAgICAgICAgbV9jb250ZXh0LT5k
ZWxldGVQcm9ncmFtKG1fcHJvZ3JhbSk7CiB9CiAKLQotfQotCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKSAmJiBFTkFCTEUoV0VCR0wpCi0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmgKaW5kZXggYWYxZmNjOS4uZGJlM2M0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJT
aGFkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclNoYWRlci5oCkBAIC00OSw5ICs0OSw2IEBAIHB1YmxpYzoKICAgICAKICAgICB+
Q3VzdG9tRmlsdGVyU2hhZGVyKCk7CiAgICAgCi0gICAgc3RhdGljIFN0cmluZyBkZWZhdWx0VmVy
dGV4U2hhZGVyU3RyaW5nKCk7Ci0gICAgc3RhdGljIFN0cmluZyBkZWZhdWx0RnJhZ21lbnRTaGFk
ZXJTdHJpbmcoKTsgICAgCi0gICAgCiAgICAgU3RyaW5nIHZlcnRleFNoYWRlclN0cmluZygpIGNv
bnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyU3RyaW5nOyB9CiAgICAgU3RyaW5nIGZyYWdtZW50
U2hhZGVyU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudFNoYWRlclN0cmluZzsgfQog
ICAgIApAQCAtNzQsNiArNzEsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDdXN0b21GaWx0
ZXJTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwg
Y29uc3QgU3RyaW5nJiBmcmFnbWVudFNoYWRlcik7CiAgICAgCisgICAgUGxhdGZvcm0zRE9iamVj
dCBjb21waWxlU2hhZGVyKEdDM0RlbnVtIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVy
U3RyaW5nKTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGxpbmtQcm9ncmFtKFBsYXRmb3JtM0RPYmpl
Y3QgdmVydGV4U2hhZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKTsKKyAgICB2
b2lkIGluaXRpYWxpemVQYXJhbWV0ZXJMb2NhdGlvbnMoKTsKKyAgICAKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogZGVmYXVsdFZlcnRleFNoYWRlclN0cmluZzsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciogZGVmYXVsdEZyYWdtZW50U2hhZGVyU3RyaW5nOworICAgIAogICAgIFJlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIAogICAgIFN0cmluZyBtX3ZlcnRleFNoYWRlclN0
cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDdXN0b21GaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAKaW5kZXggOWJiOGFkZC4uZmI0MjcwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZp
bHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUN1c3RvbUZpbHRlci5jcHAKQEAgLTUxLDI3ICs1MSwyNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBvcnRob01hdHJpeChmbG9hdCBsZWZ0
LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3ApCitzdGF0aWMgdm9pZCBvcnRo
b2dvbmFsUHJvamVjdGlvbk1hdHJpeChUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9h
dCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3ApCiB7CisgICAgQVNT
RVJUKG1hdHJpeC5pc0lkZW50aXR5KCkpOworICAgIAogICAgIGZsb2F0IGRlbHRhWCA9IHJpZ2h0
IC0gbGVmdDsKICAgICBmbG9hdCBkZWx0YVkgPSB0b3AgLSBib3R0b207Ci0gICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggb3J0aG87CiAgICAgaWYgKCFkZWx0YVggfHwgIWRlbHRhWSkKLSAgICAgICAg
cmV0dXJuIG9ydGhvOwotICAgIG9ydGhvLnNldE0xMSgyLjBmIC8gZGVsdGFYKTsKLSAgICBvcnRo
by5zZXRNNDEoLShyaWdodCArIGxlZnQpIC8gZGVsdGFYKTsKLSAgICBvcnRoby5zZXRNMjIoMi4w
ZiAvIGRlbHRhWSk7Ci0gICAgb3J0aG8uc2V0TTQyKC0odG9wICsgYm90dG9tKSAvIGRlbHRhWSk7
CisgICAgICAgIHJldHVybjsKKyAgICBtYXRyaXguc2V0TTExKDIuMGYgLyBkZWx0YVgpOworICAg
IG1hdHJpeC5zZXRNNDEoLShyaWdodCArIGxlZnQpIC8gZGVsdGFYKTsKKyAgICBtYXRyaXguc2V0
TTIyKDIuMGYgLyBkZWx0YVkpOworICAgIG1hdHJpeC5zZXRNNDIoLSh0b3AgKyBib3R0b20pIC8g
ZGVsdGFZKTsKIAogICAgIC8vIFVzZSBiaWcgZW5vdWdoIG5lYXIvZmFyIHZhbHVlcywgc28gdGhh
dCBzaW1wbGUgcm90YXRpb25zIG9mIHJhdGhlciBsYXJnZSBvYmplY3RzIHdpbGwgbm90CiAgICAg
Ly8gZ2V0IGNsaXBwZWQuIDEwMDAwIHNob3VsZCBjb3ZlciBtb3N0IG9mIHRoZSBzY3JlZW4gcmVz
b2x1dGlvbnMuCiAgICAgY29uc3QgZmxvYXQgZmFyVmFsdWUgPSAxMDAwMDsKICAgICBjb25zdCBm
bG9hdCBuZWFyVmFsdWUgPSAtMTAwMDA7Ci0gICAgb3J0aG8uc2V0TTMzKC0yLjBmIC8gKGZhclZh
bHVlIC0gbmVhclZhbHVlKSk7Ci0gICAgb3J0aG8uc2V0TTQzKC0gKGZhclZhbHVlICsgbmVhclZh
bHVlKSAvIChmYXJWYWx1ZSAtIG5lYXJWYWx1ZSkpOwotICAgIG9ydGhvLnNldE00NCgxLjBmKTsK
LQotICAgIHJldHVybiBvcnRobzsKKyAgICBtYXRyaXguc2V0TTMzKC0yLjBmIC8gKGZhclZhbHVl
IC0gbmVhclZhbHVlKSk7CisgICAgbWF0cml4LnNldE00MygtIChmYXJWYWx1ZSArIG5lYXJWYWx1
ZSkgLyAoZmFyVmFsdWUgLSBuZWFyVmFsdWUpKTsKKyAgICBtYXRyaXguc2V0TTQ0KDEuMGYpOwog
fQogCiBGRUN1c3RvbUZpbHRlcjo6RkVDdXN0b21GaWx0ZXIoRmlsdGVyKiBmaWx0ZXIsIERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYg
ZnJhZ21lbnRTaGFkZXIsCkBAIC04NSw3ICs4NCw2IEBAIEZFQ3VzdG9tRmlsdGVyOjpGRUN1c3Rv
bUZpbHRlcihGaWx0ZXIqIGZpbHRlciwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
CiAgICAgLCBtX21lc2hDb2x1bW5zKG1lc2hDb2x1bW5zKQogICAgICwgbV9tZXNoQm94VHlwZSht
ZXNoQm94VHlwZSkKICAgICAsIG1fbWVzaFR5cGUobWVzaFR5cGUpCi0KIHsKIH0KIApAQCAtMTAz
LDQwICsxMDEsNzIgQEAgdm9pZCBGRUN1c3RvbUZpbHRlcjo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgRmlsdGVyRWZmZWN0KiBpbiA9IGlucHV0RWZmZWN0
KDApOwotICAgIEludFJlY3QgZWZmZWN0QURyYXdpbmdSZWN0ID0gcmVxdWVzdGVkUmVnaW9uT2ZJ
bnB1dEltYWdlRGF0YShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSk7Ci0gICAgUmVmUHRyPEJ5dGVB
cnJheT4gc3JjUGl4ZWxBcnJheSA9IGluLT5hc1ByZW11bHRpcGxpZWRJbWFnZShlZmZlY3RBRHJh
d2luZ1JlY3QpOworICAgIEludFJlY3QgZWZmZWN0RHJhd2luZ1JlY3QgPSByZXF1ZXN0ZWRSZWdp
b25PZklucHV0SW1hZ2VEYXRhKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKKyAgICBSZWZQdHI8
Qnl0ZUFycmF5PiBzcmNQaXhlbEFycmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdlKGVmZmVj
dERyYXdpbmdSZWN0KTsKICAgICAKLSAgICBJbnRTaXplIG5ld0NvbnRleHRTaXplKGVmZmVjdEFE
cmF3aW5nUmVjdC53aWR0aCgpLCBlZmZlY3RBRHJhd2luZ1JlY3QuaGVpZ2h0KCkpOworICAgIElu
dFNpemUgbmV3Q29udGV4dFNpemUoZWZmZWN0RHJhd2luZ1JlY3Quc2l6ZSgpKTsKICAgICBib29s
IGhhZENvbnRleHQgPSBtX2NvbnRleHQ7Ci0gICAgaWYgKCFtX2NvbnRleHQpIHsKLSAgICAgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlczsKLSAgICAgICAgYXR0cmli
dXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSB0cnVlOwotICAgICAgICBhdHRyaWJ1dGVzLnBy
ZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgbV9jb250ZXh0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBtX2RvY3VtZW50LT52aWV3KCkt
PnJvb3QoKS0+aG9zdFdpbmRvdygpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVu
KTsKLSAgICAgICAgbV9kcmF3aW5nQnVmZmVyID0gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKG1fY29u
dGV4dC5nZXQoKSwgbmV3Q29udGV4dFNpemUsICFhdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1
ZmZlcik7Ci0gICAgICAgIAotICAgICAgICBtX3NoYWRlciA9IEN1c3RvbUZpbHRlclNoYWRlcjo6
Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwgbV92ZXJ0ZXhTaGFkZXIsIG1fZnJhZ21lbnRTaGFkZXIp
OwotICAgICAgICBtX21lc2ggPSBDdXN0b21GaWx0ZXJNZXNoOjpjcmVhdGUobV9jb250ZXh0Lmdl
dCgpLCBtX21lc2hDb2x1bW5zLCBtX21lc2hSb3dzLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZsb2F0UmVjdCgwLCAwLCAxLCAxKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVzaFR5cGUpOwotICAgIH0KKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgaW5pdGlhbGl6ZUNvbnRleHQobmV3Q29udGV4dFNpemUpOwog
ICAgIAotICAgIGlmICghaGFkQ29udGV4dCB8fCBtX2NvbnRleHRTaXplICE9IG5ld0NvbnRleHRT
aXplKSB7Ci0gICAgICAgIG1faW5wdXRUZXh0dXJlID0gMDsKLSAgICAgICAgbV9kcmF3aW5nQnVm
ZmVyLT5yZXNldChuZXdDb250ZXh0U2l6ZSk7Ci0gICAgICAgIG1fY29udGV4dC0+cmVzaGFwZShu
ZXdDb250ZXh0U2l6ZS53aWR0aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAg
IG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwgbmV3Q29udGV4dFNpemUud2lkdGgoKSwgbmV3Q29u
dGV4dFNpemUuaGVpZ2h0KCkpOwotICAgICAgICBtX2lucHV0VGV4dHVyZSA9IFRleHR1cmU6OmNy
ZWF0ZShtX2NvbnRleHQuZ2V0KCksIFRleHR1cmU6OlJHQkE4LCBuZXdDb250ZXh0U2l6ZS53aWR0
aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIG1fY29udGV4dFNpemUgPSBu
ZXdDb250ZXh0U2l6ZTsKLSAgICB9CisgICAgaWYgKCFoYWRDb250ZXh0IHx8IG1fY29udGV4dFNp
emUgIT0gbmV3Q29udGV4dFNpemUpCisgICAgICAgIHJlc2l6ZUNvbnRleHQobmV3Q29udGV4dFNp
emUpOwogICAgIAorICAgIC8vIERvIG5vdCBkcmF3IHRoZSBmaWx0ZXIgaWYgdGhlIGlucHV0IGlt
YWdlIGNhbm5vdCBmaXQgaW5zaWRlIGEgc2luZ2xlIEdQVSB0ZXh0dXJlLgogICAgIGlmIChtX2lu
cHV0VGV4dHVyZS0+dGlsZXMoKS5udW1UaWxlcygpICE9IDEpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiAgICAgbV9jb250ZXh0
LT5jbGVhcihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpERVBUSF9CVUZGRVJfQklUKTsKICAgICAKKyAgICBiaW5kUHJvZ3JhbUFuZEJ1ZmZl
cnMoc3JjUGl4ZWxBcnJheS5nZXQoKSk7CisgICAgCisgICAgbV9jb250ZXh0LT5kcmF3RWxlbWVu
dHMoR3JhcGhpY3NDb250ZXh0M0Q6OlRSSUFOR0xFUywgbV9tZXNoLT5pbmRpY2VzQ291bnQoKSwg
R3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JULCAwKTsKKyAgICAKKyAgICBtX2RyYXdp
bmdCdWZmZXItPmNvbW1pdCgpOworCisgICAgUmVmUHRyPEltYWdlRGF0YT4gaW1hZ2VEYXRhID0g
bV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YShtX2RyYXdpbmdCdWZm
ZXIuZ2V0KCkpOworICAgIEJ5dGVBcnJheSogZ3B1UmVzdWx0ID0gaW1hZ2VEYXRhLT5kYXRhKCkt
PmRhdGEoKTsKKyAgICBBU1NFUlQoZ3B1UmVzdWx0LT5sZW5ndGgoKSA9PSBkc3RQaXhlbEFycmF5
LT5sZW5ndGgoKSk7CisgICAgbWVtY3B5KGRzdFBpeGVsQXJyYXktPmRhdGEoKSwgZ3B1UmVzdWx0
LT5kYXRhKCksIGdwdVJlc3VsdC0+bGVuZ3RoKCkpOworfQorCit2b2lkIEZFQ3VzdG9tRmlsdGVy
Ojppbml0aWFsaXplQ29udGV4dChjb25zdCBJbnRTaXplJiBjb250ZXh0U2l6ZSkKK3sKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMu
cHJlc2VydmVEcmF3aW5nQnVmZmVyID0gdHJ1ZTsKKyAgICBhdHRyaWJ1dGVzLnByZW11bHRpcGxp
ZWRBbHBoYSA9IGZhbHNlOworICAgIAorICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNE
OjpjcmVhdGUoYXR0cmlidXRlcywgbV9kb2N1bWVudC0+dmlldygpLT5yb290KCktPmhvc3RXaW5k
b3coKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbik7CisgICAgbV9kcmF3aW5n
QnVmZmVyID0gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwgY29udGV4dFNp
emUsICFhdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcik7CisgICAgCisgICAgbV9zaGFk
ZXIgPSBDdXN0b21GaWx0ZXJTaGFkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIG1fdmVydGV4
U2hhZGVyLCBtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX21lc2ggPSBDdXN0b21GaWx0ZXJNZXNo
OjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBtX21lc2hDb2x1bW5zLCBtX21lc2hSb3dzLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRSZWN0KDAsIDAsIDEsIDEp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21lc2hUeXBlKTsKK30K
Kwordm9pZCBGRUN1c3RvbUZpbHRlcjo6cmVzaXplQ29udGV4dChjb25zdCBJbnRTaXplJiBuZXdD
b250ZXh0U2l6ZSkKK3sKKyAgICBtX2lucHV0VGV4dHVyZSA9IDA7CisgICAgbV9kcmF3aW5nQnVm
ZmVyLT5yZXNldChuZXdDb250ZXh0U2l6ZSk7CisgICAgbV9jb250ZXh0LT5yZXNoYXBlKG5ld0Nv
bnRleHRTaXplLndpZHRoKCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgpKTsKKyAgICBtX2NvbnRl
eHQtPnZpZXdwb3J0KDAsIDAsIG5ld0NvbnRleHRTaXplLndpZHRoKCksIG5ld0NvbnRleHRTaXpl
LmhlaWdodCgpKTsKKyAgICBtX2lucHV0VGV4dHVyZSA9IFRleHR1cmU6OmNyZWF0ZShtX2NvbnRl
eHQuZ2V0KCksIFRleHR1cmU6OlJHQkE4LCBuZXdDb250ZXh0U2l6ZS53aWR0aCgpLCBuZXdDb250
ZXh0U2l6ZS5oZWlnaHQoKSk7CisgICAgbV9jb250ZXh0U2l6ZSA9IG5ld0NvbnRleHRTaXplOwor
fQorCit2b2lkIEZFQ3VzdG9tRmlsdGVyOjpiaW5kVmVydGV4QXR0cmlidXRlKGludCBhdHRyaWJ1
dGVMb2NhdGlvbiwgdW5zaWduZWQgc2l6ZSwgdW5zaWduZWQmIG9mZnNldCkKK3sKKyAgICBpZiAo
YXR0cmlidXRlTG9jYXRpb24gIT0gLTEpIHsKKyAgICAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRy
aWJQb2ludGVyKGF0dHJpYnV0ZUxvY2F0aW9uLCA0LCBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQs
IGZhbHNlLCBtX21lc2gtPmJ5dGVzUGVyVmVydGV4KCksIG9mZnNldCk7CisgICAgICAgIG1fY29u
dGV4dC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYXR0cmlidXRlTG9jYXRpb24pOworICAgIH0K
KyAgICBvZmZzZXQgKz0gc2l6ZSAqIHNpemVvZihmbG9hdCk7Cit9CisKK3ZvaWQgRkVDdXN0b21G
aWx0ZXI6OmJpbmRQcm9ncmFtQW5kQnVmZmVycyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXkpCit7
CiAgICAgbV9jb250ZXh0LT51c2VQcm9ncmFtKG1fc2hhZGVyLT5wcm9ncmFtKCkpOwogICAgIAog
ICAgIGlmIChtX3NoYWRlci0+c2FtcGxlckxvY2F0aW9uKCkgIT0gLTEpIHsKQEAgLTE0Nyw3ICsx
NzcsOCBAQCB2b2lkIEZFQ3VzdG9tRmlsdGVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAg
IH0KICAgICAKICAgICBpZiAobV9zaGFkZXItPnByb2plY3Rpb25NYXRyaXhMb2NhdGlvbigpICE9
IC0xKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHByb2plY3Rpb25NYXRyaXggPSBv
cnRob01hdHJpeCgtMC41LCAwLjUsIC0wLjUsIDAuNSk7CisgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IHByb2plY3Rpb25NYXRyaXg7IAorICAgICAgICBvcnRob2dvbmFsUHJvamVjdGlvbk1h
dHJpeChwcm9qZWN0aW9uTWF0cml4LCAtMC41LCAwLjUsIC0wLjUsIDAuNSk7CiAgICAgICAgIGZs
b2F0IGdsUHJvamVjdGlvbk1hdHJpeFsxNl07CiAgICAgICAgIHByb2plY3Rpb25NYXRyaXgudG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoZ2xQcm9qZWN0aW9uTWF0cml4KTsKICAgICAgICAgbV9jb250
ZXh0LT51bmlmb3JtTWF0cml4NGZ2KG1fc2hhZGVyLT5wcm9qZWN0aW9uTWF0cml4TG9jYXRpb24o
KSwgZmFsc2UsICZnbFByb2plY3Rpb25NYXRyaXhbMF0sIDEpOwpAQCAtMTU2LDQxICsxODcsMTIg
QEAgdm9pZCBGRUN1c3RvbUZpbHRlcjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9tZXNo
LT52ZXJ0aWNlc0J1ZmZlck9iamVjdCgpKTsKICAgICBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBtX21lc2gtPmVsZW1lbnRzQnVm
ZmVyT2JqZWN0KCkpOwogCi0gICAgdW5zaWduZWQgdmVydGV4U2l6ZSA9IG1fbWVzaC0+Ynl0ZXNQ
ZXJWZXJ0ZXgoKTsKLSAgICAKICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwotICAgIAotICAgIGlm
IChtX3NoYWRlci0+cG9zaXRpb25BdHRyaWJMb2NhdGlvbigpICE9IC0xKSB7Ci0gICAgICAgIG1f
Y29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3NoYWRlci0+cG9zaXRpb25BdHRyaWJMb2Nh
dGlvbigpLCA0LCBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQsIGZhbHNlLCB2ZXJ0ZXhTaXplLCBv
ZmZzZXQpOwotICAgICAgICBtX2NvbnRleHQtPmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG1fc2hh
ZGVyLT5wb3NpdGlvbkF0dHJpYkxvY2F0aW9uKCkpOwotICAgIH0KLSAgICBvZmZzZXQgKz0gNCAq
IHNpemVvZihmbG9hdCk7Ci0gICAgCi0gICAgaWYgKG1fc2hhZGVyLT50ZXhBdHRyaWJMb2NhdGlv
bigpICE9IC0xKSB7Ci0gICAgICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3No
YWRlci0+dGV4QXR0cmliTG9jYXRpb24oKSwgMiwgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FULCBm
YWxzZSwgdmVydGV4U2l6ZSwgb2Zmc2V0KTsKLSAgICAgICAgbV9jb250ZXh0LT5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheShtX3NoYWRlci0+dGV4QXR0cmliTG9jYXRpb24oKSk7Ci0gICAgfQotICAg
IG9mZnNldCArPSAyICogc2l6ZW9mKGZsb2F0KTsKLSAgICAKLSAgICBpZiAobV9zaGFkZXItPm1l
c2hBdHRyaWJMb2NhdGlvbigpICE9IC0xKSB7Ci0gICAgICAgIG1fY29udGV4dC0+dmVydGV4QXR0
cmliUG9pbnRlcihtX3NoYWRlci0+bWVzaEF0dHJpYkxvY2F0aW9uKCksIDIsIEdyYXBoaWNzQ29u
dGV4dDNEOjpGTE9BVCwgZmFsc2UsIHZlcnRleFNpemUsIG9mZnNldCk7Ci0gICAgICAgIG1fY29u
dGV4dC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobV9zaGFkZXItPm1lc2hBdHRyaWJMb2NhdGlv
bigpKTsKLSAgICB9Ci0gICAgb2Zmc2V0ICs9IDIgKiBzaXplb2YoZmxvYXQpOwotICAgIAotICAg
IGlmIChtX21lc2hUeXBlID09IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6REVUQUNIRUQgJiYgbV9z
aGFkZXItPnRyaWFuZ2xlQXR0cmliTG9jYXRpb24oKSAhPSAtMSkgewotICAgICAgICBtX2NvbnRl
eHQtPnZlcnRleEF0dHJpYlBvaW50ZXIobV9zaGFkZXItPnRyaWFuZ2xlQXR0cmliTG9jYXRpb24o
KSwgMywgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FULCBmYWxzZSwgdmVydGV4U2l6ZSwgb2Zmc2V0
KTsKLSAgICAgICAgbV9jb250ZXh0LT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShtX3NoYWRlci0+
dHJpYW5nbGVBdHRyaWJMb2NhdGlvbigpKTsKLSAgICB9Ci0gICAgCi0gICAgbV9jb250ZXh0LT5k
cmF3RWxlbWVudHMoR3JhcGhpY3NDb250ZXh0M0Q6OlRSSUFOR0xFUywgbV9tZXNoLT5pbmRpY2Vz
Q291bnQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JULCAwKTsKLSAgICAKLSAg
ICBtX2RyYXdpbmdCdWZmZXItPmNvbW1pdCgpOwotCi0gICAgUmVmUHRyPEltYWdlRGF0YT4gaW1h
Z2VEYXRhID0gbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YShtX2Ry
YXdpbmdCdWZmZXIuZ2V0KCkpOwotICAgIEJ5dGVBcnJheSogZ3B1UmVzdWx0ID0gaW1hZ2VEYXRh
LT5kYXRhKCktPmRhdGEoKTsKLSAgICBBU1NFUlQoZ3B1UmVzdWx0LT5sZW5ndGgoKSA9PSBkc3RQ
aXhlbEFycmF5LT5sZW5ndGgoKSk7Ci0gICAgbWVtY3B5KGRzdFBpeGVsQXJyYXktPmRhdGEoKSwg
Z3B1UmVzdWx0LT5kYXRhKCksIGdwdVJlc3VsdC0+bGVuZ3RoKCkpOworICAgIGJpbmRWZXJ0ZXhB
dHRyaWJ1dGUobV9zaGFkZXItPnBvc2l0aW9uQXR0cmliTG9jYXRpb24oKSwgNCwgb2Zmc2V0KTsK
KyAgICBiaW5kVmVydGV4QXR0cmlidXRlKG1fc2hhZGVyLT50ZXhBdHRyaWJMb2NhdGlvbigpLCAy
LCBvZmZzZXQpOworICAgIGJpbmRWZXJ0ZXhBdHRyaWJ1dGUobV9zaGFkZXItPm1lc2hBdHRyaWJM
b2NhdGlvbigpLCAyLCBvZmZzZXQpOworICAgIGlmIChtX21lc2hUeXBlID09IEN1c3RvbUZpbHRl
ck9wZXJhdGlvbjo6REVUQUNIRUQpCisgICAgICAgIGJpbmRWZXJ0ZXhBdHRyaWJ1dGUobV9zaGFk
ZXItPnRyaWFuZ2xlQXR0cmliTG9jYXRpb24oKSwgMywgb2Zmc2V0KTsKIH0KIAogdm9pZCBGRUN1
c3RvbUZpbHRlcjo6ZHVtcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmgKaW5kZXggMTgyNDc5Zi4uMmFhYWJm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUN1c3RvbUZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDdXN0b21GaWx0ZXIuaApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlICJGaWx0
ZXJFZmZlY3QuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK25hbWVzcGFjZSBKU0Mgewor
Y2xhc3MgQnl0ZUFycmF5OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hl
ZFNoYWRlcjsKQEAgLTQ1LDggKzQ5LDkgQEAgY2xhc3MgQ3VzdG9tRmlsdGVyU2hhZGVyOwogY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBEcmF3aW5nQnVmZmVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0
M0Q7CitjbGFzcyBJbnRTaXplOwogY2xhc3MgVGV4dHVyZTsKLSAgICAKKwogY2xhc3MgRkVDdXN0
b21GaWx0ZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxGRUN1c3RvbUZpbHRlcj4gY3JlYXRlKEZpbHRlciosIERvY3VtZW50KiwgY29uc3Qg
U3RyaW5nJiB2ZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXIsCkBAIC02
Myw2ICs2OCwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1lc2hS
b3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoQm94
VHlwZSwgCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlw
ZSk7CiAgICAgCisgICAgdm9pZCBpbml0aWFsaXplQ29udGV4dChjb25zdCBJbnRTaXplJiBjb250
ZXh0U2l6ZSk7CisgICAgdm9pZCByZXNpemVDb250ZXh0KGNvbnN0IEludFNpemUmIG5ld0NvbnRl
eHRTaXplKTsKKyAgICB2b2lkIGJpbmRWZXJ0ZXhBdHRyaWJ1dGUoaW50IGF0dHJpYnV0ZUxvY2F0
aW9uLCB1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCYgb2Zmc2V0KTsKKyAgICB2b2lkIGJpbmRQcm9n
cmFtQW5kQnVmZmVycyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXkpOworICAgIAogICAgIERvY3Vt
ZW50KiBtX2RvY3VtZW50OwogICAgIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9j
b250ZXh0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120018</attachid>
            <date>2011-12-20 06:05:10 -0800</date>
            <delta_ts>2011-12-21 12:25:17 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug74840_2.patch</filename>
            <type>text/plain</type>
            <size>58045</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNDk3YjkzLi43YTNlZGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTIt
MjAgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1MgU2hhZGVyc10gRm9sbG93IHVwIGJ1ZyB0byBmaXggaXNzdWVzIG1lbnRpb25lZCBpbiBjb21t
ZW50IDIzIGZyb20gYnVnIDczMzE3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDg0MAorCisgICAgICAgIFRoZSBuZXcgc2hhZGVycyBzeW50YXggY291
bnRzIHRoZSBsaW5lcyBhbmQgdGhlIGNvbHVtbnMsIG5vdCBqdXN0IHRoZQorICAgICAgICBhZGRp
dGlvbmFsIGxpbmVzIGFuZCBjb2x1bW5zLCBzbyB0aGUgbWluaW11bSBhY2NlcHRlZCBpcyBub3cg
MSBieSAxLiAKKyAgICAgICAgVGhlIGRlZmF1bHQgbWVzaCBzaXplIGlzIGFsc28gMSBieSAxLCBz
byBJJ3ZlIHVwZGF0ZWQgdGhlIHRlc3RzIGFuZCAKKyAgICAgICAgaW5jcmVtZW50ZWQgdGhlIG1l
c2ggc2l6ZXMgYnkgMS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0
eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1w
cm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMvZmls
dGVycy9lZmZlY3QtY3VzdG9tLmh0bWw6CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNl
cy9jb2xvci1vZmZzZXQuZnM6CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92ZXJ0
ZXgtZXhwbG9kZS1kZXRhY2hlZC52czoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L3ZlcnRleC1vZmZzZXQudnM6CisgICAgICAgICAgICBBZGRlZCBzb21lIGNvbW1lbnRzIGluIHRo
ZSBzaGFkZXJzLgorICAgICAgICAqIGNzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qczoKKyAgICAgICAgICAgIFVwZGF0ZWQgdGhl
IGV4cGVjdGVkIGRlZmF1bHQgbWVzaCBzaXplIHRvIGJlIDEgMS4KKyAgICAgICAgKiBjc3MzL2Zp
bHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlk
LmpzOgorICAgICAgICAgICAgQWRkZWQgc29tZSBpbnZhbGlkIG1lc2ggc2l6ZXMuCisKIDIwMTEt
MTItMTkgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIFJlbW92aW5nIHN1cHByZXNzaW9ucyBmcm9tOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXIt
cHJvcGVydHktY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IDQ5NmQ4MGUuLjE2ZTVj
NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50
eHQKQEAgLTUsMzEgKzUsMzEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBDdXN0b20g
d2l0aCB2ZXJ0ZXggc2hhZGVyIDogY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkKLVBBU1MgcmVt
b3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicp
KSBpcyAnY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAwIDAgZmlsdGVyLWJveCknCitQ
QVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1m
aWx0ZXInKSkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgbm9uZSwgMSAxIGZpbHRlci1i
b3gpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFsdWVMaXN0Jwog
UEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NTU1ZhbHVlTGlz
dFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25zdHJ1Y3Rvcikg
aXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwogUEFTUyBmaWx0ZXJSdWxlLmxlbmd0aCBpcyAx
CiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1
c3RvbSh1cmwodmVydGV4LnNoYWRlcikgbm9uZSwgMCAwIGZpbHRlci1ib3gpJworUEFTUyByZW1v
dmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikg
bm9uZSwgMSAxIGZpbHRlci1ib3gpJwogCiBDdXN0b20gd2l0aCBmcmFnbWVudCBzaGFkZXIgOiBj
dXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0
ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5v
bmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFz
ZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1Mg
anNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFw
cGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUn
CiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1
ZUxpc3RDb25zdHJ1Y3RvcicKIFBBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJS
dWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNU
T00KLVBBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJM
KHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAx
IDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3aXRoIGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwo
dmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpCi1QQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3Rv
bSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94
KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxl
KSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJv
dG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmls
dGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwogUEFTUyBm
aWx0ZXJSdWxlLmxlbmd0aCBpcyAxCiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1
YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50
LnNoYWRlciksIDAgMCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNz
c1RleHQpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpIHVybChmcmFnbWVudC5zaGFkZXIp
LCAxIDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3aXRoIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwo
dmVydGV4LnNoYWRlciksIDEwKQogUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFk
ZXIpIG5vbmUsIDEwIDEwIGZpbHRlci1ib3gpJwpAQCAtNTAsMTMgKzUwLDEzIEBAIFBBU1Mgc3Vi
UnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VT
VE9NCiBQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIwIGZpbHRlci1ib3gpJwogCiBDdXN0b20gd2l0aCBk
ZXRhY2hlZCBtZXNoIDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGRldGFjaGVk
KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZp
bHRlci1ib3ggZGV0YWNoZWQpJworUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21l
bnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3ggZGV0YWNoZWQpJwogUEFTUyBqc1dyYXBwZXJDbGFz
cyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0
ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFw
cGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVj
dG9yJwogUEFTUyBmaWx0ZXJSdWxlLmxlbmd0aCBpcyAxCiBQQVNTIHN1YlJ1bGUub3BlcmF0aW9u
VHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQotUEFTUyByZW1v
dmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5z
aGFkZXIpLCAwIDAgZmlsdGVyLWJveCBkZXRhY2hlZCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3Vi
UnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBm
aWx0ZXItYm94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggZGV0YWNoZWQgYW5kIG1lc2ggc2l6
ZSA6IGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBkZXRhY2hlZCkKIFBB
U1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZp
bHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIwIGZpbHRl
ci1ib3ggZGV0YWNoZWQpJwpAQCAtNjgsNDAgKzY4LDQwIEBAIFBBU1Mgc3ViUnVsZS5vcGVyYXRp
b25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCiBQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIGZpbHRlci1ib3ggZGV0YWNoZWQpJwogCiBDdXN0b20gd2l0aCBkZWZh
dWx0IGZpbHRlci1ib3ggOiBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgZmlsdGVy
LWJveCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBmaWx0ZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkg
aXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3Rv
X18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRl
clJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBBU1MgZmls
dGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVSTChzdWJS
dWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZp
bHRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCknCiAKIEN1c3RvbSB3
aXRoIGNvbnRlbnQtYm94IDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGNvbnRl
bnQtYm94KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIGNvbnRlbnQtYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEgMSBjb250ZW50LWJveCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuX19w
cm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhm
aWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3InCiBQQVNT
IGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJhc2VVUkwo
c3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBjb250ZW50LWJveCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBjb250ZW50LWJveCknCiAKIEN1
c3RvbSB3aXRoIGJvcmRlci1ib3ggOiBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
Ym9yZGVyLWJveCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRl
ciksIDAgMCBib3JkZXItYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdt
ZW50LnNoYWRlciksIDEgMSBib3JkZXItYm94KScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVy
UnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5f
X3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNz
KGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBB
U1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMg
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVS
TChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIGJvcmRlci1ib3gpJworUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMg
J2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgYm9yZGVyLWJveCknCiAKIEN1
c3RvbSB3aXRoIHBhZGRpbmctYm94IDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IHBhZGRpbmctYm94KQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSwgMCAwIHBhZGRpbmctYm94KScKK1BBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZy
YWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZp
bHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJD
bGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3In
CiBQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBl
IGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJh
c2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRl
ciksIDAgMCBwYWRkaW5nLWJveCknCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0
KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCkn
CiAKIEN1c3RvbSB3aXRoIG1lc2gtc2l6ZSBhbmQgcGFkZGluZy1ib3ggOiBjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgcGFkZGluZy1ib3gpCiBQQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAxMCBwYWRkaW5nLWJveCknCkBAIC0xMTMs
MTMgKzExMywxMyBAQCBQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQogUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3Nz
VGV4dCkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAxMCBwYWRkaW5n
LWJveCknCiAKIEN1c3RvbSB3aXRoIG1lc2gtc2l6ZSBhbmQgcGFkZGluZy1ib3ggOiBjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3ggZGV0YWNoZWQpCi1QQVNTIHJl
bW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXIn
KSkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgcGFkZGluZy1ib3gg
ZGV0YWNoZWQpJworUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSwgMSAxIHBhZGRpbmctYm94IGRldGFjaGVkKScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVy
UnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5f
X3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNz
KGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKIFBB
U1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQogUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMg
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KLVBBU1MgcmVtb3ZlQmFzZVVS
TChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MCAwIHBhZGRpbmctYm94IGRldGFjaGVkKScKK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNz
c1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIHBhZGRpbmct
Ym94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggYm90aCBtZXNoLXNpemVzIGFuZCBwYWRkaW5n
LWJveCA6IGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBwYWRkaW5nLWJv
eCkKIFBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWZpbHRlcicpKSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIDIw
IHBhZGRpbmctYm94KScKQEAgLTE0MCwxNiArMTQwLDE2IEBAIFBBU1Mgc3ViUnVsZS5vcGVyYXRp
b25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCiBQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIHBhZGRpbmctYm94IGRldGFjaGVkKScKIAogQ3VzdG9tIHdpdGggcGFk
ZGluZy1ib3ggYW5kIGRldGFjaGVkIDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IHBhZGRpbmctYm94IGRldGFjaGVkKQotUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94IGRldGFjaGVkKScKK1BBU1MgcmVtb3ZlQmFz
ZVVSTChmaWx0ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAn
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCBkZXRhY2hl
ZCknCiBQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCiBQ
QVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0
UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBp
cyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3InCiBQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDEK
IFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19G
SUxURVJfQ1VTVE9NCi1QQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkn
CitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJs
KGZyYWdtZW50LnNoYWRlciksIDEgMSBwYWRkaW5nLWJveCBkZXRhY2hlZCknCiAKIE11bHRpcGxl
IHdpdGggZnJhZ21lbnQgc2hhZGVyIDogZ3JheXNjYWxlKCkgY3VzdG9tKG5vbmUgdXJsKGZyYWdt
ZW50LnNoYWRlcikpIHNlcGlhKCkKLVBBU1MgcmVtb3ZlQmFzZVVSTChmaWx0ZXJTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSBpcyAnZ3JheXNjYWxlKDEpIGN1c3RvbShu
b25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkgc2VwaWEoMSknCitQQVNT
IHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKSkgaXMgJ2dyYXlzY2FsZSgxKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwg
MSAxIGZpbHRlci1ib3gpIHNlcGlhKDEpJwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxl
KSBpcyAnQ1NTVmFsdWVMaXN0JwogUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJv
dG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoZmls
dGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJwpAQCAtMTU3
LDcgKzE1Nyw3IEBAIFBBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMwogUEFTUyBzdWJSdWxlLm9w
ZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9HUkFZU0NBTEUK
IFBBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdncmF5c2NhbGUoMSknCiBQ
QVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklM
VEVSX0NVU1RPTQotUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCknCitQQVNTIHJlbW92
ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlciksIDEgMSBmaWx0ZXItYm94KScKIFBBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfU0VQSUEKIFBBU1MgcmVtb3ZlQmFzZVVSTChz
dWJSdWxlLmNzc1RleHQpIGlzICdzZXBpYSgxKScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVy
LXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQu
dHh0CmluZGV4IGVhNjMxZmMuLjk0NGI3MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHkt
cGFyc2luZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtOTksNiArOTksMzYgQEAgUEFTUyBjc3NS
dWxlLnR5cGUgaXMgMQogUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAogUEFTUyBkZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKIAorTmVnYXRp
dmUgc2luZ2xlIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgLTEwKQorUEFTUyBjc3NS
dWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTmVnYXRp
dmUgYm90aCBtZXNoIHNpemVzIDogY3VzdG9tKHVybChzaGFkZXIpLCAtMTAgLTEwKQorUEFTUyBj
c3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNs
YXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTmVn
YXRpdmUgYW5kIHBvc2l0aXZlIG1lc2ggc2l6ZSA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgLTEwIDEw
KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAor
UEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51
bGwKKworWmVybyBzaW5nbGUgbWVzaCBzaXplIDogY3VzdG9tKHVybChzaGFkZXIpLCAwKQorUEFT
UyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBk
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwor
WmVybyBib3RoIG1lc2ggc2l6ZXMgOiBjdXN0b20odXJsKHNoYWRlciksIDAgMCkKK1BBU1MgY3Nz
UnVsZS50eXBlIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKKzAgYW5k
IDEgbWVzaCBzaXplcyA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgMCAxKQorUEFTUyBjc3NSdWxlLnR5
cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwogVG9vIG1hbnkgcGFy
YW1ldGVyIHZhbHVlcyA6IGN1c3RvbSh1cmwoc2hhZGVyKSwgcDEgMSAyIDMgNCA1KQogUEFTUyBj
c3NSdWxlLnR5cGUgaXMgMQogUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMApAQCAtMTIxLDQg
KzE1MSwzIEBAIFBBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2VmZmVjdC1jdXN0
b20uaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9lZmZlY3QtY3VzdG9tLmh0bWwKaW5k
ZXggZmIxNGU2MS4uZDBiNDViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2VmZmVjdC1jdXN0b20uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvZWZmZWN0
LWN1c3RvbS5odG1sCkBAIC0zLDcgKzMsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwog
PC9zY3JpcHQ+CiA8aW1nIHN0eWxlPSItd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3Vy
Y2VzL3ZlcnRleC1vZmZzZXQudnMnKSB1cmwoJ3Jlc291cmNlcy9jb2xvci1vZmZzZXQuZnMnKSki
IHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgotPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0
ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJyksIDUgMTApIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIj4KLTxpbWcgc3R5bGU9Ii13ZWJraXQtZmlsdGVyOiBj
dXN0b20odXJsKCdyZXNvdXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMnKSwgMiAyIGRl
dGFjaGVkKSIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyI+Ci08aW1nIHN0eWxlPSItd2Vi
a2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL3ZlcnRleC1leHBsb2RlLWRldGFjaGVk
LnZzJykgdXJsKCdyZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJyksIDIgMiBkZXRhY2hlZCkiIHNy
Yz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgorPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0ZXI6
IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJyksIDYgMTEpIiBzcmM9InJl
c291cmNlcy9yZWZlcmVuY2UucG5nIj4KKzxpbWcgc3R5bGU9Ii13ZWJraXQtZmlsdGVyOiBjdXN0
b20odXJsKCdyZXNvdXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMnKSwgMyAzIGRldGFj
aGVkKSIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyI+Cis8aW1nIHN0eWxlPSItd2Via2l0
LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL3ZlcnRleC1leHBsb2RlLWRldGFjaGVkLnZz
JykgdXJsKCdyZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJyksIDMgMyBkZXRhY2hlZCkiIHNyYz0i
cmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciPgogPGltZyBzdHlsZT0iLXdlYmtpdC1maWx0ZXI6IGN1
c3RvbShub25lIHVybCgncmVzb3VyY2VzL2NvbG9yLW9mZnNldC5mcycpKSIgc3JjPSJyZXNvdXJj
ZXMvcmVmZXJlbmNlLnBuZyI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
cmVzb3VyY2VzL2NvbG9yLW9mZnNldC5mcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvY29sb3Itb2Zmc2V0LmZzCmluZGV4IDFiZDA3MzQuLjRmNTcwNDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzCkBAIC0z
LDUgKzMsNiBAQCB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKIHVuaWZvcm0gc2FtcGxlcjJEIHNf
dGV4dHVyZTsKIHZvaWQgbWFpbigpCiB7CisgICAgLy8gT2Zmc2V0IHRoZSBjb2xvciB2YWx1ZSB3
aXRoIDAuMyBvbiBlYWNoIGNvbG9yIGNoYW5uZWwuCiAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVy
ZTJEKHNfdGV4dHVyZSwgdl90ZXhDb29yZCkgKyAwLjM7CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92
ZXJ0ZXgtZXhwbG9kZS1kZXRhY2hlZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvdmVydGV4LWV4cGxvZGUtZGV0YWNoZWQudnMKaW5kZXggNzc2OGEzYy4uMTdlZGVkZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy92ZXJ0ZXgtZXhw
bG9kZS1kZXRhY2hlZC52cworKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L3ZlcnRleC1leHBsb2RlLWRldGFjaGVkLnZzCkBAIC05LDYgKzksOCBAQCB2YXJ5aW5nIHZlYzIg
dl90ZXhDb29yZDsKIAogdm9pZCBtYWluKCkKIHsKKyAgICAvLyBhX3RyaWFuZ2xlQ29vcmQueHkg
aXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0aWxlIGluIHRoZSBtZXNoLCBzbyB3ZSBvZmZzZXQgdGhl
IHZlcnRpY2VzCisgICAgLy8gd2l0aCB0aGUgcG9zaXRpb24gaW4gbWVzaC4gVGhlIHRpbGVzIHNo
b3VsZCBiZSBkZXRhY2hlZCBmcm9tIGVhY2ggb3RoZXIuCiAgICAgZ2xfUG9zaXRpb24gPSB1X3By
b2plY3Rpb25NYXRyaXggKiAoYV9wb3NpdGlvbiArIHZlYzQoYV90cmlhbmdsZUNvb3JkLnggLyA0
LjAsIGFfdHJpYW5nbGVDb29yZC55IC8gNC4wLCAwLjAsIDAuMCkpOwogICAgIHZfdGV4Q29vcmQg
PSBhX3RleENvb3JkOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
c291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291
cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzCmluZGV4IDc4ZDhjNDUuLmE5MWRiN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdmVydGV4LW9mZnNldC52cworKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3ZlcnRleC1vZmZzZXQudnMKQEAg
LTgsNiArOCw3IEBAIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwogCiB2b2lkIG1haW4oKQogewor
ICAgIC8vIE9mZnNldCB0aGUgcG9zaXRpb24gb2YgdGhlIHZlcnRpY2VzIHdpdGggMC4xIGluIHRo
ZSBYIGF4aXMuCiAgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiAoYV9wb3Np
dGlvbiArIHZlYzQoMC4xLCAwLjAsIDAuMCwgMC4wKSk7CiAgICAgdl90ZXhDb29yZCA9IGFfdGV4
Q29vcmQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRl
c3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuanMgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0
ZWQtc3R5bGUuanMKaW5kZXggMDdhODc5OC4uMTE2NjdkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1
dGVkLXN0eWxlLmpzCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMv
Y3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpAQCAtNjQsMTMgKzY0LDEz
IEBAIGZ1bmN0aW9uIHRlc3RGaWx0ZXJSdWxlKGRlc2NyaXB0aW9uLCBydWxlLCBleHBlY3RlZFZh
bHVlLCBleHBlY3RlZFR5cGVzLCBleHBlY3RlCiB9CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20g
d2l0aCB2ZXJ0ZXggc2hhZGVyIiwKLSAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkiLCAi
Y3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAwIDAgZmlsdGVyLWJveCkiKTsKKyAgICAi
Y3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBu
b25lLCAxIDEgZmlsdGVyLWJveCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGZy
YWdtZW50IHNoYWRlciIsCi0gICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIs
ICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpIik7Cisg
ICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20obm9uZSB1cmwo
ZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJD
dXN0b20gd2l0aCBib3RoIHNoYWRlcnMiLAotICAgICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIp
IHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpIHVybChm
cmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkiKTsKKyAgICAiY3VzdG9tKHVybCh2ZXJ0
ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hh
ZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIik7CiAKIHRlc3RGaWx0
ZXJSdWxlKCJDdXN0b20gd2l0aCBtZXNoIHNpemUiLAogICAgICJjdXN0b20odXJsKHZlcnRleC5z
aGFkZXIpLCAxMCkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSBub25lLCAxMCAxMCBmaWx0
ZXItYm94KSIpOwpAQCAtNzksMjggKzc5LDI4IEBAIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20gd2l0
aCBib3RoIG1lc2ggc2l6ZXMiLAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSwgMTAgMjApIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBmaWx0
ZXItYm94KSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZGV0YWNoZWQgbWVzaCIs
Ci0gICAgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCBkZXRhY2hlZCkiLCAiY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBmaWx0ZXItYm94IGRldGFjaGVkKSIp
OworICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgZGV0YWNoZWQpIiwgImN1
c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCBkZXRhY2hlZCki
KTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGRldGFjaGVkIGFuZCBtZXNoIHNpemUi
LAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgMjAgZGV0YWNoZWQp
IiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxMCAyMCBmaWx0ZXItYm94IGRl
dGFjaGVkKSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZGVmYXVsdCBmaWx0ZXIt
Ym94IiwKLSAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGZpbHRlci1ib3gp
IiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgZmlsdGVyLWJveCkiKTsK
KyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGZpbHRlci1ib3gpIiwgImN1
c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgZmlsdGVyLWJveCkiKTsKIAogdGVz
dEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGNvbnRlbnQtYm94IiwKLSAgICAiY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIGNvbnRlbnQtYm94KSIsICJjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSwgMCAwIGNvbnRlbnQtYm94KSIpOworICAgICJjdXN0b20obm9uZSB1cmwo
ZnJhZ21lbnQuc2hhZGVyKSwgY29udGVudC1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVu
dC5zaGFkZXIpLCAxIDEgY29udGVudC1ib3gpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20g
d2l0aCBib3JkZXItYm94IiwKLSAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciks
IGJvcmRlci1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAwIDAgYm9y
ZGVyLWJveCkiKTsKKyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIGJvcmRl
ci1ib3gpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgYm9yZGVyLWJv
eCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIHBhZGRpbmctYm94IiwKLSAgICAi
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94KSIsICJjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94KSIpOworICAgICJjdXN0
b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3gpIiwgImN1c3RvbShub25l
IHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgcGFkZGluZy1ib3gpIik7CiAKIHRlc3RGaWx0ZXJS
dWxlKCJDdXN0b20gd2l0aCBtZXNoLXNpemUgYW5kIHBhZGRpbmctYm94IiwKICAgICAiY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEwIHBhZGRpbmctYm94KSIsICJjdXN0b20obm9u
ZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAgMTAgcGFkZGluZy1ib3gpIik7CiAKIHRlc3RGaWx0
ZXJSdWxlKCJDdXN0b20gd2l0aCBtZXNoLXNpemUgYW5kIHBhZGRpbmctYm94IiwKLSAgICAiY3Vz
dG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94IGRldGFjaGVkKSIsICJj
dXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIHBhZGRpbmctYm94IGRldGFjaGVk
KSIpOworICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgcGFkZGluZy1ib3gg
ZGV0YWNoZWQpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpLCAxIDEgcGFkZGlu
Zy1ib3ggZGV0YWNoZWQpIik7CiAKIHRlc3RGaWx0ZXJSdWxlKCJDdXN0b20gd2l0aCBib3RoIG1l
c2gtc2l6ZXMgYW5kIHBhZGRpbmctYm94IiwKICAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50
LnNoYWRlciksIDEwIDIwIHBhZGRpbmctYm94KSIsICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSwgMTAgMjAgcGFkZGluZy1ib3gpIik7CkBAIC0xMDksMTMgKzEwOSwxMyBAQCB0ZXN0
RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggYm90aCBtZXNoLXNpemVzIGFuZCBwYWRkaW5nLWJveCBh
bmQgZGV0YWNoZWQiLAogICAgICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMTAg
MjAgcGFkZGluZy1ib3ggZGV0YWNoZWQpIiwgImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFk
ZXIpLCAxMCAyMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiKTsKIAogdGVzdEZpbHRlclJ1bGUoIkN1
c3RvbSB3aXRoIHBhZGRpbmctYm94IGFuZCBkZXRhY2hlZCIsCi0gICAgImN1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpLCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiLCAiY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlciksIDAgMCBwYWRkaW5nLWJveCBkZXRhY2hlZCkiKTsKKyAgICAi
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIHBhZGRpbmctYm94IGRldGFjaGVkKSIs
ICJjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIHBhZGRpbmctYm94IGRldGFj
aGVkKSIpOwogCiB0ZXN0RmlsdGVyUnVsZSgiTXVsdGlwbGUgd2l0aCBmcmFnbWVudCBzaGFkZXIi
LAotICAgICJncmF5c2NhbGUoKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkgc2Vw
aWEoKSIsICJncmF5c2NhbGUoMSkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDAg
MCBmaWx0ZXItYm94KSBzZXBpYSgxKSIsCisgICAgImdyYXlzY2FsZSgpIGN1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgpIiwgImdyYXlzY2FsZSgxKSBjdXN0b20obm9uZSB1
cmwoZnJhZ21lbnQuc2hhZGVyKSwgMSAxIGZpbHRlci1ib3gpIHNlcGlhKDEpIiwKICAgICBbIldl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxFIiwKICAgICAiV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00iLAogICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5DU1NfRklMVEVSX1NFUElBIl0sCiAgICAgWyJncmF5c2NhbGUoMSkiLAotICAgICJjdXN0b20o
bm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSwgMCAwIGZpbHRlci1ib3gpIiwKKyAgICAiY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlciksIDEgMSBmaWx0ZXItYm94KSIsCiAgICAgInNlcGlh
KDEpIl0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0
cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC5qcyBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5n
LWludmFsaWQuanMKaW5kZXggYTc3MzI0MS4uODY2NmZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNp
bmctaW52YWxpZC5qcworKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3Rz
L2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlkLmpzCkBAIC00MSw2ICs0MSwx
MyBAQCB0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIG1lc2ggcGFyYW1ldGVyIiwgImN1c3RvbSh1
cmwoc2hhZGVyKSwgKSIpOwogdGVzdEludmFsaWRGaWx0ZXJSdWxlKCJXcm9uZyBtZXNoIHR5cGUg
LSBjb3JyZWN0IGlkZW50aWZpZXIgaXMgJ2RldGFjaGVkJyIsICJjdXN0b20odXJsKHNoYWRlciks
IGRldGFjaCkiKTsKIHRlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTm8gbWVzaCBzaXplIiwgImN1c3Rv
bSh1cmwoc2hhZGVyKSwgLCBwMSAyKSIpOwogCit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0
aXZlIHNpbmdsZSBtZXNoIHNpemUiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAtMTApIik7Cit0ZXN0
SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0aXZlIGJvdGggbWVzaCBzaXplcyIsICJjdXN0b20odXJs
KHNoYWRlciksIC0xMCAtMTApIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5lZ2F0aXZlIGFu
ZCBwb3NpdGl2ZSBtZXNoIHNpemUiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAtMTAgMTApIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlplcm8gc2luZ2xlIG1lc2ggc2l6ZSIsICJjdXN0b20odXJs
KHNoYWRlciksIDApIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlplcm8gYm90aCBtZXNoIHNp
emVzIiwgImN1c3RvbSh1cmwoc2hhZGVyKSwgMCAwKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxl
KCIwIGFuZCAxIG1lc2ggc2l6ZXMiLCAiY3VzdG9tKHVybChzaGFkZXIpLCAwIDEpIik7CisKIHRl
c3RJbnZhbGlkRmlsdGVyUnVsZSgiVG9vIG1hbnkgcGFyYW1ldGVyIHZhbHVlcyIsICJjdXN0b20o
dXJsKHNoYWRlciksIHAxIDEgMiAzIDQgNSkiKTsKIHRlc3RJbnZhbGlkRmlsdGVyUnVsZSgiSW52
YWxpZCBwYXJhbWV0ZXIgdHlwZXMiLCAiY3VzdG9tKHVybChzaGFkZXIpLCBwMSAxLjAgMi4wICd0
ZXh0JykiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxMWY3NzMuLjlmZDY4YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4OSBAQAorMjAxMS0xMi0yMCAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBh
ZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkZXJzXSBGb2xsb3cgdXAgYnVnIHRvIGZpeCBp
c3N1ZXMgbWVudGlvbmVkIGluIGNvbW1lbnQgMjMgZnJvbSBidWcgNzMzMTcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQwCisgICAgICAgIAorICAg
ICAgICBTb21lIGNvbW1lbnRzIHdlcmUgYWRkZWQgb24gYnVnIDczMzE3IGFmdGVyIHRoZSBwYXRj
aCB3YXMgcmV2aWV3ZWQgYW5kIGNvbW1pdHRlZC4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmaXhp
bmcgdGhvc2UgaXNzdWVzLCBtb3N0bHkgYWJvdXQgY29kaW5nIHN0eWxlIGFuZCBzb21lIG1pc3Np
bmcgY29tbWVudHMuCisgICAgICAgIAorICAgICAgICBCZWNhdXNlIHRoZSBpbml0aWFsIHBhdGNo
IGhhZCBubyBleHBsYW5hdGlvbiBhYm91dCB0aGUgZmVhdHVyZSBpbiB0aGUgQ2hhbmdlTG9nLCBz
byBJJ20gaW5jbHVkaW5nIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICBpbiB0aGlzIHBhdGNoOgor
ICAgICAgICAKKyAgICAgICAgQ1NTIFNoYWRlcnMgYWxsb3cgYSBkZXNpZ25lciB0byB1c2UgYSBw
YWlyIG9mIFdlYkdMIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVycyB0byBhbHRlciB0aGUgZmlu
YWwKKyAgICAgICAgcmVuZGVyaW5nIG9mIGEgc3BlY2lmaWMgZWxlbWVudC4gVGhlIG5hdmlnYXRv
ciB3aWxsIHJlbmRlciB0aGUgZWxlbWVudCBpbnNpZGUgYSB0ZXh0dXJlIGFuZCBtYXAgaXQKKyAg
ICAgICAgdG8gYSBtZXNoLiBUaGUgbWVzaCBpcyBmb3JtZWQgYnkgZXF1YWwgc2l6ZWQgcXVhZHMs
IHRoYXQgZGVwZW5kaW5nIG9uIHRoZSBtZXNoIHN0eWxlLCBhdHRhY2hlZCBvciBkZXRhY2hlZCwK
KyAgICAgICAgY2FuIGJlIHN0aXRjaGVkIG9yIHNlcGFyYXRlZC4gVGhlIG51bWJlciBvZiBxdWFk
cyBjYW4gYmUgY2hhbmdlZCBmcm9tIENTUy4KKyAgICAgICAgCisgICAgICAgIFVzdWFsbHkgdGhl
IHZlcnRleCBzaGFkZXIgaXMgY2hhbmdpbmcgdGhlIHZlcnRpY2VzIG9mIHRoZSBtZXNoLCB3aGls
ZSB0aGUgZnJhZ21lbnQgc2hhZGVyIGFmZmVjdHMgb25seSB0aGUgY29sb3IKKyAgICAgICAgdGhh
dCBpcyByZW5kZXJlZCB0byBzY3JlZW4gKGZvciBleGFtcGxlIGxpZ2h0aW5nIGVmZmVjdHMpLgor
ICAgICAgICAKKyAgICAgICAgTW9yZSBpbmZvIGFib3V0IENTUyBTaGFkZXJzIGNhbiBiZSBmb3Vu
ZCBpbiB0aGUgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2R2Y3MudzMub3JnL2hnL0ZY
VEYvcmF3LWZpbGUvdGlwL2N1c3RvbS9pbmRleC5odG1sCisgICAgICAgIAorICAgICAgICBBbHNv
IGEgZ29vZCB0dXRvcmlhbCBpcyBwdWJsaXNoZWQgaGVyZQorICAgICAgICBodHRwOi8vd3d3LmFk
b2JlLmNvbS9kZXZuZXQvaHRtbDUvYXJ0aWNsZXMvY3NzLXNoYWRlcnMuaHRtbAorICAgICAgICAK
KyAgICAgICAgSW5pdGlhbGx5IHdlIGFyZSB1c2luZyB0aGUgc29mdHdhcmUgZmlsdGVyIGVmZmVj
dHMgcGlwZWxpbmUuIEl0IHVwbG9hZHMgdGhlIGltYWdlIHRvIHRoZSBHUFUsIGFwcGxpZXMKKyAg
ICAgICAgdGhlIHNoYWRlcnMsIHJlYWRzIGl0IGJhY2sgdG8gQ1BVIGFuZCBjb250aW51ZXMgdGhl
IHJlbmRlcmluZy4gVGhlIGFkdmFudGFnZSBvZiB1c2luZyB0aGUgc29mdHdhcmUgcGlwZWxpbmUg
aXMgdGhhdAorICAgICAgICBpdCBjYW4gYmUgZW5hYmxlZCBvbiBhbGwgdGhlIHBsYXRmb3JtcyB0
aGF0IGhhdmUgV2ViR0wgc3VwcG9ydC4gVGhlIG9idmlvdXMgZGlzYWR2YW50YWdlIGlzIHBlcmZv
cm1hbmNlOiBjb3BpZXMgZnJvbSBDUFUKKyAgICAgICAgbWVtb3J5IHRvIEdQVSBtZW1vcnkgYW5k
IHRoZSBDUFUgd2lsbCBuZWVkIHRvIHdhaXQgdGhlIEdQVSB0byBmaW5pc2ggYmVmb3JlIGl0IGNv
dWxkIGNvbnRpbnVlLiBJbiBmb2xsb3dpbmcgCisgICAgICAgIHBhdGNoZXMgdGhlIHNoYWRlcnMg
d2lsbCBiZSBpbnRlZ3JhdGVkIGluIHRoZSBoYXJkd2FyZSBhY2NlbGVyYXRlZCBwaXBlbGluZSwg
c28gdGhhdCBubyBjb3BpZXMgYW5kLCBtb3N0IAorICAgICAgICBpbXBvcnRhbnQsIG5vIHdhaXRz
IHdpbGwgYmUgcmVxdWlyZWQuCisgICAgICAgIAorICAgICAgICBBbHNvLCB0aGUgbmV3IHN5bnRh
eCBjb3VudHMgdG90YWwgbnVtYmVyIG9mIHRoZSBsaW5lcyBhbmQgdGhlIGNvbHVtbnMsIG5vdCBq
dXN0IHRoZQorICAgICAgICBhZGRpdGlvbmFsIGxpbmVzIGFuZCBjb2x1bW5zLCBzbyB0aGUgbWlu
aW11bSBhY2NlcHRlZCBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgaXMgbm93IDEgYnkgMS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIHRlc3RzIHdl
cmUgdXBkYXRlZCBmb3IgdGhlIGRlZmF1bHQgbWVzaCBzaXplIGNoYW5nZS4KKworICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAgICAgT25seSBhY2NlcHQgbm9uLXplcm8gcG9z
aXRpdmUgaW50IHZhbHVlcyBmb3IgbWVzaCBzaXplcy4KKyAgICAgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlcik6CisgICAgICAgICogY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAgICAgVXBkYXRlZCB0aGUgZGVmYXVsdCBtZXNo
IHNpemUgdG8gYmUgMSBjb2x1bW4gd2l0aCAxIGxpbmUuCisgICAgICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRTaGFkZXI6OnNoYWRlclN0cmluZyk6CisgICAgICAgICAgICBDb3JyZWN0ZWQg
dGhlIENhY2hlZFNoYWRlciB0byB1c2UgYSBTdHJpbmdCdWlsZGVyLiBBbHNvIHRoZXJlIHdhcyBh
biBpbmNvcnJlY3QgCisgICAgICAgICAgICBjYXN0IHRvIGJvb2wsIHdoaWNoIHJlc3VsdGVkIGZy
b20gYSBjb3B5L3Bhc3RlIGZyb20gQ2FjaGVkU2NyaXB0IHdoaWNoIHN0aWxsIGhhcworICAgICAg
ICAgICAgYm90aCBzYW1lIGlzc3Vlcy4KKyAgICAgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU2hhZGVyOjpkYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc2hHZW5lcmF0b3I6Ok1lc2hHZW5lcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6dmVydGljZXNDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZUF0dGFjaGVkTWVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZURldGFjaGVkTWVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkN1c3RvbUZpbHRlck1lc2g6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VzdG9tRmlsdGVyU2hhZGVyOjpDdXN0b21GaWx0ZXJTaGFkZXIpOgorICAgICAgICAgICAg
RXhwbG9kZWQgdGhlIGJvZHkgb2YgdGhlIGNvbnN0cnVjdG9yIGludG8gc21hbGxlciBoZWxwZXIg
ZnVuY3Rpb25zLgorICAgICAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJT
aGFkZXI6OmNvbXBpbGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyU2hh
ZGVyOjpsaW5rUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJTaGFkZXI6
OmluaXRpYWxpemVQYXJhbWV0ZXJMb2NhdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcnRo
b2dvbmFsUHJvamVjdGlvbk1hdHJpeCk6CisgICAgICAgICAgICBQYXNzaW5nIGEgVHJhbnNmb3Jt
YXRpb25NYXRyaXggYnkgcmVmZXJlbmNlIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSByZXN1bHQgbWF0
cml4LCBpbnN0ZWFkCisgICAgICAgICAgICBvZiByZXR1cm5pbmcgaXQgYnkgdmFsdWUuIEFsc28g
Y2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kLgorICAgICAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6RkVDdXN0b21GaWx0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDdXN0b21GaWx0ZXI6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICAgICBD
cmVhdGVkIHNvbWUgaGVscGVyIGZ1bmN0aW9ucyB0byBtYWtlIHRoaXMgbWV0aG9kIHNob3J0ZXIu
CisgICAgICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9tRmlsdGVyOjppbml0aWFs
aXplQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6cmVzaXplQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFZlcnRleEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRC
dWZmZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmls
dGVyLmg6CisKIDIwMTEtMTItMTkgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgdGhlIEVkaXRvcjo6c2V0SWdub3JlQ29tcG9z
aXRpb25TZWxlY3Rpb25DaGFuZ2UgcHVibGljIGFzIGl0IGlzIG5lZWRlZCBieSBRdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwODJhN2U1Li4zNTg1ZTJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtNjY5Niw3ICs2Njk2LDExIEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmls
dGVyVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXIoQ1NTUGFyc2VyVmFsdWUqIHZh
CiAgICAgd2hpbGUgKChhcmcgPSBhcmdzTGlzdC0+Y3VycmVudCgpKSkgewogICAgICAgICBpZiAo
IXZhbGlkVW5pdChhcmcsIEZJbnRlZ2VyIHwgRk5vbk5lZywgdHJ1ZSkpCiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgbWVzaFNpemVMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCktPmNyZWF0
ZVZhbHVlKGNsYW1wVG9JbnRlZ2VyKGFyZy0+ZlZhbHVlKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19OVU1CRVIpKTsKKyAgICAgICAgaW50IGludGVnZXJWYWx1ZSA9IGNsYW1wVG9JbnRlZ2VyKGFy
Zy0+ZlZhbHVlKTsKKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIHdl
IGNhbiBvbmx5IGFjY2VwdCBwb3NpdGl2ZSBub24temVybyB2YWx1ZXMuCisgICAgICAgIGlmIChp
bnRlZ2VyVmFsdWUgPCAxKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIG1lc2hTaXpl
TGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVWYWx1ZShpbnRlZ2VyVmFsdWUsIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CiAgICAgICAgIGFyZ3NMaXN0LT5uZXh0KCk7
CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4
IGM5NjlkMGUuLmE5YzUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKQEAgLTUwOTQsOCArNTA5NCw4IEBAIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9u
PiBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24oCiAgICAgUmVm
UHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFkZXIgPSBzdHlsZVNoYWRlcihzaGFkZXJzTGlzdC0+
aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CiAgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFn
bWVudFNoYWRlciA9IChzaGFkZXJzTGlzdC0+bGVuZ3RoKCkgPiAxKSA/IHN0eWxlU2hhZGVyKHNo
YWRlcnNMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDEpKSA6IDA7CiAgICAgCi0gICAgdW5z
aWduZWQgbWVzaFJvd3MgPSAwOwotICAgIHVuc2lnbmVkIG1lc2hDb2x1bW5zID0gMDsKKyAgICB1
bnNpZ25lZCBtZXNoUm93cyA9IDE7CisgICAgdW5zaWduZWQgbWVzaENvbHVtbnMgPSAxOwogICAg
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJveFR5cGUgPSBDdXN0b21G
aWx0ZXJPcGVyYXRpb246OkZJTFRFUl9CT1g7CiAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpN
ZXNoVHlwZSBtZXNoVHlwZSA9IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6QVRUQUNIRUQ7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCmluZGV4IDEz
YmRhMWQuLjhkN2YwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00OSw5ICs1MCwxMSBAQCBDYWNoZWRTaGFkZXI6On5DYWNoZWRTaGFkZXIoKQog
CiBjb25zdCBTdHJpbmcmIENhY2hlZFNoYWRlcjo6c2hhZGVyU3RyaW5nKCkKIHsKLSAgICBpZiAo
IW1fc2hhZGVyU3RyaW5nICYmIG1fZGF0YSkgewotICAgICAgICBtX3NoYWRlclN0cmluZyA9IG1f
ZGVjb2Rlci0+ZGVjb2RlKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUoKSk7Ci0gICAgICAg
IG1fc2hhZGVyU3RyaW5nICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsKKyAgICBpZiAobV9zaGFkZXJT
dHJpbmcuaXNOdWxsKCkgJiYgbV9kYXRhKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobV9kZWNvZGVyLT5kZWNvZGUobV9kYXRhLT5kYXRh
KCksIG1fZGF0YS0+c2l6ZSgpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGVjb2Rlci0+
Zmx1c2goKSk7CisgICAgICAgIG1fc2hhZGVyU3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwog
ICAgIH0KIAogICAgIHJldHVybiBtX3NoYWRlclN0cmluZzsKQEAgLTU5LDggKzYyLDEwIEBAIGNv
bnN0IFN0cmluZyYgQ2FjaGVkU2hhZGVyOjpzaGFkZXJTdHJpbmcoKQogCiB2b2lkIENhY2hlZFNo
YWRlcjo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVj
ZWl2ZWQpCiB7Ci0gICAgaWYgKGFsbERhdGFSZWNlaXZlZCkKKyAgICBpZiAoYWxsRGF0YVJlY2Vp
dmVkKSB7CiAgICAgICAgIG1fZGF0YSA9IGRhdGE7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJNZXNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyTWVzaC5jcHAKaW5kZXggMmEwMDVjZS4uNDBlYzMzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNo
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlck1lc2guY3BwCkBAIC0zMCwzNSArMzAsNTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
IAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYgRU5BQkxFKFdFQkdMKQotCiAjaW5jbHVkZSAi
Q3VzdG9tRmlsdGVyTWVzaC5oIgotCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAot
I2RlZmluZSBERUJVR19DVVNUT01fRklMVEVSX01FU0ggMAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCisjaWZuZGVmIE5ERUJVRworLy8gVXNlICJjYWxsICdXZWJDb3JlOjpzX2R1bXBDdXN0
b21GaWx0ZXJNZXNoQnVmZmVycycgPSAxIiBpbiBHREIgdG8gYWN0aXZhdGUgcHJpbnRpbmcgb2Yg
dGhlIG1lc2ggYnVmZmVycy4KK3N0YXRpYyBib29sIHNfZHVtcEN1c3RvbUZpbHRlck1lc2hCdWZm
ZXJzID0gZmFsc2U7CisjZW5kaWYKIAogY2xhc3MgTWVzaEdlbmVyYXRvciB7CiBwdWJsaWM6Ci0g
ICAgTWVzaEdlbmVyYXRvcih1bnNpZ25lZCBjb2xzLCB1bnNpZ25lZCByb3dzLCBjb25zdCBGbG9h
dFJlY3QmIG1lc2hCb3gsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5cGUp
CisgICAgLy8gTGluZXMgYW5kIGNvbHVtbnMgYXJlIHRoZSB2YWx1ZXMgcGFzc2VkIGluIENTUy4g
VGhlIHJlc3VsdCBpcyB2ZXJ0ZXggbWVzaCB0aGF0IGhhcyAncm93cycgbnVtYmVycyBvZiByb3dz
CisgICAgLy8gYW5kICdjb2x1bW5zJyBudW1iZXIgb2YgY29sdW1ucyB3aXRoIGEgdG90YWwgb2Yg
J3Jvd3MgKyAxJyAqICdjb2x1bW5zICsgMScgdmVydGljZXMuCisgICAgLy8gTWVzaEJveCBpcyB0
aGUgZmlsdGVyZWQgYXJlYSBjYWxjdWxhdGVkIGRlZmluZWQgdXNpbmcgdGhlIGJvcmRlci1ib3gs
IHBhZGRpbmctYm94LCBjb250ZW50LWJveCBvciBmaWx0ZXItYm94IAorICAgIC8vIGF0dHJpYnV0
ZXMuIEEgdmFsdWUgb2YgKDAsIDAsIDEsIDEpIHdpbGwgY292ZXIgdGhlIGVudGlyZSBvdXRwdXQg
c3VyZmFjZS4KKyAgICBNZXNoR2VuZXJhdG9yKHVuc2lnbmVkIGNvbHVtbnMsIHVuc2lnbmVkIHJv
d3MsIGNvbnN0IEZsb2F0UmVjdCYgbWVzaEJveCwgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNo
VHlwZSBtZXNoVHlwZSkKICAgICAgICAgOiBtX21lc2hUeXBlKG1lc2hUeXBlKQotICAgICAgICAs
IG1fcG9pbnRzKGNvbHMgKyAyLCByb3dzICsgMikKLSAgICAgICAgLCBtX3RpbGVzKGNvbHMgKyAx
LCByb3dzICsgMSkKKyAgICAgICAgLCBtX3BvaW50cyhjb2x1bW5zICsgMSwgcm93cyArIDEpCisg
ICAgICAgICwgbV90aWxlcyhjb2x1bW5zLCByb3dzKQogICAgICAgICAsIG1fdGlsZVNpemVJblBp
eGVscyhtZXNoQm94LndpZHRoKCkgLyBtX3RpbGVzLndpZHRoKCksIG1lc2hCb3guaGVpZ2h0KCkg
LyBtX3RpbGVzLmhlaWdodCgpKQogICAgICAgICAsIG1fdGlsZVNpemVJbkRldmljZVNwYWNlKDEu
MGYgLyBtX3RpbGVzLndpZHRoKCksIDEuMGYgLyBtX3RpbGVzLmhlaWdodCgpKQogICAgICAgICAs
IG1fbWVzaEJveChtZXNoQm94KQogICAgIHsKLSAgICAgICAgbV92ZXJ0aWNlcy5yZXNlcnZlQ2Fw
YWNpdHkodmVydGV4Q291bnQoKSAqIGZsb2F0c1BlclZlcnRleCgpKTsKKyAgICAgICAgLy8gQnVp
bGQgdGhlIHR3byBidWZmZXJzIG5lZWRlZCB0byBkcmF3IHRyaWFuZ2xlczoKKyAgICAgICAgLy8g
KiBtX3ZlcnRpY2VzIGhhcyBhIG51bWJlciBvZiBmbG9hdCBhdHRyaWJ1dGVzIHRoYXQgd2lsbCBi
ZSBwYXNzZWQgdG8gdGhlIHZlcnRleCBzaGFkZXIKKyAgICAgICAgLy8gZm9yIGVhY2ggY29tcHV0
ZWQgdmVydGV4LiBUaGlzIG51bWJlciBpcyBjYWxjdWxhdGVkIGluIGZsb2F0c1BlclZlcnRleCgp
IGJhc2VkIG9uIHRoZSBtZXNoVHlwZS4KKyAgICAgICAgLy8gKiBtX2luZGljZXMgaXMgYSBidWZm
ZXIgdGhhdCB3aWxsIGhhdmUgMyBpbmRpY2VzIHBlciB0cmlhbmdsZS4gRWFjaCBpbmRleCB3aWxs
IHBvaW50IGluc2lkZQorICAgICAgICAvLyB0aGUgbV92ZXJ0aWNlcyBidWZmZXIuCisgICAgICAg
IG1fdmVydGljZXMucmVzZXJ2ZUNhcGFjaXR5KHZlcnRpY2VzQ291bnQoKSAqIGZsb2F0c1BlclZl
cnRleCgpKTsKICAgICAgICAgbV9pbmRpY2VzLnJlc2VydmVDYXBhY2l0eShpbmRpY2VzQ291bnQo
KSk7CiAgICAgICAgIAorICAgICAgICAvLyBCYXNlZCBvbiB0aGUgbWVzaFR5cGUgdGhlcmUgY2Fu
IGJlIHR3byB0eXBlcyBvZiBtZXNoZXMuCisgICAgICAgIC8vICogYXR0YWNoZWQ6IGVhY2ggdHJp
YW5nbGUgdXNlcyB2ZXJ0aWNlcyBmcm9tIHRoZSBuZWlnaGJvciB0cmlhbmdsZXMuIFRoaXMgaXMg
dXNlZnVsIHRvIHNhdmUgc29tZSBHUFUgbWVtb3J5CisgICAgICAgIC8vIHdoZW4gdGhlcmUncyBu
byBuZWVkIHRvIGV4cGxvZGUgdGhlIHRpbGVzLgorICAgICAgICAvLyAqIGRldGFjaGVkOiBlYWNo
IHRyaWFuZ2xlIGhhcyBpdHMgb3duIHZlcnRpY2VzLiBUaGlzIG1lYW5zIGVhY2ggdHJpYW5nbGUg
Y2FuIGJlIG1vdmVkIGluZGVwZW5kZW50bHkgYW5kIGEgdmVjMworICAgICAgICAvLyBhdHRyaWJ1
dGUgaXMgcGFzc2VkLCBzbyB0aGF0IGVhY2ggdmVydGV4IGNhbiBiZSB1bmlxdWVseSBpZGVudGlm
aWVkLgogICAgICAgICBpZiAobV9tZXNoVHlwZSA9PSBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkFU
VEFDSEVEKQogICAgICAgICAgICAgZ2VuZXJhdGVBdHRhY2hlZE1lc2goKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgZ2VuZXJhdGVEZXRhY2hlZE1lc2goKTsKLQotI2lmIERFQlVHX0NVU1RP
TV9GSUxURVJfTUVTSAotICAgICAgICBkdW1wQnVmZmVycygpOworICAgICAgICAKKyNpZm5kZWYg
TkRFQlVHCisgICAgICAgIGlmIChzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycykKKyAgICAg
ICAgICAgIGR1bXBCdWZmZXJzKCk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTkwLDcgKzEwNiw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uOjpBVFRBQ0hFRCA/IEF0dGFjaGVkTWVzaFZlcnRleFNpemUgOiBEZXRhY2hlZE1lc2hWZXJ0
ZXhTaXplOwogICAgIH0KICAgICAKLSAgICB1bnNpZ25lZCB2ZXJ0ZXhDb3VudCgpIGNvbnN0Cisg
ICAgdW5zaWduZWQgdmVydGljZXNDb3VudCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4g
bV9tZXNoVHlwZSA9PSBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkFUVEFDSEVEID8gcG9pbnRzQ291
bnQoKSA6IGluZGljZXNDb3VudCgpOwogICAgIH0KQEAgLTExNywxMyArMTMzLDE1IEBAIHByaXZh
dGU6CiAgICAgCiAgICAgdm9pZCBnZW5lcmF0ZUF0dGFjaGVkTWVzaCgpCiAgICAgewotICAgICAg
ICBmb3IgKGludCBqID0gMDsgaiA8IG1fcG9pbnRzLmhlaWdodCgpOyArK2opIAorICAgICAgICBm
b3IgKGludCBqID0gMDsgaiA8IG1fcG9pbnRzLmhlaWdodCgpOyArK2opIHsKICAgICAgICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbV9wb2ludHMud2lkdGgoKTsgKytpKQogICAgICAgICAgICAg
ICAgIGFkZEF0dGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMoaSwgaik7CisgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbV90aWxlcy5oZWlnaHQoKTsgKytq
KQorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG1fdGlsZXMuaGVpZ2h0KCk7ICsraikgewog
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3RpbGVzLndpZHRoKCk7ICsraSkKICAg
ICAgICAgICAgICAgICBhZGRUaWxlPCZNZXNoR2VuZXJhdG9yOjphZGRBdHRhY2hlZE1lc2hJbmRl
eD4oaSwgaik7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgdm9pZCBhZGREZXRhY2hlZE1l
c2hWZXJ0ZXhBbmRJbmRleChpbnQgcXVhZFgsIGludCBxdWFkWSwgaW50IHRyaWFuZ2xlWCwgaW50
IHRyaWFuZ2xlWSwgaW50IHRyaWFuZ2xlKQpAQCAtMTM0LDkgKzE1MiwxMCBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgZ2VuZXJhdGVEZXRhY2hlZE1lc2goKQogICAgIHsKLSAgICAgICAgZm9y
IChpbnQgaiA9IDA7IGogPCBtX3RpbGVzLmhlaWdodCgpOyArK2opCisgICAgICAgIGZvciAoaW50
IGogPSAwOyBqIDwgbV90aWxlcy5oZWlnaHQoKTsgKytqKSB7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG1fdGlsZXMud2lkdGgoKTsgKytpKQogICAgICAgICAgICAgICAgIGFkZFRp
bGU8Jk1lc2hHZW5lcmF0b3I6OmFkZERldGFjaGVkTWVzaFZlcnRleEFuZEluZGV4PihpLCBqKTsK
KyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lkIGFkZFBvc2l0aW9uQXR0cmlidXRlKGlu
dCBxdWFkWCwgaW50IHF1YWRZKQpAQCAtMTgzLDcgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGFkZFRyaWFuZ2xlQ29vcmRBdHRyaWJ1dGUocXVhZFgsIHF1YWRZLCB0cmlhbmdsZSk7CiAgICAg
fQogICAgIAotI2lmZGVmIERFQlVHX0NVU1RPTV9GSUxURVJfTUVTSAorI2lmbmRlZiBOREVCVUcK
ICAgICB2b2lkIGR1bXBCdWZmZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAgIHByaW50ZigiTWVz
aCBidWZmZXJzOiBQb2ludHMud2lkdGgoKTogJWQsIFBvaW50cy5oZWlnaHQoKTogJWQgbWVzaEJv
eDogJWYsICVmLCAlZiwgJWYsIHR5cGU6ICVzXG4iLCAKQEAgLTIwMiw3ICsyMjEsNiBAQCBwcml2
YXRlOgogICAgIH0KICNlbmRpZgogCi0gICAgCiBwcml2YXRlOgogICAgIFZlY3RvcjxmbG9hdD4g
bV92ZXJ0aWNlczsKICAgICBWZWN0b3I8dWludDE2X3Q+IG1faW5kaWNlczsKQEAgLTIxNSw3ICsy
MzMsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX21lc2hCb3g7CiB9OwogCi1DdXN0b21G
aWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCB1
bnNpZ25lZCBjb2xzLCB1bnNpZ25lZCByb3dzLCAKK0N1c3RvbUZpbHRlck1lc2g6OkN1c3RvbUZp
bHRlck1lc2goR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHVuc2lnbmVkIGNvbHVtbnMsIHVu
c2lnbmVkIHJvd3MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBG
bG9hdFJlY3QmIG1lc2hCb3gsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5
cGUpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fdmVydGljZXNCdWZmZXJPYmpl
Y3QoMCkKQEAgLTIyMyw3ICsyNDEsNyBAQCBDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJN
ZXNoKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCB1bnNpZ25lZCBjb2xzLCB1bgogICAgICwg
bV9tZXNoQm94KG1lc2hCb3gpCiAgICAgLCBtX21lc2hUeXBlKG1lc2hUeXBlKQogewotICAgIE1l
c2hHZW5lcmF0b3IgZ2VuZXJhdG9yKGNvbHMsIHJvd3MsIG1lc2hCb3gsIG1lc2hUeXBlKTsKKyAg
ICBNZXNoR2VuZXJhdG9yIGdlbmVyYXRvcihjb2x1bW5zLCByb3dzLCBtZXNoQm94LCBtZXNoVHlw
ZSk7CiAgICAgbV9pbmRpY2VzQ291bnQgPSBnZW5lcmF0b3IuaW5kaWNlc0NvdW50KCk7CiAgICAg
bV9ieXRlc1BlclZlcnRleCA9IGdlbmVyYXRvci5mbG9hdHNQZXJWZXJ0ZXgoKSAqIHNpemVvZihm
bG9hdCk7ICAgIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5oCmluZGV4IDJlODAxZmEuLmI1NTdkM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyTWVzaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5oCkBAIC00Myw4ICs0Myw4IEBAIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDNEOwogCiBjbGFzcyBDdXN0b21GaWx0ZXJNZXNoIDogcHVibGljIFJlZkNvdW50ZWQ8
Q3VzdG9tRmlsdGVyTWVzaD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1c3Rv
bUZpbHRlck1lc2g+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQg
Y29scywgdW5zaWduZWQgcm93cywgY29uc3QgRmxvYXRSZWN0JiBtZXNoQm94LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uOjpNZXNoVHlwZSBtZXNoVHlwZSkgeworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1c3RvbUZp
bHRlck1lc2g+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQgY29s
cywgdW5zaWduZWQgcm93cywgY29uc3QgRmxvYXRSZWN0JiBtZXNoQm94LCBDdXN0b21GaWx0ZXJP
cGVyYXRpb246Ok1lc2hUeXBlIG1lc2hUeXBlKQorICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDdXN0b21GaWx0ZXJNZXNoKGNvbnRleHQsIGNvbHMsIHJvd3MsIG1lc2hCb3gsIG1l
c2hUeXBlKSk7CiAgICAgfQogICAgIH5DdXN0b21GaWx0ZXJNZXNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclNoYWRlci5jcHAKaW5kZXggNDIzZDg2OC4uYTA1MmEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmls
dGVyU2hhZGVyLmNwcApAQCAtMzAsNDkgKzMwLDM2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIEVOQUJMRShXRUJHTCkKLQotI2RlZmluZSBTSEFE
RVIwKFNyYykgI1NyYwotI2RlZmluZSBTSEFERVIoU3JjKSBTSEFERVIwKFNyYykKLQogI2luY2x1
ZGUgIkN1c3RvbUZpbHRlclNoYWRlci5oIgotCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0Qu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TdHJpbmcgQ3VzdG9tRmlsdGVyU2hhZGVyOjpk
ZWZhdWx0VmVydGV4U2hhZGVyU3RyaW5nKCkKLXsKLSAgICByZXR1cm4gU0hBREVSKAotICAgICAg
ICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLSAgICAgICAgYXR0cmlidXRlIHZlYzQgYV9wb3Np
dGlvbjsKLSAgICAgICAgYXR0cmlidXRlIHZlYzIgYV90ZXhDb29yZDsKLSAgICAgICAgdW5pZm9y
bSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsKLSAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29v
cmQ7Ci0gICAgICAgIHZvaWQgbWFpbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGdsX1Bvc2l0
aW9uID0gdV9wcm9qZWN0aW9uTWF0cml4ICogYV9wb3NpdGlvbjsKLSAgICAgICAgICAgIHZfdGV4
Q29vcmQgPSBhX3RleENvb3JkOwotICAgICAgICB9Ci0gICAgKTsKLX0KK2NvbnN0IGNoYXIqIEN1
c3RvbUZpbHRlclNoYWRlcjo6ZGVmYXVsdFZlcnRleFNoYWRlclN0cmluZyA9IAorICAgICAgICAi
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4iIFwKKyAgICAgICAgImF0dHJpYnV0ZSB2ZWM0IGFf
cG9zaXRpb247XG4iIFwKKyAgICAgICAgImF0dHJpYnV0ZSB2ZWMyIGFfdGV4Q29vcmQ7XG4iIFwK
KyAgICAgICAgInVuaWZvcm0gbWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7XG4iIFwKKyAgICAgICAg
InZhcnlpbmcgdmVjMiB2X3RleENvb3JkO1xuIiBcCisgICAgICAgICJ2b2lkIG1haW4oKVxuIiBc
CisgICAgICAgICJ7XG4iIFwKKyAgICAgICAgIiAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlv
bk1hdHJpeCAqIGFfcG9zaXRpb247XG4iIFwKKyAgICAgICAgIiAgICB2X3RleENvb3JkID0gYV90
ZXhDb29yZDtcbiIgXAorICAgICAgICAifVxuIjsKIAotU3RyaW5nIEN1c3RvbUZpbHRlclNoYWRl
cjo6ZGVmYXVsdEZyYWdtZW50U2hhZGVyU3RyaW5nKCkKLXsKLSAgICByZXR1cm4gU0hBREVSKAot
ICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLSAgICAgICAgdmFyeWluZyB2ZWMyIHZf
dGV4Q29vcmQ7Ci0gICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfdGV4dHVyZTsKLSAgICAgICAg
dm9pZCBtYWluKCkKLSAgICAgICAgewotICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVy
ZTJEKHNfdGV4dHVyZSwgdl90ZXhDb29yZCk7Ci0gICAgICAgIH0KLSAgICApOwotfQorY29uc3Qg
Y2hhciogQ3VzdG9tRmlsdGVyU2hhZGVyOjpkZWZhdWx0RnJhZ21lbnRTaGFkZXJTdHJpbmcgPQor
ICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4iIFwKKyAgICAgICAgInZhcnlpbmcg
dmVjMiB2X3RleENvb3JkO1xuIiBcCisgICAgICAgICJ1bmlmb3JtIHNhbXBsZXIyRCBzX3RleHR1
cmU7XG4iIFwKKyAgICAgICAgInZvaWQgbWFpbigpXG4iIFwKKyAgICAgICAgIntcbiIgXAorICAg
ICAgICAiICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRChzX3RleHR1cmUsIHZfdGV4Q29vcmQp
O1xuIiBcCisgICAgICAgICJ9XG4iOwogCiBDdXN0b21GaWx0ZXJTaGFkZXI6OkN1c3RvbUZpbHRl
clNoYWRlcihHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhT
aGFkZXJTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTdHJpbmcpCiAgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fdmVydGV4U2hhZGVyU3RyaW5nKCF2ZXJ0ZXhTaGFk
ZXJTdHJpbmcuaXNOdWxsKCkgPyB2ZXJ0ZXhTaGFkZXJTdHJpbmcgOiBkZWZhdWx0VmVydGV4U2hh
ZGVyU3RyaW5nKCkpCi0gICAgLCBtX2ZyYWdtZW50U2hhZGVyU3RyaW5nKCFmcmFnbWVudFNoYWRl
clN0cmluZy5pc051bGwoKSA/IGZyYWdtZW50U2hhZGVyU3RyaW5nIDogZGVmYXVsdEZyYWdtZW50
U2hhZGVyU3RyaW5nKCkpCisgICAgLCBtX3ZlcnRleFNoYWRlclN0cmluZyghdmVydGV4U2hhZGVy
U3RyaW5nLmlzTnVsbCgpID8gdmVydGV4U2hhZGVyU3RyaW5nIDogU3RyaW5nKGRlZmF1bHRWZXJ0
ZXhTaGFkZXJTdHJpbmcpKQorICAgICwgbV9mcmFnbWVudFNoYWRlclN0cmluZyghZnJhZ21lbnRT
aGFkZXJTdHJpbmcuaXNOdWxsKCkgPyBmcmFnbWVudFNoYWRlclN0cmluZyA6IFN0cmluZyhkZWZh
dWx0RnJhZ21lbnRTaGFkZXJTdHJpbmcpKQogICAgICwgbV9wcm9ncmFtKDApCiAgICAgLCBtX3Bv
c2l0aW9uQXR0cmliTG9jYXRpb24oLTEpCiAgICAgLCBtX3RleEF0dHJpYkxvY2F0aW9uKC0xKQpA
QCAtODcsNDYgKzc0LDY4IEBAIEN1c3RvbUZpbHRlclNoYWRlcjo6Q3VzdG9tRmlsdGVyU2hhZGVy
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX2NvbnRl
bnRTYW1wbGVyTG9jYXRpb24oLTEpCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiB7Ci0g
ICAgUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRl
cihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7Ci0gICAgUGxhdGZvcm0zRE9iamVj
dCBmcmFnbWVudFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFHTUVOVF9TSEFERVIpOwotCi0gICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UodmVy
dGV4U2hhZGVyLCBtX3ZlcnRleFNoYWRlclN0cmluZyk7Ci0gICAgbV9jb250ZXh0LT5jb21waWxl
U2hhZGVyKHZlcnRleFNoYWRlcik7CisgICAgUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIg
PSBjb21waWxlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSLCBtX3ZlcnRl
eFNoYWRlclN0cmluZyk7CisgICAgaWYgKCF2ZXJ0ZXhTaGFkZXIpCisgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBpbnQgY29tcGlsZWQgPSAwOwotICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYo
dmVydGV4U2hhZGVyLCBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9TVEFUVVMsICZjb21waWxl
ZCk7Ci0gICAgaWYgKCFjb21waWxlZCkgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBp
bnZhbGlkIHNoYWRlci4gVGhyb3cgc29tZSBlcnJvcnMuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxNgorICAgIFBsYXRmb3JtM0RPYmplY3Qg
ZnJhZ21lbnRTaGFkZXIgPSBjb21waWxlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVO
VF9TSEFERVIsIG1fZnJhZ21lbnRTaGFkZXJTdHJpbmcpOworICAgIGlmICghZnJhZ21lbnRTaGFk
ZXIpIHsKKyAgICAgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShm
cmFnbWVudFNoYWRlciwgbV9mcmFnbWVudFNoYWRlclN0cmluZyk7Ci0gICAgbV9jb250ZXh0LT5j
b21waWxlU2hhZGVyKGZyYWdtZW50U2hhZGVyKTsKKyAgICBtX3Byb2dyYW0gPSBsaW5rUHJvZ3Jh
bSh2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKKyAgICAKKyAgICBtX2NvbnRleHQtPmRl
bGV0ZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpOworICAgIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKGZy
YWdtZW50U2hhZGVyKTsKICAgICAKLSAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2KGZyYWdtZW50
U2hhZGVyLCBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9TVEFUVVMsICZjb21waWxlZCk7Cisg
ICAgaWYgKCFtX3Byb2dyYW0pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpbml0aWFsaXpl
UGFyYW1ldGVyTG9jYXRpb25zKCk7CisgICAgCisgICAgbV9pc0luaXRpYWxpemVkID0gdHJ1ZTsK
K30KKworUGxhdGZvcm0zRE9iamVjdCBDdXN0b21GaWx0ZXJTaGFkZXI6OmNvbXBpbGVTaGFkZXIo
R0MzRGVudW0gc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzaGFkZXJTdHJpbmcpCit7CisgICAg
UGxhdGZvcm0zRE9iamVjdCBzaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihzaGFkZXJU
eXBlKTsKKyAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShzaGFkZXIsIHNoYWRlclN0cmluZyk7
CisgICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyKHNoYWRlcik7CisgICAgCisgICAgaW50IGNv
bXBpbGVkID0gMDsKKyAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2KHNoYWRlciwgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmY29tcGlsZWQpOwogICAgIGlmICghY29tcGlsZWQp
IHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW52YWxpZCBzaGFkZXIuIFRocm93IHNv
bWUgZXJyb3JzLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQ0MTYKLSAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmRlbGV0ZVNo
YWRlcihzaGFkZXIpOworICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCi0gICAgbV9wcm9n
cmFtID0gbV9jb250ZXh0LT5jcmVhdGVQcm9ncmFtKCk7Ci0gICAgbV9jb250ZXh0LT5hdHRhY2hT
aGFkZXIobV9wcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOwotICAgIG1fY29udGV4dC0+YXR0YWNoU2hh
ZGVyKG1fcHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOwotICAgIG1fY29udGV4dC0+bGlua1Byb2dy
YW0obV9wcm9ncmFtKTsKLSAgICAKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcih2ZXJ0ZXhT
aGFkZXIpOwotICAgIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVyKTsKKyAg
ICByZXR1cm4gc2hhZGVyOworfQorCitQbGF0Zm9ybTNET2JqZWN0IEN1c3RvbUZpbHRlclNoYWRl
cjo6bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RP
YmplY3QgZnJhZ21lbnRTaGFkZXIpCit7CisgICAgUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtID0g
bV9jb250ZXh0LT5jcmVhdGVQcm9ncmFtKCk7CisgICAgbV9jb250ZXh0LT5hdHRhY2hTaGFkZXIo
cHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9n
cmFtLCBmcmFnbWVudFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5saW5rUHJvZ3JhbShwcm9ncmFt
KTsKICAgICAKICAgICBpbnQgbGlua2VkID0gMDsKLSAgICBtX2NvbnRleHQtPmdldFByb2dyYW1p
dihtX3Byb2dyYW0sIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUywgJmxpbmtlZCk7Cisg
ICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYocHJvZ3JhbSwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJ
TktfU1RBVFVTLCAmbGlua2VkKTsKICAgICBpZiAoIWxpbmtlZCkgewogICAgICAgICAvLyBGSVhN
RTogSW52YWxpZCB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVyIGNvbWJpbmF0aW9uLiBUaHJvdyBzb21l
IGVycm9ycyBoZXJlLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQ0MTYKLSAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmRlbGV0
ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKKyAgICBy
ZXR1cm4gcHJvZ3JhbTsKK30KKwordm9pZCBDdXN0b21GaWx0ZXJTaGFkZXI6OmluaXRpYWxpemVQ
YXJhbWV0ZXJMb2NhdGlvbnMoKQorewogICAgIG1fcG9zaXRpb25BdHRyaWJMb2NhdGlvbiA9IG1f
Y29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24obV9wcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwogICAg
IG1fdGV4QXR0cmliTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG1fcHJv
Z3JhbSwgImFfdGV4Q29vcmQiKTsKICAgICBtX21lc2hBdHRyaWJMb2NhdGlvbiA9IG1fY29udGV4
dC0+Z2V0QXR0cmliTG9jYXRpb24obV9wcm9ncmFtLCAiYV9tZXNoQ29vcmQiKTsKQEAgLTEzOCw4
ICsxNDcsNiBAQCBDdXN0b21GaWx0ZXJTaGFkZXI6OkN1c3RvbUZpbHRlclNoYWRlcihHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgIG1fc2FtcGxlckxvY2F0aW9u
ID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV9wcm9ncmFtLCAic190ZXh0dXJlIik7
CiAgICAgbV9zYW1wbGVyU2l6ZUxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRp
b24obV9wcm9ncmFtLCAic190ZXh0dXJlU2l6ZSIpOwogICAgIG1fY29udGVudFNhbXBsZXJMb2Nh
dGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcHJvZ3JhbSwgInNfY29udGVu
dFRleHR1cmUiKTsKLSAgICAKLSAgICBtX2lzSW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogICAgIAog
Q3VzdG9tRmlsdGVyU2hhZGVyOjp+Q3VzdG9tRmlsdGVyU2hhZGVyKCkKQEAgLTE0OCw5ICsxNTUs
NSBAQCBDdXN0b21GaWx0ZXJTaGFkZXI6On5DdXN0b21GaWx0ZXJTaGFkZXIoKQogICAgICAgICBt
X2NvbnRleHQtPmRlbGV0ZVByb2dyYW0obV9wcm9ncmFtKTsKIH0KIAotCi19Ci0KK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIEVOQUJMRShX
RUJHTCkKLQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuaAppbmRleCBhZjFmY2M5Li5kYmUzYzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclNoYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmgKQEAgLTQ5LDkgKzQ5LDYgQEAgcHVibGljOgog
ICAgIAogICAgIH5DdXN0b21GaWx0ZXJTaGFkZXIoKTsKICAgICAKLSAgICBzdGF0aWMgU3RyaW5n
IGRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmcoKTsKLSAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRG
cmFnbWVudFNoYWRlclN0cmluZygpOyAgICAKLSAgICAKICAgICBTdHJpbmcgdmVydGV4U2hhZGVy
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXJTdHJpbmc7IH0KICAgICBTdHJp
bmcgZnJhZ21lbnRTaGFkZXJTdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVy
U3RyaW5nOyB9CiAgICAgCkBAIC03NCw2ICs3MSwxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEN1c3RvbUZpbHRlclNoYWRlcihHcmFwaGljc0NvbnRleHQzRCosIGNvbnN0IFN0cmluZyYgdmVy
dGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyKTsKICAgICAKKyAgICBQbGF0
Zm9ybTNET2JqZWN0IGNvbXBpbGVTaGFkZXIoR0MzRGVudW0gc2hhZGVyVHlwZSwgY29uc3QgU3Ry
aW5nJiBzaGFkZXJTdHJpbmcpOworICAgIFBsYXRmb3JtM0RPYmplY3QgbGlua1Byb2dyYW0oUGxh
dGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFk
ZXIpOworICAgIHZvaWQgaW5pdGlhbGl6ZVBhcmFtZXRlckxvY2F0aW9ucygpOworICAgIAorICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBkZWZhdWx0VmVydGV4U2hhZGVyU3RyaW5nOworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBkZWZhdWx0RnJhZ21lbnRTaGFkZXJTdHJpbmc7CisgICAgCiAgICAgUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgCiAgICAgU3RyaW5nIG1fdmVy
dGV4U2hhZGVyU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcAppbmRleCA5YmI4YWRkLi5mYjQy
NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ3VzdG9tRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcApAQCAtNTEsMjcgKzUxLDI2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIFRyYW5zZm9ybWF0aW9uTWF0cml4IG9ydGhvTWF0cml4
KGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCkKK3N0YXRp
YyB2b2lkIG9ydGhvZ29uYWxQcm9qZWN0aW9uTWF0cml4KFRyYW5zZm9ybWF0aW9uTWF0cml4JiBt
YXRyaXgsIGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCkK
IHsKKyAgICBBU1NFUlQobWF0cml4LmlzSWRlbnRpdHkoKSk7CisgICAgCiAgICAgZmxvYXQgZGVs
dGFYID0gcmlnaHQgLSBsZWZ0OwogICAgIGZsb2F0IGRlbHRhWSA9IHRvcCAtIGJvdHRvbTsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBvcnRobzsKICAgICBpZiAoIWRlbHRhWCB8fCAhZGVsdGFZ
KQotICAgICAgICByZXR1cm4gb3J0aG87Ci0gICAgb3J0aG8uc2V0TTExKDIuMGYgLyBkZWx0YVgp
OwotICAgIG9ydGhvLnNldE00MSgtKHJpZ2h0ICsgbGVmdCkgLyBkZWx0YVgpOwotICAgIG9ydGhv
LnNldE0yMigyLjBmIC8gZGVsdGFZKTsKLSAgICBvcnRoby5zZXRNNDIoLSh0b3AgKyBib3R0b20p
IC8gZGVsdGFZKTsKKyAgICAgICAgcmV0dXJuOworICAgIG1hdHJpeC5zZXRNMTEoMi4wZiAvIGRl
bHRhWCk7CisgICAgbWF0cml4LnNldE00MSgtKHJpZ2h0ICsgbGVmdCkgLyBkZWx0YVgpOworICAg
IG1hdHJpeC5zZXRNMjIoMi4wZiAvIGRlbHRhWSk7CisgICAgbWF0cml4LnNldE00MigtKHRvcCAr
IGJvdHRvbSkgLyBkZWx0YVkpOwogCiAgICAgLy8gVXNlIGJpZyBlbm91Z2ggbmVhci9mYXIgdmFs
dWVzLCBzbyB0aGF0IHNpbXBsZSByb3RhdGlvbnMgb2YgcmF0aGVyIGxhcmdlIG9iamVjdHMgd2ls
bCBub3QKICAgICAvLyBnZXQgY2xpcHBlZC4gMTAwMDAgc2hvdWxkIGNvdmVyIG1vc3Qgb2YgdGhl
IHNjcmVlbiByZXNvbHV0aW9ucy4KICAgICBjb25zdCBmbG9hdCBmYXJWYWx1ZSA9IDEwMDAwOwog
ICAgIGNvbnN0IGZsb2F0IG5lYXJWYWx1ZSA9IC0xMDAwMDsKLSAgICBvcnRoby5zZXRNMzMoLTIu
MGYgLyAoZmFyVmFsdWUgLSBuZWFyVmFsdWUpKTsKLSAgICBvcnRoby5zZXRNNDMoLSAoZmFyVmFs
dWUgKyBuZWFyVmFsdWUpIC8gKGZhclZhbHVlIC0gbmVhclZhbHVlKSk7Ci0gICAgb3J0aG8uc2V0
TTQ0KDEuMGYpOwotCi0gICAgcmV0dXJuIG9ydGhvOworICAgIG1hdHJpeC5zZXRNMzMoLTIuMGYg
LyAoZmFyVmFsdWUgLSBuZWFyVmFsdWUpKTsKKyAgICBtYXRyaXguc2V0TTQzKC0gKGZhclZhbHVl
ICsgbmVhclZhbHVlKSAvIChmYXJWYWx1ZSAtIG5lYXJWYWx1ZSkpOworICAgIG1hdHJpeC5zZXRN
NDQoMS4wZik7CiB9CiAKIEZFQ3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcihGaWx0ZXIqIGZp
bHRlciwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29u
c3QgU3RyaW5nJiBmcmFnbWVudFNoYWRlciwKQEAgLTg1LDcgKzg0LDYgQEAgRkVDdXN0b21GaWx0
ZXI6OkZFQ3VzdG9tRmlsdGVyKEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYKICAgICAsIG1fbWVzaENvbHVtbnMobWVzaENvbHVtbnMpCiAgICAgLCBtX21l
c2hCb3hUeXBlKG1lc2hCb3hUeXBlKQogICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKLQogewog
fQogCkBAIC0xMDMsNDAgKzEwMSw3MiBAQCB2b2lkIEZFQ3VzdG9tRmlsdGVyOjpwbGF0Zm9ybUFw
cGx5U29mdHdhcmUoKQogICAgICAgICByZXR1cm47CiAKICAgICBGaWx0ZXJFZmZlY3QqIGluID0g
aW5wdXRFZmZlY3QoMCk7Ci0gICAgSW50UmVjdCBlZmZlY3RBRHJhd2luZ1JlY3QgPSByZXF1ZXN0
ZWRSZWdpb25PZklucHV0SW1hZ2VEYXRhKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKLSAgICBS
ZWZQdHI8Qnl0ZUFycmF5PiBzcmNQaXhlbEFycmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdl
KGVmZmVjdEFEcmF3aW5nUmVjdCk7CisgICAgSW50UmVjdCBlZmZlY3REcmF3aW5nUmVjdCA9IHJl
cXVlc3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURhdGEoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpOwor
ICAgIFJlZlB0cjxCeXRlQXJyYXk+IHNyY1BpeGVsQXJyYXkgPSBpbi0+YXNQcmVtdWx0aXBsaWVk
SW1hZ2UoZWZmZWN0RHJhd2luZ1JlY3QpOwogICAgIAotICAgIEludFNpemUgbmV3Q29udGV4dFNp
emUoZWZmZWN0QURyYXdpbmdSZWN0LndpZHRoKCksIGVmZmVjdEFEcmF3aW5nUmVjdC5oZWlnaHQo
KSk7CisgICAgSW50U2l6ZSBuZXdDb250ZXh0U2l6ZShlZmZlY3REcmF3aW5nUmVjdC5zaXplKCkp
OwogICAgIGJvb2wgaGFkQ29udGV4dCA9IG1fY29udGV4dDsKLSAgICBpZiAoIW1fY29udGV4dCkg
ewotICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzOwotICAg
ICAgICBhdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlciA9IHRydWU7Ci0gICAgICAgIGF0
dHJpYnV0ZXMucHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBt
X2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIG1fZG9jdW1l
bnQtPnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJPZmZzY3JlZW4pOwotICAgICAgICBtX2RyYXdpbmdCdWZmZXIgPSBEcmF3aW5nQnVmZmVyOjpj
cmVhdGUobV9jb250ZXh0LmdldCgpLCBuZXdDb250ZXh0U2l6ZSwgIWF0dHJpYnV0ZXMucHJlc2Vy
dmVEcmF3aW5nQnVmZmVyKTsKLSAgICAgICAgCi0gICAgICAgIG1fc2hhZGVyID0gQ3VzdG9tRmls
dGVyU2hhZGVyOjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBtX3ZlcnRleFNoYWRlciwgbV9mcmFn
bWVudFNoYWRlcik7Ci0gICAgICAgIG1fbWVzaCA9IEN1c3RvbUZpbHRlck1lc2g6OmNyZWF0ZSht
X2NvbnRleHQuZ2V0KCksIG1fbWVzaENvbHVtbnMsIG1fbWVzaFJvd3MsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRSZWN0KDAsIDAsIDEsIDEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9tZXNoVHlwZSk7Ci0gICAg
fQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICBpbml0aWFsaXplQ29udGV4dChuZXdDb250
ZXh0U2l6ZSk7CiAgICAgCi0gICAgaWYgKCFoYWRDb250ZXh0IHx8IG1fY29udGV4dFNpemUgIT0g
bmV3Q29udGV4dFNpemUpIHsKLSAgICAgICAgbV9pbnB1dFRleHR1cmUgPSAwOwotICAgICAgICBt
X2RyYXdpbmdCdWZmZXItPnJlc2V0KG5ld0NvbnRleHRTaXplKTsKLSAgICAgICAgbV9jb250ZXh0
LT5yZXNoYXBlKG5ld0NvbnRleHRTaXplLndpZHRoKCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgp
KTsKLSAgICAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBuZXdDb250ZXh0U2l6ZS53aWR0
aCgpLCBuZXdDb250ZXh0U2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIG1faW5wdXRUZXh0dXJlID0g
VGV4dHVyZTo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwgVGV4dHVyZTo6UkdCQTgsIG5ld0NvbnRl
eHRTaXplLndpZHRoKCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgpKTsKLSAgICAgICAgbV9jb250
ZXh0U2l6ZSA9IG5ld0NvbnRleHRTaXplOwotICAgIH0KKyAgICBpZiAoIWhhZENvbnRleHQgfHwg
bV9jb250ZXh0U2l6ZSAhPSBuZXdDb250ZXh0U2l6ZSkKKyAgICAgICAgcmVzaXplQ29udGV4dChu
ZXdDb250ZXh0U2l6ZSk7CiAgICAgCisgICAgLy8gRG8gbm90IGRyYXcgdGhlIGZpbHRlciBpZiB0
aGUgaW5wdXQgaW1hZ2UgY2Fubm90IGZpdCBpbnNpZGUgYSBzaW5nbGUgR1BVIHRleHR1cmUuCiAg
ICAgaWYgKG1faW5wdXRUZXh0dXJlLT50aWxlcygpLm51bVRpbGVzKCkgIT0gMSkKICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIG1fY29udGV4dC0+Y2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKICAg
ICBtX2NvbnRleHQtPmNsZWFyKEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUIHwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQpOwogICAgIAorICAgIGJpbmRQcm9n
cmFtQW5kQnVmZmVycyhzcmNQaXhlbEFycmF5LmdldCgpKTsKKyAgICAKKyAgICBtX2NvbnRleHQt
PmRyYXdFbGVtZW50cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCBtX21lc2gtPmluZGlj
ZXNDb3VudCgpLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQsIDApOworICAgIAor
ICAgIG1fZHJhd2luZ0J1ZmZlci0+Y29tbWl0KCk7CisKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBp
bWFnZURhdGEgPSBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKG1f
ZHJhd2luZ0J1ZmZlci5nZXQoKSk7CisgICAgQnl0ZUFycmF5KiBncHVSZXN1bHQgPSBpbWFnZURh
dGEtPmRhdGEoKS0+ZGF0YSgpOworICAgIEFTU0VSVChncHVSZXN1bHQtPmxlbmd0aCgpID09IGRz
dFBpeGVsQXJyYXktPmxlbmd0aCgpKTsKKyAgICBtZW1jcHkoZHN0UGl4ZWxBcnJheS0+ZGF0YSgp
LCBncHVSZXN1bHQtPmRhdGEoKSwgZ3B1UmVzdWx0LT5sZW5ndGgoKSk7Cit9CisKK3ZvaWQgRkVD
dXN0b21GaWx0ZXI6OmluaXRpYWxpemVDb250ZXh0KGNvbnN0IEludFNpemUmIGNvbnRleHRTaXpl
KQoreworICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAg
YXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSB0cnVlOworICAgIGF0dHJpYnV0ZXMu
cHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7CisgICAgCisgICAgbV9jb250ZXh0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBtX2RvY3VtZW50LT52aWV3KCktPnJvb3Qo
KS0+aG9zdFdpbmRvdygpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuKTsKKyAg
ICBtX2RyYXdpbmdCdWZmZXIgPSBEcmF3aW5nQnVmZmVyOjpjcmVhdGUobV9jb250ZXh0LmdldCgp
LCBjb250ZXh0U2l6ZSwgIWF0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyKTsKKyAgICAK
KyAgICBtX3NoYWRlciA9IEN1c3RvbUZpbHRlclNoYWRlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQo
KSwgbV92ZXJ0ZXhTaGFkZXIsIG1fZnJhZ21lbnRTaGFkZXIpOworICAgIG1fbWVzaCA9IEN1c3Rv
bUZpbHRlck1lc2g6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIG1fbWVzaENvbHVtbnMsIG1fbWVz
aFJvd3MsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdFJlY3Qo
MCwgMCwgMSwgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVz
aFR5cGUpOworfQorCit2b2lkIEZFQ3VzdG9tRmlsdGVyOjpyZXNpemVDb250ZXh0KGNvbnN0IElu
dFNpemUmIG5ld0NvbnRleHRTaXplKQoreworICAgIG1faW5wdXRUZXh0dXJlID0gMDsKKyAgICBt
X2RyYXdpbmdCdWZmZXItPnJlc2V0KG5ld0NvbnRleHRTaXplKTsKKyAgICBtX2NvbnRleHQtPnJl
c2hhcGUobmV3Q29udGV4dFNpemUud2lkdGgoKSwgbmV3Q29udGV4dFNpemUuaGVpZ2h0KCkpOwor
ICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwgbmV3Q29udGV4dFNpemUud2lkdGgoKSwgbmV3
Q29udGV4dFNpemUuaGVpZ2h0KCkpOworICAgIG1faW5wdXRUZXh0dXJlID0gVGV4dHVyZTo6Y3Jl
YXRlKG1fY29udGV4dC5nZXQoKSwgVGV4dHVyZTo6UkdCQTgsIG5ld0NvbnRleHRTaXplLndpZHRo
KCksIG5ld0NvbnRleHRTaXplLmhlaWdodCgpKTsKKyAgICBtX2NvbnRleHRTaXplID0gbmV3Q29u
dGV4dFNpemU7Cit9CisKK3ZvaWQgRkVDdXN0b21GaWx0ZXI6OmJpbmRWZXJ0ZXhBdHRyaWJ1dGUo
aW50IGF0dHJpYnV0ZUxvY2F0aW9uLCB1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCYgb2Zmc2V0KQor
eworICAgIGlmIChhdHRyaWJ1dGVMb2NhdGlvbiAhPSAtMSkgeworICAgICAgICBtX2NvbnRleHQt
PnZlcnRleEF0dHJpYlBvaW50ZXIoYXR0cmlidXRlTG9jYXRpb24sIDQsIEdyYXBoaWNzQ29udGV4
dDNEOjpGTE9BVCwgZmFsc2UsIG1fbWVzaC0+Ynl0ZXNQZXJWZXJ0ZXgoKSwgb2Zmc2V0KTsKKyAg
ICAgICAgbV9jb250ZXh0LT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShhdHRyaWJ1dGVMb2NhdGlv
bik7CisgICAgfQorICAgIG9mZnNldCArPSBzaXplICogc2l6ZW9mKGZsb2F0KTsKK30KKwordm9p
ZCBGRUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRCdWZmZXJzKEJ5dGVBcnJheSogc3JjUGl4
ZWxBcnJheSkKK3sKICAgICBtX2NvbnRleHQtPnVzZVByb2dyYW0obV9zaGFkZXItPnByb2dyYW0o
KSk7CiAgICAgCiAgICAgaWYgKG1fc2hhZGVyLT5zYW1wbGVyTG9jYXRpb24oKSAhPSAtMSkgewpA
QCAtMTQ3LDcgKzE3Nyw4IEBAIHZvaWQgRkVDdXN0b21GaWx0ZXI6OnBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSgpCiAgICAgfQogICAgIAogICAgIGlmIChtX3NoYWRlci0+cHJvamVjdGlvbk1hdHJpeExv
Y2F0aW9uKCkgIT0gLTEpIHsKLSAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlv
bk1hdHJpeCA9IG9ydGhvTWF0cml4KC0wLjUsIDAuNSwgLTAuNSwgMC41KTsKKyAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlvbk1hdHJpeDsgCisgICAgICAgIG9ydGhvZ29uYWxQ
cm9qZWN0aW9uTWF0cml4KHByb2plY3Rpb25NYXRyaXgsIC0wLjUsIDAuNSwgLTAuNSwgMC41KTsK
ICAgICAgICAgZmxvYXQgZ2xQcm9qZWN0aW9uTWF0cml4WzE2XTsKICAgICAgICAgcHJvamVjdGlv
bk1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShnbFByb2plY3Rpb25NYXRyaXgpOwogICAg
ICAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0ZnYobV9zaGFkZXItPnByb2plY3Rpb25NYXRy
aXhMb2NhdGlvbigpLCBmYWxzZSwgJmdsUHJvamVjdGlvbk1hdHJpeFswXSwgMSk7CkBAIC0xNTYs
NDEgKzE4NywxMiBAQCB2b2lkIEZFQ3VzdG9tRmlsdGVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KQogICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVG
RkVSLCBtX21lc2gtPnZlcnRpY2VzQnVmZmVyT2JqZWN0KCkpOwogICAgIG1fY29udGV4dC0+Ymlu
ZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fbWVzaC0+
ZWxlbWVudHNCdWZmZXJPYmplY3QoKSk7CiAKLSAgICB1bnNpZ25lZCB2ZXJ0ZXhTaXplID0gbV9t
ZXNoLT5ieXRlc1BlclZlcnRleCgpOwotICAgIAogICAgIHVuc2lnbmVkIG9mZnNldCA9IDA7Ci0g
ICAgCi0gICAgaWYgKG1fc2hhZGVyLT5wb3NpdGlvbkF0dHJpYkxvY2F0aW9uKCkgIT0gLTEpIHsK
LSAgICAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKG1fc2hhZGVyLT5wb3NpdGlv
bkF0dHJpYkxvY2F0aW9uKCksIDQsIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCwgZmFsc2UsIHZl
cnRleFNpemUsIG9mZnNldCk7Ci0gICAgICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkobV9zaGFkZXItPnBvc2l0aW9uQXR0cmliTG9jYXRpb24oKSk7Ci0gICAgfQotICAgIG9m
ZnNldCArPSA0ICogc2l6ZW9mKGZsb2F0KTsKLSAgICAKLSAgICBpZiAobV9zaGFkZXItPnRleEF0
dHJpYkxvY2F0aW9uKCkgIT0gLTEpIHsKLSAgICAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKG1fc2hhZGVyLT50ZXhBdHRyaWJMb2NhdGlvbigpLCAyLCBHcmFwaGljc0NvbnRleHQz
RDo6RkxPQVQsIGZhbHNlLCB2ZXJ0ZXhTaXplLCBvZmZzZXQpOwotICAgICAgICBtX2NvbnRleHQt
PmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG1fc2hhZGVyLT50ZXhBdHRyaWJMb2NhdGlvbigpKTsK
LSAgICB9Ci0gICAgb2Zmc2V0ICs9IDIgKiBzaXplb2YoZmxvYXQpOwotICAgIAotICAgIGlmICht
X3NoYWRlci0+bWVzaEF0dHJpYkxvY2F0aW9uKCkgIT0gLTEpIHsKLSAgICAgICAgbV9jb250ZXh0
LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKG1fc2hhZGVyLT5tZXNoQXR0cmliTG9jYXRpb24oKSwgMiwg
R3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FULCBmYWxzZSwgdmVydGV4U2l6ZSwgb2Zmc2V0KTsKLSAg
ICAgICAgbV9jb250ZXh0LT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShtX3NoYWRlci0+bWVzaEF0
dHJpYkxvY2F0aW9uKCkpOwotICAgIH0KLSAgICBvZmZzZXQgKz0gMiAqIHNpemVvZihmbG9hdCk7
Ci0gICAgCi0gICAgaWYgKG1fbWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpERVRB
Q0hFRCAmJiBtX3NoYWRlci0+dHJpYW5nbGVBdHRyaWJMb2NhdGlvbigpICE9IC0xKSB7Ci0gICAg
ICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3NoYWRlci0+dHJpYW5nbGVBdHRy
aWJMb2NhdGlvbigpLCAzLCBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQsIGZhbHNlLCB2ZXJ0ZXhT
aXplLCBvZmZzZXQpOwotICAgICAgICBtX2NvbnRleHQtPmVuYWJsZVZlcnRleEF0dHJpYkFycmF5
KG1fc2hhZGVyLT50cmlhbmdsZUF0dHJpYkxvY2F0aW9uKCkpOwotICAgIH0KLSAgICAKLSAgICBt
X2NvbnRleHQtPmRyYXdFbGVtZW50cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCBtX21l
c2gtPmluZGljZXNDb3VudCgpLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlQsIDAp
OwotICAgIAotICAgIG1fZHJhd2luZ0J1ZmZlci0+Y29tbWl0KCk7Ci0KLSAgICBSZWZQdHI8SW1h
Z2VEYXRhPiBpbWFnZURhdGEgPSBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1h
Z2VEYXRhKG1fZHJhd2luZ0J1ZmZlci5nZXQoKSk7Ci0gICAgQnl0ZUFycmF5KiBncHVSZXN1bHQg
PSBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpOwotICAgIEFTU0VSVChncHVSZXN1bHQtPmxlbmd0
aCgpID09IGRzdFBpeGVsQXJyYXktPmxlbmd0aCgpKTsKLSAgICBtZW1jcHkoZHN0UGl4ZWxBcnJh
eS0+ZGF0YSgpLCBncHVSZXN1bHQtPmRhdGEoKSwgZ3B1UmVzdWx0LT5sZW5ndGgoKSk7CisgICAg
YmluZFZlcnRleEF0dHJpYnV0ZShtX3NoYWRlci0+cG9zaXRpb25BdHRyaWJMb2NhdGlvbigpLCA0
LCBvZmZzZXQpOworICAgIGJpbmRWZXJ0ZXhBdHRyaWJ1dGUobV9zaGFkZXItPnRleEF0dHJpYkxv
Y2F0aW9uKCksIDIsIG9mZnNldCk7CisgICAgYmluZFZlcnRleEF0dHJpYnV0ZShtX3NoYWRlci0+
bWVzaEF0dHJpYkxvY2F0aW9uKCksIDIsIG9mZnNldCk7CisgICAgaWYgKG1fbWVzaFR5cGUgPT0g
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpERVRBQ0hFRCkKKyAgICAgICAgYmluZFZlcnRleEF0dHJp
YnV0ZShtX3NoYWRlci0+dHJpYW5nbGVBdHRyaWJMb2NhdGlvbigpLCAzLCBvZmZzZXQpOwogfQog
CiB2b2lkIEZFQ3VzdG9tRmlsdGVyOjpkdW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaAppbmRleCAxODI0
NzlmLi4yYWFhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5oCkBAIC0zNyw2ICszNywxMCBAQAogI2lu
Y2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorbmFtZXNw
YWNlIEpTQyB7CitjbGFzcyBCeXRlQXJyYXk7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ2FjaGVkU2hhZGVyOwpAQCAtNDUsOCArNDksOSBAQCBjbGFzcyBDdXN0b21GaWx0ZXJT
aGFkZXI7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERyYXdpbmdCdWZmZXI7CiBjbGFzcyBHcmFw
aGljc0NvbnRleHQzRDsKK2NsYXNzIEludFNpemU7CiBjbGFzcyBUZXh0dXJlOwotICAgIAorCiBj
bGFzcyBGRUN1c3RvbUZpbHRlciA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBjcmVhdGUoRmlsdGVyKiwgRG9jdW1l
bnQqLCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3QgU3RyaW5nJiBmcmFnbWVudFNo
YWRlciwKQEAgLTYzLDYgKzY4LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBDdXN0b21GaWx0ZXJPcGVyYXRp
b246Ok1lc2hCb3hUeXBlLCAKICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRp
b246Ok1lc2hUeXBlKTsKICAgICAKKyAgICB2b2lkIGluaXRpYWxpemVDb250ZXh0KGNvbnN0IElu
dFNpemUmIGNvbnRleHRTaXplKTsKKyAgICB2b2lkIHJlc2l6ZUNvbnRleHQoY29uc3QgSW50U2l6
ZSYgbmV3Q29udGV4dFNpemUpOworICAgIHZvaWQgYmluZFZlcnRleEF0dHJpYnV0ZShpbnQgYXR0
cmlidXRlTG9jYXRpb24sIHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkJiBvZmZzZXQpOworICAgIHZv
aWQgYmluZFByb2dyYW1BbmRCdWZmZXJzKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSk7CisgICAg
CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAgICAgCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBtX2NvbnRleHQ7Cg==
</data>
<flag name="review"
          id="120169"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="120170"
          type_id="3"
          status="-"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>