<?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>177942</bug_id>
          
          <creation_ts>2017-10-05 06:42:21 -0700</creation_ts>
          <short_desc>Move more multicolumn render tree mutation code to RenderTreeUpdater::MultiColumn</short_desc>
          <delta_ts>2017-10-05 11:01:21 -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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</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>1357011</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-05 06:42:21 -0700</bug_when>
    <thetext>It is only used by RenderTreeUpdater.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357018</commentid>
    <comment_count>1</comment_count>
      <attachid>322835</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-05 07:15:38 -0700</bug_when>
    <thetext>Created attachment 322835
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357020</commentid>
    <comment_count>2</comment_count>
      <attachid>322836</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-05 07:29:21 -0700</bug_when>
    <thetext>Created attachment 322836
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357096</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-10-05 11:00:28 -0700</bug_when>
    <thetext>https://trac.webkit.org/r222920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357097</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-05 11:01:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/34837630&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322835</attachid>
            <date>2017-10-05 07:15:38 -0700</date>
            <delta_ts>2017-10-05 07:29:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>multicol-more-rendertreeudpater.patch</filename>
            <type>text/plain</type>
            <size>13095</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjkxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEwLTA1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIG1vcmUgbXVsdGljb2x1
bW4gcmVuZGVyIHRyZWUgbXV0YXRpb24gY29kZSB0byBSZW5kZXJUcmVlVXBkYXRlcjo6TXVsdGlD
b2x1bW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Nzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtbkZsb3c6OlJlbmRlck11bHRpQ29sdW1uRmxvdyk6CisKKyAgICAgICAg
ICAgIFVzZSBzdGQ6OnVuaXF1ZV9wdHIgZm9yIHRoZSBzcGFubmVyIG1hcCBmb3Igc2FmZSBvd2Vu
ZXJzaGlwIHRyYW5zZmVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZs
b3c6OmZyYWdtZW50ZWRGbG93RGVzY2VuZGFudEluc2VydGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck11bHRpQ29sdW1uRmxvdzo6aGFuZGxlU3Bhbm5lclJlbW92YWwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5GbG93OjpmcmFnbWVudGVkRmxvd1JlbGF0aXZlV2ls
bEJlUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OnBv
cHVsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uRmxv
dzo6ZXZhY3VhdGVBbmREZXN0cm95KTogRGVsZXRlZC4KKworICAgICAgICAgICAgVGhpcyBjb2Rl
IG1vdmVzIHRvIFJlbmRlclRyZWVVcGRhdGVyOjpNdWx0aUNvbHVtbi4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3cuaDoKKyAgICAgICAgKiBzdHlsZS9SZW5kZXJU
cmVlVXBkYXRlck11bHRpQ29sdW1uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVV
cGRhdGVyOjpNdWx0aUNvbHVtbjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVVcGRhdGVyOjpNdWx0aUNvbHVtbjo6Y3JlYXRlRnJhZ21lbnRlZEZsb3cpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21lbnRl
ZEZsb3cpOgorCisgICAgICAgICAgICBVc2UgSHlhdHQncyBwcmVmZXJyZWQgJ2ZyYWdtZW50ZWQg
ZmxvdycgdGVybWlub2xvZ3kuCisKKyAgICAgICAgKiBzdHlsZS9SZW5kZXJUcmVlVXBkYXRlck11
bHRpQ29sdW1uLmg6CisKIDIwMTctMTAtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIG11bHRpY29sdW1uIGZsb3cgY2xlYXIgdG8gUmVuZGVyVHJlZVVw
ZGF0ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZs
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtbkZsb3cuY3BwCShyZXZpc2lvbiAyMjI4OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsNyBAQCBib29sIFJlbmRlck11bHRpQ29sdW1uRmxvdzo6Z1NoaWZ0aW5nU3BhCiAKIFJlbmRl
ck11bHRpQ29sdW1uRmxvdzo6UmVuZGVyTXVsdGlDb2x1bW5GbG93KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckZyYWdtZW50ZWRGbG93KGRvY3Vt
ZW50LCBXVEZNb3ZlKHN0eWxlKSkKKyAgICAsIG1fc3Bhbm5lck1hcChzdGQ6Om1ha2VfdW5pcXVl
PFNwYW5uZXJNYXA+KCkpCiAgICAgLCBtX2xhc3RTZXRXb3JrZWRPbihudWxscHRyKQogICAgICwg
bV9jb2x1bW5Db3VudCgxKQogICAgICwgbV9jb2x1bW5XaWR0aCgwKQpAQCAtMTQyLDU3ICsxNDMs
NiBAQCBzdGF0aWMgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIGZpbmRTZXRSZW5kCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93Ojpwb3B1bGF0ZSgpCi17
Ci0gICAgUmVuZGVyQmxvY2tGbG93KiBtdWx0aWNvbENvbnRhaW5lciA9IG11bHRpQ29sdW1uQmxv
Y2tGbG93KCk7Ci0gICAgQVNTRVJUKCFuZXh0U2libGluZygpKTsKLSAgICAvLyBSZXBhcmVudCBj
aGlsZHJlbiBwcmVjZWRpbmcgdGhlIGZsb3cgdGhyZWFkIGludG8gdGhlIGZsb3cgdGhyZWFkLiBJ
dCdzIG11bHRpY29sIGNvbnRlbnQKLSAgICAvLyBub3cuIEF0IHRoaXMgcG9pbnQgdGhlcmUncyBv
YnZpb3VzbHkgbm90aGluZyBhZnRlciB0aGUgZmxvdyB0aHJlYWQsIGJ1dCByZW5kZXJlcnMgKGNv
bHVtbgotICAgIC8vIHNldHMgYW5kIHNwYW5uZXJzKSB3aWxsIGJlIGluc2VydGVkIHRoZXJlIGFz
IHdlIGluc2VydCBlbGVtZW50cyBpbnRvIHRoZSBmbG93IHRocmVhZC4KLSAgICBtdWx0aWNvbENv
bnRhaW5lci0+bW92ZUNoaWxkcmVuVG8odGhpcywgbXVsdGljb2xDb250YWluZXItPmZpcnN0Q2hp
bGQoKSwgdGhpcywgdHJ1ZSk7Ci0gICAgCi0gICAgaWYgKG11bHRpY29sQ29udGFpbmVyLT5pc0Zp
ZWxkc2V0KCkpIHsKLSAgICAgICAgLy8gS2VlcCBsZWdlbmRzIG91dCBvZiB0aGUgZmxvdyB0aHJl
YWQuCi0gICAgICAgIGZvciAoYXV0byYgYm94IDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyQm94Pigq
dGhpcykpIHsKLSAgICAgICAgICAgIGlmIChib3guaXNMZWdlbmQoKSkKLSAgICAgICAgICAgICAg
ICBtb3ZlQ2hpbGRUbyhtdWx0aWNvbENvbnRhaW5lciwgJmJveCwgdHJ1ZSk7Ci0gICAgICAgIH0K
LSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjpldmFjdWF0ZUFuZERlc3Ry
b3koKQotewotICAgIFJlbmRlckJsb2NrRmxvdyogbXVsdGljb2xDb250YWluZXIgPSBtdWx0aUNv
bHVtbkJsb2NrRmxvdygpOwotICAgIC8vIERlbGV0ZSB0aGUgbGluZSBib3ggdHJlZS4KLSAgICBk
ZWxldGVMaW5lcygpOwotICAgIAotICAgIC8vIEZpcnN0IHByb21vdGUgYWxsIGNoaWxkcmVuIG9m
IHRoZSBmbG93IHRocmVhZC4gQmVmb3JlIHdlIG1vdmUgdGhlbSB0byB0aGUgZmxvdyB0aHJlYWQn
cwotICAgIC8vIGNvbnRhaW5lciwgd2UgbmVlZCB0byB1bnJlZ2lzdGVyIHRoZSBmbG93IHRocmVh
ZCwgc28gdGhhdCB0aGV5IGFyZW4ndCBqdXN0IHJlLWFkZGVkIGFnYWluIHRvCi0gICAgLy8gdGhl
IGZsb3cgdGhyZWFkIHRoYXQgd2UncmUgdHJ5aW5nIHRvIGVtcHR5LgotICAgIG11bHRpY29sQ29u
dGFpbmVyLT5zZXRNdWx0aUNvbHVtbkZsb3cobnVsbHB0cik7Ci0gICAgbW92ZUFsbENoaWxkcmVu
VG8obXVsdGljb2xDb250YWluZXIsIHRydWUpOwotCi0gICAgLy8gTW92ZSBzcGFubmVycyBiYWNr
IHRvIHRoZWlyIG9yaWdpbmFsIERPTSBwb3NpdGlvbiBpbiB0aGUgdHJlZSwgYW5kIGRlc3Ryb3kg
dGhlIHBsYWNlaG9sZGVycy4KLSAgICBTcGFubmVyTWFwOjppdGVyYXRvciBpdDsKLSAgICB3aGls
ZSAoKGl0ID0gbV9zcGFubmVyTWFwLmJlZ2luKCkpICE9IG1fc3Bhbm5lck1hcC5lbmQoKSkgewot
ICAgICAgICBSZW5kZXJCb3gqIHNwYW5uZXIgPSBpdC0+a2V5OwotICAgICAgICBhdXRvIHRha2Vu
U3Bhbm5lciA9IG11bHRpY29sQ29udGFpbmVyLT50YWtlQ2hpbGQoKnNwYW5uZXIpOwotICAgICAg
ICBBU1NFUlQoaXQtPnZhbHVlLmdldCgpKTsKLSAgICAgICAgaWYgKFJlbmRlck11bHRpQ29sdW1u
U3Bhbm5lclBsYWNlaG9sZGVyKiBwbGFjZWhvbGRlciA9IGl0LT52YWx1ZS5nZXQoKSkgewotICAg
ICAgICAgICAgUmVuZGVyQmxvY2tGbG93JiBvcmlnaW5hbENvbnRhaW5lciA9IGRvd25jYXN0PFJl
bmRlckJsb2NrRmxvdz4oKnBsYWNlaG9sZGVyLT5wYXJlbnQoKSk7Ci0gICAgICAgICAgICBvcmln
aW5hbENvbnRhaW5lci5hZGRDaGlsZChXVEZNb3ZlKHRha2VuU3Bhbm5lciksIHBsYWNlaG9sZGVy
KTsKLSAgICAgICAgICAgIHBsYWNlaG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgp
OwotICAgICAgICB9Ci0gICAgICAgIG1fc3Bhbm5lck1hcC5yZW1vdmUoaXQpOwotICAgIH0KLQot
ICAgIC8vIFJlbW92ZSBhbGwgc2V0cy4KLSAgICB3aGlsZSAoUmVuZGVyTXVsdGlDb2x1bW5TZXQq
IGNvbHVtblNldCA9IGZpcnN0TXVsdGlDb2x1bW5TZXQoKSkKLSAgICAgICAgY29sdW1uU2V0LT5y
ZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwotICAgIAotICAgIHJlbW92ZUZyb21QYXJlbnRB
bmREZXN0cm95KCk7Ci19Ci0KIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjphZGRGcmFnbWVu
dFRvVGhyZWFkKFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBSZW5kZXJGcmFnbWVudENvbnRhaW5l
cikKIHsKICAgICBhdXRvKiBjb2x1bW5TZXQgPSBkb3duY2FzdDxSZW5kZXJNdWx0aUNvbHVtblNl
dD4oUmVuZGVyRnJhZ21lbnRDb250YWluZXIpOwpAQCAtNDIzLDcgKzM3Myw3IEBAIHZvaWQgUmVu
ZGVyTXVsdGlDb2x1bW5GbG93OjpmcmFnbWVudGVkRmwKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAvLyBXZSBoYXZlIHRvIG51a2UgdGhlIHBsYWNlaG9sZGVyLCBzaW5jZSB0aGUg
YW5jZXN0b3IgYWxyZWFkeSBsb3N0IHRoZSBtYXBwaW5nIHRvIGl0IHdoZW4KICAgICAgICAgICAg
ICAgICAvLyB3ZSBzaGlmdGVkIHRoZSBwbGFjZWhvbGRlciBkb3duIGludG8gdGhpcyBmbG93IHRo
cmVhZC4KLSAgICAgICAgICAgICAgICBwbGFjZWhvbGRlci5mcmFnbWVudGVkRmxvdygpLT5tX3Nw
YW5uZXJNYXAucmVtb3ZlKHNwYW5uZXIpOworICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyLmZy
YWdtZW50ZWRGbG93KCktPnNwYW5uZXJNYXAoKS5yZW1vdmUoc3Bhbm5lcik7CiAKICAgICAgICAg
ICAgICAgICBzcGFubmVyc1RvRGVsZXRlLmFwcGVuZChwbGFjZWhvbGRlci5wYXJlbnQoKS0+dGFr
ZUNoaWxkKHBsYWNlaG9sZGVyKSk7CiAKQEAgLTQzNCw4ICszODQsOCBAQCB2b2lkIFJlbmRlck11
bHRpQ29sdW1uRmxvdzo6ZnJhZ21lbnRlZEZsCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEFTU0VSVCghbV9zcGFubmVy
TWFwLmdldChwbGFjZWhvbGRlci5zcGFubmVyKCkpKTsKLSAgICAgICAgICAgIG1fc3Bhbm5lck1h
cC5hZGQocGxhY2Vob2xkZXIuc3Bhbm5lcigpLCBtYWtlV2Vha1B0cihwbGFjZWhvbGRlcikpOwor
ICAgICAgICAgICAgQVNTRVJUKCFzcGFubmVyTWFwKCkuZ2V0KHBsYWNlaG9sZGVyLnNwYW5uZXIo
KSkpOworICAgICAgICAgICAgc3Bhbm5lck1hcCgpLmFkZChwbGFjZWhvbGRlci5zcGFubmVyKCks
IG1ha2VXZWFrUHRyKHBsYWNlaG9sZGVyKSk7CiAgICAgICAgICAgICBBU1NFUlQoIXBsYWNlaG9s
ZGVyLmZpcnN0Q2hpbGQoKSk7IC8vIFRoZXJlIHNob3VsZCBiZSBubyBjaGlsZHJlbiBoZXJlLCBi
dXQgaWYgdGhlcmUgYXJlLCB3ZSBvdWdodCB0byBza2lwIHRoZW0uCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQpAQCAtNDQ2LDcgKzM5Niw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1
bW5GbG93OjpmcmFnbWVudGVkRmwKIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjpoYW5kbGVT
cGFubmVyUmVtb3ZhbChSZW5kZXJPYmplY3QmIHNwYW5uZXIpCiB7CiAgICAgLy8gVGhlIHBsYWNl
aG9sZGVyIG1heSBhbHJlYWR5IGhhdmUgYmVlbiByZW1vdmVkLCBidXQgaWYgaXQgaGFzbid0LCBk
byBzbyBub3cuCi0gICAgaWYgKGF1dG8gcGxhY2Vob2xkZXIgPSBtX3NwYW5uZXJNYXAudGFrZSgm
ZG93bmNhc3Q8UmVuZGVyQm94PihzcGFubmVyKSkpCisgICAgaWYgKGF1dG8gcGxhY2Vob2xkZXIg
PSBzcGFubmVyTWFwKCkudGFrZSgmZG93bmNhc3Q8UmVuZGVyQm94PihzcGFubmVyKSkpCiAgICAg
ICAgIHBsYWNlaG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwogCiAgICAgaWYg
KFJlbmRlck9iamVjdCogbmV4dCA9IHNwYW5uZXIubmV4dFNpYmxpbmcoKSkgewpAQCAtNDY4LDcg
KzQxOCw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjpmcmFnbWVudGVkRmwKICAgICAg
ICAgLy8ga2VlcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBzcGFubmVyLCBzaW5jZSB0aGUgcGxhY2Vo
b2xkZXIgbWF5IGJlIGFib3V0IHRvIGJlIHJlLWluc2VydGVkCiAgICAgICAgIC8vIGluIHRoZSB0
cmVlLgogICAgICAgICBBU1NFUlQocmVsYXRpdmUuaXNEZXNjZW5kYW50T2YodGhpcykpOwotICAg
ICAgICBtX3NwYW5uZXJNYXAucmVtb3ZlKGRvd25jYXN0PFJlbmRlck11bHRpQ29sdW1uU3Bhbm5l
clBsYWNlaG9sZGVyPihyZWxhdGl2ZSkuc3Bhbm5lcigpKTsKKyAgICAgICAgc3Bhbm5lck1hcCgp
LnJlbW92ZShkb3duY2FzdDxSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcj4ocmVs
YXRpdmUpLnNwYW5uZXIoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHJlbGF0
aXZlLnN0eWxlKCkuY29sdW1uU3BhbigpID09IENvbHVtblNwYW5BbGwpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3cuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmgJKHJldmlz
aW9uIDIyMjg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
bkZsb3cuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMjMgKzQzLDE0IEBAIHB1YmxpYzoKICAgICBS
ZW5kZXJNdWx0aUNvbHVtblNldCogZmlyc3RNdWx0aUNvbHVtblNldCgpIGNvbnN0OwogICAgIFJl
bmRlck11bHRpQ29sdW1uU2V0KiBsYXN0TXVsdGlDb2x1bW5TZXQoKSBjb25zdDsKICAgICBSZW5k
ZXJCb3gqIGZpcnN0Q29sdW1uU2V0T3JTcGFubmVyKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNDb2x1
bW5TcGFubmVyKCkgY29uc3QgeyByZXR1cm4gIW1fc3Bhbm5lck1hcC5pc0VtcHR5KCk7IH0KKyAg
ICBib29sIGhhc0NvbHVtblNwYW5uZXIoKSBjb25zdCB7IHJldHVybiAhbV9zcGFubmVyTWFwLT5p
c0VtcHR5KCk7IH0KICAgICBzdGF0aWMgUmVuZGVyQm94KiBuZXh0Q29sdW1uU2V0T3JTcGFubmVy
U2libGluZ09mKGNvbnN0IFJlbmRlckJveCopOwogICAgIHN0YXRpYyBSZW5kZXJCb3gqIHByZXZp
b3VzQ29sdW1uU2V0T3JTcGFubmVyU2libGluZ09mKGNvbnN0IFJlbmRlckJveCopOwogCi0gICAg
UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIqIGZpbmRDb2x1bW5TcGFubmVyUGxh
Y2Vob2xkZXIoUmVuZGVyQm94KiBzcGFubmVyKSBjb25zdCB7IHJldHVybiBtX3NwYW5uZXJNYXAu
Z2V0KHNwYW5uZXIpLmdldCgpOyB9CisgICAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vo
b2xkZXIqIGZpbmRDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIoUmVuZGVyQm94KiBzcGFubmVyKSBj
b25zdCB7IHJldHVybiBtX3NwYW5uZXJNYXAtPmdldChzcGFubmVyKS5nZXQoKTsgfQogCiAgICAg
dm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIC8vIFBvcHVsYXRlIHRoZSBmbG93IHRocmVh
ZCB3aXRoIHdoYXQncyBjdXJyZW50bHkgaXRzIHNpYmxpbmdzLiBDYWxsZWQgd2hlbiBhIHJlZ3Vs
YXIgYmxvY2sKLSAgICAvLyBiZWNvbWVzIGEgbXVsdGljb2wgY29udGFpbmVyLgotICAgIHZvaWQg
cG9wdWxhdGUoKTsKLQotICAgIC8vIEVtcHR5IHRoZSBmbG93IHRocmVhZCBieSBtb3ZpbmcgZXZl
cnl0aGluZyB0byB0aGUgcGFyZW50LiBSZW1vdmUgYWxsIG11bHRpY29sIHNwZWNpZmljCi0gICAg
Ly8gcmVuZGVyZXJzLiBUaGVuIGRlc3Ryb3kgdGhlIGZsb3cgdGhyZWFkLiBDYWxsZWQgd2hlbiBh
IG11bHRpY29sIGNvbnRhaW5lciBiZWNvbWVzIGEgcmVndWxhcgotICAgIC8vIGJsb2NrLgotICAg
IHZvaWQgZXZhY3VhdGVBbmREZXN0cm95KCk7Ci0KICAgICB1bnNpZ25lZCBjb2x1bW5Db3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uQ291bnQ7IH0KICAgICBMYXlvdXRVbml0IGNvbHVtbldp
ZHRoKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5XaWR0aDsgfQogICAgIExheW91dFVuaXQgY29s
dW1uSGVpZ2h0QXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5IZWlnaHRBdmFpbGFi
bGU7IH0KQEAgLTEwNSw2ICs5Niw5IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogRXZlbnR1YWxs
eSBhcyBjb2x1bW4gYW5kIGZyYWdtZW50IGZsb3cgdGhyZWFkcyBzdGFydCBuZXN0aW5nLCB0aGlz
IHdpbGwgZW5kIHVwIGNoYW5naW5nLgogICAgIGJvb2wgc2hvdWxkQ2hlY2tDb2x1bW5CcmVha3Mo
KSBjb25zdCBvdmVycmlkZTsKIAorICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJCb3gqLCBXZWFr
UHRyPFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPj4gU3Bhbm5lck1hcDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3Bhbm5lck1hcD4gdGFrZVNwYW5uZXJNYXAoKSB7IHJldHVybiBX
VEZNb3ZlKG1fc3Bhbm5lck1hcCk7IH0KKwogcHJpdmF0ZToKICAgICBib29sIGlzUmVuZGVyTXVs
dGlDb2x1bW5GbG93KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTEyNSwxMCArMTE5LDExIEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGhhbmRsZVNwYW5uZXJSZW1vdmFsKFJlbmRlck9iamVjdCYg
c3Bhbm5lcik7CiAgICAgUmVuZGVyT2JqZWN0KiBwcm9jZXNzUG9zc2libGVTcGFubmVyRGVzY2Vu
ZGFudChSZW5kZXJPYmplY3QqJiBzdWJ0cmVlUm9vdCwgUmVuZGVyT2JqZWN0JiBkZXNjZW5kYW50
KTsKKworICAgIFNwYW5uZXJNYXAmIHNwYW5uZXJNYXAoKSB7IHJldHVybiAqbV9zcGFubmVyTWFw
OyB9CiAgICAgCiBwcml2YXRlOgotICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJCb3gqLCBXZWFr
UHRyPFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPj4gU3Bhbm5lck1hcDsKLSAg
ICBTcGFubmVyTWFwIG1fc3Bhbm5lck1hcDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Bhbm5lck1h
cD4gbV9zcGFubmVyTWFwOwogCiAgICAgLy8gVGhlIGxhc3Qgc2V0IHdlIHdvcmtlZCBvbi4gSXQn
cyBub3QgdG8gYmUgdXNlZCBhcyB0aGUgImN1cnJlbnQgc2V0Ii4gVGhlIGNvbmNlcHQgb2YgYQog
ICAgIC8vICJjdXJyZW50IHNldCIgaXMgZGlmZmljdWx0LCBzaW5jZSBsYXlvdXQgbWF5IGp1bXAg
YmFjayBhbmQgZm9ydGggaW4gdGhlIHRyZWUsIGR1ZSB0byB3cm9uZwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5jcHAJ
KHJldmlzaW9uIDIyMjg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRh
dGVyTXVsdGlDb2x1bW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyMiArMjYsMjUgQEAKIAog
I2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1u
Rmxvdy5oIgorI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uU2V0LmgiCisjaW5jbHVkZSAiUmVu
ZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJDaGls
ZEl0ZXJhdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBSZW5kZXJUcmVlVXBk
YXRlcjo6TXVsdGlDb2x1bW46OnVwZGF0ZShSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiB7CiAgICAg
Ym9vbCBuZWVkc0ZyYWdtZW50ZWRGbG93ID0gZmxvdy5yZXF1aXJlc0NvbHVtbnMoZmxvdy5zdHls
ZSgpLmNvbHVtbkNvdW50KCkpOwotICAgIGF1dG8qIG11bHRpQ29sdW1uRmxvdyA9IGZsb3cubXVs
dGlDb2x1bW5GbG93KCk7Ci0gICAgaWYgKCFuZWVkc0ZyYWdtZW50ZWRGbG93KSB7Ci0gICAgICAg
IGlmIChtdWx0aUNvbHVtbkZsb3cpIHsKLSAgICAgICAgICAgIG11bHRpQ29sdW1uRmxvdy0+ZXZh
Y3VhdGVBbmREZXN0cm95KCk7Ci0gICAgICAgICAgICBBU1NFUlQoIWZsb3cubXVsdGlDb2x1bW5G
bG93KCkpOwotICAgICAgICB9CisgICAgYm9vbCBoYXNGcmFnbWVudGVkRmxvdyA9IGZsb3cubXVs
dGlDb2x1bW5GbG93KCk7CisKKyAgICBpZiAoIWhhc0ZyYWdtZW50ZWRGbG93ICYmIG5lZWRzRnJh
Z21lbnRlZEZsb3cpIHsKKyAgICAgICAgY3JlYXRlRnJhZ21lbnRlZEZsb3coZmxvdyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGhhc0ZyYWdtZW50ZWRGbG93ICYmICFuZWVkc0Zy
YWdtZW50ZWRGbG93KSB7CisgICAgICAgIGRlc3Ryb3lGcmFnbWVudGVkRmxvdyhmbG93KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoIW11bHRpQ29sdW1uRmxvdykKLSAgICAgICAg
Y3JlYXRlRnJhZ21lbnRlZEZsb3coZmxvdyk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6
Ok11bHRpQ29sdW1uOjpjcmVhdGVGcmFnbWVudGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZsb3cp
CkBAIC01Miw5ICs1NSw0MyBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpNdWx0aUNvbHVtbjo6
Y3JlCiAgICAgZmxvdy5kZWxldGVMaW5lcygpOwogICAgIGF1dG8mIGZyYWdtZW50ZWRGbG93ID0g
Km5ld0ZyYWdtZW50ZWRGbG93OwogICAgIGZsb3cuUmVuZGVyQmxvY2s6OmFkZENoaWxkKFdURk1v
dmUobmV3RnJhZ21lbnRlZEZsb3cpKTsKLSAgICBmcmFnbWVudGVkRmxvdy5wb3B1bGF0ZSgpOyAv
LyBDYWxsZWQgYWZ0ZXIgdGhlIGZsb3cgdGhyZWFkIGlzIGluc2VydGVkIHNvIHRoYXQgd2UgYXJl
IHJlYWNoYWJsZSBieSB0aGUgZmxvdyB0aHJlYWQuCisKKyAgICAvLyBSZXBhcmVudCBjaGlsZHJl
biBwcmVjZWRpbmcgdGhlIGZyYWdtZW50ZWQgZmxvdyBpbnRvIHRoZSBmcmFnbWVudGVkIGZsb3cu
CisgICAgZmxvdy5tb3ZlQ2hpbGRyZW5UbygmZnJhZ21lbnRlZEZsb3csIGZsb3cuZmlyc3RDaGls
ZCgpLCAmZnJhZ21lbnRlZEZsb3csIHRydWUpOworICAgIGlmIChmbG93LmlzRmllbGRzZXQoKSkg
eworICAgICAgICAvLyBLZWVwIGxlZ2VuZHMgb3V0IG9mIHRoZSBmbG93IHRocmVhZC4KKyAgICAg
ICAgZm9yIChhdXRvJiBib3ggOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCb3g+KGZyYWdtZW50ZWRG
bG93KSkgeworICAgICAgICAgICAgaWYgKGJveC5pc0xlZ2VuZCgpKQorICAgICAgICAgICAgICAg
IGZyYWdtZW50ZWRGbG93Lm1vdmVDaGlsZFRvKCZmbG93LCAmYm94LCB0cnVlKTsKKyAgICAgICAg
fQorICAgIH0KKwogICAgIGZsb3cuc2V0TXVsdGlDb2x1bW5GbG93KCZmcmFnbWVudGVkRmxvdyk7
CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21l
bnRlZEZsb3coUmVuZGVyQmxvY2tGbG93JiBmbG93KQoreworICAgIGF1dG8mIGZyYWdtZW50ZWRG
bG93ID0gKmZsb3cubXVsdGlDb2x1bW5GbG93KCk7CisKKyAgICBmcmFnbWVudGVkRmxvdy5kZWxl
dGVMaW5lcygpOworCisgICAgZmxvdy5zZXRNdWx0aUNvbHVtbkZsb3cobnVsbHB0cik7CisgICAg
ZnJhZ21lbnRlZEZsb3cubW92ZUFsbENoaWxkcmVuVG8oJmZsb3csIHRydWUpOworCisgICAgLy8g
TW92ZSBzcGFubmVycyBiYWNrIHRvIHRoZWlyIG9yaWdpbmFsIERPTSBwb3NpdGlvbiBpbiB0aGUg
dHJlZSwgYW5kIGRlc3Ryb3kgdGhlIHBsYWNlaG9sZGVycy4KKyAgICBhdXRvIHNwYW5uZXJNYXAg
PSBmcmFnbWVudGVkRmxvdy50YWtlU3Bhbm5lck1hcCgpOworICAgIGZvciAoYXV0byYgc3Bhbm5l
ckFuZFBsYWNlaG9sZGVyIDogKnNwYW5uZXJNYXApIHsKKyAgICAgICAgUmVuZGVyQm94JiBzcGFu
bmVyID0gKnNwYW5uZXJBbmRQbGFjZWhvbGRlci5rZXk7CisgICAgICAgIGF1dG8mIHBsYWNlaG9s
ZGVyID0gKnNwYW5uZXJBbmRQbGFjZWhvbGRlci52YWx1ZTsKKyAgICAgICAgYXV0byB0YWtlblNw
YW5uZXIgPSBmbG93LnRha2VDaGlsZChzcGFubmVyKTsKKyAgICAgICAgcGxhY2Vob2xkZXIucGFy
ZW50KCktPmFkZENoaWxkKFdURk1vdmUodGFrZW5TcGFubmVyKSwgJnBsYWNlaG9sZGVyKTsKKyAg
ICAgICAgcGxhY2Vob2xkZXIucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICB9CisK
KyAgICB3aGlsZSAoYXV0byogY29sdW1uU2V0ID0gZnJhZ21lbnRlZEZsb3cuZmlyc3RNdWx0aUNv
bHVtblNldCgpKQorICAgICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
KCk7CisKKyAgICBmcmFnbWVudGVkRmxvdy5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwor
fQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlck11bHRp
Q29sdW1uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVw
ZGF0ZXJNdWx0aUNvbHVtbi5oCShyZXZpc2lvbiAyMjI4OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9SZW5kZXJUcmVlVXBkYXRlck11bHRpQ29sdW1uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDYgKzM3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUZy
YWdtZW50ZWRGbG93KFJlbmRlckJsb2NrRmxvdyYpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lG
cmFnbWVudGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmKTsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322836</attachid>
            <date>2017-10-05 07:29:21 -0700</date>
            <delta_ts>2017-10-05 09:03:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>multicol-more-rendertreeudpater-2.patch</filename>
            <type>text/plain</type>
            <size>12862</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjkxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEwLTA1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIG1vcmUgbXVsdGljb2x1
