<?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>188232</bug_id>
          
          <creation_ts>2018-08-01 12:35:02 -0700</creation_ts>
          <short_desc>[LFC][Floating] Revert back to only one list for the all the floatings.</short_desc>
          <delta_ts>2018-08-01 20:32:46 -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>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1446937</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-01 12:35:02 -0700</bug_when>
    <thetext>to simplify implementation. if it ends up being a perf bottleneck, we can still split it into left and right floatings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446938</commentid>
    <comment_count>1</comment_count>
      <attachid>346289</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-01 12:41:15 -0700</bug_when>
    <thetext>Created attachment 346289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446953</commentid>
    <comment_count>2</comment_count>
      <attachid>346293</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-01 13:30:23 -0700</bug_when>
    <thetext>Created attachment 346293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446974</commentid>
    <comment_count>3</comment_count>
      <attachid>346293</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-01 13:55:08 -0700</bug_when>
    <thetext>Comment on attachment 346293
Patch

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

&gt; Source/WebCore/layout/FloatingState.h:64
&gt; +    FloatingList m_floatings;

Is &quot;floatings&quot; a spec term or something? To me &quot;floats&quot; sounds better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447000</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-01 14:37:06 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 346293 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346293&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/FloatingState.h:64
&gt; &gt; +    FloatingList m_floatings;
&gt; 
&gt; Is &quot;floatings&quot; a spec term or something? To me &quot;floats&quot; sounds better.
spec calls floats in many ways:
&quot;The most interesting characteristic of a float (or &quot;floated&quot; or &quot;floating&quot; box)..&quot;
I actually prefer &quot;floats&quot; too. AFAIR the only reason why I picked floating was not to confuse it with the primitive type, but I guess it&apos;s really hard to confuse them in this context. I&apos;ll rename them in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447008</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-01 14:46:57 -0700</bug_when>
    <thetext>Committed r234481: &lt;https://trac.webkit.org/changeset/234481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447149</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-01 20:32:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/42840449&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346289</attachid>
            <date>2018-08-01 12:41:15 -0700</date>
            <delta_ts>2018-08-01 13:30:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188232-20180801124114.patch</filename>
            <type>text/plain</type>
            <size>13849</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNTA5NmMyNDllMzk0
