<?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>176085</bug_id>
          
          <creation_ts>2017-08-29 17:20:57 -0700</creation_ts>
          <short_desc>Remove FetchRequest::InternalRequest</short_desc>
          <delta_ts>2017-08-30 14:20:22 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343340</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-29 17:20:57 -0700</bug_when>
    <thetext>This abstraction is not really useful as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343341</commentid>
    <comment_count>1</comment_count>
      <attachid>319314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-29 17:26:40 -0700</bug_when>
    <thetext>Created attachment 319314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343557</commentid>
    <comment_count>2</comment_count>
      <attachid>319368</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-30 09:12:16 -0700</bug_when>
    <thetext>Created attachment 319368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343695</commentid>
    <comment_count>3</comment_count>
      <attachid>319368</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 14:19:49 -0700</bug_when>
    <thetext>Comment on attachment 319368
Patch

Clearing flags on attachment: 319368

Committed r221397: &lt;http://trac.webkit.org/changeset/221397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343696</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 14:19:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343697</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-30 14:20:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/34172067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319314</attachid>
            <date>2017-08-29 17:26:40 -0700</date>
            <delta_ts>2017-08-30 09:12:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176085-20170829172639.patch</filename>
            <type>text/plain</type>
            <size>18994</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMwMjI4Yjc0NDI5NTA1
