<?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>203255</bug_id>
          
          <creation_ts>2019-10-22 09:53:02 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add support for continuous content/commit boundary check</short_desc>
          <delta_ts>2019-10-22 14:11:56 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582412</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-22 09:53:02 -0700</bug_when>
    <thetext>so that &lt;span&gt;first&lt;/span&gt;&lt;span&gt;second&lt;/span&gt;&lt;span&gt;third&lt;/span&gt;
content gets committed on the line as one, continuous text content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582413</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-22 09:55:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/56503598&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582430</commentid>
    <comment_count>2</comment_count>
      <attachid>381560</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-10-22 10:37:28 -0700</bug_when>
    <thetext>Created attachment 381560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582475</commentid>
    <comment_count>3</comment_count>
      <attachid>381578</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-10-22 12:00:45 -0700</bug_when>
    <thetext>Created attachment 381578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582557</commentid>
    <comment_count>4</comment_count>
      <attachid>381578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-22 14:11:54 -0700</bug_when>
    <thetext>Comment on attachment 381578
Patch

Clearing flags on attachment: 381578

Committed r251455: &lt;https://trac.webkit.org/changeset/251455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582558</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-22 14:11:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381560</attachid>
            <date>2019-10-22 10:37:28 -0700</date>
            <delta_ts>2019-10-22 12:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203255-20191022103728.patch</filename>
            <type>text/plain</type>
            <size>22457</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0MzNlMzY5NmViNGRm