NWQzNTg3MDQyNGM0MzQ3MDQyNDUyMTIwMi4uODVmMTg2OWY0Njg2MTRlNmVjODY3N2Y0MTcyZjVm
NTMxODk5ZmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA4LTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRpbmddIFJl
dmVydCBiYWNrIHRvIG9ubHkgb25lIGxpc3QgZm9yIHRoZSBhbGwgdGhlIGZsb2F0aW5ncy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODIzMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBjb21i
aW5lZCBmbG9hdGluZyBsaXN0IHR1cm5zIG91dCB0byBiZSBhIHBlcmZvcm1hbmNlIGJvdHRsZW5l
Y2ssIHdlIGNhbiBzdGlsbCBzcGxpdCBpdCBpbnRvIGxlZnQgYW5kIHJpZ2h0LiBIb3dldmVyIGF0
IHRoaXMgcG9pbnQKKyAgICAgICAgaGF2aW5nIDIgZGVkaWNhdGVkIGxpc3RzIGp1c3QgbWFrZXMg
dGhlIGltcGxlbWVudGF0aW9uIG1vcmUgY29tcGxpY2F0ZWQuCisKKyAgICAgICAgKiBsYXlvdXQv
RmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6YmVnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjplbmQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGbG9hdGluZ1BhaXI6OkZsb2F0aW5nUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZsb2F0aW5nUGFpcjo6bGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZs
b2F0aW5nUGFpcjo6cmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVy
YXRvcjo6SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpwcmV2aW91c0Zsb2F0
aW5nSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVyYXRvcjo6b3BlcmF0b3Ir
Kyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okl0ZXJhdG9yOjpzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpmbG9hdGluZ0Rpc3BsYXlCb3gpOiBEZWxldGVkLgorICAgICAgICAq
IGxheW91dC9GbG9hdGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxv
YXRpbmdTdGF0ZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdT
dGF0ZTo6YXBwZW5kKToKKyAgICAgICAgKiBsYXlvdXQvRmxvYXRpbmdTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjppc0VtcHR5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6ZmxvYXRpbmdzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6bGFzdCBjb25zdCk6CisKIDIw
MTgtMDctMzEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtGbG9hdGluZ10gQWRkIGJhc2ljIGxlZnQvcmlnaHQgZmxvYXRpbmcgcG9zaXRpb25pbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDE4NTlkOTIzOTVm
NDRjZjJiZWYyYTRhMDcxYjc4MDJhNWE4OTEyNjguLjM1MWNiOGZmNWYwMWMyNWIyYmYwNTg0Njc4
N2FhZTQyZDNmNWQ4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIEl0ZXJhdG9yOwogCiBjbGFzcyBGbG9hdGluZ1Bh
aXIgewogcHVibGljOgotICAgIEZsb2F0aW5nUGFpcihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29u
c3QgRmxvYXRpbmdTdGF0ZSYpOworICAgIEZsb2F0aW5nUGFpcihjb25zdCBMYXlvdXRDb250ZXh0
JiwgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRpbmdMaXN0Jik7CiAKICAgICBib29sIGlzRW1w
dHkoKSBjb25zdCB7IHJldHVybiAhbV9sZWZ0SW5kZXggJiYgIW1fcmlnaHRJbmRleDsgfQogICAg
IGNvbnN0IERpc3BsYXk6OkJveCogbGVmdCgpIGNvbnN0OwpAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBJdGVyYXRvcjsKICAgICBjb25zdCBMYXlv
dXRDb250ZXh0JiBtX2xheW91dENvbnRleHQ7Ci0gICAgY29uc3QgRmxvYXRpbmdTdGF0ZSYgbV9m
bG9hdGluZ1N0YXRlOworICAgIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgbV9m
bG9hdGluZ3M7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX2xlZnRJbmRleDsKICAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX3JpZ2h0SW5kZXg7CkBAIC04MCw3ICs4MCw3IEBA
IHByaXZhdGU6CiAKIGNsYXNzIEl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25z
dCBMYXlvdXRDb250ZXh0JiwgY29uc3QgRmxvYXRpbmdTdGF0ZSYsIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gdmVydGljYWxQb3NpdGlvbik7CisgICAgSXRlcmF0b3IoY29uc3QgTGF5b3V0Q29u
dGV4dCYsIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYsIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0VW5pdD4gdmVydGljYWxQb3NpdGlvbik7CiAKICAgICBjb25zdCBGbG9hdGluZ1BhaXIm
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudDsgfQogICAgIEl0ZXJhdG9yJiBv
cGVyYXRvcisrKCk7CkBAIC05MSwxOSArOTEsMTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldChM
YXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb24pOwogCiAgICAgY29uc3QgTGF5b3V0Q29udGV4dCYg
bV9sYXlvdXRDb250ZXh0OwotICAgIGNvbnN0IEZsb2F0aW5nU3RhdGUmIG1fZmxvYXRpbmdTdGF0
ZTsKKyAgICBjb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ0xpc3QmIG1fZmxvYXRpbmdzOwog
ICAgIEZsb2F0aW5nUGFpciBtX2N1cnJlbnQ7CiB9OwogCiBzdGF0aWMgSXRlcmF0b3IgYmVnaW4o
Y29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgRmxvYXRpbmdTdGF0ZSYg
ZmxvYXRpbmdTdGF0ZSwgTGF5b3V0VW5pdCBpbml0aWFsVmVydGljYWxQb3NpdGlvbikKIHsKICAg
ICAvLyBTdGFydCB3aXRoIHRoZSBpbm5lci1tb3N0IGZsb2F0aW5nIHBhaXIgZm9yIHRoZSBpbml0
aWFsIHZlcnRpY2FsIHBvc2l0aW9uLgotICAgIHJldHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0
LCBmbG9hdGluZ1N0YXRlLCBpbml0aWFsVmVydGljYWxQb3NpdGlvbik7CisgICAgcmV0dXJuIEl0
ZXJhdG9yKGxheW91dENvbnRleHQsIGZsb2F0aW5nU3RhdGUuZmxvYXRpbmdzKCksIGluaXRpYWxW
ZXJ0aWNhbFBvc2l0aW9uKTsKIH0KIAogc3RhdGljIEl0ZXJhdG9yIGVuZChjb25zdCBMYXlvdXRD
b250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBGbG9hdGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRl
KQogewotICAgIHJldHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ1N0YXRlLCBz
dGQ6Om51bGxvcHQpOworICAgIHJldHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0LCBmbG9hdGlu
Z1N0YXRlLmZsb2F0aW5ncygpLCBzdGQ6Om51bGxvcHQpOwogfQogCiBGbG9hdGluZ0NvbnRleHQ6
OkZsb2F0aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwg
RmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSkKQEAgLTIwOCwxNSArMjA4LDkgQEAgTGF5b3V0
VW5pdCBGbG9hdGluZ0NvbnRleHQ6OmFsaWduV2l0aEZsb2F0aW5ncyhjb25zdCBGbG9hdGluZ1Bh
aXImIGZsb2F0aW5nUGFpciwKICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrQ29udGVudFJpZ2h0
IC0gbWFyZ2luQm94V2lkdGg7CiB9CiAKLXN0YXRpYyBjb25zdCBEaXNwbGF5OjpCb3gqIGZsb2F0
aW5nRGlzcGxheUJveCh1bnNpZ25lZCBpbmRleCwgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRp
bmdMaXN0JiBmbG9hdGluZ3MsIGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQpCi17
Ci0gICAgUkVMRUFTRV9BU1NFUlQoaW5kZXggPCBmbG9hdGluZ3Muc2l6ZSgpKTsKLSAgICByZXR1
cm4gbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpmbG9hdGluZ3NbaW5kZXhd
KTsKLX0KLQotRmxvYXRpbmdQYWlyOjpGbG9hdGluZ1BhaXIoY29uc3QgTGF5b3V0Q29udGV4dCYg
bGF5b3V0Q29udGV4dCwgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSkKK0Zsb2F0
aW5nUGFpcjo6RmxvYXRpbmdQYWlyKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQs
IGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgZmxvYXRpbmdzKQogICAgIDogbV9s
YXlvdXRDb250ZXh0KGxheW91dENvbnRleHQpCi0gICAgLCBtX2Zsb2F0aW5nU3RhdGUoZmxvYXRp
bmdTdGF0ZSkKKyAgICAsIG1fZmxvYXRpbmdzKGZsb2F0aW5ncykKIHsKIH0KIApAQCAtMjI0LDgg
KzIxOCw5IEBAIGNvbnN0IERpc3BsYXk6OkJveCogRmxvYXRpbmdQYWlyOjpsZWZ0KCkgY29uc3QK
IHsKICAgICBpZiAoIW1fbGVmdEluZGV4KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IHJldHVybiBmbG9hdGluZ0Rpc3BsYXlCb3goKm1fbGVmdEluZGV4LCBtX2Zsb2F0aW5nU3RhdGUu
ZmxvYXRpbmdzKCkubGVmdCwgbV9sYXlvdXRDb250ZXh0KTsKKyAgICAKKyAgICBBU1NFUlQobV9m
bG9hdGluZ3NbKm1fbGVmdEluZGV4XS0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkpOworICAg
IHJldHVybiBtX2xheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbV9mbG9hdGlu
Z3NbKm1fbGVmdEluZGV4XSk7CiB9CiAKIGNvbnN0IERpc3BsYXk6OkJveCogRmxvYXRpbmdQYWly
OjpyaWdodCgpIGNvbnN0CkBAIC0yMzMsNyArMjI4LDggQEAgY29uc3QgRGlzcGxheTo6Qm94KiBG
bG9hdGluZ1BhaXI6OnJpZ2h0KCkgY29uc3QKICAgICBpZiAoIW1fcmlnaHRJbmRleCkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gZmxvYXRpbmdEaXNwbGF5Qm94KCptX3Jp
Z2h0SW5kZXgsIG1fZmxvYXRpbmdTdGF0ZS5mbG9hdGluZ3MoKS5yaWdodCwgbV9sYXlvdXRDb250
ZXh0KTsKKyAgICBBU1NFUlQobV9mbG9hdGluZ3NbKm1fcmlnaHRJbmRleF0tPmlzUmlnaHRGbG9h
dGluZ1Bvc2l0aW9uZWQoKSk7CisgICAgcmV0dXJuIG1fbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KCptX2Zsb2F0aW5nc1sqbV9yaWdodEluZGV4XSk7CiB9CiAKIGJvb2wgRmxv
YXRpbmdQYWlyOjppbnRlcnNlY3RzKGNvbnN0IERpc3BsYXk6OkJveDo6UmVjdCYgcmVjdCkgY29u
c3QKQEAgLTI2NCwxNSArMjYwLDI4IEBAIGJvb2wgRmxvYXRpbmdQYWlyOjpvcGVyYXRvciA9PShj
b25zdCBGbG9hdGluZ1BhaXImIG90aGVyKSBjb25zdAogICAgIHJldHVybiBtX2xlZnRJbmRleCA9
PSBvdGhlci5tX2xlZnRJbmRleCAmJiBtX3JpZ2h0SW5kZXggPT0gb3RoZXIubV9yaWdodEluZGV4
OwogfQogCi1JdGVyYXRvcjo6SXRlcmF0b3IoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSwgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiB2ZXJ0aWNhbFBvc2l0aW9uKQorSXRlcmF0b3I6Okl0ZXJhdG9yKGNvbnN0IExh
eW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5n
TGlzdCYgZmxvYXRpbmdzLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHZlcnRpY2FsUG9zaXRp
b24pCiAgICAgOiBtX2xheW91dENvbnRleHQobGF5b3V0Q29udGV4dCkKLSAgICAsIG1fZmxvYXRp
bmdTdGF0ZShmbG9hdGluZ1N0YXRlKQotICAgICwgbV9jdXJyZW50KGxheW91dENvbnRleHQsIGZs
b2F0aW5nU3RhdGUpCisgICAgLCBtX2Zsb2F0aW5ncyhmbG9hdGluZ3MpCisgICAgLCBtX2N1cnJl
bnQobGF5b3V0Q29udGV4dCwgZmxvYXRpbmdzKQogewogICAgIGlmICh2ZXJ0aWNhbFBvc2l0aW9u
KQogICAgICAgICBzZXQoKnZlcnRpY2FsUG9zaXRpb24pOwogfQogCitpbmxpbmUgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHByZXZpb3VzRmxvYXRpbmdJbmRleChGbG9hdCBmbG9hdGlu
Z1R5cGUsIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgZmxvYXRpbmdzLCB1bnNp
Z25lZCBjdXJyZW50SW5kZXgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudEluZGV4IDw9
IGZsb2F0aW5ncy5zaXplKCkpOworICAgIAorICAgIHdoaWxlIChjdXJyZW50SW5kZXgpIHsKKyAg
ICAgICAgYXV0byogZmxvYXRpbmcgPSBmbG9hdGluZ3NbLS1jdXJyZW50SW5kZXhdLmdldCgpOwor
ICAgICAgICBpZiAoKGZsb2F0aW5nVHlwZSA9PSBGbG9hdDo6TGVmdCAmJiBmbG9hdGluZy0+aXNM
ZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkpIHx8IChmbG9hdGluZ1R5cGUgPT0gRmxvYXQ6OlJpZ2h0
ICYmIGZsb2F0aW5nLT5pc1JpZ2h0RmxvYXRpbmdQb3NpdGlvbmVkKCkpKQorICAgICAgICAgICAg
cmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCiBJdGVy
YXRvciYgSXRlcmF0b3I6Om9wZXJhdG9yKysoKQogewogICAgIGlmIChtX2N1cnJlbnQuaXNFbXB0
eSgpKSB7CkBAIC0yODAsMTkgKzI4OSwyNCBAQCBJdGVyYXRvciYgSXRlcmF0b3I6Om9wZXJhdG9y
KysoKQogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgYXV0byBwcmV2aW91c0Zs
b2F0aW5nSW5kZXggPSBbJl0oY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRpbmdMaXN0JiBmbG9h
dGluZ3MsIHVuc2lnbmVkIGluZGV4KSAtPiBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB7CisgICAg
YXV0byBmaW5kUHJldmlvdXNGbG9hdGluZ1dpdGhMb3dlckJvdHRvbSA9IFsmXShGbG9hdCBmbG9h
dGluZ1R5cGUsIHVuc2lnbmVkIGN1cnJlbnRJbmRleCkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gewogCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgZmxvYXRpbmdzLnNpemUoKSk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnRJbmRleCA8IG1fZmxvYXRpbmdzLnNpemUo
KSk7CiAKLSAgICAgICAgaWYgKCFpbmRleCkKKyAgICAgICAgLy8gTGFzdCBmbG9hdGluZz8gVGhl
cmUncyBjZXJ0YWlubHkgbm8gcHJldmlvdXMgZmxvYXRpbmcgYXQgdGhpcyBwb2ludC4KKyAgICAg
ICAgaWYgKCFjdXJyZW50SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogCi0gICAgICAg
IGF1dG8gY3VycmVudEJvdHRvbSA9IGZsb2F0aW5nRGlzcGxheUJveChpbmRleC0tLCBmbG9hdGlu
Z3MsIG1fbGF5b3V0Q29udGV4dCktPmJvdHRvbSgpOworICAgICAgICBhdXRvIGN1cnJlbnRCb3R0
b20gPSBtX2xheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbV9mbG9hdGluZ3Nb
Y3VycmVudEluZGV4XSktPmJvdHRvbSgpOworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IGluZGV4ID0gY3VycmVudEluZGV4OwogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICAgICAgaWYgKGZsb2F0aW5nRGlzcGxheUJveChpbmRleCwgZmxvYXRpbmdzLCBtX2xheW91dENv
bnRleHQpLT5ib3R0b20oKSA+IGN1cnJlbnRCb3R0b20pCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGluZGV4OwotICAgICAgICAgICAgaWYgKCFpbmRleC0tKQorICAgICAgICAgICAgaW5kZXggPSBw
cmV2aW91c0Zsb2F0aW5nSW5kZXgoZmxvYXRpbmdUeXBlLCBtX2Zsb2F0aW5ncywgKmluZGV4KTsK
KyAgICAgICAgICAgIGlmICghaW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgICAgICAgICAgaWYgKG1fbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpt
X2Zsb2F0aW5nc1sqaW5kZXhdKS0+Ym90dG9tKCkgPiBjdXJyZW50Qm90dG9tKQorICAgICAgICAg
ICAgICAgIHJldHVybiBpbmRleDsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMzE0LDEzICszMjgsMTMgQEAgSXRlcmF0b3ImIEl0ZXJhdG9yOjpvcGVyYXRv
cisrKCkKICAgICBpZiAodXBkYXRlTGVmdCkgewogICAgICAgICBBU1NFUlQobV9jdXJyZW50Lm1f
bGVmdEluZGV4KTsKICAgICAgICAgbV9jdXJyZW50Lm1fdmVydGljYWxQb3NpdGlvbiA9ICpsZWZ0
Qm90dG9tOwotICAgICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSBwcmV2aW91c0Zsb2F0aW5n
SW5kZXgobV9mbG9hdGluZ1N0YXRlLmZsb2F0aW5ncygpLmxlZnQsICptX2N1cnJlbnQubV9sZWZ0
SW5kZXgpOworICAgICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSBmaW5kUHJldmlvdXNGbG9h
dGluZ1dpdGhMb3dlckJvdHRvbShGbG9hdDo6TGVmdCwgKm1fY3VycmVudC5tX2xlZnRJbmRleCk7
CiAgICAgfQogICAgIAogICAgIGlmICh1cGRhdGVSaWdodCkgewogICAgICAgICBBU1NFUlQobV9j
dXJyZW50Lm1fcmlnaHRJbmRleCk7CiAgICAgICAgIG1fY3VycmVudC5tX3ZlcnRpY2FsUG9zaXRp
b24gPSAqcmlnaHRCb3R0b207Ci0gICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBwcmV2
aW91c0Zsb2F0aW5nSW5kZXgobV9mbG9hdGluZ1N0YXRlLmZsb2F0aW5ncygpLnJpZ2h0LCAqbV9j
dXJyZW50Lm1fcmlnaHRJbmRleCk7CisgICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBm
aW5kUHJldmlvdXNGbG9hdGluZ1dpdGhMb3dlckJvdHRvbShGbG9hdDo6UmlnaHQsICptX2N1cnJl
bnQubV9yaWdodEluZGV4KTsKICAgICB9CiAKICAgICByZXR1cm4gKnRoaXM7CkBAIC0zMzUsNyAr
MzQ5LDcgQEAgdm9pZCBJdGVyYXRvcjo6c2V0KExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbikK
IAogICAgIG1fY3VycmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSB2ZXJ0aWNhbFBvc2l0aW9uOwog
ICAgIC8vIE5vIGZsb2F0aW5ncyBhdCBhbGw/Ci0gICAgaWYgKG1fZmxvYXRpbmdTdGF0ZS5pc0Vt
cHR5KCkpIHsKKyAgICBpZiAobV9mbG9hdGluZ3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgICAgIG1fY3VycmVudC5tX2xlZnRJbmRleCA9IHsgfTsK
QEAgLTM0MywyMSArMzU3LDMyIEBAIHZvaWQgSXRlcmF0b3I6OnNldChMYXlvdXRVbml0IHZlcnRp
Y2FsUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGZpbmRGbG9h
dGluZ0JlbG93ID0gWyZdKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgbGlzdCkg
LT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gewotICAgICAgICAKLSAgICAgICAgYXV0byBpbmRl
eCA9IGxpc3Quc2l6ZSgpOyAKLSAgICAgICAgd2hpbGUgKGluZGV4KSB7Ci0gICAgICAgICAgICBh
dXRvIGJvdHRvbSA9IGZsb2F0aW5nRGlzcGxheUJveCgtLWluZGV4LCBsaXN0LCBtX2xheW91dENv
bnRleHQpLT5ib3R0b20oKTsKKyAgICBhdXRvIGZpbmRGbG9hdGluZ0JlbG93ID0gWyZdKEZsb2F0
IGZsb2F0aW5nVHlwZSkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4geworCisgICAgICAgIEFT
U0VSVCghbV9mbG9hdGluZ3MuaXNFbXB0eSgpKTsKKworICAgICAgICBhdXRvIGluZGV4ID0gZmxv
YXRpbmdUeXBlID09IEZsb2F0OjpMZWZ0ID8gbV9jdXJyZW50Lm1fbGVmdEluZGV4IDogbV9jdXJy
ZW50Lm1fcmlnaHRJbmRleDsKKyAgICAgICAgLy8gU3RhcnQgZnJvbSB0aGUgZW5kIGlmIHdlIGRv
bid0IGhhdmUgY3VycmVudCB5ZXQuCisgICAgICAgIGluZGV4ID0gaW5kZXgudmFsdWVfb3IobV9m
bG9hdGluZ3Muc2l6ZSgpKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlu
ZGV4ID0gcHJldmlvdXNGbG9hdGluZ0luZGV4KGZsb2F0aW5nVHlwZSwgbV9mbG9hdGluZ3MsICpp
bmRleCk7CisgICAgICAgICAgICBpZiAoIWluZGV4KQorICAgICAgICAgICAgICAgIHJldHVybiB7
IH07CisKKyAgICAgICAgICAgIGF1dG8gYm90dG9tID0gbV9sYXlvdXRDb250ZXh0LmRpc3BsYXlC
b3hGb3JMYXlvdXRCb3goKm1fZmxvYXRpbmdzWyppbmRleF0pLT5ib3R0b20oKTsKICAgICAgICAg
ICAgIC8vIElzIHRoaXMgZmxvYXRpbmcgaW50cnVzaXZlIG9uIHRoaXMgcG9zaXRpb24/CiAgICAg
ICAgICAgICBpZiAoYm90dG9tID4gdmVydGljYWxQb3NpdGlvbikKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaW5kZXg7CiAgICAgICAgIH0KKwogICAgICAgICByZXR1cm4geyB9OwogICAgIH07CiAK
LSAgICBhdXRvJiBmbG9hdGluZ3MgPSBtX2Zsb2F0aW5nU3RhdGUuZmxvYXRpbmdzKCk7Ci0gICAg
bV9jdXJyZW50Lm1fbGVmdEluZGV4ID0gZmluZEZsb2F0aW5nQmVsb3coZmxvYXRpbmdzLmxlZnQp
OwotICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBmaW5kRmxvYXRpbmdCZWxvdyhmbG9hdGlu
Z3MucmlnaHQpOworICAgIG1fY3VycmVudC5tX2xlZnRJbmRleCA9IGZpbmRGbG9hdGluZ0JlbG93
KEZsb2F0OjpMZWZ0KTsKKyAgICBtX2N1cnJlbnQubV9yaWdodEluZGV4ID0gZmluZEZsb2F0aW5n
QmVsb3coRmxvYXQ6OlJpZ2h0KTsKKyAgICAKKyAgICBBU1NFUlQoIW1fY3VycmVudC5tX2xlZnRJ
bmRleCB8fCAoKm1fY3VycmVudC5tX2xlZnRJbmRleCA8IG1fZmxvYXRpbmdzLnNpemUoKSAmJiBt
X2Zsb2F0aW5nc1sqbV9jdXJyZW50Lm1fbGVmdEluZGV4XS0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlv
bmVkKCkpKTsKKyAgICBBU1NFUlQoIW1fY3VycmVudC5tX3JpZ2h0SW5kZXggfHwgKCptX2N1cnJl
bnQubV9yaWdodEluZGV4IDwgbV9mbG9hdGluZ3Muc2l6ZSgpICYmIG1fZmxvYXRpbmdzWyptX2N1
cnJlbnQubV9yaWdodEluZGV4XS0+aXNSaWdodEZsb2F0aW5nUG9zaXRpb25lZCgpKSk7CiB9CiAK
IGJvb2wgSXRlcmF0b3I6Om9wZXJhdG9yPT0oY29uc3QgSXRlcmF0b3ImIG90aGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IDM5NzI1OTA3YTQzZDNk
NWQ1YWZmZjU1YzFlMTQ0N2QwM2YwMDUyMjMuLjhhNzZmNWRhM2IxZmVkMWRhYTZlMzg4MzAxMmRk
ZGYzYWY1OGI1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ1N0
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5jcHAKQEAg
LTQyLDIzICs0MiwyMiBAQCBGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ1N0YXRlKExheW91dENvbnRl
eHQmIGxheW91dENvbnRleHQpCiB7CiB9CiAKK3ZvaWQgRmxvYXRpbmdTdGF0ZTo6cmVtb3ZlKGNv
bnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXgg
PCBtX2Zsb2F0aW5ncy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmxvYXRpbmdz
W2luZGV4XS5nZXQoKSA9PSAmbGF5b3V0Qm94KSB7CisgICAgICAgICAgICBtX2Zsb2F0aW5ncy5y
ZW1vdmUoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB2b2lkIEZsb2F0aW5nU3RhdGU6OmFwcGVuZChj
b25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBGbG9hdGluZyBzdGF0ZSBzaG91bGQgaG9s
ZCBib3hlcyB3aXRoIGNvbXB1dGVkIHBvc2l0aW9uL3NpemUuCiAgICAgQVNTRVJUKG1fbGF5b3V0
Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCkpOwotICAgIG1fbGFzdCA9
IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8Qm94Jj4obGF5b3V0Qm94KSk7Ci0KLSAgICBpZiAobGF5
b3V0Qm94LmlzTGVmdEZsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIG1fbGVmdEZsb2F0
aW5ncy5hcHBlbmQobV9sYXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChs
YXlvdXRCb3guaXNSaWdodEZsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIG1fcmlnaHRG
bG9hdGluZ3MuYXBwZW5kKG1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBtX2Zsb2F0aW5ncy5hcHBlbmQobWFrZVdlYWtQdHIo
Y29uc3RfY2FzdDxCb3gmPihsYXlvdXRCb3gpKSk7IAogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0Zsb2F0aW5nU3RhdGUuaAppbmRleCA5NmY4ODczZWY5ZDEyNmFkMTM2NDg1NjgwMjdjZWJmZjhj
OWI0MWYwLi4xMDdiNzVjNTEwM2VhNWE0MzFhMWJiZjNiMDllNmI5NWY5YjIwOGQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9GbG9hdGluZ1N0YXRlLmgKQEAgLTQ2LDE2ICs0NiwxMyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGUoTGF5b3V0Q29udGV4dCYgbGF5
b3V0Q29udGV4dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGbG9hdGluZ1N0YXRlKGxheW91dENv
bnRleHQpKTsgfQogCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgQm94JiBsYXlvdXRCb3gpOworICAg
IHZvaWQgcmVtb3ZlKGNvbnN0IEJveCYgbGF5b3V0Qm94KTsKIAotICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVmdEZsb2F0aW5ncy5pc0VtcHR5KCkgJiYgbV9yaWdodEZsb2F0
aW5ncy5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Zs
b2F0aW5ncy5pc0VtcHR5KCk7IH0KIAogICAgIHVzaW5nIEZsb2F0aW5nTGlzdCA9IFZlY3RvcjxX
ZWFrUHRyPEJveD4+OwotICAgIHN0cnVjdCBGbG9hdGluZ3MgewotICAgICAgICBjb25zdCBGbG9h
dGluZ0xpc3QmIGxlZnQ7Ci0gICAgICAgIGNvbnN0IEZsb2F0aW5nTGlzdCYgcmlnaHQ7IAotICAg
IH07Ci0gICAgY29uc3QgRmxvYXRpbmdzIGZsb2F0aW5ncygpIGNvbnN0IHsgcmV0dXJuIHsgbV9s
ZWZ0RmxvYXRpbmdzLCBtX3JpZ2h0RmxvYXRpbmdzIH07IH0KLSAgICBjb25zdCBCb3gqIGxhc3Qo
KSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0KCk7IH0KKyAgICBjb25zdCBGbG9hdGluZ0xpc3Qm
IGZsb2F0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRpbmdzOyB9CisgICAgY29uc3QgQm94
KiBsYXN0KCkgY29uc3QgeyByZXR1cm4gaXNFbXB0eSgpID8gbnVsbHB0ciA6IG1fZmxvYXRpbmdz
Lmxhc3QoKS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBGbG9hdGluZ0Nv
bnRleHQ7CkBAIC02NCwxMCArNjEsNyBAQCBwcml2YXRlOgogICAgIExheW91dENvbnRleHQmIGxh
eW91dENvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dENvbnRleHQ7IH0KIAogICAgIExh
eW91dENvbnRleHQmIG1fbGF5b3V0Q29udGV4dDsKLQotICAgIEZsb2F0aW5nTGlzdCBtX2xlZnRG
bG9hdGluZ3M7Ci0gICAgRmxvYXRpbmdMaXN0IG1fcmlnaHRGbG9hdGluZ3M7Ci0gICAgV2Vha1B0
cjxCb3g+IG1fbGFzdDsKKyAgICBGbG9hdGluZ0xpc3QgbV9mbG9hdGluZ3M7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346293</attachid>
            <date>2018-08-01 13:30:23 -0700</date>
            <delta_ts>2018-08-01 13:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188232-20180801133023.patch</filename>
            <type>text/plain</type>
            <size>13894</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNTA5NmMyNDllMzk0
