<?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>240164</bug_id>
          
          <creation_ts>2022-05-06 04:16:58 -0700</creation_ts>
          <short_desc>Optimize shouldApplyContainment methods</short_desc>
          <delta_ts>2022-05-06 19:09:14 -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>Safari 15</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=240156</see_also>
          <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="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867155</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-06 04:16:58 -0700</bug_when>
    <thetext>Optimize shouldApplyContainment methods by allowing OptionSet as a parameter.
Also restrict the principal box checks to a single location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867156</commentid>
    <comment_count>1</comment_count>
      <attachid>458946</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-06 04:20:19 -0700</bug_when>
    <thetext>Created attachment 458946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867223</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-06 08:55:12 -0700</bug_when>
    <thetext>I was going to do something very similar, but first I wanted to move these functions: bug 240156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867224</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-06 08:58:54 -0700</bug_when>
    <thetext>I can adapt this patch to the moved functions once bug 240156 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867231</commentid>
    <comment_count>4</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-06 09:04:15 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; I can adapt this patch to the moved functions once bug 240156 lands.

Thanks, sounds good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867283</commentid>
    <comment_count>5</comment_count>
      <attachid>458963</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-06 10:56:14 -0700</bug_when>
    <thetext>Created attachment 458963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867421</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-06 19:08:13 -0700</bug_when>
    <thetext>Committed r293943 (250389@main): &lt;https://commits.webkit.org/250389@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458963.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867423</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-06 19:09:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/92893054&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458946</attachid>
            <date>2022-05-06 04:20:19 -0700</date>
            <delta_ts>2022-05-06 10:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240164-20220506122017.patch</filename>
            <type>text/plain</type>
            <size>13677</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDExZTAwNGJlYmJkYjdi
NDQzMzZmYjlhMTZlYzk0ZTMwZmM5NDFkYy4uMDY5YmEzOGJmYjRjNzRjMzM3NzVjM2Y1MjBkYmEy
YzAyNjE5Y2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTA1LTA2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgT3B0aW1pemUgc2hvdWxkQXBwbHlD
b250YWlubWVudCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDAxNjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPcHRpbWl6ZSBzaG91bGRBcHBseUNvbnRhaW5tZW50IG1ldGhvZHMgYnkgYWxs
b3dpbmcgT3B0aW9uU2V0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBbHNvIHJlc3RyaWN0IHRo
ZSBwcmluY2lwYWwgYm94IGNoZWNrcyB0byBhIHNpbmdsZSBsb2NhdGlvbi4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6
OmNhbkNvbnRhaW5GaXhlZFBvc2l0aW9uT2JqZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpjYW5Db250YWluQWJzb2x1dGVseVBvc2l0aW9uZWRPYmplY3RzIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lk
dGhzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpjb21wdXRlRW1wdHlUcmFja3NGb3JBdXRvUmVwZWF0IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3Vs
ZEFwcGx5TGF5b3V0T3JQYWludENvbnRhaW5tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3Vs
ZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRB
cHBseUFueUNvbnRhaW5tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFwcGx5TGF5b3V0
Q29udGFpbm1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQXBwbHlTaXpl
Q29udGFpbm1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQXBwbHlJbmxp
bmVTaXplQ29udGFpbm1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQXBw
bHlTdHlsZUNvbnRhaW5tZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFw
cGx5UGFpbnRDb250YWlubWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KToKKwogMjAyMi0wNS0wNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHRvIGF2b2lkIHBpeGVsIGNvbmZvcm1lcnMgaWYgSU9TdXJm
YWNlcyBhcmUgbm90IGFsbG93ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCmluZGV4IDQ3ZWQyNGVkNWM3YTcyMzg5ODVkYTQ2N2YwOWVlODZhNDM0ZDBlZDguLmYzMzFm
YTZkYzYyOTE1NmY4M2IxMWExZjM3ODY3N2Q0ZjMyYzU4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjI1OCw3ICsyMjU4LDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6b2Zmc2V0Rm9yQ29udGVudHMoTGF5b3V0UG9pbnQmIG9mZnNldCkgY29uc3QKIHZvaWQg
UmVuZGVyQmxvY2s6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1p
bkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdAogewogICAg
IEFTU0VSVCghY2hpbGRyZW5JbmxpbmUoKSk7Ci0gICAgYXV0byBzaG91bGRJZ25vcmVEZXNjZW5k
YW50Q29udGVudEZvckxvZ2ljYWxXaWR0aCA9IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCp0
aGlzKSB8fCBzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgqdGhpcyk7CisgICAgYXV0
byBzaG91bGRJZ25vcmVEZXNjZW5kYW50Q29udGVudEZvckxvZ2ljYWxXaWR0aCA9IHNob3VsZEFw
cGx5U2l6ZU9yU3R5bGVDb250YWlubWVudCh7IENvbnRhaW5tZW50OjpTaXplLCBDb250YWlubWVu
dDo6SW5saW5lU2l6ZSB9LCAqdGhpcyk7CiAgICAgaWYgKCFzaG91bGRJZ25vcmVEZXNjZW5kYW50
Q29udGVudEZvckxvZ2ljYWxXaWR0aCkKICAgICAgICAgY29tcHV0ZUJsb2NrUHJlZmVycmVkTG9n
aWNhbFdpZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggODNjZjVhNmNhZDM4
ZmIwMWQyNTU3MTAxYTBjMWY0NmM0YzQ3ZDI5ZC4uMDhkOTc2ZWE1OThhMDA0NDUxZTVhODI1MjQ5
YzZhY2UzZDA4NmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0
SW50cmluc2ljTG9naWNhbFdpZHRoc0ZvckNvbHVtbnMoTGF5b3V0VW5pdCYgbWluTG9naQogCiB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0
VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0
CiB7Ci0gICAgYXV0byBzaG91bGRJZ25vcmVEZXNjZW5kYW50Q29udGVudEZvckxvZ2ljYWxXaWR0
aCA9IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCp0aGlzKSB8fCBzaG91bGRBcHBseUlubGlu
ZVNpemVDb250YWlubWVudCgqdGhpcyk7CisgICAgYXV0byBzaG91bGRJZ25vcmVEZXNjZW5kYW50
Q29udGVudEZvckxvZ2ljYWxXaWR0aCA9IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVu
dCh7IENvbnRhaW5tZW50OjpTaXplLCBDb250YWlubWVudDo6SW5saW5lU2l6ZSB9LCAqdGhpcyk7
CiAgICAgaWYgKCFzaG91bGRJZ25vcmVEZXNjZW5kYW50Q29udGVudEZvckxvZ2ljYWxXaWR0aCkg
ewogICAgICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkKICAgICAgICAgICAgIGNvbXB1dGVJbmxp
bmVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKG1pbkxvZ2ljYWxXaWR0aCwgbWF4TG9naWNhbFdpZHRo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGRkZjg3MWI3
YTVmNjYzYmE0YzJjYTg0ZDA1NThmMDI4NDgxOWVmN2EuLmYyZmQzNjM1Yzk3MzJhODg3NmFlZTkw
Y2FjOGVlNzVjOWQ3Mjg2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaApAQCAtNDcxLDggKzQ3MSw3IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmNhbkNv
bnRhaW5GaXhlZFBvc2l0aW9uT2JqZWN0cygpIGNvbnN0CiAgICAgICAgIC8vIEZJWE1FOiB3aWxs
LWNoYW5nZSBzaG91bGQgY3JlYXRlIGNvbnRhaW5pbmcgYmxvY2tzIG9uIGlubGluZSBib3hlcyAo
YnVnIDIyNTAzNSkKICAgICAgICAgfHwgKGlzUmVuZGVyQmxvY2soKSAmJiBzdHlsZSgpLndpbGxD
aGFuZ2UoKSAmJiBzdHlsZSgpLndpbGxDaGFuZ2UoKS0+Y3JlYXRlc0NvbnRhaW5pbmdCbG9ja0Zv
ck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgfHwgaXNTVkdGb3JlaWduT2JqZWN0KCkK
LSAgICAgICAgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgqdGhpcykKLSAgICAgICAg
fHwgc2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KCp0aGlzKTsKKyAgICAgICAgfHwgc2hvdWxk
QXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoeyBDb250YWlubWVudDo6TGF5b3V0LCBDb250
YWlubWVudDo6UGFpbnQgfSwgKnRoaXMpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50
OjpjYW5Db250YWluQWJzb2x1dGVseVBvc2l0aW9uZWRPYmplY3RzKCkgY29uc3QKQEAgLTQ4Miw4
ICs0ODEsNyBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpjYW5Db250YWluQWJzb2x1dGVs
eVBvc2l0aW9uZWRPYmplY3RzKCkgY29uc3QKICAgICAgICAgLy8gRklYTUU6IHdpbGwtY2hhbmdl
IHNob3VsZCBjcmVhdGUgY29udGFpbmluZyBibG9ja3Mgb24gaW5saW5lIGJveGVzIChidWcgMjI1
MDM1KQogICAgICAgICB8fCAoaXNSZW5kZXJCbG9jaygpICYmIHN0eWxlKCkud2lsbENoYW5nZSgp
ICYmIHN0eWxlKCkud2lsbENoYW5nZSgpLT5jcmVhdGVzQ29udGFpbmluZ0Jsb2NrRm9yQWJzb2x1
dGVseVBvc2l0aW9uZWQoKSkKICAgICAgICAgfHwgaXNTVkdGb3JlaWduT2JqZWN0KCkKLSAgICAg
ICAgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgqdGhpcykKLSAgICAgICAgfHwgc2hv
dWxkQXBwbHlQYWludENvbnRhaW5tZW50KCp0aGlzKQorICAgICAgICB8fCBzaG91bGRBcHBseUxh
eW91dE9yUGFpbnRDb250YWlubWVudCh7IENvbnRhaW5tZW50OjpMYXlvdXQsIENvbnRhaW5tZW50
OjpQYWludCB9LCAqdGhpcykKICAgICAgICAgfHwgaXNSZW5kZXJWaWV3KCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDkwMTJi
ODgwM2Y5YmE1ZDc5NTAxZTUwMmViMjY2YTBiNjc2ZjkzMTEuLjFiMGMyYzU3OTc4MTNkNmUyZjQ0
NWExOThkNjUwMGE5ODkxNDU5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgUmVuZGVyRmxleGli
bGVCb3g6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2lj
YWxXaWR0CiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCArPSBzY3JvbGxiYXJXaWR0aDsKICAgICB9
OwogCi0gICAgYXV0byBzaG91bGRJZ25vcmVGbGV4SXRlbUNvbnRlbnRGb3JMb2dpY2FsV2lkdGgg
PSBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgqdGhpcykgfHwgc2hvdWxkQXBwbHlJbmxpbmVT
aXplQ29udGFpbm1lbnQoKnRoaXMpOworICAgIGF1dG8gc2hvdWxkSWdub3JlRmxleEl0ZW1Db250
ZW50Rm9yTG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsg
Q29udGFpbm1lbnQ6OlNpemUsIENvbnRhaW5tZW50OjpJbmxpbmVTaXplIH0sICp0aGlzKTsKICAg
ICBpZiAoc2hvdWxkSWdub3JlRmxleEl0ZW1Db250ZW50Rm9yTG9naWNhbFdpZHRoKSB7CiAgICAg
ICAgIGFkZFNjcm9sbGJhcldpZHRoKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyMmU5ODE4ODllN2IxYTM0MDQ2ODlhZjQwOGRm
ZTE4ZTQ4ZWZmMjAwLi45Y2IxN2EyZTEwMzEwMThmYWZlMjEzZTExYjRjN2YwNzA0YmQzZjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0yOTksNyArMjk5LDcg
QEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExh
eW91dFVuaXQpCiAgICAgICAgIC8vIGxvZ2ljYWwgd2lkdGggaXMgYWx3YXlzIGRlZmluaXRlIGFz
IHRoZSBhYm92ZSBjYWxsIHRvIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIHByb3Blcmx5IHJlc29sdmVz
IGludHJpbnNpYyAKICAgICAgICAgLy8gc2l6ZXMuIFdlIGNhbm5vdCBkbyB0aGUgc2FtZSBmb3Ig
aGVpZ2h0cyB0aG91Z2ggYmVjYXVzZSBtYW55IGNvZGUgcGF0aHMgaW5zaWRlIHVwZGF0ZUxvZ2lj
YWxIZWlnaHQoKSByZXF1aXJlIAogICAgICAgICAvLyBhIHByZXZpb3VzIGNhbGwgdG8gc2V0TG9n
aWNhbEhlaWdodCgpIHRvIHJlc29sdmUgaGVpZ2h0cyBwcm9wZXJseSAobGlrZSBmb3IgcG9zaXRp
b25lZCBpdGVtcyBmb3IgZXhhbXBsZSkuCi0gICAgICAgIGF1dG8gc2hvdWxkSWdub3JlR3JpZEl0
ZW1Db250ZW50Rm9yTG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKnRo
aXMpIHx8IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCp0aGlzKTsKKyAgICAgICAg
YXV0byBzaG91bGRJZ25vcmVHcmlkSXRlbUNvbnRlbnRGb3JMb2dpY2FsV2lkdGggPSBzaG91bGRB
cHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQoeyBDb250YWlubWVudDo6U2l6ZSwgQ29udGFpbm1l
bnQ6OklubGluZVNpemUgfSwgKnRoaXMpOwogICAgICAgICBpZiAoc2hvdWxkSWdub3JlR3JpZEl0
ZW1Db250ZW50Rm9yTG9naWNhbFdpZHRoKQogICAgICAgICAgICAgY29tcHV0ZVRyYWNrU2l6ZXNG
b3JJbmRlZmluaXRlU2l6ZShtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLCBGb3JDb2x1bW5zKTsKICAg
ICAgICAgZWxzZQpAQCAtNjQzLDcgKzY0Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxPcmRlcmVkVHJh
Y2tJbmRleFNldD4gUmVuZGVyR3JpZDo6Y29tcHV0ZUVtcHR5VHJhY2tzRm9yQXV0b1JlcGVhCiAg
ICAgdW5zaWduZWQgZmlyc3RBdXRvUmVwZWF0VHJhY2sgPSBpbnNlcnRpb25Qb2ludCArIGdyaWQu
ZXhwbGljaXRHcmlkU3RhcnQoZGlyZWN0aW9uKTsKICAgICB1bnNpZ25lZCBsYXN0QXV0b1JlcGVh
dFRyYWNrID0gZmlyc3RBdXRvUmVwZWF0VHJhY2sgKyBncmlkLmF1dG9SZXBlYXRUcmFja3MoZGly
ZWN0aW9uKTsKIAotICAgIGlmICghZ3JpZC5oYXNHcmlkSXRlbXMoKSB8fCBzaG91bGRBcHBseVNp
emVDb250YWlubWVudCgqdGhpcykgfHwgc2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQo
KnRoaXMpKSB7CisgICAgaWYgKCFncmlkLmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5U2l6
ZU9yU3R5bGVDb250YWlubWVudCh7IENvbnRhaW5tZW50OjpTaXplLCBDb250YWlubWVudDo6SW5s
aW5lU2l6ZSB9LCAqdGhpcykpIHsKICAgICAgICAgZW1wdHlUcmFja0luZGV4ZXMgPSBtYWtlVW5p
cXVlPE9yZGVyZWRUcmFja0luZGV4U2V0PigpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIHRyYWNr
SW5kZXggPSBmaXJzdEF1dG9SZXBlYXRUcmFjazsgdHJhY2tJbmRleCA8IGxhc3RBdXRvUmVwZWF0
VHJhY2s7ICsrdHJhY2tJbmRleCkKICAgICAgICAgICAgIGVtcHR5VHJhY2tJbmRleGVzLT5hZGQo
dHJhY2tJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDYxOTExYzhhYzY2MmZjM2MyM2E5MzU2NTZkODgxOGVmY2M2YzlkODIuLjliYjRhYjFkYWQ1
YjIzNmM3MmIzMzNjNzcxNzQwYzc0Mjg4MzA3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNjE3LDM5ICsyNjE3LDIyIEBAIHZvaWQgc2hvd1JlbmRl
clRyZWUoY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiBvYmplY3QpCiAKICNlbmRpZgogCi1i
b29sIFdlYkNvcmU6OnNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoY29uc3QgV2ViQ29yZTo6
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgV2ViQ29yZTo6c2hvdWxkQXBwbHlMYXlvdXRP
clBhaW50Q29udGFpbm1lbnQoY29uc3QgT3B0aW9uU2V0PENvbnRhaW5tZW50PiYgb3B0aW9ucywg
Y29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gcmVu
ZGVyZXIuc3R5bGUoKS5jb250YWluc0xheW91dCgpICYmICghcmVuZGVyZXIuaXNJbmxpbmUoKSB8
fCByZW5kZXJlci5pc0F0b21pY0lubGluZUxldmVsQm94KCkpICYmICFyZW5kZXJlci5pc1J1YnlU
ZXh0KCkgJiYgKCFyZW5kZXJlci5pc1RhYmxlUGFydCgpIHx8IHJlbmRlcmVyLmlzUmVuZGVyQmxv
Y2tGbG93KCkpOworICAgIHJldHVybiByZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZUNvbnRhaW5t
ZW50KCkuY29udGFpbnNBbnkob3B0aW9ucykgJiYgKCFyZW5kZXJlci5pc0lubGluZSgpIHx8IHJl
bmRlcmVyLmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgJiYgIXJlbmRlcmVyLmlzUnVieVRleHQo
KSAmJiAoIXJlbmRlcmVyLmlzVGFibGVQYXJ0KCkgfHwgcmVuZGVyZXIuaXNSZW5kZXJCbG9ja0Zs
b3coKSk7CiB9CiAKLWJvb2wgV2ViQ29yZTo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoY29u
c3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgV2ViQ29yZTo6c2hvdWxk
QXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KGNvbnN0IE9wdGlvblNldDxDb250YWlubWVudD4m
IG9wdGlvbnMsIGNvbnN0IFdlYkNvcmU6OlJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7Ci0gICAg
cmV0dXJuIHJlbmRlcmVyLnN0eWxlKCkuY29udGFpbnNTaXplKCkgJiYgKCFyZW5kZXJlci5pc0lu
bGluZSgpIHx8IHJlbmRlcmVyLmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgJiYgIXJlbmRlcmVy
LmlzUnVieVRleHQoKSAmJiAoIXJlbmRlcmVyLmlzVGFibGVQYXJ0KCkgfHwgcmVuZGVyZXIuaXNU
YWJsZUNhcHRpb24oKSkgJiYgIXJlbmRlcmVyLmlzVGFibGUoKTsKLX0KLQotYm9vbCBXZWJDb3Jl
OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudChjb25zdCBXZWJDb3JlOjpSZW5kZXJP
YmplY3QmIHJlbmRlcmVyKQotewotICAgIHJldHVybiByZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2
ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OklubGluZVNpemUpICYmICghcmVu
ZGVyZXIuaXNJbmxpbmUoKSB8fCByZW5kZXJlci5pc0F0b21pY0lubGluZUxldmVsQm94KCkpICYm
ICFyZW5kZXJlci5pc1J1YnlUZXh0KCkgJiYgKCFyZW5kZXJlci5pc1RhYmxlUGFydCgpIHx8IHJl
bmRlcmVyLmlzVGFibGVDYXB0aW9uKCkpICYmICFyZW5kZXJlci5pc1RhYmxlKCk7Ci19Ci0KLWJv
b2wgV2ViQ29yZTo6c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KGNvbnN0IFdlYkNvcmU6OlJl
bmRlck9iamVjdCYgcmVuZGVyZXIpCi17Ci0gICAgaWYgKCFyZW5kZXJlci5zdHlsZSgpLmNvbnRh
aW5zU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiAoIXJlbmRlcmVy
LmlzSW5saW5lKCkgfHwgcmVuZGVyZXIuaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSAmJiAhcmVu
ZGVyZXIuaXNSdWJ5VGV4dCgpICYmICghcmVuZGVyZXIuaXNUYWJsZVBhcnQoKSB8fCByZW5kZXJl
ci5pc1RhYmxlQ2FwdGlvbigpKSAmJiAhcmVuZGVyZXIuaXNUYWJsZSgpOwotfQotCi1ib29sIFdl
YkNvcmU6OnNob3VsZEFwcGx5UGFpbnRDb250YWlubWVudChjb25zdCBXZWJDb3JlOjpSZW5kZXJP
YmplY3QmIHJlbmRlcmVyKQotewotICAgIHJldHVybiByZW5kZXJlci5zdHlsZSgpLmNvbnRhaW5z
UGFpbnQoKSAmJiAoIXJlbmRlcmVyLmlzSW5saW5lKCkgfHwgcmVuZGVyZXIuaXNBdG9taWNJbmxp
bmVMZXZlbEJveCgpKSAmJiAhcmVuZGVyZXIuaXNSdWJ5VGV4dCgpICYmICghcmVuZGVyZXIuaXNU
YWJsZVBhcnQoKSB8fCByZW5kZXJlci5pc1JlbmRlckJsb2NrRmxvdygpKTsKKyAgICByZXR1cm4g
cmVuZGVyZXIuc3R5bGUoKS5lZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zQW55KG9wdGlv
bnMpICYmICghcmVuZGVyZXIuaXNJbmxpbmUoKSB8fCByZW5kZXJlci5pc0F0b21pY0lubGluZUxl
dmVsQm94KCkpICYmICFyZW5kZXJlci5pc1J1YnlUZXh0KCkgJiYgKCFyZW5kZXJlci5pc1RhYmxl
UGFydCgpIHx8IHJlbmRlcmVyLmlzVGFibGVDYXB0aW9uKCkpICYmICFyZW5kZXJlci5pc1RhYmxl
KCk7CiB9CiAKIGJvb2wgV2ViQ29yZTo6c2hvdWxkQXBwbHlBbnlDb250YWlubWVudChjb25zdCBX
ZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIGlmIChyZW5kZXJlci5zdHls
ZSgpLmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKChyZW5kZXJlci5zdHlsZSgpLmNvbnRhaW5zTGF5b3V0KCkgfHwgcmVuZGVy
ZXIuc3R5bGUoKS5jb250YWluc1BhaW50KCkpICYmICghcmVuZGVyZXIuaXNJbmxpbmUoKSB8fCBy
ZW5kZXJlci5pc0F0b21pY0lubGluZUxldmVsQm94KCkpICYmICFyZW5kZXJlci5pc1J1YnlUZXh0
KCkgJiYgKCFyZW5kZXJlci5pc1RhYmxlUGFydCgpIHx8IHJlbmRlcmVyLmlzUmVuZGVyQmxvY2tG
bG93KCkpKQorICAgIGlmIChzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudCh7IENv
bnRhaW5tZW50OjpMYXlvdXQsIENvbnRhaW5tZW50OjpQYWludCB9LCByZW5kZXJlcikpCiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiAocmVuZGVyZXIuc3R5bGUoKS5jb250YWluc1Np
emUoKSB8fCByZW5kZXJlci5zdHlsZSgpLmNvbnRhaW5zU3R5bGUoKSkgJiYgKCFyZW5kZXJlci5p
c0lubGluZSgpIHx8IHJlbmRlcmVyLmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgJiYgIXJlbmRl
cmVyLmlzUnVieVRleHQoKSAmJiAoIXJlbmRlcmVyLmlzVGFibGVQYXJ0KCkgfHwgcmVuZGVyZXIu
aXNUYWJsZUNhcHRpb24oKSkgJiYgIXJlbmRlcmVyLmlzVGFibGUoKTsKKyAgICByZXR1cm4gc2hv
dWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsgQ29udGFpbm1lbnQ6OlNpemUsIENvbnRh
aW5tZW50OjpJbmxpbmVTaXplLCBDb250YWlubWVudDo6U3R5bGUgfSwgcmVuZGVyZXIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggM2Y5ODM3MTZjYWUy
MGNiMmZlMWFlMTkwY2ZhM2MxZTUyZDYzN2M0MS4uZDNmNmY4OGUwMzUyOTgwMzQ4ZjJjODYwNDY4
ZmE0YjhlZmYyZWQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApA
QCAtMTIzNCwxMSArMTIzNCwxMyBAQCB2b2lkIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50
cygpOwogdm9pZCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cygpOwogI2Vu
ZGlmCiAKLWJvb2wgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudChjb25zdCBSZW5kZXJPYmpl
Y3QmKTsKLWJvb2wgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoY29uc3QgUmVuZGVyT2JqZWN0
Jik7Ci1ib29sIHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlck9i
amVjdCYpOwotYm9vbCBzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoY29uc3QgUmVuZGVyT2Jq
ZWN0Jik7Ci1ib29sIHNob3VsZEFwcGx5UGFpbnRDb250YWlubWVudChjb25zdCBSZW5kZXJPYmpl
Y3QmKTsKK2Jvb2wgc2hvdWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoY29uc3QgT3B0
aW9uU2V0PENvbnRhaW5tZW50PiYsIGNvbnN0IFJlbmRlck9iamVjdCYpOworaW5saW5lIGJvb2wg
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KSB7IHJldHVybiBzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudChDb250YWlubWVu
dDo6TGF5b3V0LCByZW5kZXJlcik7IH0KK2lubGluZSBib29sIHNob3VsZEFwcGx5UGFpbnRDb250
YWlubWVudChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKSB7IHJldHVybiBzaG91bGRBcHBs
eUxheW91dE9yUGFpbnRDb250YWlubWVudChDb250YWlubWVudDo6UGFpbnQsIHJlbmRlcmVyKTsg
fQorYm9vbCBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQoY29uc3QgT3B0aW9uU2V0
PENvbnRhaW5tZW50PiYsIGNvbnN0IFJlbmRlck9iamVjdCYpOworaW5saW5lIGJvb2wgc2hvdWxk
QXBwbHlTaXplQ29udGFpbm1lbnQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgeyByZXR1
cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KENvbnRhaW5tZW50OjpTaXplLCBy
ZW5kZXJlcik7IH0KK2lubGluZSBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpIHsgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9y
U3R5bGVDb250YWlubWVudChDb250YWlubWVudDo6SW5saW5lU2l6ZSwgcmVuZGVyZXIpOyB9Citp
bmxpbmUgYm9vbCBzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoY29uc3QgUmVuZGVyT2JqZWN0
JiByZW5kZXJlcikgeyByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KENv
bnRhaW5tZW50OjpTdHlsZSwgcmVuZGVyZXIpOyB9CiBib29sIHNob3VsZEFwcGx5QW55Q29udGFp
bm1lbnQoY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458963</attachid>
            <date>2022-05-06 10:56:14 -0700</date>
            <delta_ts>2022-05-06 19:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240164-20220506105613.patch</filename>
            <type>text/plain</type>
            <size>12611</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY0MTVhODdlMzFlZDEx