MTk2OThjZWMwZWYwM2FjZTllZTNmYzVlZC4uMmNlYmFlNDFkNzA1ZmRjNTAwNDE3YjdiOGNmYWRk
N2YxMTk1MDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3Vw
cG9ydCBmb3IgY29udGludW91cyBjb250ZW50L2NvbW1pdCBib3VuZGFyeSBjaGVjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjU1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjUwMzU5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY29udGludW91
cyBjb250ZW50IGFuZCBjb21taXQgYm91bmRhcnkgY2hlY2suCisgICAgICAgIAorICAgICAgICA8
c3BhbiBzdHlsZT0icGFkZGluZy1yaWdodDogMTBweDsiPnRleHRjb250ZW50PC9zcGFuPgorCisg
ICAgICAgIFRoZSBjb250ZW50IGFib3ZlIGZvcm1zIGEgY29udGludW91cywgdW5icmVha2FibGUg
cnVuIG9mIChbY29udGFpbmVyIHN0YXJ0XVt0ZXh0Y29udGVudF1bY29udGFpbmVyIGVuZCB3aXRo
IGhvcml6b250YWwgcGFkZGluZyBvZiAxMHB4XSkuCisgICAgICAgIEhvd2V2ZXIgYXQgdGhpcyBw
b2ludCB3ZSBkb24ndCBrbm93IHlldCB3aGV0aGVyIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBy
dW4gYW5kIHdlIG5lZWQgdG8ga2VlcCBjaGVja2luZyBmb3IgdGhlIHRyYWlsaW5nIGNvbnRlbnQu
CisgICAgICAgIEluIGdlbmVyYWwsIHdlIGNhbid0IHN1Ym1pdCB0aGUgcnVuIHRvIHRoZSBsaW5l
IGJyZWFraW5nIHVubGVzcyB3ZSBtYW5hZ2VkIHRvIGZpbmQgdGhlIGNvbW1pdCBib3VuZGFyeSBm
b3IgdGhlIGN1cnJlbnQgcnVuLgorCisgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nLXJpZ2h0
OiAxMHB4OyI+dGV4dGNvbnRlbnQ8L3NwYW4+PGltZyBzcmM9ImJyb2tlbi5qcGciPgorICAgICAg
ICAgICAgVGhpcyBjb250ZW50IHByb2R1Y2VzIHR3byBzZXBhcmF0ZSBydW5zIGFzIGZvbGxvd3M6
CisgICAgICAgICAgICAxLiAoW2NvbnRhaW5lciBzdGFydF1bdGV4dGNvbnRlbnRdW2NvbnRhaW5l
ciBlbmQgd2l0aCBob3Jpem9udGFsIHBhZGRpbmcgb2YgMTBweF0pCisgICAgICAgICAgICAyLiAo
W2ltZ10pCisgICAgICAgIHZzLgorICAgICAgICA8c3BhbiBzdHlsZT0icGFkZGluZy1yaWdodDog
MTBweDsiPnRleHRjb250ZW50PC9zcGFuPm1vcmV0ZXh0Y29udGVudAorICAgICAgICAgICAgVGhp
cyBjb250ZW50IHByb2R1Y2VzIG9ubHkgb25lIHJ1bgorICAgICAgICAgICAgMS4gKFtjb250YWlu
ZXIgc3RhcnRdW3RleHRjb250ZW50XVtjb250YWluZXIgZW5kIHdpdGggaG9yaXpvbnRhbCBwYWRk
aW5nIG9mIDEwcHhdW21vcmV0ZXh0Y29udGVudF0pCisKKyAgICAgICAgVGhlIGlkZWEgaGVyZSBp
cyB0aGF0IHdlIGRvbid0IGNvbW1pdCB0aGUgY29udGVudCBvbiB0aGUgbGluZSB1bmxlc3Mgd2Ug
aWRlbnRpZmllZCB0aGUgcnVuIGJvdW5kYXJ5LiBJbiBwcmFjdGljZSBpdCBtZWFucyB0aGF0IHdl
IGhhcmRseSBjb21taXQgdGhlIGN1cnJlbnQgaW5saW5lIGl0ZW0gb24gdGhlIGxpbmUKKyAgICAg
ICAgYnV0IGluc3RlYWQgd2UgdXNlIGl0IHRvIGRlY2lkZSB3aGV0aGVyIHRoZSB1bmNvbW1pdHRl
ZCBjb250ZW50IGlzIHJlYWR5IHRvIGJlIGNvbW1pdHRlZC4KKworICAgICAgICBVc2luZyB0aGUg
Zm9sbG93aW5nIGV4YW1wbGU6ICAgICAgICAKKyAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmct
cmlnaHQ6IDEwcHg7Ij50ZXh0Y29udGVudDxpbWcgc3JjPSJicm9rZW4uanBnIj48L3NwYW4+Cisg
ICAgICAgIAorICAgICAgICBJbmNvbWluZyBpbmxpbmUgaXRlbXMgYXJlOgorICAgICAgICAgW2Nv
bnRhaW5lciBzdGFydF0gLT4gd2UgY2FuJ3QgaWRlbnRpZnkgdGhlIHJ1biBib3VuZGFyeSAtPiBh
ZGQgaW5saW5lIGl0ZW0gdG8gcGVuZGluZyBjb250ZW50CisgICAgICAgICBbdGV4dGNvbnRlbnRd
IC0+IHdlIHN0aWxsIGNhbid0IGlkZW50aWZ5IHRoZSBydW4gYm91bmRhcnkgc2luZSB3ZSBkb24n
dCBrbm93IHdoYXQgdGhlIG5leHQgaW5saW5lIGl0ZW0gaXMgLT4gYWRkIGlubGluZSBpdGVtIHRv
IHBlbmRpbmcgY29udGVudAorICAgICAgICAgW2ltZ10gLT4gbm93IHdlIGtub3cgdGhhdCB0aGUg
W2NvbnRhaW5lciBzdGFydF1bdGV4dGNvbnRlbnRdIGlzIG9uIGEgY29tbWl0IGJvdW5kYXJ5IC0+
IGNvbW1pdCBwZW5kaW5nIGNvbnRlbnQgLT4gaG93ZXZlciB0aGUgY3VycmVudCBbaW1nXSBpdGVt
J3MgYm91bmRhcnkgaXMgdW5rbm93bi4KKyAgICAgICAgIFtjb250YWluZXIgZW5kIHdpdGggaG9y
aXpvbnRhbCBwYWRkaW5nIG9mIDEwcHhdIC0+IE5vdyB0aGUgW2ltZ10gYW5kIFtjb250YWluZXIg
ZW5kXSBmb3JtIGFuIHVuYnJlYWthYmxlIHJ1biBidXQgd2UgZG9uJ3QgeWV0IGtub3cgaWYgdGhp
cyBpcyBhIHJ1biBib3VuZGFyeQorICAgICAgICAgLSBFbmQgb2YgY29udGVudCAtPiBhbHdheXMg
YSBjb21taXQgYm91bmRhcnkgLT4gY29tbWl0IHBlbmRpbmcgaXRlbXMgLT4gKFtpbWddW2NvbnRh
aW5lciBlbmRdKSAgCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpi
cmVha2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
YnJlYWtpbmdDb250ZXh0Rm9yRmxvYXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
QnJlYWtlcjo6d29yZEJyZWFraW5nQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQnJlYWtlcjo6aXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmg6Cisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dDo6cGxhY2VJbmxpbmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dDo6cHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OnNob3VsZFByb2Nlc3NVbmNvbW1pdHRlZENvbnRl
bnQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVM
YXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dDo6VW5jb21taXR0
ZWRDb250ZW50OjpydW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dDo6
VW5jb21taXR0ZWRDb250ZW50OjpydW5zIGNvbnN0KToKKwogMjAxOS0xMC0yMSAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIGlu
Y2x1ZGVzIHRvIGltcHJvdmUgV2ViS2l0MiBidWlsZCBzcGVlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
Y3BwCmluZGV4IDljMDkzODEwODFmNDJjZTVhNzE3MmQwNWIwZGJlNWVhMzE3NGE3ZjUuLjU1ZGUw
Y2JjNjAyZmNlYjMxM2Y0NTAyZDkzZTEyZjU0ODkzYTcxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtl
ci5jcHAKQEAgLTM1LDI3ICszNSwzMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IExheW91dCB7CiAKLUxpbmVCcmVha2VyOjpCcmVha2luZ0NvbnRleHQgTGluZUJyZWFrZXI6OmJy
ZWFraW5nQ29udGV4dChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgY29uc3QgTGluZUNvbnRleHQmIGxpbmVDb250ZXh0KQorTGluZUJyZWFrZXI6
OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OmJyZWFraW5nQ29udGV4dChjb25zdCBWZWN0
b3I8TGluZUxheW91dDo6UnVuPiYgcnVucywgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpCiB7CiAgICAgLy8gRmlyc3Qg
Y29udGVudCBhbHdheXMgc3RheXMgb24gbGluZS4KLSAgICBpZiAobGluZUNvbnRleHQuaXNFbXB0
eSB8fCBsb2dpY2FsV2lkdGggPD0gbGluZUNvbnRleHQuYXZhaWxhYmxlV2lkdGgpCi0gICAgICAg
IHJldHVybiB7IEJyZWFraW5nQmVoYXZpb3I6OktlZXAsIGlzQXRCcmVha2luZ09wcG9ydHVuaXR5
KGlubGluZUl0ZW0pIH07Ci0KLSAgICBpZiAoaW5saW5lSXRlbS5pc0hhcmRMaW5lQnJlYWsoKSkK
LSAgICAgICAgcmV0dXJuIHsgQnJlYWtpbmdCZWhhdmlvcjo6S2VlcCwgaXNBdEJyZWFraW5nT3Bw
b3J0dW5pdHkoaW5saW5lSXRlbSkgfTsKKyAgICBpZiAobGluZUlzRW1wdHkgfHwgbG9naWNhbFdp
ZHRoIDw9IGF2YWlsYWJsZVdpZHRoKQorICAgICAgICByZXR1cm4gQnJlYWtpbmdCZWhhdmlvcjo6
S2VlcDsKIAorICAgIC8vIEZJWE1FOiBMb29rIGluc2lkZSB0aGUgbGlzdCB0byBmaW5kIG91dCB3
aGV0aGVyIGl0IHJlcXVpcmVzIHRleHQgY29udGVudCByZWxhdGVkIGxpbmUgYnJlYWtpbmcgKGUu
ZyA8c3Bhbj50ZXh0PC9zcGFuPiA8LSB0aGUgZmlyc3QgaW5saW5lIGl0ZW0gaGVyZSBpcyBhICdj
b250YWluZXIgc3RhcnQnIGJ1dCB0aGUgY29udGVudCBpcyB0ZXh0IG9ubHkpLgorICAgIGF1dG8m
IGlubGluZUl0ZW0gPSBydW5zLmZpcnN0KCkuaW5saW5lSXRlbTsKICAgICBpZiAoaXM8SW5saW5l
VGV4dEl0ZW0+KGlubGluZUl0ZW0pKQotICAgICAgICByZXR1cm4geyB3b3JkQnJlYWtpbmdCZWhh
dmlvcihkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGxpbmVDb250ZXh0Lmlz
RW1wdHkpLCBpc0F0QnJlYWtpbmdPcHBvcnR1bml0eShpbmxpbmVJdGVtKSB9OworICAgICAgICBy
ZXR1cm4gd29yZEJyZWFraW5nQmVoYXZpb3IocnVucywgbGluZUlzRW1wdHkpOwogCi0gICAgLy8g
V3JhcCBub24tdGV4dCBib3hlcyB0byB0aGUgbmV4dCBsaW5lIHVubGVzcyB3ZSBjYW4gdHJpbSB0
cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBsaW5lQ29udGV4
dC5hdmFpbGFibGVXaWR0aCArIGxpbmVDb250ZXh0LnRyaW1tYWJsZVdpZHRoOwotICAgIGlmIChs
b2dpY2FsV2lkdGggPD0gYXZhaWxhYmxlV2lkdGgpCi0gICAgICAgIHJldHVybiB7IEJyZWFraW5n
QmVoYXZpb3I6OktlZXAsIGlzQXRCcmVha2luZ09wcG9ydHVuaXR5KGlubGluZUl0ZW0pIH07Ci0g
ICAgcmV0dXJuIHsgQnJlYWtpbmdCZWhhdmlvcjo6V3JhcCwgaXNBdEJyZWFraW5nT3Bwb3J0dW5p
dHkoaW5saW5lSXRlbSkgfTsKKyAgICByZXR1cm4gQnJlYWtpbmdCZWhhdmlvcjo6V3JhcDsKIH0K
IAotTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2lu
Z0JlaGF2aW9yKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBib29sIGxpbmVJc0Vt
cHR5KSBjb25zdAorTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OmJy
ZWFraW5nQ29udGV4dEZvckZsb2F0KExheW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpCiB7CisgICAgcmV0dXJuIChs
aW5lSXNFbXB0eSB8fCBmbG9hdExvZ2ljYWxXaWR0aCA8PSBhdmFpbGFibGVXaWR0aCkgPyBCcmVh
a2luZ0JlaGF2aW9yOjpLZWVwIDogQnJlYWtpbmdCZWhhdmlvcjo6V3JhcDsKK30KKworTGluZUJy
ZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2aW9y
KGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0OjpSdW4+JiBydW5zLCBib29sIGxpbmVJc0VtcHR5KSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBDaGVjayB3aGVyZSB0aGUgb3ZlcmZsb3cgb2NjdXJzIGFu
ZCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgdG8gZmlndXJlIG91dCB0aGUgYnJlYWtpbmcg
YmVoYXZpb3VyLgorICAgIC8vIDxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBub3JtYWwiPmZpcnN0
PC9zcGFuPjxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwiPnNlY29uZDwvc3Bhbj48
c3BhbiBzdHlsZT0id29yZC1icmVhazogbm9ybWFsIj50aGlyZDwvc3Bhbj4KKyAgICBhdXRvJiBp
bmxpbmVJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KHJ1bnMuZmlyc3QoKS5pbmxpbmVJ
dGVtKTsKKwogICAgIC8vIFdvcmQgYnJlYWtpbmcgYmVoYXZpb3VyOgogICAgIC8vIDEuIFdoaXRl
c2FwY2UgY29sbGFwc2Ugb24gLT4gcHVzaCB3aGl0ZXNwYWNlIHRvIG5leHQgbGluZS4KICAgICAv
LyAyLiBXaGl0ZXNwYWNlIGNvbGxhcHNlIG9mZiAtPiB3aGl0ZXNwYWNlIGlzIHNwbGl0IHdoZXJl
IHBvc3NpYmxlLgpAQCAtODYsMTYgKzkwLDYgQEAgTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZp
b3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2aW9yKGNvbnN0IElubGluZVRleHQKICAg
ICByZXR1cm4gbGluZUlzRW1wdHkgPyBCcmVha2luZ0JlaGF2aW9yOjpLZWVwIDogQnJlYWtpbmdC
ZWhhdmlvcjo6V3JhcDsKIH0KIAotYm9vbCBMaW5lQnJlYWtlcjo6aXNBdEJyZWFraW5nT3Bwb3J0
dW5pdHkoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkKLXsKLSAgICBpZiAoaW5saW5lSXRl
bS5pc0hhcmRMaW5lQnJlYWsoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoaXM8
SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SW5s
aW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLmlzV2hpdGVzcGFjZSgpOwotICAgIHJldHVybiAhaW5s
aW5lSXRlbS5pc0Zsb2F0KCkgJiYgIWlubGluZUl0ZW0uaXNDb250YWluZXJTdGFydCgpICYmICFp
bmxpbmVJdGVtLmlzQ29udGFpbmVyRW5kKCk7Ci19Ci0KIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
cmVha2VyLmgKaW5kZXggZWY5Nzg0ZjE1NGMwNDNjNzNjNDEwZDk4NGU0ZTUxODAwYzM0YWNhYy4u
ZjI3ZjdhYTkxMDg4OGE2OGY1OGYwZTdjNGVjYTEyZDU3YThmYWI2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJl
YWtlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKIAorI2luY2x1ZGUgIklubGluZUxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJMYXlv
dXRVbml0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDIzICszOSwxMiBAQCBjbGFz
cyBJbmxpbmVUZXh0SXRlbTsKIGNsYXNzIExpbmVCcmVha2VyIHsKIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIEJyZWFraW5nQmVoYXZpb3IgeyBLZWVwLCBTcGxpdCwgV3JhcCB9OwotICAgIHN0cnVj
dCBCcmVha2luZ0NvbnRleHQgewotICAgICAgICBCcmVha2luZ0JlaGF2aW9yIGJyZWFraW5nQmVo
YXZpb3I7Ci0gICAgICAgIGJvb2wgaXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkgeyBmYWxzZSB9Owot
ICAgIH07Ci0gICAgc3RydWN0IExpbmVDb250ZXh0IHsKLSAgICAgICAgTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aDsKLSAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdDsKLSAgICAgICAgTGF5
b3V0VW5pdCB0cmltbWFibGVXaWR0aDsKLSAgICAgICAgYm9vbCBpc0VtcHR5IHsgZmFsc2UgfTsK
LSAgICB9OwotICAgIEJyZWFraW5nQ29udGV4dCBicmVha2luZ0NvbnRleHQoY29uc3QgSW5saW5l
SXRlbSYsIExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBjb25zdCBMaW5lQ29udGV4dCYpOworICAg
IEJyZWFraW5nQmVoYXZpb3IgYnJlYWtpbmdDb250ZXh0KGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0
OjpSdW4+JiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIGJvb2wgbGluZUlzRW1wdHkpOworICAgIEJyZWFraW5nQmVoYXZpb3IgYnJlYWtpbmdDb250
ZXh0Rm9yRmxvYXQoTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSk7CiAKIHByaXZhdGU6CiAKLSAgICBCcmVha2lu
Z0JlaGF2aW9yIHdvcmRCcmVha2luZ0JlaGF2aW9yKGNvbnN0IElubGluZVRleHRJdGVtJiwgYm9v
bCBsaW5lSXNFbXB0eSkgY29uc3Q7Ci0gICAgYm9vbCBpc0F0QnJlYWtpbmdPcHBvcnR1bml0eShj
b25zdCBJbmxpbmVJdGVtJik7Ci0KKyAgICBCcmVha2luZ0JlaGF2aW9yIHdvcmRCcmVha2luZ0Jl
aGF2aW9yKGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0OjpSdW4+JiwgYm9vbCBsaW5lSXNFbXB0eSkg
Y29uc3Q7CiAgICAgYm9vbCBtX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCB7IHRydWUgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUxheW91dC5jcHAKaW5kZXggNGJlODYzMmFjY2ZhMThmNzc1MWJhMzhkMWNkMDNm
ODcxNjNkNjdiYi4uNTAxMDRlMDA4ZjZkNDFlZGRkMWE4NzZmMzdhOTA0NmU4MWZmOWI4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUxheW91dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShMQVlP
VVRfRk9STUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAiSW5saW5lTGluZUJyZWFrZXIuaCIK
ICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJUZXh0VXRpbC5oIgogCkBAIC0xMjEs
MTAgKzEyMiwxMyBAQCBMaW5lTGF5b3V0OjpMaW5lQ29udGVudCBMaW5lTGF5b3V0OjpsYXlvdXQo
KQogICAgIH0KIAogICAgIGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBmaXJzdE5vblBhcnRp
YWxJbmRleDsgaW5saW5lSXRlbUluZGV4IDwgbV9saW5lSW5wdXQuaW5saW5lSXRlbXMuc2l6ZSgp
OyArK2lubGluZUl0ZW1JbmRleCkgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBu
ZWVkIHRvIHJlLW1lYXN1cmUgdGhlIGRyb3BwZWQsIHVuY29tbWl0dGVkIGNvbnRlbnQgd2hlbiBy
ZS11c2luZyB0aGVtIG9uIHRoZSBuZXh0IGxpbmUuCiAgICAgICAgIGlmIChwbGFjZUlubGluZUl0
ZW0oKm1fbGluZUlucHV0LmlubGluZUl0ZW1zW2lubGluZUl0ZW1JbmRleF0pID09IElzRW5kT2ZM
aW5lOjpZZXMpCiAgICAgICAgICAgICByZXR1cm4gY2xvc2UoKTsKICAgICB9Ci0gICAgY29tbWl0
UGVuZGluZ0NvbnRlbnQoKTsKKyAgICAvLyBDaGVjayB0aGUgdW5jb21taXR0ZWQgY29udGVudCB3
aGV0aGVyIHRoZXkgZml0IG5vdyB0aGF0IHdlIGtub3cgd2UgYXJlIGF0IGEgY29tbWl0IGJvdW5k
YXJ5LgorICAgIGlmICghbV91bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKQorICAgICAgICBw
cm9jZXNzVW5jb21taXR0ZWRDb250ZW50KCk7CiAgICAgcmV0dXJuIGNsb3NlKCk7CiB9CiAKQEAg
LTE0MSw2ICsxNDUsNyBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbW1pdFBlbmRpbmdDb250ZW50KCkK
IExpbmVMYXlvdXQ6OkxpbmVDb250ZW50IExpbmVMYXlvdXQ6OmNsb3NlKCkKIHsKICAgICBBU1NF
UlQobV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgfHwgbV9saW5lSGFzSW50cnVzaXZlRmxvYXQp
OworICAgIG1fdW5jb21taXR0ZWRDb250ZW50LnJlc2V0KCk7CiAgICAgaWYgKCFtX2NvbW1pdHRl
ZElubGluZUl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJuIExpbmVDb250ZW50IHsgV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKG1fZmxvYXRzKSwgbV9saW5lLmNsb3NlKCksIG1fbGluZS5saW5lQm94KCkg
fTsKIApAQCAtMTU1LDUyICsxNjAsMTQ5IEBAIExpbmVMYXlvdXQ6OkxpbmVDb250ZW50IExpbmVM
YXlvdXQ6OmNsb3NlKCkKIAogTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dDo6cGxh
Y2VJbmxpbmVJdGVtKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiB7Ci0gICAgYXV0byBh
dmFpbGFibGVXaWR0aCA9IG1fbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gbV91bmNvbW1pdHRlZENv
bnRlbnQud2lkdGgoKTsKLSAgICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUubGlu
ZUJveCgpLmxvZ2ljYWxSaWdodCgpICsgbV91bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKTsKKyAg
ICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUubGluZUJveCgpLmxvZ2ljYWxSaWdo
dCgpOwogICAgIGF1dG8gaXRlbUxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1XaWR0aChmb3JtYXR0
aW5nQ29udGV4dCgpLCBpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKLQotICAgIC8v
IEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJsZVdpZHRoIGluY2x1ZGVzIHVuY29t
bWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgogICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5
ID0gIW1fbGluZS5oYXNDb250ZW50KCkgJiYgIW1fbGluZUhhc0ludHJ1c2l2ZUZsb2F0OwotICAg
IGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbV9saW5lQnJlYWtlci5icmVha2luZ0NvbnRleHQoaW5s
aW5lSXRlbSwgaXRlbUxvZ2ljYWxXaWR0aCwgeyBhdmFpbGFibGVXaWR0aCwgY3VycmVudExvZ2lj
YWxSaWdodCwgbV9saW5lLnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSwgbGluZUlzQ29uc2lkZXJl
ZEVtcHR5IH0pOwotICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5p
dHkpCi0gICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CiAKLSAgICAvLyBDb250ZW50IGRv
ZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLgotICAgIGlmIChicmVha2luZ0NvbnRleHQuYnJl
YWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKLSAg
ICAgICAgcmV0dXJuIElzRW5kT2ZMaW5lOjpZZXM7Ci0KLSAgICAvLyBQYXJ0aWFsIGNvbnRlbnQg
c3RheXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFr
aW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OlNwbGl0KSB7Ci0g
ICAgICAgIEFTU0VSVChpbmxpbmVJdGVtLmlzVGV4dCgpKTsKLSAgICAgICAgYXV0byYgaW5saW5l
VGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7Ci0gICAgICAg
IGF1dG8gc3BsaXREYXRhID0gVGV4dFV0aWw6OnNwbGl0KGlubGluZVRleHRJdGVtLmxheW91dEJv
eCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSwgaXRl
bUxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dpY2FsUmlnaHQpOwotICAg
ICAgICAvLyBDb25zdHJ1Y3QgYSBwYXJ0aWFsIHRyYWlsaW5nIGlubGluZSBpdGVtLgotICAgICAg
ICBBU1NFUlQoIW1fdHJhaWxpbmdQYXJ0aWFsSW5saW5lVGV4dEl0ZW0pOwotICAgICAgICBtX3Ry
YWlsaW5nUGFydGlhbElubGluZVRleHRJdGVtID0gaW5saW5lVGV4dEl0ZW0uc3BsaXQoc3BsaXRE
YXRhLnN0YXJ0LCBzcGxpdERhdGEubGVuZ3RoKTsKLSAgICAgICAgbV91bmNvbW1pdHRlZENvbnRl
bnQuYWRkKCptX3RyYWlsaW5nUGFydGlhbElubGluZVRleHRJdGVtLCBzcGxpdERhdGEubG9naWNh
bFdpZHRoKTsKLSAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsKLSAgICAgICAgcmV0dXJu
IElzRW5kT2ZMaW5lOjpZZXM7Ci0gICAgfQotCi0gICAgQVNTRVJUKGJyZWFraW5nQ29udGV4dC5i
cmVha2luZ0JlaGF2aW9yID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpLZWVwKTsK
KyAgICAvLyBGbG9hdHMgYXJlIHNwZWNpYWwsIHRoZXkgYXJlIGludHJ1c2l2ZSBidXQgdGhleSBk
b24ndCByZWFsbHkgcGFydGljaXBhdGUgaW4gdGhlIGxpbmUgbGF5b3V0IGNvbnRleHQuCiAgICAg
aWYgKGlubGluZUl0ZW0uaXNGbG9hdCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBJdCBnZXRzIGEg
Yml0IG1vcmUgY29tcGxpY2F0ZWQgd2hlbiB0aGVyZSdzIHNvbWUgdW5jb21taXR0ZWQgY29udGVu
dCB3aGV0aGVyIHRoZXkgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50IGxpbmUKKyAgICAg
ICAgLy8gZS5nLiB0ZXh0X2NvbnRlbnQ8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCI+PC9kaXY+Y29u
dGludW91c190ZXh0X2NvbnRlbnQKKyAgICAgICAgLy8gTm90IHN1cmUgd2hhdCB0byBkbyB3aGVu
IHRoZSBmbG9hdCB0YWtlcyB1cCB0aGUgYXZhaWxhYmxlIHNwYWNlIGFuZCB3ZSd2ZSBnb3QgY29u
dGludW91cyBjb250ZW50LiBCcm93c2VyIGVuZ2luZXMgZG9uJ3QgYWdyZWUuCisgICAgICAgIC8v
IExldCdzIGp1c3QgY29tbWl0IHRoZSBwZW5kaW5nIGNvbnRlbnQgYW5kIHRyeSBwbGFjaW5nIHRo
ZSBmbG9hdCBmb3Igbm93LgorICAgICAgICBpZiAoIW1fdW5jb21taXR0ZWRDb250ZW50LmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgaWYgKHByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQoKSA9PSBJ
c0VuZE9mTGluZTo6WWVzKQorICAgICAgICAgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6WWVz
OworICAgICAgICB9CisgICAgICAgIGF1dG8gYnJlYWtpbmdCZWhhdmlvciA9IExpbmVCcmVha2Vy
KCkuYnJlYWtpbmdDb250ZXh0Rm9yRmxvYXQoaXRlbUxvZ2ljYWxXaWR0aCwgbV9saW5lLmF2YWls
YWJsZVdpZHRoKCkgKyBtX2xpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCBsaW5lSXNDb25z
aWRlcmVkRW1wdHkpOworICAgICAgICBBU1NFUlQoYnJlYWtpbmdCZWhhdmlvciAhPSBMaW5lQnJl
YWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6U3BsaXQpOworICAgICAgICBpZiAoYnJlYWtpbmdCZWhh
dmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgICAg
IHJldHVybiBJc0VuZE9mTGluZTo6WWVzOworCisgICAgICAgIC8vIFRoaXMgZmxvYXQgY2FuIHNp
dCBvbiB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICBhdXRvJiBmbG9hdEJveCA9IGlubGluZUl0
ZW0ubGF5b3V0Qm94KCk7CiAgICAgICAgIC8vIFNocmluayBhdmFpbGFibGUgc3BhY2UgZm9yIGN1
cnJlbnQgbGluZSBhbmQgbW92ZSBleGlzdGluZyBpbmxpbmUgcnVucy4KLSAgICAgICAgYXV0byBm
bG9hdEJveFdpZHRoID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChmbG9hdEJv
eCkubWFyZ2luQm94V2lkdGgoKTsKLSAgICAgICAgZmxvYXRCb3guaXNMZWZ0RmxvYXRpbmdQb3Np
dGlvbmVkKCkgPyBtX2xpbmUubW92ZUxvZ2ljYWxMZWZ0KGZsb2F0Qm94V2lkdGgpIDogbV9saW5l
Lm1vdmVMb2dpY2FsUmlnaHQoZmxvYXRCb3hXaWR0aCk7CisgICAgICAgIGZsb2F0Qm94LmlzTGVm
dEZsb2F0aW5nUG9zaXRpb25lZCgpID8gbV9saW5lLm1vdmVMb2dpY2FsTGVmdChpdGVtTG9naWNh
bFdpZHRoKSA6IG1fbGluZS5tb3ZlTG9naWNhbFJpZ2h0KGl0ZW1Mb2dpY2FsV2lkdGgpOwogICAg
ICAgICBtX2Zsb2F0cy5hcHBlbmQobWFrZVdlYWtQdHIoaW5saW5lSXRlbSkpOwogICAgICAgICAr
K21fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50OwogICAgICAgICBtX2xpbmVIYXNJbnRydXNpdmVG
bG9hdCA9IHRydWU7CiAgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6Tm87CiAgICAgfQorICAg
IC8vIEV4cGxpY2l0IGxpbmUgYnJlYWtzIGFyZSBhbHNvIHNwZWNpYWwuCisgICAgaWYgKGlubGlu
ZUl0ZW0uaXNIYXJkTGluZUJyZWFrKCkpIHsKKyAgICAgICAgYXV0byBpc0VuZE9mTGluZSA9ICFt
X3VuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5KCkgPyBwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50
KCkgOiBJc0VuZE9mTGluZTo6Tm87CisgICAgICAgIC8vIFdoZW4gdGhlIHVuY29tbWl0dGVkIGNv
bnRlbnQgZml0cyhvciB0aGUgbGluZSBpcyBlbXB0eSksIGFkZCB0aGUgbGluZSBicmVhayB0byB0
aGlzIGxpbmUgYXMgd2VsbC4KKyAgICAgICAgaWYgKGlzRW5kT2ZMaW5lID09IElzRW5kT2ZMaW5l
OjpObykgeworICAgICAgICAgICAgbV91bmNvbW1pdHRlZENvbnRlbnQuYWRkKGlubGluZUl0ZW0s
IGl0ZW1Mb2dpY2FsV2lkdGgpOworICAgICAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gSXNFbmRPZkxpbmU6OlllczsKKyAgICB9CisgICAg
Ly8KKyAgICBhdXRvIGlzRW5kT2ZMaW5lID0gSXNFbmRPZkxpbmU6Ok5vOworICAgIGlmICghbV91
bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpICYmIHNob3VsZFByb2Nlc3NVbmNvbW1pdHRlZENv
bnRlbnQoaW5saW5lSXRlbSkpCisgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc1VuY29tbWl0
dGVkQ29udGVudCgpOworICAgIC8vIFRoZSBjdXJyZW50IGl0ZW0gbWlnaHQgZml0IGFzIHdlbGwu
CisgICAgaWYgKGlzRW5kT2ZMaW5lID09IElzRW5kT2ZMaW5lOjpObykKKyAgICAgICAgbV91bmNv
bW1pdHRlZENvbnRlbnQuYWRkKGlubGluZUl0ZW0sIGl0ZW1Mb2dpY2FsV2lkdGgpOworICAgIHJl
dHVybiBpc0VuZE9mTGluZTsKK30KIAotICAgIG1fdW5jb21taXR0ZWRDb250ZW50LmFkZChpbmxp
bmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoKTsKLSAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRC
cmVha2luZ09wcG9ydHVuaXR5KQorTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dDo6
cHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudCgpCit7CisgICAgLy8gQ2hlY2sgaWYgdGhlIHBlbmRp
bmcgY29udGVudCBmaXRzLgorICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5ID0gIW1fbGlu
ZS5oYXNDb250ZW50KCkgJiYgIW1fbGluZUhhc0ludHJ1c2l2ZUZsb2F0OworICAgIGF1dG8gYnJl
YWtpbmdCZWhhdmlvciA9IExpbmVCcmVha2VyKCkuYnJlYWtpbmdDb250ZXh0KG1fdW5jb21taXR0
ZWRDb250ZW50LnJ1bnMoKSwgbV91bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKSwgbV9saW5lLmF2
YWlsYWJsZVdpZHRoKCksIGxpbmVJc0NvbnNpZGVyZWRFbXB0eSk7CisKKyAgICAvLyBUaGUgdW5j
b21taXR0ZWQgY29udGVudCBjYW4gZnVsbHksIHBhcnRpYWxseSBmaXQgdGhlIGN1cnJlbnQgbGlu
ZSAoY29tbWl0L3BhcnRpYWwgY29tbWl0KSBvciBub3QgYXQgYWxsIChyZXNldCkuCisgICAgaWYg
KGJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OktlZXAp
CiAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CisgICAgZWxzZSBpZiAoYnJlYWtpbmdC
ZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6U3BsaXQpCisgICAgICAg
IEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7CisgICAgZWxzZSBpZiAoYnJlYWtpbmdCZWhh
dmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgbV91
bmNvbW1pdHRlZENvbnRlbnQucmVzZXQoKTsKIAotICAgIHJldHVybiBpbmxpbmVJdGVtLmlzSGFy
ZExpbmVCcmVhaygpID8gSXNFbmRPZkxpbmU6OlllcyA6IElzRW5kT2ZMaW5lOjpObzsKKyAgICBy
ZXR1cm4gYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6
S2VlcCA/IElzRW5kT2ZMaW5lOjpObyA6SXNFbmRPZkxpbmU6OlllczsKIH0KIAorYm9vbCBMaW5l
TGF5b3V0OjpzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KGNvbnN0IElubGluZUl0ZW0m
IGlubGluZUl0ZW0pIGNvbnN0Cit7CisgICAgLy8gRmlndXJlIG91dCBpZiB0aGUgbmV3IGluY29t
aW5nIGNvbnRlbnQgcHV0cyB0aGUgdW5jb21taXR0ZWQgY29udGVudCBvbiBjb21taXQgYm91bmRh
cnkuCisgICAgLy8gZS5nLiA8c3Bhbj5jb250aW51b3VzPC9zcGFuPiA8LSB1bmNvbWl0dGVkIGNv
bnRlbnQgLT4KKyAgICAvLyBbaW5saW5lIGNvbnRhaW5lciBzdGFydF1bdGV4dCBjb250ZW50XVtp
bmxpbmUgY29udGFpbmVyIGVuZF0KKyAgICAvLyBBbiBpbmNvbWluZyA8aW1nPiBib3ggd291bGQg
ZW5hYmxlIHVzIHRvIGNvbW1pdCB0aGUgIjxzcGFuPmNvbnRpbnVvdXM8L3NwYW4+IiBjb250ZW50
CisgICAgLy8gd2hpbGUgYWRkaXRpb25hbCB0ZXh0IGNvbnRlbnQgd291bGQgbm90LgorICAgIEFT
U0VSVCghaW5saW5lSXRlbS5pc0Zsb2F0KCkgJiYgIWlubGluZUl0ZW0uaXNIYXJkTGluZUJyZWFr
KCkpOworICAgIEFTU0VSVCghbV91bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKTsKKworICAg
IGF1dG8qIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZtX3VuY29tbWl0dGVkQ29udGVudC5ydW5z
KCkubGFzdCgpLmlubGluZUl0ZW07CisgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAg
ICAgICAgLy8gYW55IGNvbnRlbnQnICcgLT4gd2hpdGVzcGFjZSBpcyBhbHdheXMgYSBjb21taXQg
Ym91bmRhcnkuCisgICAgICAgIGlmIChkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRl
bSkuaXNXaGl0ZXNwYWNlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8g
PHNwYW4+dGV4dCAtPiB0aGUgaW5saW5lIGNvbnRhaW5lciBzdGFydCBhbmQgdGhlIHRleHQgY29u
dGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KKyAgICAgICAgaWYg
KGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAvLyA8L3NwYW4+dGV4dCAtPiBuZWVkIHRvIGNoZWNrIHdo
YXQncyBiZWZvcmUgdGhlIDwvc3Bhbj4uCisgICAgICAgIC8vIHRleHQ8L3NwYW4+dGV4dCAtPiBj
b250aW51b3VzIGNvbnRlbnQKKyAgICAgICAgLy8gPGltZz48L3NwYW4+dGV4dCAtPiBjb21taXQg
Ym91bmRheQorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVu
ZCgpKSB7CisgICAgICAgICAgICBhdXRvJiBydW5zID0gbV91bmNvbW1pdHRlZENvbnRlbnQucnVu
cygpOworICAgICAgICAgICAgLy8gdGV4dDwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPnRleHQg
LT4gY2hlY2sgYWxsIHRoZSB3YXkgYmFjayB1bnRpbCB3ZSBoaXQgZWl0aGVyIGEgYm94IG9yIHNv
bWUgdGV4dAorICAgICAgICAgICAgZm9yIChhdXRvIGkgPSBtX3VuY29tbWl0dGVkQ29udGVudC5z
aXplKCk7IGktLTspIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBwcmV2aW91c0lubGluZUl0ZW0g
PSBydW5zW2ldLmlubGluZUl0ZW07CisgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5saW5l
SXRlbS5pc0NvbnRhaW5lclN0YXJ0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVtLmlzQ29udGFpbmVy
RW5kKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEFT
U0VSVChwcmV2aW91c0lubGluZUl0ZW0uaXNUZXh0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVtLmlz
Qm94KCkpOworICAgICAgICAgICAgICAgIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZwcmV2aW91
c0lubGluZUl0ZW07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAvLyBEaWQgbm90IGZpbmQgYW55IGNvbnRlbnQgKGUuZy4gPHNwYW4+PC9zcGFuPnRl
eHQpCisgICAgICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVu
ZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAv
LyB0ZXh0dGV4dCAtPiBjb250aW51b3VzIGNvbnRlbnQuCisgICAgICAgIC8vICcgJ3RleHQgLT4g
Y29tbWl0IGJvdW5kYXJ5LgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1Rl
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RV
bmNvbWl0dGVkQ29udGVudCkuaXNXaGl0ZXNwYWNlKCk7CisgICAgICAgIC8vIDxpbWc+dGV4dCAt
PiB0aGUgaW5saW5lIGJveCBpcyBvbiBhIGNvbW1pdCBib3VuZGFyeS4KKyAgICAgICAgaWYgKGxh
c3RVbmNvbWl0dGVkQ29udGVudC0+aXNCb3goKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBpZiAoaW5saW5lSXRl
bS5pc0JveCgpKSB7CisgICAgICAgIC8vIDxzcGFuPjxpbWc+IC0+IHRoZSBpbmxpbmUgY29udGFp
bmVyIHN0YXJ0IGFuZCB0aGUgY29udGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMg
Y29udGVudC4KKyAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJT
dGFydCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyA8L3NwYW4+PGlt
Zz4gLT4gb2sgdG8gY29tbWl0IHRoZSA8L3NwYW4+LgorICAgICAgICBpZiAobGFzdFVuY29taXR0
ZWRDb250ZW50LT5pc0NvbnRhaW5lckVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIC8vIDxpbWc+dGV4dCBhbmQgPGltZz48aW1nPiAtPiB0aGVzZSBjb21iaW5hdGlvbnMg
YXJlIG9rIHRvIGNvbW1pdC4KKyAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNU
ZXh0KCkgfHwgbGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0JveCgpKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlm
IChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzQ29udGFpbmVy
RW5kKCkpIHsKKyAgICAgICAgLy8gPHNwYW4+PHNwYW4+IG9yIDwvc3Bhbj48c3Bhbj4gLT4gY2Fu
J3QgY29tbWl0IHRoZSBwcmV2aW91cyBjb250ZW50IHlldC4KKyAgICAgICAgaWYgKGxhc3RVbmNv
bWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpIHx8IGxhc3RVbmNvbWl0dGVkQ29udGVu
dC0+aXNDb250YWluZXJFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
Ly8gJyAnPHNwYW4+IC0+IGxldCdzIGNvbW1pdCB0aGUgd2hpdGVzcGFjZQorICAgICAgICAvLyB0
ZXh0PHNwYW4+IC0+IGJ1dCBub3QgeWV0IHRoZSBub24td2hpdGVzcGFjZTsgd2UgbmVlZCB0byBr
bm93IHdoYXQgY29tZXMgbmV4dCAoZS5nLiB0ZXh0PHNwYW4+dGV4dCBvciB0ZXh0PHNwYW4+PGlt
Zz4pLgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1RleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RVbmNvbWl0dGVkQ29u
dGVudCkuaXNXaGl0ZXNwYWNlKCk7CisgICAgICAgIC8vIDxpbWc+PHNwYW4+IC0+IGl0J3Mgb2sg
dG8gY29tbWl0IHRoZSBpbmxpbmUgYm94IGNvbnRlbnQuCisgICAgICAgIC8vIDxpbWc+PC9zcGFu
PiAtPiB0aGUgaW5saW5lIGJveCBhbmQgdGhlIGNsb3NpbmcgaW5saW5lIGNvbnRhaW5lciBmb3Jt
IGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KKyAgICAgICAgaWYgKGxhc3RVbmNv
bWl0dGVkQ29udGVudC0+aXNCb3goKSkKKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtLmlz
Q29udGFpbmVyU3RhcnQoKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKKwogfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0
LmgKaW5kZXggMWVlNDA5YTMwYTg2ZDNlYzFmYjYzN2IzMDRhY2NkMjdjOGY4YjJlZS4uM2E5MTA3
YzNkMzMzMDUxYTgzZWNmZmZlODJkNmRiZTJkMjk4ZTYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQuaApA
QCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQog
CiAjaW5jbHVkZSAiSW5saW5lTGluZS5oIgotI2luY2x1ZGUgIklubGluZUxpbmVCcmVha2VyLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03
MSwyMiArNzAsMjYgQEAgcHVibGljOgogICAgICAgICBjb25zdCBMaW5lQm94IGxpbmVCb3g7CiAg
ICAgfTsKIAorICAgIHN0cnVjdCBSdW4geworICAgICAgICBjb25zdCBJbmxpbmVJdGVtJiBpbmxp
bmVJdGVtOworICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aDsKKyAgICB9OworCiBwcml2
YXRlOgogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7IH0KICAgICBlbnVt
IGNsYXNzIElzRW5kT2ZMaW5lIHsgTm8sIFllcyB9OwogICAgIElzRW5kT2ZMaW5lIHBsYWNlSW5s
aW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJik7CiAgICAgdm9pZCBjb21taXRQZW5kaW5nQ29udGVu
dCgpOwogICAgIExpbmVDb250ZW50IGNsb3NlKCk7CisgICAgYm9vbCBzaG91bGRQcm9jZXNzVW5j
b21taXR0ZWRDb250ZW50KGNvbnN0IElubGluZUl0ZW0mKSBjb25zdDsKKyAgICBJc0VuZE9mTGlu
ZSBwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KCk7CiAgICAgCiAgICAgc3RydWN0IFVuY29tbWl0
dGVkQ29udGVudCB7Ci0gICAgICAgIHN0cnVjdCBSdW4gewotICAgICAgICAgICAgY29uc3QgSW5s
aW5lSXRlbSYgaW5saW5lSXRlbTsKLSAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRo
OwotICAgICAgICB9OwogICAgICAgICB2b2lkIGFkZChjb25zdCBJbmxpbmVJdGVtJiwgTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICAgICAgVmVj
dG9yPFJ1bj4gcnVucygpIHsgcmV0dXJuIG1fdW5jb21taXR0ZWRSdW5zOyB9CisgICAgICAgIFZl
Y3RvcjxSdW4+JiBydW5zKCkgeyByZXR1cm4gbV91bmNvbW1pdHRlZFJ1bnM7IH0KKyAgICAgICAg
Y29uc3QgVmVjdG9yPFJ1bj4mIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3VuY29tbWl0dGVkUnVu
czsgfQogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3VuY29tbWl0dGVk
UnVucy5pc0VtcHR5KCk7IH0KICAgICAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdW5jb21taXR0ZWRSdW5zLnNpemUoKTsgfQogICAgICAgICBMYXlvdXRVbml0IHdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQpAQCAtOTksNyArMTAyLDYgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9pbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDsKICAgICBjb25zdCBMaW5lSW5wdXQmIG1fbGluZUlucHV0OwogICAgIExpbmUgbV9saW5lOwot
ICAgIExpbmVCcmVha2VyIG1fbGluZUJyZWFrZXI7CiAgICAgYm9vbCBtX2xpbmVIYXNJbnRydXNp
dmVGbG9hdCB7IGZhbHNlIH07CiAgICAgVW5jb21taXR0ZWRDb250ZW50IG1fdW5jb21taXR0ZWRD
b250ZW50OwogICAgIHVuc2lnbmVkIG1fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IHsgMCB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381578</attachid>
            <date>2019-10-22 12:00:45 -0700</date>
            <delta_ts>2019-10-22 14:11:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203255-20191022120044.patch</filename>
            <type>text/plain</type>
            <size>22475</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0MzNlMzY5NmViNGRm