NWQzNTg3MDQyNGM0MzQ3MDQyNDUyMTIwMi4uODVmMTg2OWY0Njg2MTRlNmVjODY3N2Y0MTcyZjVm
NTMxODk5ZmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA4LTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRpbmddIFJl
dmVydCBiYWNrIHRvIG9ubHkgb25lIGxpc3QgZm9yIHRoZSBhbGwgdGhlIGZsb2F0aW5ncy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODIzMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBjb21i
aW5lZCBmbG9hdGluZyBsaXN0IHR1cm5zIG91dCB0byBiZSBhIHBlcmZvcm1hbmNlIGJvdHRsZW5l
Y2ssIHdlIGNhbiBzdGlsbCBzcGxpdCBpdCBpbnRvIGxlZnQgYW5kIHJpZ2h0LiBIb3dldmVyIGF0
IHRoaXMgcG9pbnQKKyAgICAgICAgaGF2aW5nIDIgZGVkaWNhdGVkIGxpc3RzIGp1c3QgbWFrZXMg
dGhlIGltcGxlbWVudGF0aW9uIG1vcmUgY29tcGxpY2F0ZWQuCisKKyAgICAgICAgKiBsYXlvdXQv
RmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6YmVnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjplbmQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGbG9hdGluZ1BhaXI6OkZsb2F0aW5nUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZsb2F0aW5nUGFpcjo6bGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZs
b2F0aW5nUGFpcjo6cmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVy
YXRvcjo6SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpwcmV2aW91c0Zsb2F0
aW5nSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVyYXRvcjo6b3BlcmF0b3Ir
Kyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okl0ZXJhdG9yOjpzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpmbG9hdGluZ0Rpc3BsYXlCb3gpOiBEZWxldGVkLgorICAgICAgICAq
IGxheW91dC9GbG9hdGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxv
YXRpbmdTdGF0ZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdT
dGF0ZTo6YXBwZW5kKToKKyAgICAgICAgKiBsYXlvdXQvRmxvYXRpbmdTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjppc0VtcHR5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6ZmxvYXRpbmdzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6bGFzdCBjb25zdCk6CisKIDIw
MTgtMDctMzEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtGbG9hdGluZ10gQWRkIGJhc2ljIGxlZnQvcmlnaHQgZmxvYXRpbmcgcG9zaXRpb25pbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDE4NTlkOTIzOTVm
NDRjZjJiZWYyYTRhMDcxYjc4MDJhNWE4OTEyNjguLjUxMjdiMDA1YjI3ZmVjODM4NWUzODdlNDM3
NTZmYzEyZWMxMTE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQu
Y3BwCkBAIC01OSw4ICs1OSw2IEBAIGNsYXNzIEl0ZXJhdG9yOwogCiBjbGFzcyBGbG9hdGluZ1Bh
aXIgewogcHVibGljOgotICAgIEZsb2F0aW5nUGFpcihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29u
c3QgRmxvYXRpbmdTdGF0ZSYpOwotCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4g
IW1fbGVmdEluZGV4ICYmICFtX3JpZ2h0SW5kZXg7IH0KICAgICBjb25zdCBEaXNwbGF5OjpCb3gq
IGxlZnQoKSBjb25zdDsKICAgICBjb25zdCBEaXNwbGF5OjpCb3gqIHJpZ2h0KCkgY29uc3Q7CkBA
IC03MCw4ICs2OCwxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEl0
ZXJhdG9yOworICAgIEZsb2F0aW5nUGFpcihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgRmxv
YXRpbmdTdGF0ZTo6RmxvYXRpbmdMaXN0Jik7CisKICAgICBjb25zdCBMYXlvdXRDb250ZXh0JiBt
X2xheW91dENvbnRleHQ7Ci0gICAgY29uc3QgRmxvYXRpbmdTdGF0ZSYgbV9mbG9hdGluZ1N0YXRl
OworICAgIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgbV9mbG9hdGluZ3M7CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX2xlZnRJbmRleDsKICAgICBzdGQ6Om9wdGlv
bmFsPHVuc2lnbmVkPiBtX3JpZ2h0SW5kZXg7CkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAK
IGNsYXNzIEl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBMYXlvdXRDb250
ZXh0JiwgY29uc3QgRmxvYXRpbmdTdGF0ZSYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdmVy
dGljYWxQb3NpdGlvbik7CisgICAgSXRlcmF0b3IoY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0
IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
dmVydGljYWxQb3NpdGlvbik7CiAKICAgICBjb25zdCBGbG9hdGluZ1BhaXImIG9wZXJhdG9yKigp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudDsgfQogICAgIEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7
CkBAIC05MSwxOSArOTEsMTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldChMYXlvdXRVbml0IHZl
cnRpY2FsUG9zaXRpb24pOwogCiAgICAgY29uc3QgTGF5b3V0Q29udGV4dCYgbV9sYXlvdXRDb250
ZXh0OwotICAgIGNvbnN0IEZsb2F0aW5nU3RhdGUmIG1fZmxvYXRpbmdTdGF0ZTsKKyAgICBjb25z
dCBGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ0xpc3QmIG1fZmxvYXRpbmdzOwogICAgIEZsb2F0aW5n
UGFpciBtX2N1cnJlbnQ7CiB9OwogCiBzdGF0aWMgSXRlcmF0b3IgYmVnaW4oY29uc3QgTGF5b3V0
Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0
ZSwgTGF5b3V0VW5pdCBpbml0aWFsVmVydGljYWxQb3NpdGlvbikKIHsKICAgICAvLyBTdGFydCB3
aXRoIHRoZSBpbm5lci1tb3N0IGZsb2F0aW5nIHBhaXIgZm9yIHRoZSBpbml0aWFsIHZlcnRpY2Fs
IHBvc2l0aW9uLgotICAgIHJldHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ1N0
YXRlLCBpbml0aWFsVmVydGljYWxQb3NpdGlvbik7CisgICAgcmV0dXJuIEl0ZXJhdG9yKGxheW91
dENvbnRleHQsIGZsb2F0aW5nU3RhdGUuZmxvYXRpbmdzKCksIGluaXRpYWxWZXJ0aWNhbFBvc2l0
aW9uKTsKIH0KIAogc3RhdGljIEl0ZXJhdG9yIGVuZChjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlv
dXRDb250ZXh0LCBjb25zdCBGbG9hdGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRlKQogewotICAgIHJl
dHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ1N0YXRlLCBzdGQ6Om51bGxvcHQp
OworICAgIHJldHVybiBJdGVyYXRvcihsYXlvdXRDb250ZXh0LCBmbG9hdGluZ1N0YXRlLmZsb2F0
aW5ncygpLCBzdGQ6Om51bGxvcHQpOwogfQogCiBGbG9hdGluZ0NvbnRleHQ6OkZsb2F0aW5nQ29u
dGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgRmxvYXRpbmdTdGF0
ZSYgZmxvYXRpbmdTdGF0ZSkKQEAgLTIwOCwxNSArMjA4LDkgQEAgTGF5b3V0VW5pdCBGbG9hdGlu
Z0NvbnRleHQ6OmFsaWduV2l0aEZsb2F0aW5ncyhjb25zdCBGbG9hdGluZ1BhaXImIGZsb2F0aW5n
UGFpciwKICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrQ29udGVudFJpZ2h0IC0gbWFyZ2luQm94
V2lkdGg7CiB9CiAKLXN0YXRpYyBjb25zdCBEaXNwbGF5OjpCb3gqIGZsb2F0aW5nRGlzcGxheUJv
eCh1bnNpZ25lZCBpbmRleCwgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRpbmdMaXN0JiBmbG9h
dGluZ3MsIGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQpCi17Ci0gICAgUkVMRUFT
RV9BU1NFUlQoaW5kZXggPCBmbG9hdGluZ3Muc2l6ZSgpKTsKLSAgICByZXR1cm4gbGF5b3V0Q29u
dGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpmbG9hdGluZ3NbaW5kZXhdKTsKLX0KLQotRmxv
YXRpbmdQYWlyOjpGbG9hdGluZ1BhaXIoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSkKK0Zsb2F0aW5nUGFpcjo6Rmxv
YXRpbmdQYWlyKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEZsb2F0
aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgZmxvYXRpbmdzKQogICAgIDogbV9sYXlvdXRDb250ZXh0
KGxheW91dENvbnRleHQpCi0gICAgLCBtX2Zsb2F0aW5nU3RhdGUoZmxvYXRpbmdTdGF0ZSkKKyAg
ICAsIG1fZmxvYXRpbmdzKGZsb2F0aW5ncykKIHsKIH0KIApAQCAtMjI0LDggKzIxOCw5IEBAIGNv
bnN0IERpc3BsYXk6OkJveCogRmxvYXRpbmdQYWlyOjpsZWZ0KCkgY29uc3QKIHsKICAgICBpZiAo
IW1fbGVmdEluZGV4KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBmbG9h
dGluZ0Rpc3BsYXlCb3goKm1fbGVmdEluZGV4LCBtX2Zsb2F0aW5nU3RhdGUuZmxvYXRpbmdzKCku
bGVmdCwgbV9sYXlvdXRDb250ZXh0KTsKKyAgICAKKyAgICBBU1NFUlQobV9mbG9hdGluZ3NbKm1f
bGVmdEluZGV4XS0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkpOworICAgIHJldHVybiBtX2xh
eW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbV9mbG9hdGluZ3NbKm1fbGVmdElu
ZGV4XSk7CiB9CiAKIGNvbnN0IERpc3BsYXk6OkJveCogRmxvYXRpbmdQYWlyOjpyaWdodCgpIGNv
bnN0CkBAIC0yMzMsNyArMjI4LDggQEAgY29uc3QgRGlzcGxheTo6Qm94KiBGbG9hdGluZ1BhaXI6
OnJpZ2h0KCkgY29uc3QKICAgICBpZiAoIW1fcmlnaHRJbmRleCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gZmxvYXRpbmdEaXNwbGF5Qm94KCptX3JpZ2h0SW5kZXgsIG1f
ZmxvYXRpbmdTdGF0ZS5mbG9hdGluZ3MoKS5yaWdodCwgbV9sYXlvdXRDb250ZXh0KTsKKyAgICBB
U1NFUlQobV9mbG9hdGluZ3NbKm1fcmlnaHRJbmRleF0tPmlzUmlnaHRGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSk7CisgICAgcmV0dXJuIG1fbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94
KCptX2Zsb2F0aW5nc1sqbV9yaWdodEluZGV4XSk7CiB9CiAKIGJvb2wgRmxvYXRpbmdQYWlyOjpp
bnRlcnNlY3RzKGNvbnN0IERpc3BsYXk6OkJveDo6UmVjdCYgcmVjdCkgY29uc3QKQEAgLTI2NCwx
NSArMjYwLDI4IEBAIGJvb2wgRmxvYXRpbmdQYWlyOjpvcGVyYXRvciA9PShjb25zdCBGbG9hdGlu
Z1BhaXImIG90aGVyKSBjb25zdAogICAgIHJldHVybiBtX2xlZnRJbmRleCA9PSBvdGhlci5tX2xl
ZnRJbmRleCAmJiBtX3JpZ2h0SW5kZXggPT0gb3RoZXIubV9yaWdodEluZGV4OwogfQogCi1JdGVy
YXRvcjo6SXRlcmF0b3IoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3Qg
RmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB2
ZXJ0aWNhbFBvc2l0aW9uKQorSXRlcmF0b3I6Okl0ZXJhdG9yKGNvbnN0IExheW91dENvbnRleHQm
IGxheW91dENvbnRleHQsIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgZmxvYXRp
bmdzLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHZlcnRpY2FsUG9zaXRpb24pCiAgICAgOiBt
X2xheW91dENvbnRleHQobGF5b3V0Q29udGV4dCkKLSAgICAsIG1fZmxvYXRpbmdTdGF0ZShmbG9h
dGluZ1N0YXRlKQotICAgICwgbV9jdXJyZW50KGxheW91dENvbnRleHQsIGZsb2F0aW5nU3RhdGUp
CisgICAgLCBtX2Zsb2F0aW5ncyhmbG9hdGluZ3MpCisgICAgLCBtX2N1cnJlbnQobGF5b3V0Q29u
dGV4dCwgZmxvYXRpbmdzKQogewogICAgIGlmICh2ZXJ0aWNhbFBvc2l0aW9uKQogICAgICAgICBz
ZXQoKnZlcnRpY2FsUG9zaXRpb24pOwogfQogCitpbmxpbmUgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+IHByZXZpb3VzRmxvYXRpbmdJbmRleChGbG9hdCBmbG9hdGluZ1R5cGUsIGNvbnN0
IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgZmxvYXRpbmdzLCB1bnNpZ25lZCBjdXJyZW50
SW5kZXgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudEluZGV4IDw9IGZsb2F0aW5ncy5z
aXplKCkpOworICAgIAorICAgIHdoaWxlIChjdXJyZW50SW5kZXgpIHsKKyAgICAgICAgYXV0byog
ZmxvYXRpbmcgPSBmbG9hdGluZ3NbLS1jdXJyZW50SW5kZXhdLmdldCgpOworICAgICAgICBpZiAo
KGZsb2F0aW5nVHlwZSA9PSBGbG9hdDo6TGVmdCAmJiBmbG9hdGluZy0+aXNMZWZ0RmxvYXRpbmdQ
b3NpdGlvbmVkKCkpIHx8IChmbG9hdGluZ1R5cGUgPT0gRmxvYXQ6OlJpZ2h0ICYmIGZsb2F0aW5n
LT5pc1JpZ2h0RmxvYXRpbmdQb3NpdGlvbmVkKCkpKQorICAgICAgICAgICAgcmV0dXJuIGN1cnJl
bnRJbmRleDsKKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCiBJdGVyYXRvciYgSXRlcmF0
b3I6Om9wZXJhdG9yKysoKQogewogICAgIGlmIChtX2N1cnJlbnQuaXNFbXB0eSgpKSB7CkBAIC0y
ODAsMTkgKzI4OSwyNCBAQCBJdGVyYXRvciYgSXRlcmF0b3I6Om9wZXJhdG9yKysoKQogICAgICAg
ICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgYXV0byBwcmV2aW91c0Zsb2F0aW5nSW5kZXgg
PSBbJl0oY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRpbmdMaXN0JiBmbG9hdGluZ3MsIHVuc2ln
bmVkIGluZGV4KSAtPiBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB7CisgICAgYXV0byBmaW5kUHJl
dmlvdXNGbG9hdGluZ1dpdGhMb3dlckJvdHRvbSA9IFsmXShGbG9hdCBmbG9hdGluZ1R5cGUsIHVu
c2lnbmVkIGN1cnJlbnRJbmRleCkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gewogCi0gICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgZmxvYXRpbmdzLnNpemUoKSk7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGN1cnJlbnRJbmRleCA8IG1fZmxvYXRpbmdzLnNpemUoKSk7CiAKLSAgICAg
ICAgaWYgKCFpbmRleCkKKyAgICAgICAgLy8gTGFzdCBmbG9hdGluZz8gVGhlcmUncyBjZXJ0YWlu
bHkgbm8gcHJldmlvdXMgZmxvYXRpbmcgYXQgdGhpcyBwb2ludC4KKyAgICAgICAgaWYgKCFjdXJy
ZW50SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogCi0gICAgICAgIGF1dG8gY3VycmVu
dEJvdHRvbSA9IGZsb2F0aW5nRGlzcGxheUJveChpbmRleC0tLCBmbG9hdGluZ3MsIG1fbGF5b3V0
Q29udGV4dCktPmJvdHRvbSgpOworICAgICAgICBhdXRvIGN1cnJlbnRCb3R0b20gPSBtX2xheW91
dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbV9mbG9hdGluZ3NbY3VycmVudEluZGV4
XSktPmJvdHRvbSgpOworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGluZGV4ID0g
Y3VycmVudEluZGV4OwogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgaWYgKGZs
b2F0aW5nRGlzcGxheUJveChpbmRleCwgZmxvYXRpbmdzLCBtX2xheW91dENvbnRleHQpLT5ib3R0
b20oKSA+IGN1cnJlbnRCb3R0b20pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAg
ICAgICAgICAgaWYgKCFpbmRleC0tKQorICAgICAgICAgICAgaW5kZXggPSBwcmV2aW91c0Zsb2F0
aW5nSW5kZXgoZmxvYXRpbmdUeXBlLCBtX2Zsb2F0aW5ncywgKmluZGV4KTsKKyAgICAgICAgICAg
IGlmICghaW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICAgICAg
aWYgKG1fbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCptX2Zsb2F0aW5nc1sq
aW5kZXhdKS0+Ym90dG9tKCkgPiBjdXJyZW50Qm90dG9tKQorICAgICAgICAgICAgICAgIHJldHVy
biBpbmRleDsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MzE0LDEzICszMjgsMTMgQEAgSXRlcmF0b3ImIEl0ZXJhdG9yOjpvcGVyYXRvcisrKCkKICAgICBp
ZiAodXBkYXRlTGVmdCkgewogICAgICAgICBBU1NFUlQobV9jdXJyZW50Lm1fbGVmdEluZGV4KTsK
ICAgICAgICAgbV9jdXJyZW50Lm1fdmVydGljYWxQb3NpdGlvbiA9ICpsZWZ0Qm90dG9tOwotICAg
ICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSBwcmV2aW91c0Zsb2F0aW5nSW5kZXgobV9mbG9h
dGluZ1N0YXRlLmZsb2F0aW5ncygpLmxlZnQsICptX2N1cnJlbnQubV9sZWZ0SW5kZXgpOworICAg
ICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSBmaW5kUHJldmlvdXNGbG9hdGluZ1dpdGhMb3dl
ckJvdHRvbShGbG9hdDo6TGVmdCwgKm1fY3VycmVudC5tX2xlZnRJbmRleCk7CiAgICAgfQogICAg
IAogICAgIGlmICh1cGRhdGVSaWdodCkgewogICAgICAgICBBU1NFUlQobV9jdXJyZW50Lm1fcmln
aHRJbmRleCk7CiAgICAgICAgIG1fY3VycmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSAqcmlnaHRC
b3R0b207Ci0gICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBwcmV2aW91c0Zsb2F0aW5n
SW5kZXgobV9mbG9hdGluZ1N0YXRlLmZsb2F0aW5ncygpLnJpZ2h0LCAqbV9jdXJyZW50Lm1fcmln
aHRJbmRleCk7CisgICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBmaW5kUHJldmlvdXNG
bG9hdGluZ1dpdGhMb3dlckJvdHRvbShGbG9hdDo6UmlnaHQsICptX2N1cnJlbnQubV9yaWdodElu
ZGV4KTsKICAgICB9CiAKICAgICByZXR1cm4gKnRoaXM7CkBAIC0zMzUsNyArMzQ5LDcgQEAgdm9p
ZCBJdGVyYXRvcjo6c2V0KExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbikKIAogICAgIG1fY3Vy
cmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSB2ZXJ0aWNhbFBvc2l0aW9uOwogICAgIC8vIE5vIGZs
b2F0aW5ncyBhdCBhbGw/Ci0gICAgaWYgKG1fZmxvYXRpbmdTdGF0ZS5pc0VtcHR5KCkpIHsKKyAg
ICBpZiAobV9mbG9hdGluZ3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogCiAgICAgICAgIG1fY3VycmVudC5tX2xlZnRJbmRleCA9IHsgfTsKQEAgLTM0MywyMSAr
MzU3LDMyIEBAIHZvaWQgSXRlcmF0b3I6OnNldChMYXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb24p
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGZpbmRGbG9hdGluZ0JlbG93ID0g
WyZdKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nTGlzdCYgbGlzdCkgLT4gc3RkOjpvcHRp
b25hbDx1bnNpZ25lZD4gewotICAgICAgICAKLSAgICAgICAgYXV0byBpbmRleCA9IGxpc3Quc2l6
ZSgpOyAKLSAgICAgICAgd2hpbGUgKGluZGV4KSB7Ci0gICAgICAgICAgICBhdXRvIGJvdHRvbSA9
IGZsb2F0aW5nRGlzcGxheUJveCgtLWluZGV4LCBsaXN0LCBtX2xheW91dENvbnRleHQpLT5ib3R0
b20oKTsKKyAgICBhdXRvIGZpbmRGbG9hdGluZ0JlbG93ID0gWyZdKEZsb2F0IGZsb2F0aW5nVHlw
ZSkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4geworCisgICAgICAgIEFTU0VSVCghbV9mbG9h
dGluZ3MuaXNFbXB0eSgpKTsKKworICAgICAgICBhdXRvIGluZGV4ID0gZmxvYXRpbmdUeXBlID09
IEZsb2F0OjpMZWZ0ID8gbV9jdXJyZW50Lm1fbGVmdEluZGV4IDogbV9jdXJyZW50Lm1fcmlnaHRJ
bmRleDsKKyAgICAgICAgLy8gU3RhcnQgZnJvbSB0aGUgZW5kIGlmIHdlIGRvbid0IGhhdmUgY3Vy
cmVudCB5ZXQuCisgICAgICAgIGluZGV4ID0gaW5kZXgudmFsdWVfb3IobV9mbG9hdGluZ3Muc2l6
ZSgpKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGluZGV4ID0gcHJldmlv
dXNGbG9hdGluZ0luZGV4KGZsb2F0aW5nVHlwZSwgbV9mbG9hdGluZ3MsICppbmRleCk7CisgICAg
ICAgICAgICBpZiAoIWluZGV4KQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAg
ICAgICAgIGF1dG8gYm90dG9tID0gbV9sYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRC
b3goKm1fZmxvYXRpbmdzWyppbmRleF0pLT5ib3R0b20oKTsKICAgICAgICAgICAgIC8vIElzIHRo
aXMgZmxvYXRpbmcgaW50cnVzaXZlIG9uIHRoaXMgcG9zaXRpb24/CiAgICAgICAgICAgICBpZiAo
Ym90dG9tID4gdmVydGljYWxQb3NpdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7
CiAgICAgICAgIH0KKwogICAgICAgICByZXR1cm4geyB9OwogICAgIH07CiAKLSAgICBhdXRvJiBm
bG9hdGluZ3MgPSBtX2Zsb2F0aW5nU3RhdGUuZmxvYXRpbmdzKCk7Ci0gICAgbV9jdXJyZW50Lm1f
bGVmdEluZGV4ID0gZmluZEZsb2F0aW5nQmVsb3coZmxvYXRpbmdzLmxlZnQpOwotICAgIG1fY3Vy
cmVudC5tX3JpZ2h0SW5kZXggPSBmaW5kRmxvYXRpbmdCZWxvdyhmbG9hdGluZ3MucmlnaHQpOwor
ICAgIG1fY3VycmVudC5tX2xlZnRJbmRleCA9IGZpbmRGbG9hdGluZ0JlbG93KEZsb2F0OjpMZWZ0
KTsKKyAgICBtX2N1cnJlbnQubV9yaWdodEluZGV4ID0gZmluZEZsb2F0aW5nQmVsb3coRmxvYXQ6
OlJpZ2h0KTsKKyAgICAKKyAgICBBU1NFUlQoIW1fY3VycmVudC5tX2xlZnRJbmRleCB8fCAoKm1f
Y3VycmVudC5tX2xlZnRJbmRleCA8IG1fZmxvYXRpbmdzLnNpemUoKSAmJiBtX2Zsb2F0aW5nc1sq
bV9jdXJyZW50Lm1fbGVmdEluZGV4XS0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkpKTsKKyAg
ICBBU1NFUlQoIW1fY3VycmVudC5tX3JpZ2h0SW5kZXggfHwgKCptX2N1cnJlbnQubV9yaWdodElu
ZGV4IDwgbV9mbG9hdGluZ3Muc2l6ZSgpICYmIG1fZmxvYXRpbmdzWyptX2N1cnJlbnQubV9yaWdo
dEluZGV4XS0+aXNSaWdodEZsb2F0aW5nUG9zaXRpb25lZCgpKSk7CiB9CiAKIGJvb2wgSXRlcmF0
b3I6Om9wZXJhdG9yPT0oY29uc3QgSXRlcmF0b3ImIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IDM5NzI1OTA3YTQzZDNkNWQ1YWZmZjU1YzFl
MTQ0N2QwM2YwMDUyMjMuLjhhNzZmNWRhM2IxZmVkMWRhYTZlMzg4MzAxMmRkZGYzYWY1OGI1ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ1N0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5jcHAKQEAgLTQyLDIzICs0Miwy
MiBAQCBGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ1N0YXRlKExheW91dENvbnRleHQmIGxheW91dENv
bnRleHQpCiB7CiB9CiAKK3ZvaWQgRmxvYXRpbmdTdGF0ZTo6cmVtb3ZlKGNvbnN0IEJveCYgbGF5
b3V0Qm94KQoreworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX2Zsb2F0aW5n
cy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmxvYXRpbmdzW2luZGV4XS5nZXQo
KSA9PSAmbGF5b3V0Qm94KSB7CisgICAgICAgICAgICBtX2Zsb2F0aW5ncy5yZW1vdmUoaW5kZXgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCiB2b2lkIEZsb2F0aW5nU3RhdGU6OmFwcGVuZChjb25zdCBCb3gmIGxh
eW91dEJveCkKIHsKICAgICAvLyBGbG9hdGluZyBzdGF0ZSBzaG91bGQgaG9sZCBib3hlcyB3aXRo
IGNvbXB1dGVkIHBvc2l0aW9uL3NpemUuCiAgICAgQVNTRVJUKG1fbGF5b3V0Q29udGV4dC5kaXNw
bGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCkpOwotICAgIG1fbGFzdCA9IG1ha2VXZWFrUHRy
KGNvbnN0X2Nhc3Q8Qm94Jj4obGF5b3V0Qm94KSk7Ci0KLSAgICBpZiAobGF5b3V0Qm94LmlzTGVm
dEZsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIG1fbGVmdEZsb2F0aW5ncy5hcHBlbmQo
bV9sYXN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChsYXlvdXRCb3guaXNS
aWdodEZsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIG1fcmlnaHRGbG9hdGluZ3MuYXBw
ZW5kKG1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICBtX2Zsb2F0aW5ncy5hcHBlbmQobWFrZVdlYWtQdHIoY29uc3RfY2FzdDxC
b3gmPihsYXlvdXRCb3gpKSk7IAogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRmxvYXRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3Rh
dGUuaAppbmRleCA5NmY4ODczZWY5ZDEyNmFkMTM2NDg1NjgwMjdjZWJmZjhjOWI0MWYwLi4xMDdi
NzVjNTEwM2VhNWE0MzFhMWJiZjNiMDllNmI5NWY5YjIwOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9GbG9hdGluZ1N0YXRlLmgKQEAgLTQ2LDE2ICs0NiwxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGUoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGbG9hdGluZ1N0YXRlKGxheW91dENvbnRleHQpKTsgfQog
CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgQm94JiBsYXlvdXRCb3gpOworICAgIHZvaWQgcmVtb3Zl
KGNvbnN0IEJveCYgbGF5b3V0Qm94KTsKIAotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVmdEZsb2F0aW5ncy5pc0VtcHR5KCkgJiYgbV9yaWdodEZsb2F0aW5ncy5pc0VtcHR5
KCk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Zsb2F0aW5ncy5pc0Vt
cHR5KCk7IH0KIAogICAgIHVzaW5nIEZsb2F0aW5nTGlzdCA9IFZlY3RvcjxXZWFrUHRyPEJveD4+
OwotICAgIHN0cnVjdCBGbG9hdGluZ3MgewotICAgICAgICBjb25zdCBGbG9hdGluZ0xpc3QmIGxl
ZnQ7Ci0gICAgICAgIGNvbnN0IEZsb2F0aW5nTGlzdCYgcmlnaHQ7IAotICAgIH07Ci0gICAgY29u
c3QgRmxvYXRpbmdzIGZsb2F0aW5ncygpIGNvbnN0IHsgcmV0dXJuIHsgbV9sZWZ0RmxvYXRpbmdz
LCBtX3JpZ2h0RmxvYXRpbmdzIH07IH0KLSAgICBjb25zdCBCb3gqIGxhc3QoKSBjb25zdCB7IHJl
dHVybiBtX2xhc3QuZ2V0KCk7IH0KKyAgICBjb25zdCBGbG9hdGluZ0xpc3QmIGZsb2F0aW5ncygp
IGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRpbmdzOyB9CisgICAgY29uc3QgQm94KiBsYXN0KCkgY29u
c3QgeyByZXR1cm4gaXNFbXB0eSgpID8gbnVsbHB0ciA6IG1fZmxvYXRpbmdzLmxhc3QoKS5nZXQo
KTsgfQogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBGbG9hdGluZ0NvbnRleHQ7CkBAIC02
NCwxMCArNjEsNyBAQCBwcml2YXRlOgogICAgIExheW91dENvbnRleHQmIGxheW91dENvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2xheW91dENvbnRleHQ7IH0KIAogICAgIExheW91dENvbnRleHQm
IG1fbGF5b3V0Q29udGV4dDsKLQotICAgIEZsb2F0aW5nTGlzdCBtX2xlZnRGbG9hdGluZ3M7Ci0g
ICAgRmxvYXRpbmdMaXN0IG1fcmlnaHRGbG9hdGluZ3M7Ci0gICAgV2Vha1B0cjxCb3g+IG1fbGFz
dDsKKyAgICBGbG9hdGluZ0xpc3QgbV9mbG9hdGluZ3M7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="364167"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>