<?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>295924</bug_id>
          
          <creation_ts>2025-07-14 14:51:18 -0700</creation_ts>
          <short_desc>[css-anchor-1] anchor() fails to account for grid-area</short_desc>
          <delta_ts>2025-08-13 12:43:10 -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 Local 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>
          
          <blocked>289743</blocked>
    
    <blocked>291856</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="fantasai">fantasai.bugs</reporter>
          <assigned_to name="fantasai">fantasai.bugs</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>csaavedra</cc>
    
    <cc>kiet.ho</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>2129974</commentid>
    <comment_count>0</comment_count>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-14 14:51:18 -0700</bug_when>
    <thetext>Our anchor() resolution fails to account for the effects of grid-area when the containing block is a grid, so boxes end up in the wrong place. See testcase:

&lt;!DOCTYPE html&gt;
&lt;div style=&quot;display: grid; grid: 100px 100px / 100px 100px; border: solid; width: max-content; position: relative&quot;&gt;
  &lt;div style=&quot;position: absolute; border: solid orange; margin: 1em; anchor-name: --foo&quot;&gt;&lt;/div&gt;
  &lt;div style=&quot;position: absolute; top: anchor(--foo bottom); border: solid blue; grid-row: 2&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

https://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%
0A%3Cdiv%20style%3D%22display%3A%20grid%3B%20grid%3A%20100px%20100px%20%2F%20100px%20100px%3B%20border%3A%20solid%3B%20width%3A%20max-content%3B%20position%3A%20relative%22%3E%0A%20%20%3Cdiv%20style%3D%22position%3A%20absolute%3B%20border%3A%20solid%20orange%3B%20margin%3A%201em%3B%20anchor-name%3A%20--foo%22%3E%3C%2Fdiv%3E%0A%20%20%3Cdiv%20style%3D%22position%3A%20absolute%3B%20top%3A%20anchor(--foo%20bottom)%3B%20border%3A%20solid%20blue%3B%20grid-row%3A%202%22%3E%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A

This is probably related to the failure on https://wpt.live/css/css-anchor-position/position-try-grid-001.html as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129975</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-14 14:51:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/155823420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129997</commentid>
    <comment_count>2</comment_count>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-14 15:41:45 -0700</bug_when>
    <thetext>Related: [css-anchor-position-1] anchor() fails to account for position-area
https://bugs.webkit.org/show_bug.cgi?id=295936</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132173</commentid>
    <comment_count>3</comment_count>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-23 14:25:51 -0700</bug_when>
    <thetext>Tracing through this, what&apos;s happening is that RenderGrid::gridAreaColumnRangeForOutOfFlow is not returning a correct value for the grid item, i.e. it doesn&apos;t reflect the grid area&apos;s size or position.

I think the issue might be because we haven&apos;t set it yet, since we set it in RenderGrid::layoutOutOfFlowBox() but we&apos;re not doing layout here, we&apos;re still in style resolution...

It looks like the logic we want is in RenderGrid::gridAreaBreadthForOutOfFlowGridItem so maybe we can call it more directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132210</commentid>
    <comment_count>4</comment_count>
      <attachid>476173</attachid>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-23 16:59:38 -0700</bug_when>
    <thetext>Created attachment 476173
patch

Depends on landing https://github.com/WebKit/WebKit/pull/48406 due conflict in one of the test expectation files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132266</commentid>
    <comment_count>5</comment_count>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-23 21:51:42 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/48467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132354</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-24 12:09:45 -0700</bug_when>
    <thetext>Committed 297834@main (fb8ef69f7e7a): &lt;https://commits.webkit.org/297834@main&gt;

Reviewed commits have been landed. Closing PR #48467 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2133352</commentid>
    <comment_count>7</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2025-07-30 03:02:17 -0700</bug_when>
    <thetext>Reopening as I&apos;m reverting this, it broke vimeo.com/watch . See https://bugs.webkit.org/show_bug.cgi?id=296687</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2133704</commentid>
    <comment_count>8</comment_count>
    <who name="fantasai">fantasai.bugs</who>
    <bug_when>2025-07-31 13:07:23 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/48792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2136298</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-08-13 12:43:07 -0700</bug_when>
    <thetext>Committed 298644@main (a5da259342fb): &lt;https://commits.webkit.org/298644@main&gt;

Reviewed commits have been landed. Closing PR #48792 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476173</attachid>
            <date>2025-07-23 16:59:38 -0700</date>
            <delta_ts>2025-07-23 16:59:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>grid-area-anchor.diff</filename>
            <type>text/plain</type>
            <size>17077</size>
            <attacher name="fantasai">fantasai.bugs</attacher>
            
              <data encoding="base64">Y29tbWl0IDBlNjlhYWU4NzI5MmFlZmExODkwNDBmNzk0NDM5YmJmYTE3ZTZhOWUKQXV0aG9yOiBF
