<?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>130561</bug_id>
          
          <creation_ts>2014-03-20 21:24:51 -0700</creation_ts>
          <short_desc>Improve idiom used for string building in a few places</short_desc>
          <delta_ts>2014-03-21 00:14:29 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992896</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 21:24:51 -0700</bug_when>
    <thetext>Improve idiom used for string building in a few places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992897</commentid>
    <comment_count>1</comment_count>
      <attachid>227381</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-20 21:29:42 -0700</bug_when>
    <thetext>Created attachment 227381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992927</commentid>
    <comment_count>2</comment_count>
      <attachid>227381</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-20 23:21:03 -0700</bug_when>
    <thetext>Comment on attachment 227381
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:15
&gt; +        * html/FTPDirectoryDocument.cpp:

This is still a thing, eh?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992945</commentid>
    <comment_count>3</comment_count>
      <attachid>227381</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 00:14:27 -0700</bug_when>
    <thetext>Comment on attachment 227381
Patch

Clearing flags on attachment: 227381

Committed r166047: &lt;http://trac.webkit.org/changeset/166047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992946</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 00:14:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227381</attachid>
            <date>2014-03-20 21:29:42 -0700</date>
            <delta_ts>2014-03-21 00:14:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130561-20140320212930.patch</filename>
            <type>text/plain</type>
            <size>28741</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRlMDhmOTg5MTFhNjc1