MTk2OThjZWMwZWYwM2FjZTllZTNmYzVlZC4uMmNlYmFlNDFkNzA1ZmRjNTAwNDE3YjdiOGNmYWRk
N2YxMTk1MDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3Vw
cG9ydCBmb3IgY29udGludW91cyBjb250ZW50L2NvbW1pdCBib3VuZGFyeSBjaGVjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjU1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjUwMzU5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgY29udGludW91
cyBjb250ZW50IGFuZCBjb21taXQgYm91bmRhcnkgY2hlY2suCisgICAgICAgIAorICAgICAgICA8
c3BhbiBzdHlsZT0icGFkZGluZy1yaWdodDogMTBweDsiPnRleHRjb250ZW50PC9zcGFuPgorCisg
ICAgICAgIFRoZSBjb250ZW50IGFib3ZlIGZvcm1zIGEgY29udGludW91cywgdW5icmVha2FibGUg
cnVuIG9mIChbY29udGFpbmVyIHN0YXJ0XVt0ZXh0Y29udGVudF1bY29udGFpbmVyIGVuZCB3aXRo
IGhvcml6b250YWwgcGFkZGluZyBvZiAxMHB4XSkuCisgICAgICAgIEhvd2V2ZXIgYXQgdGhpcyBw
b2ludCB3ZSBkb24ndCBrbm93IHlldCB3aGV0aGVyIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBy
dW4gYW5kIHdlIG5lZWQgdG8ga2VlcCBjaGVja2luZyBmb3IgdGhlIHRyYWlsaW5nIGNvbnRlbnQu
CisgICAgICAgIEluIGdlbmVyYWwsIHdlIGNhbid0IHN1Ym1pdCB0aGUgcnVuIHRvIHRoZSBsaW5l
IGJyZWFraW5nIHVubGVzcyB3ZSBtYW5hZ2VkIHRvIGZpbmQgdGhlIGNvbW1pdCBib3VuZGFyeSBm
b3IgdGhlIGN1cnJlbnQgcnVuLgorCisgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nLXJpZ2h0
OiAxMHB4OyI+dGV4dGNvbnRlbnQ8L3NwYW4+PGltZyBzcmM9ImJyb2tlbi5qcGciPgorICAgICAg
ICAgICAgVGhpcyBjb250ZW50IHByb2R1Y2VzIHR3byBzZXBhcmF0ZSBydW5zIGFzIGZvbGxvd3M6
CisgICAgICAgICAgICAxLiAoW2NvbnRhaW5lciBzdGFydF1bdGV4dGNvbnRlbnRdW2NvbnRhaW5l
ciBlbmQgd2l0aCBob3Jpem9udGFsIHBhZGRpbmcgb2YgMTBweF0pCisgICAgICAgICAgICAyLiAo
W2ltZ10pCisgICAgICAgIHZzLgorICAgICAgICA8c3BhbiBzdHlsZT0icGFkZGluZy1yaWdodDog
MTBweDsiPnRleHRjb250ZW50PC9zcGFuPm1vcmV0ZXh0Y29udGVudAorICAgICAgICAgICAgVGhp
cyBjb250ZW50IHByb2R1Y2VzIG9ubHkgb25lIHJ1bgorICAgICAgICAgICAgMS4gKFtjb250YWlu
ZXIgc3RhcnRdW3RleHRjb250ZW50XVtjb250YWluZXIgZW5kIHdpdGggaG9yaXpvbnRhbCBwYWRk
aW5nIG9mIDEwcHhdW21vcmV0ZXh0Y29udGVudF0pCisKKyAgICAgICAgVGhlIGlkZWEgaGVyZSBp
cyB0aGF0IHdlIGRvbid0IGNvbW1pdCB0aGUgY29udGVudCBvbiB0aGUgbGluZSB1bmxlc3Mgd2Ug
aWRlbnRpZmllZCB0aGUgcnVuIGJvdW5kYXJ5LiBJbiBwcmFjdGljZSBpdCBtZWFucyB0aGF0IHdl
IGhhcmRseSBjb21taXQgdGhlIGN1cnJlbnQgaW5saW5lIGl0ZW0gb24gdGhlIGxpbmUKKyAgICAg
ICAgYnV0IGluc3RlYWQgd2UgdXNlIGl0IHRvIGRlY2lkZSB3aGV0aGVyIHRoZSB1bmNvbW1pdHRl
ZCBjb250ZW50IGlzIHJlYWR5IHRvIGJlIGNvbW1pdHRlZC4KKworICAgICAgICBVc2luZyB0aGUg
Zm9sbG93aW5nIGV4YW1wbGU6ICAgICAgICAKKyAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmct
cmlnaHQ6IDEwcHg7Ij50ZXh0Y29udGVudDxpbWcgc3JjPSJicm9rZW4uanBnIj48L3NwYW4+Cisg
ICAgICAgIAorICAgICAgICBJbmNvbWluZyBpbmxpbmUgaXRlbXMgYXJlOgorICAgICAgICAgW2Nv
bnRhaW5lciBzdGFydF0gLT4gd2UgY2FuJ3QgaWRlbnRpZnkgdGhlIHJ1biBib3VuZGFyeSAtPiBh
ZGQgaW5saW5lIGl0ZW0gdG8gcGVuZGluZyBjb250ZW50CisgICAgICAgICBbdGV4dGNvbnRlbnRd
IC0+IHdlIHN0aWxsIGNhbid0IGlkZW50aWZ5IHRoZSBydW4gYm91bmRhcnkgc2luZSB3ZSBkb24n
dCBrbm93IHdoYXQgdGhlIG5leHQgaW5saW5lIGl0ZW0gaXMgLT4gYWRkIGlubGluZSBpdGVtIHRv
IHBlbmRpbmcgY29udGVudAorICAgICAgICAgW2ltZ10gLT4gbm93IHdlIGtub3cgdGhhdCB0aGUg
W2NvbnRhaW5lciBzdGFydF1bdGV4dGNvbnRlbnRdIGlzIG9uIGEgY29tbWl0IGJvdW5kYXJ5IC0+
IGNvbW1pdCBwZW5kaW5nIGNvbnRlbnQgLT4gaG93ZXZlciB0aGUgY3VycmVudCBbaW1nXSBpdGVt
J3MgYm91bmRhcnkgaXMgdW5rbm93bi4KKyAgICAgICAgIFtjb250YWluZXIgZW5kIHdpdGggaG9y
aXpvbnRhbCBwYWRkaW5nIG9mIDEwcHhdIC0+IE5vdyB0aGUgW2ltZ10gYW5kIFtjb250YWluZXIg
ZW5kXSBmb3JtIGFuIHVuYnJlYWthYmxlIHJ1biBidXQgd2UgZG9uJ3QgeWV0IGtub3cgaWYgdGhp
cyBpcyBhIHJ1biBib3VuZGFyeQorICAgICAgICAgLSBFbmQgb2YgY29udGVudCAtPiBhbHdheXMg
YSBjb21taXQgYm91bmRhcnkgLT4gY29tbWl0IHBlbmRpbmcgaXRlbXMgLT4gKFtpbWddW2NvbnRh
aW5lciBlbmRdKSAgCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpi
cmVha2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
YnJlYWtpbmdDb250ZXh0Rm9yRmxvYXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
QnJlYWtlcjo6d29yZEJyZWFraW5nQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQnJlYWtlcjo6aXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmg6Cisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dDo6cGxhY2VJbmxpbmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dDo6cHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXQ6OnNob3VsZFByb2Nlc3NVbmNvbW1pdHRlZENvbnRl
bnQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVM
YXlvdXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dDo6VW5jb21taXR0
ZWRDb250ZW50OjpydW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dDo6
VW5jb21taXR0ZWRDb250ZW50OjpydW5zIGNvbnN0KToKKwogMjAxOS0xMC0yMSAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIGlu
Y2x1ZGVzIHRvIGltcHJvdmUgV2ViS2l0MiBidWlsZCBzcGVlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
Y3BwCmluZGV4IDljMDkzODEwODFmNDJjZTVhNzE3MmQwNWIwZGJlNWVhMzE3NGE3ZjUuLjU1ZGUw
Y2JjNjAyZmNlYjMxM2Y0NTAyZDkzZTEyZjU0ODkzYTcxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtl
ci5jcHAKQEAgLTM1LDI3ICszNSwzMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IExheW91dCB7CiAKLUxpbmVCcmVha2VyOjpCcmVha2luZ0NvbnRleHQgTGluZUJyZWFrZXI6OmJy
ZWFraW5nQ29udGV4dChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgY29uc3QgTGluZUNvbnRleHQmIGxpbmVDb250ZXh0KQorTGluZUJyZWFrZXI6
OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OmJyZWFraW5nQ29udGV4dChjb25zdCBWZWN0
b3I8TGluZUxheW91dDo6UnVuPiYgcnVucywgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpCiB7CiAgICAgLy8gRmlyc3Qg
Y29udGVudCBhbHdheXMgc3RheXMgb24gbGluZS4KLSAgICBpZiAobGluZUNvbnRleHQuaXNFbXB0
eSB8fCBsb2dpY2FsV2lkdGggPD0gbGluZUNvbnRleHQuYXZhaWxhYmxlV2lkdGgpCi0gICAgICAg
IHJldHVybiB7IEJyZWFraW5nQmVoYXZpb3I6OktlZXAsIGlzQXRCcmVha2luZ09wcG9ydHVuaXR5
KGlubGluZUl0ZW0pIH07Ci0KLSAgICBpZiAoaW5saW5lSXRlbS5pc0hhcmRMaW5lQnJlYWsoKSkK
LSAgICAgICAgcmV0dXJuIHsgQnJlYWtpbmdCZWhhdmlvcjo6S2VlcCwgaXNBdEJyZWFraW5nT3Bw
b3J0dW5pdHkoaW5saW5lSXRlbSkgfTsKKyAgICBpZiAobGluZUlzRW1wdHkgfHwgbG9naWNhbFdp
ZHRoIDw9IGF2YWlsYWJsZVdpZHRoKQorICAgICAgICByZXR1cm4gQnJlYWtpbmdCZWhhdmlvcjo6
S2VlcDsKIAorICAgIC8vIEZJWE1FOiBMb29rIGluc2lkZSB0aGUgbGlzdCB0byBmaW5kIG91dCB3
aGV0aGVyIGl0IHJlcXVpcmVzIHRleHQgY29udGVudCByZWxhdGVkIGxpbmUgYnJlYWtpbmcgKGUu
ZyA8c3Bhbj50ZXh0PC9zcGFuPiA8LSB0aGUgZmlyc3QgaW5saW5lIGl0ZW0gaGVyZSBpcyBhICdj
b250YWluZXIgc3RhcnQnIGJ1dCB0aGUgY29udGVudCBpcyB0ZXh0IG9ubHkpLgorICAgIGF1dG8m
IGlubGluZUl0ZW0gPSBydW5zLmZpcnN0KCkuaW5saW5lSXRlbTsKICAgICBpZiAoaXM8SW5saW5l
VGV4dEl0ZW0+KGlubGluZUl0ZW0pKQotICAgICAgICByZXR1cm4geyB3b3JkQnJlYWtpbmdCZWhh
dmlvcihkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGxpbmVDb250ZXh0Lmlz
RW1wdHkpLCBpc0F0QnJlYWtpbmdPcHBvcnR1bml0eShpbmxpbmVJdGVtKSB9OworICAgICAgICBy
ZXR1cm4gd29yZEJyZWFraW5nQmVoYXZpb3IocnVucywgbGluZUlzRW1wdHkpOwogCi0gICAgLy8g
V3JhcCBub24tdGV4dCBib3hlcyB0byB0aGUgbmV4dCBsaW5lIHVubGVzcyB3ZSBjYW4gdHJpbSB0
cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBsaW5lQ29udGV4
dC5hdmFpbGFibGVXaWR0aCArIGxpbmVDb250ZXh0LnRyaW1tYWJsZVdpZHRoOwotICAgIGlmIChs
b2dpY2FsV2lkdGggPD0gYXZhaWxhYmxlV2lkdGgpCi0gICAgICAgIHJldHVybiB7IEJyZWFraW5n
QmVoYXZpb3I6OktlZXAsIGlzQXRCcmVha2luZ09wcG9ydHVuaXR5KGlubGluZUl0ZW0pIH07Ci0g
ICAgcmV0dXJuIHsgQnJlYWtpbmdCZWhhdmlvcjo6V3JhcCwgaXNBdEJyZWFraW5nT3Bwb3J0dW5p
dHkoaW5saW5lSXRlbSkgfTsKKyAgICByZXR1cm4gQnJlYWtpbmdCZWhhdmlvcjo6V3JhcDsKIH0K
IAotTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2lu
Z0JlaGF2aW9yKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBib29sIGxpbmVJc0Vt
cHR5KSBjb25zdAorTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OmJy
ZWFraW5nQ29udGV4dEZvckZsb2F0KExheW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpCiB7CisgICAgcmV0dXJuIChs
aW5lSXNFbXB0eSB8fCBmbG9hdExvZ2ljYWxXaWR0aCA8PSBhdmFpbGFibGVXaWR0aCkgPyBCcmVh
a2luZ0JlaGF2aW9yOjpLZWVwIDogQnJlYWtpbmdCZWhhdmlvcjo6V3JhcDsKK30KKworTGluZUJy
ZWFrZXI6OkJyZWFraW5nQmVoYXZpb3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2aW9y
KGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0OjpSdW4+JiBydW5zLCBib29sIGxpbmVJc0VtcHR5KSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBDaGVjayB3aGVyZSB0aGUgb3ZlcmZsb3cgb2NjdXJzIGFu
ZCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgdG8gZmlndXJlIG91dCB0aGUgYnJlYWtpbmcg
YmVoYXZpb3VyLgorICAgIC8vIDxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBub3JtYWwiPmZpcnN0
PC9zcGFuPjxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwiPnNlY29uZDwvc3Bhbj48
c3BhbiBzdHlsZT0id29yZC1icmVhazogbm9ybWFsIj50aGlyZDwvc3Bhbj4KKyAgICBhdXRvJiBp
bmxpbmVJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KHJ1bnMuZmlyc3QoKS5pbmxpbmVJ
dGVtKTsKKwogICAgIC8vIFdvcmQgYnJlYWtpbmcgYmVoYXZpb3VyOgogICAgIC8vIDEuIFdoaXRl
c2FwY2UgY29sbGFwc2Ugb24gLT4gcHVzaCB3aGl0ZXNwYWNlIHRvIG5leHQgbGluZS4KICAgICAv
LyAyLiBXaGl0ZXNwYWNlIGNvbGxhcHNlIG9mZiAtPiB3aGl0ZXNwYWNlIGlzIHNwbGl0IHdoZXJl
IHBvc3NpYmxlLgpAQCAtODYsMTYgKzkwLDYgQEAgTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZp
b3IgTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2aW9yKGNvbnN0IElubGluZVRleHQKICAg
ICByZXR1cm4gbGluZUlzRW1wdHkgPyBCcmVha2luZ0JlaGF2aW9yOjpLZWVwIDogQnJlYWtpbmdC
ZWhhdmlvcjo6V3JhcDsKIH0KIAotYm9vbCBMaW5lQnJlYWtlcjo6aXNBdEJyZWFraW5nT3Bwb3J0
dW5pdHkoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkKLXsKLSAgICBpZiAoaW5saW5lSXRl
bS5pc0hhcmRMaW5lQnJlYWsoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoaXM8
SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SW5s
aW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLmlzV2hpdGVzcGFjZSgpOwotICAgIHJldHVybiAhaW5s
aW5lSXRlbS5pc0Zsb2F0KCkgJiYgIWlubGluZUl0ZW0uaXNDb250YWluZXJTdGFydCgpICYmICFp
bmxpbmVJdGVtLmlzQ29udGFpbmVyRW5kKCk7Ci19Ci0KIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
cmVha2VyLmgKaW5kZXggZWY5Nzg0ZjE1NGMwNDNjNzNjNDEwZDk4NGU0ZTUxODAwYzM0YWNhYy4u
ZjI3ZjdhYTkxMDg4OGE2OGY1OGYwZTdjNGVjYTEyZDU3YThmYWI2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJl
YWtlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKIAorI2luY2x1ZGUgIklubGluZUxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJMYXlv
dXRVbml0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDIzICszOSwxMiBAQCBjbGFz
cyBJbmxpbmVUZXh0SXRlbTsKIGNsYXNzIExpbmVCcmVha2VyIHsKIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIEJyZWFraW5nQmVoYXZpb3IgeyBLZWVwLCBTcGxpdCwgV3JhcCB9OwotICAgIHN0cnVj
dCBCcmVha2luZ0NvbnRleHQgewotICAgICAgICBCcmVha2luZ0JlaGF2aW9yIGJyZWFraW5nQmVo
YXZpb3I7Ci0gICAgICAgIGJvb2wgaXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkgeyBmYWxzZSB9Owot
ICAgIH07Ci0gICAgc3RydWN0IExpbmVDb250ZXh0IHsKLSAgICAgICAgTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aDsKLSAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdDsKLSAgICAgICAgTGF5
b3V0VW5pdCB0cmltbWFibGVXaWR0aDsKLSAgICAgICAgYm9vbCBpc0VtcHR5IHsgZmFsc2UgfTsK
LSAgICB9OwotICAgIEJyZWFraW5nQ29udGV4dCBicmVha2luZ0NvbnRleHQoY29uc3QgSW5saW5l
SXRlbSYsIExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBjb25zdCBMaW5lQ29udGV4dCYpOworICAg
IEJyZWFraW5nQmVoYXZpb3IgYnJlYWtpbmdDb250ZXh0KGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0
OjpSdW4+JiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIGJvb2wgbGluZUlzRW1wdHkpOworICAgIEJyZWFraW5nQmVoYXZpb3IgYnJlYWtpbmdDb250
ZXh0Rm9yRmxvYXQoTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSk7CiAKIHByaXZhdGU6CiAKLSAgICBCcmVha2lu
Z0JlaGF2aW9yIHdvcmRCcmVha2luZ0JlaGF2aW9yKGNvbnN0IElubGluZVRleHRJdGVtJiwgYm9v
bCBsaW5lSXNFbXB0eSkgY29uc3Q7Ci0gICAgYm9vbCBpc0F0QnJlYWtpbmdPcHBvcnR1bml0eShj
b25zdCBJbmxpbmVJdGVtJik7Ci0KKyAgICBCcmVha2luZ0JlaGF2aW9yIHdvcmRCcmVha2luZ0Jl
aGF2aW9yKGNvbnN0IFZlY3RvcjxMaW5lTGF5b3V0OjpSdW4+JiwgYm9vbCBsaW5lSXNFbXB0eSkg
Y29uc3Q7CiAgICAgYm9vbCBtX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCB7IHRydWUgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUxheW91dC5jcHAKaW5kZXggNGJlODYzMmFjY2ZhMThmNzc1MWJhMzhkMWNkMDNm
ODcxNjNkNjdiYi4uYTM0MjcxNDE4NDY1MzE2ZTAxYjU2OTg2MTg0NmU5OTBkNDVlNGZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUxheW91dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShMQVlP
VVRfRk9STUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAiSW5saW5lTGluZUJyZWFrZXIuaCIK
ICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJUZXh0VXRpbC5oIgogCkBAIC0xMjEs
MTAgKzEyMiwxMyBAQCBMaW5lTGF5b3V0OjpMaW5lQ29udGVudCBMaW5lTGF5b3V0OjpsYXlvdXQo
KQogICAgIH0KIAogICAgIGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBmaXJzdE5vblBhcnRp
YWxJbmRleDsgaW5saW5lSXRlbUluZGV4IDwgbV9saW5lSW5wdXQuaW5saW5lSXRlbXMuc2l6ZSgp
OyArK2lubGluZUl0ZW1JbmRleCkgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBu
ZWVkIHRvIHJlLW1lYXN1cmUgdGhlIGRyb3BwZWQsIHVuY29tbWl0dGVkIGNvbnRlbnQgd2hlbiBy
ZS11c2luZyB0aGVtIG9uIHRoZSBuZXh0IGxpbmUuCiAgICAgICAgIGlmIChwbGFjZUlubGluZUl0
ZW0oKm1fbGluZUlucHV0LmlubGluZUl0ZW1zW2lubGluZUl0ZW1JbmRleF0pID09IElzRW5kT2ZM
aW5lOjpZZXMpCiAgICAgICAgICAgICByZXR1cm4gY2xvc2UoKTsKICAgICB9Ci0gICAgY29tbWl0
UGVuZGluZ0NvbnRlbnQoKTsKKyAgICAvLyBDaGVjayB0aGUgdW5jb21taXR0ZWQgY29udGVudCB3
aGV0aGVyIHRoZXkgZml0IG5vdyB0aGF0IHdlIGtub3cgd2UgYXJlIGF0IGEgY29tbWl0IGJvdW5k
YXJ5LgorICAgIGlmICghbV91bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKQorICAgICAgICBw
cm9jZXNzVW5jb21taXR0ZWRDb250ZW50KCk7CiAgICAgcmV0dXJuIGNsb3NlKCk7CiB9CiAKQEAg
LTE0MSw2ICsxNDUsNyBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbW1pdFBlbmRpbmdDb250ZW50KCkK
IExpbmVMYXlvdXQ6OkxpbmVDb250ZW50IExpbmVMYXlvdXQ6OmNsb3NlKCkKIHsKICAgICBBU1NF
UlQobV9jb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgfHwgbV9saW5lSGFzSW50cnVzaXZlRmxvYXQp
OworICAgIG1fdW5jb21taXR0ZWRDb250ZW50LnJlc2V0KCk7CiAgICAgaWYgKCFtX2NvbW1pdHRl
ZElubGluZUl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJuIExpbmVDb250ZW50IHsgV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKG1fZmxvYXRzKSwgbV9saW5lLmNsb3NlKCksIG1fbGluZS5saW5lQm94KCkg
fTsKIApAQCAtMTU1LDUyICsxNjAsMTUwIEBAIExpbmVMYXlvdXQ6OkxpbmVDb250ZW50IExpbmVM
YXlvdXQ6OmNsb3NlKCkKIAogTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dDo6cGxh
Y2VJbmxpbmVJdGVtKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiB7Ci0gICAgYXV0byBh
dmFpbGFibGVXaWR0aCA9IG1fbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gbV91bmNvbW1pdHRlZENv
bnRlbnQud2lkdGgoKTsKLSAgICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUubGlu
ZUJveCgpLmxvZ2ljYWxSaWdodCgpICsgbV91bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKTsKKyAg
ICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUubGluZUJveCgpLmxvZ2ljYWxSaWdo
dCgpOwogICAgIGF1dG8gaXRlbUxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1XaWR0aChmb3JtYXR0
aW5nQ29udGV4dCgpLCBpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKLQotICAgIC8v
IEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJsZVdpZHRoIGluY2x1ZGVzIHVuY29t
bWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgogICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5
ID0gIW1fbGluZS5oYXNDb250ZW50KCkgJiYgIW1fbGluZUhhc0ludHJ1c2l2ZUZsb2F0OwotICAg
IGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbV9saW5lQnJlYWtlci5icmVha2luZ0NvbnRleHQoaW5s
aW5lSXRlbSwgaXRlbUxvZ2ljYWxXaWR0aCwgeyBhdmFpbGFibGVXaWR0aCwgY3VycmVudExvZ2lj
YWxSaWdodCwgbV9saW5lLnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSwgbGluZUlzQ29uc2lkZXJl
ZEVtcHR5IH0pOwotICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5p
dHkpCi0gICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CiAKLSAgICAvLyBDb250ZW50IGRv
ZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLgotICAgIGlmIChicmVha2luZ0NvbnRleHQuYnJl
YWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKLSAg
ICAgICAgcmV0dXJuIElzRW5kT2ZMaW5lOjpZZXM7Ci0KLSAgICAvLyBQYXJ0aWFsIGNvbnRlbnQg
c3RheXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFr
aW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OlNwbGl0KSB7Ci0g
ICAgICAgIEFTU0VSVChpbmxpbmVJdGVtLmlzVGV4dCgpKTsKLSAgICAgICAgYXV0byYgaW5saW5l
VGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7Ci0gICAgICAg
IGF1dG8gc3BsaXREYXRhID0gVGV4dFV0aWw6OnNwbGl0KGlubGluZVRleHRJdGVtLmxheW91dEJv
eCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSwgaXRl
bUxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dpY2FsUmlnaHQpOwotICAg
ICAgICAvLyBDb25zdHJ1Y3QgYSBwYXJ0aWFsIHRyYWlsaW5nIGlubGluZSBpdGVtLgotICAgICAg
ICBBU1NFUlQoIW1fdHJhaWxpbmdQYXJ0aWFsSW5saW5lVGV4dEl0ZW0pOwotICAgICAgICBtX3Ry
YWlsaW5nUGFydGlhbElubGluZVRleHRJdGVtID0gaW5saW5lVGV4dEl0ZW0uc3BsaXQoc3BsaXRE
YXRhLnN0YXJ0LCBzcGxpdERhdGEubGVuZ3RoKTsKLSAgICAgICAgbV91bmNvbW1pdHRlZENvbnRl
bnQuYWRkKCptX3RyYWlsaW5nUGFydGlhbElubGluZVRleHRJdGVtLCBzcGxpdERhdGEubG9naWNh
bFdpZHRoKTsKLSAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsKLSAgICAgICAgcmV0dXJu
IElzRW5kT2ZMaW5lOjpZZXM7Ci0gICAgfQotCi0gICAgQVNTRVJUKGJyZWFraW5nQ29udGV4dC5i
cmVha2luZ0JlaGF2aW9yID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpLZWVwKTsK
KyAgICAvLyBGbG9hdHMgYXJlIHNwZWNpYWwsIHRoZXkgYXJlIGludHJ1c2l2ZSBidXQgdGhleSBk
b24ndCByZWFsbHkgcGFydGljaXBhdGUgaW4gdGhlIGxpbmUgbGF5b3V0IGNvbnRleHQuCiAgICAg
aWYgKGlubGluZUl0ZW0uaXNGbG9hdCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBJdCBnZXRzIGEg
Yml0IG1vcmUgY29tcGxpY2F0ZWQgd2hlbiB0aGVyZSdzIHNvbWUgdW5jb21taXR0ZWQgY29udGVu
dCB3aGV0aGVyIHRoZXkgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50IGxpbmUKKyAgICAg
ICAgLy8gZS5nLiB0ZXh0X2NvbnRlbnQ8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdCI+PC9kaXY+Y29u
dGludW91c190ZXh0X2NvbnRlbnQKKyAgICAgICAgLy8gTm90IHN1cmUgd2hhdCB0byBkbyB3aGVu
IHRoZSBmbG9hdCB0YWtlcyB1cCB0aGUgYXZhaWxhYmxlIHNwYWNlIGFuZCB3ZSd2ZSBnb3QgY29u
dGludW91cyBjb250ZW50LiBCcm93c2VyIGVuZ2luZXMgZG9uJ3QgYWdyZWUuCisgICAgICAgIC8v
IExldCdzIGp1c3QgY29tbWl0IHRoZSBwZW5kaW5nIGNvbnRlbnQgYW5kIHRyeSBwbGFjaW5nIHRo
ZSBmbG9hdCBmb3Igbm93LgorICAgICAgICBpZiAoIW1fdW5jb21taXR0ZWRDb250ZW50LmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgaWYgKHByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQoKSA9PSBJ
c0VuZE9mTGluZTo6WWVzKQorICAgICAgICAgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6WWVz
OworICAgICAgICB9CisgICAgICAgIGF1dG8gYnJlYWtpbmdCZWhhdmlvciA9IExpbmVCcmVha2Vy
KCkuYnJlYWtpbmdDb250ZXh0Rm9yRmxvYXQoaXRlbUxvZ2ljYWxXaWR0aCwgbV9saW5lLmF2YWls
YWJsZVdpZHRoKCkgKyBtX2xpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCBsaW5lSXNDb25z
aWRlcmVkRW1wdHkpOworICAgICAgICBBU1NFUlQoYnJlYWtpbmdCZWhhdmlvciAhPSBMaW5lQnJl
YWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6U3BsaXQpOworICAgICAgICBpZiAoYnJlYWtpbmdCZWhh
dmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgICAg
IHJldHVybiBJc0VuZE9mTGluZTo6WWVzOworCisgICAgICAgIC8vIFRoaXMgZmxvYXQgY2FuIHNp
dCBvbiB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICBhdXRvJiBmbG9hdEJveCA9IGlubGluZUl0
ZW0ubGF5b3V0Qm94KCk7CiAgICAgICAgIC8vIFNocmluayBhdmFpbGFibGUgc3BhY2UgZm9yIGN1
cnJlbnQgbGluZSBhbmQgbW92ZSBleGlzdGluZyBpbmxpbmUgcnVucy4KLSAgICAgICAgYXV0byBm
bG9hdEJveFdpZHRoID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChmbG9hdEJv
eCkubWFyZ2luQm94V2lkdGgoKTsKLSAgICAgICAgZmxvYXRCb3guaXNMZWZ0RmxvYXRpbmdQb3Np
dGlvbmVkKCkgPyBtX2xpbmUubW92ZUxvZ2ljYWxMZWZ0KGZsb2F0Qm94V2lkdGgpIDogbV9saW5l
Lm1vdmVMb2dpY2FsUmlnaHQoZmxvYXRCb3hXaWR0aCk7CisgICAgICAgIGZsb2F0Qm94LmlzTGVm
dEZsb2F0aW5nUG9zaXRpb25lZCgpID8gbV9saW5lLm1vdmVMb2dpY2FsTGVmdChpdGVtTG9naWNh
bFdpZHRoKSA6IG1fbGluZS5tb3ZlTG9naWNhbFJpZ2h0KGl0ZW1Mb2dpY2FsV2lkdGgpOwogICAg
ICAgICBtX2Zsb2F0cy5hcHBlbmQobWFrZVdlYWtQdHIoaW5saW5lSXRlbSkpOwogICAgICAgICAr
K21fY29tbWl0dGVkSW5saW5lSXRlbUNvdW50OwogICAgICAgICBtX2xpbmVIYXNJbnRydXNpdmVG
bG9hdCA9IHRydWU7CiAgICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6Tm87CiAgICAgfQorICAg
IC8vIEV4cGxpY2l0IGxpbmUgYnJlYWtzIGFyZSBhbHNvIHNwZWNpYWwuCisgICAgaWYgKGlubGlu
ZUl0ZW0uaXNIYXJkTGluZUJyZWFrKCkpIHsKKyAgICAgICAgYXV0byBpc0VuZE9mTGluZSA9ICFt
X3VuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5KCkgPyBwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50
KCkgOiBJc0VuZE9mTGluZTo6Tm87CisgICAgICAgIC8vIFdoZW4gdGhlIHVuY29tbWl0dGVkIGNv
bnRlbnQgZml0cyhvciB0aGUgbGluZSBpcyBlbXB0eSksIGFkZCB0aGUgbGluZSBicmVhayB0byB0
aGlzIGxpbmUgYXMgd2VsbC4KKyAgICAgICAgaWYgKGlzRW5kT2ZMaW5lID09IElzRW5kT2ZMaW5l
OjpObykgeworICAgICAgICAgICAgbV91bmNvbW1pdHRlZENvbnRlbnQuYWRkKGlubGluZUl0ZW0s
IGl0ZW1Mb2dpY2FsV2lkdGgpOworICAgICAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gSXNFbmRPZkxpbmU6OlllczsKKyAgICB9CisgICAg
Ly8KKyAgICBhdXRvIGlzRW5kT2ZMaW5lID0gSXNFbmRPZkxpbmU6Ok5vOworICAgIGlmICghbV91
bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpICYmIHNob3VsZFByb2Nlc3NVbmNvbW1pdHRlZENv
bnRlbnQoaW5saW5lSXRlbSkpCisgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc1VuY29tbWl0
dGVkQ29udGVudCgpOworICAgIC8vIFRoZSBjdXJyZW50IGl0ZW0gbWlnaHQgZml0IGFzIHdlbGwu
CisgICAgaWYgKGlzRW5kT2ZMaW5lID09IElzRW5kT2ZMaW5lOjpObykKKyAgICAgICAgbV91bmNv
bW1pdHRlZENvbnRlbnQuYWRkKGlubGluZUl0ZW0sIGl0ZW1Mb2dpY2FsV2lkdGgpOworICAgIHJl
dHVybiBpc0VuZE9mTGluZTsKK30KIAotICAgIG1fdW5jb21taXR0ZWRDb250ZW50LmFkZChpbmxp
bmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoKTsKLSAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRC
cmVha2luZ09wcG9ydHVuaXR5KQorTGluZUxheW91dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dDo6
cHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudCgpCit7CisgICAgLy8gQ2hlY2sgaWYgdGhlIHBlbmRp
bmcgY29udGVudCBmaXRzLgorICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5ID0gIW1fbGlu
ZS5oYXNDb250ZW50KCkgJiYgIW1fbGluZUhhc0ludHJ1c2l2ZUZsb2F0OworICAgIGF1dG8gYnJl
YWtpbmdCZWhhdmlvciA9IExpbmVCcmVha2VyKCkuYnJlYWtpbmdDb250ZXh0KG1fdW5jb21taXR0
ZWRDb250ZW50LnJ1bnMoKSwgbV91bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKSwgbV9saW5lLmF2
YWlsYWJsZVdpZHRoKCksIGxpbmVJc0NvbnNpZGVyZWRFbXB0eSk7CisKKyAgICAvLyBUaGUgdW5j
b21taXR0ZWQgY29udGVudCBjYW4gZnVsbHksIHBhcnRpYWxseSBmaXQgdGhlIGN1cnJlbnQgbGlu
ZSAoY29tbWl0L3BhcnRpYWwgY29tbWl0KSBvciBub3QgYXQgYWxsIChyZXNldCkuCisgICAgaWYg
KGJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OktlZXAp
CiAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CisgICAgZWxzZSBpZiAoYnJlYWtpbmdC
ZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6U3BsaXQpCisgICAgICAg
IEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7CisgICAgZWxzZSBpZiAoYnJlYWtpbmdCZWhh
dmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgbV91
bmNvbW1pdHRlZENvbnRlbnQucmVzZXQoKTsKIAotICAgIHJldHVybiBpbmxpbmVJdGVtLmlzSGFy
ZExpbmVCcmVhaygpID8gSXNFbmRPZkxpbmU6OlllcyA6IElzRW5kT2ZMaW5lOjpObzsKKyAgICBy
ZXR1cm4gYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6
S2VlcCA/IElzRW5kT2ZMaW5lOjpObyA6SXNFbmRPZkxpbmU6OlllczsKIH0KIAorYm9vbCBMaW5l
TGF5b3V0OjpzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KGNvbnN0IElubGluZUl0ZW0m
IGlubGluZUl0ZW0pIGNvbnN0Cit7CisgICAgLy8gRmlndXJlIG91dCBpZiB0aGUgbmV3IGluY29t
aW5nIGNvbnRlbnQgcHV0cyB0aGUgdW5jb21taXR0ZWQgY29udGVudCBvbiBjb21taXQgYm91bmRh
cnkuCisgICAgLy8gZS5nLiA8c3Bhbj5jb250aW51b3VzPC9zcGFuPiA8LSB1bmNvbWl0dGVkIGNv
bnRlbnQgLT4KKyAgICAvLyBbaW5saW5lIGNvbnRhaW5lciBzdGFydF1bdGV4dCBjb250ZW50XVtp
bmxpbmUgY29udGFpbmVyIGVuZF0KKyAgICAvLyBBbiBpbmNvbWluZyA8aW1nPiBib3ggd291bGQg
ZW5hYmxlIHVzIHRvIGNvbW1pdCB0aGUgIjxzcGFuPmNvbnRpbnVvdXM8L3NwYW4+IiBjb250ZW50
CisgICAgLy8gd2hpbGUgYWRkaXRpb25hbCB0ZXh0IGNvbnRlbnQgd291bGQgbm90LgorICAgIEFT
U0VSVCghaW5saW5lSXRlbS5pc0Zsb2F0KCkgJiYgIWlubGluZUl0ZW0uaXNIYXJkTGluZUJyZWFr
KCkpOworICAgIEFTU0VSVCghbV91bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKTsKKworICAg
IGF1dG8qIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZtX3VuY29tbWl0dGVkQ29udGVudC5ydW5z
KCkubGFzdCgpLmlubGluZUl0ZW07CisgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAg
ICAgICAgLy8gYW55IGNvbnRlbnQnICcgLT4gd2hpdGVzcGFjZSBpcyBhbHdheXMgYSBjb21taXQg
Ym91bmRhcnkuCisgICAgICAgIGlmIChkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRl
bSkuaXNXaGl0ZXNwYWNlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8g
PHNwYW4+dGV4dCAtPiB0aGUgaW5saW5lIGNvbnRhaW5lciBzdGFydCBhbmQgdGhlIHRleHQgY29u
dGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KKyAgICAgICAgaWYg
KGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAvLyA8L3NwYW4+dGV4dCAtPiBuZWVkIHRvIGNoZWNrIHdo
YXQncyBiZWZvcmUgdGhlIDwvc3Bhbj4uCisgICAgICAgIC8vIHRleHQ8L3NwYW4+dGV4dCAtPiBj
b250aW51b3VzIGNvbnRlbnQKKyAgICAgICAgLy8gPGltZz48L3NwYW4+dGV4dCAtPiBjb21taXQg
Ym91bmRheQorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVu
ZCgpKSB7CisgICAgICAgICAgICBhdXRvJiBydW5zID0gbV91bmNvbW1pdHRlZENvbnRlbnQucnVu
cygpOworICAgICAgICAgICAgLy8gdGV4dDwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPnRleHQg
LT4gY2hlY2sgYWxsIHRoZSB3YXkgYmFjayB1bnRpbCB3ZSBoaXQgZWl0aGVyIGEgYm94IG9yIHNv
bWUgdGV4dAorICAgICAgICAgICAgZm9yIChhdXRvIGkgPSBtX3VuY29tbWl0dGVkQ29udGVudC5z
aXplKCk7IGktLTspIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBwcmV2aW91c0lubGluZUl0ZW0g
PSBydW5zW2ldLmlubGluZUl0ZW07CisgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5saW5l
SXRlbS5pc0NvbnRhaW5lclN0YXJ0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVtLmlzQ29udGFpbmVy
RW5kKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEFT
U0VSVChwcmV2aW91c0lubGluZUl0ZW0uaXNUZXh0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVtLmlz
Qm94KCkpOworICAgICAgICAgICAgICAgIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZwcmV2aW91
c0lubGluZUl0ZW07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAvLyBEaWQgbm90IGZpbmQgYW55IGNvbnRlbnQgKGUuZy4gPHNwYW4+PC9zcGFuPnRl
eHQpCisgICAgICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVu
ZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAv
LyB0ZXh0dGV4dCAtPiBjb250aW51b3VzIGNvbnRlbnQuCisgICAgICAgIC8vICcgJ3RleHQgLT4g
Y29tbWl0IGJvdW5kYXJ5LgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1Rl
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RV
bmNvbWl0dGVkQ29udGVudCkuaXNXaGl0ZXNwYWNlKCk7CisgICAgICAgIC8vIDxpbWc+dGV4dCAt
PiB0aGUgaW5saW5lIGJveCBpcyBvbiBhIGNvbW1pdCBib3VuZGFyeS4KKyAgICAgICAgaWYgKGxh
c3RVbmNvbWl0dGVkQ29udGVudC0+aXNCb3goKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBpZiAoaW5saW5lSXRl
bS5pc0JveCgpKSB7CisgICAgICAgIC8vIDxzcGFuPjxpbWc+IC0+IHRoZSBpbmxpbmUgY29udGFp
bmVyIHN0YXJ0IGFuZCB0aGUgY29udGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMg
Y29udGVudC4KKyAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJT
dGFydCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyA8L3NwYW4+PGlt
Zz4gLT4gb2sgdG8gY29tbWl0IHRoZSA8L3NwYW4+LgorICAgICAgICBpZiAobGFzdFVuY29taXR0
ZWRDb250ZW50LT5pc0NvbnRhaW5lckVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIC8vIDxpbWc+dGV4dCBhbmQgPGltZz48aW1nPiAtPiB0aGVzZSBjb21iaW5hdGlvbnMg
YXJlIG9rIHRvIGNvbW1pdC4KKyAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNU
ZXh0KCkgfHwgbGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0JveCgpKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlm
IChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzQ29udGFpbmVy
RW5kKCkpIHsKKyAgICAgICAgLy8gPHNwYW4+PHNwYW4+IG9yIDwvc3Bhbj48c3Bhbj4gLT4gY2Fu
J3QgY29tbWl0IHRoZSBwcmV2aW91cyBjb250ZW50IHlldC4KKyAgICAgICAgaWYgKGxhc3RVbmNv
bWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpIHx8IGxhc3RVbmNvbWl0dGVkQ29udGVu
dC0+aXNDb250YWluZXJFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
Ly8gJyAnPHNwYW4+IC0+IGxldCdzIGNvbW1pdCB0aGUgd2hpdGVzcGFjZQorICAgICAgICAvLyB0
ZXh0PHNwYW4+IC0+IGJ1dCBub3QgeWV0IHRoZSBub24td2hpdGVzcGFjZTsgd2UgbmVlZCB0byBr
bm93IHdoYXQgY29tZXMgbmV4dCAoZS5nLiB0ZXh0PHNwYW4+dGV4dCBvciB0ZXh0PHNwYW4+PGlt
Zz4pLgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1RleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RVbmNvbWl0dGVkQ29u
dGVudCkuaXNXaGl0ZXNwYWNlKCk7CisgICAgICAgIC8vIDxpbWc+PHNwYW4+IC0+IGl0J3Mgb2sg
dG8gY29tbWl0IHRoZSBpbmxpbmUgYm94IGNvbnRlbnQuCisgICAgICAgIC8vIDxpbWc+PC9zcGFu
PiAtPiB0aGUgaW5saW5lIGJveCBhbmQgdGhlIGNsb3NpbmcgaW5saW5lIGNvbnRhaW5lciBmb3Jt
IGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KKyAgICAgICAgaWYgKGxhc3RVbmNv
bWl0dGVkQ29udGVudC0+aXNCb3goKSkKKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtLmlz
Q29udGFpbmVyU3RhcnQoKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKwogfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lTGF5b3V0LmgKaW5kZXggMWVlNDA5YTMwYTg2ZDNlYzFmYjYzN2IzMDRhY2Nk
MjdjOGY4YjJlZS4uM2E5MTA3YzNkMzMzMDUxYTgzZWNmZmZlODJkNmRiZTJkMjk4ZTYyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVMYXlvdXQuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSAiSW5saW5lTGluZS5oIgotI2luY2x1ZGUgIklu
bGluZUxpbmVCcmVha2VyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC03MSwyMiArNzAsMjYgQEAgcHVibGljOgogICAgICAgICBjb25zdCBM
aW5lQm94IGxpbmVCb3g7CiAgICAgfTsKIAorICAgIHN0cnVjdCBSdW4geworICAgICAgICBjb25z
dCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtOworICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aDsKKyAgICB9OworCiBwcml2YXRlOgogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0
JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ7IH0KICAgICBlbnVtIGNsYXNzIElzRW5kT2ZMaW5lIHsgTm8sIFllcyB9OwogICAgIElz
RW5kT2ZMaW5lIHBsYWNlSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJik7CiAgICAgdm9pZCBj
b21taXRQZW5kaW5nQ29udGVudCgpOwogICAgIExpbmVDb250ZW50IGNsb3NlKCk7CisgICAgYm9v
bCBzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KGNvbnN0IElubGluZUl0ZW0mKSBjb25z
dDsKKyAgICBJc0VuZE9mTGluZSBwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KCk7CiAgICAgCiAg
ICAgc3RydWN0IFVuY29tbWl0dGVkQ29udGVudCB7Ci0gICAgICAgIHN0cnVjdCBSdW4gewotICAg
ICAgICAgICAgY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbTsKLSAgICAgICAgICAgIExheW91
dFVuaXQgbG9naWNhbFdpZHRoOwotICAgICAgICB9OwogICAgICAgICB2b2lkIGFkZChjb25zdCBJ
bmxpbmVJdGVtJiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgICAgICB2b2lkIHJlc2V0
KCk7CiAKLSAgICAgICAgVmVjdG9yPFJ1bj4gcnVucygpIHsgcmV0dXJuIG1fdW5jb21taXR0ZWRS
dW5zOyB9CisgICAgICAgIFZlY3RvcjxSdW4+JiBydW5zKCkgeyByZXR1cm4gbV91bmNvbW1pdHRl
ZFJ1bnM7IH0KKyAgICAgICAgY29uc3QgVmVjdG9yPFJ1bj4mIHJ1bnMoKSBjb25zdCB7IHJldHVy
biBtX3VuY29tbWl0dGVkUnVuczsgfQogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX3VuY29tbWl0dGVkUnVucy5pc0VtcHR5KCk7IH0KICAgICAgICAgdW5zaWduZWQgc2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5jb21taXR0ZWRSdW5zLnNpemUoKTsgfQogICAgICAgICBM
YXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQpAQCAtOTksNyArMTAy
LDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9pbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDsKICAgICBjb25zdCBMaW5lSW5wdXQmIG1fbGluZUlucHV0Owog
ICAgIExpbmUgbV9saW5lOwotICAgIExpbmVCcmVha2VyIG1fbGluZUJyZWFrZXI7CiAgICAgYm9v
bCBtX2xpbmVIYXNJbnRydXNpdmVGbG9hdCB7IGZhbHNlIH07CiAgICAgVW5jb21taXR0ZWRDb250
ZW50IG1fdW5jb21taXR0ZWRDb250ZW50OwogICAgIHVuc2lnbmVkIG1fY29tbWl0dGVkSW5saW5l
SXRlbUNvdW50IHsgMCB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>