M2E0ZjRlOGJjMTZlMDYyNTFiODU4ZmU1Zi4uMjNkMmJmZGU4YzI1MGNmNWQ3NTI4ZTUxMWQ2YThj
YjA1NTQyZDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTA1LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGltaXplIHNo
b3VsZEFwcGx5Q29udGFpbm1lbnQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gYSBwYXRjaCBieSBSb2IgQnVpcy4KKworICAg
ICAgICBPcHRpbWl6ZSBzaG91bGRBcHBseUNvbnRhaW5tZW50IG1ldGhvZHMgYnkgYWxsb3dpbmcg
T3B0aW9uU2V0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBbHNvIHJlc3RyaWN0IHRoZSBwcmlu
Y2lwYWwgYm94IGNoZWNrcyB0byBhIHNpbmdsZSBsb2NhdGlvbi4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmNhbkNv
bnRhaW5GaXhlZFBvc2l0aW9uT2JqZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50OjpjYW5Db250YWluQWJzb2x1dGVseVBvc2l0aW9uZWRPYmplY3RzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5TGF5b3V0T3JQYWlu
dENvbnRhaW5tZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNo
b3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRDb250YWlubWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNp
emVDb250YWlubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpz
aG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlBbnlDb250YWlubWVudCBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyR3JpZDo6Y29tcHV0ZUVtcHR5VHJhY2tzRm9yQXV0b1JlcGVhdCBjb25zdCk6CisKIDIw
MjItMDUtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSB0aGUgdmFyaW91cyBzaG91bGRBcHBseUNvbnRhaW5tZW50KCkgZnVuY3Rpb25zIG1l
bWJlciBmdW5jdGlvbnMgb24gUmVuZGVyRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKaW5kZXggY2U3YmYxNTVmZDFmY2RlZDYzZjUwMTVlNTEyOTkwYjdmYTg0
MTZmNC4uODA3ZWM5Y2Q0NjJhMjA2OGMwZGU3ZmMyZWMyNWFjMmE0NWRiZDQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpvZmZzZXRGb3JDb250ZW50cyhMYXlvdXRQb2ludCYgb2Zmc2V0KSBj
b25zdAogdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKCFjaGlsZHJlbklubGluZSgpKTsKLSAgICBhdXRvIHNob3VsZEln
bm9yZURlc2NlbmRhbnRDb250ZW50Rm9yTG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlTaXplQ29u
dGFpbm1lbnQoKSB8fCBzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpOworICAgIGF1
dG8gc2hvdWxkSWdub3JlRGVzY2VuZGFudENvbnRlbnRGb3JMb2dpY2FsV2lkdGggPSBzaG91bGRB
cHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQoeyBDb250YWlubWVudDo6U2l6ZSwgQ29udGFpbm1l
bnQ6OklubGluZVNpemUgfSk7CiAgICAgaWYgKCFzaG91bGRJZ25vcmVEZXNjZW5kYW50Q29udGVu
dEZvckxvZ2ljYWxXaWR0aCkKICAgICAgICAgY29tcHV0ZUJsb2NrUHJlZmVycmVkTG9naWNhbFdp
ZHRocyhtaW5Mb2dpY2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggNDNiOTg0MjE5YjUyY2RkNTg3
ZDMwNWFmMGI0NTRlZDZiOGI0MmU3MS4uYTk1OTcxNjJmZmNhMjhlYTlhYWYxNDFmMDA3YTNmOTlj
MTJiZmU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0SW50cmlu
c2ljTG9naWNhbFdpZHRoc0ZvckNvbHVtbnMoTGF5b3V0VW5pdCYgbWluTG9naQogCiB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYg
bWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7Ci0g
ICAgYXV0byBzaG91bGRJZ25vcmVEZXNjZW5kYW50Q29udGVudEZvckxvZ2ljYWxXaWR0aCA9IHNo
b3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgfHwgc2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFp
bm1lbnQoKTsKKyAgICBhdXRvIHNob3VsZElnbm9yZURlc2NlbmRhbnRDb250ZW50Rm9yTG9naWNh
bFdpZHRoID0gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsgQ29udGFpbm1lbnQ6
OlNpemUsIENvbnRhaW5tZW50OjpJbmxpbmVTaXplIH0pOwogICAgIGlmICghc2hvdWxkSWdub3Jl
RGVzY2VuZGFudENvbnRlbnRGb3JMb2dpY2FsV2lkdGgpIHsKICAgICAgICAgaWYgKGNoaWxkcmVu
SW5saW5lKCkpCiAgICAgICAgICAgICBjb21wdXRlSW5saW5lUHJlZmVycmVkTG9naWNhbFdpZHRo
cyhtaW5Mb2dpY2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCBmZTRjNDgwZjFlMWFjNTU3ZTgwYWFkY2JhNjg3MmRh
MzFhZWE1OWUzLi4zNjY3NzBlMjFmYzIwNTE0MTA0YjZkNThmZmU1YmMwZTc5ZDE5MDM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTkyLDYgKzkyLDggQEAg
cHVibGljOgogICAgIGJvb2wgc2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgY29uc3Q7CiAg
ICAgYm9vbCBzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQoKSBjb25zdDsKICAgICBib29sIHNo
b3VsZEFwcGx5QW55Q29udGFpbm1lbnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZEFwcGx5TGF5
b3V0T3JQYWludENvbnRhaW5tZW50KE9wdGlvblNldDxDb250YWlubWVudD4pIGNvbnN0OworICAg
IGJvb2wgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KE9wdGlvblNldDxDb250YWlu
bWVudD4pIGNvbnN0OwogCiAgICAgQ29sb3Igc2VsZWN0aW9uQ29sb3IoQ1NTUHJvcGVydHlJRCkg
Y29uc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzZWxlY3Rpb25Qc2V1ZG9T
dHlsZSgpIGNvbnN0OwpAQCAtNDc1LDIzICs0NzcsMTkgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxl
bWVudDo6Y2FuQ29udGFpbkZpeGVkUG9zaXRpb25PYmplY3RzKCkgY29uc3QKIHsKICAgICByZXR1
cm4gaXNSZW5kZXJWaWV3KCkKICAgICAgICAgfHwgKGNhbkVzdGFibGlzaENvbnRhaW5pbmdCbG9j
a1dpdGhUcmFuc2Zvcm0oKSAmJiBoYXNUcmFuc2Zvcm0oKSkKLSAgICAgICAgLy8gRklYTUU6IHdp
bGwtY2hhbmdlIHNob3VsZCBjcmVhdGUgY29udGFpbmluZyBibG9ja3Mgb24gaW5saW5lIGJveGVz
IChidWcgMjI1MDM1KQotICAgICAgICB8fCAoaXNSZW5kZXJCbG9jaygpICYmIHN0eWxlKCkud2ls
bENoYW5nZSgpICYmIHN0eWxlKCkud2lsbENoYW5nZSgpLT5jcmVhdGVzQ29udGFpbmluZ0Jsb2Nr
Rm9yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICB8fCAoaXNSZW5kZXJCbG9jaygpICYm
IHN0eWxlKCkud2lsbENoYW5nZSgpICYmIHN0eWxlKCkud2lsbENoYW5nZSgpLT5jcmVhdGVzQ29u
dGFpbmluZ0Jsb2NrRm9yT3V0T2ZGbG93UG9zaXRpb25lZCgpKSAvLyBGSVhNRTogd2lsbC1jaGFu
Z2Ugc2hvdWxkIGNyZWF0ZSBjb250YWluaW5nIGJsb2NrcyBvbiBpbmxpbmUgYm94ZXMgKGJ1ZyAy
MjUwMzUpCiAgICAgICAgIHx8IGlzU1ZHRm9yZWlnbk9iamVjdCgpCi0gICAgICAgIHx8IHNob3Vs
ZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKQotICAgICAgICB8fCBzaG91bGRBcHBseVBhaW50Q29u
dGFpbm1lbnQoKTsKKyAgICAgICAgfHwgc2hvdWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1l
bnQoeyBDb250YWlubWVudDo6TGF5b3V0LCBDb250YWlubWVudDo6UGFpbnQgfSk7CiB9CiAKIGlu
bGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmNhbkNvbnRhaW5BYnNvbHV0ZWx5UG9zaXRpb25lZE9i
amVjdHMoKSBjb25zdAogewotICAgIHJldHVybiBzdHlsZSgpLnBvc2l0aW9uKCkgIT0gUG9zaXRp
b25UeXBlOjpTdGF0aWMKKyAgICByZXR1cm4gaXNSZW5kZXJWaWV3KCkKKyAgICAgICAgfHwgc3R5
bGUoKS5wb3NpdGlvbigpICE9IFBvc2l0aW9uVHlwZTo6U3RhdGljCiAgICAgICAgIHx8IChjYW5F
c3RhYmxpc2hDb250YWluaW5nQmxvY2tXaXRoVHJhbnNmb3JtKCkgJiYgaGFzVHJhbnNmb3JtUmVs
YXRlZFByb3BlcnR5KCkpCi0gICAgICAgIC8vIEZJWE1FOiB3aWxsLWNoYW5nZSBzaG91bGQgY3Jl
YXRlIGNvbnRhaW5pbmcgYmxvY2tzIG9uIGlubGluZSBib3hlcyAoYnVnIDIyNTAzNSkKLSAgICAg
ICAgfHwgKGlzUmVuZGVyQmxvY2soKSAmJiBzdHlsZSgpLndpbGxDaGFuZ2UoKSAmJiBzdHlsZSgp
LndpbGxDaGFuZ2UoKS0+Y3JlYXRlc0NvbnRhaW5pbmdCbG9ja0ZvckFic29sdXRlbHlQb3NpdGlv
bmVkKCkpCisgICAgICAgIHx8IChpc1JlbmRlckJsb2NrKCkgJiYgc3R5bGUoKS53aWxsQ2hhbmdl
KCkgJiYgc3R5bGUoKS53aWxsQ2hhbmdlKCktPmNyZWF0ZXNDb250YWluaW5nQmxvY2tGb3JBYnNv
bHV0ZWx5UG9zaXRpb25lZCgpKSAvLyBGSVhNRTogd2lsbC1jaGFuZ2Ugc2hvdWxkIGNyZWF0ZSBj
b250YWluaW5nIGJsb2NrcyBvbiBpbmxpbmUgYm94ZXMgKGJ1ZyAyMjUwMzUpCiAgICAgICAgIHx8
IGlzU1ZHRm9yZWlnbk9iamVjdCgpCi0gICAgICAgIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFp
bm1lbnQoKQotICAgICAgICB8fCBzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQoKQotICAgICAg
ICB8fCBpc1JlbmRlclZpZXcoKTsKKyAgICAgICAgfHwgc2hvdWxkQXBwbHlMYXlvdXRPclBhaW50
Q29udGFpbm1lbnQoeyBDb250YWlubWVudDo6TGF5b3V0LCBDb250YWlubWVudDo6UGFpbnQgfSk7
CiB9CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmNhbkVzdGFibGlzaENvbnRhaW5pbmdC
bG9ja1dpdGhUcmFuc2Zvcm0oKSBjb25zdApAQCAtNDk5LDQwICs0OTcsNDUgQEAgaW5saW5lIGJv
b2wgUmVuZGVyRWxlbWVudDo6Y2FuRXN0YWJsaXNoQ29udGFpbmluZ0Jsb2NrV2l0aFRyYW5zZm9y
bSgpIGNvbnN0CiAgICAgcmV0dXJuIGlzUmVuZGVyQmxvY2soKSB8fCAoaXNUYWJsZVBhcnQoKSAm
JiAhaXNSZW5kZXJUYWJsZUNvbCgpKTsKIH0KIAoraW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoT3B0aW9uU2V0PENvbnRhaW5tZW50
PiBvcHRpb25zKSBjb25zdAoreworICAgIHJldHVybiBzdHlsZSgpLmVmZmVjdGl2ZUNvbnRhaW5t
ZW50KCkuY29udGFpbnNBbnkob3B0aW9ucykgJiYgKCFpc0lubGluZSgpIHx8IGlzQXRvbWljSW5s
aW5lTGV2ZWxCb3goKSkgJiYgIWlzUnVieVRleHQoKSAmJiAoIWlzVGFibGVQYXJ0KCkgfHwgaXNS
ZW5kZXJCbG9ja0Zsb3coKSk7Cit9CisKK2lubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChPcHRpb25TZXQ8Q29udGFpbm1lbnQ+IG9wdGlv
bnMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxlKCkuZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5j
b250YWluc0FueShvcHRpb25zKSAmJiAoIWlzSW5saW5lKCkgfHwgaXNBdG9taWNJbmxpbmVMZXZl
bEJveCgpKSAmJiAhaXNSdWJ5VGV4dCgpICYmICghaXNUYWJsZVBhcnQoKSB8fCBpc1RhYmxlQ2Fw
dGlvbigpKSAmJiAhaXNUYWJsZSgpOworfQorCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50Ojpz
aG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3R5bGUo
KS5jb250YWluc0xheW91dCgpICYmICghaXNJbmxpbmUoKSB8fCBpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpICYmICFpc1J1YnlUZXh0KCkgJiYgKCFpc1RhYmxlUGFydCgpIHx8IGlzUmVuZGVyQmxv
Y2tGbG93KCkpOworICAgIHJldHVybiBzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVu
dChDb250YWlubWVudDo6TGF5b3V0KTsKIH0KIAotaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBjb25zdAoraW5saW5lIGJvb2wgUmVuZGVyRWxl
bWVudDo6c2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
c3R5bGUoKS5jb250YWluc1NpemUoKSAmJiAoIWlzSW5saW5lKCkgfHwgaXNBdG9taWNJbmxpbmVM
ZXZlbEJveCgpKSAmJiAhaXNSdWJ5VGV4dCgpICYmICghaXNUYWJsZVBhcnQoKSB8fCBpc1RhYmxl
Q2FwdGlvbigpKSAmJiAhaXNUYWJsZSgpOworICAgIHJldHVybiBzaG91bGRBcHBseUxheW91dE9y
UGFpbnRDb250YWlubWVudChDb250YWlubWVudDo6UGFpbnQpOwogfQogCi1pbmxpbmUgYm9vbCBS
ZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0Citp
bmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHN0eWxlKCkuZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlu
cyhDb250YWlubWVudDo6SW5saW5lU2l6ZSkgJiYgKCFpc0lubGluZSgpIHx8IGlzQXRvbWljSW5s
aW5lTGV2ZWxCb3goKSkgJiYgIWlzUnVieVRleHQoKSAmJiAoIWlzVGFibGVQYXJ0KCkgfHwgaXNU
YWJsZUNhcHRpb24oKSkgJiYgIWlzVGFibGUoKTsKKyAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXpl
T3JTdHlsZUNvbnRhaW5tZW50KENvbnRhaW5tZW50OjpTaXplKTsKIH0KIAotaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgY29uc3QKK2lubGlu
ZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkg
Y29uc3QKIHsKLSAgICBpZiAoIXN0eWxlKCkuY29udGFpbnNTdHlsZSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuICghaXNJbmxpbmUoKSB8fCBpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpICYmICFpc1J1YnlUZXh0KCkgJiYgKCFpc1RhYmxlUGFydCgpIHx8IGlzVGFibGVDYXB0
aW9uKCkpICYmICFpc1RhYmxlKCk7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVD
b250YWlubWVudChDb250YWlubWVudDo6SW5saW5lU2l6ZSk7CiB9CiAKLWlubGluZSBib29sIFJl
bmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRDb250YWlubWVudCgpIGNvbnN0CitpbmxpbmUg
Ym9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoKSBjb25zdAog
ewotICAgIHJldHVybiBzdHlsZSgpLmNvbnRhaW5zUGFpbnQoKSAmJiAoIWlzSW5saW5lKCkgfHwg
aXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSAmJiAhaXNSdWJ5VGV4dCgpICYmICghaXNUYWJsZVBh
cnQoKSB8fCBpc1JlbmRlckJsb2NrRmxvdygpKTsKKyAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXpl
T3JTdHlsZUNvbnRhaW5tZW50KENvbnRhaW5tZW50OjpTdHlsZSk7CiB9CiAKIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5QW55Q29udGFpbm1lbnQoKSBjb25zdAogewotICAg
IGlmIChzdHlsZSgpLmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKChzdHlsZSgpLmNvbnRhaW5zTGF5b3V0KCkgfHwgc3R5bGUo
KS5jb250YWluc1BhaW50KCkpICYmICghaXNJbmxpbmUoKSB8fCBpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpICYmICFpc1J1YnlUZXh0KCkgJiYgKCFpc1RhYmxlUGFydCgpIHx8IGlzUmVuZGVyQmxv
Y2tGbG93KCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gKHN0eWxlKCkuY29u
dGFpbnNTaXplKCkgfHwgc3R5bGUoKS5jb250YWluc1N0eWxlKCkpICYmICghaXNJbmxpbmUoKSB8
fCBpc0F0b21pY0lubGluZUxldmVsQm94KCkpICYmICFpc1J1YnlUZXh0KCkgJiYgKCFpc1RhYmxl
UGFydCgpIHx8IGlzVGFibGVDYXB0aW9uKCkpICYmICFpc1RhYmxlKCk7CisgICAgcmV0dXJuIHNo
b3VsZEFwcGx5TGF5b3V0T3JQYWludENvbnRhaW5tZW50KHsgQ29udGFpbm1lbnQ6OkxheW91dCwg
Q29udGFpbm1lbnQ6OlBhaW50IH0pCisgICAgICAgIHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVD
b250YWlubWVudCh7IENvbnRhaW5tZW50OjpTaXplLCBDb250YWlubWVudDo6SW5saW5lU2l6ZSwg
Q29udGFpbm1lbnQ6OlN0eWxlIH0pOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50Ojpj
cmVhdGVzR3JvdXBGb3JTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCAwZGYxOTEwNzdm
NWQ4MzIwMDFiMTgzMDMyZGQ4YWEwZGQwMmFlYmU1Li40NGE3MTEyN2I0MWQ1YWI4OTM2NjYzMGQ1
MTZmNjQ0ZmM2MDViODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94
Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lk
dAogICAgICAgICBtaW5Mb2dpY2FsV2lkdGggKz0gc2Nyb2xsYmFyV2lkdGg7CiAgICAgfTsKIAot
ICAgIGF1dG8gc2hvdWxkSWdub3JlRmxleEl0ZW1Db250ZW50Rm9yTG9naWNhbFdpZHRoID0gc2hv
dWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSB8fCBzaG91bGRBcHBseUlubGluZVNpemVDb250YWlu
bWVudCgpOworICAgIGF1dG8gc2hvdWxkSWdub3JlRmxleEl0ZW1Db250ZW50Rm9yTG9naWNhbFdp
ZHRoID0gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsgQ29udGFpbm1lbnQ6OlNp
emUsIENvbnRhaW5tZW50OjpJbmxpbmVTaXplIH0pOwogICAgIGlmIChzaG91bGRJZ25vcmVGbGV4
SXRlbUNvbnRlbnRGb3JMb2dpY2FsV2lkdGgpIHsKICAgICAgICAgYWRkU2Nyb2xsYmFyV2lkdGgo
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CmluZGV4IDc3YjE0MDY3YjNjZWExMjI3M2NjYzYxNzkyMTdkOWQyNTE0ODEwYjMuLjNkZGE2ZmJk
NzNjZTExNDlhNTc3ZGVmNTY4NzFkMmU3ZTNkZTNjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJlbmRlckdyaWQ6Omxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgLy8g
bG9naWNhbCB3aWR0aCBpcyBhbHdheXMgZGVmaW5pdGUgYXMgdGhlIGFib3ZlIGNhbGwgdG8gdXBk
YXRlTG9naWNhbFdpZHRoKCkgcHJvcGVybHkgcmVzb2x2ZXMgaW50cmluc2ljIAogICAgICAgICAv
LyBzaXplcy4gV2UgY2Fubm90IGRvIHRoZSBzYW1lIGZvciBoZWlnaHRzIHRob3VnaCBiZWNhdXNl
IG1hbnkgY29kZSBwYXRocyBpbnNpZGUgdXBkYXRlTG9naWNhbEhlaWdodCgpIHJlcXVpcmUgCiAg
ICAgICAgIC8vIGEgcHJldmlvdXMgY2FsbCB0byBzZXRMb2dpY2FsSGVpZ2h0KCkgdG8gcmVzb2x2
ZSBoZWlnaHRzIHByb3Blcmx5IChsaWtlIGZvciBwb3NpdGlvbmVkIGl0ZW1zIGZvciBleGFtcGxl
KS4KLSAgICAgICAgYXV0byBzaG91bGRJZ25vcmVHcmlkSXRlbUNvbnRlbnRGb3JMb2dpY2FsV2lk
dGggPSBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIHx8IHNob3VsZEFwcGx5SW5saW5lU2l6
ZUNvbnRhaW5tZW50KCk7CisgICAgICAgIGF1dG8gc2hvdWxkSWdub3JlR3JpZEl0ZW1Db250ZW50
Rm9yTG9naWNhbFdpZHRoID0gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsgQ29u
dGFpbm1lbnQ6OlNpemUsIENvbnRhaW5tZW50OjpJbmxpbmVTaXplIH0pOwogICAgICAgICBpZiAo
c2hvdWxkSWdub3JlR3JpZEl0ZW1Db250ZW50Rm9yTG9naWNhbFdpZHRoKQogICAgICAgICAgICAg
Y29tcHV0ZVRyYWNrU2l6ZXNGb3JJbmRlZmluaXRlU2l6ZShtX3RyYWNrU2l6aW5nQWxnb3JpdGht
LCBGb3JDb2x1bW5zKTsKICAgICAgICAgZWxzZQpAQCAtNjQzLDcgKzY0Myw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxPcmRlcmVkVHJhY2tJbmRleFNldD4gUmVuZGVyR3JpZDo6Y29tcHV0ZUVtcHR5VHJh
Y2tzRm9yQXV0b1JlcGVhCiAgICAgdW5zaWduZWQgZmlyc3RBdXRvUmVwZWF0VHJhY2sgPSBpbnNl
cnRpb25Qb2ludCArIGdyaWQuZXhwbGljaXRHcmlkU3RhcnQoZGlyZWN0aW9uKTsKICAgICB1bnNp
Z25lZCBsYXN0QXV0b1JlcGVhdFRyYWNrID0gZmlyc3RBdXRvUmVwZWF0VHJhY2sgKyBncmlkLmF1
dG9SZXBlYXRUcmFja3MoZGlyZWN0aW9uKTsKIAotICAgIGlmICghZ3JpZC5oYXNHcmlkSXRlbXMo
KSB8fCBzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIHx8IHNob3VsZEFwcGx5SW5saW5lU2l6
ZUNvbnRhaW5tZW50KCkpIHsKKyAgICBpZiAoIWdyaWQuaGFzR3JpZEl0ZW1zKCkgfHwgc2hvdWxk
QXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHsgQ29udGFpbm1lbnQ6OlNpemUsIENvbnRhaW5t
ZW50OjpJbmxpbmVTaXplIH0pKSB7CiAgICAgICAgIGVtcHR5VHJhY2tJbmRleGVzID0gbWFrZVVu
aXF1ZTxPcmRlcmVkVHJhY2tJbmRleFNldD4oKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCB0cmFj
a0luZGV4ID0gZmlyc3RBdXRvUmVwZWF0VHJhY2s7IHRyYWNrSW5kZXggPCBsYXN0QXV0b1JlcGVh
dFRyYWNrOyArK3RyYWNrSW5kZXgpCiAgICAgICAgICAgICBlbXB0eVRyYWNrSW5kZXhlcy0+YWRk
KHRyYWNrSW5kZXgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>