N2VjYzFjZjQ2M2UwOWQwNTU3ZjdkN2VkMS4uNzI2MTRjZjE3OTkyYmZjZGU2NDVkMWNlNWZlN2Yz
NjdiMzE5MTExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTAzLTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGlkaW9tIHVzZWQg
Zm9yIHN0cmluZyBidWlsZGluZyBpbiBhIGZldyBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDU2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKTogVXNl
IGEgU3RyaW5nQnVpbGRlciwgYW5kIGdldCByaWQgb2YKKyAgICAgICAgYW4gYW4gdW5uZWNlc3Nh
cnkgYWRkaXRpb25hbCBzdHJpbmcgYWxsb2NhdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKTogVXNlIFN0cmluZ0J1aWxkZXIu
CisKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKTog
RG8gYSBtb3JlIGVmZmljaWVudAorICAgICAgICBzdHJpbmcgY29uY2F0ZW5hdGlvbi4KKyAgICAg
ICAgKiBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlk
YXRpb25NZXNzYWdlOjp1cGRhdGVWYWxpZGF0aW9uTWVzc2FnZSk6IERpdHRvLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
QXBwbGljYXRpb25DYWNoZVJlc291cmNlKToKKyAgICAgICAgVXNlIGEgU3RyaW5nQnVpbGRlci4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDogCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kVmFsdWUpOiBVc2UgYSBTdHJpbmdC
dWlsZGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6Omluc2VydFBy
b3BlcnR5KTogVXNlIGEgbW9yZSBlZmZpY2llbnQgaWRpb20KKyAgICAgICAgZm9yIHN0cmluZyBj
b25jYXRlbmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9y
OjppbnRlcm5hbFJlcGxhY2VQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9Gb3Jt
U3VibWlzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRNYWlsdG9Qb3N0Rm9ybURh
dGFUb1VSTCk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZWdFeHBGb3JMYWJlbHMpOiBVc2UgYSBTdHJpbmdCdWlsZGVyLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1By
aXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMpOiBVc2UgYSBtb3JlIGVmZmljaWVudAorICAgICAgICBp
ZGlvbSBmb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFuZ2xlZEluZm9Mb2cpOiBVc2UgYSBT
dHJpbmdCdWlsZGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVIZWFkZXI6OnBhcnNlSGVhZGVyKTogVXNlIGEgbW9y
ZSBlZmZpY2llbnQgaWRpb20gZm9yIHN0cmluZworICAgICAgICBjb25jYXRlbmF0aW9uLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmFkZEhUVFBIZWFkZXJGaWVsZCk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOiBE
aXR0by4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHQ6OnNlY3VyZVRleHQpOiBDcmVhdGUgYSBuZXcgc3RyaW5nIHdpdGgg
dGhlIHN1YnN0cmluZworICAgICAgICBmdW5jdGlvbiByYXRoZXIgdGhhbiB3aXRoIHRoZSBhcHBl
bmQgZnVuY3Rpb24uCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXJJbnRlcm5hbCk6IFVz
ZSBhIG1vcmUgZWZmaWNpZW50IGlkaW9tCisgICAgICAgIGZvciBzdHJpbmcgY29uY2F0ZW5hdGlv
bi4KKwogMjAxNC0wMy0yMCAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDA4NTgxMzk5ZmI5MmYwM2YyNGVmODk0N2Y4MGI2Mjc4MjEyNjAz
M2UuLjhiNWJhZWZiMzgxMjRlZGQ5YzFhYmEzYTU1MmY5YWY0MjRmMjFlMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBpZGlvbSB1c2VkIGZvciBzdHJpbmcgYnVpbGRp
bmcgaW4gYSBmZXcgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzA1NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAo
cmVnRXhwRm9yTGFiZWxzKTogVXNlIFN0cmluZ0J1aWxkZXIuCisKIDIwMTQtMDMtMjAgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMTFkOTBiMWJlMjZhYzYwNTNlYjEyZmVmN2NlYjZmMDBhOGEyOTQxOC4uNjYy
Y2QzNWU4NTg2MmQ3ZjdjOTk3NDkxM2VkYTc3NzUxNDQ4OWM5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE0LTAzLTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXByb3ZlIGlkaW9tIHVzZWQgZm9yIHN0cmluZyBidWlsZGluZyBpbiBhIGZldyBw
bGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MDU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJv
Y2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOiBVc2UgYSBtb3JlIGVmZmljaWVudCBpZGlvbSBmb3Ig
c3RyaW5nCisgICAgICAgIGNvbmNhdGVuYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
Y3JlYXRlSW5zcGVjdG9yUGFnZSk6IFVzZSBhIFN0cmluZ0J1aWxkZXIuCisKIDIwMTQtMDMtMjAg
IEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgdG8g
dXNpbmcgc3RkOjp1bmlxdWVfcHRyIGZvciBFRkwgb2JqZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggYmJhNDRkYjA0YmY3NzA4
NjkyNTU2N2I4YmQzZjM0NThmZjRhYTlkYy4uNzk2MWNjZTllZGYxMzVjMGFjNjA5NjJkODczMzVm
Y2Y5MzJlZjc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5RGF0YS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIAogI2luY2x1ZGUgIktleWVkQ29kaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI2MCwxNyArMjYxLDE4IEBA
IFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJu
ICI8aW52YWxpZD4iOwogICAgIGNhc2UgSURCS2V5OjpBcnJheVR5cGU6CiAgICAgICAgIHsKLSAg
ICAgICAgICAgIFN0cmluZyByZXN1bHQgPSAiPGFycmF5PiAtIHsgIjsKKyAgICAgICAgICAgIFN0
cmluZ0J1aWxkZXIgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjxh
cnJheT4gLSB7ICIpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheVZh
bHVlLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcnJheVZh
bHVlW2ldLmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgICAgICAgICAgICAgaWYgKGkgPCBhcnJheVZh
bHVlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiwgIik7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgfSIpOwotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKICAgICAgICAgfQogICAgIGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCI8c3RyaW5nPiAtICIpICsgc3RyaW5nVmFsdWU7CisgICAgICAgIHJldHVybiAi
PHN0cmluZz4gLSAiICsgc3RyaW5nVmFsdWU7CiAgICAgY2FzZSBJREJLZXk6OkRhdGVUeXBlOgog
ICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIkRhdGUgdHlwZSAtICVmIiwgbnVtYmVyVmFs
dWUpOwogICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5jcHAKaW5kZXggOWZmZGY1ZTA2OTcyYjQ2MjhkMDRmOTZhMjY5OGQzNWY0MTJiYTg0NS4u
NTU0MWMzZTQxYzViNTE4MWRhNTE5ZDdkN2Q4OWY3OGZkZjI0ZjdmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCkBAIC00NCw3ICs0NCw3IEBACiAjaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCIKICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01OCw5ICs1OCwxMCBAQCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsPiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKFNjcmlwdAogICAgIGlm
IChjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKICAgICAgICAgV29ya2VyR2xvYmFs
U2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlID0gdG9Xb3JrZXJHbG9iYWxTY29wZShjb250ZXh0KTsK
ICAgICAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtlckdsb2JhbFNjb3BlLT50aHJl
YWQoKS5ydW5Mb29wKCk7Ci0gICAgICAgIFN0cmluZyBtb2RlID0gd2ViU29ja2V0Q2hhbm5lbE1v
ZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHJ1bkxvb3AuY3JlYXRlVW5p
cXVlSWQoKSkpOwotICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCBtb2RlKTsKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBtb2RlOworICAgICAgICBtb2RlLmFwcGVuZExpdGVyYWwod2ViU29ja2V0Q2hh
bm5lbE1vZGUpOworICAgICAgICBtb2RlLmFwcGVuZE51bWJlcihydW5Mb29wLmNyZWF0ZVVuaXF1
ZUlkKCkpOworICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCBtb2RlLnRvU3RyaW5nKCkpOwogICAg
IH0KIAogICAgIHJldHVybiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUodG9Eb2N1bWVudChjb250
ZXh0KSwgY2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0
b3J5RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5jcHAKaW5kZXggMzE0ZmNkNzFkOGIyMzMzN2YxZmIyMDExZTM4MDUxM2M4NDg4ODIxYi4uMzVl
MzJkMzgxNGUwN2MwYTFhZjYzMTEwMjA4MWY0ZTcyOGE5YzczZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEzNiw5ICsxMzYsOSBAQCBQYXNz
UmVmUHRyPEVsZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZp
bGVuYW1lKGNvbnN0IFN0cmluZwogewogICAgIFN0cmluZyBmdWxsVVJMID0gZG9jdW1lbnQoKS0+
YmFzZVVSTCgpLnN0cmluZygpOwogICAgIGlmIChmdWxsVVJMLmVuZHNXaXRoKCcvJykpCi0gICAg
ICAgIGZ1bGxVUkwuYXBwZW5kKGZpbGVuYW1lKTsKKyAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwg
KyBmaWxlbmFtZTsKICAgICBlbHNlCi0gICAgICAgIGZ1bGxVUkwuYXBwZW5kKG1ha2VTdHJpbmco
Jy8nLCBmaWxlbmFtZSkpOworICAgICAgICBmdWxsVVJMID0gZnVsbFVSTCArICcvJyArIGZpbGVu
YW1lOwogCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNob3JFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IGUwMGIxOTU0NGRkMWRjN2ZlYzZlOWM4MzkwOGRhYzMz
NmM5NzU2MjQuLjkyMWQxYjRkM2RkNGQ0MzhhYTQ2NmU1ZDIyMDc1YTdmYjU1YTBiZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC04NywxMCArODcsMTAg
QEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6dXBkYXRlVmFsaWRhdGlvbk1lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogICAgICAgICAvLyBIVE1MNSBzcGVjaWZpY2F0aW9uIGRvZXNuJ3Qg
YXNrIFVBIHRvIHNob3cgdGhlIHRpdGxlIGF0dHJpYnV0ZSB2YWx1ZQogICAgICAgICAvLyB3aXRo
IHRoZSB2YWxpZGF0aW9uTWVzc2FnZS4gSG93ZXZlciwgdGhpcyBiZWhhdmlvciBpcyBzYW1lIGFz
IE9wZXJhCiAgICAgICAgIC8vIGFuZCB0aGUgc3BlY2lmaWNhdGlvbiBkZXNjcmliZXMgc3VjaCBi
ZWhhdmlvciBhcyBhbiBleGFtcGxlLgotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRpdGxl
ID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHRpdGxlQXR0cik7Ci0gICAgICAgIGlmICgh
dXBkYXRlZE1lc3NhZ2UuaXNFbXB0eSgpICYmICF0aXRsZS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgIHVwZGF0ZWRNZXNzYWdlLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgIHVwZGF0ZWRNZXNz
YWdlLmFwcGVuZCh0aXRsZSk7CisgICAgICAgIGlmICghdXBkYXRlZE1lc3NhZ2UuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRpdGxlID0gbV9lbGVtZW50LT5m
YXN0R2V0QXR0cmlidXRlKHRpdGxlQXR0cik7CisgICAgICAgICAgICBpZiAoIXRpdGxlLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICB1cGRhdGVkTWVzc2FnZSA9IHVwZGF0ZWRNZXNzYWdlICsg
J1xuJyArIHRpdGxlOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmlu
ZGV4IDJhN2E2OTE3YmNiMjBhMjM5MTQ2ODM1ZGQ5YjY2ZTc0NWI1OGEwN2QuLmFhOTFlYjFiYWZj
MTVkMDE4NjE3ODBhMDRmNmU2YzIwN2RmYTE0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBA
IC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwogCkBAIC0xNzMsMjYgKzE3NCwyNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6OkFycmF5PEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2FjaAogCiBQYXNz
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZT4gSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9i
amVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9z
dDo6UmVzb3VyY2VJbmZvJiByZXNvdXJjZUluZm8pCiB7Ci0gICAgU3RyaW5nIHR5cGVzOworICAg
IFN0cmluZ0J1aWxkZXIgdHlwZXM7CisKICAgICBpZiAocmVzb3VyY2VJbmZvLm1faXNNYXN0ZXIp
Ci0gICAgICAgIHR5cGVzLmFwcGVuZCgiTWFzdGVyICIpOworICAgICAgICB0eXBlcy5hcHBlbmRM
aXRlcmFsKCJNYXN0ZXIgIik7CiAKICAgICBpZiAocmVzb3VyY2VJbmZvLm1faXNNYW5pZmVzdCkK
LSAgICAgICAgdHlwZXMuYXBwZW5kKCJNYW5pZmVzdCAiKTsKKyAgICAgICAgdHlwZXMuYXBwZW5k
TGl0ZXJhbCgiTWFuaWZlc3QgIik7CiAKICAgICBpZiAocmVzb3VyY2VJbmZvLm1faXNGYWxsYmFj
aykKLSAgICAgICAgdHlwZXMuYXBwZW5kKCJGYWxsYmFjayAiKTsKKyAgICAgICAgdHlwZXMuYXBw
ZW5kTGl0ZXJhbCgiRmFsbGJhY2sgIik7CiAKICAgICBpZiAocmVzb3VyY2VJbmZvLm1faXNGb3Jl
aWduKQotICAgICAgICB0eXBlcy5hcHBlbmQoIkZvcmVpZ24gIik7CisgICAgICAgIHR5cGVzLmFw
cGVuZExpdGVyYWwoIkZvcmVpZ24gIik7CiAKICAgICBpZiAocmVzb3VyY2VJbmZvLm1faXNFeHBs
aWNpdCkKLSAgICAgICAgdHlwZXMuYXBwZW5kKCJFeHBsaWNpdCAiKTsKKyAgICAgICAgdHlwZXMu
YXBwZW5kTGl0ZXJhbCgiRXhwbGljaXQgIik7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiB2YWx1
ZSA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ubV9y
ZXNvdXJjZS5zdHJpbmcoKSkKICAgICAgICAgLnNldFNpemUoc3RhdGljX2Nhc3Q8aW50PihyZXNv
dXJjZUluZm8ubV9zaXplKSkKLSAgICAgICAgLnNldFR5cGUodHlwZXMpOworICAgICAgICAuc2V0
VHlwZSh0eXBlcy50b1N0cmluZygpKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCAwODc3
NmQ3YWRjZTVmYWU3MTUxNTI2OTQzODVjMjQwNDUyOWYzODM4Li44OTYxOWI0YjQxYTllYWIxZWIx
MTI3Mjg0YmUxNzk2MTllZmM1NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC02MzUsMjIgKzYzNSwyMyBAQCBib29sIEluc3Bl
Y3RvclN0eWxlOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiBTdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hv
cnRoYW5kUHJvcGVydHkpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHZhbHVlID0gbV9zdHlsZS0+Z2V0
UHJvcGVydHlWYWx1ZShzaG9ydGhhbmRQcm9wZXJ0eSk7Ci0gICAgaWYgKHZhbHVlLmlzRW1wdHko
KSkgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zdHlsZS0+bGVuZ3RoKCk7
ICsraSkgewotICAgICAgICAgICAgU3RyaW5nIGluZGl2aWR1YWxQcm9wZXJ0eSA9IG1fc3R5bGUt
Pml0ZW0oaSk7Ci0gICAgICAgICAgICBpZiAobV9zdHlsZS0+Z2V0UHJvcGVydHlTaG9ydGhhbmQo
aW5kaXZpZHVhbFByb3BlcnR5KSAhPSBzaG9ydGhhbmRQcm9wZXJ0eSkKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChtX3N0eWxlLT5pc1Byb3BlcnR5SW1wbGljaXQo
aW5kaXZpZHVhbFByb3BlcnR5KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIFN0cmluZyBpbmRpdmlkdWFsVmFsdWUgPSBtX3N0eWxlLT5nZXRQcm9wZXJ0eVZhbHVlKGlu
ZGl2aWR1YWxQcm9wZXJ0eSk7Ci0gICAgICAgICAgICBpZiAoaW5kaXZpZHVhbFZhbHVlID09ICJp
bml0aWFsIikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICh2YWx1
ZS5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICB2YWx1ZS5hcHBlbmQoIiAiKTsKLSAgICAgICAg
ICAgIHZhbHVlLmFwcGVuZChpbmRpdmlkdWFsVmFsdWUpOwotICAgICAgICB9CisgICAgaWYgKCF2
YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc3R5bGUtPmxlbmd0aCgp
OyArK2kpIHsKKyAgICAgICAgU3RyaW5nIGluZGl2aWR1YWxQcm9wZXJ0eSA9IG1fc3R5bGUtPml0
ZW0oaSk7CisgICAgICAgIGlmIChtX3N0eWxlLT5nZXRQcm9wZXJ0eVNob3J0aGFuZChpbmRpdmlk
dWFsUHJvcGVydHkpICE9IHNob3J0aGFuZFByb3BlcnR5KQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGlmIChtX3N0eWxlLT5pc1Byb3BlcnR5SW1wbGljaXQoaW5kaXZpZHVhbFByb3Bl
cnR5KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBTdHJpbmcgaW5kaXZpZHVhbFZh
bHVlID0gbV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShpbmRpdmlkdWFsUHJvcGVydHkpOworICAg
ICAgICBpZiAoaW5kaXZpZHVhbFZhbHVlID09ICJpbml0aWFsIikKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoaW5kaXZpZHVhbFZhbHVlKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHZhbHVlOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kUHJpb3JpdHkoY29uc3QgU3Ry
aW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAKaW5kZXggM2NlNWNiNjJlMDcz
ZDYwNzU1Zjk4ZDBjOThjMGI2ZjBlMmE5M2RhMy4uNTEzZGE4MzM2ZTRhMThlYWU4OGIxNzliMjc3
NzJjNWY0ODAyOWQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlVGV4dEVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBJbnNwZWN0
b3JTdHlsZVRleHRFZGl0b3I6Omluc2VydFByb3BlcnR5KHVuc2lnbmVkIGluZGV4LCBjb25zdCBT
dHJpbmcmIHByb3AKICAgICAgICAgICAgIGlmIChjdXJQb3MgJiYgbV9zdHlsZVRleHRbY3VyUG9z
XSAhPSAnOycpIHsKICAgICAgICAgICAgICAgICAvLyBQcmVwZW5kIGEgIjsiIHRvIHRoZSBwcm9w
ZXJ0eSB0ZXh0IGlmIGFwcGVuZGluZyB0byBhIHN0eWxlIGRlY2xhcmF0aW9uIHdoZXJlCiAgICAg
ICAgICAgICAgICAgLy8gdGhlIGxhc3QgcHJvcGVydHkgaGFzIG5vIHRyYWlsaW5nICI7Ii4KLSAg
ICAgICAgICAgICAgICB0ZXh0VG9TZXQuaW5zZXJ0KCI7IiwgMCk7CisgICAgICAgICAgICAgICAg
dGV4dFRvU2V0ID0gbWFrZVN0cmluZygnOycsIHRleHRUb1NldCk7CiAgICAgICAgICAgICAgICAg
Zm9ybWF0dGluZ1ByZXBlbmRPZmZzZXQgPSAxOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0yNTgsNyArMjU4LDcgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OmludGVybmFs
UmVwbGFjZVByb3BlcnR5KGNvbnN0IEluc3BlY3RvclN0eWxlUHJvcGUKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChmdWxsUHJlZml4TGVuZ3RoID4gcmVwbGFjZVJhbmdlU3RhcnQgfHwgbV9zdHls
ZVRleHQuc3Vic3RyaW5nKHJlcGxhY2VSYW5nZVN0YXJ0IC0gZnVsbFByZWZpeExlbmd0aCwgZnVs
bFByZWZpeExlbmd0aCkgIT0gZnVsbFByZWZpeCkKLSAgICAgICAgICAgIGZpbmFsTmV3VGV4dC5p
bnNlcnQoZnVsbFByZWZpeCwgMCk7CisgICAgICAgICAgICBmaW5hbE5ld1RleHQgPSBmdWxsUHJl
Zml4ICsgZmluYWxOZXdUZXh0OwogICAgIH0KIAogICAgIGludCByZXBsYWNlZExlbmd0aCA9IHJl
cGxhY2VSYW5nZUVuZCAtIHJlcGxhY2VSYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNGQxYTZlODViZmMwOWY4Y2ZkNzY0Y2FhM2JiYWQzMjQx
ZDQyOWE3NC4uOTU0ZGRkNDk2ZDBiYWYyZWZjMWQ2OTRhNjRlY2RkYWQyM2Q2ZDRhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC03NiwxMCArNzYsMTAgQEAg
c3RhdGljIHZvaWQgYXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoVVJMJiB1cmwsIGNvbnN0
IEZvcm1EYXRhJiBkYXRhLCBjb25zdAogICAgIGJvZHkgPSBTdHJpbmcoYm9keURhdGEuZGF0YSgp
LCBib2R5RGF0YS5zaXplKCkpLnJlcGxhY2VXaXRoTGl0ZXJhbCgnKycsICIlMjAiKTsKIAogICAg
IFN0cmluZyBxdWVyeSA9IHVybC5xdWVyeSgpOwotICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKQot
ICAgICAgICBxdWVyeS5hcHBlbmQoJyYnKTsKLSAgICBxdWVyeS5hcHBlbmQoYm9keSk7Ci0gICAg
dXJsLnNldFF1ZXJ5KHF1ZXJ5KTsKKyAgICBpZiAocXVlcnkuaXNFbXB0eSgpKQorICAgICAgICB1
cmwuc2V0UXVlcnkoYm9keSk7CisgICAgZWxzZQorICAgICAgICB1cmwuc2V0UXVlcnkocXVlcnkg
KyAnJicgKyBib2R5KTsKIH0KIAogdm9pZCBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6cGFy
c2VBY3Rpb24oY29uc3QgU3RyaW5nJiBhY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDIy
ZjM5ZGNjMzNlMGNjNjM3ZjU4MmY3MjAxNzQ0YTRhYjQxNzkwNDkuLjkxNDM1NzdmMjQ5NTNlYjRk
YjAyOTE5N2M2MzM2NGU0ZThkYmFlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMTgsNyAr
MzE4LDggQEAgc3RhdGljIFBhc3NPd25QdHI8SlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbj4g
Y3JlYXRlUmVnRXhwRm9yTGFiZWxzKGNvbnN0IFZlY3QKICAgICAvLyB0aGUgc2FtZSBhY3Jvc3Mg
Y2FsbHMuICBXZSBjYW4ndCBkbyB0aGF0LgogCiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24sIHdvcmRSZWdFeHAsICgiXFx3Iiwg
VGV4dENhc2VTZW5zaXRpdmUpKTsKLSAgICBTdHJpbmcgcGF0dGVybigiKCIpOworICAgIFN0cmlu
Z0J1aWxkZXIgcGF0dGVybjsKKyAgICBwYXR0ZXJuLmFwcGVuZCgnKCcpOwogICAgIHVuc2lnbmVk
IGludCBudW1MYWJlbHMgPSBsYWJlbHMuc2l6ZSgpOwogICAgIHVuc2lnbmVkIGludCBpOwogICAg
IGZvciAoaSA9IDA7IGkgPCBudW1MYWJlbHM7IGkrKykgewpAQCAtMzMyLDE4ICszMzMsMTggQEAg
c3RhdGljIFBhc3NPd25QdHI8SlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbj4gY3JlYXRlUmVn
RXhwRm9yTGFiZWxzKGNvbnN0IFZlY3QKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpKQotICAg
ICAgICAgICAgcGF0dGVybi5hcHBlbmQoInwiKTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5k
KCd8Jyk7CiAgICAgICAgIC8vIFNlYXJjaCBmb3Igd29yZCBib3VuZGFyaWVzIG9ubHkgaWYgbGFi
ZWwgc3RhcnRzL2VuZHMgd2l0aCAid29yZCBjaGFyYWN0ZXJzIi4KICAgICAgICAgLy8gSWYgd2Ug
YWx3YXlzIHNlYXJjaGVkIGZvciB3b3JkIGJvdW5kYXJpZXMsIHRoaXMgd291bGRuJ3Qgd29yayBm
b3IgbGFuZ3VhZ2VzCiAgICAgICAgIC8vIHN1Y2ggYXMgSmFwYW5lc2UuCiAgICAgICAgIGlmIChz
dGFydHNXaXRoV29yZENoYXIpCi0gICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCgiXFxiIik7Cisg
ICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgICAgICBwYXR0ZXJu
LmFwcGVuZChsYWJlbCk7CiAgICAgICAgIGlmIChlbmRzV2l0aFdvcmRDaGFyKQotICAgICAgICAg
ICAgcGF0dGVybi5hcHBlbmQoIlxcYiIpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRl
cmFsKCJcXGIiKTsKICAgICB9Ci0gICAgcGF0dGVybi5hcHBlbmQoIikiKTsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24ocGF0dGVybiwgVGV4dENh
c2VJbnNlbnNpdGl2ZSkpOworICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKHBhdHRlcm4udG9TdHJpbmco
KSwgVGV4dENhc2VJbnNlbnNpdGl2ZSkpOwogfQogCiBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxh
YmVsc0Fib3ZlQ2VsbChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKiByZWdFeHAsIEhUTUxU
YWJsZUNlbGxFbGVtZW50KiBjZWxsLCBzaXplX3QqIHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZD
ZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3Bw
CmluZGV4IDlhZTNiMzFhZmYzZjQwM2MzMmQ2NmEyM2I3ODc4MmFmM2MxZTgyOTYuLjVjYmFlMzBh
OGRjM2M4YjZmMDA1OWYzMWQ0MDZhMDRjNWIzZGUzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lk
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKENGQXR0cmli
dXRlZFN0cmluZ1JlZiBhdHRyaQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICAgICAgICAgIHRhZ1N0YXJ0LmFwcGVuZCgiPGI+Iik7Ci0gICAgICAgICAgICAgICAgdGFn
RW5kLmluc2VydCgiPC9iPiIsIDApOworICAgICAgICAgICAgICAgIHRhZ0VuZCA9ICI8L2I+IiAr
IHRhZ0VuZDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIApAQCAt
MjA5LDcgKzIwOSw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1
ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0dHJpCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgdGFnU3RhcnQuYXBwZW5kKCI8aT4iKTsK
LSAgICAgICAgICAgICAgICB0YWdFbmQuaW5zZXJ0KCI8L2k+IiwgMCk7CisgICAgICAgICAgICAg
ICAgdGFnRW5kID0gIjwvaT4iICsgdGFnRW5kOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgfQogCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzQ3VlQXR0cmlidXRlcyhDRkF0dHJpYnV0ZWRTdHJpbmdSZWYgYXR0
cmkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICB0YWdT
dGFydC5hcHBlbmQoIjx1PiIpOwotICAgICAgICAgICAgICAgIHRhZ0VuZC5pbnNlcnQoIjwvdT4i
LCAwKTsKKyAgICAgICAgICAgICAgICB0YWdFbmQgPSAiPC91PiIgKyB0YWdFbmQ7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDQzZmU5ZDhjZGJmMWZmYWU2YmUzZWNh
ZTJiNDFjZDlmYzg0OWRiYTIuLmVmNDcwM2NhOThmYTI3YjNiOTBkOTMwNGQ3ZTg3ODg2N2NiYTg0
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApA
QCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx5YXJyL1JlZ3VsYXJF
eHByZXNzaW9uLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMzA5LDcgKzEzMTAsNyBAQCBT
dHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFuZ2xlZEluZm9Mb2coUGxhdGZvcm0zRE9i
amVjdCBzaGFkZXJzWzJdLCBHQzNEcwogCiAgICAgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lv
biByZWdFeHAoIndlYmdsX1swMTIzNDU2Nzg5YWJjZGVmQUJDREVGXSsiLCBUZXh0Q2FzZVNlbnNp
dGl2ZSk7CiAKLSAgICBTdHJpbmcgcHJvY2Vzc2VkTG9nOworICAgIFN0cmluZ0J1aWxkZXIgcHJv
Y2Vzc2VkTG9nOwogICAgIAogICAgIGludCBzdGFydEZyb20gPSAwOwogICAgIGludCBtYXRjaGVk
TGVuZ3RoID0gMDsKQEAgLTEzMjksOCArMTMzMCw4IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHQz
RDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcnNbMl0sIEdDM0Rz
CiAKICAgICBwcm9jZXNzZWRMb2cuYXBwZW5kKGxvZy5zdWJzdHJpbmcoc3RhcnRGcm9tLCBsb2cu
bGVuZ3RoKCkgLSBzdGFydEZyb20pKTsKIAotICAgIExPRyhXZWJHTCwgIi0tPjogJXMiLCBwcm9j
ZXNzZWRMb2cudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByb2Nlc3NlZExvZzsKKyAgICBM
T0coV2ViR0wsICItLT46ICVzIiwgcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgcmV0dXJuIHByb2Nlc3NlZExvZy50b1N0cmluZygpOwogfQogCiBTdHJpbmcgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3Jh
bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCmlu
ZGV4IDA0OGFiZjgwNzU2Y2Y1ZWI0YjBjODVkYjA0MjRjYTA1ODk0YmJkZmIuLjUwZWVmYmQ5YTE0
MjNlMjYxMmY4NTBhYjAzNTA5MDUxODBmMjgyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmNwcApAQCAtOTYsOSArOTYsOCBAQCBQYXNzUmVmUHRy
PE1JTUVIZWFkZXI+IE1JTUVIZWFkZXI6OnBhcnNlSGVhZGVyKFNoYXJlZEJ1ZmZlckNodW5rUmVh
ZGVyKiBidWZmZXIpCiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJObyBib3VuZGFyeSBmb3Vu
ZCBpbiBtdWx0aXBhcnQgTUlNRSBoZWFkZXIuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtaW1lSGVhZGVyLT5tX2VuZE9mUGFydEJvdW5k
YXJ5Lmluc2VydCgiLS0iLCAwKTsKLSAgICAgICAgICAgIG1pbWVIZWFkZXItPm1fZW5kT2ZEb2N1
bWVudEJvdW5kYXJ5ID0gbWltZUhlYWRlci0+bV9lbmRPZlBhcnRCb3VuZGFyeTsKLSAgICAgICAg
ICAgIG1pbWVIZWFkZXItPm1fZW5kT2ZEb2N1bWVudEJvdW5kYXJ5LmFwcGVuZCgiLS0iKTsKKyAg
ICAgICAgICAgIG1pbWVIZWFkZXItPm1fZW5kT2ZQYXJ0Qm91bmRhcnkgPSAiLS0iICsgbWltZUhl
YWRlci0+bV9lbmRPZlBhcnRCb3VuZGFyeTsKKyAgICAgICAgICAgIG1pbWVIZWFkZXItPm1fZW5k
T2ZEb2N1bWVudEJvdW5kYXJ5ID0gbWltZUhlYWRlci0+bV9lbmRPZlBhcnRCb3VuZGFyeSArICIt
LSI7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5kZXggMTE4OTQ5YTZlZDUy
NzZjMjk0M2E1Y2JhMzdkYWM0ZWQyZGMyM2YzOC4uNzZmY2JlZDU2YmU3ZGNlNDJkNmI0NGM0N2Qy
NjFiMjk2ZWVkMDIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lk
IFJlc291cmNlUmVzcG9uc2VCYXNlOjphZGRIVFRQSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdAogCiAgICAgSFRUUEhlYWRlck1hcDo6QWRkUmVzdWx0IHJlc3Vs
dCA9IG1faHR0cEhlYWRlckZpZWxkcy5hZGQobmFtZSwgdmFsdWUpOwogICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpCi0gICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKCIsICIg
KyB2YWx1ZSk7CisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlICsgIiwgIiArIHZhbHVlOwogfQogCiBjb25zdCBIVFRQSGVhZGVyTWFwJiBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkcygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDgyMDZl
YjMzZjlkMThjNWNiY2E1Y2JjMDQ0YWE4Yjk2YTY2NmQzZTMuLmQ1YWRlZTI5OGYzNDcwNmVhNzY4
ZmViYjRmMTcwNzg1N2M5YzAyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xNTkzLDExICsxNTkzLDggQEAgU3RyaW5n
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZs
YWdzKQogCiAgICAgLy8gVGhlIHRydWUgcm9vdCBsYXllciBpcyBub3QgaW5jbHVkZWQgaW4gdGhl
IGR1bXAsIHNvIGlmIHdlIHdhbnQgdG8gcmVwb3J0CiAgICAgLy8gaXRzIHJlcGFpbnQgcmVjdHMs
IHRoZXkgbXVzdCBiZSBpbmNsdWRlZCBoZXJlLgotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZs
YWdzSW5jbHVkZVJlcGFpbnRSZWN0cykgewotICAgICAgICBTdHJpbmcgbGF5ZXJUcmVlVGV4dFdp
dGhSb290UmVwYWludFJlY3RzID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnRyYWNrZWRSZXBh
aW50UmVjdHNBc1RleHQoKTsKLSAgICAgICAgbGF5ZXJUcmVlVGV4dFdpdGhSb290UmVwYWludFJl
Y3RzLmFwcGVuZChsYXllclRyZWVUZXh0KTsKLSAgICAgICAgcmV0dXJuIGxheWVyVHJlZVRleHRX
aXRoUm9vdFJlcGFpbnRSZWN0czsKLSAgICB9CisgICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxh
Z3NJbmNsdWRlUmVwYWludFJlY3RzKQorICAgICAgICByZXR1cm4gbV9yZW5kZXJWaWV3LmZyYW1l
VmlldygpLnRyYWNrZWRSZXBhaW50UmVjdHNBc1RleHQoKSArIGxheWVyVHJlZVRleHQ7CiAKICAg
ICByZXR1cm4gbGF5ZXJUcmVlVGV4dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAppbmRleCBjZGVhOWZmNDhlNjk1OWM5MWQ3ODJiYWRhN2FmNDk0ZjNhNDZkYjU3Li41
MjdjODkwNGY1NDE0OTQzODIzOTliOTMwZTYwZGU1OWEyMTUyOTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xMDg4LDExICsxMDg4LDExIEBAIHZvaWQgUmVu
ZGVyVGV4dDo6c2VjdXJlVGV4dChVQ2hhciBtYXNrKQogCiAgICAgaW50IGxhc3RUeXBlZENoYXJh
Y3Rlck9mZnNldFRvUmV2ZWFsID0gLTE7CiAgICAgU3RyaW5nIHJldmVhbGVkVGV4dDsKLSAgICBT
ZWN1cmVUZXh0VGltZXIqIHNlY3VyZVRleHRUaW1lciA9IGdTZWN1cmVUZXh0VGltZXJzID8gZ1Nl
Y3VyZVRleHRUaW1lcnMtPmdldCh0aGlzKSA6IDA7CisgICAgU2VjdXJlVGV4dFRpbWVyKiBzZWN1
cmVUZXh0VGltZXIgPSBnU2VjdXJlVGV4dFRpbWVycyA/IGdTZWN1cmVUZXh0VGltZXJzLT5nZXQo
dGhpcykgOiBudWxscHRyOwogICAgIGlmIChzZWN1cmVUZXh0VGltZXIgJiYgc2VjdXJlVGV4dFRp
bWVyLT5pc0FjdGl2ZSgpKSB7CiAgICAgICAgIGxhc3RUeXBlZENoYXJhY3Rlck9mZnNldFRvUmV2
ZWFsID0gc2VjdXJlVGV4dFRpbWVyLT5sYXN0VHlwZWRDaGFyYWN0ZXJPZmZzZXQoKTsKICAgICAg
ICAgaWYgKGxhc3RUeXBlZENoYXJhY3Rlck9mZnNldFRvUmV2ZWFsID49IDApCi0gICAgICAgICAg
ICByZXZlYWxlZFRleHQuYXBwZW5kKG1fdGV4dFtsYXN0VHlwZWRDaGFyYWN0ZXJPZmZzZXRUb1Jl
dmVhbF0pOworICAgICAgICAgICAgcmV2ZWFsZWRUZXh0ID0gbV90ZXh0LnN1YnN0cmluZyhsYXN0
VHlwZWRDaGFyYWN0ZXJPZmZzZXRUb1JldmVhbCwgMSk7CiAgICAgfQogCiAgICAgbV90ZXh0LmZp
bGwobWFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBiNmVhYjc1
OGU3NTRkMTk0MTEwODUzMjBjYTNkNzM1MDBiZjgyYWQwLi40MjRmNDAxNWU4MzkyYjBjYjZjMGQ0
YzUyZGI1ZDhjZWM5NmU4MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTk3NCw3ICs5NzQsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVy
SW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdAogewogICAgIEhUVFBI
ZWFkZXJNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBtX3JlcXVlc3RIZWFkZXJzLmFkZChuYW1lLCB2
YWx1ZSk7CiAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZS5hcHBlbmQoIiwgIiArIHZhbHVlKTsKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgKyAiLCAiICsgdmFsdWU7CiB9CiAKIFN0
cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJl
cHJlc2VudGF0aW9uLm1tCmluZGV4IDFlYmI2NTJmMzQzOWEyZWM5YWQzZTczNzkyMTVmNGExYTYz
OWQzOTIuLjQzMDU3ZTZkODc3NDg5MmUzMmQwMzY2YTFmOTEyNjc3MGYzNTM4ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCkBA
IC02Myw2ICs2Myw3IEBACiAjaW1wb3J0IDx5YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmg+CiAjaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0zNzMsOSArMzc0LDEwIEBAIHN0YXRp
YyBSZWd1bGFyRXhwcmVzc2lvbiogcmVnRXhwRm9yTGFiZWxzKE5TQXJyYXkgKmxhYmVscykKICAg
ICBpZiAoY2FjaGVIaXQgIT0gTlNOb3RGb3VuZCkKICAgICAgICAgcmVzdWx0ID0gcmVnRXhwcy5h
dChjYWNoZUhpdCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFN0cmluZyBwYXR0ZXJuKCIoIik7Ci0g
ICAgICAgIHVuc2lnbmVkIGludCBudW1MYWJlbHMgPSBbbGFiZWxzIGNvdW50XTsKLSAgICAgICAg
dW5zaWduZWQgaW50IGk7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgcGF0dGVybjsKKyAgICAgICAg
cGF0dGVybi5hcHBlbmQoJygnKTsKKyAgICAgICAgdW5zaWduZWQgbnVtTGFiZWxzID0gW2xhYmVs
cyBjb3VudF07CisgICAgICAgIHVuc2lnbmVkIGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBu
dW1MYWJlbHM7IGkrKykgewogICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gW2xhYmVscyBvYmpl
Y3RBdEluZGV4OmldOwogCkBAIC0zODcsMTggKzM4OSwxOCBAQCBzdGF0aWMgUmVndWxhckV4cHJl
c3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0FycmF5ICpsYWJlbHMpCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChpICE9IDApCi0gICAgICAgICAgICAgICAgcGF0
dGVybi5hcHBlbmQoInwiKTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCgnfCcpOwog
ICAgICAgICAgICAgLy8gU2VhcmNoIGZvciB3b3JkIGJvdW5kYXJpZXMgb25seSBpZiBsYWJlbCBz
dGFydHMvZW5kcyB3aXRoICJ3b3JkIGNoYXJhY3RlcnMiLgogICAgICAgICAgICAgLy8gSWYgd2Ug
YWx3YXlzIHNlYXJjaGVkIGZvciB3b3JkIGJvdW5kYXJpZXMsIHRoaXMgd291bGRuJ3Qgd29yayBm
b3IgbGFuZ3VhZ2VzCiAgICAgICAgICAgICAvLyBzdWNoIGFzIEphcGFuZXNlLgogICAgICAgICAg
ICAgaWYgKHN0YXJ0c1dpdGhXb3JkQ2hhcikKLSAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVu
ZCgiXFxiIik7CisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsK
ICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGxhYmVsKTsKICAgICAgICAgICAgIGlmIChlbmRz
V2l0aFdvcmRDaGFyKQotICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKCJcXGIiKTsKKyAg
ICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgICAgICB9Ci0g
ICAgICAgIHBhdHRlcm4uYXBwZW5kKCIpIik7Ci0gICAgICAgIHJlc3VsdCA9IG5ldyBSZWd1bGFy
RXhwcmVzc2lvbihwYXR0ZXJuLCBUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgcGF0dGVy
bi5hcHBlbmQoJyknKTsKKyAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uKHBh
dHRlcm4udG9TdHJpbmcoKSwgVGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAgICAgfQogCiAgICAgLy8g
YWRkIHJlZ2V4cCB0byB0aGUgY2FjaGUsIG1ha2luZyBzdXJlIGl0IGlzIGF0IHRoZSBmcm9udCBm
b3IgTFJVIG9yZGVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0No
aWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNz
TWFjLm1tCmluZGV4IDE4Y2ZiNDExMjlkMGRiNDk3MGU1ZWVlZWQwNmEwZjQ2OGViMmJhODIuLjY0
NTg4YmMwZGY1YTQxMjQzMzdiOTI0NmZhZmNiYzQ3ODlmMGNiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0xMDQsMTUgKzEwNCwxMyBAQCB2
b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IG9zVmVy
c2lvblBhcnRzOwotICAgIFN0cmluZyBvc1N5c3RlbU1hcmtldGluZ1ZlcnNpb24gPSBTdHJpbmco
c3lzdGVtTWFya2V0aW5nVmVyc2lvbigpKTsKKyAgICBTdHJpbmcgb3NTeXN0ZW1NYXJrZXRpbmdW
ZXJzaW9uID0gc3lzdGVtTWFya2V0aW5nVmVyc2lvbigpOwogICAgIG9zU3lzdGVtTWFya2V0aW5n
VmVyc2lvbi5zcGxpdCgnLicsIGZhbHNlLCBvc1ZlcnNpb25QYXJ0cyk7CiAgICAgaWYgKG9zVmVy
c2lvblBhcnRzLnNpemUoKSA8IDIpIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRu
J3QgZmluZCBPUyBWZXJzaW9uXG4iLCBnZXRwcm9nbmFtZSgpKTsKICAgICAgICAgZXhpdChFWF9O
T1BFUk0pOwogICAgIH0KLSAgICBTdHJpbmcgb3NWZXJzaW9uID0gb3NWZXJzaW9uUGFydHNbMF07
Ci0gICAgb3NWZXJzaW9uLmFwcGVuZCgnLicpOwotICAgIG9zVmVyc2lvbi5hcHBlbmQob3NWZXJz
aW9uUGFydHNbMV0pOworICAgIFN0cmluZyBvc1ZlcnNpb24gPSBvc1ZlcnNpb25QYXJ0c1swXSAr
ICcuJyArIG9zVmVyc2lvblBhcnRzWzFdOwogICAgIHNhbmRib3hQYXJhbWV0ZXJzLmFkZFBhcmFt
ZXRlcigiX09TX1ZFUlNJT04iLCBvc1ZlcnNpb24udXRmOCgpLmRhdGEoKSk7CiAKICNpZiAhUExB
VEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGYx
MzVhMTliMGU2OTNlYWFhMjcyODRjZmE1MzEyYTg0NjMwYmQ5N2MuLjFjZDk1ODliZDJhMjhkNGMx
MjhkMDc5NDgyYzNkZTgwNDg2ZjAwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKICNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JTZXJ2ZXIuaCIKQEAgLTQ2MiwyNyArNDYzLDI5IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OmNyZWF0ZUluc3BlY3RvclBhZ2UodWludDY0X3QmIGluc3BlY3RvclBhZ2VJRCwgV2ViUGFn
ZUNyCiAKICAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHRvQVBJKGluc3BlY3RvclBhZ2Up
LCAmcG9saWN5Q2xpZW50LmJhc2UpOwogCi0gICAgU3RyaW5nIHVybCA9IGluc3BlY3RvclBhZ2VV
UkwoKTsKKyAgICBTdHJpbmdCdWlsZGVyIHVybDsKIAotICAgIHVybC5hcHBlbmQoIj9kb2NrU2lk
ZT0iKTsKKyAgICB1cmwuYXBwZW5kKGluc3BlY3RvclBhZ2VVUkwoKSk7CisKKyAgICB1cmwuYXBw
ZW5kTGl0ZXJhbCgiP2RvY2tTaWRlPSIpOwogCiAgICAgaWYgKG1faXNBdHRhY2hlZCkgewogICAg
ICAgICBzd2l0Y2ggKG1fYXR0YWNobWVudFNpZGUpIHsKICAgICAgICAgY2FzZSBBdHRhY2htZW50
U2lkZUJvdHRvbToKLSAgICAgICAgICAgIHVybC5hcHBlbmQoImJvdHRvbSIpOworICAgICAgICAg
ICAgdXJsLmFwcGVuZExpdGVyYWwoImJvdHRvbSIpOwogICAgICAgICAgICAgbV9wYWdlLT5wcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpBdHRhY2hlZEJvdHRvbSgpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0dGFjaG1l
bnRTaWRlUmlnaHQ6Ci0gICAgICAgICAgICB1cmwuYXBwZW5kKCJyaWdodCIpOworICAgICAgICAg
ICAgdXJsLmFwcGVuZExpdGVyYWwoInJpZ2h0Iik7CiAgICAgICAgICAgICBtX3BhZ2UtPnByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OkF0dGFjaGVkUmlnaHQoKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZQot
ICAgICAgICB1cmwuYXBwZW5kKCJ1bmRvY2tlZCIpOworICAgICAgICB1cmwuYXBwZW5kTGl0ZXJh
bCgidW5kb2NrZWQiKTsKIAogICAgIG1fcGFnZS0+cHJvY2VzcygpLmFzc3VtZVJlYWRBY2Nlc3NU
b0Jhc2VVUkwoaW5zcGVjdG9yQmFzZVVSTCgpKTsKIAotICAgIGluc3BlY3RvclBhZ2UtPmxvYWRS
ZXF1ZXN0KFVSTChVUkwoKSwgdXJsKSk7CisgICAgaW5zcGVjdG9yUGFnZS0+bG9hZFJlcXVlc3Qo
VVJMKFVSTCgpLCB1cmwudG9TdHJpbmcoKSkpOwogCiAgICAgbV9jcmVhdGVkSW5zcGVjdG9yUGFn
ZSA9IHRydWU7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>