<?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>159642</bug_id>
          
          <creation_ts>2016-07-11 13:08:52 -0700</creation_ts>
          <short_desc>REGRESSION(r203064): This change causes LayoutTest crashes on WK1 ASan (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-07-11 13:11:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159592</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1209764</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-11 13:08:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/203064 broke the build:
This change causes LayoutTest crashes on WK1 ASan (Requested by ryanhaddad on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209766</commentid>
    <comment_count>1</comment_count>
      <attachid>283336</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-11 13:09:25 -0700</bug_when>
    <thetext>Created attachment 283336
ROLLOUT of r203064

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209767</commentid>
    <comment_count>2</comment_count>
      <attachid>283336</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-07-11 13:11:47 -0700</bug_when>
    <thetext>Comment on attachment 283336
ROLLOUT of r203064

Clearing flags on attachment: 283336

Committed r203079: &lt;http://trac.webkit.org/changeset/203079&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209768</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-07-11 13:11:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283336</attachid>
            <date>2016-07-11 13:09:25 -0700</date>
            <delta_ts>2016-07-11 13:11:47 -0700</delta_ts>
            <desc>ROLLOUT of r203064</desc>
            <filename>bug-159642-20160711130844.patch</filename>
            <type>text/plain</type>
            <size>27773</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiZTM2YzA5ZTdiYWUy
Y2JmZDkxYTQyYjYxM2I4MjdiMGY4OGRhYS4uMjFlOTJhZGYzZmYxMTBkYTNmZmJjMjM1MGE0NTQ3
YmIzZWUwOTU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA3LTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjAzMDY0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5NjQyCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2F1c2VzIExheW91
dFRlc3QgY3Jhc2hlcyBvbiBXSzEgQVNhbiAoUmVxdWVzdGVkCisgICAgICAgIGJ5IHJ5YW5oYWRk
YWQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAg
ICJVc2UgcmVmcyBmb3IgUmVzb3VyY2VMb2FkZXJzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTkyCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMzA2NAorCiAyMDE2LTA3LTExICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQ2hlY2sgZm9yIGV4aXN0aW5nIGJ1
ZmZlciBleGlzdHMgZm9yIGVuYWJsZWQgdmVydGV4IGFycmF5IGF0dHJpYnV0ZXMgYmVmb3JlIHBl
cm1pdHRpbmcgZ2xEcmF3QXJyYXlzIHRvIGV4ZWN1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmU4MTFiYWU2NmFm
ZjlhNTFkNWRjNDE0YjFiYzI5ZWVjY2Q1MTIyNS4uNzk0ODVhNzc5NjQ5N2Y1YTk3YzU0NWVhMGUw
MzRlOWQzMDVhNDczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNy0xMSAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjIwMzA2NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1OTY0MgorCisgICAgICAgIFRoaXMgY2hhbmdlIGNhdXNlcyBMYXlv
dXRUZXN0IGNyYXNoZXMgb24gV0sxIEFTYW4gKFJlcXVlc3RlZAorICAgICAgICBieSByeWFuaGFk
ZGFkIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAg
ICAiVXNlIHJlZnMgZm9yIFJlc291cmNlTG9hZGVycyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTU5MgorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yMDMwNjQKKwogMjAxNi0wNy0wOCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSByZWZzIGZvciBSZXNvdXJj
ZUxvYWRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmMTA3NTYzZDI0ZTA0NzliYzIwYmYxYTY4NWZiNzA5Yzll
ODNhODJhLi4zYTlhMzNkYTVhMDY4ZTIzMzg0N2E1MTExNTk5ZDgxOGRkZjFhZjNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMDctMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDMw
NjQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk2
NDIKKworICAgICAgICBUaGlzIGNoYW5nZSBjYXVzZXMgTGF5b3V0VGVzdCBjcmFzaGVzIG9uIFdL
MSBBU2FuIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlVzZSByZWZzIGZvciBSZXNv
dXJjZUxvYWRlcnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTk1OTIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAz
MDY0CisKIDIwMTYtMDctMTEgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBWDogV0tXZWJWaWV3IHNob3VsZCBoYXZlIEFQSSB0byBwcmV2ZW50IHBpbmNoLXRvLXpvb20g
YWx3YXlzIGJlaW5nIGFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
b2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgK
aW5kZXggNGMxYmQ3NjQ2NTIzMTFhYTBhZWI1ODA1ZDIyYjljZjc3NGJiZDg1ZS4uNjIxZWYwZGM4
MjdlOTExN2RhZWQ1NTI2NGFlNjM4ZGE5NDIwNDY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xv
YWRlclN0cmF0ZWd5LmgKQEAgLTUxLDkgKzUxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVm
UHRyPFN1YnJlc291cmNlTG9hZGVyPiBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNvdXJj
ZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291cmNl
RXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFJlc291cmNlTG9hZGVyJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZGVyJiwgYm9vbCkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkZXImLCBj
b25zdCBVUkwmIHJlZGlyZWN0VVJMKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNv
dXJjZUxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNv
dXJjZUxvYWRlciosIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3Jvc3NPcmlnaW5SZWRp
cmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZGVyKiwgY29uc3QgVVJMJiByZWRpcmVjdFVSTCkgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHNlcnZlUGVuZGluZ1JlcXVlc3RzKFJlc291cmNlTG9hZFBy
aW9yaXR5IG1pbmltdW1Qcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQZW5kaW5nUmVxdWVzdHMoKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAzNzE4NmFlMTk3MWI1NGNh
Mzk0ODU3NjM0YjdiYzMzMDQxMTFkYTZkLi4zNjA5YWNmZDkwYjZjYTkwNjg4NzMwMjY1YzFjZDU2
Yzg2ZGFkMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTczLDcgKzczLDcgQEAgUmVzb3VyY2VMb2FkZXI6On5SZXNvdXJjZUxvYWRlcigpCiAKIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OmZpbmlzaE5ldHdvcmtMb2FkKCkKIHsKLSAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cmVtb3ZlKCp0aGlzKTsKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cmVtb3ZlKHRoaXMpOwogCiAgICAgaWYgKG1f
aGFuZGxlKSB7CiAgICAgICAgIEFTU0VSVChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcyk7CkBA
IC0yMjMsNyArMjIzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhi
b29sIGRlZmVycykKICAgICAgICAgc3RhcnQoKTsKICAgICB9CiAKLSAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+c2V0RGVmZXJzTG9hZGluZygqdGhpcywgZGVmZXJz
KTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+c2V0RGVmZXJz
TG9hZGluZyh0aGlzLCBkZWZlcnMpOwogfQogCiBGcmFtZUxvYWRlciogUmVzb3VyY2VMb2FkZXI6
OmZyYW1lTG9hZGVyKCkgY29uc3QKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIFJlc291cmNlTG9h
ZGVyOjpzZXREYXRhQnVmZmVyaW5nUG9saWN5KERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZl
cmluZ1BvbAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFN3aXRjaFRvU3Vic3RpdHV0ZVJlc291
cmNlKCkKIHsKICAgICBBU1NFUlQoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3Vic3RpdHV0ZUxvYWRQ
ZW5kaW5nKHRoaXMpKTsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3ko
KS0+cmVtb3ZlKCp0aGlzKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRl
Z3koKS0+cmVtb3ZlKHRoaXMpOwogICAgIGlmIChtX2hhbmRsZSkKICAgICAgICAgbV9oYW5kbGUt
PmNhbmNlbCgpOwogfQpAQCAtMzY3LDcgKzM2Nyw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
CiAKICAgICBib29sIGlzUmVkaXJlY3QgPSAhcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKTsKICAg
ICBpZiAoaXNSZWRpcmVjdCkKLSAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0
cmF0ZWd5KCktPmNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZCgqdGhpcywgcmVxdWVzdC51cmwo
KSk7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcm9z
c09yaWdpblJlZGlyZWN0UmVjZWl2ZWQodGhpcywgcmVxdWVzdC51cmwoKSk7CiAKICAgICBtX3Jl
cXVlc3QgPSByZXF1ZXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggNWE4ZmNhODc2MTQ1M2Fl
ZmZlMzI2NzBiYjY3OWFiNjYxNGMxYWFjOS4uYjgyYWNjZjI1OTE4MDM4NjQ5MGJkYzc4YTRlNzE2
OGM4MjE1YzZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNjcsMjEgKzY3LDIwIEBAIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlciYgd2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkKIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6SG9zdEluZm9ybWF0aW9uKiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6Omhvc3RGb3JVUkwoY29uc3QgVVJMJiB1cmwsIENyZWF0ZUhvc3RQb2xpY3kgY3JlYXRlSG9z
dFBvbGljeSkKIHsKICAgICBpZiAoIXVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCi0gICAg
ICAgIHJldHVybiAmbV9ub25IVFRQUHJvdG9jb2xIb3N0OworICAgICAgICByZXR1cm4gbV9ub25I
VFRQUHJvdG9jb2xIb3N0OwogCiAgICAgbV9ob3N0cy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAg
U3RyaW5nIGhvc3ROYW1lID0gdXJsLmhvc3QoKTsKICAgICBIb3N0SW5mb3JtYXRpb24qIGhvc3Qg
PSBtX2hvc3RzLmdldChob3N0TmFtZSk7CiAgICAgaWYgKCFob3N0ICYmIGNyZWF0ZUhvc3RQb2xp
Y3kgPT0gQ3JlYXRlSWZOb3RGb3VuZCkgewotICAgICAgICBhdXRvIG5ld0hvc3QgPSBzdGQ6Om1h
a2VfdW5pcXVlPEhvc3RJbmZvcm1hdGlvbj4oaG9zdE5hbWUsIG1heFJlcXVlc3RzSW5GbGlnaHRQ
ZXJIb3N0KTsKLSAgICAgICAgaG9zdCA9IG5ld0hvc3QuZ2V0KCk7Ci0gICAgICAgIG1faG9zdHMu
YWRkKGhvc3ROYW1lLCBXVEZNb3ZlKG5ld0hvc3QpKTsKKyAgICAgICAgaG9zdCA9IG5ldyBIb3N0
SW5mb3JtYXRpb24oaG9zdE5hbWUsIG1heFJlcXVlc3RzSW5GbGlnaHRQZXJIb3N0KTsKKyAgICAg
ICAgbV9ob3N0cy5hZGQoaG9zdE5hbWUsIGhvc3QpOwogICAgIH0KICAgICByZXR1cm4gaG9zdDsK
IH0KIAogV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIo
KQotICAgIDogbV9ub25IVFRQUHJvdG9jb2xIb3N0KFN0cmluZygpLCBtYXhSZXF1ZXN0c0luRmxp
Z2h0Rm9yTm9uSFRUUFByb3RvY29scykKKyAgICA6IG1fbm9uSFRUUFByb3RvY29sSG9zdChuZXcg
SG9zdEluZm9ybWF0aW9uKFN0cmluZygpLCBtYXhSZXF1ZXN0c0luRmxpZ2h0Rm9yTm9uSFRUUFBy
b3RvY29scykpCiAgICAgLCBtX3JlcXVlc3RUaW1lcigqdGhpcywgJldlYlJlc291cmNlTG9hZFNj
aGVkdWxlcjo6cmVxdWVzdFRpbWVyRmlyZWQpCiAgICAgLCBtX3N1c3BlbmRQZW5kaW5nUmVxdWVz
dHNDb3VudCgwKQogICAgICwgbV9pc1NlcmlhbExvYWRpbmdFbmFibGVkKGZhbHNlKQpAQCAtOTcs
NyArOTYsNyBAQCBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6bG9hZFJlc291cmNlKEZyYW1lJiBmcmFtZSwgQwogewogICAgIFJlZlB0cjxTdWJyZXNv
dXJjZUxvYWRlcj4gbG9hZGVyID0gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShmcmFtZSwgcmVz
b3VyY2UsIHJlcXVlc3QsIG9wdGlvbnMpOwogICAgIGlmIChsb2FkZXIpCi0gICAgICAgIHNjaGVk
dWxlTG9hZCgqbG9hZGVyKTsKKyAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSk7CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFNpbmNlIHdlIGRlZmVyIGxvYWRlciBpbml0aWFsaXph
dGlvbiB1bnRpbCBzY2hlZHVsaW5nIG9uIGlPUywgdGhlIGZyYW1lCiAgICAgLy8gbG9hZCBkZWxl
Z2F0ZSB0aGF0IHdvdWxkIGJlIGNhbGxlZCBpbiBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKCkg
b24KQEAgLTExOSwzNSArMTE4LDM2IEBAIFJlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cj4gV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVhCiB7CiAgICAg
UmVmUHRyPE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBsb2FkZXIgPSBOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIHJlcXVlc3QpOwogICAgIGlmIChs
b2FkZXIpCi0gICAgICAgIHNjaGVkdWxlTG9hZCgqbG9hZGVyKTsKKyAgICAgICAgc2NoZWR1bGVM
b2FkKGxvYWRlci5nZXQoKSk7CiAgICAgcmV0dXJuIGxvYWRlcjsKIH0KIAotdm9pZCBXZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VM
b2FkZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291
cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikKIHsKLSAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAi
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2FkIHJlc291cmNlICVwICclcyciLCAmcmVzb3Vy
Y2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7
CisgICAgQVNTRVJUKHJlc291cmNlTG9hZGVyKTsKKworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcs
ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmxvYWQgcmVzb3VyY2UgJXAgJyVzJyIsIHJlc291
cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgp
KTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBJZiB0aGVyZSdzIGEgd2ViIGFyY2hpdmUg
cmVzb3VyY2UgZm9yIHRoaXMgVVJMLCB3ZSBkb24ndCBuZWVkIHRvIHNjaGVkdWxlIHRoZSBsb2Fk
IHNpbmNlIGl0IHdpbGwgbmV2ZXIgdG91Y2ggdGhlIG5ldHdvcmsuCi0gICAgaWYgKCFpc1N1c3Bl
bmRpbmdQZW5kaW5nUmVxdWVzdHMoKSAmJiByZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigp
LT5hcmNoaXZlUmVzb3VyY2VGb3JVUkwocmVzb3VyY2VMb2FkZXIuaU9TT3JpZ2luYWxSZXF1ZXN0
KCkudXJsKCkpKSB7Ci0gICAgICAgIHJlc291cmNlTG9hZGVyLnN0YXJ0TG9hZGluZygpOworICAg
IGlmICghaXNTdXNwZW5kaW5nUGVuZGluZ1JlcXVlc3RzKCkgJiYgcmVzb3VyY2VMb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCktPmFyY2hpdmVSZXNvdXJjZUZvclVSTChyZXNvdXJjZUxvYWRlci0+aU9T
T3JpZ2luYWxSZXF1ZXN0KCkudXJsKCkpKSB7CisgICAgICAgIHJlc291cmNlTG9hZGVyLT5zdGFy
dExvYWRpbmcoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbHNlCi0gICAgaWYgKHJlc291
cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPmFyY2hpdmVSZXNvdXJjZUZvclVSTChyZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7Ci0gICAgICAgIHJlc291cmNlTG9hZGVyLnN0YXJ0
KCk7CisgICAgaWYgKHJlc291cmNlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hcmNoaXZlUmVz
b3VyY2VGb3JVUkwocmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKS51cmwoKSkpIHsKKyAgICAgICAg
cmVzb3VyY2VMb2FkZXItPnN0YXJ0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKElPUykKLSAgICBIb3N0SW5mb3JtYXRpb24qIGhvc3QgPSBob3N0Rm9y
VVJMKHJlc291cmNlTG9hZGVyLmlPU09yaWdpbmFsUmVxdWVzdCgpLnVybCgpLCBDcmVhdGVJZk5v
dEZvdW5kKTsKKyAgICBIb3N0SW5mb3JtYXRpb24qIGhvc3QgPSBob3N0Rm9yVVJMKHJlc291cmNl
TG9hZGVyLT5pT1NPcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwgQ3JlYXRlSWZOb3RGb3VuZCk7CiAj
ZWxzZQotICAgIEhvc3RJbmZvcm1hdGlvbiogaG9zdCA9IGhvc3RGb3JVUkwocmVzb3VyY2VMb2Fk
ZXIudXJsKCksIENyZWF0ZUlmTm90Rm91bmQpOworICAgIEhvc3RJbmZvcm1hdGlvbiogaG9zdCA9
IGhvc3RGb3JVUkwocmVzb3VyY2VMb2FkZXItPnVybCgpLCBDcmVhdGVJZk5vdEZvdW5kKTsKICNl
bmRpZgotICAgIEFTU0VSVChob3N0KTsKIAotICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9y
aXR5ID0gcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCk7CisgICAgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHkgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnByaW9yaXR5
KCk7CiAKICAgICBib29sIGhhZFJlcXVlc3RzID0gaG9zdC0+aGFzUmVxdWVzdHMoKTsKICAgICBo
b3N0LT5zY2hlZHVsZShyZXNvdXJjZUxvYWRlciwgcHJpb3JpdHkpOwpAQCAtMTU2LDIxICsxNTYs
MjEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJj
ZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIpCiAgICAgaWYgKFJlc291cmNlUmVxdWVzdDo6cmVzb3Vy
Y2VQcmlvcml0aWVzRW5hYmxlZCgpICYmICFpc1N1c3BlbmRpbmdQZW5kaW5nUmVxdWVzdHMoKSkg
ewogICAgICAgICAvLyBTZXJ2ZSBhbGwgcmVxdWVzdHMgYXQgb25jZSB0byBrZWVwIHRoZSBwaXBl
bGluZSBmdWxsIGF0IHRoZSBuZXR3b3JrIGxheWVyLgogICAgICAgICAvLyBGSVhNRTogRG9lcyB0
aGlzIGNvZGUgZG8gYW55dGhpbmcgdXNlZnVsLCBnaXZlbiB0aGF0IHdlIGFsc28gc2V0IG1heFJl
cXVlc3RzSW5GbGlnaHRQZXJIb3N0IHRvIGVmZmVjdGl2ZWx5IHVubGltaXRlZCBvbiB0aGVzZSBw
bGF0Zm9ybXM/Ci0gICAgICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKCpob3N0LCBSZXNvdXJjZUxv
YWRQcmlvcml0eTo6VmVyeUxvdyk7CisgICAgICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKGhvc3Qs
IFJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmICgocHJpb3JpdHkgPiBSZXNvdXJj
ZUxvYWRQcmlvcml0eTo6TG93IHx8ICFyZXNvdXJjZUxvYWRlci5pT1NPcmlnaW5hbFJlcXVlc3Qo
KS51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgKHByaW9yaXR5ID09IFJlc291cmNl
TG9hZFByaW9yaXR5OjpMb3cgJiYgIWhhZFJlcXVlc3RzKSkgJiYgIWlzU3VzcGVuZGluZ1BlbmRp
bmdSZXF1ZXN0cygpKSB7CisgICAgaWYgKChwcmlvcml0eSA+IFJlc291cmNlTG9hZFByaW9yaXR5
OjpMb3cgfHwgIXJlc291cmNlTG9hZGVyLT5pT1NPcmlnaW5hbFJlcXVlc3QoKS51cmwoKS5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgKHByaW9yaXR5ID09IFJlc291cmNlTG9hZFByaW9yaXR5
OjpMb3cgJiYgIWhhZFJlcXVlc3RzKSkgJiYgIWlzU3VzcGVuZGluZ1BlbmRpbmdSZXF1ZXN0cygp
KSB7CiAgICAgICAgIC8vIFRyeSB0byByZXF1ZXN0IGltcG9ydGFudCByZXNvdXJjZXMgaW1tZWRp
YXRlbHkuCi0gICAgICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKCpob3N0LCBwcmlvcml0eSk7Cisg
ICAgICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKGhvc3QsIHByaW9yaXR5KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbHNlCi0gICAgaWYgKHByaW9yaXR5ID4gUmVzb3VyY2VMb2FkUHJpb3Jp
dHk6OkxvdyB8fCAhcmVzb3VyY2VMb2FkZXIudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
IHx8IChwcmlvcml0eSA9PSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93ICYmICFoYWRSZXF1ZXN0
cykpIHsKKyAgICBpZiAocHJpb3JpdHkgPiBSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93IHx8ICFy
ZXNvdXJjZUxvYWRlci0+dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IChwcmlvcml0
eSA9PSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93ICYmICFoYWRSZXF1ZXN0cykpIHsKICAgICAg
ICAgLy8gVHJ5IHRvIHJlcXVlc3QgaW1wb3J0YW50IHJlc291cmNlcyBpbW1lZGlhdGVseS4KLSAg
ICAgICAgc2VydmVQZW5kaW5nUmVxdWVzdHMoKmhvc3QsIHByaW9yaXR5KTsKKyAgICAgICAgc2Vy
dmVQZW5kaW5nUmVxdWVzdHMoaG9zdCwgcHJpb3JpdHkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCkBAIC0xODAsMTYgKzE4MCwxOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKICAgICBz
Y2hlZHVsZVNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpyZW1vdmUoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyKQordm9pZCBX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnJlbW92ZShSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VM
b2FkZXIpCiB7Ci0gICAgSG9zdEluZm9ybWF0aW9uKiBob3N0ID0gaG9zdEZvclVSTChyZXNvdXJj
ZUxvYWRlci51cmwoKSk7CisgICAgQVNTRVJUKHJlc291cmNlTG9hZGVyKTsKKworICAgIEhvc3RJ
bmZvcm1hdGlvbiogaG9zdCA9IGhvc3RGb3JVUkwocmVzb3VyY2VMb2FkZXItPnVybCgpKTsKICAg
ICBpZiAoaG9zdCkKICAgICAgICAgaG9zdC0+cmVtb3ZlKHJlc291cmNlTG9hZGVyKTsKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgLy8gUmVzb3VyY2VMb2FkZXI6OnVybCgpIGRvZXNuJ3Qgc3RhcnQg
cmV0dXJuaW5nIHRoZSBjb3JyZWN0IHZhbHVlIHVudGlsIHRoZSBsb2FkIHN0YXJ0cy4gSWYgd2Ug
Z2V0IGNhbmNlbGVkIGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGxvb2sgZm9yIG9yaWdpbmFsUmVx
dWVzdCB1cmwgaW5zdGVhZC4KICAgICAvLyBGSVhNRTogUmVzb3VyY2VMb2FkZXI6OnVybCgpIHNo
b3VsZCBiZSBtYWRlIHRvIHJldHVybiBhIHNlbnNpYmxlIHZhbHVlIGF0IGFsbCB0aW1lcy4KLSAg
ICBpZiAoIXJlc291cmNlTG9hZGVyLmlPU09yaWdpbmFsUmVxdWVzdCgpLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIEhvc3RJbmZvcm1hdGlvbiogb3JpZ2luYWxIb3N0ID0gaG9zdEZvclVSTChyZXNvdXJj
ZUxvYWRlci5pT1NPcmlnaW5hbFJlcXVlc3QoKS51cmwoKSk7CisgICAgaWYgKCFyZXNvdXJjZUxv
YWRlci0+aU9TT3JpZ2luYWxSZXF1ZXN0KCkuaXNOdWxsKCkpIHsKKyAgICAgICAgSG9zdEluZm9y
bWF0aW9uKiBvcmlnaW5hbEhvc3QgPSBob3N0Rm9yVVJMKHJlc291cmNlTG9hZGVyLT5pT1NPcmln
aW5hbFJlcXVlc3QoKS51cmwoKSk7CiAgICAgICAgIGlmIChvcmlnaW5hbEhvc3QgJiYgb3JpZ2lu
YWxIb3N0ICE9IGhvc3QpCiAgICAgICAgICAgICBvcmlnaW5hbEhvc3QtPnJlbW92ZShyZXNvdXJj
ZUxvYWRlcik7CiAgICAgfQpAQCAtMTk3LDE5ICsxOTksMTggQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnJlbW92ZShSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIpCiAgICAg
c2NoZWR1bGVTZXJ2ZVBlbmRpbmdSZXF1ZXN0cygpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciYsIGJvb2wpCit2b2lk
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRl
ciosIGJvb2wpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpjcm9zc09y
aWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBjb25z
dCBVUkwmIHJlZGlyZWN0VVJMKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmNyb3Nz
T3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIGNv
bnN0IFVSTCYgcmVkaXJlY3RVUkwpCiB7Ci0gICAgSG9zdEluZm9ybWF0aW9uKiBvbGRIb3N0ID0g
aG9zdEZvclVSTChyZXNvdXJjZUxvYWRlci51cmwoKSk7CisgICAgSG9zdEluZm9ybWF0aW9uKiBv
bGRIb3N0ID0gaG9zdEZvclVSTChyZXNvdXJjZUxvYWRlci0+dXJsKCkpOwogICAgIEFTU0VSVChv
bGRIb3N0KTsKICAgICBpZiAoIW9sZEhvc3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIEhvc3RJ
bmZvcm1hdGlvbiogbmV3SG9zdCA9IGhvc3RGb3JVUkwocmVkaXJlY3RVUkwsIENyZWF0ZUlmTm90
Rm91bmQpOwotICAgIEFTU0VSVChuZXdIb3N0KTsKIAogICAgIGlmIChvbGRIb3N0LT5uYW1lKCkg
PT0gbmV3SG9zdC0+bmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0yMjksMzggKzIzMCwzNiBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMoUmVz
b3VyY2VMb2FkUHJpb3JpdHkgbWluaW11bQogICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKG1fbm9u
SFRUUFByb3RvY29sSG9zdCwgbWluaW11bVByaW9yaXR5KTsKIAogICAgIFZlY3RvcjxIb3N0SW5m
b3JtYXRpb24qPiBob3N0c1RvU2VydmU7Ci0gICAgaG9zdHNUb1NlcnZlLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkobV9ob3N0cy5zaXplKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYgaG9zdCA6IG1f
aG9zdHMudmFsdWVzKCkpCi0gICAgICAgIGhvc3RzVG9TZXJ2ZS51bmNoZWNrZWRBcHBlbmQoaG9z
dC5nZXQoKSk7CisgICAgY29weVZhbHVlc1RvVmVjdG9yKG1faG9zdHMsIGhvc3RzVG9TZXJ2ZSk7
CiAKICAgICBmb3IgKGF1dG8qIGhvc3QgOiBob3N0c1RvU2VydmUpIHsKICAgICAgICAgaWYgKGhv
c3QtPmhhc1JlcXVlc3RzKCkpCi0gICAgICAgICAgICBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cygqaG9z
dCwgbWluaW11bVByaW9yaXR5KTsKKyAgICAgICAgICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKGhv
c3QsIG1pbmltdW1Qcmlvcml0eSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faG9zdHMu
cmVtb3ZlKGhvc3QtPm5hbWUoKSk7CisgICAgICAgICAgICBkZWxldGUgbV9ob3N0cy50YWtlKGhv
c3QtPm5hbWUoKSk7CiAgICAgfQogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
c2VydmVQZW5kaW5nUmVxdWVzdHMoSG9zdEluZm9ybWF0aW9uJiBob3N0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtaW5pbXVtUHJpb3JpdHkpCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
c2VydmVQZW5kaW5nUmVxdWVzdHMoSG9zdEluZm9ybWF0aW9uKiBob3N0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtaW5pbXVtUHJpb3JpdHkpCiB7Ci0gICAgTE9HKFJlc291cmNlTG9hZGluZywgIldl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMgSG9zdEluZm9ybWF0
aW9uLm1fbmFtZT0nJXMnIiwgaG9zdC5uYW1lKCkubGF0aW4xKCkuZGF0YSgpKTsKKyAgICBMT0co
UmVzb3VyY2VMb2FkaW5nLCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzZXJ2ZVBlbmRpbmdS
ZXF1ZXN0cyBIb3N0SW5mb3JtYXRpb24ubV9uYW1lPSclcyciLCBob3N0LT5uYW1lKCkubGF0aW4x
KCkuZGF0YSgpKTsKIAogICAgIGF1dG8gcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6
SGlnaGVzdDsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBhdXRvJiByZXF1ZXN0c1BlbmRp
bmcgPSBob3N0LnJlcXVlc3RzUGVuZGluZyhwcmlvcml0eSk7CisgICAgICAgIGF1dG8mIHJlcXVl
c3RzUGVuZGluZyA9IGhvc3QtPnJlcXVlc3RzUGVuZGluZyhwcmlvcml0eSk7CiAgICAgICAgIHdo
aWxlICghcmVxdWVzdHNQZW5kaW5nLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgUmVmPFJlc291
cmNlTG9hZGVyPiByZXNvdXJjZUxvYWRlciA9IHJlcXVlc3RzUGVuZGluZy5maXJzdCgpLmNvcHlS
ZWYoKTsKKyAgICAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRlcj4gcmVzb3VyY2VMb2FkZXIg
PSByZXF1ZXN0c1BlbmRpbmcuZmlyc3QoKTsKIAogICAgICAgICAgICAgLy8gRm9yIG5hbWVkIGhv
c3RzIC0gd2hpY2ggYXJlIG9ubHkgaHR0cChzKSBob3N0cyAtIHdlIHNob3VsZCBhbHdheXMgZW5m
b3JjZSB0aGUgY29ubmVjdGlvbiBsaW1pdC4KICAgICAgICAgICAgIC8vIEZvciBub24tbmFtZWQg
aG9zdHMgLSBldmVyeXRoaW5nIGJ1dCBodHRwKHMpIC0gd2Ugc2hvdWxkIG9ubHkgZW5mb3JjZSB0
aGUgbGltaXQgaWYgdGhlIGRvY3VtZW50IGlzbid0IGRvbmUgcGFyc2luZyAKICAgICAgICAgICAg
IC8vIGFuZCB3ZSBkb24ndCBrbm93IGFsbCBzdHlsZXNoZWV0cyB5ZXQuCiAgICAgICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSByZXNvdXJjZUxvYWRlci0+ZnJhbWVMb2FkZXIoKSA/IHJlc291
cmNlTG9hZGVyLT5mcmFtZUxvYWRlcigpLT5mcmFtZSgpLmRvY3VtZW50KCkgOiAwOwotICAgICAg
ICAgICAgYm9vbCBzaG91bGRMaW1pdFJlcXVlc3RzID0gIWhvc3QubmFtZSgpLmlzTnVsbCgpIHx8
IChkb2N1bWVudCAmJiAoZG9jdW1lbnQtPnBhcnNpbmcoKSB8fCAhZG9jdW1lbnQtPmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSk7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkTGltaXRSZXF1ZXN0cyAm
JiBob3N0LmxpbWl0UmVxdWVzdHMocHJpb3JpdHkpKQorICAgICAgICAgICAgYm9vbCBzaG91bGRM
aW1pdFJlcXVlc3RzID0gIWhvc3QtPm5hbWUoKS5pc051bGwoKSB8fCAoZG9jdW1lbnQgJiYgKGRv
Y3VtZW50LT5wYXJzaW5nKCkgfHwgIWRvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkp
OworICAgICAgICAgICAgaWYgKHNob3VsZExpbWl0UmVxdWVzdHMgJiYgaG9zdC0+bGltaXRSZXF1
ZXN0cyhwcmlvcml0eSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBy
ZXF1ZXN0c1BlbmRpbmcucmVtb3ZlRmlyc3QoKTsKLSAgICAgICAgICAgIGhvc3QuYWRkTG9hZElu
UHJvZ3Jlc3MocmVzb3VyY2VMb2FkZXIuZ2V0KCkpOworICAgICAgICAgICAgaG9zdC0+YWRkTG9h
ZEluUHJvZ3Jlc3MocmVzb3VyY2VMb2FkZXIuZ2V0KCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICAgICAgICAgIGlmICghSU9TQXBwbGljYXRpb246OmlzV2ViUHJvY2VzcygpKSB7CiAgICAgICAg
ICAgICAgICAgcmVzb3VyY2VMb2FkZXItPnN0YXJ0TG9hZGluZygpOwpAQCAtMjg2LDcgKzI4NSw3
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpyZXN1bWVQZW5kaW5nUmVxdWVzdHMo
KQogICAgIC0tbV9zdXNwZW5kUGVuZGluZ1JlcXVlc3RzQ291bnQ7CiAgICAgaWYgKG1fc3VzcGVu
ZFBlbmRpbmdSZXF1ZXN0c0NvdW50KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFtX2hvc3Rz
LmlzRW1wdHkoKSB8fCBtX25vbkhUVFBQcm90b2NvbEhvc3QuaGFzUmVxdWVzdHMoKSkKKyAgICBp
ZiAoIW1faG9zdHMuaXNFbXB0eSgpIHx8IG1fbm9uSFRUUFByb3RvY29sSG9zdC0+aGFzUmVxdWVz
dHMoKSkKICAgICAgICAgc2NoZWR1bGVTZXJ2ZVBlbmRpbmdSZXF1ZXN0cygpOwogfQogICAgIApA
QCAtMzMyLDI1ICszMzEsMjUgQEAgdW5zaWduZWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpI
b3N0SW5mb3JtYXRpb246OnByaW9yaXR5VG9JbmRleChSZXNvdXJjZUxvYWQKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6Okhvc3RJbmZvcm1hdGlvbjo6
c2NoZWR1bGUoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpIb3N0SW5mb3Jt
YXRpb246OnNjaGVkdWxlKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgbV9yZXF1ZXN0c1BlbmRpbmdbcHJpb3JpdHlU
b0luZGV4KHByaW9yaXR5KV0uYXBwZW5kKHJlc291cmNlTG9hZGVyKTsKIH0KICAgICAKLXZvaWQg
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpIb3N0SW5mb3JtYXRpb246OmFkZExvYWRJblByb2dy
ZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpIb3N0SW5mb3JtYXRpb246OmFkZExvYWRJblByb2dyZXNzKFJlc291cmNlTG9h
ZGVyKiByZXNvdXJjZUxvYWRlcikKIHsKLSAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiSG9zdElu
Zm9ybWF0aW9uICclcycgbG9hZGluZyAnJXMnLiBDdXJyZW50IGNvdW50ICVkIiwgbV9uYW1lLmxh
dGluMSgpLmRhdGEoKSwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0
YSgpLCBtX3JlcXVlc3RzTG9hZGluZy5zaXplKCkpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcs
ICJIb3N0SW5mb3JtYXRpb24gJyVzJyBsb2FkaW5nICclcycuIEN1cnJlbnQgY291bnQgJWQiLCBt
X25hbWUubGF0aW4xKCkuZGF0YSgpLCByZXNvdXJjZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCBtX3JlcXVlc3RzTG9hZGluZy5zaXplKCkpOwogICAgIG1fcmVxdWVzdHNM
b2FkaW5nLmFkZChyZXNvdXJjZUxvYWRlcik7CiB9CiAgICAgCi12b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6SG9zdEluZm9ybWF0aW9uOjpyZW1vdmUoUmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTG9hZGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6Okhvc3RJbmZvcm1hdGlv
bjo6cmVtb3ZlKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikKIHsKICAgICBpZiAobV9y
ZXF1ZXN0c0xvYWRpbmcucmVtb3ZlKHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGZvciAoYXV0byYgcmVxdWVzdFF1ZXVlIDogbV9yZXF1ZXN0c1BlbmRpbmcpIHsK
ICAgICAgICAgZm9yIChhdXRvIGl0ID0gcmVxdWVzdFF1ZXVlLmJlZ2luKCksIGVuZCA9IHJlcXVl
c3RRdWV1ZS5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICBpZiAoaXQtPnB0
cigpID09ICZyZXNvdXJjZUxvYWRlcikgeworICAgICAgICAgICAgaWYgKCppdCA9PSByZXNvdXJj
ZUxvYWRlcikgewogICAgICAgICAgICAgICAgIHJlcXVlc3RRdWV1ZS5yZW1vdmUoaXQpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDk4
NjlhMmZjOGI3M2NjOWQ3YjUyMDhhYWYxY2MyYjI3M2I1MDlmYTQuLjNhNTkzYjM0MzNiZDgwYTVk
MGI5NjNiOWY4ZjE5ZTMxODEwMjczNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtMjAsNyArMjAsOCBA
QAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNwcmFnbWEgb25jZQor
I2lmbmRlZiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXJfaAorI2RlZmluZSBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgpAQCAtNDYsOSArNDcsOSBAQCBwdWJs
aWM6CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+IGxvYWRSZXNvdXJj
ZShXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25z
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6
Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkNsaWVudENy
ZWRlbnRpYWxQb2xpY3ksIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmUoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldERlZmVyc0xvYWRp
bmcoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXImLCBib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIGNy
b3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpIG92ZXJyaWRlOworICAgIHZvaWQgcmVtb3ZlKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBj
cm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpVUkwmIHJlZGlyZWN0VVJMKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIHNl
cnZlUGVuZGluZ1JlcXVlc3RzKFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IG1pbmltdW1Q
cmlvcml0eSA9IFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93KSBvdmVycmlk
ZTsKICAgICB2b2lkIHN1c3BlbmRQZW5kaW5nUmVxdWVzdHMoKSBvdmVycmlkZTsKQEAgLTY1LDcg
KzY2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYlJlc291cmNlTG9hZFNjaGVkdWxl
cigpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc2NoZWR1bGVMb2FkKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyJik7CisgICAgdm9pZCBzY2hlZHVsZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIq
KTsKICAgICB2b2lkIHNjaGVkdWxlU2VydmVQZW5kaW5nUmVxdWVzdHMoKTsKICAgICB2b2lkIHJl
cXVlc3RUaW1lckZpcmVkKCk7CiAKQEAgLTc4LDIwICs3OSwyMCBAQCBwcml2YXRlOgogICAgICAg
ICB+SG9zdEluZm9ybWF0aW9uKCk7CiAgICAgICAgIAogICAgICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICAgICAgdm9pZCBzY2hlZHVsZShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5ID0gV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHk6OlZlcnlMb3cpOwotICAgICAgICB2b2lkIGFkZExv
YWRJblByb2dyZXNzKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJik7Ci0gICAgICAgIHZvaWQgcmVt
b3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJik7CisgICAgICAgIHZvaWQgc2NoZWR1bGUoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXIqLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFdl
YkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93KTsKKyAgICAgICAgdm9pZCBhZGRM
b2FkSW5Qcm9ncmVzcyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopOworICAgICAgICB2b2lkIHJl
bW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopOwogICAgICAgICBib29sIGhhc1JlcXVlc3Rz
KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgbGltaXRSZXF1ZXN0cyhXZWJDb3JlOjpSZXNvdXJjZUxv
YWRQcmlvcml0eSkgY29uc3Q7CiAKLSAgICAgICAgdHlwZWRlZiBEZXF1ZTxSZWY8V2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXI+PiBSZXF1ZXN0UXVldWU7CisgICAgICAgIHR5cGVkZWYgRGVxdWU8UmVm
UHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPj4gUmVxdWVzdFF1ZXVlOwogICAgICAgICBSZXF1
ZXN0UXVldWUmIHJlcXVlc3RzUGVuZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSkgeyByZXR1cm4gbV9yZXF1ZXN0c1BlbmRpbmdbcHJpb3JpdHlUb0luZGV4KHByaW9y
aXR5KV07IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBwcmlvcml0
eVRvSW5kZXgoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkpOwogCiAgICAgICAgIHN0ZDo6
YXJyYXk8UmVxdWVzdFF1ZXVlLCBXZWJDb3JlOjpyZXNvdXJjZUxvYWRQcmlvcml0eUNvdW50PiBt
X3JlcXVlc3RzUGVuZGluZzsKLSAgICAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcj4+IFJlcXVlc3RNYXA7CisgICAgICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQ
dHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+PiBSZXF1ZXN0TWFwOwogICAgICAgICBSZXF1ZXN0
TWFwIG1fcmVxdWVzdHNMb2FkaW5nOwogICAgICAgICBjb25zdCBTdHJpbmcgbV9uYW1lOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBtX21heFJlcXVlc3RzSW5GbGlnaHQ7CkBAIC0xMDMsMTMgKzEw
NCwxNiBAQCBwcml2YXRlOgogICAgIH07CiAgICAgCiAgICAgSG9zdEluZm9ybWF0aW9uKiBob3N0
Rm9yVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIENyZWF0ZUhvc3RQb2xpY3kgPSBGaW5kT25seSk7
Ci0gICAgdm9pZCBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyhIb3N0SW5mb3JtYXRpb24mLCBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXJ2ZVBl
bmRpbmdSZXF1ZXN0cyhIb3N0SW5mb3JtYXRpb24qLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlv
cml0eSk7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEhvc3RJbmZvcm1h
dGlvbj4+IG1faG9zdHM7Ci0gICAgSG9zdEluZm9ybWF0aW9uIG1fbm9uSFRUUFByb3RvY29sSG9z
dDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBIb3N0SW5mb3JtYXRpb24qLCBTdHJpbmdI
YXNoPiBIb3N0TWFwOworICAgIEhvc3RNYXAgbV9ob3N0czsKKyAgICBIb3N0SW5mb3JtYXRpb24q
IG1fbm9uSFRUUFByb3RvY29sSG9zdDsKICAgICAgICAgCiAgICAgV2ViQ29yZTo6VGltZXIgbV9y
ZXF1ZXN0VGltZXI7CiAKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRQZW5kaW5nUmVxdWVzdHNDb3Vu
dDsKICAgICBib29sIG1faXNTZXJpYWxMb2FkaW5nRW5hYmxlZDsKIH07CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKaW5kZXggYTI0ODYwMGNkZDcyZmFhMjViZjM2ZTBkMDJmOWUxMjAzODMzNzdiMi4u
ZmVhMmU3NTUyMmRmMDc1ZjMwM2YwMDEyMWMwMzYxMWU3ZGE3NGZhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CkBAIC0yMTcsMTkgKzIxNywxNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKFdlYkNvcmU6OlJl
c291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKIHsKLSAgICBtX2ludGVybmFsbHlGYWlsZWRS
ZXNvdXJjZUxvYWRlcnMuYWRkKHJlc291cmNlTG9hZGVyKTsKKyAgICBtX2ludGVybmFsbHlGYWls
ZWRSZXNvdXJjZUxvYWRlcnMuYWRkKCZyZXNvdXJjZUxvYWRlcik7CiAgICAgbV9pbnRlcm5hbGx5
RmFpbGVkTG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAogdm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6aW50ZXJuYWxseUZhaWxlZExvYWRUaW1lckZpcmVkKCkKIHsKLSAgICBWZWN0b3I8UmVm
PFJlc291cmNlTG9hZGVyPj4gaW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVyczsKLSAgICBp
bnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9p
bnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBs
b2FkZXIgOiBtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnMpCi0gICAgICAgIGludGVy
bmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnMudW5jaGVja2VkQXBwZW5kKGxvYWRlci5jb3B5UmVm
KCkpOworICAgIFZlY3RvcjxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+PiBpbnRlcm5hbGx5RmFpbGVk
UmVzb3VyY2VMb2FkZXJzOworICAgIGNvcHlUb1ZlY3RvcihtX2ludGVybmFsbHlGYWlsZWRSZXNv
dXJjZUxvYWRlcnMsIGludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnMpOwogICAgIAotICAg
IGZvciAoYXV0byYgbG9hZGVyIDogaW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVycykKLSAg
ICAgICAgbG9hZGVyLT5kaWRGYWlsKGludGVybmFsRXJyb3IobG9hZGVyLT51cmwoKSkpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVycy5z
aXplKCk7ICsraSkKKyAgICAgICAgaW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVyc1tpXS0+
ZGlkRmFpbChpbnRlcm5hbEVycm9yKGludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnNbaV0t
PnVybCgpKSk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0TG9jYWxMb2FkKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKQEAgLTIzOCwxNiArMjM2LDE3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0TG9jYWxMb2FkKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQo
cmVzb3VyY2VMb2FkZXIuaWRlbnRpZmllcigpLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJl
c291cmNlTG9hZGVyKSk7CiB9CiAKLXZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZShSZXNv
dXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIpCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1v
dmUoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyKQogewotICAgIExPRyhOZXR3b3JrU2No
ZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlLCB1cmwgJyVz
JyIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEFT
U0VSVChyZXNvdXJjZUxvYWRlcik7CisgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlBy
b2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUsIHVybCAnJXMnIiwgcmVzb3VyY2VMb2Fk
ZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKG1faW50ZXJuYWxs
eUZhaWxlZFJlc291cmNlTG9hZGVycy5jb250YWlucyhyZXNvdXJjZUxvYWRlcikpIHsKICAgICAg
ICAgbV9pbnRlcm5hbGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzLnJlbW92ZShyZXNvdXJjZUxvYWRl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gcmVzb3VyY2VMb2FkZXIuaWRlbnRpZmllcigpOworICAgIFJlc291
cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciA9IHJlc291cmNlTG9hZGVyLT5pZGVudGlmaWVy
KCk7CiAgICAgaWYgKCFpZGVudGlmaWVyKSB7CiAgICAgICAgIExPR19FUlJPUigiV2ViTG9hZGVy
U3RyYXRlZ3kgcmVtb3ZpbmcgYSBSZXNvdXJjZUxvYWRlciB0aGF0IGhhcyBubyBpZGVudGlmaWVy
LiIpOwogICAgICAgICByZXR1cm47CkBAIC0yNjUsMTMgKzI2NCwxMyBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpyZW1vdmUoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyKQogICAgIGxv
YWRlci0+ZGV0YWNoRnJvbUNvcmVMb2FkZXIoKTsKIH0KIAotdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIGJvb2wg
ZGVmZXJzKQordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJj
ZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIGJvb2wgZGVmZXJzKQogewotICAgIFJlc291cmNlTG9h
ZElkZW50aWZpZXIgaWRlbnRpZmllciA9IHJlc291cmNlTG9hZGVyLmlkZW50aWZpZXIoKTsKKyAg
ICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRlci0+aWRl
bnRpZmllcigpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlNldERlZmVyc0xvYWRpbmcoaWRlbnRpZmllciwgZGVmZXJzKSwgMCk7CiB9CiAKLXZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJj
ZUxvYWRlciYsIGNvbnN0IFVSTCYpCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpjcm9zc09yaWdp
blJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBVUkwmKQogewogICAgIC8v
IFdlIGhhbmRsZSBjcm9zcyBvcmlnaW4gcmVkaXJlY3RzIGVudGlyZWx5IHdpdGhpbiB0aGUgTmV0
d29ya1Byb2Nlc3MuCiAgICAgLy8gV2Ugb3ZlcnJpZGUgdGhpcyBjYWxsIGluIHRoZSBXZWJQcm9j
ZXNzIHRvIG1ha2UgaXQgYSBuby1vcC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggNDZiMmYyMTFmYjcyYmNhMzVk
ZjIzZjgwMjg5YTY0MWM5ZWQzM2Q4OC4uYzk0YmFjMjE1NGYzMmZmYWFlNTkxYTZiYTdiODAwM2Vm
OWZkYzRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTQ2LDkgKzQ2LDkgQEAgcHVibGljOgogICAgIFJlZlB0
cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4gbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRl
eHQqLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpD
bGllbnRDcmVkZW50aWFsUG9saWN5LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYpIG92ZXJyaWRlOwotICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIGJvb2wpIG92ZXJyaWRl
OwotICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyJiwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCkgb3ZlcnJpZGU7CisgICAg
dm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBib29sKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpIG92ZXJyaWRlOwogICAg
IAogICAgIHZvaWQgc2VydmVQZW5kaW5nUmVxdWVzdHMoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJp
b3JpdHkgbWluaW11bVByaW9yaXR5KSBvdmVycmlkZTsKIApAQCAtNjgsNyArNjgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgaW50ZXJuYWxseUZhaWxlZExvYWRUaW1lckZpcmVkKCk7CiAgICAgdm9p
ZCBzdGFydExvY2FsTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYpOwogCi0gICAgSGFzaFNl
dDxSZWY8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+PiBtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJj
ZUxvYWRlcnM7CisgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+PiBt
X2ludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7CiAgICAgUnVuTG9vcDo6VGltZXI8V2Vi
TG9hZGVyU3RyYXRlZ3k+IG1faW50ZXJuYWxseUZhaWxlZExvYWRUaW1lcjsKICAgICAKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4+IG1fd2ViUmVz
b3VyY2VMb2FkZXJzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>