MTY1NWNmMTM1YmM5YzM3MDYwZmJjMjBmZC4uYzA2Njc3YmI1ZWNmZjE5M2YyYWM2ZGE5MDFjYzhk
ZWMyYzJjOGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDE3LTA4LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgRmV0Y2hSZXF1
ZXN0OjpJbnRlcm5hbFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NjA4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICBSZW1vdmluZyBJ
bnRlcm5hbFJlcXVlc3Qgc3RydWN0IGFuZCBwYXNzaW5nL2RlZmluaW5nIGZpZWxkcyBkaXJlY3Rs
eS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGU6OnVwZGF0ZVJlY29yZHMpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVSZWZlcnJlcik6CisgICAgICAg
IChXZWJDb3JlOjpidWlsZE9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bWV0aG9kQ2FuSGF2
ZUJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplT3B0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmluaXRpYWxpemVXaXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0Qm9keSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6
OnJlZmVycmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dXJsU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6cmVzb3VyY2VSZXF1
ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0UmVmZXJyZXIpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OkZl
dGNoUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlZGVudGlhbHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpkZXN0aW5hdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hSZXF1ZXN0OjpyZWRpcmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aFJlcXVlc3Q6OnJlZmVycmVyUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVxdWVzdDo6dHlwZSBjb25zdCk6CisKKzIwMTctMDgtMjkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCiAgICAgICAgIFtDYWNoZSBBUEldIFN1cHBvcnQgY2FjaGUgbmFtZXMg
cGVyc2lzdGVuY3kKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTk5NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0Nh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwCmluZGV4IDM2
NmViMzY5ZTVlMmE1NDlhZThkOTQxYTNmZDA0MDcyNjFlMjQzNGMuLmJhMDNlZTVjMjBmYzhhN2U4
MGFlZmQwNmQ0YzYxYTg3NGU0YmVlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGUuY3BwCkBAIC00OTYsOCArNDk2LDcgQEAgdm9pZCBDYWNoZTo6dXBkYXRlUmVjb3JkcyhWZWN0
b3I8UmVjb3JkPiYmIHJlY29yZHMpCiAgICAgICAgICAgICBuZXdSZWNvcmRzLmFwcGVuZChXVEZN
b3ZlKGN1cnJlbnQpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVxdWVz
dEhlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShyZWNvcmQucmVxdWVzdEhlYWRlcnNHdWFy
ZCwgSFRUUEhlYWRlck1hcCB7IHJlY29yZC5yZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSB9KTsK
LSAgICAgICAgICAgIEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0IGludGVybmFsUmVxdWVz
dCA9IHsgV1RGTW92ZShyZWNvcmQucmVxdWVzdCksIFdURk1vdmUocmVjb3JkLm9wdGlvbnMpLCBX
VEZNb3ZlKHJlY29yZC5yZWZlcnJlcikgfTsKLSAgICAgICAgICAgIGF1dG8gcmVxdWVzdCA9IEZl
dGNoUmVxdWVzdDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bnVsbG9w
dCwgV1RGTW92ZShyZXF1ZXN0SGVhZGVycyksIFdURk1vdmUoaW50ZXJuYWxSZXF1ZXN0KSk7Cisg
ICAgICAgICAgICBhdXRvIHJlcXVlc3QgPSBGZXRjaFJlcXVlc3Q6OmNyZWF0ZSgqc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBzdGQ6Om51bGxvcHQsIFdURk1vdmUocmVxdWVzdEhlYWRlcnMpLCAg
V1RGTW92ZShyZWNvcmQucmVxdWVzdCksIFdURk1vdmUocmVjb3JkLm9wdGlvbnMpLCBXVEZNb3Zl
KHJlY29yZC5yZWZlcnJlcikpOwogCiAgICAgICAgICAgICBhdXRvIHJlc3BvbnNlSGVhZGVycyA9
IEZldGNoSGVhZGVyczo6Y3JlYXRlKHJlY29yZC5yZXNwb25zZUhlYWRlcnNHdWFyZCwgSFRUUEhl
YWRlck1hcCB7IHJlY29yZC5yZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkgfSk7CiAgICAgICAg
ICAgICBhdXRvIHJlc3BvbnNlID0gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShyZXNwb25zZUhlYWRlcnMpLCBXVEZN
b3ZlKHJlY29yZC5yZXNwb25zZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuY3BwCmluZGV4IDA3MDUwY2VmM2I5ODY0YjQ3NDkyYWIzNDdiNGVjZTEwYzcw
ODg1ZjYuLmQ3MzQ0OTA1YzZjZDY1NzRmMGM3YjMyM2Q4ZGE5ZjVmNTcxOWVkNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTQ5LDkwICs0
OSw4OCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IHNldE1ldGhvZChSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4gc2V0UmVmZXJyZXIoRmV0Y2hS
ZXF1ZXN0OjpJbnRlcm5hbFJlcXVlc3QmIHJlcXVlc3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCitzdGF0aWMgRXhjZXB0aW9uT3I8U3Ry
aW5nPiBjb21wdXRlUmVmZXJyZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlcikKIHsKLSAgICBpZiAocmVmZXJyZXIuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIHJlcXVlc3QucmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoIm5vLXJlZmVycmVyIik7Ci0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgfQorICAgIGlmIChyZWZlcnJlci5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcgeyAibm8tcmVmZXJyZXIiIH07CisKICAgICAv
LyBGSVhNRTogVGlnaHRlbiB0aGUgVVJMIHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRw
czovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtdXJsLXBhcnNlci4KICAgICBVUkwgcmVm
ZXJyZXJVUkwgPSBjb250ZXh0LmNvbXBsZXRlVVJMKHJlZmVycmVyKTsKICAgICBpZiAoIXJlZmVy
cmVyVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
QVNDSUlMaXRlcmFsKCJSZWZlcnJlciBpcyBub3QgYSB2YWxpZCBVUkwuIikgfTsKIAotICAgIGlm
IChyZWZlcnJlclVSTC5wcm90b2NvbElzKCJhYm91dCIpICYmIHJlZmVycmVyVVJMLnBhdGgoKSA9
PSAiY2xpZW50IikgewotICAgICAgICByZXF1ZXN0LnJlZmVycmVyID0gQVNDSUlMaXRlcmFsKCJj
bGllbnQiKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICB9CisgICAgaWYgKHJl
ZmVycmVyVVJMLnByb3RvY29sSXMoImFib3V0IikgJiYgcmVmZXJyZXJVUkwucGF0aCgpID09ICJj
bGllbnQiKQorICAgICAgICByZXR1cm4gU3RyaW5nIHsgImNsaWVudCIgfTsKIAogICAgIGlmICgh
KGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSAmJiBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmNh
blJlcXVlc3QocmVmZXJyZXJVUkwpKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgQVNDSUlMaXRlcmFsKCJSZWZlcnJlciBpcyBub3Qgc2FtZS1vcmlnaW4uIikgfTsKIAot
ICAgIHJlcXVlc3QucmVmZXJyZXIgPSByZWZlcnJlclVSTC5zdHJpbmcoKTsKLSAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJldHVybiBTdHJpbmcgeyByZWZlcnJlclVSTC5zdHJpbmcoKSB9
OwogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IGJ1aWxkT3B0aW9ucyhGZXRj
aFJlcXVlc3Q6OkludGVybmFsUmVxdWVzdCYgcmVxdWVzdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0OjpJbml0JiBpbml0KQorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RXhjZXB0aW9uPiBidWlsZE9wdGlvbnMoRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0cmluZyYgcmVmZXJyZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdDo6SW5pdCYgaW5pdCkKIHsKICAg
ICBpZiAoIWluaXQud2luZG93LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWluaXQud2luZG93Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRl
cmFsKCJXaW5kb3cgY2FuIG9ubHkgYmUgbnVsbC4iKSB9OwogCiAgICAgaWYgKCFpbml0LnJlZmVy
cmVyLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGV4Y2VwdGlvbiA9IHNldFJlZmVycmVy
KHJlcXVlc3QsIGNvbnRleHQsIGluaXQucmVmZXJyZXIpKQotICAgICAgICAgICAgcmV0dXJuIGV4
Y2VwdGlvbjsKKyAgICAgICAgYXV0byByZXN1bHQgPSBjb21wdXRlUmVmZXJyZXIoY29udGV4dCwg
aW5pdC5yZWZlcnJlcik7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgcmVmZXJy
ZXIgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgfQogCiAgICAgaWYgKGluaXQu
cmVmZXJyZXJQb2xpY3kpCi0gICAgICAgIHJlcXVlc3Qub3B0aW9ucy5yZWZlcnJlclBvbGljeSA9
IGluaXQucmVmZXJyZXJQb2xpY3kudmFsdWUoKTsKKyAgICAgICAgb3B0aW9ucy5yZWZlcnJlclBv
bGljeSA9IGluaXQucmVmZXJyZXJQb2xpY3kudmFsdWUoKTsKIAogICAgIGlmIChpbml0Lm1vZGUp
Ci0gICAgICAgIHJlcXVlc3Qub3B0aW9ucy5tb2RlID0gaW5pdC5tb2RlLnZhbHVlKCk7Ci0gICAg
aWYgKHJlcXVlc3Qub3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUp
CisgICAgICAgIG9wdGlvbnMubW9kZSA9IGluaXQubW9kZS52YWx1ZSgpOworICAgIGlmIChvcHRp
b25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJSZXF1ZXN0IGNvbnN0cnVjdG9y
IGRvZXMgbm90IGFjY2VwdCBuYXZpZ2F0ZSBmZXRjaCBtb2RlLiIpIH07CiAKICAgICBpZiAoaW5p
dC5jcmVkZW50aWFscykKLSAgICAgICAgcmVxdWVzdC5vcHRpb25zLmNyZWRlbnRpYWxzID0gaW5p
dC5jcmVkZW50aWFscy52YWx1ZSgpOworICAgICAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gaW5p
dC5jcmVkZW50aWFscy52YWx1ZSgpOwogCiAgICAgaWYgKGluaXQuY2FjaGUpCi0gICAgICAgIHJl
cXVlc3Qub3B0aW9ucy5jYWNoZSA9IGluaXQuY2FjaGUudmFsdWUoKTsKLSAgICBpZiAocmVxdWVz
dC5vcHRpb25zLmNhY2hlID09IEZldGNoT3B0aW9uczo6Q2FjaGU6Ok9ubHlJZkNhY2hlZCAmJiBy
ZXF1ZXN0Lm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pCisg
ICAgICAgIG9wdGlvbnMuY2FjaGUgPSBpbml0LmNhY2hlLnZhbHVlKCk7CisgICAgaWYgKG9wdGlv
bnMuY2FjaGUgPT0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6T25seUlmQ2FjaGVkICYmIG9wdGlvbnMu
bW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgib25seS1pZi1jYWNoZWQgY2FjaGUg
b3B0aW9uIHJlcXVpcmVzIGZldGNoIG1vZGUgdG8gYmUgc2FtZS1vcmlnaW4uIikgIH07CiAKICAg
ICBpZiAoaW5pdC5yZWRpcmVjdCkKLSAgICAgICAgcmVxdWVzdC5vcHRpb25zLnJlZGlyZWN0ID0g
aW5pdC5yZWRpcmVjdC52YWx1ZSgpOworICAgICAgICBvcHRpb25zLnJlZGlyZWN0ID0gaW5pdC5y
ZWRpcmVjdC52YWx1ZSgpOwogCiAgICAgaWYgKCFpbml0LmludGVncml0eS5pc051bGwoKSkKLSAg
ICAgICAgcmVxdWVzdC5vcHRpb25zLmludGVncml0eSA9IGluaXQuaW50ZWdyaXR5OworICAgICAg
ICBvcHRpb25zLmludGVncml0eSA9IGluaXQuaW50ZWdyaXR5OwogCiAgICAgaWYgKGluaXQua2Vl
cGFsaXZlICYmIGluaXQua2VlcGFsaXZlLnZhbHVlKCkpCi0gICAgICAgIHJlcXVlc3Qub3B0aW9u
cy5rZWVwQWxpdmUgPSB0cnVlOworICAgICAgICBvcHRpb25zLmtlZXBBbGl2ZSA9IHRydWU7CiAK
ICAgICBpZiAoIWluaXQubWV0aG9kLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGV4Y2Vw
dGlvbiA9IHNldE1ldGhvZChyZXF1ZXN0LnJlcXVlc3QsIGluaXQubWV0aG9kKSkKKyAgICAgICAg
aWYgKGF1dG8gZXhjZXB0aW9uID0gc2V0TWV0aG9kKHJlcXVlc3QsIGluaXQubWV0aG9kKSkKICAg
ICAgICAgICAgIHJldHVybiBleGNlcHRpb247CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIAotc3RhdGljIGJvb2wgbWV0aG9kQ2FuSGF2ZUJvZHkoY29uc3QgRmV0Y2hSZXF1
ZXN0OjpJbnRlcm5hbFJlcXVlc3QmIGludGVybmFsUmVxdWVzdCkKK3N0YXRpYyBib29sIG1ldGhv
ZENhbkhhdmVCb2R5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1
cm4gaW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiICYmIGludGVy
bmFsUmVxdWVzdC5yZXF1ZXN0Lmh0dHBNZXRob2QoKSAhPSAiSEVBRCI7CisgICAgcmV0dXJuIHJl
cXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiICYmIHJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJI
RUFEIjsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplT3B0
aW9ucyhjb25zdCBJbml0JiBpbml0KQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogCi0gICAgYXV0byBleGNlcHRpb24gPSBidWlsZE9wdGlvbnMobV9pbnRlcm5hbFJl
cXVlc3QsICpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluaXQpOworICAgIGF1dG8gZXhjZXB0
aW9uID0gYnVpbGRPcHRpb25zKG1fb3B0aW9ucywgbV9yZXF1ZXN0LCBtX3JlZmVycmVyLCAqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbml0KTsKICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAg
ICByZXR1cm4gV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSk7CiAKLSAgICBpZiAobV9pbnRlcm5h
bFJlcXVlc3Qub3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKSB7Ci0g
ICAgICAgIGNvbnN0IFN0cmluZyYgbWV0aG9kID0gbV9pbnRlcm5hbFJlcXVlc3QucmVxdWVzdC5o
dHRwTWV0aG9kKCk7CisgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9k
ZTo6Tm9Db3JzKSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgbWV0aG9kID0gbV9yZXF1ZXN0Lmh0
dHBNZXRob2QoKTsKICAgICAgICAgaWYgKG1ldGhvZCAhPSAiR0VUIiAmJiBtZXRob2QgIT0gIlBP
U1QiICYmIG1ldGhvZCAhPSAiSEVBRCIpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIk1ldGhvZCBtdXN0IGJlIEdFVCwgUE9TVCBvciBIRUFE
IGluIG5vLWNvcnMgbW9kZS4iKSB9OwotICAgICAgICBpZiAoIW1faW50ZXJuYWxSZXF1ZXN0Lm9w
dGlvbnMuaW50ZWdyaXR5LmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKCFtX29wdGlvbnMuaW50ZWdy
aXR5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
IEFTQ0lJTGl0ZXJhbCgiVGhlcmUgY2Fubm90IGJlIGFuIGludGVncml0eSBpbiBuby1jb3JzIG1v
ZGUuIikgfTsKICAgICAgICAgbV9oZWFkZXJzLT5zZXRHdWFyZChGZXRjaEhlYWRlcnM6Okd1YXJk
OjpSZXF1ZXN0Tm9Db3JzKTsKICAgICB9CkBAIC0xNDgsMTIgKzE0NiwxMiBAQCBFeGNlcHRpb25P
cjx2b2lkPiBGZXRjaFJlcXVlc3Q6OmluaXRpYWxpemVXaXRoKGNvbnN0IFN0cmluZyYgdXJsLCBJ
bml0JiYgaW5pdCkKICAgICBpZiAoIXJlcXVlc3RVUkwuaXNWYWxpZCgpIHx8ICFyZXF1ZXN0VVJM
LnVzZXIoKS5pc0VtcHR5KCkgfHwgIXJlcXVlc3RVUkwucGFzcygpLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJVUkwgaXMgbm90
IHZhbGlkIG9yIGNvbnRhaW5zIHVzZXIgY3JlZGVudGlhbHMuIikgfTsKIAotICAgIG1faW50ZXJu
YWxSZXF1ZXN0Lm9wdGlvbnMubW9kZSA9IE1vZGU6OkNvcnM7Ci0gICAgbV9pbnRlcm5hbFJlcXVl
c3Qub3B0aW9ucy5jcmVkZW50aWFscyA9IENyZWRlbnRpYWxzOjpPbWl0OwotICAgIG1faW50ZXJu
YWxSZXF1ZXN0LnJlZmVycmVyID0gQVNDSUlMaXRlcmFsKCJjbGllbnQiKTsKLSAgICBtX2ludGVy
bmFsUmVxdWVzdC5yZXF1ZXN0LnNldFVSTChyZXF1ZXN0VVJMKTsKLSAgICBtX2ludGVybmFsUmVx
dWVzdC5yZXF1ZXN0LnNldFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6RmV0
Y2gpOwotICAgIG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3Quc2V0SW5pdGlhdG9ySWRlbnRpZmll
cihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlc291cmNlUmVxdWVzdElkZW50aWZpZXIoKSk7
CisgICAgbV9vcHRpb25zLm1vZGUgPSBNb2RlOjpDb3JzOworICAgIG1fb3B0aW9ucy5jcmVkZW50
aWFscyA9IENyZWRlbnRpYWxzOjpPbWl0OworICAgIG1fcmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwo
ImNsaWVudCIpOworICAgIG1fcmVxdWVzdC5zZXRVUkwocmVxdWVzdFVSTCk7CisgICAgbV9yZXF1
ZXN0LnNldFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6RmV0Y2gpOworICAg
IG1fcmVxdWVzdC5zZXRJbml0aWF0b3JJZGVudGlmaWVyKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+cmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpKTsKIAogICAgIGF1dG8gb3B0aW9uc1Jlc3Vs
dCA9IGluaXRpYWxpemVPcHRpb25zKGluaXQpOwogICAgIGlmIChvcHRpb25zUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQpAQCAtMTgwLDcgKzE3OCw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVx
dWVzdDo6aW5pdGlhbGl6ZVdpdGgoRmV0Y2hSZXF1ZXN0JiBpbnB1dCwgSW5pdCYmIGluaXQpCiAg
ICAgaWYgKGlucHV0LmlzRGlzdHVyYmVkT3JMb2NrZWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7VHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlJlcXVlc3QgaW5wdXQgaXMgZGlzdHVyYmVk
IG9yIGxvY2tlZC4iKSB9OwogCi0gICAgbV9pbnRlcm5hbFJlcXVlc3QgPSBpbnB1dC5tX2ludGVy
bmFsUmVxdWVzdDsKKyAgICBtX3JlcXVlc3QgPSBpbnB1dC5tX3JlcXVlc3Q7CisgICAgbV9vcHRp
b25zID0gaW5wdXQubV9vcHRpb25zOworICAgIG1fcmVmZXJyZXIgPSBpbnB1dC5tX3JlZmVycmVy
OwogCiAgICAgYXV0byBvcHRpb25zUmVzdWx0ID0gaW5pdGlhbGl6ZU9wdGlvbnMoaW5pdCk7CiAg
ICAgaWYgKG9wdGlvbnNSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCkBAIC0yMTIsNyArMjEyLDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplV2l0aChGZXRjaFJlcXVl
c3QmIGlucHV0LCBJbml0JiYgaW5pdCkKIAogRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0
OjpzZXRCb2R5KEZldGNoQm9keTo6SW5pdCYmIGJvZHkpCiB7Ci0gICAgaWYgKCFtZXRob2RDYW5I
YXZlQm9keShtX2ludGVybmFsUmVxdWVzdCkpCisgICAgaWYgKCFtZXRob2RDYW5IYXZlQm9keSht
X3JlcXVlc3QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAKICAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6OnNldEJvZHkoRmV0Y2hCb2R5OjpJbml0JiYg
Ym9keSkKIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVxdWVzdDo6c2V0Qm9keShGZXRjaFJlcXVl
c3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LmlzQm9keU51bGwoKSkgewotICAgICAg
ICBpZiAoIW1ldGhvZENhbkhhdmVCb2R5KG1faW50ZXJuYWxSZXF1ZXN0KSkKKyAgICAgICAgaWYg
KCFtZXRob2RDYW5IYXZlQm9keShtX3JlcXVlc3QpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciB9OwogICAgICAgICBtX2JvZHkgPSBXVEZNb3ZlKHJlcXVlc3QubV9i
b2R5KTsKICAgICAgICAgcmVxdWVzdC5zZXREaXN0dXJiZWQoKTsKQEAgLTIzMyw3ICsyMzMsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6OnNldEJvZHkoRmV0Y2hSZXF1ZXN0JiBy
ZXF1ZXN0KQogCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0Ojpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSW5mbyYmIGlucHV0LCBJbml0
JiYgaW5pdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVz
dChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0sIHsgfSwgeyB9KSk7CiAKICAg
ICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTdHJpbmc+KGlucHV0KSkgewogICAgICAgICBh
dXRvIHJlc3VsdCA9IHJlcXVlc3QtPmluaXRpYWxpemVXaXRoKFdURjo6Z2V0PFN0cmluZz4oaW5w
dXQpLCBXVEZNb3ZlKGluaXQpKTsKQEAgLTI1MCwxNyArMjUwLDE3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250CiAKIFN0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZmVycmVyKCkgY29uc3QKIHsKLSAg
ICBpZiAobV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIgPT0gIm5vLXJlZmVycmVyIikKKyAgICBp
ZiAobV9yZWZlcnJlciA9PSAibm8tcmVmZXJyZXIiKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgaWYgKG1faW50ZXJuYWxSZXF1ZXN0LnJlZmVycmVyID09ICJjbGllbnQiKQorICAgIGlm
IChtX3JlZmVycmVyID09ICJjbGllbnQiKQogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJh
Ym91dDpjbGllbnQiKTsKLSAgICByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXI7Cisg
ICAgcmV0dXJuIG1fcmVmZXJyZXI7CiB9CiAKIGNvbnN0IFN0cmluZyYgRmV0Y2hSZXF1ZXN0Ojp1
cmxTdHJpbmcoKSBjb25zdAogewogICAgIGlmIChtX3JlcXVlc3RVUkwuaXNOdWxsKCkpCi0gICAg
ICAgIG1fcmVxdWVzdFVSTCA9IG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3QudXJsKCkuc2VyaWFs
aXplKCk7CisgICAgICAgIG1fcmVxdWVzdFVSTCA9IG1fcmVxdWVzdC51cmwoKS5zZXJpYWxpemUo
KTsKICAgICByZXR1cm4gbV9yZXF1ZXN0VVJMOwogfQogCkBAIC0yNjgsNyArMjY4LDcgQEAgUmVz
b3VyY2VSZXF1ZXN0IEZldGNoUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIAotICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0ID0gbV9pbnRlcm5hbFJlcXVlc3QucmVxdWVzdDsKKyAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCA9IG1fcmVxdWVzdDsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZHMo
bV9oZWFkZXJzLT5pbnRlcm5hbEhlYWRlcnMoKSk7CiAKICAgICBpZiAoIWlzQm9keU51bGwoKSkK
QEAgLTI4Miw3ICsyODIsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hS
ZXF1ZXN0OjpjbG9uZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZQogICAgIGlmIChpc0Rp
c3R1cmJlZE9yTG9ja2VkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Ig
fTsKIAotICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0
LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKG1faGVhZGVycy5nZXQoKSksIEZl
dGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0KG1faW50ZXJuYWxSZXF1ZXN0KSkpOworICAgIGF1
dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxv
cHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKG1faGVhZGVycy5nZXQoKSksIFJlc291cmNlUmVxdWVz
dCB7IG1fcmVxdWVzdCB9LCBGZXRjaE9wdGlvbnMgeyBtX29wdGlvbnN9LCBTdHJpbmcgeyBtX3Jl
ZmVycmVyIH0pKTsKICAgICBjbG9uZS0+Y2xvbmVCb2R5KCp0aGlzKTsKICAgICByZXR1cm4gV1RG
TW92ZShjbG9uZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaAppbmRleCA1YWQ3NDE0MTM5YTQ3ZmRhNTg0MmJjYmI3NDkxM2MzMjY3M2JkYzdlLi43MjA0
MzZkN2FiMmY3OTAwNmY0MzMwODA0OWM0ZDVmZmU2Nzk1MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTUzLDQ0ICs1MywzOCBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OwogICAgIHVzaW5n
IFR5cGUgPSBGZXRjaE9wdGlvbnM6OlR5cGU7CiAKLSAgICBzdHJ1Y3QgSW50ZXJuYWxSZXF1ZXN0
IHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIEZldGNoT3B0aW9u
cyBvcHRpb25zOwotICAgICAgICBTdHJpbmcgcmVmZXJyZXI7Ci0gICAgfTsKLQogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBJbmZvJiYsIEluaXQmJik7Ci0gICAgc3RhdGljIFJlZjxGZXRjaFJlcXVlc3Q+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNo
Qm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIEludGVybmFsUmVxdWVz
dCYmIHJlcXVlc3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQs
IFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyksIFdURk1vdmUocmVxdWVzdCkpKTsgfQor
ICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVh
ZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMm
JiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRj
aFJlcXVlc3QoY29udGV4dCwgV1RGTW92ZShib2R5KSwgV1RGTW92ZShoZWFkZXJzKSwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShyZWZlcnJlcikpKTsgfQogCi0g
ICAgY29uc3QgU3RyaW5nJiBtZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsUmVxdWVz
dC5yZXF1ZXN0Lmh0dHBNZXRob2QoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgbWV0aG9kKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0Lmh0dHBNZXRob2QoKTsgfQogICAgIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nKCkgY29uc3Q7CiAgICAgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKCkgeyByZXR1cm4g
bV9oZWFkZXJzLmdldCgpOyB9CiAgICAgY29uc3QgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9oZWFkZXJzLmdldCgpOyB9CiAKLSAgICBUeXBlIHR5cGUoKSBjb25zdDsK
LSAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0OworICAgIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucy50eXBlOyB9CisgICAgRGVzdGluYXRpb24gZGVzdGluYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuZGVzdGluYXRpb247IH0KICAgICBTdHJpbmcg
cmVmZXJyZXIoKSBjb25zdDsKLSAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNv
bnN0OwotICAgIE1vZGUgbW9kZSgpIGNvbnN0OwotICAgIENyZWRlbnRpYWxzIGNyZWRlbnRpYWxz
KCkgY29uc3Q7Ci0gICAgQ2FjaGUgY2FjaGUoKSBjb25zdDsKLSAgICBSZWRpcmVjdCByZWRpcmVj
dCgpIGNvbnN0OwotICAgIGJvb2wga2VlcGFsaXZlKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5h
bFJlcXVlc3Qub3B0aW9ucy5rZWVwQWxpdmU7IH07CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJy
ZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMucmVmZXJyZXJQb2xpY3k7IH0KKyAg
ICBNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMubW9kZTsgfQorICAgIENyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmNyZWRlbnRpYWxz
OyB9CisgICAgQ2FjaGUgY2FjaGUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2FjaGU7IH0K
KyAgICBSZWRpcmVjdCByZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5yZWRpcmVj
dDsgfQorICAgIGJvb2wga2VlcGFsaXZlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmtlZXBB
bGl2ZTsgfTsKIAotICAgIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5pbnRlZ3JpdHk7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGludGVncml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5pbnRlZ3JpdHk7IH0KIAogICAg
IEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBjbG9uZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0Jik7CiAKLSAgICBjb25zdCBGZXRjaE9wdGlvbnMmIGZldGNoT3B0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnM7IH0KLSAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIGludGVybmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0
LnJlcXVlc3Q7IH0KLSAgICBjb25zdCBTdHJpbmcmIGludGVybmFsUmVxdWVzdFJlZmVycmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXI7IH0KLSAgICBjb25zdCBV
UkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3QudXJsKCk7
IH0KKyAgICBjb25zdCBGZXRjaE9wdGlvbnMmIGZldGNoT3B0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9uczsgfQorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW50ZXJuYWxSZXF1ZXN0
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgY29uc3QgU3RyaW5nJiBpbnRlcm5h
bFJlcXVlc3RSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAgICBjb25z
dCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfQogICAgIGJvb2wg
aXNCb2R5UmVhZGFibGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiAhaXNCb2R5TnVsbCgpICYmIGJv
ZHkoKS5pc1JlYWRhYmxlU3RyZWFtKCk7IH0KIAogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJj
ZVJlcXVlc3QoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBGZXRjaFJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFk
ZXJzPiYmLCBJbnRlcm5hbFJlcXVlc3QmJik7CisgICAgRmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVy
cz4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJpbmcmJiByZWZlcnJl
cik7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplT3B0aW9ucyhjb25zdCBJbml0
Jik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5pdGlhbGl6ZVdpdGgoRmV0Y2hSZXF1ZXN0Jiwg
SW5pdCYmKTsKQEAgLTEwMSw0OSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9y
RG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICBJbnRlcm5hbFJlcXVlc3Qg
bV9pbnRlcm5hbFJlcXVlc3Q7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAg
IEZldGNoT3B0aW9ucyBtX29wdGlvbnM7CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgbXV0
YWJsZSBTdHJpbmcgbV9yZXF1ZXN0VVJMOwogfTsKIAotaW5saW5lIEZldGNoUmVxdWVzdDo6RmV0
Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8
RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgSW50ZXJuYWxS
ZXF1ZXN0JiYgaW50ZXJuYWxSZXF1ZXN0KQoraW5saW5lIEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1
ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hC
b2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpCiAg
ICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRl
cnMpKQotICAgICwgbV9pbnRlcm5hbFJlcXVlc3QoV1RGTW92ZShpbnRlcm5hbFJlcXVlc3QpKQot
ewotfQotCi1pbmxpbmUgYXV0byBGZXRjaFJlcXVlc3Q6OmNhY2hlKCkgY29uc3QgLT4gQ2FjaGUK
LXsKLSAgICByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5jYWNoZTsKLX0KLQotaW5s
aW5lIGF1dG8gRmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscygpIGNvbnN0IC0+IENyZWRlbnRpYWxz
Ci17Ci0gICAgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMuY3JlZGVudGlhbHM7Ci19
Ci0KLWlubGluZSBhdXRvIEZldGNoUmVxdWVzdDo6ZGVzdGluYXRpb24oKSBjb25zdCAtPiBEZXN0
aW5hdGlvbgotewotICAgIHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLmRlc3RpbmF0
aW9uOwotfQotCi1pbmxpbmUgYXV0byBGZXRjaFJlcXVlc3Q6Om1vZGUoKSBjb25zdCAtPiBNb2Rl
Ci17Ci0gICAgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMubW9kZTsKLX0KLQotaW5s
aW5lIGF1dG8gRmV0Y2hSZXF1ZXN0OjpyZWRpcmVjdCgpIGNvbnN0IC0+IFJlZGlyZWN0Ci17Ci0g
ICAgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMucmVkaXJlY3Q7Ci19Ci0KLWlubGlu
ZSBhdXRvIEZldGNoUmVxdWVzdDo6cmVmZXJyZXJQb2xpY3koKSBjb25zdCAtPiBSZWZlcnJlclBv
bGljeQotewotICAgIHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLnJlZmVycmVyUG9s
aWN5OwotfQotCi1pbmxpbmUgYXV0byBGZXRjaFJlcXVlc3Q6OnR5cGUoKSBjb25zdCAtPiBUeXBl
CisgICAgLCBtX3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSkKKyAgICAsIG1fb3B0aW9ucyhXVEZN
b3ZlKG9wdGlvbnMpKQorICAgICwgbV9yZWZlcnJlcihXVEZNb3ZlKHJlZmVycmVyKSkKIHsKLSAg
ICByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy50eXBlOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319368</attachid>
            <date>2017-08-30 09:12:16 -0700</date>
            <delta_ts>2017-08-30 14:19:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176085-20170830091216.patch</filename>
            <type>text/plain</type>
            <size>19551</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uZTRlZWUzM2MxMzdjNzExYmFlNTg3YTg3MjQ5YmZj
