<?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>198282</bug_id>
          
          <creation_ts>2019-05-27 21:33:21 -0700</creation_ts>
          <short_desc>[LFC][IFC] Decouple line layout and processing inline runs.</short_desc>
          <delta_ts>2019-05-28 08:36:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539482</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-05-27 21:33:21 -0700</bug_when>
    <thetext>So that we could use the inline run processing logic for preferred width computation too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539483</commentid>
    <comment_count>1</comment_count>
      <attachid>370712</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-27 21:36:17 -0700</bug_when>
    <thetext>Created attachment 370712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539484</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-27 21:36:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/51167954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539485</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-27 21:37:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/51167959&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539486</commentid>
    <comment_count>4</comment_count>
      <attachid>370713</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-27 21:37:22 -0700</bug_when>
    <thetext>Created attachment 370713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539513</commentid>
    <comment_count>5</comment_count>
      <attachid>370713</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-28 02:38:08 -0700</bug_when>
    <thetext>Comment on attachment 370713
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370713&amp;action=review

&gt; Source/WebCore/layout/inlineformatting/InlineFormattingContext.h:62
&gt; +        unsigned createInlineRunsForLine(Line&amp;, unsigned firstInlineItemIndex) const;

Not super clear what the return value means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539564</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-05-28 07:54:01 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; Comment on attachment 370713 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370713&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineFormattingContext.h:62
&gt; &gt; +        unsigned createInlineRunsForLine(Line&amp;, unsigned firstInlineItemIndex) const;
&gt; 
&gt; Not super clear what the return value means.
Yeah, you are right. I&apos;ll address this in the next patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539565</commentid>
    <comment_count>7</comment_count>
      <attachid>370739</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-05-28 07:55:10 -0700</bug_when>
    <thetext>Created attachment 370739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539577</commentid>
    <comment_count>8</comment_count>
      <attachid>370739</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-28 08:36:11 -0700</bug_when>
    <thetext>Comment on attachment 370739
Patch

Clearing flags on attachment: 370739

Committed r245812: &lt;https://trac.webkit.org/changeset/245812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539578</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-28 08:36:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370712</attachid>
            <date>2019-05-27 21:36:17 -0700</date>
            <delta_ts>2019-05-27 21:37:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198282-20190527213615.patch</filename>
            <type>text/plain</type>
            <size>12563</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkMDU0Y2RiODY4ZDA3
