<?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>238083</bug_id>
          
          <creation_ts>2022-03-18 10:35:00 -0700</creation_ts>
          <short_desc>[IFC][Integration] Move selection specific code from InlineIterator::Line to LineSelection</short_desc>
          <delta_ts>2022-03-19 08:42:18 -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>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>1852765</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 10:35:00 -0700</bug_when>
    <thetext>Let&apos;s move it to LineSelection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852766</commentid>
    <comment_count>1</comment_count>
      <attachid>455110</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-18 10:50:45 -0700</bug_when>
    <thetext>Created attachment 455110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852968</commentid>
    <comment_count>2</comment_count>
      <attachid>455167</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-19 08:37:18 -0700</bug_when>
    <thetext>Created attachment 455167
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852969</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-19 08:41:04 -0700</bug_when>
    <thetext>Committed r291528 (248634@main): &lt;https://commits.webkit.org/248634@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455167.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852970</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-19 08:42:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/90525095&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455110</attachid>
            <date>2022-03-18 10:50:45 -0700</date>
            <delta_ts>2022-03-19 08:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238083-20220318105045.patch</filename>
            <type>text/plain</type>
            <size>8723</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFmZDVhYzdkMDMzYzg4
OWE4Y2IxZjc1ZmExZWIxY2RhYmZhYzllMS4uNmM4ZWUxNGI3ZjY3OGNiZDQ0MzE3MTJhZDQ1NDlm
OTc2ZTMxOTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAzLTE4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
TW92ZSBzZWxlY3Rpb24gc3BlY2lmaWMgY29kZSBmcm9tIElubGluZUl0ZXJhdG9yOjpMaW5lIHRv
IExpbmVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODA4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6ZW5jbG9zaW5nVG9wQWRqdXN0ZWRG
b3JQcmVjZWRpbmdCbG9jayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZTo6c2VsZWN0aW9uU3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjplbmNsb3NpbmdMb2dpY2FsUmVjdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6ZW5jbG9z
aW5nUGh5c2ljYWxSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdy
YXRpb24vTGluZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6
bG9naWNhbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnNl
bGVjdGlvblN0YXRlKToKKwogMjAyMi0wMy0xOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0lGQ11bSW50ZWdyYXRpb25dIE1vdmUgZW5jbG9zaW5nSGVpZ2h0QWRq
dXN0ZWRGb3JQcmVjZWRpbmdCbG9jayBvZmYgb2YgSW5saW5lSXRlcmF0b3I6OkxpbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
TGluZS5jcHAKaW5kZXggYTQ3MDQ5OWY0YjMwOGQ5OTFiZDE1MTBjZTk0MGY3ODkzN2NhOGNkYy4u
YzdlODY1M2FlMzYwMWYzOTUzYWYzMjI4MGFlYmU2NjQ0NGM5MGRlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5j
cHAKQEAgLTE2Miw0MSArMTYyLDYgQEAgaW50IExpbmU6OmJsb2NrRGlyZWN0aW9uUG9pbnRJbkxp
bmUoKSBjb25zdAogICAgIHJldHVybiAhY29udGFpbmluZ0Jsb2NrKCkuc3R5bGUoKS5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gc3RkOjptYXgodG9wKCksIGVuY2xvc2luZ1RvcEZvckhp
dFRlc3RpbmcoKSkgOiBzdGQ6Om1pbihib3R0b20oKSwgZW5jbG9zaW5nQm90dG9tKCkpOwogfQog
Ci1MYXlvdXRVbml0IExpbmU6OmVuY2xvc2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2so
KSBjb25zdAotewotICAgIHJldHVybiBjb250YWluaW5nQmxvY2soKS5hZGp1c3RFbmNsb3NpbmdU
b3BGb3JQcmVjZWRpbmdCbG9jayhlbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUo
KSk7Ci19Ci0KLVJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgTGluZTo6c2VsZWN0aW9uU3Rh
dGUoKSBjb25zdAotewotICAgIGF1dG8mIGJsb2NrID0gY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAg
aWYgKGJsb2NrLnNlbGVjdGlvblN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0
ZTo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5v
bmU7Ci0KLSAgICBhdXRvIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
Ok5vbmU7Ci0gICAgZm9yIChhdXRvIGJveCA9IGZpcnN0TGVhZkJveCgpOyBib3g7IGJveC50cmF2
ZXJzZU5leHRPbkxpbmUoKSkgewotICAgICAgICBhdXRvIGJveFN0YXRlID0gYm94LT5zZWxlY3Rp
b25TdGF0ZSgpOwotICAgICAgICBpZiAobGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxp
Z2h0U3RhdGU6Ok5vbmUpCi0gICAgICAgICAgICBsaW5lU3RhdGUgPSBib3hTdGF0ZTsKLSAgICAg
ICAgZWxzZSBpZiAobGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0
YXJ0KSB7Ci0gICAgICAgICAgICBpZiAoYm94U3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpIaWdobGln
aHRTdGF0ZTo6RW5kIHx8IGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
Ok5vbmUpCi0gICAgICAgICAgICAgICAgbGluZVN0YXRlID0gUmVuZGVyT2JqZWN0OjpIaWdobGln
aHRTdGF0ZTo6Qm90aDsKLSAgICAgICAgfSBlbHNlIGlmIChsaW5lU3RhdGUgPT0gUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZTo6SW5zaWRlKSB7Ci0gICAgICAgICAgICBpZiAoYm94U3RhdGUg
PT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6U3RhcnQgfHwgYm94U3RhdGUgPT0gUmVu
ZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kKQotICAgICAgICAgICAgICAgIGxpbmVTdGF0
ZSA9IGJveFN0YXRlOwotICAgICAgICAgICAgZWxzZSBpZiAoYm94U3RhdGUgPT0gUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICBsaW5lU3RhdGUgPSBS
ZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQ7Ci0gICAgICAgIH0gZWxzZSBpZiAobGlu
ZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZCkgewotICAgICAgICAg
ICAgaWYgKGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0YXJ0KQot
ICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
OkJvdGg7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobGluZVN0YXRlID09IFJlbmRlck9iamVj
dDo6SGlnaGxpZ2h0U3RhdGU6OkJvdGgpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
cmV0dXJuIGxpbmVTdGF0ZTsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggYWIxYzNlNDA5
YTU1MTFjOTdhMTc5ZGYxZGVmNjhlZmFhMTE0ZDM0Ni4uYzhlY2UwNjI1OWM4NGMwNjgxMDI0NzI3
MGUyZGZiZjQzYWI0NDNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaApAQCAtOTYsMTQgKzk2LDcgQEAgcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6TGluZVNlbGVjdGlvbjsKIAogICAgIExheW91
dFVuaXQgZW5jbG9zaW5nQm90dG9tKCkgY29uc3Q7Ci0KLSAgICBMYXlvdXRSZWN0IGVuY2xvc2lu
Z0xvZ2ljYWxSZWN0KCkgY29uc3Q7Ci0gICAgTGF5b3V0UmVjdCBlbmNsb3NpbmdQaHlzaWNhbFJl
Y3QoKSBjb25zdDsKLQogICAgIExheW91dFVuaXQgZW5jbG9zaW5nVG9wQWRqdXN0ZWRGb3JQcmVj
ZWRpbmdMaW5lKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdUb3BBZGp1c3RlZEZv
clByZWNlZGluZ0Jsb2NrKCkgY29uc3Q7Ci0KLSAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0
YXRlIHNlbGVjdGlvblN0YXRlKCkgY29uc3Q7CiAKICAgICBQYXRoVmFyaWFudCBtX3BhdGhWYXJp
YW50OwogfTsKQEAgLTE5NSwyMCArMTg4LDYgQEAgaW5saW5lIExheW91dFVuaXQgTGluZTo6bGlu
ZUJveEJvdHRvbSgpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRSZWN0IExpbmU6
OmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4geyBMYXlvdXRQb2lu
dCB7IGNvbnRlbnRMb2dpY2FsTGVmdCgpLCBlbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGlu
Z0xpbmUoKSB9LCBMYXlvdXRQb2ludCB7IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgZW5jbG9zaW5n
Qm90dG9tKCkgfSB9OwotfQotCi1pbmxpbmUgTGF5b3V0UmVjdCBMaW5lOjplbmNsb3NpbmdQaHlz
aWNhbFJlY3QoKSBjb25zdAotewotICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gZW5jbG9zaW5nTG9n
aWNhbFJlY3QoKTsKLSAgICBpZiAoIWlzSG9yaXpvbnRhbCgpKQotICAgICAgICBwaHlzaWNhbFJl
Y3QgPSBwaHlzaWNhbFJlY3QudHJhbnNwb3NlZFJlY3QoKTsKLSAgICBjb250YWluaW5nQmxvY2so
KS5mbGlwRm9yV3JpdGluZ01vZGUocGh5c2ljYWxSZWN0KTsKLSAgICByZXR1cm4gcGh5c2ljYWxS
ZWN0OwotfQotCiBpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxMZWZ0KCkgY29uc3QK
IHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRv
JiBwYXRoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGluZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xpbmVT
ZWxlY3Rpb24uaAppbmRleCBkMTFiZDJlMGVlYjEzMTkyYmEwZGNhZWY2MjM5M2Q3MzQwN2FiYzhm
Li42ZTFiYWFjMDYzNGIxZDdhNWM2OThhZmE3YzQyODJmOGZiMTRkZmE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JMaW5lLmgi
CisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzQsMTIgKzM1LDU2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xv
c2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CiAgICAgc3RhdGljIExheW91dFVu
aXQgbG9naWNhbEJvdHRvbShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1
cm4gbGluZS5lbmNsb3NpbmdCb3R0b20oKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3QgbG9n
aWNhbFJlY3QoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUu
ZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsgfQotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNpY2Fs
UmVjdChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5lbmNs
b3NpbmdQaHlzaWNhbFJlY3QoKTsgfQorICAgIHN0YXRpYyBMYXlvdXRSZWN0IGxvZ2ljYWxSZWN0
KGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHsgTGF5b3V0UG9pbnQgeyBsaW5lLmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmVuY2xvc2lu
Z1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5jb250
ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuZW5jbG9zaW5nQm90dG9tKCkgfSB9OworICAgIH0KIAot
ICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2Nr
KGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xvc2lu
Z1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKTsgfQorICAgIHN0YXRpYyBMYXlvdXRSZWN0
IHBoeXNpY2FsUmVjdChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICB7Cisg
ICAgICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CisgICAgICAgIGlm
ICghbGluZS5pc0hvcml6b250YWwoKSkKKyAgICAgICAgICAgIHBoeXNpY2FsUmVjdCA9IHBoeXNp
Y2FsUmVjdC50cmFuc3Bvc2VkUmVjdCgpOworICAgICAgICBsaW5lLmNvbnRhaW5pbmdCbG9jaygp
LmZsaXBGb3JXcml0aW5nTW9kZShwaHlzaWNhbFJlY3QpOworICAgICAgICByZXR1cm4gcGh5c2lj
YWxSZWN0OworICAgIH0KKworICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0Jsb2NrKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5n
QmxvY2sgZnJvbSBSZW5kZXJCbG9ja0Zsb3cgdG8gaGVyZS4KKyAgICAgICAgcmV0dXJuIGxpbmUu
Y29udGFpbmluZ0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2sobGlu
ZS5lbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSk7CisgICAgfQorCisgICAg
c3RhdGljIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoY29uc3Qg
SW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgeworICAgICAgICBhdXRvJiBibG9jayA9
IGxpbmUuY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIGlmIChibG9jay5zZWxlY3Rpb25TdGF0
ZSgpID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCisgICAgICAgICAgICBy
ZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKKworICAgICAgICBhdXRv
IGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmU7CisgICAgICAg
IGZvciAoYXV0byBib3ggPSBsaW5lLmZpcnN0TGVhZkJveCgpOyBib3g7IGJveC50cmF2ZXJzZU5l
eHRPbkxpbmUoKSkgeworICAgICAgICAgICAgYXV0byBib3hTdGF0ZSA9IGJveC0+c2VsZWN0aW9u
U3RhdGUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lU3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpIaWdo
bGlnaHRTdGF0ZTo6Tm9uZSkKKyAgICAgICAgICAgICAgICBsaW5lU3RhdGUgPSBib3hTdGF0ZTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKGxpbmVTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdo
dFN0YXRlOjpTdGFydCkgeworICAgICAgICAgICAgICAgIGlmIChib3hTdGF0ZSA9PSBSZW5kZXJP
YmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQgfHwgYm94U3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpI
aWdobGlnaHRTdGF0ZTo6Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgbGluZVN0YXRlID0gUmVu
ZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Qm90aDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
bGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Okluc2lkZSkgeworICAg
ICAgICAgICAgICAgIGlmIChib3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRl
OjpTdGFydCB8fCBib3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQp
CisgICAgICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IGJveFN0YXRlOworICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5v
bmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxp
Z2h0U3RhdGU6OkVuZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGluZVN0YXRlID09IFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZCkgeworICAgICAgICAgICAgICAgIGlmIChib3hT
dGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpTdGFydCkKKyAgICAgICAgICAg
ICAgICAgICAgbGluZVN0YXRlID0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Qm90aDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxpbmVTdGF0ZSA9PSBSZW5kZXJPYmpl
Y3Q6OkhpZ2hsaWdodFN0YXRlOjpCb3RoKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBsaW5lU3RhdGU7CisgICAgfQogCi0gICAgc3RhdGljIFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoY29uc3QgSW5saW5lSXRlcmF0
b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuc2VsZWN0aW9uU3RhdGUoKTsgfQogfTsKIAog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455167</attachid>
            <date>2022-03-19 08:37:18 -0700</date>
            <delta_ts>2022-03-19 08:41:06 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-238083-20220319083718.patch</filename>
            <type>text/plain</type>
            <size>8669</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk4OWU4NTU3Mjg5ZDc5