Zjk0ZTc4ZDNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA4LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgRmV0Y2hSZXF1
ZXN0OjpJbnRlcm5hbFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NjA4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICBSZW1vdmluZyBJ
bnRlcm5hbFJlcXVlc3Qgc3RydWN0IGFuZCBwYXNzaW5nL2RlZmluaW5nIGZpZWxkcyBkaXJlY3Rs
eS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGU6OnVwZGF0ZVJlY29yZHMpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVSZWZlcnJlcik6CisgICAgICAg
IChXZWJDb3JlOjpidWlsZE9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bWV0aG9kQ2FuSGF2
ZUJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplT3B0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmluaXRpYWxpemVXaXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0Qm9keSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6
OnJlZmVycmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dXJsU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6cmVzb3VyY2VSZXF1
ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y2xvbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0UmVmZXJyZXIpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OkZl
dGNoUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlZGVudGlhbHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpkZXN0aW5hdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hSZXF1ZXN0OjpyZWRpcmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aFJlcXVlc3Q6OnJlZmVycmVyUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVxdWVzdDo6dHlwZSBjb25zdCk6CisKIDIwMTctMDgtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjEwMjg3KSBPbiBkcm9w
LCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dCIpIHJldHVybnMgYW4gZW1wdHkgc3Ry
aW5nIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZS5jcHAKaW5kZXggYmFkOGQ2ODQwYWI3ODQwMTc3ZWIyZGZjZTM3MzMzYzRlYTc5YjkyOC4uMzJh
MGYxMTQzMGI1ZDhiMDdkN2I3MGY2MGI2ZjkwZDIwNThhODg4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9DYWNoZS5jcHAKQEAgLTQ5Niw4ICs0OTYsNyBAQCB2b2lkIENhY2hlOjp1cGRh
dGVSZWNvcmRzKFZlY3RvcjxSZWNvcmQ+JiYgcmVjb3JkcykKICAgICAgICAgICAgIG5ld1JlY29y
ZHMuYXBwZW5kKFdURk1vdmUoY3VycmVudCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgYXV0byByZXF1ZXN0SGVhZGVycyA9IEZldGNoSGVhZGVyczo6Y3JlYXRlKHJlY29yZC5yZXF1
ZXN0SGVhZGVyc0d1YXJkLCBIVFRQSGVhZGVyTWFwIHsgcmVjb3JkLnJlcXVlc3QuaHR0cEhlYWRl
ckZpZWxkcygpIH0pOwotICAgICAgICAgICAgRmV0Y2hSZXF1ZXN0OjpJbnRlcm5hbFJlcXVlc3Qg
aW50ZXJuYWxSZXF1ZXN0ID0geyBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KSwgV1RGTW92ZShyZWNv
cmQub3B0aW9ucyksIFdURk1vdmUocmVjb3JkLnJlZmVycmVyKSB9OwotICAgICAgICAgICAgYXV0
byByZXF1ZXN0ID0gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKSwgV1RGTW92ZShpbnRlcm5h
bFJlcXVlc3QpKTsKKyAgICAgICAgICAgIGF1dG8gcmVxdWVzdCA9IEZldGNoUmVxdWVzdDo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShyZXF1
ZXN0SGVhZGVycyksICBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KSwgV1RGTW92ZShyZWNvcmQub3B0
aW9ucyksIFdURk1vdmUocmVjb3JkLnJlZmVycmVyKSk7CiAKICAgICAgICAgICAgIGF1dG8gcmVz
cG9uc2VIZWFkZXJzID0gRmV0Y2hIZWFkZXJzOjpjcmVhdGUocmVjb3JkLnJlc3BvbnNlSGVhZGVy
c0d1YXJkLCBIVFRQSGVhZGVyTWFwIHsgcmVjb3JkLnJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMo
KSB9KTsKICAgICAgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpjcmVhdGUo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlc3BvbnNl
SGVhZGVycyksIFdURk1vdmUocmVjb3JkLnJlc3BvbnNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKaW5kZXggMjM0MTVmOWMyNjg4MjI2ZDU0NTcw
M2U4MzQyOTg2ODllY2JiOTQwOS4uMWMzMzg5YmI2MTc1Nzk3MDdiNTAyNjViYjJiZDI5OWNhNTEy
MWE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNw
cApAQCAtNDksOTAgKzQ5LDg4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4gc2V0
TWV0aG9kKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nCiAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiBzZXRS
ZWZlcnJlcihGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVxdWVzdCYgcmVxdWVzdCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3N0YXRpYyBF
eGNlcHRpb25PcjxTdHJpbmc+IGNvbXB1dGVSZWZlcnJlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewotICAgIGlmIChyZWZlcnJlci5p
c0VtcHR5KCkpIHsKLSAgICAgICAgcmVxdWVzdC5yZWZlcnJlciA9IEFTQ0lJTGl0ZXJhbCgibm8t
cmVmZXJyZXIiKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICB9CisgICAgaWYg
KHJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7ICJuby1yZWZlcnJl
ciIgfTsKKwogICAgIC8vIEZJWE1FOiBUaWdodGVuIHRoZSBVUkwgcGFyc2luZyBhbGdvcml0aG0g
YWNjb3JkaW5nIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtcGFyc2Vy
LgogICAgIFVSTCByZWZlcnJlclVSTCA9IGNvbnRleHQuY29tcGxldGVVUkwocmVmZXJyZXIpOwog
ICAgIGlmICghcmVmZXJyZXJVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlJlZmVycmVyIGlzIG5vdCBhIHZhbGlkIFVSTC4i
KSB9OwogCi0gICAgaWYgKHJlZmVycmVyVVJMLnByb3RvY29sSXMoImFib3V0IikgJiYgcmVmZXJy
ZXJVUkwucGF0aCgpID09ICJjbGllbnQiKSB7Ci0gICAgICAgIHJlcXVlc3QucmVmZXJyZXIgPSBB
U0NJSUxpdGVyYWwoImNsaWVudCIpOwotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAg
IH0KKyAgICBpZiAocmVmZXJyZXJVUkwucHJvdG9jb2xJcygiYWJvdXQiKSAmJiByZWZlcnJlclVS
TC5wYXRoKCkgPT0gImNsaWVudCIpCisgICAgICAgIHJldHVybiBTdHJpbmcgeyAiY2xpZW50IiB9
OwogCiAgICAgaWYgKCEoY29udGV4dC5zZWN1cml0eU9yaWdpbigpICYmIGNvbnRleHQuc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChyZWZlcnJlclVSTCkpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlJlZmVycmVyIGlzIG5vdCBzYW1lLW9y
aWdpbi4iKSB9OwogCi0gICAgcmVxdWVzdC5yZWZlcnJlciA9IHJlZmVycmVyVVJMLnN0cmluZygp
OwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIFN0cmluZyB7IHJlZmVycmVy
VVJMLnN0cmluZygpIH07CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4gYnVp
bGRPcHRpb25zKEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0JiByZXF1ZXN0LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3Q6OkluaXQmIGluaXQp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+IGJ1aWxkT3B0aW9ucyhGZXRjaE9wdGlv
bnMmIG9wdGlvbnMsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RyaW5nJiByZWZlcnJlciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0OjpJbml0
JiBpbml0KQogewogICAgIGlmICghaW5pdC53aW5kb3cuaXNVbmRlZmluZWRPck51bGwoKSAmJiAh
aW5pdC53aW5kb3cuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCBBU0NJSUxpdGVyYWwoIldpbmRvdyBjYW4gb25seSBiZSBudWxsLiIpIH07CiAKICAgICBp
ZiAoIWluaXQucmVmZXJyZXIuaXNOdWxsKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gZXhjZXB0aW9u
ID0gc2V0UmVmZXJyZXIocmVxdWVzdCwgY29udGV4dCwgaW5pdC5yZWZlcnJlcikpCi0gICAgICAg
ICAgICByZXR1cm4gZXhjZXB0aW9uOworICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbXB1dGVSZWZl
cnJlcihjb250ZXh0LCBpbml0LnJlZmVycmVyKTsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwor
ICAgICAgICByZWZlcnJlciA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICB9CiAK
ICAgICBpZiAoaW5pdC5yZWZlcnJlclBvbGljeSkKLSAgICAgICAgcmVxdWVzdC5vcHRpb25zLnJl
ZmVycmVyUG9saWN5ID0gaW5pdC5yZWZlcnJlclBvbGljeS52YWx1ZSgpOworICAgICAgICBvcHRp
b25zLnJlZmVycmVyUG9saWN5ID0gaW5pdC5yZWZlcnJlclBvbGljeS52YWx1ZSgpOwogCiAgICAg
aWYgKGluaXQubW9kZSkKLSAgICAgICAgcmVxdWVzdC5vcHRpb25zLm1vZGUgPSBpbml0Lm1vZGUu
dmFsdWUoKTsKLSAgICBpZiAocmVxdWVzdC5vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpOYXZpZ2F0ZSkKKyAgICAgICAgb3B0aW9ucy5tb2RlID0gaW5pdC5tb2RlLnZhbHVlKCk7
CisgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlJlcXVl
c3QgY29uc3RydWN0b3IgZG9lcyBub3QgYWNjZXB0IG5hdmlnYXRlIGZldGNoIG1vZGUuIikgfTsK
IAogICAgIGlmIChpbml0LmNyZWRlbnRpYWxzKQotICAgICAgICByZXF1ZXN0Lm9wdGlvbnMuY3Jl
ZGVudGlhbHMgPSBpbml0LmNyZWRlbnRpYWxzLnZhbHVlKCk7CisgICAgICAgIG9wdGlvbnMuY3Jl
ZGVudGlhbHMgPSBpbml0LmNyZWRlbnRpYWxzLnZhbHVlKCk7CiAKICAgICBpZiAoaW5pdC5jYWNo
ZSkKLSAgICAgICAgcmVxdWVzdC5vcHRpb25zLmNhY2hlID0gaW5pdC5jYWNoZS52YWx1ZSgpOwot
ICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMuY2FjaGUgPT0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6T25s
eUlmQ2FjaGVkICYmIHJlcXVlc3Qub3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6
U2FtZU9yaWdpbikKKyAgICAgICAgb3B0aW9ucy5jYWNoZSA9IGluaXQuY2FjaGUudmFsdWUoKTsK
KyAgICBpZiAob3B0aW9ucy5jYWNoZSA9PSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpPbmx5SWZDYWNo
ZWQgJiYgb3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbikKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJvbmx5LWlm
LWNhY2hlZCBjYWNoZSBvcHRpb24gcmVxdWlyZXMgZmV0Y2ggbW9kZSB0byBiZSBzYW1lLW9yaWdp
bi4iKSAgfTsKIAogICAgIGlmIChpbml0LnJlZGlyZWN0KQotICAgICAgICByZXF1ZXN0Lm9wdGlv
bnMucmVkaXJlY3QgPSBpbml0LnJlZGlyZWN0LnZhbHVlKCk7CisgICAgICAgIG9wdGlvbnMucmVk
aXJlY3QgPSBpbml0LnJlZGlyZWN0LnZhbHVlKCk7CiAKICAgICBpZiAoIWluaXQuaW50ZWdyaXR5
LmlzTnVsbCgpKQotICAgICAgICByZXF1ZXN0Lm9wdGlvbnMuaW50ZWdyaXR5ID0gaW5pdC5pbnRl
Z3JpdHk7CisgICAgICAgIG9wdGlvbnMuaW50ZWdyaXR5ID0gaW5pdC5pbnRlZ3JpdHk7CiAKICAg
ICBpZiAoaW5pdC5rZWVwYWxpdmUgJiYgaW5pdC5rZWVwYWxpdmUudmFsdWUoKSkKLSAgICAgICAg
cmVxdWVzdC5vcHRpb25zLmtlZXBBbGl2ZSA9IHRydWU7CisgICAgICAgIG9wdGlvbnMua2VlcEFs
aXZlID0gdHJ1ZTsKIAogICAgIGlmICghaW5pdC5tZXRob2QuaXNOdWxsKCkpIHsKLSAgICAgICAg
aWYgKGF1dG8gZXhjZXB0aW9uID0gc2V0TWV0aG9kKHJlcXVlc3QucmVxdWVzdCwgaW5pdC5tZXRo
b2QpKQorICAgICAgICBpZiAoYXV0byBleGNlcHRpb24gPSBzZXRNZXRob2QocmVxdWVzdCwgaW5p
dC5tZXRob2QpKQogICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbjsKICAgICB9CiAKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1zdGF0aWMgYm9vbCBtZXRob2RDYW5IYXZlQm9keShj
b25zdCBGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVxdWVzdCYgaW50ZXJuYWxSZXF1ZXN0KQorc3Rh
dGljIGJvb2wgbWV0aG9kQ2FuSGF2ZUJvZHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewotICAgIHJldHVybiBpbnRlcm5hbFJlcXVlc3QucmVxdWVzdC5odHRwTWV0aG9kKCkgIT0g
IkdFVCIgJiYgaW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJIRUFEIjsK
KyAgICByZXR1cm4gcmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIgJiYgcmVxdWVzdC5odHRw
TWV0aG9kKCkgIT0gIkhFQUQiOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6
OmluaXRpYWxpemVPcHRpb25zKGNvbnN0IEluaXQmIGluaXQpCiB7CiAgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAKLSAgICBhdXRvIGV4Y2VwdGlvbiA9IGJ1aWxkT3B0aW9u
cyhtX2ludGVybmFsUmVxdWVzdCwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5pdCk7Cisg
ICAgYXV0byBleGNlcHRpb24gPSBidWlsZE9wdGlvbnMobV9vcHRpb25zLCBtX3JlcXVlc3QsIG1f
cmVmZXJyZXIsICpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluaXQpOwogICAgIGlmIChleGNl
cHRpb24pCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKTsKIAotICAg
IGlmIChtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnMpIHsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBtZXRob2QgPSBtX2ludGVybmFsUmVx
dWVzdC5yZXF1ZXN0Lmh0dHBNZXRob2QoKTsKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBtZXRob2Qg
PSBtX3JlcXVlc3QuaHR0cE1ldGhvZCgpOwogICAgICAgICBpZiAobWV0aG9kICE9ICJHRVQiICYm
IG1ldGhvZCAhPSAiUE9TVCIgJiYgbWV0aG9kICE9ICJIRUFEIikKICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTWV0aG9kIG11c3QgYmUgR0VU
LCBQT1NUIG9yIEhFQUQgaW4gbm8tY29ycyBtb2RlLiIpIH07Ci0gICAgICAgIGlmICghbV9pbnRl
cm5hbFJlcXVlc3Qub3B0aW9ucy5pbnRlZ3JpdHkuaXNFbXB0eSgpKQorICAgICAgICBpZiAoIW1f
b3B0aW9ucy5pbnRlZ3JpdHkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGVyZSBjYW5ub3QgYmUgYW4gaW50ZWdyaXR5
IGluIG5vLWNvcnMgbW9kZS4iKSB9OwogICAgICAgICBtX2hlYWRlcnMtPnNldEd1YXJkKEZldGNo
SGVhZGVyczo6R3VhcmQ6OlJlcXVlc3ROb0NvcnMpOwogICAgIH0KQEAgLTE0OCwxMiArMTQ2LDEy
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVxdWVzdDo6aW5pdGlhbGl6ZVdpdGgoY29uc3Qg
U3RyaW5nJiB1cmwsIEluaXQmJiBpbml0KQogICAgIGlmICghcmVxdWVzdFVSTC5pc1ZhbGlkKCkg
fHwgIXJlcXVlc3RVUkwudXNlcigpLmlzRW1wdHkoKSB8fCAhcmVxdWVzdFVSTC5wYXNzKCkuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVy
YWwoIlVSTCBpcyBub3QgdmFsaWQgb3IgY29udGFpbnMgdXNlciBjcmVkZW50aWFscy4iKSB9Owog
Ci0gICAgbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5tb2RlID0gTW9kZTo6Q29yczsKLSAgICBt
X2ludGVybmFsUmVxdWVzdC5vcHRpb25zLmNyZWRlbnRpYWxzID0gQ3JlZGVudGlhbHM6Ok9taXQ7
Ci0gICAgbV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoImNsaWVudCIp
OwotICAgIG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3Quc2V0VVJMKHJlcXVlc3RVUkwpOwotICAg
IG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6
UmVxdWVzdGVyOjpGZXRjaCk7Ci0gICAgbV9pbnRlcm5hbFJlcXVlc3QucmVxdWVzdC5zZXRJbml0
aWF0b3JJZGVudGlmaWVyKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cmVzb3VyY2VSZXF1ZXN0
SWRlbnRpZmllcigpKTsKKyAgICBtX29wdGlvbnMubW9kZSA9IE1vZGU6OkNvcnM7CisgICAgbV9v
cHRpb25zLmNyZWRlbnRpYWxzID0gQ3JlZGVudGlhbHM6Ok9taXQ7CisgICAgbV9yZWZlcnJlciA9
IEFTQ0lJTGl0ZXJhbCgiY2xpZW50Iik7CisgICAgbV9yZXF1ZXN0LnNldFVSTChyZXF1ZXN0VVJM
KTsKKyAgICBtX3JlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVy
OjpGZXRjaCk7CisgICAgbV9yZXF1ZXN0LnNldEluaXRpYXRvcklkZW50aWZpZXIoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkpOwogCiAgICAgYXV0
byBvcHRpb25zUmVzdWx0ID0gaW5pdGlhbGl6ZU9wdGlvbnMoaW5pdCk7CiAgICAgaWYgKG9wdGlv
bnNSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCkBAIC0xODAsNyArMTc4LDkgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gRmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplV2l0aChGZXRjaFJlcXVlc3QmIGlucHV0LCBJ
bml0JiYgaW5pdCkKICAgICBpZiAoaW5wdXQuaXNEaXN0dXJiZWRPckxvY2tlZCgpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHtUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUmVxdWVzdCBpbnB1
dCBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkLiIpIH07CiAKLSAgICBtX2ludGVybmFsUmVxdWVzdCA9
IGlucHV0Lm1faW50ZXJuYWxSZXF1ZXN0OworICAgIG1fcmVxdWVzdCA9IGlucHV0Lm1fcmVxdWVz
dDsKKyAgICBtX29wdGlvbnMgPSBpbnB1dC5tX29wdGlvbnM7CisgICAgbV9yZWZlcnJlciA9IGlu
cHV0Lm1fcmVmZXJyZXI7CiAKICAgICBhdXRvIG9wdGlvbnNSZXN1bHQgPSBpbml0aWFsaXplT3B0
aW9ucyhpbml0KTsKICAgICBpZiAob3B0aW9uc1Jlc3VsdC5oYXNFeGNlcHRpb24oKSkKQEAgLTIx
MiwxMyArMjEyLDEzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVxdWVzdDo6aW5pdGlhbGl6
ZVdpdGgoRmV0Y2hSZXF1ZXN0JiBpbnB1dCwgSW5pdCYmIGluaXQpCiAKIEV4Y2VwdGlvbk9yPHZv
aWQ+IEZldGNoUmVxdWVzdDo6c2V0Qm9keShGZXRjaEJvZHk6OkluaXQmJiBib2R5KQogewotICAg
IGlmICghbWV0aG9kQ2FuSGF2ZUJvZHkobV9pbnRlcm5hbFJlcXVlc3QpKQorICAgIGlmICghbWV0
aG9kQ2FuSGF2ZUJvZHkobV9yZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciB9OwogCiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAg
ZXh0cmFjdEJvZHkoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShib2R5KSk7CiAK
LSAgICBpZiAobV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5rZWVwQWxpdmUgJiYgaGFzUmVhZGFi
bGVTdHJlYW1Cb2R5KCkpCisgICAgaWYgKG1fb3B0aW9ucy5rZWVwQWxpdmUgJiYgaGFzUmVhZGFi
bGVTdHJlYW1Cb2R5KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiUmVxdWVzdCBjYW5ub3QgaGF2ZSBhIFJlYWRhYmxlU3RyZWFtIGJvZHkgYW5k
IGtlZXBhbGl2ZSBzZXQgdG8gdHJ1ZSIpIH07CiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTIyNiwy
MSArMjI2LDIxIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVxdWVzdDo6c2V0Qm9keShGZXRj
aEJvZHk6OkluaXQmJiBib2R5KQogRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0OjpzZXRC
b2R5KEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoIXJlcXVlc3QuaXNCb2R5TnVs
bCgpKSB7Ci0gICAgICAgIGlmICghbWV0aG9kQ2FuSGF2ZUJvZHkobV9pbnRlcm5hbFJlcXVlc3Qp
KQorICAgICAgICBpZiAoIW1ldGhvZENhbkhhdmVCb2R5KG1fcmVxdWVzdCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAgICAgICAgIC8vIEZJWE1FOiBJZiBi
b2R5IGhhcyBhIHJlYWRhYmxlIHN0cmVhbSwgd2Ugc2hvdWxkIHBpcGUgaXQgdG8gdGhpcyBuZXcg
Ym9keSBzdHJlYW0uCiAgICAgICAgIG1fYm9keSA9IFdURk1vdmUocmVxdWVzdC5tX2JvZHkpOwog
ICAgICAgICByZXF1ZXN0LnNldERpc3R1cmJlZCgpOwogICAgIH0KIAotICAgIGlmIChtX2ludGVy
bmFsUmVxdWVzdC5vcHRpb25zLmtlZXBBbGl2ZSAmJiBoYXNSZWFkYWJsZVN0cmVhbUJvZHkoKSkK
KyAgICBpZiAobV9vcHRpb25zLmtlZXBBbGl2ZSAmJiBoYXNSZWFkYWJsZVN0cmVhbUJvZHkoKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJSZXF1
ZXN0IGNhbm5vdCBoYXZlIGEgUmVhZGFibGVTdHJlYW0gYm9keSBhbmQga2VlcGFsaXZlIHNldCB0
byB0cnVlIikgfTsKICAgICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hS
ZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgSW5mbyYmIGlucHV0LCBJbml0JiYgaW5pdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBh
ZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVh
ZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0pKTsKKyAgICBh
dXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51
bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3Qp
LCB7IH0sIHsgfSwgeyB9KSk7CiAKICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTdHJp
bmc+KGlucHV0KSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHJlcXVlc3QtPmluaXRpYWxpemVX
aXRoKFdURjo6Z2V0PFN0cmluZz4oaW5wdXQpLCBXVEZNb3ZlKGluaXQpKTsKQEAgLTI1NywxNyAr
MjU3LDE3IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250CiAKIFN0cmluZyBGZXRjaFJlcXVlc3Q6
OnJlZmVycmVyKCkgY29uc3QKIHsKLSAgICBpZiAobV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIg
PT0gIm5vLXJlZmVycmVyIikKKyAgICBpZiAobV9yZWZlcnJlciA9PSAibm8tcmVmZXJyZXIiKQog
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgaWYgKG1faW50ZXJuYWxSZXF1ZXN0LnJlZmVy
cmVyID09ICJjbGllbnQiKQorICAgIGlmIChtX3JlZmVycmVyID09ICJjbGllbnQiKQogICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhYm91dDpjbGllbnQiKTsKLSAgICByZXR1cm4gbV9pbnRl
cm5hbFJlcXVlc3QucmVmZXJyZXI7CisgICAgcmV0dXJuIG1fcmVmZXJyZXI7CiB9CiAKIGNvbnN0
IFN0cmluZyYgRmV0Y2hSZXF1ZXN0Ojp1cmxTdHJpbmcoKSBjb25zdAogewogICAgIGlmIChtX3Jl
cXVlc3RVUkwuaXNOdWxsKCkpCi0gICAgICAgIG1fcmVxdWVzdFVSTCA9IG1faW50ZXJuYWxSZXF1
ZXN0LnJlcXVlc3QudXJsKCkuc2VyaWFsaXplKCk7CisgICAgICAgIG1fcmVxdWVzdFVSTCA9IG1f
cmVxdWVzdC51cmwoKS5zZXJpYWxpemUoKTsKICAgICByZXR1cm4gbV9yZXF1ZXN0VVJMOwogfQog
CkBAIC0yNzUsNyArMjc1LDcgQEAgUmVzb3VyY2VSZXF1ZXN0IEZldGNoUmVxdWVzdDo6cmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gbV9pbnRlcm5hbFJlcXVlc3QucmVx
dWVzdDsKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG1fcmVxdWVzdDsKICAgICByZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZHMobV9oZWFkZXJzLT5pbnRlcm5hbEhlYWRlcnMoKSk7CiAK
ICAgICBpZiAoIWlzQm9keU51bGwoKSkKQEAgLTI4OSw3ICsyODksNyBAQCBFeGNlcHRpb25PcjxS
ZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0OjpjbG9uZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZQogICAgIGlmIChpc0Rpc3R1cmJlZE9yTG9ja2VkKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIAotICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKG1faGVhZGVycy5nZXQoKSksIEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0KG1faW50
ZXJuYWxSZXF1ZXN0KSkpOworICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVx
dWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKG1faGVhZGVy
cy5nZXQoKSksIFJlc291cmNlUmVxdWVzdCB7IG1fcmVxdWVzdCB9LCBGZXRjaE9wdGlvbnMgeyBt
X29wdGlvbnN9LCBTdHJpbmcgeyBtX3JlZmVycmVyIH0pKTsKICAgICBjbG9uZS0+Y2xvbmVCb2R5
KCp0aGlzKTsKICAgICByZXR1cm4gV1RGTW92ZShjbG9uZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaAppbmRleCA1NzM4YmY2YzM3NTQxM2JiMjhkNzJj
YmQ0ZWQ3YTM1YzRkMjEzYzUyLi4wYmUwZWJiZjFmNTlkMzc4NWM0MzA2NTg2NTRjYjYxMGJkZWRh
ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAg
LTUzLDQzICs1MywzOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OwogICAgIHVzaW5nIFR5cGUgPSBGZXRjaE9wdGlvbnM6OlR5cGU7CiAKLSAg
ICBzdHJ1Y3QgSW50ZXJuYWxSZXF1ZXN0IHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3Q7Ci0gICAgICAgIEZldGNoT3B0aW9ucyBvcHRpb25zOwotICAgICAgICBTdHJpbmcgcmVmZXJy
ZXI7Ci0gICAgfTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJbmZvJiYsIEluaXQmJik7Ci0gICAgc3Rh
dGljIFJlZjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYm
IGhlYWRlcnMsIEludGVybmFsUmVxdWVzdCYmIHJlcXVlc3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyks
IFdURk1vdmUocmVxdWVzdCkpKTsgfQorICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXF1ZXN0PiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJv
ZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoY29udGV4dCwgV1RGTW92ZShib2R5KSwg
V1RGTW92ZShoZWFkZXJzKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgV1RG
TW92ZShyZWZlcnJlcikpKTsgfQogCi0gICAgY29uc3QgU3RyaW5nJiBtZXRob2QoKSBjb25zdCB7
IHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5yZXF1ZXN0Lmh0dHBNZXRob2QoKTsgfQorICAgIGNv
bnN0IFN0cmluZyYgbWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0Lmh0dHBNZXRob2Qo
KTsgfQogICAgIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKCkgY29uc3Q7CiAgICAgRmV0Y2hIZWFk
ZXJzJiBoZWFkZXJzKCkgeyByZXR1cm4gbV9oZWFkZXJzLmdldCgpOyB9CiAgICAgY29uc3QgRmV0
Y2hIZWFkZXJzJiBoZWFkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXJzLmdldCgpOyB9CiAK
LSAgICBUeXBlIHR5cGUoKSBjb25zdDsKLSAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNv
bnN0OworICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy50eXBlOyB9Cisg
ICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuZGVz
dGluYXRpb247IH0KICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKLSAgICBSZWZlcnJlclBv
bGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0OwotICAgIE1vZGUgbW9kZSgpIGNvbnN0OwotICAg
IENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3Q7Ci0gICAgQ2FjaGUgY2FjaGUoKSBjb25z
dDsKLSAgICBSZWRpcmVjdCByZWRpcmVjdCgpIGNvbnN0OwotICAgIGJvb2wga2VlcGFsaXZlKCkg
Y29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5rZWVwQWxpdmU7IH07Cisg
ICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMucmVmZXJyZXJQb2xpY3k7IH0KKyAgICBNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX29w
dGlvbnMubW9kZTsgfQorICAgIENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zLmNyZWRlbnRpYWxzOyB9CisgICAgQ2FjaGUgY2FjaGUoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMuY2FjaGU7IH0KKyAgICBSZWRpcmVjdCByZWRpcmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9ucy5yZWRpcmVjdDsgfQorICAgIGJvb2wga2VlcGFsaXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLmtlZXBBbGl2ZTsgfTsKIAotICAgIGNvbnN0IFN0cmluZyYgaW50
ZWdyaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5pbnRlZ3Jp
dHk7IH0KKyAgICBjb25zdCBTdHJpbmcmIGludGVncml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5pbnRlZ3JpdHk7IH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBj
bG9uZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICBjb25zdCBGZXRjaE9wdGlvbnMm
IGZldGNoT3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnM7
IH0KLSAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGludGVybmFsUmVxdWVzdCgpIGNvbnN0IHsg
cmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3Q7IH0KLSAgICBjb25zdCBTdHJpbmcmIGlu
dGVybmFsUmVxdWVzdFJlZmVycmVyKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3Qu
cmVmZXJyZXI7IH0KLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJu
YWxSZXF1ZXN0LnJlcXVlc3QudXJsKCk7IH0KKyAgICBjb25zdCBGZXRjaE9wdGlvbnMmIGZldGNo
T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgaW50ZXJuYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9Cisg
ICAgY29uc3QgU3RyaW5nJiBpbnRlcm5hbFJlcXVlc3RSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJyZXI7IH0KKyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVx
dWVzdC51cmwoKTsgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCgpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIEZldGNoUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIEludGVy
bmFsUmVxdWVzdCYmKTsKKyAgICBGZXRjaFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IGluaXRpYWxpemVPcHRpb25zKGNvbnN0IEluaXQmKTsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChGZXRjaFJlcXVlc3QmLCBJbml0JiYpOwpAQCAt
MTAwLDQ5ICs5NSwxOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIEludGVybmFsUmVxdWVzdCBtX2ludGVybmFsUmVx
dWVzdDsKKworICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgRmV0Y2hPcHRpb25z
IG1fb3B0aW9uczsKKyAgICBTdHJpbmcgbV9yZWZlcnJlcjsKICAgICBtdXRhYmxlIFN0cmluZyBt
X3JlcXVlc3RVUkw7CiB9OwogCi1pbmxpbmUgRmV0Y2hSZXF1ZXN0OjpGZXRjaFJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYg
Ym9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBJbnRlcm5hbFJlcXVlc3QmJiBpbnRl
cm5hbFJlcXVlc3QpCitpbmxpbmUgRmV0Y2hSZXF1ZXN0OjpGZXRjaFJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwg
UmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBG
ZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKICAgICA6IEZldGNoQm9k
eU93bmVyKGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycykpCi0gICAgLCBt
X2ludGVybmFsUmVxdWVzdChXVEZNb3ZlKGludGVybmFsUmVxdWVzdCkpCi17Ci19Ci0KLWlubGlu
ZSBhdXRvIEZldGNoUmVxdWVzdDo6Y2FjaGUoKSBjb25zdCAtPiBDYWNoZQotewotICAgIHJldHVy
biBtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLmNhY2hlOwotfQotCi1pbmxpbmUgYXV0byBGZXRj
aFJlcXVlc3Q6OmNyZWRlbnRpYWxzKCkgY29uc3QgLT4gQ3JlZGVudGlhbHMKLXsKLSAgICByZXR1
cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5jcmVkZW50aWFsczsKLX0KLQotaW5saW5lIGF1
dG8gRmV0Y2hSZXF1ZXN0OjpkZXN0aW5hdGlvbigpIGNvbnN0IC0+IERlc3RpbmF0aW9uCi17Ci0g
ICAgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMuZGVzdGluYXRpb247Ci19Ci0KLWlu
bGluZSBhdXRvIEZldGNoUmVxdWVzdDo6bW9kZSgpIGNvbnN0IC0+IE1vZGUKLXsKLSAgICByZXR1
cm4gbV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5tb2RlOwotfQotCi1pbmxpbmUgYXV0byBGZXRj
aFJlcXVlc3Q6OnJlZGlyZWN0KCkgY29uc3QgLT4gUmVkaXJlY3QKLXsKLSAgICByZXR1cm4gbV9p
bnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5yZWRpcmVjdDsKLX0KLQotaW5saW5lIGF1dG8gRmV0Y2hS
ZXF1ZXN0OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0IC0+IFJlZmVycmVyUG9saWN5Ci17Ci0gICAg
cmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMucmVmZXJyZXJQb2xpY3k7Ci19Ci0KLWlu
bGluZSBhdXRvIEZldGNoUmVxdWVzdDo6dHlwZSgpIGNvbnN0IC0+IFR5cGUKKyAgICAsIG1fcmVx
dWVzdChXVEZNb3ZlKHJlcXVlc3QpKQorICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykp
CisgICAgLCBtX3JlZmVycmVyKFdURk1vdmUocmVmZXJyZXIpKQogewotICAgIHJldHVybiBtX2lu
dGVybmFsUmVxdWVzdC5vcHRpb25zLnR5cGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>