YmEzNTg0ZWIyN2NkNGNkMGMwYWVkYzRmZC4uZTE4NTIzYjE0MWNlYWZkMzMxZjU2M2MyZmUyMzVl
OWRjZTY4ZDdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA1LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEZWNvdXBs
ZSBsaW5lIGxheW91dCBhbmQgcHJvY2Vzc2luZyBpbmxpbmUgcnVucy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODI4MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24g
Zm9yIHVzaW5nICJjcmVhdGVJbmxpbmVSdW5zRm9yTGluZSIgbG9naWMgd2hlbiBjb21wdXRpbmcg
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnNpemUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y3JlYXRl
SW5saW5lUnVuc0ZvckxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnBy
b2Nlc3NJbmxpbmVSdW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNsb3NlTGluZSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZTo6YWRk
SW5saW5lSXRlbSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4
dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6Y3Jl
YXRlQW5kQXBwZW5kVGV4dEl0ZW1zKToKKwogMjAxOS0wNS0yNiAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNbSUZDXSBJZ25vcmUgdGhlIGluaXRpYWwgc3Ry
dXQncyBoZWlnaHQgd2hlbiB0aGUgbGluZSBkb2VzIG5vdCBoYXZlIGFueSBjb250ZW50LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMGVhNGRlM2QwN2E5ZDUzMmMwMTIwNTU5
ZTNiM2VhMWIyMGRhODM2ZC4uOTM0YTcwMGEwMjQwYzJiY2Q3MzBjYjVlNDg4OGU2YzJkNGNkZDAy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01OSw3ICs1OSw4IEBAIHBy
aXZhdGU6CiAgICAgcHJpdmF0ZToKICAgICAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CiAgICAg
ICAgIHZvaWQgaW5pdGlhbGl6ZUxpbmUoTGluZSYsIExheW91dFVuaXQgbGluZUxvZ2ljYWxUb3As
IExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdDsKLSAgICAgICAgdm9pZCBjbG9zZUxp
bmUoTGluZSYpIGNvbnN0OworICAgICAgICB1bnNpZ25lZCBjcmVhdGVJbmxpbmVSdW5zRm9yTGlu
ZShMaW5lJiwgdW5zaWduZWQgZmlyc3RJbmxpbmVJdGVtSW5kZXgpIGNvbnN0OworICAgICAgICB2
b2lkIHByb2Nlc3NJbmxpbmVSdW5zKExpbmUmKSBjb25zdDsKICAgICAgICAgdm9pZCBjb21taXRJ
bmxpbmVJdGVtVG9MaW5lKExpbmUmLCBjb25zdCBJbmxpbmVJdGVtJikgY29uc3Q7CiAgICAgICAg
IHZvaWQgaGFuZGxlRmxvYXQoTGluZSYsIGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IElu
bGluZUl0ZW0mIGZsb2F0Qm94KSBjb25zdDsKICAgICAgICAgdm9pZCBhbGlnblJ1bnMoVGV4dEFs
aWduTW9kZSwgdW5zaWduZWQgZmlyc3RSdW5JbmRleCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0
aCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5
b3V0LmNwcAppbmRleCBhY2IyOWEzYzdlMGMwMjRmNTU4MWE3ODI0MzNmMDcwMTNiMjVjNWMwLi4x
MGViMjA4ODA5ZDUyNTBlNzg5NzAyMjVhOTI4Zjg4M2QwYjhkZTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKQEAgLTMzNiw2ICszMzYs
NyBAQCBzdHJ1Y3QgVW5jb21taXR0ZWRDb250ZW50IHsKIAogICAgIFZlY3RvcjxJbmxpbmVJdGVt
Kj4gaW5saW5lSXRlbXMoKSB7IHJldHVybiBtX2lubGluZUl0ZW1zOyB9CiAgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVJdGVtcy5pc0VtcHR5KCk7IH0KKyAgICB1bnNp
Z25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVJdGVtcy5zaXplKCk7IH0KICAgICBM
YXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogCiBwcml2YXRlOgpA
QCAtMzk4LDY1ICszOTksODAgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxh
eW91dDo6aW5pdGlhbGl6ZUxpbmUoTGluZSYgbGluZSwgTGF5b3V0VW5pdAogICAgIGxpbmUucmVz
ZXQoeyBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsVG9wIH0sIGF2YWlsYWJsZVdpZHRoLCBt
aW1pbXVtTGluZUhlaWdodCwgYmFzZWxpbmVPZmZzZXQpOwogfQogCi12b2lkIElubGluZUZvcm1h
dHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpsYXlvdXQoTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFp
bnQpIGNvbnN0Cit1bnNpZ25lZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6
Y3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYgbGluZSwgdW5zaWduZWQgc3RhcnRJbmxpbmVJ
dGVtSW5kZXgpIGNvbnN0CiB7CiAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9hdGluZ0Nv
bnRleHQgeyBtX2Zsb2F0aW5nU3RhdGUgfTsKLSAgICBMaW5lIGxpbmUobGF5b3V0U3RhdGUoKSk7
Ci0gICAgaW5pdGlhbGl6ZUxpbmUobGluZSwgbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5
b3V0Qm94KG1fZm9ybWF0dGluZ1Jvb3QpLmNvbnRlbnRCb3hUb3AoKSwgd2lkdGhDb25zdHJhaW50
KTsKKyAgICBPcHRpb25hbDx1bnNpZ25lZD4gbGFzdENvbW1pdHRlZEluZGV4OwogCiAgICAgVW5j
b21taXR0ZWRDb250ZW50IHVuY29tbWl0dGVkQ29udGVudDsKICAgICBhdXRvIGNvbW1pdFBlbmRp
bmdDb250ZW50ID0gWyZdIHsKKyAgICAgICAgaWYgKHVuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGFzdENvbW1pdHRlZEluZGV4ID0g
bGFzdENvbW1pdHRlZEluZGV4LnZhbHVlT3Ioc3RhcnRJbmxpbmVJdGVtSW5kZXgpICsgdW5jb21t
aXR0ZWRDb250ZW50LnNpemUoKTsKICAgICAgICAgZm9yIChhdXRvKiB1bmNvbW1pdHRlZCA6IHVu
Y29tbWl0dGVkQ29udGVudC5pbmxpbmVJdGVtcygpKQogICAgICAgICAgICAgY29tbWl0SW5saW5l
SXRlbVRvTGluZShsaW5lLCAqdW5jb21taXR0ZWQpOwogICAgICAgICB1bmNvbW1pdHRlZENvbnRl
bnQucmVzZXQoKTsKICAgICB9OwogCi0gICAgYXV0byBjbG9zZUN1cnJlbnRBbmRJbml0aWFsaXpl
TmV3TGluZSA9IFsmXSB7Ci0gICAgICAgIGNsb3NlTGluZShsaW5lKTsKLSAgICAgICAgaW5pdGlh
bGl6ZUxpbmUobGluZSwgbGluZS5sb2dpY2FsQm90dG9tKCksIHdpZHRoQ29uc3RyYWludCk7Ci0g
ICAgfTsKLQogICAgIExpbmVCcmVha2VyIGxpbmVCcmVha2VyKGxheW91dFN0YXRlKCkpOworICAg
IC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5saW5lIGNvbnRlbnQgYW5kIHBsYWNlIHRoZSBpbmxp
bmUgYm94ZXMgb24gdGhlIGN1cnJlbnQgbGluZS4KICAgICBhdXRvJiBpbmxpbmVDb250ZW50ID0g
bV9mb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKTsKLSAgICBmb3IgKGF1dG8mIGlubGluZUl0
ZW0gOiBpbmxpbmVDb250ZW50KSB7Ci0gICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5s
aW5lIGNvbnRlbnQgYW5kIHRyeSB0byBwdXQgdGhlIGlubGluZSBib3hlcyBvbiB0aGUgY3VycmVu
dCBsaW5lLgorICAgIGZvciAoYXV0byBpbmxpbmVJdGVtSW5kZXggPSBzdGFydElubGluZUl0ZW1J
bmRleDsgaW5saW5lSXRlbUluZGV4IDwgaW5saW5lQ29udGVudC5zaXplKCk7ICsraW5saW5lSXRl
bUluZGV4KSB7CisgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBpbmxpbmVDb250ZW50W2lubGlu
ZUl0ZW1JbmRleF07CiAgICAgICAgIGlmIChpbmxpbmVJdGVtLT5pc0hhcmRMaW5lQnJlYWsoKSkg
eworICAgICAgICAgICAgdW5jb21taXR0ZWRDb250ZW50LmFkZCgqaW5saW5lSXRlbSk7CisgICAg
ICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgpOworICAgICAgICAgICAgcmV0dXJuICpsYXN0
Q29tbWl0dGVkSW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9
IGxpbmUuYXZhaWxhYmxlV2lkdGgoKSAtIHVuY29tbWl0dGVkQ29udGVudC53aWR0aCgpOworICAg
ICAgICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBsaW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQo
KSArIHVuY29tbWl0dGVkQ29udGVudC53aWR0aCgpOworICAgICAgICAvLyBGSVhNRTogRW5zdXJl
IExpbmVDb250ZXh0Ojp0cmltbWFibGVXaWR0aCBpbmNsdWRlcyB1bmNvbW1pdHRlZCBjb250ZW50
IGlmIG5lZWRlZC4KKyAgICAgICAgYXV0byBicmVha2luZ0NvbnRleHQgPSBsaW5lQnJlYWtlci5i
cmVha2luZ0NvbnRleHQoKmlubGluZUl0ZW0sIHsgYXZhaWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dp
Y2FsUmlnaHQsIGxpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCAhbGluZS5oYXNDb250ZW50
KCkgfSk7CisgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNBdEJyZWFraW5nT3Bwb3J0dW5p
dHkpCiAgICAgICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgpOwotICAgICAgICAgICAgY29t
bWl0SW5saW5lSXRlbVRvTGluZShsaW5lLCAqaW5saW5lSXRlbSk7Ci0gICAgICAgICAgICBjbG9z
ZUN1cnJlbnRBbmRJbml0aWFsaXplTmV3TGluZSgpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGxpbmUuYXZhaWxhYmxlV2lkdGgoKSAtIHVuY29t
bWl0dGVkQ29udGVudC53aWR0aCgpOwotICAgICAgICAgICAgYXV0byBjdXJyZW50TG9naWNhbFJp
Z2h0ID0gbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCkgKyB1bmNvbW1pdHRlZENvbnRlbnQud2lk
dGgoKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJs
ZVdpZHRoIGluY2x1ZGVzIHVuY29tbWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgotICAgICAgICAg
ICAgYXV0byBicmVha2luZ0NvbnRleHQgPSBsaW5lQnJlYWtlci5icmVha2luZ0NvbnRleHQoKmlu
bGluZUl0ZW0sIHsgYXZhaWxhYmxlV2lkdGgsIGN1cnJlbnRMb2dpY2FsUmlnaHQsIGxpbmUudHJh
aWxpbmdUcmltbWFibGVXaWR0aCgpLCAhbGluZS5oYXNDb250ZW50KCkgfSk7Ci0gICAgICAgICAg
ICBpZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRCcmVha2luZ09wcG9ydHVuaXR5KQotICAgICAgICAg
ICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7Ci0KLSAgICAgICAgICAgIGlmIChicmVha2lu
Z0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlv
cjo6QnJlYWspIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgp
OwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJy
ZWFraW5nQmVoYXZpb3I6OldyYXApCi0gICAgICAgICAgICAgICAgY2xvc2VDdXJyZW50QW5kSW5p
dGlhbGl6ZU5ld0xpbmUoKTsKKyAgICAgICAgLy8gQ29udGVudCBkb2VzIG5vdCBmaXQgdGhlIGN1
cnJlbnQgbGluZS4KKyAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2aW9y
ID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpXcmFwKQorICAgICAgICAgICAgcmV0
dXJuICpsYXN0Q29tbWl0dGVkSW5kZXg7CiAKLSAgICAgICAgICAgIGlmIChpbmxpbmVJdGVtLT5p
c0Zsb2F0KCkpCi0gICAgICAgICAgICAgICAgaGFuZGxlRmxvYXQobGluZSwgZmxvYXRpbmdDb250
ZXh0LCAqaW5saW5lSXRlbSk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRCcmVha2luZ09wcG9ydHVuaXR5KQotICAgICAgICAgICAg
ICAgICAgICBjb21taXRJbmxpbmVJdGVtVG9MaW5lKGxpbmUsICppbmxpbmVJdGVtKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkQ29udGVudC5h
ZGQoKmlubGluZUl0ZW0pOwotICAgICAgICAgICAgfQorICAgICAgICAvLyBQYXJ0aWFsIGNvbnRl
bnQgc3RheXMgb24gdGhlIGN1cnJlbnQgbGluZS4gCisgICAgICAgIGlmIChicmVha2luZ0NvbnRl
eHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6QnJl
YWspIHsKKyAgICAgICAgICAgIEFTU0VSVChpbmxpbmVJdGVtLT5pc1RleHQoKSk7CisKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7CisgICAgICAgICAgICByZXR1cm4g
Kmxhc3RDb21taXR0ZWRJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmxpbmVJdGVt
LT5pc0Zsb2F0KCkpIHsKKyAgICAgICAgICAgIGhhbmRsZUZsb2F0KGxpbmUsIGZsb2F0aW5nQ29u
dGV4dCwgKmlubGluZUl0ZW0pOworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKwor
ICAgICAgICB1bmNvbW1pdHRlZENvbnRlbnQuYWRkKCppbmxpbmVJdGVtKTsKKyAgICAgICAgaWYg
KGJyZWFraW5nQ29udGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKKyAgICAgICAgICAgIGNv
bW1pdFBlbmRpbmdDb250ZW50KCk7CiAgICAgfQotICAgIC8vIFByb2Nlc3MgcmVtYWluaW5nIHVu
Y29tbWl0dGVkIGNvbnRlbnQuCi0gICAgaWYgKCF1bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGlmIChsaW5lLmF2YWlsYWJsZVdpZHRoKCkgPCB1bmNvbW1pdHRlZENvbnRl
bnQud2lkdGgoKSkKLSAgICAgICAgICAgIGNsb3NlQ3VycmVudEFuZEluaXRpYWxpemVOZXdMaW5l
KCk7Ci0gICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CisgICAgY29tbWl0UGVuZGluZ0Nv
bnRlbnQoKTsKKyAgICByZXR1cm4gKmxhc3RDb21taXR0ZWRJbmRleDsKK30KKwordm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6bGF5b3V0KExheW91dFVuaXQgd2lkdGhD
b25zdHJhaW50KSBjb25zdAoreworICAgIEFTU0VSVCghbV9mb3JtYXR0aW5nU3RhdGUuaW5saW5l
SXRlbXMoKS5pc0VtcHR5KCkpOworCisgICAgTGluZSBsaW5lKGxheW91dFN0YXRlKCkpOworICAg
IGluaXRpYWxpemVMaW5lKGxpbmUsIGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJv
eChtX2Zvcm1hdHRpbmdSb290KS5jb250ZW50Qm94VG9wKCksIHdpZHRoQ29uc3RyYWludCk7CisK
KyAgICB1bnNpZ25lZCBzdGFydElubGluZUl0ZW1JbmRleCA9IDA7CisgICAgd2hpbGUgKHRydWUp
IHsKKyAgICAgICAgYXV0byBuZXh0SW5saW5lSXRlbUluZGV4ID0gY3JlYXRlSW5saW5lUnVuc0Zv
ckxpbmUobGluZSwgc3RhcnRJbmxpbmVJdGVtSW5kZXgpOworICAgICAgICBwcm9jZXNzSW5saW5l
UnVucyhsaW5lKTsKKyAgICAgICAgaWYgKG5leHRJbmxpbmVJdGVtSW5kZXggPT0gbV9mb3JtYXR0
aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5zaXplKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgc3RhcnRJbmxpbmVJdGVtSW5kZXggPSBuZXh0SW5saW5lSXRlbUluZGV4OworICAgICAgICBp
bml0aWFsaXplTGluZShsaW5lLCBsaW5lLmxvZ2ljYWxCb3R0b20oKSwgd2lkdGhDb25zdHJhaW50
KTsKICAgICB9Ci0gICAgY2xvc2VMaW5lKGxpbmUpOwogfQogCiBMYXlvdXRVbml0IElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoKExheW91
dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdApAQCAtNDg3LDcgKzUwMyw3IEBAIExheW91dFVu
aXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2lj
V2lkdGgoTGF5b3V0VW5pCiAgICAgcmV0dXJuIHN0ZDo6bWF4KG1heGltdW1MaW5lV2lkdGgsIGxp
bmVMb2dpY2FsUmlnaHQgLSB0cmltbWFibGVUcmFpbGluZ1dpZHRoKTsKIH0KIAotdm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6Y2xvc2VMaW5lKExpbmUmIGxpbmUpIGNv
bnN0Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojpwcm9jZXNzSW5s
aW5lUnVucyhMaW5lJiBsaW5lKSBjb25zdAogewogICAgIGF1dG8mIGxpbmVJdGVtcyA9IGxpbmUu
Y2xvc2UoKTsKICAgICBpZiAobGluZUl0ZW1zLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaAppbmRleCBkNzRkY2U1MzgyYzI3ZGNlOTYxYWE2NjQzOTc5MzIwNzE5MWI1ZmFj
Li4wNzYxMTI4M2U1MTEwM2FmM2IzYjcwZGYzM2RlNmYwNGZiMjg5Mzc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nU3RhdGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgTGF5b3V0IHsKIAogLy8gVGVtcAotdXNpbmcgSW5saW5lSXRlbXMgPSBMaXN0SGFz
aFNldDxzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lSXRlbT4+OwordXNpbmcgSW5saW5lSXRlbXMgPSBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPElubGluZUl0ZW0+PjsKIHVzaW5nIElubGluZVJ1bnMgPSBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OlJ1bj4+OwogdXNpbmcgTGluZUJveGVzID0g
VmVjdG9yPExpbmVCb3g+OwogLy8gSW5saW5lRm9ybWF0dGluZ1N0YXRlIGhvbGRzIHRoZSBzdGF0
ZSBmb3IgYSBwYXJ0aWN1bGFyIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgdHJlZS4KQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIElubGluZVJ1bnMmIGlubGluZVJ1bnMoKSB7IHJldHVy
biBtX2lubGluZVJ1bnM7IH0KICAgICBMaW5lQm94ZXMmIGxpbmVCb3hlcygpIHsgcmV0dXJuIG1f
bGluZUJveGVzOyB9CiAKLSAgICB2b2lkIGFkZElubGluZUl0ZW0oc3RkOjp1bmlxdWVfcHRyPElu
bGluZUl0ZW0+JiYgaW5saW5lSXRlbSkgeyBtX2lubGluZUl0ZW1zLmFkZChXVEZNb3ZlKGlubGlu
ZUl0ZW0pKTsgfQorICAgIHZvaWQgYWRkSW5saW5lSXRlbShzdGQ6OnVuaXF1ZV9wdHI8SW5saW5l
SXRlbT4mJiBpbmxpbmVJdGVtKSB7IG1faW5saW5lSXRlbXMuYXBwZW5kKFdURk1vdmUoaW5saW5l
SXRlbSkpOyB9CiAgICAgdm9pZCBhZGRJbmxpbmVSdW4oc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6
OlJ1bj4mJiBpbmxpbmVSdW4pIHsgbV9pbmxpbmVSdW5zLmFwcGVuZChXVEZNb3ZlKGlubGluZVJ1
bikpOyB9CiAgICAgdm9pZCBhZGRMaW5lQm94KExpbmVCb3ggbGluZUJveCkgeyBtX2xpbmVCb3hl
cy5hcHBlbmQobGluZUJveCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCmluZGV4IGNmNTQyNDY0ZmRi
YmY0NmY0MThiMDExY2EwNDgzYTVlN2I5MmQxOGMuLjZlMmE4ZmE4OWM5OWNhMjY1MjBjMjIxYTY3
ODBiNWQyZWEwMWRhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAKQEAgLTk4LDIwICs5OCwyMCBAQCB2
b2lkIElubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMm
IGlubGluZUNvbnRlbnQsIGNvbnN0CiAgICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8IHRleHQu
bGVuZ3RoKCkpIHsKICAgICAgICAgLy8gU29mdCBsaW5lYnJlYWs/CiAgICAgICAgIGlmIChpc1Nv
ZnRMaW5lQnJlYWsodGV4dFtjdXJyZW50UG9zaXRpb25dLCBwcmVzZXJ2ZU5ld2xpbmUpKSB7Ci0g
ICAgICAgICAgICBpbmxpbmVDb250ZW50LmFkZChzdGQ6Om1ha2VfdW5pcXVlPElubGluZVRleHRJ
dGVtPihpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgMSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAg
ICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lVGV4dEl0
ZW0+KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCAxLCB0cnVlLCBmYWxzZSkpOwogICAgICAg
ICAgICAgKytjdXJyZW50UG9zaXRpb247CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlQ2hhcmFjdGVyKHRleHRbY3VycmVudFBvc2l0aW9u
XSwgcHJlc2VydmVOZXdsaW5lKSkgewogICAgICAgICAgICAgYXV0byBsZW5ndGggPSBtb3ZlVG9O
ZXh0Tm9uV2hpdGVzcGFjZVBvc2l0aW9uKHRleHQsIGN1cnJlbnRQb3NpdGlvbiwgcHJlc2VydmVO
ZXdsaW5lKTsKICAgICAgICAgICAgIGF1dG8gaXNDb2xsYXBzZWQgPSBjb2xsYXBzZVdoaXRlU3Bh
Y2UgJiYgbGVuZ3RoID4gMTsKLSAgICAgICAgICAgIGlubGluZUNvbnRlbnQuYWRkKHN0ZDo6bWFr
ZV91bmlxdWU8SW5saW5lVGV4dEl0ZW0+KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBsZW5n
dGgsIHRydWUsIGlzQ29sbGFwc2VkKSk7CisgICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVu
ZChzdGQ6Om1ha2VfdW5pcXVlPElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIGN1cnJlbnRQb3Np
dGlvbiwgbGVuZ3RoLCB0cnVlLCBpc0NvbGxhcHNlZCkpOwogICAgICAgICAgICAgY3VycmVudFBv
c2l0aW9uICs9IGxlbmd0aDsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byBsZW5ndGggPSBtb3ZlVG9OZXh0QnJlYWthYmxlUG9zaXRpb24oY3VycmVudFBv
c2l0aW9uLCBsaW5lQnJlYWtJdGVyYXRvciwgc3R5bGUpOwotICAgICAgICBpbmxpbmVDb250ZW50
LmFkZChzdGQ6Om1ha2VfdW5pcXVlPElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIGN1cnJlbnRQ
b3NpdGlvbiwgbGVuZ3RoLCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgICAgaW5saW5lQ29udGVudC5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBjdXJyZW50
UG9zaXRpb24sIGxlbmd0aCwgZmFsc2UsIGZhbHNlKSk7CiAgICAgICAgIGN1cnJlbnRQb3NpdGlv
biArPSBsZW5ndGg7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370713</attachid>
            <date>2019-05-27 21:37:22 -0700</date>
            <delta_ts>2019-05-28 07:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198282-20190527213720.patch</filename>
            <type>text/plain</type>
            <size>12598</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkMDU0Y2RiODY4ZDA3
