<?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>136470</bug_id>
          
          <creation_ts>2014-09-02 16:07:27 -0700</creation_ts>
          <short_desc>Use StringBuilder append(char) and appendLiteral in more places</short_desc>
          <delta_ts>2014-09-03 11:43:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032776</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-02 16:07:27 -0700</bug_when>
    <thetext>Use StringBuilder::append(char) and StringBuilder::appendLiteral in more places.

I checked `binaryinfo $build/Release/WebCore.framework/WebCore` before and after my change and it was the same:

&gt; TEXT SIZE  DATA SIZE  OBJC SIZE  OTHR SIZE  EXPORTS  LINKAGE  NAMESPACE  PREBOUND  BINARY
&gt; =========  =========  =========  =========  =======  =======  =========  ========  ==========
&gt;  16500 KB    1852 KB       0 KB   18192 KB     2921  -n TOO MUCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032779</commentid>
    <comment_count>1</comment_count>
      <attachid>237525</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-02 16:09:31 -0700</bug_when>
    <thetext>Created attachment 237525
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032924</commentid>
    <comment_count>2</comment_count>
      <attachid>237525</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-03 10:35:19 -0700</bug_when>
    <thetext>Comment on attachment 237525
[PATCH] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032946</commentid>
    <comment_count>3</comment_count>
      <attachid>237525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-03 11:43:06 -0700</bug_when>
    <thetext>Comment on attachment 237525
[PATCH] Proposed Fix

Clearing flags on attachment: 237525

Committed r173212: &lt;http://trac.webkit.org/changeset/173212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032947</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-03 11:43:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237525</attachid>
            <date>2014-09-02 16:09:31 -0700</date>
            <delta_ts>2014-09-03 11:43:06 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>stringbuilder.patch</filename>
            <type>text/plain</type>
            <size>33786</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZmE0MGI4Li5hZDhhZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzgg
QEAKKzIwMTQtMDktMDIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgU3RyaW5nQnVpbGRlciBhcHBlbmQoY2hhcikgYW5kIGFwcGVuZExpdGVyYWwg
aW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNjQ3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVByb3RvY29sU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRj
aGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRFeHRl
bnNpb25EaXNwYXRjaGVyOjphcHBlbmRBY2NlcHRlZEV4dGVuc2lvbik6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSk6CisgICAgICAgICog
Y3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDc3NU
ZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCk6Cisg
ICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRp
YVJ1bGU6OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KToKKyAgICAgICAg
KiBjc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRz
UnVsZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeTo6c2VyaWFsaXplKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1
cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpn
ZW5lcmF0ZVVuaXF1ZVByZWZpeCk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dXJsVG9NYXJrdXApOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRl
ckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0
VG9EYXRhVVJMKToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtYWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKyAgICAgICAgKiBodG1s
L0Zvcm1Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlY29yZEZvcm1TdHJ1Y3R1
cmUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZENvbnNvbGVFcnJvcik6CisgICAgICAgICogaHRtbC90cmFjay9X
ZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb2xsZWN0
Q3VlVGV4dCk6CisgICAgICAgICogbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OmxvbmdEaXZMZWZ0UGFkZGlu
Zyk6CisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQpOgorICAgICAgICAq
IHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW46OnRvUmF3U3RyaW5nKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3lu
Y2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1RocmVhZGVkU2Nyb2xsaW5nTW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vUE9E
SW50ZXJ2YWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBPREludGVydmFsOjp0b1N0cmluZyk6Cisg
ICAgICAgICogcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQ
T0RSZWRCbGFja1RyZWU6OmR1bXBGcm9tTm9kZSk6CisgICAgICAgICogcGxhdGZvcm0vVVVJRC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmFwcGVuZFByb3h5U2VydmVyU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRm9ybWF0OjpxdW90ZUFuZEFwcGVuZExpdGVyYWwpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVTdHJpbmdCdWlsZGVyOjp6ZXJvUGFkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvVGV4dFN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0U3RyZWFtOjpvcGVyYXRv
cjw8KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKToKKwogMjAxNC0w
OC0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIENv
bnZlcnQgc3RyaW5nIGxpdGVyYWxzIHRvIGNoYXJhY3RlciBsaXRlcmFscyBpbiBtYWtlU3RyaW5n
IHVzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEu
Y3BwCmluZGV4IDc5NjFjY2UuLjA0NGIxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0yNjYsOSArMjY2LDkgQEAgU3RyaW5nIElE
QktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBhcnJheVZhbHVlLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChhcnJheVZhbHVlW2ldLmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGkgPCBhcnJheVZhbHVlLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIsICIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiIH0i
KTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgfSIpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogICAgICAgICB9CiAgICAgY2FzZSBJREJLZXk6OlN0
cmluZ1R5cGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCmluZGV4IDBkY2QzODkuLmVjMjZhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBT
dHJpbmcgZW5jb2RlUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAg
ICAgaWYgKHByb3RvY29sW2ldIDwgMHgyMCB8fCBwcm90b2NvbFtpXSA+IDB4N0UpCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiXFx1JTA0WCIsIHByb3RvY29sW2ld
KSk7CiAgICAgICAgIGVsc2UgaWYgKHByb3RvY29sW2ldID09IDB4NWMpCi0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiXFxcXCIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcXFxcIik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3Rv
Y29sW2ldKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXgg
MDZiNzE5NC4uOGRhYTY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApA
QCAtNjksNyArNjksNyBAQCBjb25zdCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
cjo6Y3JlYXRlSGVhZGVyVmFsdWUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBidWlsZGVyLmFwcGVuZChtX3Byb2Nlc3NvcnNbMF0tPmhhbmRzaGFrZVN0cmluZygpKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IG51bVByb2Nlc3NvcnM7ICsraSkgewotICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIs
ICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb2Nlc3NvcnNbaV0tPmhhbmRzaGFrZVN0
cmluZygpKTsKICAgICB9CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKQEAgLTc4LDE0
ICs3OCwxNCBAQCBjb25zdCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6Y3Jl
YXRlSGVhZGVyVmFsdWUoKSBjb25zdAogdm9pZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVy
OjphcHBlbmRBY2NlcHRlZEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRva2VuLCBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0ZW5zaW9uUGFyYW1ldGVycykKIHsKICAgICBpZiAo
IW1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci5pc0VtcHR5KCkpCi0gICAgICAgIG1fYWNjZXB0
ZWRFeHRlbnNpb25zQnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgICAgIG1fYWNjZXB0ZWRFeHRl
bnNpb25zQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1fYWNjZXB0ZWRFeHRlbnNp
b25zQnVpbGRlci5hcHBlbmQoZXh0ZW5zaW9uVG9rZW4pOwogICAgIC8vIEZJWE1FOiBTaG91bGQg
dXNlIExpc3RIYXNoU2V0IHRvIGtlZXAgdGhlIG9yZGVyIG9mIHRoZSBwYXJhbWV0ZXJzLgogICAg
IGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9yID0g
ZXh0ZW5zaW9uUGFyYW1ldGVycy5iZWdpbigpOyBpdGVyYXRvciAhPSBleHRlbnNpb25QYXJhbWV0
ZXJzLmVuZCgpOyArK2l0ZXJhdG9yKSB7Ci0gICAgICAgIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVp
bGRlci5hcHBlbmQoIjsgIik7CisgICAgICAgIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI7ICIpOwogICAgICAgICBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIu
YXBwZW5kKGl0ZXJhdG9yLT5rZXkpOwogICAgICAgICBpZiAoIWl0ZXJhdG9yLT52YWx1ZS5pc051
bGwoKSkgewotICAgICAgICAgICAgbV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLmFwcGVuZCgi
PSIpOworICAgICAgICAgICAgbV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLmFwcGVuZCgnPScp
OwogICAgICAgICAgICAgbV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLmFwcGVuZChpdGVyYXRv
ci0+dmFsdWUpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCAzM2ZkY2Jh
Li5jY2UzMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIFN0cmluZyBX
ZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uKCkgY29uc3QKIHsKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQobV9zZWN1cmUgPyAid3NzIiA6ICJ3
cyIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCI6Ly8iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIjovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGhvc3ROYW1lKG1fdXJsLCBtX3NlY3VyZSkp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKHJlc291cmNlTmFtZShtX3VybCkpOwogICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CkBAIC0xODMsOSArMTgzLDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRI
YW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgIC8vIEtlZXAgdGhl
IGZvbGxvd2luZyBjb25zaXN0ZW50IHdpdGggY2xpZW50SGFuZHNoYWtlUmVxdWVzdCgpLgogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIGJ1aWxkZXIuYXBwZW5kKCJHRVQgIik7Cisg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJHRVQgIik7CiAgICAgYnVpbGRlci5hcHBlbmQocmVz
b3VyY2VOYW1lKG1fdXJsKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBIVFRQLzEuMVxyXG4iKTsK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBIVFRQLzEuMVxyXG4iKTsKIAogICAgIFZlY3Rv
cjxTdHJpbmc+IGZpZWxkczsKICAgICBmaWVsZHMuYXBwZW5kKCJVcGdyYWRlOiB3ZWJzb2NrZXQi
KTsKQEAgLTIyNiwxMCArMjI2LDEwIEBAIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGll
bnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZmllbGRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGZpZWxkc1tpXSk7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcclxuIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXHJcbiIpOwogICAgIH0KIAotICAgIGJ1aWxkZXIuYXBwZW5kKCJcclxuIik7Cisg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcclxuIik7CiAKICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmNwcAppbmRleCAwODg3MjYwLi4zN2E4MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIGJvb2wgaGFz
RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyB0eXBlKQogc3RhdGljIFN0
cmluZyBidWlsZENzc1RleHQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OwotICAgIHJlc3VsdC5hcHBlbmQoImNhbGMiKTsKKyAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiY2FsYyIpOwogICAgIGJvb2wgZXhwcmVzc2lvbkhhc1NpbmdsZVRlcm0g
PSBleHByZXNzaW9uWzBdICE9ICcoJzsKICAgICBpZiAoZXhwcmVzc2lvbkhhc1NpbmdsZVRlcm0p
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJygnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNjI3M2UxYS4uN2JjZDM0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKQEAgLTEyNzgsNyArMTI3OCw3IEBAIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmNzc1RleHQoKSBjb25zdAogICAgICAgICBpZiAoaSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAnKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRQcm9wZXJ0eU5hbWUoY29t
cHV0ZWRQcm9wZXJ0aWVzW2ldKSk7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIjogIiwgMik7Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICByZXN1bHQuYXBwZW5k
KGdldFByb3BlcnR5VmFsdWUoY29tcHV0ZWRQcm9wZXJ0aWVzW2ldKSk7CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJzsnKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmluZGV4
IGEyYzA3ZDYuLjVlOTZlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC01
MSw3ICs1MSw3IEBAIE1lZGlhUXVlcnlTZXQqIENTU01lZGlhUnVsZTo6bWVkaWFRdWVyaWVzKCkg
Y29uc3QKIFN0cmluZyBDU1NNZWRpYVJ1bGU6OmNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OwotICAgIHJlc3VsdC5hcHBlbmQoIkBtZWRpYSAiKTsKKyAgICByZXN1
bHQuYXBwZW5kTGl0ZXJhbCgiQG1lZGlhICIpOwogICAgIGlmIChtZWRpYVF1ZXJpZXMoKSkgewog
ICAgICAgICByZXN1bHQuYXBwZW5kKG1lZGlhUXVlcmllcygpLT5tZWRpYVRleHQoKSk7CiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5j
cHAKaW5kZXggNjJhYTI3Ni4uMDM3NjQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
TGlzdC5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBTdHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxl
Y3RvcnNUZXh0KCkgY29uc3QKIAogICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHMgPSBmaXJz
dCgpOyBzOyBzID0gbmV4dChzKSkgewogICAgICAgICBpZiAocyAhPSBmaXJzdCgpKQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIsICIpOwogICAgICAgICByZXN1bHQuYXBwZW5kKHMtPnNlbGVjdG9yVGV4dCgpKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZmUyZmFkOS4u
YTY2ZmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDkg
KzUwLDkgQEAgU3RyaW5nIENTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKLSAgICByZXN1bHQuYXBwZW5kKCJAc3VwcG9ydHMgIik7
CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIkBzdXBwb3J0cyAiKTsKICAgICByZXN1bHQuYXBw
ZW5kKGNvbmRpdGlvblRleHQoKSk7Ci0gICAgcmVzdWx0LmFwcGVuZCgiIHtcbiIpOworICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIge1xuIik7CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJl
c3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5j
cHAKaW5kZXggYzZkZDUyYS4uOTNkODhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApA
QCAtNDEsMTAgKzQxLDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAog
ICAgIGlmICghbV9pZ25vcmVkKSB7CiAgICAgICAgIHN3aXRjaCAobV9yZXN0cmljdG9yKSB7CiAg
ICAgICAgIGNhc2UgTWVkaWFRdWVyeTo6T25seToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
Im9ubHkgIik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgib25seSAiKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vdDoKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoIm5vdCAiKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCJub3QgIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYVF1ZXJ5
OjpOb25lOgogICAgICAgICAgICAgYnJlYWs7CkBAIC01NywxNyArNTcsMTcgQEAgU3RyaW5nIE1l
ZGlhUXVlcnk6OnNlcmlhbGl6ZSgpIGNvbnN0CiAKICAgICAgICAgaWYgKG1fbWVkaWFUeXBlICE9
ICJhbGwiIHx8IG1fcmVzdHJpY3RvciAhPSBOb25lKSB7CiAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKG1fbWVkaWFUeXBlKTsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiBhbmQgIik7Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIGFuZCAiKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQobV9leHByZXNzaW9ucy0+YXQoMCktPnNlcmlhbGl6ZSgpKTsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX2V4cHJlc3Npb25zLT5zaXplKCk7ICsr
aSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiIGFuZCAiKTsKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIgYW5kICIpOwogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCht
X2V4cHJlc3Npb25zLT5hdChpKS0+c2VyaWFsaXplKCkpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKICAgICAgICAgLy8gSWYgcXVlcnkgaXMgaW52YWxpZCwgc2VyaWFsaXplZCB0ZXh0IHNob3Vs
ZCB0dXJuIGludG8gIm5vdCBhbGwiLgotICAgICAgICByZXN1bHQuYXBwZW5kKCJub3QgYWxsIik7
CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJub3QgYWxsIik7CiAgICAgfQogICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHAKaW5kZXggMTcyYjg1Yy4uMTdjZTNhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2
b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0ZVVuaXF1ZVByZWZpeChRdWFsaWZpZWROYW1l
JiBwcmVmaXhlZE5hbWUsIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGRv
IHsKICAgICAgICAgYnVpbGRlci5jbGVhcigpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiTlMi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJOUyIpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcigrK21fcHJlZml4TGV2ZWwpOwogICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CiAgICAgICAgIGlmICghbmFtZXNw
YWNlcy5nZXQobmFtZS5pbXBsKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXgg
ZDdlNDJmOS4uYWY3ZmY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtODU4LDEx
ICs4NTgsMTEgQEAgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UmIHJhbmdlKQog
U3RyaW5nIHVybFRvTWFya3VwKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQog
ewogICAgIFN0cmluZ0J1aWxkZXIgbWFya3VwOwotICAgIG1hcmt1cC5hcHBlbmQoIjxhIGhyZWY9
XCIiKTsKKyAgICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiPGEgaHJlZj1cIiIpOwogICAgIG1hcmt1
cC5hcHBlbmQodXJsLnN0cmluZygpKTsKLSAgICBtYXJrdXAuYXBwZW5kKCJcIj4iKTsKKyAgICBt
YXJrdXAuYXBwZW5kTGl0ZXJhbCgiXCI+Iik7CiAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhtYXJrdXAsIHRpdGxlLCAwLCB0aXRsZS5sZW5n
dGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsKLSAgICBtYXJrdXAuYXBwZW5kKCI8L2E+Iik7Cisg
ICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIjwvYT4iKTsKICAgICByZXR1cm4gbWFya3VwLnRvU3Ry
aW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3Bw
CmluZGV4IDQ1MDU3NTUuLjRkNzY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyTG9hZGVyLmNwcApAQCAtMzI2LDcgKzMyNiw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRl
cjo6Y29udmVydFRvVGV4dCgpCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmNvbnZlcnRUb0RhdGFV
UkwoKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZCgi
ZGF0YToiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImRhdGE6Iik7CiAKICAgICBpZiAo
IW1fYnl0ZXNMb2FkZWQpIHsKICAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7CkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0
VG9EYXRhVVJMKCkKICAgICB9CiAKICAgICBidWlsZGVyLmFwcGVuZChtX2RhdGFUeXBlKTsKLSAg
ICBidWlsZGVyLmFwcGVuZCgiO2Jhc2U2NCwiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IjtiYXNlNjQsIik7CiAKICAgICBWZWN0b3I8Y2hhcj4gb3V0OwogICAgIGJhc2U2NEVuY29kZSht
X3Jhd0RhdGEtPmRhdGEoKSwgbV9ieXRlc0xvYWRlZCwgb3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5jcHAKaW5kZXggYjAxMjA5YS4uNjhmMzVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBTdHJpbmcgRW1haWxJ
bnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25z
dAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaXBwZWRWYWx1ZTsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYWRkcmVzc2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChpID4gMCkKLSAg
ICAgICAgICAgIHN0cmlwcGVkVmFsdWUuYXBwZW5kKCIsIik7CisgICAgICAgICAgICBzdHJpcHBl
ZFZhbHVlLmFwcGVuZCgnLCcpOwogICAgICAgICBzdHJpcHBlZFZhbHVlLmFwcGVuZChzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYWRkcmVzc2VzW2ldKSk7CiAgICAgfQogICAgIHJl
dHVybiBzdHJpcHBlZFZhbHVlLnRvU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRy
b2xsZXIuY3BwCmluZGV4IDQ1MTAwZDEuLmI3ZGYyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9y
bUNvbnRyb2xsZXIuY3BwCkBAIC0zMDIsNyArMzAyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHJl
Y29yZEZvcm1TdHJ1Y3R1cmUoY29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtLCBTdHJpbmdCdWls
ZGUKICAgICAvLyAyIGlzIGVub3VnaCB0byBkaXN0aW5ndWlzaCBmb3JtcyBpbiB3ZWJraXQub3Jn
L2IvOTEyMDkjYzAKICAgICBjb25zdCBzaXplX3QgbmFtZWRDb250cm9sc1RvQmVSZWNvcmRlZCA9
IDI7CiAgICAgY29uc3QgVmVjdG9yPEZvcm1Bc3NvY2lhdGVkRWxlbWVudCo+JiBjb250cm9scyA9
IGZvcm0uYXNzb2NpYXRlZEVsZW1lbnRzKCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBbIik7Cisg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgWyIpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBu
YW1lZENvbnRyb2xzID0gMDsgaSA8IGNvbnRyb2xzLnNpemUoKSAmJiBuYW1lZENvbnRyb2xzIDwg
bmFtZWRDb250cm9sc1RvQmVSZWNvcmRlZDsgKytpKSB7CiAgICAgICAgIGlmICghY29udHJvbHNb
aV0tPmlzRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKQEAgLTMxNCw5ICszMTQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVjb3JkRm9ybVN0cnVj
dHVyZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0sIFN0cmluZ0J1aWxkZQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIG5hbWVkQ29udHJvbHMrKzsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQobmFtZSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgfQotICAgIGJ1aWxkZXIuYXBwZW5kKCJdIik7CisgICAgYnVp
bGRlci5hcHBlbmQoJ10nKTsKIH0KIAogc3RhdGljIGlubGluZSBTdHJpbmcgZm9ybVNpZ25hdHVy
ZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAppbmRleCA4MDRjMGU1Li5hMzJmYTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5j
cHAKQEAgLTUzLDIwICs1MywyMCBAQCBYU1NBdWRpdG9yRGVsZWdhdGU6OlhTU0F1ZGl0b3JEZWxl
Z2F0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNv
bGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogewogICAgIFN0cmluZ0J1aWxkZXIgbWVz
c2FnZTsKLSAgICBtZXNzYWdlLmFwcGVuZCgiVGhlIFhTUyBBdWRpdG9yICIpOworICAgIG1lc3Nh
Z2UuYXBwZW5kTGl0ZXJhbCgiVGhlIFhTUyBBdWRpdG9yICIpOwogICAgIG1lc3NhZ2UuYXBwZW5k
KHhzc0luZm8ubV9kaWRCbG9ja0VudGlyZVBhZ2UgPyAiYmxvY2tlZCBhY2Nlc3MgdG8iIDogInJl
ZnVzZWQgdG8gZXhlY3V0ZSBhIHNjcmlwdCBpbiIpOwotICAgIG1lc3NhZ2UuYXBwZW5kKCIgJyIp
OworICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiICciKTsKICAgICBtZXNzYWdlLmFwcGVuZCh4
c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwotICAgIG1lc3NhZ2UuYXBwZW5kKCInIGJlY2F1c2UgIik7
CisgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCInIGJlY2F1c2UgIik7CiAgICAgbWVzc2FnZS5h
cHBlbmQoeHNzSW5mby5tX2RpZEJsb2NrRW50aXJlUGFnZSA/ICJ0aGUgc291cmNlIGNvZGUgb2Yg
YSBzY3JpcHQiIDogIml0cyBzb3VyY2UgY29kZSIpOwotICAgIG1lc3NhZ2UuYXBwZW5kKCIgd2Fz
IGZvdW5kIHdpdGhpbiB0aGUgcmVxdWVzdC4iKTsKKyAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IiB3YXMgZm91bmQgd2l0aGluIHRoZSByZXF1ZXN0LiIpOwogCiAgICAgaWYgKHhzc0luZm8ubV9k
aWRTZW5kQ1NQSGVhZGVyKQotICAgICAgICBtZXNzYWdlLmFwcGVuZCgiIFRoZSBzZXJ2ZXIgc2Vu
dCBhICdDb250ZW50LVNlY3VyaXR5LVBvbGljeScgaGVhZGVyIHJlcXVlc3RpbmcgdGhpcyBiZWhh
dmlvci4iKTsKKyAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgVGhlIHNlcnZlciBzZW50
IGEgJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5JyBoZWFkZXIgcmVxdWVzdGluZyB0aGlzIGJlaGF2
aW9yLiIpOwogICAgIGVsc2UgaWYgKHhzc0luZm8ubV9kaWRTZW5kWFNTUHJvdGVjdGlvbkhlYWRl
cikKLSAgICAgICAgbWVzc2FnZS5hcHBlbmQoIiBUaGUgc2VydmVyIHNlbnQgYW4gJ1gtWFNTLVBy
b3RlY3Rpb24nIGhlYWRlciByZXF1ZXN0aW5nIHRoaXMgYmVoYXZpb3IuIik7CisgICAgICAgIG1l
c3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIFRoZSBzZXJ2ZXIgc2VudCBhbiAnWC1YU1MtUHJvdGVjdGlv
bicgaGVhZGVyIHJlcXVlc3RpbmcgdGhpcyBiZWhhdmlvci4iKTsKICAgICBlbHNlCi0gICAgICAg
IG1lc3NhZ2UuYXBwZW5kKCIgVGhlIGF1ZGl0b3Igd2FzIGVuYWJsZWQgYXMgdGhlIHNlcnZlciBz
ZW50IG5laXRoZXIgYW4gJ1gtWFNTLVByb3RlY3Rpb24nIG5vciAnQ29udGVudC1TZWN1cml0eS1Q
b2xpY3knIGhlYWRlci4iKTsKKyAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgVGhlIGF1
ZGl0b3Igd2FzIGVuYWJsZWQgYXMgdGhlIHNlcnZlciBzZW50IG5laXRoZXIgYW4gJ1gtWFNTLVBy
b3RlY3Rpb24nIG5vciAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knIGhlYWRlci4iKTsKIAogICAg
IHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5jcHAKaW5kZXggMjA2NTJlOC4uNjA3MTdhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtMzQ5LDcgKzM0OSw3IEBAIFdlYlZU
VFBhcnNlcjo6UGFyc2VTdGF0ZSBXZWJWVFRQYXJzZXI6OmNvbGxlY3RDdWVUZXh0KGNvbnN0IFN0
cmluZyYgbGluZSkKICAgICAgICAgcmV0dXJuIHJlY292ZXJDdWUobGluZSk7CiAgICAgfQogICAg
IGlmICghbV9jdXJyZW50Q29udGVudC5pc0VtcHR5KCkpCi0gICAgICAgIG1fY3VycmVudENvbnRl
bnQuYXBwZW5kKCJcbiIpOworICAgICAgICBtX2N1cnJlbnRDb250ZW50LmFwcGVuZCgnXG4nKTsK
ICAgICBtX2N1cnJlbnRDb250ZW50LmFwcGVuZChsaW5lKTsKIAogICAgIHJldHVybiBDdWVUZXh0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApp
bmRleCBkMmY5ZTRhLi5lNTc2MzA0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcApAQCAtMTI5LDE1ICsxMjksMTMgQEAgdm9pZCBNYXRoTUxN
ZW5jbG9zZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWQKIFN0cmluZyBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OmxvbmdEaXZMZWZ0UGFk
ZGluZygpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBwYWRkaW5nOwotICAgIGZsb2F0IGZv
bnRTaXplID0gMDsKICAgICBTdHJpbmcgY2xvc2luZ0JyYWNlID0gIikiOwogICAgIFRleHRSdW4g
cnVuKGNsb3NpbmdCcmFjZS5pbXBsKCksIGNsb3NpbmdCcmFjZS5sZW5ndGgoKSk7CiAgICAgTm9k
ZSogbm9kZSA9IHBhcmVudE5vZGUoKTsKICAgICBpZiAobm9kZSAmJiBub2RlLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgp
LmZvbnQoKTsKLSAgICAgICAgZm9udFNpemUgPSBmb250LndpZHRoKHJ1bik7Ci0gICAgICAgIHBh
ZGRpbmcuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGZvbnRTaXplKSk7Ci0gICAgICAgIHBhZGRpbmcu
YXBwZW5kKCJweCIpOworICAgICAgICBwYWRkaW5nLmFwcGVuZE51bWJlcihmb250LndpZHRoKHJ1
bikpOworICAgICAgICBwYWRkaW5nLmFwcGVuZExpdGVyYWwoInB4Iik7CiAgICAgfQogICAgIHJl
dHVybiBwYWRkaW5nLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwCmluZGV4IGM4MDI1OWMuLjJjOWQwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNl
cmlhbGl6ZXIuY3BwCkBAIC0xMzYsOSArMTM2LDkgQEAgdm9pZCBTZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW4K
ICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQob3V0LCBlbGVtZW50LCBu
YW1lc3BhY2VzKTsKIAogICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpoZWFk
VGFnKSkgewotICAgICAgICBvdXQuYXBwZW5kKCI8bWV0YSBjaGFyc2V0PVwiIik7CisgICAgICAg
IG91dC5hcHBlbmRMaXRlcmFsKCI8bWV0YSBjaGFyc2V0PVwiIik7CiAgICAgICAgIG91dC5hcHBl
bmQobV9kb2N1bWVudC5jaGFyc2V0KCkpOwotICAgICAgICBvdXQuYXBwZW5kKCJcIj4iKTsKKyAg
ICAgICAgb3V0LmFwcGVuZExpdGVyYWwoIlwiPiIpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBG
b3Igb2JqZWN0IChwbHVnaW5zKSB0YWdzIGFuZCB2aWRlbyB0YWcgd2UgY291bGQgcmVwbGFjZSB0
aGVtIGJ5IGFuIGltYWdlIG9mIHRoZWlyIGN1cnJlbnQgY29udGVudHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGYzYTliZjIuLjliMDhlNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC00NzcsNyArNDc3LDcgQEAgU3RyaW5nIFNl
Y3VyaXR5T3JpZ2luOjp0b1Jhd1N0cmluZygpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciByZXN1
bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eShtX3Byb3RvY29sLmxlbmd0aCgpICsgbV9o
b3N0Lmxlbmd0aCgpICsgMTApOwogICAgIHJlc3VsdC5hcHBlbmQobV9wcm90b2NvbCk7Ci0gICAg
cmVzdWx0LmFwcGVuZCgiOi8vIik7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjovLyIpOwog
ICAgIHJlc3VsdC5hcHBlbmQobV9ob3N0KTsKIAogICAgIGlmIChtX3BvcnQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cAppbmRleCA2MWU3YmY5Li5iZDFkNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zOTUsMTUgKzM5NSwx
NSBAQCBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29uc0FzVGV4dChTeW5jaHJvbm91c1Njcm9sbAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVp
bGRlcjsKIAogICAgIGlmIChyZWFzb25zICYgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OkZvcmNlZE9u
TWFpblRocmVhZCkKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIkZvcmNlZCBvbiBtYWlu
IHRocmVhZCwgIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRm9yY2Vk
IG9uIG1haW4gdGhyZWFkLCAiKTsKICAgICBpZiAocmVhc29ucyAmIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpIYXNTbG93UmVwYWludE9iamVjdHMpCi0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCJIYXMgc2xvdyByZXBhaW50IG9iamVjdHMsICIpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIkhhcyBzbG93IHJlcGFpbnQgb2JqZWN0cywgIik7CiAgICAgaWYgKHJlYXNv
bnMgJiBTY3JvbGxpbmdDb29yZGluYXRvcjo6SGFzVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHNX
aXRob3V0U3VwcG9ydGluZ0ZpeGVkTGF5ZXJzKQotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgiSGFzIHZpZXdwb3J0IGNvbnN0cmFpbmVkIG9iamVjdHMgd2l0aG91dCBzdXBwb3J0aW5nIGZp
eGVkIGxheWVycywgIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiSGFz
IHZpZXdwb3J0IGNvbnN0cmFpbmVkIG9iamVjdHMgd2l0aG91dCBzdXBwb3J0aW5nIGZpeGVkIGxh
eWVycywgIik7CiAgICAgaWYgKHJlYXNvbnMgJiBTY3JvbGxpbmdDb29yZGluYXRvcjo6SGFzTm9u
TGF5ZXJWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykKLSAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoIkhhcyBub24tbGF5ZXIgdmlld3BvcnQtY29uc3RyYWluZWQgb2JqZWN0cywgIik7Cisg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiSGFzIG5vbi1sYXllciB2aWV3cG9y
dC1jb25zdHJhaW5lZCBvYmplY3RzLCAiKTsKICAgICBpZiAocmVhc29ucyAmIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpJc0ltYWdlRG9jdW1lbnQpCi0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCJJcyBpbWFnZSBkb2N1bWVudCwgIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiSXMgaW1hZ2UgZG9jdW1lbnQsICIpOwogCiAgICAgaWYgKHN0cmluZ0J1aWxkZXIubGVu
Z3RoKCkpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIucmVzaXplKHN0cmluZ0J1aWxkZXIubGVuZ3Ro
KCkgLSAyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5k
ZXggZTU0YmQzYi4uNzU0MjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW0KQEAgLTUxNywxNSArNTE3LDE1IEBAIHN0YXRpYyB2b2lkIGxvZ1RocmVhZGVk
U2Nyb2xsaW5nTW9kZSh1bnNpZ25lZCBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgcmVhc29uc0Rlc2NyaXB0aW9uOwogCiAgICAgICAgIGlmIChzeW5j
aHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgJiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Rm9yY2VkT25N
YWluVGhyZWFkKQotICAgICAgICAgICAgcmVhc29uc0Rlc2NyaXB0aW9uLmFwcGVuZCgiZm9yY2Vk
LCIpOworICAgICAgICAgICAgcmVhc29uc0Rlc2NyaXB0aW9uLmFwcGVuZExpdGVyYWwoImZvcmNl
ZCwiKTsKICAgICAgICAgaWYgKHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyAmIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpIYXNTbG93UmVwYWludE9iamVjdHMpCi0gICAgICAgICAgICByZWFzb25z
RGVzY3JpcHRpb24uYXBwZW5kKCJzbG93LXJlcGFpbnQgb2JqZWN0cywiKTsKKyAgICAgICAgICAg
IHJlYXNvbnNEZXNjcmlwdGlvbi5hcHBlbmRMaXRlcmFsKCJzbG93LXJlcGFpbnQgb2JqZWN0cywi
KTsKICAgICAgICAgaWYgKHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyAmIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpIYXNWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c1dpdGhvdXRTdXBwb3J0aW5n
Rml4ZWRMYXllcnMpCi0gICAgICAgICAgICByZWFzb25zRGVzY3JpcHRpb24uYXBwZW5kKCJ2aWV3
cG9ydC1jb25zdHJhaW5lZCBvYmplY3RzLCIpOworICAgICAgICAgICAgcmVhc29uc0Rlc2NyaXB0
aW9uLmFwcGVuZExpdGVyYWwoInZpZXdwb3J0LWNvbnN0cmFpbmVkIG9iamVjdHMsIik7CiAgICAg
ICAgIGlmIChzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgJiBTY3JvbGxpbmdDb29yZGluYXRv
cjo6SGFzTm9uTGF5ZXJWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykKLSAgICAgICAgICAgIHJl
YXNvbnNEZXNjcmlwdGlvbi5hcHBlbmQoIm5vbi1sYXllciB2aWV3cG9ydC1jb25zdHJhaW5lZCBv
YmplY3RzLCIpOworICAgICAgICAgICAgcmVhc29uc0Rlc2NyaXB0aW9uLmFwcGVuZExpdGVyYWwo
Im5vbi1sYXllciB2aWV3cG9ydC1jb25zdHJhaW5lZCBvYmplY3RzLCIpOwogICAgICAgICBpZiAo
c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zICYgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OklzSW1h
Z2VEb2N1bWVudCkKLSAgICAgICAgICAgIHJlYXNvbnNEZXNjcmlwdGlvbi5hcHBlbmQoImltYWdl
IGRvY3VtZW50LCIpOworICAgICAgICAgICAgcmVhc29uc0Rlc2NyaXB0aW9uLmFwcGVuZExpdGVy
YWwoImltYWdlIGRvY3VtZW50LCIpOwogCiAgICAgICAgIC8vIFN0cmlwIHRoZSB0cmFpbGluZyBj
b21tYS4KICAgICAgICAgU3RyaW5nIHJlYXNvbnNEZXNjcmlwdGlvblRyaW1tZWQgPSByZWFzb25z
RGVzY3JpcHRpb24udG9TdHJpbmcoKS5sZWZ0KHJlYXNvbnNEZXNjcmlwdGlvbi5sZW5ndGgoKSAt
IDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKaW5kZXggNWEyODgyNC4uMDhi
ZTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xNDQsNyArMTQ0
LDcgQEAgcHVibGljOgogICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFVzZXJE
YXRhPjo6c3RyaW5nKGRhdGEoKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCBtYXhIaWdo
PSIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobWF4
SGlnaCgpKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJdIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCddJyk7CiAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1Ry
ZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCmluZGV4IDQ4
NGY0M2EuLjA3NGQ5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJl
ZEJsYWNrVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJl
ZS5oCkBAIC03OTIsMTAgKzc5MiwxMCBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudGF0aW9u
OyBpKyspCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiICIpOwotICAgICAgICBidWlsZGVy
LmFwcGVuZCgiLSIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJy0nKTsKICAgICAgICAgaWYgKG5vZGUpIHsKLSAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIgIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG5vZGUtPmRh
dGEoKSkpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoKG5vZGUtPmNvbG9yKCkgPT0gQmxh
Y2spID8gIiAoYmxhY2spIiA6ICIgKHJlZCkiKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9V
VUlELmNwcAppbmRleCA0YTk1M2RjLi5hNmFhZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VVUlELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNw
cApAQCAtNDYsMTQgKzQ2LDE0IEBAIFN0cmluZyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MzYpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9tRGF0YVswXSwgYnVp
bGRlciwgOCwgTG93ZXJjYXNlKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiLSIpOworICAgIGJ1aWxk
ZXIuYXBwZW5kKCctJyk7CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21E
YXRhWzFdID4+IDE2LCBidWlsZGVyLCA0LCBMb3dlcmNhc2UpOwotICAgIGJ1aWxkZXIuYXBwZW5k
KCItNCIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTQiKTsKICAgICBhcHBlbmRVbnNp
Z25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbMV0gJiAweDAwMDAwZmZmLCBidWlsZGVyLCAz
LCBMb3dlcmNhc2UpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCItIik7CisgICAgYnVpbGRlci5hcHBl
bmQoJy0nKTsKICAgICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKChyYW5kb21EYXRhWzJd
ID4+IDMwKSB8IDB4OCwgYnVpbGRlciwgMSwgTG93ZXJjYXNlKTsKICAgICBhcHBlbmRVbnNpZ25l
ZEFzSGV4Rml4ZWRTaXplKChyYW5kb21EYXRhWzJdID4+IDE2KSAmIDB4MDAwMDBmZmYsIGJ1aWxk
ZXIsIDMsIExvd2VyY2FzZSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIi0iKTsKKyAgICBidWlsZGVy
LmFwcGVuZCgnLScpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9tRGF0
YVsyXSAmIDB4MDAwMGZmZmYsIGJ1aWxkZXIsIDQsIExvd2VyY2FzZSk7CiAgICAgYXBwZW5kVW5z
aWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21EYXRhWzNdLCBidWlsZGVyLCA4LCBMb3dlcmNhc2Up
OwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwCmluZGV4IDA3YzkwY2IuLmM2ZDY3YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwCkBA
IC0zNCwxNCArMzQsMTQgQEAgc3RhdGljIHZvaWQgYXBwZW5kUHJveHlTZXJ2ZXJTdHJpbmcoU3Ry
aW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgUHJveHlTZXJ2ZXImIHAKIHsKICAgICBzd2l0Y2gg
KHByb3h5U2VydmVyLnR5cGUoKSkgewogICAgIGNhc2UgUHJveHlTZXJ2ZXI6OkRpcmVjdDoKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIkRJUkVDVCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIkRJUkVDVCIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBQcm94eVNlcnZlcjo6
SFRUUDoKICAgICBjYXNlIFByb3h5U2VydmVyOjpIVFRQUzoKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoIlBST1hZIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiUFJPWFkiKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcm94eVNlcnZlcjo6U09DS1M6Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJTT0NLUyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNPQ0tT
Iik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKQEAgLTYzLDcgKzYzLDcgQEAgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVycykKICAgICBT
dHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBw
cm94eVNlcnZlcnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKGkpCi0gICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgiOyAiKTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiOyAiKTsKIAogICAgICAgICBhcHBlbmRQcm94eVNlcnZlclN0cmluZyhzdHJp
bmdCdWlsZGVyLCBwcm94eVNlcnZlcnNbaV0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYmNiZTFkNS4uYjc1OTk0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAK
QEAgLTI1Nyw5ICsyNTcsOSBAQCB2b2lkIERhdGVUaW1lRm9ybWF0OjpxdW90ZUFuZEFwcGVuZExp
dGVyYWwoY29uc3QgU3RyaW5nJiBsaXRlcmFsLCBTdHJpbmdCdWlsZGVyJgogICAgIH0KICAgICAK
ICAgICBpZiAobGl0ZXJhbC5maW5kKCdcJycpID09IG5vdEZvdW5kKSB7Ci0gICAgICAgIGJ1ZmZl
ci5hcHBlbmQoIiciKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgnXCcnKTsKICAgICAgICAgYnVm
ZmVyLmFwcGVuZChsaXRlcmFsKTsKLSAgICAgICAgYnVmZmVyLmFwcGVuZCgiJyIpOworICAgICAg
ICBidWZmZXIuYXBwZW5kKCdcJycpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNjgs
MTAgKzI2OCwxMCBAQCB2b2lkIERhdGVUaW1lRm9ybWF0OjpxdW90ZUFuZEFwcGVuZExpdGVyYWwo
Y29uc3QgU3RyaW5nJiBsaXRlcmFsLCBTdHJpbmdCdWlsZGVyJgogICAgICAgICAgICAgYnVmZmVy
LmFwcGVuZCgiJyciKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBTdHJpbmcgZXNjYXBl
ZCA9IGxpdGVyYWwuc3Vic3RyaW5nKGkpOwotICAgICAgICAgICAgZXNjYXBlZC5yZXBsYWNlKEFT
Q0lJTGl0ZXJhbCgiJyIpLCBBU0NJSUxpdGVyYWwoIicnIikpOwotICAgICAgICAgICAgYnVmZmVy
LmFwcGVuZCgiJyIpOworICAgICAgICAgICAgZXNjYXBlZC5yZXBsYWNlKCdcJycsICInJyIpOwor
ICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXCcnKTsKICAgICAgICAgICAgIGJ1ZmZlci5hcHBl
bmQoZXNjYXBlZCk7Ci0gICAgICAgICAgICBidWZmZXIuYXBwZW5kKCInIik7CisgICAgICAgICAg
ICBidWZmZXIuYXBwZW5kKCdcJycpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxv
Y2FsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNw
cAppbmRleCA1Yjc1OTgxLi5jNTExNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcApAQCAtODEsNyArODEsNyBAQCBTdHJpbmcgRGF0ZVRp
bWVTdHJpbmdCdWlsZGVyOjp6ZXJvUGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXpl
X3Qgd2lkdGgpCiAgICAgU3RyaW5nQnVpbGRlciB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlcjsKICAg
ICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkod2lkdGgpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSBzdHJpbmcubGVuZ3RoKCk7IGkgPCB3aWR0aDsgKytpKQotICAgICAgICB6
ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoIjAiKTsKKyAgICAgICAgemVyb1BhZGRlZFN0
cmluZ0J1aWxkZXIuYXBwZW5kKCcwJyk7CiAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHN0cmluZyk7CiAgICAgcmV0dXJuIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCk7CiB9CkBAIC0zMTEsNyArMzExLDcgQEAgU3RyaW5nIExvY2FsZTo6Y29udmVydEZyb21Mb2Nh
bGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWQpCiAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGlucHV0Lmxlbmd0aCgpKTsKICAg
ICBpZiAoaXNOZWdhdGl2ZSkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIi0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJy0nKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydEluZGV4OyBp
IDwgZW5kSW5kZXg7KSB7CiAgICAgICAgIHVuc2lnbmVkIHN5bWJvbEluZGV4ID0gbWF0Y2hlZERl
Y2ltYWxTeW1ib2xJbmRleChpbnB1dCwgaSk7CiAgICAgICAgIGlmIChzeW1ib2xJbmRleCA+PSBE
ZWNpbWFsU3ltYm9sc1NpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0U3Ry
ZWFtLmNwcAppbmRleCAxMjM4NTA2Li5hMDM1MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dFN0cmVhbS5jcHAKQEAgLTkxLDEzICs5MSwxMyBAQCBUZXh0U3RyZWFtJiBU
ZXh0U3RyZWFtOjpvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcgbG9uZyBpKQogCiBUZXh0U3RyZWFt
JiBUZXh0U3RyZWFtOjpvcGVyYXRvcjw8KGZsb2F0IGYpCiB7Ci0gICAgbV90ZXh0LmFwcGVuZChT
dHJpbmc6Om51bWJlclRvU3RyaW5nRml4ZWRXaWR0aChmLCAyKSk7CisgICAgbV90ZXh0LmFwcGVu
ZEZpeGVkV2lkdGhOdW1iZXIoZiwgMik7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCiBUZXh0U3Ry
ZWFtJiBUZXh0U3RyZWFtOjpvcGVyYXRvcjw8KGRvdWJsZSBkKQogewotICAgIG1fdGV4dC5hcHBl
bmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0ZpeGVkV2lkdGgoZCwgMikpOworICAgIG1fdGV4dC5h
cHBlbmRGaXhlZFdpZHRoTnVtYmVyKGQsIDIpOwogICAgIHJldHVybiAqdGhpczsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDhhOTA1
NjMuLmFiMjlhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAKQEAgLTY0NCw3ICs2NDQsNyBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RT
dHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgewotICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCItMCIpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiLTAiKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigtdmFsdWUpOyAv
LyAtMDEgdG8gLTA5CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZjA2NWNkMS4uYWM5NmY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTIxMywyNSArMTIxMywyNSBAQCBTdHJp
bmcgSW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YShEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1
ZSkKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNGdW5jdGlvbkV4ZWN1dGFibGUoKSkgewogICAgICAg
ICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmNFeGVjdXRhYmxlID0gcmVpbnRlcnByZXRfY2FzdDxG
dW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKICAgICAgICAgU3RyaW5nIGluZmVycmVk
TmFtZSA9IGZ1bmNFeGVjdXRhYmxlLT5pbmZlcnJlZE5hbWUoKS5zdHJpbmcoKTsKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiZnVuY3Rpb24gXCIiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVy
YWwoImZ1bmN0aW9uIFwiIik7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoaW5mZXJyZWROYW1lKTsK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiXCIiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnIicp
OwogICAgIH0gZWxzZSBpZiAoZXhlY3V0YWJsZS0+aXNFdmFsRXhlY3V0YWJsZSgpKQotICAgICAg
ICByZXN1bHQuYXBwZW5kKCJldmFsIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJl
dmFsIik7CiAgICAgZWxzZSB7CiAgICAgICAgIEFTU0VSVChleGVjdXRhYmxlLT5pc1Byb2dyYW1F
eGVjdXRhYmxlKCkpOwotICAgICAgICByZXN1bHQuYXBwZW5kKCJwcm9ncmFtIik7CisgICAgICAg
IHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJwcm9ncmFtIik7CiAgICAgfQogCi0gICAgcmVzdWx0LmFw
cGVuZCgiIHsgIik7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB7ICIpOwogICAgIHJlc3Vs
dC5hcHBlbmROdW1iZXIoc3RhcnRMaW5lKTsKLSAgICByZXN1bHQuYXBwZW5kKCI6Iik7CisgICAg
cmVzdWx0LmFwcGVuZCgnOicpOwogICAgIHJlc3VsdC5hcHBlbmROdW1iZXIoc3RhcnRDb2x1bW4p
OwotICAgIHJlc3VsdC5hcHBlbmQoIiAtICIpOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIg
LSAiKTsKICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKGVuZExpbmUpOwotICAgIHJlc3VsdC5hcHBl
bmQoIjoiKTsKKyAgICByZXN1bHQuYXBwZW5kKCc6Jyk7CiAgICAgcmVzdWx0LmFwcGVuZE51bWJl
cihlbmRDb2x1bW4pOwotICAgIHJlc3VsdC5hcHBlbmQoIiB9Iik7CisgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoIiB9Iik7CiAKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CkBAIC0x
OTk2LDIyICsxOTk2LDIyIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZv
KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIEN1cnNvciBjdXJzb3IgPSBkb2N1bWVudC0+ZnJhbWUo
KS0+ZXZlbnRIYW5kbGVyKCkuY3VycmVudE1vdXNlQ3Vyc29yKCk7CiAKICAgICBTdHJpbmdCdWls
ZGVyIHJlc3VsdDsKLSAgICByZXN1bHQuYXBwZW5kKCJ0eXBlPSIpOworICAgIHJlc3VsdC5hcHBl
bmRMaXRlcmFsKCJ0eXBlPSIpOwogICAgIHJlc3VsdC5hcHBlbmQoY3Vyc29yVHlwZVRvU3RyaW5n
KGN1cnNvci50eXBlKCkpKTsKLSAgICByZXN1bHQuYXBwZW5kKCIgaG90U3BvdD0iKTsKKyAgICBy
ZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIGhvdFNwb3Q9Iik7CiAgICAgcmVzdWx0LmFwcGVuZE51bWJl
cihjdXJzb3IuaG90U3BvdCgpLngoKSk7Ci0gICAgcmVzdWx0LmFwcGVuZCgiLCIpOworICAgIHJl
c3VsdC5hcHBlbmQoJywnKTsKICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKGN1cnNvci5ob3RTcG90
KCkueSgpKTsKICAgICBpZiAoY3Vyc29yLmltYWdlKCkpIHsKICAgICAgICAgRmxvYXRTaXplIHNp
emUgPSBjdXJzb3IuaW1hZ2UoKS0+c2l6ZSgpOwotICAgICAgICByZXN1bHQuYXBwZW5kKCIgaW1h
Z2U9Iik7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgaW1hZ2U9Iik7CiAgICAgICAg
IHJlc3VsdC5hcHBlbmROdW1iZXIoc2l6ZS53aWR0aCgpKTsKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgieCIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCd4Jyk7CiAgICAgICAgIHJlc3VsdC5hcHBl
bmROdW1iZXIoc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1Jf
U0NBTEUpCiAgICAgaWYgKGN1cnNvci5pbWFnZVNjYWxlRmFjdG9yKCkgIT0gMSkgewotICAgICAg
ICByZXN1bHQuYXBwZW5kKCIgc2NhbGU9Iik7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCIgc2NhbGU9Iik7CiAgICAgICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGN1cnNvci5pbWFn
ZVNjYWxlRmFjdG9yKCksIDgsIGJ1ZmZlciwgdHJ1ZSkpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>