bW4gcmVuZGVyIHRyZWUgbXV0YXRpb24gY29kZSB0byBSZW5kZXJUcmVlVXBkYXRlcjo6TXVsdGlD
b2x1bW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Nzk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtbkZsb3c6OlJlbmRlck11bHRpQ29sdW1uRmxvdyk6CisKKyAgICAgICAg
ICAgIFVzZSBzdGQ6OnVuaXF1ZV9wdHIgZm9yIHRoZSBzcGFubmVyIG1hcCBmb3Igc2FmZSBvd2Vu
ZXJzaGlwIHRyYW5zZmVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZs
b3c6OmZyYWdtZW50ZWRGbG93RGVzY2VuZGFudEluc2VydGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck11bHRpQ29sdW1uRmxvdzo6aGFuZGxlU3Bhbm5lclJlbW92YWwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5GbG93OjpmcmFnbWVudGVkRmxvd1JlbGF0aXZlV2ls
bEJlUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OnBv
cHVsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uRmxv
dzo6ZXZhY3VhdGVBbmREZXN0cm95KTogRGVsZXRlZC4KKworICAgICAgICAgICAgVGhpcyBjb2Rl
IG1vdmVzIHRvIFJlbmRlclRyZWVVcGRhdGVyOjpNdWx0aUNvbHVtbi4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3cuaDoKKyAgICAgICAgKiBzdHlsZS9SZW5kZXJU
cmVlVXBkYXRlck11bHRpQ29sdW1uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVV
cGRhdGVyOjpNdWx0aUNvbHVtbjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVVcGRhdGVyOjpNdWx0aUNvbHVtbjo6Y3JlYXRlRnJhZ21lbnRlZEZsb3cpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21lbnRl
ZEZsb3cpOgorCisgICAgICAgICAgICBVc2UgSHlhdHQncyBwcmVmZXJyZWQgJ2ZyYWdtZW50ZWQg
ZmxvdycgdGVybWlub2xvZ3kuCisKKyAgICAgICAgKiBzdHlsZS9SZW5kZXJUcmVlVXBkYXRlck11
bHRpQ29sdW1uLmg6CisKIDIwMTctMTAtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIG11bHRpY29sdW1uIGZsb3cgY2xlYXIgdG8gUmVuZGVyVHJlZVVw
ZGF0ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZs
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtbkZsb3cuY3BwCShyZXZpc2lvbiAyMjI5MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsNyBAQCBib29sIFJlbmRlck11bHRpQ29sdW1uRmxvdzo6Z1NoaWZ0aW5nU3BhCiAKIFJlbmRl
ck11bHRpQ29sdW1uRmxvdzo6UmVuZGVyTXVsdGlDb2x1bW5GbG93KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckZyYWdtZW50ZWRGbG93KGRvY3Vt
ZW50LCBXVEZNb3ZlKHN0eWxlKSkKKyAgICAsIG1fc3Bhbm5lck1hcChzdGQ6Om1ha2VfdW5pcXVl
PFNwYW5uZXJNYXA+KCkpCiAgICAgLCBtX2xhc3RTZXRXb3JrZWRPbihudWxscHRyKQogICAgICwg
bV9jb2x1bW5Db3VudCgxKQogICAgICwgbV9jb2x1bW5XaWR0aCgwKQpAQCAtMTQyLDUxICsxNDMs
NiBAQCBzdGF0aWMgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIGZpbmRTZXRSZW5kCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93Ojpwb3B1bGF0ZSgpCi17
Ci0gICAgUmVuZGVyQmxvY2tGbG93KiBtdWx0aWNvbENvbnRhaW5lciA9IG11bHRpQ29sdW1uQmxv
Y2tGbG93KCk7Ci0gICAgQVNTRVJUKCFuZXh0U2libGluZygpKTsKLSAgICAvLyBSZXBhcmVudCBj
aGlsZHJlbiBwcmVjZWRpbmcgdGhlIGZsb3cgdGhyZWFkIGludG8gdGhlIGZsb3cgdGhyZWFkLiBJ
dCdzIG11bHRpY29sIGNvbnRlbnQKLSAgICAvLyBub3cuIEF0IHRoaXMgcG9pbnQgdGhlcmUncyBv
YnZpb3VzbHkgbm90aGluZyBhZnRlciB0aGUgZmxvdyB0aHJlYWQsIGJ1dCByZW5kZXJlcnMgKGNv
bHVtbgotICAgIC8vIHNldHMgYW5kIHNwYW5uZXJzKSB3aWxsIGJlIGluc2VydGVkIHRoZXJlIGFz
IHdlIGluc2VydCBlbGVtZW50cyBpbnRvIHRoZSBmbG93IHRocmVhZC4KLSAgICBtdWx0aWNvbENv
bnRhaW5lci0+bW92ZUNoaWxkcmVuVG8odGhpcywgbXVsdGljb2xDb250YWluZXItPmZpcnN0Q2hp
bGQoKSwgdGhpcywgdHJ1ZSk7Ci0gICAgCi0gICAgaWYgKG11bHRpY29sQ29udGFpbmVyLT5pc0Zp
ZWxkc2V0KCkpIHsKLSAgICAgICAgLy8gS2VlcCBsZWdlbmRzIG91dCBvZiB0aGUgZmxvdyB0aHJl
YWQuCi0gICAgICAgIGZvciAoYXV0byYgYm94IDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyQm94Pigq
dGhpcykpIHsKLSAgICAgICAgICAgIGlmIChib3guaXNMZWdlbmQoKSkKLSAgICAgICAgICAgICAg
ICBtb3ZlQ2hpbGRUbyhtdWx0aWNvbENvbnRhaW5lciwgJmJveCwgdHJ1ZSk7Ci0gICAgICAgIH0K
LSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjpldmFjdWF0ZUFuZERlc3Ry
b3koKQotewotICAgIFJlbmRlckJsb2NrRmxvdyogbXVsdGljb2xDb250YWluZXIgPSBtdWx0aUNv
bHVtbkJsb2NrRmxvdygpOwotICAgIC8vIERlbGV0ZSB0aGUgbGluZSBib3ggdHJlZS4KLSAgICBk
ZWxldGVMaW5lcygpOwotICAgIG1vdmVBbGxDaGlsZHJlblRvKG11bHRpY29sQ29udGFpbmVyLCB0
cnVlKTsKLSAgICAvLyBNb3ZlIHNwYW5uZXJzIGJhY2sgdG8gdGhlaXIgb3JpZ2luYWwgRE9NIHBv
c2l0aW9uIGluIHRoZSB0cmVlLCBhbmQgZGVzdHJveSB0aGUgcGxhY2Vob2xkZXJzLgotICAgIFNw
YW5uZXJNYXA6Oml0ZXJhdG9yIGl0OwotICAgIHdoaWxlICgoaXQgPSBtX3NwYW5uZXJNYXAuYmVn
aW4oKSkgIT0gbV9zcGFubmVyTWFwLmVuZCgpKSB7Ci0gICAgICAgIFJlbmRlckJveCogc3Bhbm5l
ciA9IGl0LT5rZXk7Ci0gICAgICAgIGF1dG8gdGFrZW5TcGFubmVyID0gbXVsdGljb2xDb250YWlu
ZXItPnRha2VDaGlsZCgqc3Bhbm5lcik7Ci0gICAgICAgIEFTU0VSVChpdC0+dmFsdWUuZ2V0KCkp
OwotICAgICAgICBpZiAoUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIqIHBsYWNl
aG9sZGVyID0gaXQtPnZhbHVlLmdldCgpKSB7Ci0gICAgICAgICAgICBSZW5kZXJCbG9ja0Zsb3cm
IG9yaWdpbmFsQ29udGFpbmVyID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqcGxhY2Vob2xk
ZXItPnBhcmVudCgpKTsKLSAgICAgICAgICAgIG9yaWdpbmFsQ29udGFpbmVyLmFkZENoaWxkKFdU
Rk1vdmUodGFrZW5TcGFubmVyKSwgcGxhY2Vob2xkZXIpOwotICAgICAgICAgICAgcGxhY2Vob2xk
ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7Ci0gICAgICAgIH0KLSAgICAgICAgbV9z
cGFubmVyTWFwLnJlbW92ZShpdCk7Ci0gICAgfQotCi0gICAgLy8gUmVtb3ZlIGFsbCBzZXRzLgot
ICAgIHdoaWxlIChSZW5kZXJNdWx0aUNvbHVtblNldCogY29sdW1uU2V0ID0gZmlyc3RNdWx0aUNv
bHVtblNldCgpKQotICAgICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
KCk7Ci0gICAgCi0gICAgcmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKLX0KLQogdm9pZCBS
ZW5kZXJNdWx0aUNvbHVtbkZsb3c6OmFkZEZyYWdtZW50VG9UaHJlYWQoUmVuZGVyRnJhZ21lbnRD
b250YWluZXIqIFJlbmRlckZyYWdtZW50Q29udGFpbmVyKQogewogICAgIGF1dG8qIGNvbHVtblNl
dCA9IGRvd25jYXN0PFJlbmRlck11bHRpQ29sdW1uU2V0PihSZW5kZXJGcmFnbWVudENvbnRhaW5l
cik7CkBAIC00MTYsNyArMzcyLDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OmZyYWdt
ZW50ZWRGbAogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8g
bnVrZSB0aGUgcGxhY2Vob2xkZXIsIHNpbmNlIHRoZSBhbmNlc3RvciBhbHJlYWR5IGxvc3QgdGhl
IG1hcHBpbmcgdG8gaXQgd2hlbgogICAgICAgICAgICAgICAgIC8vIHdlIHNoaWZ0ZWQgdGhlIHBs
YWNlaG9sZGVyIGRvd24gaW50byB0aGlzIGZsb3cgdGhyZWFkLgotICAgICAgICAgICAgICAgIHBs
YWNlaG9sZGVyLmZyYWdtZW50ZWRGbG93KCktPm1fc3Bhbm5lck1hcC5yZW1vdmUoc3Bhbm5lcik7
CisgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIuZnJhZ21lbnRlZEZsb3coKS0+c3Bhbm5lck1h
cCgpLnJlbW92ZShzcGFubmVyKTsKIAogICAgICAgICAgICAgICAgIHNwYW5uZXJzVG9EZWxldGUu
YXBwZW5kKHBsYWNlaG9sZGVyLnBhcmVudCgpLT50YWtlQ2hpbGQocGxhY2Vob2xkZXIpKTsKIApA
QCAtNDI3LDggKzM4Myw4IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93OjpmcmFnbWVudGVk
RmwKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgQVNTRVJUKCFtX3NwYW5uZXJNYXAuZ2V0KHBsYWNlaG9sZGVyLnNwYW5u
ZXIoKSkpOwotICAgICAgICAgICAgbV9zcGFubmVyTWFwLmFkZChwbGFjZWhvbGRlci5zcGFubmVy
KCksIG1ha2VXZWFrUHRyKHBsYWNlaG9sZGVyKSk7CisgICAgICAgICAgICBBU1NFUlQoIXNwYW5u
ZXJNYXAoKS5nZXQocGxhY2Vob2xkZXIuc3Bhbm5lcigpKSk7CisgICAgICAgICAgICBzcGFubmVy
TWFwKCkuYWRkKHBsYWNlaG9sZGVyLnNwYW5uZXIoKSwgbWFrZVdlYWtQdHIocGxhY2Vob2xkZXIp
KTsKICAgICAgICAgICAgIEFTU0VSVCghcGxhY2Vob2xkZXIuZmlyc3RDaGlsZCgpKTsgLy8gVGhl
cmUgc2hvdWxkIGJlIG5vIGNoaWxkcmVuIGhlcmUsIGJ1dCBpZiB0aGVyZSBhcmUsIHdlIG91Z2h0
IHRvIHNraXAgdGhlbS4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC00Mzks
NyArMzk1LDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OmZyYWdtZW50ZWRGbAogdm9p
ZCBSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OmhhbmRsZVNwYW5uZXJSZW1vdmFsKFJlbmRlck9iamVj
dCYgc3Bhbm5lcikKIHsKICAgICAvLyBUaGUgcGxhY2Vob2xkZXIgbWF5IGFscmVhZHkgaGF2ZSBi
ZWVuIHJlbW92ZWQsIGJ1dCBpZiBpdCBoYXNuJ3QsIGRvIHNvIG5vdy4KLSAgICBpZiAoYXV0byBw
bGFjZWhvbGRlciA9IG1fc3Bhbm5lck1hcC50YWtlKCZkb3duY2FzdDxSZW5kZXJCb3g+KHNwYW5u
ZXIpKSkKKyAgICBpZiAoYXV0byBwbGFjZWhvbGRlciA9IHNwYW5uZXJNYXAoKS50YWtlKCZkb3du
Y2FzdDxSZW5kZXJCb3g+KHNwYW5uZXIpKSkKICAgICAgICAgcGxhY2Vob2xkZXItPnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KCk7CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBuZXh0ID0gc3Bh
bm5lci5uZXh0U2libGluZygpKSB7CkBAIC00NjEsNyArNDE3LDcgQEAgdm9pZCBSZW5kZXJNdWx0
aUNvbHVtbkZsb3c6OmZyYWdtZW50ZWRGbAogICAgICAgICAvLyBrZWVwIHRoZSByZWZlcmVuY2Ug
dG8gdGhlIHNwYW5uZXIsIHNpbmNlIHRoZSBwbGFjZWhvbGRlciBtYXkgYmUgYWJvdXQgdG8gYmUg
cmUtaW5zZXJ0ZWQKICAgICAgICAgLy8gaW4gdGhlIHRyZWUuCiAgICAgICAgIEFTU0VSVChyZWxh
dGl2ZS5pc0Rlc2NlbmRhbnRPZih0aGlzKSk7Ci0gICAgICAgIG1fc3Bhbm5lck1hcC5yZW1vdmUo
ZG93bmNhc3Q8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+KHJlbGF0aXZlKS5z
cGFubmVyKCkpOworICAgICAgICBzcGFubmVyTWFwKCkucmVtb3ZlKGRvd25jYXN0PFJlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyPihyZWxhdGl2ZSkuc3Bhbm5lcigpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAocmVsYXRpdmUuc3R5bGUoKS5jb2x1bW5TcGFuKCkg
PT0gQ29sdW1uU3BhbkFsbCkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uRmxvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtbkZsb3cuaAkocmV2aXNpb24gMjIyOTExKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MywyMyArNDMsMTQgQEAgcHVibGljOgogICAgIFJlbmRlck11bHRpQ29sdW1uU2V0KiBmaXJz
dE11bHRpQ29sdW1uU2V0KCkgY29uc3Q7CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIGxhc3RN
dWx0aUNvbHVtblNldCgpIGNvbnN0OwogICAgIFJlbmRlckJveCogZmlyc3RDb2x1bW5TZXRPclNw
YW5uZXIoKSBjb25zdDsKLSAgICBib29sIGhhc0NvbHVtblNwYW5uZXIoKSBjb25zdCB7IHJldHVy
biAhbV9zcGFubmVyTWFwLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ29sdW1uU3Bhbm5lcigp
IGNvbnN0IHsgcmV0dXJuICFtX3NwYW5uZXJNYXAtPmlzRW1wdHkoKTsgfQogICAgIHN0YXRpYyBS
ZW5kZXJCb3gqIG5leHRDb2x1bW5TZXRPclNwYW5uZXJTaWJsaW5nT2YoY29uc3QgUmVuZGVyQm94
Kik7CiAgICAgc3RhdGljIFJlbmRlckJveCogcHJldmlvdXNDb2x1bW5TZXRPclNwYW5uZXJTaWJs
aW5nT2YoY29uc3QgUmVuZGVyQm94Kik7CiAKLSAgICBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlciogZmluZENvbHVtblNwYW5uZXJQbGFjZWhvbGRlcihSZW5kZXJCb3gqIHNwYW5u
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fc3Bhbm5lck1hcC5nZXQoc3Bhbm5lcikuZ2V0KCk7IH0KKyAg
ICBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlciogZmluZENvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcihSZW5kZXJCb3gqIHNwYW5uZXIpIGNvbnN0IHsgcmV0dXJuIG1fc3Bhbm5lck1h
cC0+Z2V0KHNwYW5uZXIpLmdldCgpOyB9CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwog
Ci0gICAgLy8gUG9wdWxhdGUgdGhlIGZsb3cgdGhyZWFkIHdpdGggd2hhdCdzIGN1cnJlbnRseSBp
dHMgc2libGluZ3MuIENhbGxlZCB3aGVuIGEgcmVndWxhciBibG9jawotICAgIC8vIGJlY29tZXMg
YSBtdWx0aWNvbCBjb250YWluZXIuCi0gICAgdm9pZCBwb3B1bGF0ZSgpOwotCi0gICAgLy8gRW1w
dHkgdGhlIGZsb3cgdGhyZWFkIGJ5IG1vdmluZyBldmVyeXRoaW5nIHRvIHRoZSBwYXJlbnQuIFJl
bW92ZSBhbGwgbXVsdGljb2wgc3BlY2lmaWMKLSAgICAvLyByZW5kZXJlcnMuIFRoZW4gZGVzdHJv
eSB0aGUgZmxvdyB0aHJlYWQuIENhbGxlZCB3aGVuIGEgbXVsdGljb2wgY29udGFpbmVyIGJlY29t
ZXMgYSByZWd1bGFyCi0gICAgLy8gYmxvY2suCi0gICAgdm9pZCBldmFjdWF0ZUFuZERlc3Ryb3ko
KTsKLQogICAgIHVuc2lnbmVkIGNvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5D
b3VudDsgfQogICAgIExheW91dFVuaXQgY29sdW1uV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2Nv
bHVtbldpZHRoOyB9CiAgICAgTGF5b3V0VW5pdCBjb2x1bW5IZWlnaHRBdmFpbGFibGUoKSBjb25z
dCB7IHJldHVybiBtX2NvbHVtbkhlaWdodEF2YWlsYWJsZTsgfQpAQCAtMTA1LDYgKzk2LDkgQEAg
cHVibGljOgogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IGFzIGNvbHVtbiBhbmQgZnJhZ21lbnQg
ZmxvdyB0aHJlYWRzIHN0YXJ0IG5lc3RpbmcsIHRoaXMgd2lsbCBlbmQgdXAgY2hhbmdpbmcuCiAg
ICAgYm9vbCBzaG91bGRDaGVja0NvbHVtbkJyZWFrcygpIGNvbnN0IG92ZXJyaWRlOwogCisgICAg
dHlwZWRlZiBIYXNoTWFwPFJlbmRlckJveCosIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFu
bmVyUGxhY2Vob2xkZXI+PiBTcGFubmVyTWFwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGFubmVy
TWFwPiB0YWtlU3Bhbm5lck1hcCgpIHsgcmV0dXJuIFdURk1vdmUobV9zcGFubmVyTWFwKTsgfQor
CiBwcml2YXRlOgogICAgIGJvb2wgaXNSZW5kZXJNdWx0aUNvbHVtbkZsb3coKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0
IG92ZXJyaWRlOwpAQCAtMTI1LDEwICsxMTksMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaGFu
ZGxlU3Bhbm5lclJlbW92YWwoUmVuZGVyT2JqZWN0JiBzcGFubmVyKTsKICAgICBSZW5kZXJPYmpl
Y3QqIHByb2Nlc3NQb3NzaWJsZVNwYW5uZXJEZXNjZW5kYW50KFJlbmRlck9iamVjdComIHN1YnRy
ZWVSb290LCBSZW5kZXJPYmplY3QmIGRlc2NlbmRhbnQpOworCisgICAgU3Bhbm5lck1hcCYgc3Bh
bm5lck1hcCgpIHsgcmV0dXJuICptX3NwYW5uZXJNYXA7IH0KICAgICAKIHByaXZhdGU6Ci0gICAg
dHlwZWRlZiBIYXNoTWFwPFJlbmRlckJveCosIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFu
bmVyUGxhY2Vob2xkZXI+PiBTcGFubmVyTWFwOwotICAgIFNwYW5uZXJNYXAgbV9zcGFubmVyTWFw
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGFubmVyTWFwPiBtX3NwYW5uZXJNYXA7CiAKICAgICAv
LyBUaGUgbGFzdCBzZXQgd2Ugd29ya2VkIG9uLiBJdCdzIG5vdCB0byBiZSB1c2VkIGFzIHRoZSAi
Y3VycmVudCBzZXQiLiBUaGUgY29uY2VwdCBvZiBhCiAgICAgLy8gImN1cnJlbnQgc2V0IiBpcyBk
aWZmaWN1bHQsIHNpbmNlIGxheW91dCBtYXkganVtcCBiYWNrIGFuZCBmb3J0aCBpbiB0aGUgdHJl
ZSwgZHVlIHRvIHdyb25nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBk
YXRlck11bHRpQ29sdW1uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9S
ZW5kZXJUcmVlVXBkYXRlck11bHRpQ29sdW1uLmNwcAkocmV2aXNpb24gMjIyOTExKQorKysgU291
cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDI0ICsyNSwyNiBAQAogI2luY2x1ZGUgIlJlbmRlclRyZWVVcGRhdGVy
TXVsdGlDb2x1bW4uaCIKIAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgorI2luY2x1ZGUg
IlJlbmRlckNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkZsb3cu
aCIKKyNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtblNldC5oIgorI2luY2x1ZGUgIlJlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6TXVsdGlDb2x1bW46OnVwZGF0ZShSZW5kZXJCbG9ja0Zs
b3cmIGZsb3cpCiB7CiAgICAgYm9vbCBuZWVkc0ZyYWdtZW50ZWRGbG93ID0gZmxvdy5yZXF1aXJl
c0NvbHVtbnMoZmxvdy5zdHlsZSgpLmNvbHVtbkNvdW50KCkpOwotICAgIGF1dG8qIG11bHRpQ29s
dW1uRmxvdyA9IGZsb3cubXVsdGlDb2x1bW5GbG93KCk7Ci0gICAgaWYgKCFuZWVkc0ZyYWdtZW50
ZWRGbG93KSB7Ci0gICAgICAgIGlmIChtdWx0aUNvbHVtbkZsb3cpIHsKLSAgICAgICAgICAgIGZs
b3cuY2xlYXJNdWx0aUNvbHVtbkZsb3coKTsKLSAgICAgICAgICAgIG11bHRpQ29sdW1uRmxvdy0+
ZXZhY3VhdGVBbmREZXN0cm95KCk7Ci0gICAgICAgICAgICBBU1NFUlQoIWZsb3cubXVsdGlDb2x1
bW5GbG93KCkpOwotICAgICAgICB9CisgICAgYm9vbCBoYXNGcmFnbWVudGVkRmxvdyA9IGZsb3cu
bXVsdGlDb2x1bW5GbG93KCk7CisKKyAgICBpZiAoIWhhc0ZyYWdtZW50ZWRGbG93ICYmIG5lZWRz
RnJhZ21lbnRlZEZsb3cpIHsKKyAgICAgICAgY3JlYXRlRnJhZ21lbnRlZEZsb3coZmxvdyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGhhc0ZyYWdtZW50ZWRGbG93ICYmICFuZWVk
c0ZyYWdtZW50ZWRGbG93KSB7CisgICAgICAgIGRlc3Ryb3lGcmFnbWVudGVkRmxvdyhmbG93KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoIW11bHRpQ29sdW1uRmxvdykKLSAgICAg
ICAgY3JlYXRlRnJhZ21lbnRlZEZsb3coZmxvdyk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZVVwZGF0
ZXI6Ok11bHRpQ29sdW1uOjpjcmVhdGVGcmFnbWVudGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZs
b3cpCkBAIC01Myw5ICs1NSw0MiBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpNdWx0aUNvbHVt
bjo6Y3JlCiAgICAgZmxvdy5kZWxldGVMaW5lcygpOwogICAgIGF1dG8mIGZyYWdtZW50ZWRGbG93
ID0gKm5ld0ZyYWdtZW50ZWRGbG93OwogICAgIGZsb3cuUmVuZGVyQmxvY2s6OmFkZENoaWxkKFdU
Rk1vdmUobmV3RnJhZ21lbnRlZEZsb3cpKTsKLSAgICBmcmFnbWVudGVkRmxvdy5wb3B1bGF0ZSgp
OyAvLyBDYWxsZWQgYWZ0ZXIgdGhlIGZsb3cgdGhyZWFkIGlzIGluc2VydGVkIHNvIHRoYXQgd2Ug
YXJlIHJlYWNoYWJsZSBieSB0aGUgZmxvdyB0aHJlYWQuCisKKyAgICAvLyBSZXBhcmVudCBjaGls
ZHJlbiBwcmVjZWRpbmcgdGhlIGZyYWdtZW50ZWQgZmxvdyBpbnRvIHRoZSBmcmFnbWVudGVkIGZs
b3cuCisgICAgZmxvdy5tb3ZlQ2hpbGRyZW5UbygmZnJhZ21lbnRlZEZsb3csIGZsb3cuZmlyc3RD
aGlsZCgpLCAmZnJhZ21lbnRlZEZsb3csIHRydWUpOworICAgIGlmIChmbG93LmlzRmllbGRzZXQo
KSkgeworICAgICAgICAvLyBLZWVwIGxlZ2VuZHMgb3V0IG9mIHRoZSBmbG93IHRocmVhZC4KKyAg
ICAgICAgZm9yIChhdXRvJiBib3ggOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCb3g+KGZyYWdtZW50
ZWRGbG93KSkgeworICAgICAgICAgICAgaWYgKGJveC5pc0xlZ2VuZCgpKQorICAgICAgICAgICAg
ICAgIGZyYWdtZW50ZWRGbG93Lm1vdmVDaGlsZFRvKCZmbG93LCAmYm94LCB0cnVlKTsKKyAgICAg
ICAgfQorICAgIH0KKwogICAgIGZsb3cuc2V0TXVsdGlDb2x1bW5GbG93KGZyYWdtZW50ZWRGbG93
KTsKIH0KIAordm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6TXVsdGlDb2x1bW46OmRlc3Ryb3lGcmFn
bWVudGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCit7CisgICAgYXV0byYgZnJhZ21lbnRl
ZEZsb3cgPSAqZmxvdy5tdWx0aUNvbHVtbkZsb3coKTsKKyAgICBmbG93LmNsZWFyTXVsdGlDb2x1
bW5GbG93KCk7CisKKyAgICBmcmFnbWVudGVkRmxvdy5kZWxldGVMaW5lcygpOworICAgIGZyYWdt
ZW50ZWRGbG93Lm1vdmVBbGxDaGlsZHJlblRvKCZmbG93LCB0cnVlKTsKKworICAgIC8vIE1vdmUg
c3Bhbm5lcnMgYmFjayB0byB0aGVpciBvcmlnaW5hbCBET00gcG9zaXRpb24gaW4gdGhlIHRyZWUs
IGFuZCBkZXN0cm95IHRoZSBwbGFjZWhvbGRlcnMuCisgICAgYXV0byBzcGFubmVyTWFwID0gZnJh
Z21lbnRlZEZsb3cudGFrZVNwYW5uZXJNYXAoKTsKKyAgICBmb3IgKGF1dG8mIHNwYW5uZXJBbmRQ
bGFjZWhvbGRlciA6ICpzcGFubmVyTWFwKSB7CisgICAgICAgIFJlbmRlckJveCYgc3Bhbm5lciA9
ICpzcGFubmVyQW5kUGxhY2Vob2xkZXIua2V5OworICAgICAgICBhdXRvJiBwbGFjZWhvbGRlciA9
ICpzcGFubmVyQW5kUGxhY2Vob2xkZXIudmFsdWU7CisgICAgICAgIGF1dG8gdGFrZW5TcGFubmVy
ID0gZmxvdy50YWtlQ2hpbGQoc3Bhbm5lcik7CisgICAgICAgIHBsYWNlaG9sZGVyLnBhcmVudCgp
LT5hZGRDaGlsZChXVEZNb3ZlKHRha2VuU3Bhbm5lciksICZwbGFjZWhvbGRlcik7CisgICAgICAg
IHBsYWNlaG9sZGVyLnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgfQorCisgICAg
d2hpbGUgKGF1dG8qIGNvbHVtblNldCA9IGZyYWdtZW50ZWRGbG93LmZpcnN0TXVsdGlDb2x1bW5T
ZXQoKSkKKyAgICAgICAgY29sdW1uU2V0LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwor
CisgICAgZnJhZ21lbnRlZEZsb3cucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKK30KIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVt
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRhdGVy
TXVsdGlDb2x1bW4uaAkocmV2aXNpb24gMjIyOTExKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUv
UmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVGcmFnbWVu
dGVkRmxvdyhSZW5kZXJCbG9ja0Zsb3cmKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95RnJhZ21l
bnRlZEZsb3coUmVuZGVyQmxvY2tGbG93Jik7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="342661"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>