YmEzNTg0ZWIyN2NkNGNkMGMwYWVkYzRmZC4uODhmZWNlY2NhNDVhYTc0MDEyYWI0MzQyMDYwYjY5
ZmY5ZjBjODE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA1LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEZWNvdXBs
ZSBsaW5lIGxheW91dCBhbmQgcHJvY2Vzc2luZyBpbmxpbmUgcnVucy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODI4MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTExNjc5NTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgdXNpbmcgImNyZWF0ZUlubGlu
ZVJ1bnNGb3JMaW5lIiBsb2dpYyB3aGVuIGNvbXB1dGluZyBwcmVmZXJyZWQgd2lkdGguCisKKyAg
ICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlVuY29tbWl0dGVk
Q29udGVudDo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVJbmxpbmVSdW5zRm9yTGluZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lTGF5b3V0OjpsYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZVJ1bnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6Y2xvc2VMaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlOjphZGRJbmxpbmVJdGVtKToKKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMp
OgorCiAyMDE5LTA1LTI2ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ1tJRkNdIElnbm9yZSB0aGUgaW5pdGlhbCBzdHJ1dCdzIGhlaWdodCB3aGVuIHRoZSBs
aW5lIGRvZXMgbm90IGhhdmUgYW55IGNvbnRlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaAppbmRleCAwZWE0ZGUzZDA3YTlkNTMyYzAxMjA1NTllM2IzZWExYjIwZGE4MzZkLi45MzRh
NzAwYTAyNDBjMmJjZDczMGNiNWU0ODg4ZTZjMmQ0Y2RkMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmgKQEAgLTU5LDcgKzU5LDggQEAgcHJpdmF0ZToKICAgICBwcml2YXRlOgog
ICAgICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1h
dHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KICAgICAgICAgdm9pZCBpbml0aWFsaXplTGlu
ZShMaW5lJiwgTGF5b3V0VW5pdCBsaW5lTG9naWNhbFRvcCwgTGF5b3V0VW5pdCB3aWR0aENvbnN0
cmFpbnQpIGNvbnN0OwotICAgICAgICB2b2lkIGNsb3NlTGluZShMaW5lJikgY29uc3Q7CisgICAg
ICAgIHVuc2lnbmVkIGNyZWF0ZUlubGluZVJ1bnNGb3JMaW5lKExpbmUmLCB1bnNpZ25lZCBmaXJz
dElubGluZUl0ZW1JbmRleCkgY29uc3Q7CisgICAgICAgIHZvaWQgcHJvY2Vzc0lubGluZVJ1bnMo
TGluZSYpIGNvbnN0OwogICAgICAgICB2b2lkIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUoTGluZSYs
IGNvbnN0IElubGluZUl0ZW0mKSBjb25zdDsKICAgICAgICAgdm9pZCBoYW5kbGVGbG9hdChMaW5l
JiwgY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgSW5saW5lSXRlbSYgZmxvYXRCb3gpIGNv
bnN0OwogICAgICAgICB2b2lkIGFsaWduUnVucyhUZXh0QWxpZ25Nb2RlLCB1bnNpZ25lZCBmaXJz
dFJ1bkluZGV4LCBMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCmluZGV4IGFjYjI5YTNj
N2UwYzAyNGY1NTgxYTc4MjQzM2YwNzAxM2IyNWM1YzAuLjEwZWIyMDg4MDlkNTI1MGU3ODk3MDIy
NWE5MjhmODgzZDBiOGRlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHRMaW5lTGF5b3V0LmNwcApAQCAtMzM2LDYgKzMzNiw3IEBAIHN0cnVjdCBVbmNvbW1pdHRl
ZENvbnRlbnQgewogCiAgICAgVmVjdG9yPElubGluZUl0ZW0qPiBpbmxpbmVJdGVtcygpIHsgcmV0
dXJuIG1faW5saW5lSXRlbXM7IH0KICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X2lubGluZUl0ZW1zLmlzRW1wdHkoKTsgfQorICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJl
dHVybiBtX2lubGluZUl0ZW1zLnNpemUoKTsgfQogICAgIExheW91dFVuaXQgd2lkdGgoKSBjb25z
dCB7IHJldHVybiBtX3dpZHRoOyB9CiAKIHByaXZhdGU6CkBAIC0zOTgsNjUgKzM5OSw4MCBAQCB2
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0Ojppbml0aWFsaXplTGluZShM
aW5lJiBsaW5lLCBMYXlvdXRVbml0CiAgICAgbGluZS5yZXNldCh7IGxpbmVMb2dpY2FsTGVmdCwg
bGluZUxvZ2ljYWxUb3AgfSwgYXZhaWxhYmxlV2lkdGgsIG1pbWltdW1MaW5lSGVpZ2h0LCBiYXNl
bGluZU9mZnNldCk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlv
dXQ6OmxheW91dChMYXlvdXRVbml0IHdpZHRoQ29uc3RyYWludCkgY29uc3QKK3Vuc2lnbmVkIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVJbmxpbmVSdW5zRm9yTGlu
ZShMaW5lJiBsaW5lLCB1bnNpZ25lZCBzdGFydElubGluZUl0ZW1JbmRleCkgY29uc3QKIHsKICAg
ICBhdXRvIGZsb2F0aW5nQ29udGV4dCA9IEZsb2F0aW5nQ29udGV4dCB7IG1fZmxvYXRpbmdTdGF0
ZSB9OwotICAgIExpbmUgbGluZShsYXlvdXRTdGF0ZSgpKTsKLSAgICBpbml0aWFsaXplTGluZShs
aW5lLCBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9mb3JtYXR0aW5nUm9v
dCkuY29udGVudEJveFRvcCgpLCB3aWR0aENvbnN0cmFpbnQpOworICAgIE9wdGlvbmFsPHVuc2ln
bmVkPiBsYXN0Q29tbWl0dGVkSW5kZXg7CiAKICAgICBVbmNvbW1pdHRlZENvbnRlbnQgdW5jb21t
aXR0ZWRDb250ZW50OwogICAgIGF1dG8gY29tbWl0UGVuZGluZ0NvbnRlbnQgPSBbJl0geworICAg
ICAgICBpZiAodW5jb21taXR0ZWRDb250ZW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBsYXN0Q29tbWl0dGVkSW5kZXggPSBsYXN0Q29tbWl0dGVkSW5kZXgudmFs
dWVPcihzdGFydElubGluZUl0ZW1JbmRleCkgKyB1bmNvbW1pdHRlZENvbnRlbnQuc2l6ZSgpOwog
ICAgICAgICBmb3IgKGF1dG8qIHVuY29tbWl0dGVkIDogdW5jb21taXR0ZWRDb250ZW50LmlubGlu
ZUl0ZW1zKCkpCiAgICAgICAgICAgICBjb21taXRJbmxpbmVJdGVtVG9MaW5lKGxpbmUsICp1bmNv
bW1pdHRlZCk7CiAgICAgICAgIHVuY29tbWl0dGVkQ29udGVudC5yZXNldCgpOwogICAgIH07CiAK
LSAgICBhdXRvIGNsb3NlQ3VycmVudEFuZEluaXRpYWxpemVOZXdMaW5lID0gWyZdIHsKLSAgICAg
ICAgY2xvc2VMaW5lKGxpbmUpOwotICAgICAgICBpbml0aWFsaXplTGluZShsaW5lLCBsaW5lLmxv
Z2ljYWxCb3R0b20oKSwgd2lkdGhDb25zdHJhaW50KTsKLSAgICB9OwotCiAgICAgTGluZUJyZWFr
ZXIgbGluZUJyZWFrZXIobGF5b3V0U3RhdGUoKSk7CisgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRo
ZSBpbmxpbmUgY29udGVudCBhbmQgcGxhY2UgdGhlIGlubGluZSBib3hlcyBvbiB0aGUgY3VycmVu
dCBsaW5lLgogICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSBtX2Zvcm1hdHRpbmdTdGF0ZS5pbmxp
bmVJdGVtcygpOwotICAgIGZvciAoYXV0byYgaW5saW5lSXRlbSA6IGlubGluZUNvbnRlbnQpIHsK
LSAgICAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBpbmxpbmUgY29udGVudCBhbmQgdHJ5IHRv
IHB1dCB0aGUgaW5saW5lIGJveGVzIG9uIHRoZSBjdXJyZW50IGxpbmUuCisgICAgZm9yIChhdXRv
IGlubGluZUl0ZW1JbmRleCA9IHN0YXJ0SW5saW5lSXRlbUluZGV4OyBpbmxpbmVJdGVtSW5kZXgg
PCBpbmxpbmVDb250ZW50LnNpemUoKTsgKytpbmxpbmVJdGVtSW5kZXgpIHsKKyAgICAgICAgYXV0
byYgaW5saW5lSXRlbSA9IGlubGluZUNvbnRlbnRbaW5saW5lSXRlbUluZGV4XTsKICAgICAgICAg
aWYgKGlubGluZUl0ZW0tPmlzSGFyZExpbmVCcmVhaygpKSB7CisgICAgICAgICAgICB1bmNvbW1p
dHRlZENvbnRlbnQuYWRkKCppbmxpbmVJdGVtKTsKKyAgICAgICAgICAgIGNvbW1pdFBlbmRpbmdD
b250ZW50KCk7CisgICAgICAgICAgICByZXR1cm4gKmxhc3RDb21taXR0ZWRJbmRleDsKKyAgICAg
ICAgfQorICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gbGluZS5hdmFpbGFibGVXaWR0aCgp
IC0gdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7CisgICAgICAgIGF1dG8gY3VycmVudExvZ2lj
YWxSaWdodCA9IGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgdW5jb21taXR0ZWRDb250ZW50
LndpZHRoKCk7CisgICAgICAgIC8vIEZJWE1FOiBFbnN1cmUgTGluZUNvbnRleHQ6OnRyaW1tYWJs
ZVdpZHRoIGluY2x1ZGVzIHVuY29tbWl0dGVkIGNvbnRlbnQgaWYgbmVlZGVkLgorICAgICAgICBh
dXRvIGJyZWFraW5nQ29udGV4dCA9IGxpbmVCcmVha2VyLmJyZWFraW5nQ29udGV4dCgqaW5saW5l
SXRlbSwgeyBhdmFpbGFibGVXaWR0aCwgY3VycmVudExvZ2ljYWxSaWdodCwgbGluZS50cmFpbGlu
Z1RyaW1tYWJsZVdpZHRoKCksICFsaW5lLmhhc0NvbnRlbnQoKSB9KTsKKyAgICAgICAgaWYgKGJy
ZWFraW5nQ29udGV4dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKICAgICAgICAgICAgIGNvbW1p
dFBlbmRpbmdDb250ZW50KCk7Ci0gICAgICAgICAgICBjb21taXRJbmxpbmVJdGVtVG9MaW5lKGxp
bmUsICppbmxpbmVJdGVtKTsKLSAgICAgICAgICAgIGNsb3NlQ3VycmVudEFuZEluaXRpYWxpemVO
ZXdMaW5lKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGF2YWlsYWJsZVdp
ZHRoID0gbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7
Ci0gICAgICAgICAgICBhdXRvIGN1cnJlbnRMb2dpY2FsUmlnaHQgPSBsaW5lLmNvbnRlbnRMb2dp
Y2FsUmlnaHQoKSArIHVuY29tbWl0dGVkQ29udGVudC53aWR0aCgpOwotICAgICAgICAgICAgLy8g
RklYTUU6IEVuc3VyZSBMaW5lQ29udGV4dDo6dHJpbW1hYmxlV2lkdGggaW5jbHVkZXMgdW5jb21t
aXR0ZWQgY29udGVudCBpZiBuZWVkZWQuCi0gICAgICAgICAgICBhdXRvIGJyZWFraW5nQ29udGV4
dCA9IGxpbmVCcmVha2VyLmJyZWFraW5nQ29udGV4dCgqaW5saW5lSXRlbSwgeyBhdmFpbGFibGVX
aWR0aCwgY3VycmVudExvZ2ljYWxSaWdodCwgbGluZS50cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCks
ICFsaW5lLmhhc0NvbnRlbnQoKSB9KTsKLSAgICAgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQu
aXNBdEJyZWFraW5nT3Bwb3J0dW5pdHkpCi0gICAgICAgICAgICAgICAgY29tbWl0UGVuZGluZ0Nv
bnRlbnQoKTsKLQotICAgICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2
aW9yID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpCcmVhaykgewotICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQu
YnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdCZWhhdmlvcjo6V3JhcCkK
LSAgICAgICAgICAgICAgICBjbG9zZUN1cnJlbnRBbmRJbml0aWFsaXplTmV3TGluZSgpOworICAg
ICAgICAvLyBDb250ZW50IGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCBsaW5lLgorICAgICAgICBp
ZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFr
aW5nQmVoYXZpb3I6OldyYXApCisgICAgICAgICAgICByZXR1cm4gKmxhc3RDb21taXR0ZWRJbmRl
eDsKIAotICAgICAgICAgICAgaWYgKGlubGluZUl0ZW0tPmlzRmxvYXQoKSkKLSAgICAgICAgICAg
ICAgICBoYW5kbGVGbG9hdChsaW5lLCBmbG9hdGluZ0NvbnRleHQsICppbmxpbmVJdGVtKTsKLSAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNB
dEJyZWFraW5nT3Bwb3J0dW5pdHkpCi0gICAgICAgICAgICAgICAgICAgIGNvbW1pdElubGluZUl0
ZW1Ub0xpbmUobGluZSwgKmlubGluZUl0ZW0pOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgdW5jb21taXR0ZWRDb250ZW50LmFkZCgqaW5saW5lSXRlbSk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgIC8vIFBhcnRpYWwgY29udGVudCBzdGF5cyBvbiB0aGUgY3VycmVu
dCBsaW5lLiAKKyAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5icmVha2luZ0JlaGF2aW9yID09
IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpCcmVhaykgeworICAgICAgICAgICAgQVNT
RVJUKGlubGluZUl0ZW0tPmlzVGV4dCgpKTsKKworICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBM
RU1FTlRFRF9ZRVQoKTsKKyAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1pdHRlZEluZGV4Owor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGlubGluZUl0ZW0tPmlzRmxvYXQoKSkgeworICAgICAg
ICAgICAgaGFuZGxlRmxvYXQobGluZSwgZmxvYXRpbmdDb250ZXh0LCAqaW5saW5lSXRlbSk7Cisg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorCisgICAgICAgIHVuY29tbWl0dGVkQ29u
dGVudC5hZGQoKmlubGluZUl0ZW0pOworICAgICAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmlzQXRC
cmVha2luZ09wcG9ydHVuaXR5KQorICAgICAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQoKTsK
ICAgICB9Ci0gICAgLy8gUHJvY2VzcyByZW1haW5pbmcgdW5jb21taXR0ZWQgY29udGVudC4KLSAg
ICBpZiAoIXVuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxpbmUu
YXZhaWxhYmxlV2lkdGgoKSA8IHVuY29tbWl0dGVkQ29udGVudC53aWR0aCgpKQotICAgICAgICAg
ICAgY2xvc2VDdXJyZW50QW5kSW5pdGlhbGl6ZU5ld0xpbmUoKTsKLSAgICAgICAgY29tbWl0UGVu
ZGluZ0NvbnRlbnQoKTsKKyAgICBjb21taXRQZW5kaW5nQ29udGVudCgpOworICAgIHJldHVybiAq
bGFzdENvbW1pdHRlZEluZGV4OworfQorCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lTGF5b3V0OjpsYXlvdXQoTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKCFtX2Zvcm1hdHRpbmdTdGF0ZS5pbmxpbmVJdGVtcygpLmlzRW1wdHkoKSk7CisK
KyAgICBMaW5lIGxpbmUobGF5b3V0U3RhdGUoKSk7CisgICAgaW5pdGlhbGl6ZUxpbmUobGluZSwg
bGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fZm9ybWF0dGluZ1Jvb3QpLmNv
bnRlbnRCb3hUb3AoKSwgd2lkdGhDb25zdHJhaW50KTsKKworICAgIHVuc2lnbmVkIHN0YXJ0SW5s
aW5lSXRlbUluZGV4ID0gMDsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBhdXRvIG5leHRJ
bmxpbmVJdGVtSW5kZXggPSBjcmVhdGVJbmxpbmVSdW5zRm9yTGluZShsaW5lLCBzdGFydElubGlu
ZUl0ZW1JbmRleCk7CisgICAgICAgIHByb2Nlc3NJbmxpbmVSdW5zKGxpbmUpOworICAgICAgICBp
ZiAobmV4dElubGluZUl0ZW1JbmRleCA9PSBtX2Zvcm1hdHRpbmdTdGF0ZS5pbmxpbmVJdGVtcygp
LnNpemUoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzdGFydElubGluZUl0ZW1JbmRl
eCA9IG5leHRJbmxpbmVJdGVtSW5kZXg7CisgICAgICAgIGluaXRpYWxpemVMaW5lKGxpbmUsIGxp
bmUubG9naWNhbEJvdHRvbSgpLCB3aWR0aENvbnN0cmFpbnQpOwogICAgIH0KLSAgICBjbG9zZUxp
bmUobGluZSk7CiB9CiAKIExheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVM
YXlvdXQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGgoTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQp
IGNvbnN0CkBAIC00ODcsNyArNTAzLDcgQEAgTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6TGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChMYXlvdXRVbmkKICAgICBy
ZXR1cm4gc3RkOjptYXgobWF4aW11bUxpbmVXaWR0aCwgbGluZUxvZ2ljYWxSaWdodCAtIHRyaW1t
YWJsZVRyYWlsaW5nV2lkdGgpOwogfQogCi12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lTGF5b3V0OjpjbG9zZUxpbmUoTGluZSYgbGluZSkgY29uc3QKK3ZvaWQgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OnByb2Nlc3NJbmxpbmVSdW5zKExpbmUmIGxpbmUpIGNv
bnN0CiB7CiAgICAgYXV0byYgbGluZUl0ZW1zID0gbGluZS5jbG9zZSgpOwogICAgIGlmIChsaW5l
SXRlbXMuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IGQ3NGRj
ZTUzODJjMjdkY2U5NjFhYTY2NDM5NzkzMjA3MTkxYjVmYWMuLjA3NjExMjgzZTUxMTAzYWYzYjNi
NzBkZjMzZGU2ZjA0ZmIyODkzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCkBAIC0z
OCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiAv
LyBUZW1wCi11c2luZyBJbmxpbmVJdGVtcyA9IExpc3RIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxJ
bmxpbmVJdGVtPj47Cit1c2luZyBJbmxpbmVJdGVtcyA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
SW5saW5lSXRlbT4+OwogdXNpbmcgSW5saW5lUnVucyA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheTo6UnVuPj47CiB1c2luZyBMaW5lQm94ZXMgPSBWZWN0b3I8TGluZUJveD47CiAvLyBJ
bmxpbmVGb3JtYXR0aW5nU3RhdGUgaG9sZHMgdGhlIHN0YXRlIGZvciBhIHBhcnRpY3VsYXIgaW5s
aW5lIGZvcm1hdHRpbmcgY29udGV4dCB0cmVlLgpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgSW5saW5lUnVucyYgaW5saW5lUnVucygpIHsgcmV0dXJuIG1faW5saW5lUnVuczsgfQogICAg
IExpbmVCb3hlcyYgbGluZUJveGVzKCkgeyByZXR1cm4gbV9saW5lQm94ZXM7IH0KIAotICAgIHZv
aWQgYWRkSW5saW5lSXRlbShzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lSXRlbT4mJiBpbmxpbmVJdGVt
KSB7IG1faW5saW5lSXRlbXMuYWRkKFdURk1vdmUoaW5saW5lSXRlbSkpOyB9CisgICAgdm9pZCBh
ZGRJbmxpbmVJdGVtKHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVJdGVtPiYmIGlubGluZUl0ZW0pIHsg
bV9pbmxpbmVJdGVtcy5hcHBlbmQoV1RGTW92ZShpbmxpbmVJdGVtKSk7IH0KICAgICB2b2lkIGFk
ZElubGluZVJ1bihzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheTo6UnVuPiYmIGlubGluZVJ1bikgeyBt
X2lubGluZVJ1bnMuYXBwZW5kKFdURk1vdmUoaW5saW5lUnVuKSk7IH0KICAgICB2b2lkIGFkZExp
bmVCb3goTGluZUJveCBsaW5lQm94KSB7IG1fbGluZUJveGVzLmFwcGVuZChsaW5lQm94KTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVUZXh0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVUZXh0SXRlbS5jcHAKaW5kZXggY2Y1NDI0NjRmZGJiZjQ2ZjQxOGIwMTFjYTA0ODNhNWU3
YjkyZDE4Yy4uNmUyYThmYTg5Yzk5Y2EyNjUyMGMyMjFhNjc4MGI1ZDJlYTAxZGE5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZVRleHRJdGVtLmNwcApAQCAtOTgsMjAgKzk4LDIwIEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNy
ZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QK
ICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgdGV4dC5sZW5ndGgoKSkgewogICAgICAgICAv
LyBTb2Z0IGxpbmVicmVhaz8KICAgICAgICAgaWYgKGlzU29mdExpbmVCcmVhayh0ZXh0W2N1cnJl
bnRQb3NpdGlvbl0sIHByZXNlcnZlTmV3bGluZSkpIHsKLSAgICAgICAgICAgIGlubGluZUNvbnRl
bnQuYWRkKHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lVGV4dEl0ZW0+KGlubGluZUJveCwgY3VycmVu
dFBvc2l0aW9uLCAxLCB0cnVlLCBmYWxzZSkpOworICAgICAgICAgICAgaW5saW5lQ29udGVudC5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBjdXJyZW50
UG9zaXRpb24sIDEsIHRydWUsIGZhbHNlKSk7CiAgICAgICAgICAgICArK2N1cnJlbnRQb3NpdGlv
bjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChpc1doaXRl
c3BhY2VDaGFyYWN0ZXIodGV4dFtjdXJyZW50UG9zaXRpb25dLCBwcmVzZXJ2ZU5ld2xpbmUpKSB7
CiAgICAgICAgICAgICBhdXRvIGxlbmd0aCA9IG1vdmVUb05leHROb25XaGl0ZXNwYWNlUG9zaXRp
b24odGV4dCwgY3VycmVudFBvc2l0aW9uLCBwcmVzZXJ2ZU5ld2xpbmUpOwogICAgICAgICAgICAg
YXV0byBpc0NvbGxhcHNlZCA9IGNvbGxhcHNlV2hpdGVTcGFjZSAmJiBsZW5ndGggPiAxOwotICAg
ICAgICAgICAgaW5saW5lQ29udGVudC5hZGQoc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVUZXh0SXRl
bT4oaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCwgdHJ1ZSwgaXNDb2xsYXBzZWQp
KTsKKyAgICAgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5s
aW5lVGV4dEl0ZW0+KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBsZW5ndGgsIHRydWUsIGlz
Q29sbGFwc2VkKSk7CiAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gKz0gbGVuZ3RoOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGxlbmd0aCA9IG1v
dmVUb05leHRCcmVha2FibGVQb3NpdGlvbihjdXJyZW50UG9zaXRpb24sIGxpbmVCcmVha0l0ZXJh
dG9yLCBzdHlsZSk7Ci0gICAgICAgIGlubGluZUNvbnRlbnQuYWRkKHN0ZDo6bWFrZV91bmlxdWU8
SW5saW5lVGV4dEl0ZW0+KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBsZW5ndGgsIGZhbHNl
LCBmYWxzZSkpOworICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCBmYWxz
ZSwgZmFsc2UpKTsKICAgICAgICAgY3VycmVudFBvc2l0aW9uICs9IGxlbmd0aDsKICAgICB9CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370739</attachid>
            <date>2019-05-28 07:55:10 -0700</date>
            <delta_ts>2019-05-28 08:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198282-20190528075509.patch</filename>
            <type>text/plain</type>
            <size>12600</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY1ZmFkYTMwN2M5MjBh