MmU0NjU0NzQ4ZTgxODY2YzJkNThlNTMxMC4uMmYxN2JlZmNlMzljMmU4NTJhYWE2MTE5NzkyZDNl
MzQ1ZGMxZGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAzLTE5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
TW92ZSBzZWxlY3Rpb24gc3BlY2lmaWMgY29kZSBmcm9tIElubGluZUl0ZXJhdG9yOjpMaW5lIHRv
IExpbmVTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODA4MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6ZW5jbG9zaW5nVG9wQWRqdXN0ZWRG
b3JQcmVjZWRpbmdCbG9jayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGluZTo6c2VsZWN0aW9uU3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjplbmNsb3NpbmdMb2dpY2FsUmVjdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6ZW5jbG9z
aW5nUGh5c2ljYWxSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdy
YXRpb24vTGluZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6
bG9naWNhbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVNlbGVjdGlvbjo6cGh5c2ljYWxS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OmxvZ2ljYWxUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVTZWxlY3Rpb246OnNl
bGVjdGlvblN0YXRlKToKKwogMjAyMi0wMy0xOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBEaWFsb2cgZWxlbWVudCBvbmx5IGFuaW1hdGVzIG9uY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRv
ckxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJh
dG9yTGluZS5jcHAKaW5kZXggYTQ3MDQ5OWY0YjMwOGQ5OTFiZDE1MTBjZTk0MGY3ODkzN2NhOGNk
Yy4uYzdlODY1M2FlMzYwMWYzOTUzYWYzMjI4MGFlYmU2NjQ0NGM5MGRlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGlu
ZS5jcHAKQEAgLTE2Miw0MSArMTYyLDYgQEAgaW50IExpbmU6OmJsb2NrRGlyZWN0aW9uUG9pbnRJ
bkxpbmUoKSBjb25zdAogICAgIHJldHVybiAhY29udGFpbmluZ0Jsb2NrKCkuc3R5bGUoKS5pc0Zs
aXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gc3RkOjptYXgodG9wKCksIGVuY2xvc2luZ1RvcEZv
ckhpdFRlc3RpbmcoKSkgOiBzdGQ6Om1pbihib3R0b20oKSwgZW5jbG9zaW5nQm90dG9tKCkpOwog
fQogCi1MYXlvdXRVbml0IExpbmU6OmVuY2xvc2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxv
Y2soKSBjb25zdAotewotICAgIHJldHVybiBjb250YWluaW5nQmxvY2soKS5hZGp1c3RFbmNsb3Np
bmdUb3BGb3JQcmVjZWRpbmdCbG9jayhlbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xp
bmUoKSk7Ci19Ci0KLVJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgTGluZTo6c2VsZWN0aW9u
U3RhdGUoKSBjb25zdAotewotICAgIGF1dG8mIGJsb2NrID0gY29udGFpbmluZ0Jsb2NrKCk7Ci0g
ICAgaWYgKGJsb2NrLnNlbGVjdGlvblN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRT
dGF0ZTo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
Ok5vbmU7Ci0KLSAgICBhdXRvIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGU6Ok5vbmU7Ci0gICAgZm9yIChhdXRvIGJveCA9IGZpcnN0TGVhZkJveCgpOyBib3g7IGJveC50
cmF2ZXJzZU5leHRPbkxpbmUoKSkgewotICAgICAgICBhdXRvIGJveFN0YXRlID0gYm94LT5zZWxl
Y3Rpb25TdGF0ZSgpOwotICAgICAgICBpZiAobGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGln
aGxpZ2h0U3RhdGU6Ok5vbmUpCi0gICAgICAgICAgICBsaW5lU3RhdGUgPSBib3hTdGF0ZTsKLSAg
ICAgICAgZWxzZSBpZiAobGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
OlN0YXJ0KSB7Ci0gICAgICAgICAgICBpZiAoYm94U3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpIaWdo
bGlnaHRTdGF0ZTo6RW5kIHx8IGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGU6Ok5vbmUpCi0gICAgICAgICAgICAgICAgbGluZVN0YXRlID0gUmVuZGVyT2JqZWN0OjpIaWdo
bGlnaHRTdGF0ZTo6Qm90aDsKLSAgICAgICAgfSBlbHNlIGlmIChsaW5lU3RhdGUgPT0gUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6SW5zaWRlKSB7Ci0gICAgICAgICAgICBpZiAoYm94U3Rh
dGUgPT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6U3RhcnQgfHwgYm94U3RhdGUgPT0g
UmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kKQotICAgICAgICAgICAgICAgIGxpbmVT
dGF0ZSA9IGJveFN0YXRlOwotICAgICAgICAgICAgZWxzZSBpZiAoYm94U3RhdGUgPT0gUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICBsaW5lU3RhdGUg
PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQ7Ci0gICAgICAgIH0gZWxzZSBpZiAo
bGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZCkgewotICAgICAg
ICAgICAgaWYgKGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OlN0YXJ0
KQotICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGU6OkJvdGg7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobGluZVN0YXRlID09IFJlbmRlck9i
amVjdDo6SGlnaGxpZ2h0U3RhdGU6OkJvdGgpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgcmV0dXJuIGxpbmVTdGF0ZTsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKaW5kZXggYWIxYzNl
NDA5YTU1MTFjOTdhMTc5ZGYxZGVmNjhlZmFhMTE0ZDM0Ni4uYzhlY2UwNjI1OWM4NGMwNjgxMDI0
NzI3MGUyZGZiZjQzYWI0NDNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaApAQCAtOTYsMTQgKzk2LDcgQEAgcHJp
dmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6TGluZVNlbGVjdGlvbjsKIAogICAgIExh
eW91dFVuaXQgZW5jbG9zaW5nQm90dG9tKCkgY29uc3Q7Ci0KLSAgICBMYXlvdXRSZWN0IGVuY2xv
c2luZ0xvZ2ljYWxSZWN0KCkgY29uc3Q7Ci0gICAgTGF5b3V0UmVjdCBlbmNsb3NpbmdQaHlzaWNh
bFJlY3QoKSBjb25zdDsKLQogICAgIExheW91dFVuaXQgZW5jbG9zaW5nVG9wQWRqdXN0ZWRGb3JQ
cmVjZWRpbmdMaW5lKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBlbmNsb3NpbmdUb3BBZGp1c3Rl
ZEZvclByZWNlZGluZ0Jsb2NrKCkgY29uc3Q7Ci0KLSAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdo
dFN0YXRlIHNlbGVjdGlvblN0YXRlKCkgY29uc3Q7CiAKICAgICBQYXRoVmFyaWFudCBtX3BhdGhW
YXJpYW50OwogfTsKQEAgLTE5NSwyMCArMTg4LDYgQEAgaW5saW5lIExheW91dFVuaXQgTGluZTo6
bGluZUJveEJvdHRvbSgpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBMYXlvdXRSZWN0IExp
bmU6OmVuY2xvc2luZ0xvZ2ljYWxSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4geyBMYXlvdXRQ
b2ludCB7IGNvbnRlbnRMb2dpY2FsTGVmdCgpLCBlbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNl
ZGluZ0xpbmUoKSB9LCBMYXlvdXRQb2ludCB7IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgZW5jbG9z
aW5nQm90dG9tKCkgfSB9OwotfQotCi1pbmxpbmUgTGF5b3V0UmVjdCBMaW5lOjplbmNsb3NpbmdQ
aHlzaWNhbFJlY3QoKSBjb25zdAotewotICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gZW5jbG9zaW5n
TG9naWNhbFJlY3QoKTsKLSAgICBpZiAoIWlzSG9yaXpvbnRhbCgpKQotICAgICAgICBwaHlzaWNh
bFJlY3QgPSBwaHlzaWNhbFJlY3QudHJhbnNwb3NlZFJlY3QoKTsKLSAgICBjb250YWluaW5nQmxv
Y2soKS5mbGlwRm9yV3JpdGluZ01vZGUocGh5c2ljYWxSZWN0KTsKLSAgICByZXR1cm4gcGh5c2lj
YWxSZWN0OwotfQotCiBpbmxpbmUgZmxvYXQgTGluZTo6Y29udGVudExvZ2ljYWxMZWZ0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBh
dXRvJiBwYXRoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGluZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xp
bmVTZWxlY3Rpb24uaAppbmRleCBkMTFiZDJlMGVlYjEzMTkyYmEwZGNhZWY2MjM5M2Q3MzQwN2Fi
YzhmLi42ZTFiYWFjMDYzNGIxZDdhNWM2OThhZmE3YzQyODJmOGZiMTRkZmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGluZVNlbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MaW5lU2VsZWN0aW9uLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JMaW5l
LmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMzQsMTIgKzM1LDU2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVu
Y2xvc2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpOyB9CiAgICAgc3RhdGljIExheW91
dFVuaXQgbG9naWNhbEJvdHRvbShjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyBy
ZXR1cm4gbGluZS5lbmNsb3NpbmdCb3R0b20oKTsgfQogCi0gICAgc3RhdGljIExheW91dFJlY3Qg
bG9naWNhbFJlY3QoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxp
bmUuZW5jbG9zaW5nTG9naWNhbFJlY3QoKTsgfQotICAgIHN0YXRpYyBMYXlvdXRSZWN0IHBoeXNp
Y2FsUmVjdChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkgeyByZXR1cm4gbGluZS5l
bmNsb3NpbmdQaHlzaWNhbFJlY3QoKTsgfQorICAgIHN0YXRpYyBMYXlvdXRSZWN0IGxvZ2ljYWxS
ZWN0KGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsgTGF5b3V0UG9pbnQgeyBsaW5lLmNvbnRlbnRMb2dpY2FsTGVmdCgpLCBsaW5lLmVuY2xv
c2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nTGluZSgpIH0sIExheW91dFBvaW50IHsgbGluZS5j
b250ZW50TG9naWNhbFJpZ2h0KCksIGxpbmUuZW5jbG9zaW5nQm90dG9tKCkgfSB9OworICAgIH0K
IAotICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BBZGp1c3RlZEZvclByZWNlZGluZ0Js
b2NrKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKSB7IHJldHVybiBsaW5lLmVuY2xv
c2luZ1RvcEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKTsgfQorICAgIHN0YXRpYyBMYXlvdXRS
ZWN0IHBoeXNpY2FsUmVjdChjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZSYgbGluZSkKKyAgICB7
CisgICAgICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gbG9naWNhbFJlY3QobGluZSk7CisgICAgICAg
IGlmICghbGluZS5pc0hvcml6b250YWwoKSkKKyAgICAgICAgICAgIHBoeXNpY2FsUmVjdCA9IHBo
eXNpY2FsUmVjdC50cmFuc3Bvc2VkUmVjdCgpOworICAgICAgICBsaW5lLmNvbnRhaW5pbmdCbG9j
aygpLmZsaXBGb3JXcml0aW5nTW9kZShwaHlzaWNhbFJlY3QpOworICAgICAgICByZXR1cm4gcGh5
c2ljYWxSZWN0OworICAgIH0KKworICAgIHN0YXRpYyBMYXlvdXRVbml0IGxvZ2ljYWxUb3BBZGp1
c3RlZEZvclByZWNlZGluZ0Jsb2NrKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lJiBsaW5lKQor
ICAgIHsKKyAgICAgICAgLy8gRklYTUU6IE1vdmUgYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2Vk
aW5nQmxvY2sgZnJvbSBSZW5kZXJCbG9ja0Zsb3cgdG8gaGVyZS4KKyAgICAgICAgcmV0dXJuIGxp
bmUuY29udGFpbmluZ0Jsb2NrKCkuYWRqdXN0RW5jbG9zaW5nVG9wRm9yUHJlY2VkaW5nQmxvY2so
bGluZS5lbmNsb3NpbmdUb3BBZGp1c3RlZEZvclByZWNlZGluZ0xpbmUoKSk7CisgICAgfQorCisg
ICAgc3RhdGljIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoY29u
c3QgSW5saW5lSXRlcmF0b3I6OkxpbmUmIGxpbmUpCisgICAgeworICAgICAgICBhdXRvJiBibG9j
ayA9IGxpbmUuY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIGlmIChibG9jay5zZWxlY3Rpb25T
dGF0ZSgpID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCisgICAgICAgICAg
ICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKKworICAgICAgICBh
dXRvIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmU7CisgICAg
ICAgIGZvciAoYXV0byBib3ggPSBsaW5lLmZpcnN0TGVhZkJveCgpOyBib3g7IGJveC50cmF2ZXJz
ZU5leHRPbkxpbmUoKSkgeworICAgICAgICAgICAgYXV0byBib3hTdGF0ZSA9IGJveC0+c2VsZWN0
aW9uU3RhdGUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lU3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpI
aWdobGlnaHRTdGF0ZTo6Tm9uZSkKKyAgICAgICAgICAgICAgICBsaW5lU3RhdGUgPSBib3hTdGF0
ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxpbmVTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hs
aWdodFN0YXRlOjpTdGFydCkgeworICAgICAgICAgICAgICAgIGlmIChib3hTdGF0ZSA9PSBSZW5k
ZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQgfHwgYm94U3RhdGUgPT0gUmVuZGVyT2JqZWN0
OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgbGluZVN0YXRlID0g
UmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Qm90aDsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAobGluZVN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Okluc2lkZSkgewor
ICAgICAgICAgICAgICAgIGlmIChib3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0
YXRlOjpTdGFydCB8fCBib3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpF
bmQpCisgICAgICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IGJveFN0YXRlOworICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGJveFN0YXRlID09IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
Ok5vbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmVTdGF0ZSA9IFJlbmRlck9iamVjdDo6SGln
aGxpZ2h0U3RhdGU6OkVuZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGluZVN0YXRlID09IFJl
bmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZCkgeworICAgICAgICAgICAgICAgIGlmIChi
b3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpTdGFydCkKKyAgICAgICAg
ICAgICAgICAgICAgbGluZVN0YXRlID0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Qm90
aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxpbmVTdGF0ZSA9PSBSZW5kZXJP
YmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpCb3RoKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBsaW5lU3RhdGU7CisgICAgfQogCi0gICAgc3RhdGljIFJl
bmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoY29uc3QgSW5saW5lSXRl
cmF0b3I6OkxpbmUmIGxpbmUpIHsgcmV0dXJuIGxpbmUuc2VsZWN0aW9uU3RhdGUoKTsgfQogfTsK
IAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>