bGlrYSBFdGVtYWQgPGZhbnRhc2FpLmJ1Z3NAaW5rZWRibGFkZS5uZXQ+CkRhdGU6ICAgV2VkIEp1
bCAyMyAxOToxNjoyNSAyMDI1IC0wNDAwCgogICAgW2Nzcy1hbmNob3ItMV0gYW5jaG9yKCkgZmFp
bHMgdG8gYWNjb3VudCBmb3IgZ3JpZC1hcmVhCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjk1OTI0CiAgICByZGFyOi8vMTU1ODIzNDIwCiAgICAKICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAgCiAgICBQb3NpdGlvbmVkTGF5b3V0Q29uc3RyYWlu
dHMgcmVsaWVzIG9uIGdyaWQgYXJlYSBpbmZvcm1hdGlvbiBjYWNoZWQgZHVyaW5nIGxheW91dCwK
ICAgIGJ1dCB3ZSBhcmUgbm90IGluIHRoZSBtaWRkbGUgb2YgbGF5b3V0IHdoaWxlIGNvbXB1dGlu
ZyBhbmNob3IoKSBpbnNldHMuCiAgICAKICAgIFRoaXMgcGF0Y2ggcmV2aXNlcyBQb3NpdGlvbmVk
TGF5b3V0Q29uc3RyYWludHMgdG8gY2FsbCBmb3IgYSBkaXJlY3QgY29tcHV0YXRpb24KICAgIG9m
IHRoZSBncmlkIGFyZWEgcmFuZ2UsIGFuZCByZW1vdmVzIGFsbCB0aGUgZXh0cmEgbWV0aG9kcyB0
aGF0IGludGVyYWN0IHdpdGggdGhlCiAgICBub3cgdW5uZWNlc3Nhcnkgb3V0LW9mLWZsb3cgZ3Jp
ZC1hcmVhIGNhY2hlLgogICAgCiAgICAqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmNob3ItcG9zaXRpb24vYW5jaG9yLXBvc2l0aW9uLWdyaWQt
MDAxLWV4cGVjdGVkLnR4dDoKICAgICogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWFuY2hvci1wb3NpdGlvbi9wb3NpdGlvbi10cnktZ3JpZC0wMDEt
ZXhwZWN0ZWQudHh0OgogICAgCiAgICBQYXNzIG1vcmUgdGVzdHMuCiAgICAKICAgICogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Bvc2l0aW9uZWRMYXlvdXRDb25zdHJhaW50cy5jcHA6CiAgICAo
V2ViQ29yZTo6UG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzOjpjYXB0dXJlR3JpZEFyZWEpOgog
ICAgCiAgICBDYWxsIG5ldyBBUEkgZm9yIGRpcmVjdGx5IGNvbXB1dGluZyBncmlkLWFyZWEgTGF5
b3V0UmFuZ2UuCiAgICAKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwOgogICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKToKICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpsYXlvdXRPdXRPZkZsb3dCb3gpOgogICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmNvbHVtbkF4aXNPZmZzZXRGb3JHcmlkSXRlbSBjb25zdCk6CiAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6cm93QXhpc09mZnNldEZvckdyaWRJdGVtIGNvbnN0KToKICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpncmlkQXJlYVJhbmdlRm9yT3V0T2ZGbG93IGNvbnN0KToKICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dHcmlkSXRlbSk6IERlbGV0
ZWQuCiAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bG9naWNhbE9mZnNldEZvck91dE9mRmxvd0dy
aWRJdGVtIGNvbnN0KTogRGVsZXRlZC4KICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpncmlkQXJl
YVJvd1JhbmdlRm9yT3V0T2ZGbG93IGNvbnN0KTogRGVsZXRlZC4KICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpncmlkQXJlYUNvbHVtblJhbmdlRm9yT3V0T2ZGbG93IGNvbnN0KTogRGVsZXRlZC4K
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpncmlkQXJlYVBvc2l0aW9uRm9yT3V0T2ZGbG93R3Jp
ZEl0ZW0gY29uc3QpOiBEZWxldGVkLgogICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVh
UG9zaXRpb25Gb3JHcmlkSXRlbSBjb25zdCk6IERlbGV0ZWQuCiAgICAqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiAgICAKICAgIEFkanVzdCBvdXQtb2YtZmxvdyBncmlk
LWFyZWEgc2l6ZSBjb21wdXRhdGlvbiBtZXRob2QgdG8gcmV0dXJuIGEgTGF5b3V0UmFuZ2UsCiAg
ICByZW5hbWUgaXQgdG8gZ3JpZEFyZWFSYW5nZUZvck91dE9mRmxvdygpLCBhbmQgZGVsZXRlIGFs
bCBub3ctdW51c2VkIG1ldGhvZHMKICAgIGFuZCBkYXRhIHR5cGVzLgoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmNob3It
cG9zaXRpb24vYW5jaG9yLXBvc2l0aW9uLWdyaWQtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmNob3ItcG9zaXRp
b24vYW5jaG9yLXBvc2l0aW9uLWdyaWQtMDAxLWV4cGVjdGVkLnR4dAppbmRleCA5Y2ViMzM4NDM5
NmIuLmY1NWRhNmI1ZWM4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuY2hvci1wb3NpdGlvbi9hbmNob3ItcG9zaXRpb24t
Z3JpZC0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmNob3ItcG9zaXRpb24vYW5jaG9yLXBvc2l0aW9uLWdy
aWQtMDAxLWV4cGVjdGVkLnR4dApAQCAtMiwxMiArMiwxMCBAQAogMgogMwogCi1GQUlMIC50YXJn
ZXQgMSBhc3NlcnRfZXF1YWxzOgotPGRpdiBjbGFzcz0idGFyZ2V0IHRhcmdldDEtbCIgZGF0YS1v
ZmZzZXQteD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KLW9mZnNldExl
ZnQgZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMjAwCitQQVNTIC50YXJnZXQgMQogRkFJTCAudGFyZ2V0
IDIgYXNzZXJ0X2VxdWFsczoKIDxkaXYgY2xhc3M9InRhcmdldCB0YXJnZXQxLXIiIGRhdGEtb2Zm
c2V0LXg9IjQwNCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+Ci1vZmZzZXRMZWZ0
IGV4cGVjdGVkIDQwNCBidXQgZ290IDI5NAorb2Zmc2V0TGVmdCBleHBlY3RlZCA0MDQgYnV0IGdv
dCAxOTQKIEZBSUwgLnRhcmdldCAzIGFzc2VydF9lcXVhbHM6CiA8ZGl2IGNsYXNzPSJ0YXJnZXQg
dGFyZ2V0MS10IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzMTAiPjwv
ZGl2Pgogd2lkdGggZXhwZWN0ZWQgMzEwIGJ1dCBnb3QgMTAwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5jaG9yLXBvc2l0
aW9uL3Bvc2l0aW9uLXRyeS1ncmlkLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5jaG9yLXBvc2l0aW9uL3Bvc2l0
aW9uLXRyeS1ncmlkLTAwMS1leHBlY3RlZC50eHQKaW5kZXggOTI4NTIwODgyOGIwLi5iZmVhZjFk
ZGFmYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1hbmNob3ItcG9zaXRpb24vcG9zaXRpb24tdHJ5LWdyaWQtMDAxLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtYW5jaG9yLXBvc2l0aW9uL3Bvc2l0aW9uLXRyeS1ncmlkLTAwMS1leHBlY3RlZC50
eHQKQEAgLTE0LDcgKzE0LDUgQEAKIDE1CiAxNgogCi1GQUlMIC50YXJnZXQgMSBhc3NlcnRfZXF1
YWxzOgotPGRpdiBjbGFzcz0idGFyZ2V0IiBkYXRhLW9mZnNldC14PSIxMzUiIGRhdGEtb2Zmc2V0
LXk9IjcwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KLWhlaWdodCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAwCitQQVNTIC50YXJnZXQgMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Qb3NpdGlvbmVkTGF5b3V0Q29uc3RyYWludHMuY3BwCmluZGV4IGYy
YWViNjAyYzI2MC4uMmZlYmJmZDZmNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUG9zaXRpb25lZExheW91dENvbnN0cmFpbnRzLmNwcApAQCAtMTczLDE4ICsx
NzMsMTEgQEAgdm9pZCBQb3NpdGlvbmVkTGF5b3V0Q29uc3RyYWludHM6OmNhcHR1cmVHcmlkQXJl
YSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChMb2dpY2FsQm94QXhpczo6SW5saW5lID09
IG1fY29udGFpbmluZ0F4aXMpIHsKLSAgICAgICAgYXV0byByYW5nZSA9IGdyaWRDb250YWluZXIt
PmdyaWRBcmVhQ29sdW1uUmFuZ2VGb3JPdXRPZkZsb3cobV9yZW5kZXJlcik7Ci0gICAgICAgIGlm
ICghcmFuZ2UpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fY29udGFpbmluZ1Jhbmdl
ID0gKnJhbmdlOwotICAgICAgICBtX2NvbnRhaW5pbmdJbmxpbmVTaXplID0gcmFuZ2UtPnNpemUo
KTsKKyAgICAgICAgbV9jb250YWluaW5nUmFuZ2UgPSBncmlkQ29udGFpbmVyLT5ncmlkQXJlYVJh
bmdlRm9yT3V0T2ZGbG93KG1fcmVuZGVyZXIsIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b246OkNvbHVtbnMpOworICAgICAgICBtX2NvbnRhaW5pbmdJbmxpbmVTaXplID0gbV9jb250YWlu
aW5nUmFuZ2Uuc2l6ZSgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gcmFuZ2UgPSBncmlk
Q29udGFpbmVyLT5ncmlkQXJlYVJvd1JhbmdlRm9yT3V0T2ZGbG93KG1fcmVuZGVyZXIpOwotICAg
ICAgICBpZiAocmFuZ2UpCi0gICAgICAgICAgICBtX2NvbnRhaW5pbmdSYW5nZSA9ICpyYW5nZTsK
LSAgICAgICAgYXV0byBjb2x1bW5SYW5nZSA9IGdyaWRDb250YWluZXItPmdyaWRBcmVhQ29sdW1u
UmFuZ2VGb3JPdXRPZkZsb3cobV9yZW5kZXJlcik7Ci0gICAgICAgIGlmIChjb2x1bW5SYW5nZSkK
LSAgICAgICAgICAgIG1fY29udGFpbmluZ0lubGluZVNpemUgPSBjb2x1bW5SYW5nZS0+c2l6ZSgp
OworICAgICAgICBtX2NvbnRhaW5pbmdSYW5nZSA9IGdyaWRDb250YWluZXItPmdyaWRBcmVhUmFu
Z2VGb3JPdXRPZkZsb3cobV9yZW5kZXJlciwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlv
bjo6Um93cyk7CisgICAgICAgIG1fY29udGFpbmluZ0lubGluZVNpemUgPSBncmlkQ29udGFpbmVy
LT5ncmlkQXJlYVJhbmdlRm9yT3V0T2ZGbG93KG1fcmVuZGVyZXIsIFN0eWxlOjpHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb246OkNvbHVtbnMpLnNpemUoKTsKICAgICB9CiAKICAgICBpZiAoIXN0YXJ0
SXNCZWZvcmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4
IGFhYjdkZmM3OTIyOC4uNmY3M2NlNTkzNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCkBAIC0zNzAsMTEgKzM3MCw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0
QmxvY2soUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogewog
ICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAotICAgIGF1dG8gcG9zdExheW91dFRhc2tzID0g
V1RGOjptYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIG1fb3V0T2ZGbG93SXRlbUNvbHVtbi5j
bGVhcigpOwotICAgICAgICBtX291dE9mRmxvd0l0ZW1Sb3cuY2xlYXIoKTsKLSAgICB9KTsKLQog
ICAgIGlmIChyZWxheW91dENoaWxkcmVuID09UmVsYXlvdXRDaGlsZHJlbjo6Tm8gJiYgc2ltcGxp
ZmllZExheW91dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE2NTAsMTEgKzE2NDUsMTEgQEAg
dm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRPdXRPZkZsb3dCb3goUmVuZGVyQm94JiBncmlkSXRlbSwg
UmVsYXlvdXRDaGlsZHJlbiByZWxheW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExh
eW91dFVuaXQgY29sdW1uQnJlYWR0aCA9IGdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0dyaWRJ
dGVtKGdyaWRJdGVtLCBTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpDb2x1bW5zKTsK
LSAgICBMYXlvdXRVbml0IHJvd0JyZWFkdGggPSBncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dH
cmlkSXRlbShncmlkSXRlbSwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbjo6Um93cyk7
CisgICAgTGF5b3V0UmFuZ2UgY29sdW1uQnJlYWR0aCA9IGdyaWRBcmVhUmFuZ2VGb3JPdXRPZkZs
b3coZ3JpZEl0ZW0sIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246OkNvbHVtbnMpOwor
ICAgIExheW91dFJhbmdlIHJvd0JyZWFkdGggPSBncmlkQXJlYVJhbmdlRm9yT3V0T2ZGbG93KGdy
aWRJdGVtLCBTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpSb3dzKTsKIAotICAgIGdy
aWRJdGVtLnNldEdyaWRBcmVhQ29udGVudExvZ2ljYWxXaWR0aChjb2x1bW5CcmVhZHRoKTsKLSAg
ICBncmlkSXRlbS5zZXRHcmlkQXJlYUNvbnRlbnRMb2dpY2FsSGVpZ2h0KHJvd0JyZWFkdGgpOwor
ICAgIGdyaWRJdGVtLnNldEdyaWRBcmVhQ29udGVudExvZ2ljYWxXaWR0aChjb2x1bW5CcmVhZHRo
LnNpemUoKSk7CisgICAgZ3JpZEl0ZW0uc2V0R3JpZEFyZWFDb250ZW50TG9naWNhbEhlaWdodChy
b3dCcmVhZHRoLnNpemUoKSk7CiAKICAgICAvLyBNYXJrIGZvciBsYXlvdXQgYXMgd2UncmUgcmVz
ZXR0aW5nIHRoZSBwb3NpdGlvbiBiZWZvcmUgYW5kIHdlIHJlbGF5IGluIGdlbmVyaWMgbGF5b3V0
IGxvZ2ljCiAgICAgLy8gZm9yIHBvc2l0aW9uZWQgaXRlbXMgaW4gb3JkZXIgdG8gZ2V0IHRoZSBv
ZmZzZXRzIHByb3Blcmx5IHJlc29sdmVkLgpAQCAtMjIwOSw3ICsyMjA0LDcgQEAgR3JpZEF4aXNQ
b3NpdGlvbiBSZW5kZXJHcmlkOjpyb3dBeGlzUG9zaXRpb25Gb3JHcmlkSXRlbShjb25zdCBSZW5k
ZXJCb3gmIGdyaWRJdGUKIAogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpjb2x1bW5BeGlzT2Zmc2V0
Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSkgY29uc3QKIHsKLSAgICBhdXRv
IFtzdGFydE9mUm93LCBlbmRPZlJvd10gPSBncmlkQXJlYVBvc2l0aW9uRm9yR3JpZEl0ZW0oZ3Jp
ZEl0ZW0sIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246OlJvd3MpOworICAgIGF1dG8g
W3N0YXJ0T2ZSb3csIGVuZE9mUm93XSA9IGdyaWRBcmVhUG9zaXRpb25Gb3JJbkZsb3dHcmlkSXRl
bShncmlkSXRlbSwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbjo6Um93cyk7CiAgICAg
TGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gc3RhcnRPZlJvdyArIG1hcmdpbkJlZm9yZUZvckNo
aWxkKGdyaWRJdGVtKTsKICAgICBMYXlvdXRVbml0IGNvbHVtbkF4aXNHcmlkSXRlbVNpemUgPSBH
cmlkTGF5b3V0RnVuY3Rpb25zOjppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgZ3JpZEl0ZW0p
ID8gZ3JpZEl0ZW0ubG9naWNhbFdpZHRoKCkgKyBncmlkSXRlbS5tYXJnaW5Mb2dpY2FsV2lkdGgo
KSA6IGdyaWRJdGVtLmxvZ2ljYWxIZWlnaHQoKSArIGdyaWRJdGVtLm1hcmdpbkxvZ2ljYWxIZWln
aHQoKTsKICAgICBMYXlvdXRVbml0IG1hc29ucnlPZmZzZXQgPSBhcmVNYXNvbnJ5Um93cygpID8g
bV9tYXNvbnJ5TGF5b3V0Lm9mZnNldEZvckdyaWRJdGVtKGdyaWRJdGVtKSA6IDBfbHU7CkBAIC0y
MjMzLDcgKzIyMjgsNyBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmNvbHVtbkF4aXNPZmZzZXRG
b3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtKSBjbwogCiBMYXlvdXRVbml0IFJl
bmRlckdyaWQ6OnJvd0F4aXNPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJ
dGVtKSBjb25zdAogewotICAgIGF1dG8gW3N0YXJ0T2ZDb2x1bW4sIGVuZE9mQ29sdW1uXSA9IGdy
aWRBcmVhUG9zaXRpb25Gb3JHcmlkSXRlbShncmlkSXRlbSwgU3R5bGU6OkdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbjo6Q29sdW1ucyk7CisgICAgYXV0byBbc3RhcnRPZkNvbHVtbiwgZW5kT2ZDb2x1
bW5dID0gZ3JpZEFyZWFQb3NpdGlvbkZvckluRmxvd0dyaWRJdGVtKGdyaWRJdGVtLCBTdHlsZTo6
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpDb2x1bW5zKTsKICAgICBMYXlvdXRVbml0IHN0YXJ0
UG9zaXRpb24gPSBzdGFydE9mQ29sdW1uICsgbWFyZ2luU3RhcnRGb3JDaGlsZChncmlkSXRlbSk7
CiAgICAgTGF5b3V0VW5pdCBtYXNvbnJ5T2Zmc2V0ID0gYXJlTWFzb25yeUNvbHVtbnMoKSA/IG1f
bWFzb25yeUxheW91dC5vZmZzZXRGb3JHcmlkSXRlbShncmlkSXRlbSkgOiAwX2x1OwogICAgIGlm
IChoYXNBdXRvTWFyZ2luc0luUm93QXhpcyhncmlkSXRlbSkpCkBAIC0yMzA3LDI5ICsyMzAyLDI0
IEBAIEdyaWQmIFJlbmRlckdyaWQ6OmN1cnJlbnRHcmlkKCkKICAgICByZXR1cm4gbV9ncmlkLm1f
Y3VycmVudEdyaWQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRo
Rm9yT3V0T2ZGbG93R3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgU3R5bGU6Okdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCitMYXlvdXRSYW5nZSBSZW5kZXJHcmlk
OjpncmlkQXJlYVJhbmdlRm9yT3V0T2ZGbG93KGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIFN0
eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogewogICAgIEFT
U0VSVChncmlkSXRlbS5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAgICAgYm9vbCBpc1Jvd0F4
aXMgPSBkaXJlY3Rpb24gPT0gU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbjo6Q29sdW1u
czsKICAgICBpbnQgbGFzdExpbmUgPSBudW1UcmFja3MoZGlyZWN0aW9uKTsKKyAgICBMYXlvdXRV
bml0IGJvcmRlckVkZ2UgPSBpc1Jvd0F4aXMgPyBib3JkZXJTdGFydCgpIDogYm9yZGVyQmVmb3Jl
KCk7CiAKICAgICBpbnQgc3RhcnRMaW5lLCBlbmRMaW5lOwogICAgIGJvb2wgc3RhcnRJc0F1dG8s
IGVuZElzQXV0bzsKLSAgICBpZiAoIWNvbXB1dGVHcmlkUG9zaXRpb25zRm9yT3V0T2ZGbG93R3Jp
ZEl0ZW0oZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgc3RhcnRMaW5lLCBzdGFydElzQXV0bywgZW5kTGlu
ZSwgZW5kSXNBdXRvKSkKLSAgICAgICAgcmV0dXJuIGlzUm93QXhpcyA/IGNsaWVudExvZ2ljYWxX
aWR0aCgpIDogY2xpZW50TG9naWNhbEhlaWdodCgpOwotCi0gICAgaWYgKHN0YXJ0SXNBdXRvICYm
IGVuZElzQXV0bykKLSAgICAgICAgcmV0dXJuIGlzUm93QXhpcyA/IGNsaWVudExvZ2ljYWxXaWR0
aCgpIDogY2xpZW50TG9naWNhbEhlaWdodCgpOworICAgIGlmICghY29tcHV0ZUdyaWRQb3NpdGlv
bnNGb3JPdXRPZkZsb3dHcmlkSXRlbShncmlkSXRlbSwgZGlyZWN0aW9uLCBzdGFydExpbmUsIHN0
YXJ0SXNBdXRvLCBlbmRMaW5lLCBlbmRJc0F1dG8pIHx8IChzdGFydElzQXV0byAmJiBlbmRJc0F1
dG8pKQorICAgICAgICByZXR1cm4gTGF5b3V0UmFuZ2UoYm9yZGVyRWRnZSwgaXNSb3dBeGlzID8g
Y2xpZW50TG9naWNhbFdpZHRoKCkgOiBjbGllbnRMb2dpY2FsSGVpZ2h0KCkpOwogCiAgICAgTGF5
b3V0VW5pdCBzdGFydDsKICAgICBMYXlvdXRVbml0IGVuZDsKICAgICBhdXRvJiBwb3NpdGlvbnMg
PSB0aGlzLT5wb3NpdGlvbnMoZGlyZWN0aW9uKTsKLSAgICBhdXRvJiBvdXRPZkZsb3dJdGVtTGlu
ZSA9IG91dE9mRmxvd0l0ZW0oZGlyZWN0aW9uKTsKLSAgICBMYXlvdXRVbml0IGJvcmRlckVkZ2Ug
PSBpc1Jvd0F4aXMgPyBib3JkZXJTdGFydCgpIDogYm9yZGVyQmVmb3JlKCk7CiAgICAgaWYgKHN0
YXJ0SXNBdXRvKQogICAgICAgICBzdGFydCA9IGJvcmRlckVkZ2U7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIG91dE9mRmxvd0l0ZW1MaW5lLnNldChncmlkSXRlbSwgc3RhcnRMaW5lKTsKICAgICAgICAg
c3RhcnQgPSBwb3NpdGlvbnNbc3RhcnRMaW5lXTsKICAgICB9CiAgICAgaWYgKGVuZElzQXV0bykK
QEAgLTIzNDQsNjAgKzIzMzQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJl
YWR0aEZvck91dE9mRmxvd0dyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZAogICAgICAgICAg
ICAgZW5kIC09IGlzUm93QXhpcyA/IG1fb2Zmc2V0QmV0d2VlbkNvbHVtbnMuZGlzdHJpYnV0aW9u
T2Zmc2V0IDogbV9vZmZzZXRCZXR3ZWVuUm93cy5kaXN0cmlidXRpb25PZmZzZXQ7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KGVuZCAtIHN0YXJ0LCAwX2x1KTsKLX0KLQot
TGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpsb2dpY2FsT2Zmc2V0Rm9yT3V0T2ZGbG93R3JpZEl0ZW0o
Y29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24sIExheW91dFVuaXQgdHJhY2tCcmVhZHRoKSBjb25zdAotewotICAgIEFTU0VS
VChncmlkSXRlbS5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7Ci0gICAgaWYgKGhhc1N0YXRpY1Bv
c2l0aW9uRm9yR3JpZEl0ZW0oZ3JpZEl0ZW0sIGRpcmVjdGlvbikpCi0gICAgICAgIHJldHVybiAw
X2x1OwotCi0gICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJlY3Rpb24gPT0gU3R5bGU6OkdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbjo6Q29sdW1uczsKLSAgICBib29sIGlzRmxvd0F3YXJlUm93QXhpcyA9
IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckdyaWRJdGVtKCp0aGlz
LCBncmlkSXRlbSwgZGlyZWN0aW9uKSA9PSBTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
OjpDb2x1bW5zOwotICAgIExheW91dFVuaXQgZ3JpZEl0ZW1Qb3NpdGlvbiA9IGlzRmxvd0F3YXJl
Um93QXhpcyA/IGdyaWRJdGVtLmxvZ2ljYWxMZWZ0KCkgOiBncmlkSXRlbS5sb2dpY2FsVG9wKCk7
Ci0gICAgTGF5b3V0VW5pdCBncmlkQm9yZGVyID0gaXNSb3dBeGlzID8gYm9yZGVyTG9naWNhbExl
ZnQoKSA6IGJvcmRlckJlZm9yZSgpOwotICAgIExheW91dFVuaXQgZ3JpZEl0ZW1NYXJnaW4gPSBp
c1Jvd0F4aXMgPyBncmlkSXRlbS5tYXJnaW5Mb2dpY2FsTGVmdCh3cml0aW5nTW9kZSgpKSA6IGdy
aWRJdGVtLm1hcmdpbkJlZm9yZSh3cml0aW5nTW9kZSgpKTsKLSAgICBMYXlvdXRVbml0IG9mZnNl
dCA9IGdyaWRJdGVtUG9zaXRpb24gLSBncmlkQm9yZGVyIC0gZ3JpZEl0ZW1NYXJnaW47Ci0gICAg
aWYgKCFpc1Jvd0F4aXMgfHwgd3JpdGluZ01vZGUoKS5pc0xvZ2ljYWxMZWZ0SW5saW5lU3RhcnQo
KSkKLSAgICAgICAgcmV0dXJuIG9mZnNldDsKLQotICAgIExheW91dFVuaXQgZ3JpZEl0ZW1CcmVh
ZHRoID0gaXNGbG93QXdhcmVSb3dBeGlzID8gZ3JpZEl0ZW0ubG9naWNhbFdpZHRoKCkgKyBncmlk
SXRlbS5tYXJnaW5Mb2dpY2FsV2lkdGgoKSA6IGdyaWRJdGVtLmxvZ2ljYWxIZWlnaHQoKSArIGdy
aWRJdGVtLm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICByZXR1cm4gdHJhY2tCcmVhZHRoIC0g
b2Zmc2V0IC0gZ3JpZEl0ZW1CcmVhZHRoOwotfQotCi1zdGQ6Om9wdGlvbmFsPExheW91dFJhbmdl
PiBSZW5kZXJHcmlkOjpncmlkQXJlYVJvd1JhbmdlRm9yT3V0T2ZGbG93KGNvbnN0IFJlbmRlckJv
eCYgZ3JpZEl0ZW0pIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdyaWRJdGVtLmlzT3V0T2ZGbG93UG9z
aXRpb25lZCgpKTsKLSAgICBhdXRvIGFyZWFTaXplID0gR3JpZExheW91dEZ1bmN0aW9uczo6b3Zl
cnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yR3JpZEl0ZW0oZ3JpZEl0ZW0sIFN0
eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246OlJvd3MpOwotICAgIGlmICghYXJlYVNpemUp
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgTGF5b3V0UmFuZ2UgcmFuZ2UoYm9y
ZGVyQmVmb3JlKCksIGFyZWFTaXplLT52YWx1ZSgpKTsKLSAgICBpZiAoYXV0byBsaW5lID0gbV9v
dXRPZkZsb3dJdGVtUm93LmdldChncmlkSXRlbSkpCi0gICAgICAgIHJhbmdlLm1vdmVUbyhtX3Jv
d1Bvc2l0aW9uc1tsaW5lLnZhbHVlKCldKTsKLSAgICByZXR1cm4gcmFuZ2U7Ci19Ci0KLXN0ZDo6
b3B0aW9uYWw8TGF5b3V0UmFuZ2U+IFJlbmRlckdyaWQ6OmdyaWRBcmVhQ29sdW1uUmFuZ2VGb3JP
dXRPZkZsb3coY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z3JpZEl0ZW0uaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwotICAgIGF1dG8gYXJlYVNpemUgPSBH
cmlkTGF5b3V0RnVuY3Rpb25zOjpvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVG
b3JHcmlkSXRlbShncmlkSXRlbSwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbjo6Q29s
dW1ucyk7Ci0gICAgaWYgKCFhcmVhU2l6ZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LSAgICBMYXlvdXRSYW5nZSByYW5nZShib3JkZXJTdGFydCgpLCBhcmVhU2l6ZS0+dmFsdWUoKSk7
Ci0gICAgaWYgKGF1dG8gbGluZSA9IG1fb3V0T2ZGbG93SXRlbUNvbHVtbi5nZXQoZ3JpZEl0ZW0p
KQotICAgICAgICByYW5nZS5tb3ZlVG8obV9jb2x1bW5Qb3NpdGlvbnNbbGluZS52YWx1ZSgpXSk7
Ci0gICAgcmV0dXJuIHJhbmdlOwotfQotCi1zdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5p
dD4gUmVuZGVyR3JpZDo6Z3JpZEFyZWFQb3NpdGlvbkZvck91dE9mRmxvd0dyaWRJdGVtKGNvbnN0
IFJlbmRlckJveCYgZ3JpZEl0ZW0sIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAotewotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0UmFuZ2U+IHJhbmdlID0g
ZGlyZWN0aW9uID09IFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246OkNvbHVtbnMKLSAg
ICAgICAgPyBncmlkQXJlYUNvbHVtblJhbmdlRm9yT3V0T2ZGbG93KGdyaWRJdGVtKQotICAgICAg
ICA6IGdyaWRBcmVhUm93UmFuZ2VGb3JPdXRPZkZsb3coZ3JpZEl0ZW0pOwotICAgIEFTU0VSVChy
YW5nZSk7Ci0gICAgcmFuZ2UtPm1vdmVCeShsb2dpY2FsT2Zmc2V0Rm9yT3V0T2ZGbG93R3JpZEl0
ZW0oZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgcmFuZ2UtPnNpemUoKSkpOwotICAgIHJldHVybiB7IHJh
bmdlLT5taW4oKSwgcmFuZ2UtPm1heCgpIH07CisgICAgcmV0dXJuIExheW91dFJhbmdlKHN0YXJ0
LCBzdGQ6Om1heChlbmQgLSBzdGFydCwgMF9sdSkpOwogfQogCiBzdGQ6OnBhaXI8TGF5b3V0VW5p
dCwgTGF5b3V0VW5pdD4gUmVuZGVyR3JpZDo6Z3JpZEFyZWFQb3NpdGlvbkZvckluRmxvd0dyaWRJ
dGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gZGlyZWN0aW9uKSBjb25zdApAQCAtMjQyMCwxMyArMjM1Nyw2IEBAIHN0ZDo6cGFpcjxM
YXlvdXRVbml0LCBMYXlvdXRVbml0PiBSZW5kZXJHcmlkOjpncmlkQXJlYVBvc2l0aW9uRm9ySW5G
bG93R3JpZEl0ZW0oCiAgICAgcmV0dXJuIHsgc3RhcnQsIGVuZCB9OwogfQogCi1zdGQ6OnBhaXI8
TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gUmVuZGVyR3JpZDo6Z3JpZEFyZWFQb3NpdGlvbkZvckdy
aWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAotewotICAgIGlmIChncmlkSXRlbS5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgcmV0dXJuIGdyaWRBcmVhUG9zaXRpb25Gb3JPdXRPZkZs
b3dHcmlkSXRlbShncmlkSXRlbSwgZGlyZWN0aW9uKTsKLSAgICByZXR1cm4gZ3JpZEFyZWFQb3Np
dGlvbkZvckluRmxvd0dyaWRJdGVtKGdyaWRJdGVtLCBkaXJlY3Rpb24pOwotfQotCiBzdGQ6OnBh
aXI8T3ZlcmZsb3dBbGlnbm1lbnQsIENvbnRlbnRQb3NpdGlvbj4gc3RhdGljIHJlc29sdmVDb250
ZW50RGlzdHJpYnV0aW9uRmFsbGJhY2soQ29udGVudERpc3RyaWJ1dGlvbiBkaXN0cmlidXRpb24p
CiB7CiAgICAgc3dpdGNoIChkaXN0cmlidXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oCmluZGV4IGE3YmUxNjI1OWE2ZC4uZjI5ODE1NTRiMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTE2MSw4ICsxNjEsNiBAQCBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBHcmlkTWFzb25yeUxheW91dDsKICAgICBmcmllbmQgY2xhc3MgUG9zaXRp
b25lZExheW91dENvbnN0cmFpbnRzOwogCi0gICAgdXNpbmcgT3V0T2ZGbG93UG9zaXRpb25zTWFw
ID0gU2luZ2xlVGhyZWFkV2Vha0hhc2hNYXA8Y29uc3QgUmVuZGVyQm94LCBzdGQ6Om9wdGlvbmFs
PHNpemVfdD4+OwotCiAgICAgdm9pZCBjb21wdXRlTGF5b3V0UmVxdWlyZW1lbnRzRm9ySXRlbXNC
ZWZvcmVMYXlvdXQoR3JpZExheW91dFN0YXRlJikgY29uc3Q7CiAgICAgYm9vbCBjYW5TZXRDb2x1
bW5BeGlzU3RyZXRjaFJlcXVpcmVtZW50Rm9ySXRlbShjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsK
IApAQCAtMjI5LDEzICsyMjcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwb3B1bGF0ZUdyaWRQ
b3NpdGlvbnNGb3JEaXJlY3Rpb24oY29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiwgU3R5
bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7CiAKLSAgICBMYXlvdXRVbml0IGdyaWRBcmVh
QnJlYWR0aEZvck91dE9mRmxvd0dyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIFN0eWxlOjpHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pOwotICAgIExheW91dFVuaXQgbG9naWNhbE9mZnNldEZvck91
dE9mRmxvd0dyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24sIExheW91dFVuaXQpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0UmFu
Z2U+IGdyaWRBcmVhUm93UmFuZ2VGb3JPdXRPZkZsb3coY29uc3QgUmVuZGVyQm94JiBncmlkSXRl
bSkgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRSYW5nZT4gZ3JpZEFyZWFDb2x1bW5S
YW5nZUZvck91dE9mRmxvdyhjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtKSBjb25zdDsKLSAgICBz
dGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gZ3JpZEFyZWFQb3NpdGlvbkZvck91dE9m
Rmxvd0dyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24pIGNvbnN0OworICAgIExheW91dFJhbmdlIGdyaWRBcmVhUmFuZ2VGb3JPdXRPZkZsb3co
Y29uc3QgUmVuZGVyQm94JiwgU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7
CiAgICAgc3RkOjpwYWlyPExheW91dFVuaXQsIExheW91dFVuaXQ+IGdyaWRBcmVhUG9zaXRpb25G
b3JJbkZsb3dHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmLCBTdHlsZTo6R3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uKSBjb25zdDsKLSAgICBzdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4g
Z3JpZEFyZWFQb3NpdGlvbkZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIFN0eWxlOjpHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgR3JpZEF4aXNQb3NpdGlvbiBjb2x1
bW5BeGlzUG9zaXRpb25Gb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKICAgICBH
cmlkQXhpc1Bvc2l0aW9uIHJvd0F4aXNQb3NpdGlvbkZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJv
eCYpIGNvbnN0OwpAQCAtMjk5LDkgKzI5Miw2IEBAIHByaXZhdGU6CiAgICAgQ29udGVudEFsaWdu
bWVudERhdGEmIG9mZnNldEJldHdlZW5UcmFja3MoU3R5bGU6OkdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlY3Rpb24pIHsgcmV0dXJuIGRpcmVjdGlvbiA9PSBTdHlsZTo6R3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uOjpDb2x1bW5zID8gbV9vZmZzZXRCZXR3ZWVuQ29sdW1ucyA6IG1fb2Zmc2V0
QmV0d2VlblJvd3M7IH0KICAgICBjb25zdCBDb250ZW50QWxpZ25tZW50RGF0YSYgb2Zmc2V0QmV0
d2VlblRyYWNrcyhTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29u
c3QgeyByZXR1cm4gZGlyZWN0aW9uID09IFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246
OkNvbHVtbnMgPyBtX29mZnNldEJldHdlZW5Db2x1bW5zIDogbV9vZmZzZXRCZXR3ZWVuUm93czsg
fQogCi0gICAgT3V0T2ZGbG93UG9zaXRpb25zTWFwJiBvdXRPZkZsb3dJdGVtKFN0eWxlOjpHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSB7IHJldHVybiBkaXJlY3Rpb24gPT0gU3R5
bGU6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbjo6Q29sdW1ucyA/IG1fb3V0T2ZGbG93SXRlbUNv
bHVtbiA6IG1fb3V0T2ZGbG93SXRlbVJvdzsgfQotICAgIGNvbnN0IE91dE9mRmxvd1Bvc2l0aW9u
c01hcCYgb3V0T2ZGbG93SXRlbShTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVj
dGlvbikgY29uc3QgeyByZXR1cm4gZGlyZWN0aW9uID09IFN0eWxlOjpHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb246OkNvbHVtbnMgPyBtX291dE9mRmxvd0l0ZW1Db2x1bW4gOiBtX291dE9mRmxvd0l0
ZW1Sb3c7IH0KLQogICAgIGJvb2wgY2FuQ3JlYXRlSW50cmluc2ljTG9naWNhbEhlaWdodHNGb3JS
b3dTaXppbmdGaXJzdFBhc3NDYWNoZSgpIGNvbnN0OwogCiAgICAgY2xhc3MgR3JpZFdyYXBwZXIg
ewpAQCAtMzIzLDkgKzMxMyw2IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIEdyaWRNYXNvbnJ5
TGF5b3V0IG1fbWFzb25yeUxheW91dDsKIAotICAgIE91dE9mRmxvd1Bvc2l0aW9uc01hcCBtX291
dE9mRmxvd0l0ZW1Db2x1bW47Ci0gICAgT3V0T2ZGbG93UG9zaXRpb25zTWFwIG1fb3V0T2ZGbG93
SXRlbVJvdzsKLQogICAgIGJvb2wgbV9iYXNlbGluZUl0ZW1zQ2FjaGVkIHtmYWxzZX07CiAKICAg
ICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8R3JpZEl0ZW1TaXplQ2FjaGU+IG1faW50cmluc2ljTG9n
aWNhbEhlaWdodHNGb3JSb3dTaXppbmdGaXJzdFBhc3M7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>