Y2Y1MTg3M2M3MzY3MWNkNWVjODA2MDU3ZC4uZGVmZWY3MGRlNjQzY2M5YjhmZjExM2ZmNGEzMWJh
YmEzNWI4MDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA1LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEZWNvdXBs
ZSBsaW5lIGxheW91dCBhbmQgcHJvY2Vzc2luZyBpbmxpbmUgcnVucy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODI4MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTExNjc5NTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgdXNpbmcgImNyZWF0ZUlubGlu
ZVJ1bnNGb3JMaW5lIiBsb2dpYyB3aGVuIGNvbXB1dGluZyBwcmVmZXJyZWQgd2lkdGguCisKKyAg
ICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlVuY29tbWl0dGVk
Q29udGVudDo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpMaW5lTGF5b3V0OjpjcmVhdGVJbmxpbmVSdW5zRm9yTGluZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lTGF5b3V0OjpsYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZVJ1bnMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6Y2xvc2VMaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlOjphZGRJbmxpbmVJdGVtKToKKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMp
OgorCiAyMDE5LTA1LTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBNb3ZlIGludHJpbnNpYyB3aWR0aCBjb21wdXRhdGlvbiBmcm9tIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0IHRvIExpbmVMYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5oCmluZGV4IDBlYTRkZTNkMDdhOWQ1MzJjMDEyMDU1OWUzYjNlYTFiMjBkYTgzNmQuLjkz
NGE3MDBhMDI0MGMyYmNkNzMwY2I1ZTQ4ODhlNmMyZDRjZGQwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaApAQCAtNTksNyArNTksOCBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6
CiAgICAgICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
bWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQogICAgICAgICB2b2lkIGluaXRpYWxpemVM
aW5lKExpbmUmLCBMYXlvdXRVbml0IGxpbmVMb2dpY2FsVG9wLCBMYXlvdXRVbml0IHdpZHRoQ29u
c3RyYWludCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgY2xvc2VMaW5lKExpbmUmKSBjb25zdDsKKyAg
ICAgICAgdW5zaWduZWQgY3JlYXRlSW5saW5lUnVuc0ZvckxpbmUoTGluZSYsIHVuc2lnbmVkIGZp
cnN0SW5saW5lSXRlbUluZGV4KSBjb25zdDsKKyAgICAgICAgdm9pZCBwcm9jZXNzSW5saW5lUnVu
cyhMaW5lJikgY29uc3Q7CiAgICAgICAgIHZvaWQgY29tbWl0SW5saW5lSXRlbVRvTGluZShMaW5l
JiwgY29uc3QgSW5saW5lSXRlbSYpIGNvbnN0OwogICAgICAgICB2b2lkIGhhbmRsZUZsb2F0KExp
bmUmLCBjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBJbmxpbmVJdGVtJiBmbG9hdEJveCkg
Y29uc3Q7CiAgICAgICAgIHZvaWQgYWxpZ25SdW5zKFRleHRBbGlnbk1vZGUsIHVuc2lnbmVkIGZp
cnN0UnVuSW5kZXgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKaW5kZXggYWNiMjlh
M2M3ZTBjMDI0ZjU1ODFhNzgyNDMzZjA3MDEzYjI1YzVjMC4uMTBlYjIwODgwOWQ1MjUwZTc4OTcw
MjI1YTkyOGY4ODNkMGI4ZGUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQuY3BwCkBAIC0zMzYsNiArMzM2LDcgQEAgc3RydWN0IFVuY29tbWl0
dGVkQ29udGVudCB7CiAKICAgICBWZWN0b3I8SW5saW5lSXRlbSo+IGlubGluZUl0ZW1zKCkgeyBy
ZXR1cm4gbV9pbmxpbmVJdGVtczsgfQogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5saW5lSXRlbXMuaXNFbXB0eSgpOyB9CisgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1faW5saW5lSXRlbXMuc2l6ZSgpOyB9CiAgICAgTGF5b3V0VW5pdCB3aWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KIAogcHJpdmF0ZToKQEAgLTM5OCw2NSArMzk5LDgwIEBA
IHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmluaXRpYWxpemVMaW5l
KExpbmUmIGxpbmUsIExheW91dFVuaXQKICAgICBsaW5lLnJlc2V0KHsgbGluZUxvZ2ljYWxMZWZ0
LCBsaW5lTG9naWNhbFRvcCB9LCBhdmFpbGFibGVXaWR0aCwgbWltaW11bUxpbmVIZWlnaHQsIGJh
c2VsaW5lT2Zmc2V0KTsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZUxh
eW91dDo6bGF5b3V0KExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdAordW5zaWduZWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVMYXlvdXQ6OmNyZWF0ZUlubGluZVJ1bnNGb3JM
aW5lKExpbmUmIGxpbmUsIHVuc2lnbmVkIHN0YXJ0SW5saW5lSXRlbUluZGV4KSBjb25zdAogewog
ICAgIGF1dG8gZmxvYXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgbV9mbG9hdGluZ1N0
YXRlIH07Ci0gICAgTGluZSBsaW5lKGxheW91dFN0YXRlKCkpOwotICAgIGluaXRpYWxpemVMaW5l
KGxpbmUsIGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChtX2Zvcm1hdHRpbmdS
b290KS5jb250ZW50Qm94VG9wKCksIHdpZHRoQ29uc3RyYWludCk7CisgICAgT3B0aW9uYWw8dW5z
aWduZWQ+IGxhc3RDb21taXR0ZWRJbmRleDsKIAogICAgIFVuY29tbWl0dGVkQ29udGVudCB1bmNv
bW1pdHRlZENvbnRlbnQ7CiAgICAgYXV0byBjb21taXRQZW5kaW5nQ29udGVudCA9IFsmXSB7Cisg
ICAgICAgIGlmICh1bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGxhc3RDb21taXR0ZWRJbmRleCA9IGxhc3RDb21taXR0ZWRJbmRleC52
YWx1ZU9yKHN0YXJ0SW5saW5lSXRlbUluZGV4KSArIHVuY29tbWl0dGVkQ29udGVudC5zaXplKCk7
CiAgICAgICAgIGZvciAoYXV0byogdW5jb21taXR0ZWQgOiB1bmNvbW1pdHRlZENvbnRlbnQuaW5s
aW5lSXRlbXMoKSkKICAgICAgICAgICAgIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUobGluZSwgKnVu
Y29tbWl0dGVkKTsKICAgICAgICAgdW5jb21taXR0ZWRDb250ZW50LnJlc2V0KCk7CiAgICAgfTsK
IAotICAgIGF1dG8gY2xvc2VDdXJyZW50QW5kSW5pdGlhbGl6ZU5ld0xpbmUgPSBbJl0gewotICAg
ICAgICBjbG9zZUxpbmUobGluZSk7Ci0gICAgICAgIGluaXRpYWxpemVMaW5lKGxpbmUsIGxpbmUu
bG9naWNhbEJvdHRvbSgpLCB3aWR0aENvbnN0cmFpbnQpOwotICAgIH07Ci0KICAgICBMaW5lQnJl
YWtlciBsaW5lQnJlYWtlcihsYXlvdXRTdGF0ZSgpKTsKKyAgICAvLyBJdGVyYXRlIHRocm91Z2gg
dGhlIGlubGluZSBjb250ZW50IGFuZCBwbGFjZSB0aGUgaW5saW5lIGJveGVzIG9uIHRoZSBjdXJy
ZW50IGxpbmUuCiAgICAgYXV0byYgaW5saW5lQ29udGVudCA9IG1fZm9ybWF0dGluZ1N0YXRlLmlu
bGluZUl0ZW1zKCk7Ci0gICAgZm9yIChhdXRvJiBpbmxpbmVJdGVtIDogaW5saW5lQ29udGVudCkg
ewotICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIGlubGluZSBjb250ZW50IGFuZCB0cnkg
dG8gcHV0IHRoZSBpbmxpbmUgYm94ZXMgb24gdGhlIGN1cnJlbnQgbGluZS4KKyAgICBmb3IgKGF1
dG8gaW5saW5lSXRlbUluZGV4ID0gc3RhcnRJbmxpbmVJdGVtSW5kZXg7IGlubGluZUl0ZW1JbmRl
eCA8IGlubGluZUNvbnRlbnQuc2l6ZSgpOyArK2lubGluZUl0ZW1JbmRleCkgeworICAgICAgICBh
dXRvJiBpbmxpbmVJdGVtID0gaW5saW5lQ29udGVudFtpbmxpbmVJdGVtSW5kZXhdOwogICAgICAg
ICBpZiAoaW5saW5lSXRlbS0+aXNIYXJkTGluZUJyZWFrKCkpIHsKKyAgICAgICAgICAgIHVuY29t
bWl0dGVkQ29udGVudC5hZGQoKmlubGluZUl0ZW0pOworICAgICAgICAgICAgY29tbWl0UGVuZGlu
Z0NvbnRlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1pdHRlZEluZGV4OworICAg
ICAgICB9CisgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBsaW5lLmF2YWlsYWJsZVdpZHRo
KCkgLSB1bmNvbW1pdHRlZENvbnRlbnQud2lkdGgoKTsKKyAgICAgICAgYXV0byBjdXJyZW50TG9n
aWNhbFJpZ2h0ID0gbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCkgKyB1bmNvbW1pdHRlZENvbnRl
bnQud2lkdGgoKTsKKyAgICAgICAgLy8gRklYTUU6IEVuc3VyZSBMaW5lQ29udGV4dDo6dHJpbW1h
YmxlV2lkdGggaW5jbHVkZXMgdW5jb21taXR0ZWQgY29udGVudCBpZiBuZWVkZWQuCisgICAgICAg
IGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtpbmdDb250ZXh0KCppbmxp
bmVJdGVtLCB7IGF2YWlsYWJsZVdpZHRoLCBjdXJyZW50TG9naWNhbFJpZ2h0LCBsaW5lLnRyYWls
aW5nVHJpbW1hYmxlV2lkdGgoKSwgIWxpbmUuaGFzQ29udGVudCgpIH0pOworICAgICAgICBpZiAo
YnJlYWtpbmdDb250ZXh0LmlzQXRCcmVha2luZ09wcG9ydHVuaXR5KQogICAgICAgICAgICAgY29t
bWl0UGVuZGluZ0NvbnRlbnQoKTsKLSAgICAgICAgICAgIGNvbW1pdElubGluZUl0ZW1Ub0xpbmUo
bGluZSwgKmlubGluZUl0ZW0pOwotICAgICAgICAgICAgY2xvc2VDdXJyZW50QW5kSW5pdGlhbGl6
ZU5ld0xpbmUoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gYXZhaWxhYmxl
V2lkdGggPSBsaW5lLmF2YWlsYWJsZVdpZHRoKCkgLSB1bmNvbW1pdHRlZENvbnRlbnQud2lkdGgo
KTsKLSAgICAgICAgICAgIGF1dG8gY3VycmVudExvZ2ljYWxSaWdodCA9IGxpbmUuY29udGVudExv
Z2ljYWxSaWdodCgpICsgdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCk7Ci0gICAgICAgICAgICAv
LyBGSVhNRTogRW5zdXJlIExpbmVDb250ZXh0Ojp0cmltbWFibGVXaWR0aCBpbmNsdWRlcyB1bmNv
bW1pdHRlZCBjb250ZW50IGlmIG5lZWRlZC4KLSAgICAgICAgICAgIGF1dG8gYnJlYWtpbmdDb250
ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtpbmdDb250ZXh0KCppbmxpbmVJdGVtLCB7IGF2YWlsYWJs
ZVdpZHRoLCBjdXJyZW50TG9naWNhbFJpZ2h0LCBsaW5lLnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgo
KSwgIWxpbmUuaGFzQ29udGVudCgpIH0pOwotICAgICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4
dC5pc0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKLSAgICAgICAgICAgICAgICBjb21taXRQZW5kaW5n
Q29udGVudCgpOwotCi0gICAgICAgICAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVo
YXZpb3IgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OkJyZWFrKSB7Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4
dC5icmVha2luZ0JlaGF2aW9yID09IExpbmVCcmVha2VyOjpCcmVha2luZ0JlaGF2aW9yOjpXcmFw
KQotICAgICAgICAgICAgICAgIGNsb3NlQ3VycmVudEFuZEluaXRpYWxpemVOZXdMaW5lKCk7Cisg
ICAgICAgIC8vIENvbnRlbnQgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IGxpbmUuCisgICAgICAg
IGlmIChicmVha2luZ0NvbnRleHQuYnJlYWtpbmdCZWhhdmlvciA9PSBMaW5lQnJlYWtlcjo6QnJl
YWtpbmdCZWhhdmlvcjo6V3JhcCkKKyAgICAgICAgICAgIHJldHVybiAqbGFzdENvbW1pdHRlZElu
ZGV4OwogCi0gICAgICAgICAgICBpZiAoaW5saW5lSXRlbS0+aXNGbG9hdCgpKQotICAgICAgICAg
ICAgICAgIGhhbmRsZUZsb2F0KGxpbmUsIGZsb2F0aW5nQ29udGV4dCwgKmlubGluZUl0ZW0pOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5p
c0F0QnJlYWtpbmdPcHBvcnR1bml0eSkKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0SW5saW5l
SXRlbVRvTGluZShsaW5lLCAqaW5saW5lSXRlbSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICB1bmNvbW1pdHRlZENvbnRlbnQuYWRkKCppbmxpbmVJdGVtKTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgLy8gUGFydGlhbCBjb250ZW50IHN0YXlzIG9uIHRoZSBjdXJy
ZW50IGxpbmUuIAorICAgICAgICBpZiAoYnJlYWtpbmdDb250ZXh0LmJyZWFraW5nQmVoYXZpb3Ig
PT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQmVoYXZpb3I6OkJyZWFrKSB7CisgICAgICAgICAgICBB
U1NFUlQoaW5saW5lSXRlbS0+aXNUZXh0KCkpOworCisgICAgICAgICAgICBBU1NFUlRfTk9UX0lN
UExFTUVOVEVEX1lFVCgpOworICAgICAgICAgICAgcmV0dXJuICpsYXN0Q29tbWl0dGVkSW5kZXg7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5saW5lSXRlbS0+aXNGbG9hdCgpKSB7CisgICAg
ICAgICAgICBoYW5kbGVGbG9hdChsaW5lLCBmbG9hdGluZ0NvbnRleHQsICppbmxpbmVJdGVtKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisKKyAgICAgICAgdW5jb21taXR0ZWRD
b250ZW50LmFkZCgqaW5saW5lSXRlbSk7CisgICAgICAgIGlmIChicmVha2luZ0NvbnRleHQuaXNB
dEJyZWFraW5nT3Bwb3J0dW5pdHkpCisgICAgICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudCgp
OwogICAgIH0KLSAgICAvLyBQcm9jZXNzIHJlbWFpbmluZyB1bmNvbW1pdHRlZCBjb250ZW50Lgot
ICAgIGlmICghdW5jb21taXR0ZWRDb250ZW50LmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobGlu
ZS5hdmFpbGFibGVXaWR0aCgpIDwgdW5jb21taXR0ZWRDb250ZW50LndpZHRoKCkpCi0gICAgICAg
ICAgICBjbG9zZUN1cnJlbnRBbmRJbml0aWFsaXplTmV3TGluZSgpOwotICAgICAgICBjb21taXRQ
ZW5kaW5nQ29udGVudCgpOworICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KCk7CisgICAgcmV0dXJu
ICpsYXN0Q29tbWl0dGVkSW5kZXg7Cit9CisKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OkxpbmVMYXlvdXQ6OmxheW91dChMYXlvdXRVbml0IHdpZHRoQ29uc3RyYWludCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoIW1fZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCkuaXNFbXB0eSgpKTsK
KworICAgIExpbmUgbGluZShsYXlvdXRTdGF0ZSgpKTsKKyAgICBpbml0aWFsaXplTGluZShsaW5l
LCBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9mb3JtYXR0aW5nUm9vdCku
Y29udGVudEJveFRvcCgpLCB3aWR0aENvbnN0cmFpbnQpOworCisgICAgdW5zaWduZWQgc3RhcnRJ
bmxpbmVJdGVtSW5kZXggPSAwOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGF1dG8gbmV4
dElubGluZUl0ZW1JbmRleCA9IGNyZWF0ZUlubGluZVJ1bnNGb3JMaW5lKGxpbmUsIHN0YXJ0SW5s
aW5lSXRlbUluZGV4KTsKKyAgICAgICAgcHJvY2Vzc0lubGluZVJ1bnMobGluZSk7CisgICAgICAg
IGlmIChuZXh0SW5saW5lSXRlbUluZGV4ID09IG1fZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1z
KCkuc2l6ZSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHN0YXJ0SW5saW5lSXRlbUlu
ZGV4ID0gbmV4dElubGluZUl0ZW1JbmRleDsKKyAgICAgICAgaW5pdGlhbGl6ZUxpbmUobGluZSwg
bGluZS5sb2dpY2FsQm90dG9tKCksIHdpZHRoQ29uc3RyYWludCk7CiAgICAgfQotICAgIGNsb3Nl
TGluZShsaW5lKTsKIH0KIAogTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGlu
ZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChMYXlvdXRVbml0IHdpZHRoQ29uc3RyYWlu
dCkgY29uc3QKQEAgLTQ4Nyw3ICs1MDMsNyBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpMaW5lTGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoKExheW91dFVuaQogICAg
IHJldHVybiBzdGQ6Om1heChtYXhpbXVtTGluZVdpZHRoLCBsaW5lTG9naWNhbFJpZ2h0IC0gdHJp
bW1hYmxlVHJhaWxpbmdXaWR0aCk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OkxpbmVMYXlvdXQ6OmNsb3NlTGluZShMaW5lJiBsaW5lKSBjb25zdAordm9pZCBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6TGluZUxheW91dDo6cHJvY2Vzc0lubGluZVJ1bnMoTGluZSYgbGluZSkg
Y29uc3QKIHsKICAgICBhdXRvJiBsaW5lSXRlbXMgPSBsaW5lLmNsb3NlKCk7CiAgICAgaWYgKGxp
bmVJdGVtcy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggZDc0
ZGNlNTM4MmMyN2RjZTk2MWFhNjY0Mzk3OTMyMDcxOTFiNWZhYy4uMDc2MTEyODNlNTExMDNhZjNi
M2I3MGRmMzNkZTZmMDRmYjI4OTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAg
LTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAK
IC8vIFRlbXAKLXVzaW5nIElubGluZUl0ZW1zID0gTGlzdEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRy
PElubGluZUl0ZW0+PjsKK3VzaW5nIElubGluZUl0ZW1zID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxJbmxpbmVJdGVtPj47CiB1c2luZyBJbmxpbmVSdW5zID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxEaXNwbGF5OjpSdW4+PjsKIHVzaW5nIExpbmVCb3hlcyA9IFZlY3RvcjxMaW5lQm94PjsKIC8v
IElubGluZUZvcm1hdHRpbmdTdGF0ZSBob2xkcyB0aGUgc3RhdGUgZm9yIGEgcGFydGljdWxhciBp
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IHRyZWUuCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoK
ICAgICBJbmxpbmVSdW5zJiBpbmxpbmVSdW5zKCkgeyByZXR1cm4gbV9pbmxpbmVSdW5zOyB9CiAg
ICAgTGluZUJveGVzJiBsaW5lQm94ZXMoKSB7IHJldHVybiBtX2xpbmVCb3hlczsgfQogCi0gICAg
dm9pZCBhZGRJbmxpbmVJdGVtKHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVJdGVtPiYmIGlubGluZUl0
ZW0pIHsgbV9pbmxpbmVJdGVtcy5hZGQoV1RGTW92ZShpbmxpbmVJdGVtKSk7IH0KKyAgICB2b2lk
IGFkZElubGluZUl0ZW0oc3RkOjp1bmlxdWVfcHRyPElubGluZUl0ZW0+JiYgaW5saW5lSXRlbSkg
eyBtX2lubGluZUl0ZW1zLmFwcGVuZChXVEZNb3ZlKGlubGluZUl0ZW0pKTsgfQogICAgIHZvaWQg
YWRkSW5saW5lUnVuKHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpSdW4+JiYgaW5saW5lUnVuKSB7
IG1faW5saW5lUnVucy5hcHBlbmQoV1RGTW92ZShpbmxpbmVSdW4pKTsgfQogICAgIHZvaWQgYWRk
TGluZUJveChMaW5lQm94IGxpbmVCb3gpIHsgbV9saW5lQm94ZXMuYXBwZW5kKGxpbmVCb3gpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZVRleHRJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZVRleHRJdGVtLmNwcAppbmRleCBjZjU0MjQ2NGZkYmJmNDZmNDE4YjAxMWNhMDQ4M2E1
ZTdiOTJkMThjLi42ZTJhOGZhODljOTljYTI2NTIwYzIyMWE2NzgwYjVkMmVhMDFkYTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0
SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lVGV4dEl0ZW0uY3BwCkBAIC05OCwyMCArOTgsMjAgQEAgdm9pZCBJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50LCBjb25z
dAogICAgIHdoaWxlIChjdXJyZW50UG9zaXRpb24gPCB0ZXh0Lmxlbmd0aCgpKSB7CiAgICAgICAg
IC8vIFNvZnQgbGluZWJyZWFrPwogICAgICAgICBpZiAoaXNTb2Z0TGluZUJyZWFrKHRleHRbY3Vy
cmVudFBvc2l0aW9uXSwgcHJlc2VydmVOZXdsaW5lKSkgewotICAgICAgICAgICAgaW5saW5lQ29u
dGVudC5hZGQoc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBjdXJy
ZW50UG9zaXRpb24sIDEsIHRydWUsIGZhbHNlKSk7CisgICAgICAgICAgICBpbmxpbmVDb250ZW50
LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIGN1cnJl
bnRQb3NpdGlvbiwgMSwgdHJ1ZSwgZmFsc2UpKTsKICAgICAgICAgICAgICsrY3VycmVudFBvc2l0
aW9uOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlzV2hp
dGVzcGFjZUNoYXJhY3Rlcih0ZXh0W2N1cnJlbnRQb3NpdGlvbl0sIHByZXNlcnZlTmV3bGluZSkp
IHsKICAgICAgICAgICAgIGF1dG8gbGVuZ3RoID0gbW92ZVRvTmV4dE5vbldoaXRlc3BhY2VQb3Np
dGlvbih0ZXh0LCBjdXJyZW50UG9zaXRpb24sIHByZXNlcnZlTmV3bGluZSk7CiAgICAgICAgICAg
ICBhdXRvIGlzQ29sbGFwc2VkID0gY29sbGFwc2VXaGl0ZVNwYWNlICYmIGxlbmd0aCA+IDE7Ci0g
ICAgICAgICAgICBpbmxpbmVDb250ZW50LmFkZChzdGQ6Om1ha2VfdW5pcXVlPElubGluZVRleHRJ
dGVtPihpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCB0cnVlLCBpc0NvbGxhcHNl
ZCkpOworICAgICAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJ
bmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCwgdHJ1ZSwg
aXNDb2xsYXBzZWQpKTsKICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiArPSBsZW5ndGg7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gbGVuZ3RoID0g
bW92ZVRvTmV4dEJyZWFrYWJsZVBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbiwgbGluZUJyZWFrSXRl
cmF0b3IsIHN0eWxlKTsKLSAgICAgICAgaW5saW5lQ29udGVudC5hZGQoc3RkOjptYWtlX3VuaXF1
ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCwgZmFs
c2UsIGZhbHNlKSk7CisgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5saW5lVGV4dEl0ZW0+KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBsZW5ndGgsIGZh
bHNlLCBmYWxzZSkpOwogICAgICAgICBjdXJyZW50UG9zaXRpb24gKz0gbGVuZ3RoOwogICAgIH0K
IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>