<?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>178032</bug_id>
          
          <creation_ts>2017-10-06 15:27:47 -0700</creation_ts>
          <short_desc>Teach InlineTextBox::clampOffset() about combined text and hyphenation</short_desc>
          <delta_ts>2017-10-15 15:08:03 -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>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>138913</blocked>
    
    <blocked>178322</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>mmaxfield</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>1357778</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-06 15:27:47 -0700</bug_when>
    <thetext>As a first steps towards fixing bug #138913, teach InlineTextBox::clampOffset() about combined text and hyphenation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357813</commentid>
    <comment_count>1</comment_count>
      <attachid>323062</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-06 16:24:05 -0700</bug_when>
    <thetext>Created attachment 323062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358267</commentid>
    <comment_count>2</comment_count>
      <attachid>323183</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-09 10:08:41 -0700</bug_when>
    <thetext>Created attachment 323183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359602</commentid>
    <comment_count>3</comment_count>
      <attachid>323183</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-12 08:41:28 -0700</bug_when>
    <thetext>Comment on attachment 323183
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:629
&gt; +        // Fix up the offset if we are combined text or have a hyphen. We treat combined text as a

Will update this comment to read:

Fix up the offset if we are combined text or have a hyphen because we manage these embellishments. That is, they are not reflected in renderer().text(). We treat combined text as a single unit. We also treat the last codepoint in this box and the hyphen as a single unit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359738</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-12 14:31:45 -0700</bug_when>
    <thetext>Committed r223259: &lt;https://trac.webkit.org/changeset/223259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359739</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-12 14:32:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/34964018&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323062</attachid>
            <date>2017-10-06 16:24:05 -0700</date>
            <delta_ts>2017-10-09 10:08:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178032-20171006162404.patch</filename>
            <type>text/plain</type>
            <size>11476</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzAwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTA2ICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCBJbmxpbmVUZXh0Qm94
OjpjbGFtcE9mZnNldCgpIGFib3V0IGNvbWJpbmVkIHRleHQgYW5kIGh5cGhlbmF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmVhdCBjb21iaW5l
ZCB0ZXh0IGFuZCB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSB3b3JkIGhhbHZlIHBsdXMgaHlwaGVu
IGFzIHNpbmdsZSB1bml0cy4KKworICAgICAgICBXaXRoIHJlZ2FyZHMgdG8gY29tYmluZWQgdGV4
dCwgaWRlYWxseSB3ZSB3b3VsZCBhbGxvdyBhcmJpdHJhcnkgc2VsZWN0aW9uIGluc2lkZSBjb21i
aW5lZAorICAgICAgICB0ZXh0LiBDdXJyZW50bHkgd2UgZG8gbm90IHN1cHBvcnQgc2VsZWN0aW9u
IG9mIGNvbWJpbmVkIHRleHQuIFRvIHNpbXBsaWZ5IHRoZSBwcm9jZXNzIG9mCisgICAgICAgIGFk
ZGluZyBzdXBwb3J0IGZvciBzZWxlY3RpbmcgY29tYmluZWQgdGV4dCB3ZSB3ZSB0cmVhdCBjb21i
aW5lZCB0ZXh0IGFzIGEgc2luZ2xlIHVuaXQuCisgICAgICAgIE9uY2Ugd2UgYXJlIGNvbmZpZGVu
dCB0aGF0IHdlIGNvcnJlY3RseSBpbXBsZW1lbnRlZCBzdWNoIHN1cHBvcnQgd2UgY2FuIHJlLWV2
YWx1YXRlCisgICAgICAgIGFsbG93aW5nIGFyYml0cmFyeSBzZWxlY3Rpb24gb2YgY29tYmluZWQg
dGV4dC4KKworICAgICAgICBXaXRoIHJlZ2FyZHMgdG8gdHJlYXRpbmcgd29yZCBoYWx2ZSBwbHVz
IGh5cGhlbiBhcyBhIHNpbmdsZSB1bml0LiBUaGlzIG1hdGNoZXMgdGhlIGV4cGVjdGF0aW9uCisg
ICAgICAgIG9mIGEgcGVyc29uIGZhbWlsaWFyIHdpdGggdGhlIHdyaXRpbmcgc3R5bGUgcnVsZXMg
Zm9yIGJyZWFraW5nIGEgd29yZCBiZXR3ZWVuIHN5bGxhYmxlcyB3aXRoCisgICAgICAgIGEgaHlw
aGVuIHdoZW4gZm9yY2VkIHRvIGxpbmUgd3JhcCBpdC4gVGhhdCBpcywgdGhlIGh5cGhlbiBpcyBj
b25zaWRlcmVkIHBhcnQgb2YgdGhlIHdvcmQgYW5kCisgICAgICAgIHNob3VsZCByZW5kZXIgaW4g
dGhlIHNhbWUgdHlwb2dyYXBoeSBhcyB0aGUgd29yZCBpdHNlbGYuIEN1cnJlbnRseSB3ZSBkbyBu
b3QgY29uc2lkZXIgdGhlIGh5cGhlbgorICAgICAgICBhcyBwYXJ0IG9mIHRoZSB3b3JkIGFuZCB0
aGlzIGlzIHZpc3VhbGx5IG9ic2VydmFibGUgd2hlbiBwYWludGluZyBkb2N1bWVudCBtYXJrZXJz
LiBGb3IgZXhhbXBsZSwgCisgICAgICAgIGEgbWlzc3BlbGxlZCB3b3JkIHRoYXQgaXMgYnJva2Vu
IGFuZCBoeXBoZW5hdGVkIHRvIHNwYW4gYWNyb3NzIHR3byBsaW5lcyBoYXMgaXRzIHNwZWxsaW5n
IG1hcmtlcgorICAgICAgICB0ZXh0IGRlY29yYXRpb24gcGFpbnRlZCBvdmVyIHRoZSB3b3JkIGhh
bHZlcywgbm90IHRoZSBoeXBoZW4gKGJlY2F1c2UgdGhlIGh5cGhlbiBpcyBub3QgY29uc2lkZXJl
ZAorICAgICAgICBwYXJ0IG9mIHRoZSB3b3JkKS4gQXMgYWZvcmVtZW50aW9uZWQsIHRoaXMgZGlz
YWdyZWVzIHdpdGggYSBwZXJzb24ncyBleHBlY3RhdGlvbiBvZiBob3cgdGhlIGh5cGhlbgorICAg
ICAgICBiZWhhdmVzLiBNb3Jlb3ZlciwgaXQgbWFrZXMgV2ViS2l0J3MgcmVuZGVyaW5nIG9mIHNw
ZWxsaW5nIGVycm9ycywgYXV0b2NvcnJlY3RlZCB0ZXh0LCBhbmQgdGV4dAorICAgICAgICBtYXRj
aGVzIGRpZmZlciBmcm9tIHRoZSByZW5kZXJpbmcgb2YgdGhlc2UgdHJhaXRzIGJ5IEFwcEtpdC4K
KworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZVRleHRCb3g6OmxvY2FsU2VsZWN0aW9uUmVjdCBjb25zdCk6IENvbXB1dGUgdGV4
dCBydW4sIGluY2x1ZGluZyBjb21iaW5lZCB0ZXh0CisgICAgICAgIG9yIGh5cGhlbnMgZHVlIHRv
IGxpbmUgd3JhcHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25z
IGFyZSBjbGFtcGVkIHdpdGgKKyAgICAgICAgcmVzcGVjdCB0byBjb21iaW5lZCB0ZXh0IGFuZCBo
eXBoZW5zIChjb21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24pLiBPbmx5IG1lYXN1cmUg
dGhlCisgICAgICAgIHRleHQgcmVwcmVzZW50ZWQgYnkgdGhlIHNlbGVjdGlvbiBpZiB0aGUgc3Rh
cnQgcG9zaXRpb24gPiAwIG9yIHRoZSBlbmQgcG9zaXRpb24gaXMgbm90IGVxdWFsCisgICAgICAg
IHRvIHRoZSBsZW5ndGggb2YgdGhlIHJ1bi4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRC
b3g6OnBhaW50KTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUgdG8gZml4IHVwIHRoZSBzZWxlY3Rp
b24gc3RhcnQgYW5kCisgICAgICAgIGVuZCBwb3NpdGlvbnMgYmFzZWQgb24gdGhlIHRydW5jYXRp
b24gb2Zmc2V0IGFzIHRoaXMgaXMgZG9uZSBieSBjbGFtcGVkT2Zmc2V0KCksIGNhbGxlZCBieQor
ICAgICAgICBzZWxlY3Rpb25TdGFydEVuZCgpLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4
dEJveDo6Y2xhbXBlZE9mZnNldCBjb25zdCk6IE1vZGlmaWVkIHRvIGFkanVzdCB0aGUgY2xhbXBl
ZCBvZmZzZXQgd2l0aAorICAgICAgICByZXNwZWN0IHRvIHRydW5jYXRpb24gYXMgd2VsbCBhcyB0
cmVhdCBjb21iaW5lZCB0ZXh0IG9yIGEgdHJhaWxpbmcgd29yZCBoYWx2ZSBwbHVzIGh5cGhlbgor
ICAgICAgICBhcyBzaW5nbGUgdW5pdHMuIEFzc2VydCB0aGF0IHdlIGFyZSBub3QgZnVsbHkgdHJ1
bmNhdGVkIGJlY2F1c2UgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0bworICAgICAgICBiZSBjb21w
dXRpbmcgdGhlIGNsYW1wZWQgb2Zmc2V0IGluIHN1Y2ggYSBzaXR1YXRpb24gc2luY2Ugbm90aGlu
ZyBzaG91bGQgYmUgcGFpbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnNl
bGVjdGlvblN0YXJ0RW5kIGNvbnN0KTogTW9kaWZpZWQgdG8gY29tcHV0ZSB0aGUgZW5kIG9mIGFu
IGluc2lkZQorICAgICAgICBzZWxlY3Rpb24gdXNpbmcgY2xhbXBlZE9mZnNldCgpIHRvIGFjY291
bnQgZm9yIHRydW5jYXRpb24sIGNvbWJpbmVkIHRleHQgb3IgYSBoeXBoZW4uIFdlCisgICAgICAg
IGFscmVhZHkgYXJlIHVzaW5nIGNsYW1wZWRPZmZzZXQoKSB3aGVuIGNvbXB1dGluZyB0aGUgc3Rh
cnQgYW5kIGVuZCBwb3NpdGlvbiBmb3IgYWxsIG90aGVyCisgICAgICAgIHNlbGVjdGlvbiBzdGF0
ZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbik6IENv
bXB1dGUgdGV4dCBydW4sIGluY2x1ZGluZyBjb21iaW5lZCB0ZXh0CisgICAgICAgIG9yIGh5cGhl
bnMgZHVlIHRvIGxpbmUgd3JhcHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQg
cG9zaXRpb25zIGFyZSBjbGFtcGVkIHdpdGgKKyAgICAgICAgcmVzcGVjdCB0byBjb21iaW5lZCB0
ZXh0IGFuZCBoeXBoZW5zIChjb21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24pLiBSZW1v
dmUgdW5uZWNlc3NhcnkKKyAgICAgICAgY29kZSB0byBhZGp1c3Qgc2VsZWN0aW9uIGVuZCBwb2lu
dCB3aXRoIHJlc3BlY3QgdG8gdHJ1bmNhdGlvbiwgY29tYmluZWQgdGV4dCwgb3IgYW4gYWRkZWQK
KyAgICAgICAgaHlwaGVuIG5vdyB0aGF0IHNlbGVjdGlvblN0YXJ0RW5kKCkgdGFrZXMgY2FyZSBv
ZiB0aGlzICh2aWEgY2xhbXBlZE9mZnNldCgpKS4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRl
eHRCb3g6OnBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZCk6IENvbXB1dGUgdGV4dCBydW4sIGlu
Y2x1ZGluZyBjb21iaW5lZAorICAgICAgICB0ZXh0IG9yIGh5cGhlbnMgZHVlIHRvIGxpbmUgd3Jh
cHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGFyZSBjbGFt
cGVkCisgICAgICAgIHdpdGggcmVzcGVjdCB0byBjb21iaW5lZCB0ZXh0IGFuZCBoeXBoZW5zIChj
b21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24pLgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcik6IERpdHRvLiBBbHNvIHJlbW92ZSB1bm5l
Y2Vzc2FyeSBjb2RlIHRvIGFkanVzdAorICAgICAgICBlbmQgb2Zmc2V0IG9mIG1hcmtlciB3aXRo
IHJlc3BlY3QgdG8gdHJ1bmNhdGlvbiBhcyBjbGFtcGVkT2Zmc2V0KCkgbm93IGRvZXMgdGhpcyBm
b3IgdXMuCisKIDIwMTctMTAtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSb290SW5saW5lQm94IHNob3VsZCBub3QgaG9sZCBhIGNvbGxlY3Rpb24gb2YgcmF3
IHBvaW50ZXJzIHRvIFJlbmRlckJveApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gMjIyOTU1KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMTYgKzIwNywx
MiBAQCBMYXlvdXRSZWN0IElubGluZVRleHRCb3g6OmxvY2FsU2VsZWN0aW9uCiAgICAgTGF5b3V0
VW5pdCBzZWxlY3Rpb25Ub3AgPSB0aGlzLT5zZWxlY3Rpb25Ub3AoKTsKICAgICBMYXlvdXRVbml0
IHNlbGVjdGlvbkhlaWdodCA9IHRoaXMtPnNlbGVjdGlvbkhlaWdodCgpOwogCi0gICAgLy8gRklY
TUU6IEFkanVzdCBzZWxlY3Rpb24gcmVjdCB3aXRoIHJlc3BlY3QgdG8gY29tYmluZWQgdGV4dC4K
LSAgICBib29sIGlnbm9yZUNvbWJpbmVkVGV4dCA9IHRydWU7Ci0gICAgYXV0byB0ZXh0ID0gdGhp
cy0+dGV4dChpZ25vcmVDb21iaW5lZFRleHQpOworICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQo
KTsKICAgICBUZXh0UnVuIHRleHRSdW4gPSBjcmVhdGVUZXh0UnVuKHRleHQpOwotICAgIC8vIEZJ
WE1FOiBTaG91bGRuJ3Qgd2UgYWRqdXN0IGVQb3MgdG8gdGV4dFJ1bi5sZW5ndGgoKSBpZiBlUG9z
ID09IChtX3RydW5jYXRpb24gIT0gY05vVHJ1bmNhdGlvbiA/IG1fdHJ1bmNhdGlvbiA6IG1fbGVu
KQotICAgIC8vIHNvIHRoYXQgdGhlIHNlbGVjdGlvbiBzcGFucyB0aGUgaHlwZW4vY29tYmluZWQg
dGV4dD8KIAogICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3QoTGF5b3V0
UG9pbnQobG9naWNhbExlZnQoKSwgc2VsZWN0aW9uVG9wKSwgTGF5b3V0U2l6ZShtX2xvZ2ljYWxX
aWR0aCwgc2VsZWN0aW9uSGVpZ2h0KSk7CiAgICAgLy8gQXZvaWQgY29tcHV0aW5nIHRoZSBmb250
IHdpZHRoIHdoZW4gdGhlIGVudGlyZSBsaW5lIGJveCBpcyBzZWxlY3RlZCBhcyBhbiBvcHRpbWl6
YXRpb24uCi0gICAgaWYgKHNQb3MgfHwgZVBvcyAhPSBtX2xlbikKKyAgICBpZiAoc1BvcyB8fCBl
UG9zICE9IHRleHRSdW4ubGVuZ3RoKCkpCiAgICAgICAgIGxpbmVGb250KCkuYWRqdXN0U2VsZWN0
aW9uUmVjdEZvclRleHQodGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc1BvcywgZVBvcyk7CiAgICAg
Ly8gRklYTUU6IFRoZSBjb21wdXRhdGlvbiBvZiB0aGUgc25hcHBlZCBzZWxlY3Rpb24gcmVjdCBk
aWZmZXJzIGZyb20gdGhlIGNvbXB1dGF0aW9uIG9mIHRoaXMgcmVjdAogICAgIC8vIGluIHBhaW50
U2VsZWN0aW9uKCkuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODkxMz4uCkBAIC01MTEsMTEgKzUwNyw2IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWkKICAgICBpZiAoaGF2ZVNlbGVjdGlvbiAmJiAocGFpbnRTZWxlY3RlZFRl
eHRPbmx5IHx8IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSkpCiAgICAgICAgIHN0ZDo6dGll
KHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpID0gc2VsZWN0aW9uU3RhcnRFbmQoKTsKIAot
ICAgIGlmIChtX3RydW5jYXRpb24gIT0gY05vVHJ1bmNhdGlvbikgewotICAgICAgICBzZWxlY3Rp
b25TdGFydCA9IHN0ZDo6bWluKHNlbGVjdGlvblN0YXJ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
bV90cnVuY2F0aW9uKSk7Ci0gICAgICAgIHNlbGVjdGlvbkVuZCA9IHN0ZDo6bWluKHNlbGVjdGlv
bkVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fdHJ1bmNhdGlvbikpOwotICAgIH0KLQogICAg
IGZsb2F0IGVtcGhhc2lzTWFya09mZnNldCA9IDA7CiAgICAgYm9vbCBlbXBoYXNpc01hcmtBYm92
ZTsKICAgICBib29sIGhhc1RleHRFbXBoYXNpcyA9IGVtcGhhc2lzTWFya0V4aXN0c0FuZElzQWJv
dmUobGluZVN0eWxlLCBlbXBoYXNpc01hcmtBYm92ZSk7CkBAIC02MzAsMTQgKzYyMSwyNiBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAKIHVuc2lnbmVkIElubGlu
ZVRleHRCb3g6OmNsYW1wZWRPZmZzZXQodW5zaWduZWQgeCkgY29uc3QKIHsKLSAgICByZXR1cm4g
c3RkOjptYXgoc3RkOjptaW4oeCwgc3RhcnQoKSArIGxlbigpKSwgc3RhcnQoKSkgLSBzdGFydCgp
OworICAgIEFTU0VSVChtX3RydW5jYXRpb24gIT0gY0Z1bGxUcnVuY2F0aW9uKTsKKyAgICB1bnNp
Z25lZCBvZmZzZXQgPSBzdGQ6Om1heChzdGQ6Om1pbih4LCBtX3N0YXJ0ICsgbV9sZW4pLCBtX3N0
YXJ0KSAtIG1fc3RhcnQ7CisgICAgaWYgKG1fdHJ1bmNhdGlvbiAhPSBjTm9UcnVuY2F0aW9uKQor
ICAgICAgICBvZmZzZXQgPSBzdGQ6Om1pbjx1bnNpZ25lZD4ob2Zmc2V0LCBtX3RydW5jYXRpb24p
OworICAgIGVsc2UgaWYgKG9mZnNldCA9PSBtX2xlbikgeworICAgICAgICAvLyBGaXggdXAgdGhl
IG9mZnNldCBpZiB3ZSBhcmUgY29tYmluZWQgdGV4dCBvciBoYXZlIGEgaHlwaGVuLiBXZSB0cmVh
dCBjb21iaW5lZCB0ZXh0IGFzIGEKKyAgICAgICAgLy8gc2luZ2xlIHVuaXQuIFdlIGFsc28gdHJl
YXQgdGhlIGxhc3QgY29kZXBvaW50IGluIHRoaXMgYm94IGFuZCB0aGUgaHlwaGVuIGFzIGEgc2lu
Z2xlIHVuaXQuCisgICAgICAgIGlmIChhdXRvKiBjb21iaW5lZFRleHQgPSB0aGlzLT5jb21iaW5l
ZFRleHQoKSkKKyAgICAgICAgICAgIG9mZnNldCA9IGNvbWJpbmVkVGV4dC0+Y29tYmluZWRTdHJp
bmdGb3JSZW5kZXJpbmcoKS5sZW5ndGgoKTsKKyAgICAgICAgZWxzZSBpZiAoaGFzSHlwaGVuKCkp
CisgICAgICAgICAgICBvZmZzZXQgKz0gbGluZVN0eWxlKCkuaHlwaGVuU3RyaW5nKCkubGVuZ3Ro
KCk7CisgICAgfQorICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKIHN0ZDo6cGFpcjx1bnNpZ25lZCwg
dW5zaWduZWQ+IElubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kKCkgY29uc3QKIHsKICAg
ICBhdXRvIHNlbGVjdGlvblN0YXRlID0gcmVuZGVyZXIoKS5zZWxlY3Rpb25TdGF0ZSgpOwogICAg
IGlmIChzZWxlY3Rpb25TdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkluc2lkZSkKLSAg
ICAgICAgcmV0dXJuIHsgMCwgbV9sZW4gfTsKKyAgICAgICAgcmV0dXJuIHsgMCwgY2xhbXBlZE9m
ZnNldChtX3N0YXJ0ICsgbV9sZW4pIH07CiAgICAgCiAgICAgYXV0byBzdGFydCA9IHJlbmRlcmVy
KCkudmlldygpLnNlbGVjdGlvbigpLnN0YXJ0UG9zaXRpb24oKTsKICAgICBhdXRvIGVuZCA9IHJl
bmRlcmVyKCkudmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CkBAIC02NzUsMTQgKzY3
OCw4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGgKIAogICAgIC8v
IE5vdGUgdGhhdCBpZiB0aGUgdGV4dCBpcyB0cnVuY2F0ZWQsIHdlIGxldCB0aGUgdGhpbmcgYmVp
bmcgcGFpbnRlZCBpbiB0aGUgdHJ1bmNhdGlvbgogICAgIC8vIGRyYXcgaXRzIG93biBoaWdobGln
aHQuCi0KLSAgICAvLyBGSVhNRTogQWRqdXN0IHRleHQgcnVuIGZvciBjb21iaW5lZCB0ZXh0Lgot
ICAgIGJvb2wgaWdub3JlQ29tYmluZWRUZXh0ID0gdHJ1ZTsKLSAgICBhdXRvIHRleHQgPSB0aGlz
LT50ZXh0KGlnbm9yZUNvbWJpbmVkVGV4dCk7CisgICAgYXV0byB0ZXh0ID0gdGhpcy0+dGV4dCgp
OwogICAgIFRleHRSdW4gdGV4dFJ1biA9IGNyZWF0ZVRleHRSdW4odGV4dCk7Ci0gICAgdW5zaWdu
ZWQgZW5kT2ZMaW5lSWdub3JpbmdIeXBoZW5BbmRDb21iaW5lZFRleHQgPSBtX3RydW5jYXRpb24g
IT0gY05vVHJ1bmNhdGlvbiA/IG1fdHJ1bmNhdGlvbiA6IG1fbGVuOwotICAgIGlmIChzZWxlY3Rp
b25FbmQgPT0gZW5kT2ZMaW5lSWdub3JpbmdIeXBoZW5BbmRDb21iaW5lZFRleHQpCi0gICAgICAg
IHNlbGVjdGlvbkVuZCA9IHRleHRSdW4ubGVuZ3RoKCk7IC8vIEV4dGVuZCBzZWxlY3Rpb24gdG8g
aW5jbHVkZSBoeXBoZW4vY29tYmluZWQgdGV4dC4KIAogICAgIGNvbnN0IFJvb3RJbmxpbmVCb3gm
IHJvb3RCb3ggPSByb290KCk7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20gPSByb290
Qm94LnNlbGVjdGlvbkJvdHRvbSgpOwpAQCAtNjkzLDYgKzY5MCw4IEBAIHZvaWQgSW5saW5lVGV4
dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGgKIAogICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVj
dCA9IExheW91dFJlY3QoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRhWSwgbV9s
b2dpY2FsV2lkdGgsIHNlbGVjdGlvbkhlaWdodCk7CiAgICAgbGluZUZvbnQoKS5hZGp1c3RTZWxl
Y3Rpb25SZWN0Rm9yVGV4dCh0ZXh0UnVuLCBzZWxlY3Rpb25SZWN0LCBzZWxlY3Rpb25TdGFydCwg
c2VsZWN0aW9uRW5kKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHBhaW50aW5nIGNvbWJpbmVk
IHRleHQuCiAgICAgY29udGV4dC5maWxsUmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzV2l0aFdy
aXRpbmdEaXJlY3Rpb24oc2VsZWN0aW9uUmVjdCwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmlj
ZVNjYWxlRmFjdG9yKCksIHRleHRSdW4ubHRyKCkpLCBjKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwpAQCAtNzE2LDEyICs3MTUsMTEgQEAgaW5saW5lIHZvaWQgSW5saW5lVGV4
dEJveDo6cGFpbnRUZXh0U3VicgogICAgIExheW91dFVuaXQgZGVsdGFZID0gcmVuZGVyZXIoKS5z
dHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSgpIC0g
bG9naWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wKCk7CiAgICAgTGF5
b3V0UmVjdCBzZWxlY3Rpb25SZWN0ID0gTGF5b3V0UmVjdChib3hPcmlnaW4ueCgpLCBib3hPcmln
aW4ueSgpIC0gZGVsdGFZLCAwLCBzZWxlY3Rpb25IZWlnaHQoKSk7CiAKLSAgICAvLyBGSVhNRTog
QWRqdXN0IHRleHQgcnVuIGZvciBjb21iaW5lZCB0ZXh0IGFuZCBoeXBoZW5hdGlvbi4KLSAgICBi
b29sIGlnbm9yZUNvbWJpbmVkVGV4dCA9IHRydWU7Ci0gICAgYm9vbCBpZ25vcmVIeXBoZW4gPSB0
cnVlOwotICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoaWdub3JlQ29tYmluZWRUZXh0LCBpZ25v
cmVIeXBoZW4pOworICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoKTsKICAgICBUZXh0UnVuIHRl
eHRSdW4gPSBjcmVhdGVUZXh0UnVuKHRleHQpOwogICAgIGxpbmVGb250KCkuYWRqdXN0U2VsZWN0
aW9uUmVjdEZvclRleHQodGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc3RhcnRPZmZzZXQsIGVuZE9m
ZnNldCk7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBwYWludGluZyBjb21iaW5lZCB0ZXh0Lgog
ICAgIGNvbnRleHQuZmlsbFJlY3Qoc25hcFJlY3RUb0RldmljZVBpeGVsc1dpdGhXcml0aW5nRGly
ZWN0aW9uKHNlbGVjdGlvblJlY3QsIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpLCB0ZXh0UnVuLmx0cigpKSwgY29sb3IpOwogfQogCkBAIC04MTIsMTggKzgxMCwxMiBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoCiAgICAgaWYgKCFtYXJr
ZXJTcGFuc1dob2xlQm94KSB7CiAgICAgICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24gPSBjbGFt
cGVkT2Zmc2V0KHN1YnJhbmdlLnN0YXJ0T2Zmc2V0KTsKICAgICAgICAgdW5zaWduZWQgZW5kUG9z
aXRpb24gPSBjbGFtcGVkT2Zmc2V0KHN1YnJhbmdlLmVuZE9mZnNldCk7Ci0gICAgICAgIAotICAg
ICAgICBpZiAobV90cnVuY2F0aW9uICE9IGNOb1RydW5jYXRpb24pCi0gICAgICAgICAgICBlbmRQ
b3NpdGlvbiA9IHN0ZDo6bWluKGVuZFBvc2l0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV90
cnVuY2F0aW9uKSk7CiAKICAgICAgICAgLy8gQ2FsY3VsYXRlIHN0YXJ0ICYgd2lkdGgKLSAgICAg
ICAgLy8gRklYTUU6IEFkanVzdCB0ZXh0IHJ1biBmb3IgY29tYmluZWQgdGV4dCBhbmQgaHlwaGVu
YXRpb24uCi0gICAgICAgIGJvb2wgaWdub3JlQ29tYmluZWRUZXh0ID0gdHJ1ZTsKLSAgICAgICAg
Ym9vbCBpZ25vcmVIeXBoZW4gPSB0cnVlOwogICAgICAgICBpbnQgZGVsdGFZID0gcmVuZGVyZXIo
KS5zdHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSgp
IC0gbG9naWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wKCk7CiAgICAg
ICAgIGludCBzZWxIZWlnaHQgPSBzZWxlY3Rpb25IZWlnaHQoKTsKICAgICAgICAgRmxvYXRQb2lu
dCBzdGFydFBvaW50KGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkgLSBkZWx0YVkpOwotICAg
ICAgICBhdXRvIHRleHQgPSB0aGlzLT50ZXh0KGlnbm9yZUNvbWJpbmVkVGV4dCwgaWdub3JlSHlw
aGVuKTsKKyAgICAgICAgYXV0byB0ZXh0ID0gdGhpcy0+dGV4dCgpOwogICAgICAgICBUZXh0UnVu
IHJ1biA9IGNyZWF0ZVRleHRSdW4odGV4dCk7CiAKICAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rp
b25SZWN0ID0gTGF5b3V0UmVjdChzdGFydFBvaW50LCBGbG9hdFNpemUoMCwgc2VsSGVpZ2h0KSk7
CkBAIC04NzEsNiArODYzLDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERvY3VtZW50TWFy
a2VyKAogICAgICAgICAvLyBJbiBsYXJnZXIgZm9udHMsIHRob3VnaCwgcGxhY2UgdGhlIHVuZGVy
bGluZSB1cCBuZWFyIHRoZSBiYXNlbGluZSB0byBwcmV2ZW50IGEgYmlnIGdhcC4KICAgICAgICAg
dW5kZXJsaW5lT2Zmc2V0ID0gYmFzZWxpbmUgKyAyOwogICAgIH0KKyAgICAvLyBGSVhNRTogU3Vw
cG9ydCBwYWludGluZyBjb21iaW5lZCB0ZXh0LgogICAgIGNvbnRleHQuZHJhd0xpbmVGb3JEb2N1
bWVudE1hcmtlcihGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBzdGFydCwgYm94T3JpZ2luLnko
KSArIHVuZGVybGluZU9mZnNldCksIHdpZHRoLCBsaW5lU3R5bGVGb3JTdWJyYW5nZVR5cGUoc3Vi
cmFuZ2UudHlwZSkpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323183</attachid>
            <date>2017-10-09 10:08:41 -0700</date>
            <delta_ts>2017-10-12 09:23:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178032-20171009100840.patch</filename>
            <type>text/plain</type>
            <size>11998</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzMDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ViOTdmZDQwNjNmNmRj
OGQ5ZjZmNWFiNDhkZDA2M2NkYjVhM2NiYS4uZmZjZDQwOGJjNjM2NDYwMmRjZWU3ZmY3YjljYWJk
YWUzYzJiOTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEwLTA5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCBJbmxpbmVUZXh0
Qm94OjpjbGFtcE9mZnNldCgpIGFib3V0IGNvbWJpbmVkIHRleHQgYW5kIGh5cGhlbmF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmVhdCBjb21i
aW5lZCB0ZXh0IGFuZCB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSB3b3JkIGhhbHZlIHBsdXMgaHlw
aGVuIGFzIHNpbmdsZSB1bml0cy4KKworICAgICAgICBXaXRoIHJlZ2FyZHMgdG8gY29tYmluZWQg
dGV4dCwgaWRlYWxseSB3ZSB3b3VsZCBhbGxvdyBhcmJpdHJhcnkgc2VsZWN0aW9uIGluc2lkZSBj
b21iaW5lZAorICAgICAgICB0ZXh0LiBDdXJyZW50bHkgd2UgZG8gbm90IHN1cHBvcnQgc2VsZWN0
aW9uIG9mIGNvbWJpbmVkIHRleHQuIFRvIHNpbXBsaWZ5IHRoZSBwcm9jZXNzIG9mCisgICAgICAg
IGFkZGluZyBzdXBwb3J0IGZvciBzZWxlY3RpbmcgY29tYmluZWQgdGV4dCB3ZSB0cmVhdCBjb21i
aW5lZCB0ZXh0IGFzIGEgc2luZ2xlIHVuaXQuIE9uY2UKKyAgICAgICAgd2UgYXJlIGNvbmZpZGVu
dCB0aGF0IHdlIGNvcnJlY3RseSBpbXBsZW1lbnRlZCBzdWNoIHN1cHBvcnQgd2UgY2FuIHJlLWV2
YWx1YXRlIGFsbG93aW5nCisgICAgICAgIGFyYml0cmFyeSBzZWxlY3Rpb24gb2YgY29tYmluZWQg
dGV4dC4KKworICAgICAgICBXaXRoIHJlZ2FyZHMgdG8gdHJlYXRpbmcgdGhlIGxhc3QgY2hhcmFj
dGVyIG9mIGEgd29yZCBoYWx2ZSBwbHVzIGh5cGhlbiBhcyBhIHNpbmdsZSB1bml0LgorICAgICAg
ICBUaGlzIHBhdGNoIGV4dGVuZHMgdGhlIHRhcmdldGVkIGZpeCBtYWRlIGZvciBkb2N1bWVudCBt
YXJrZXJzIGluIHIyMjMwMTMgdG8gYWxsIGNvZGUgdGhhdAorICAgICAgICBtYWtlcyB1c2Ugb2Yg
Y2xhbXBlZCBvZmZzZXRzIGFzIGEgcmVzdWx0IHRoZSBzZWxlY3Rpb24gcmVjdCBmb3IgaW5saW5l
IGJveGVzIG1vcmUgYWNjdXJhdGVseQorICAgICAgICByZWZsZWN0IHRoZSByZWN0YW5nbGUocykg
dGhhdCBtYWtlIHVwIHRoZSBwYWludGVkIHNlbGVjdGlvbi4gVGhpcyBpcyBhIHN0ZXAgdG93YXJk
cyByZWNvbmNpbGluZworICAgICAgICB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjb21wdXRh
dGlvbiBvZiB0aGUgcmVjdGFuZ2xlIHRoYXQgcmVwcmVzZW50cyBhbiBhcmJpdHJhcnkKKyAgICAg
ICAgc2VsZWN0aW9uIGFuZCB0aGUgY29kZSB0aGF0IHBhaW50cyB0aGUgYWN0aXZlIHNlbGVjdGlv
biBhcyBwYXJ0IG9mIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4
OTEzPi4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZVRleHRCb3g6OmxvY2FsU2VsZWN0aW9uUmVjdCBjb25zdCk6IENvbXB1
dGUgdGV4dCBydW4sIGluY2x1ZGluZyBjb21iaW5lZCB0ZXh0CisgICAgICAgIG9yIGh5cGhlbnMg
ZHVlIHRvIGxpbmUgd3JhcHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgcG9z
aXRpb25zIGFyZSBjbGFtcGVkIHdpdGgKKyAgICAgICAgcmVzcGVjdCB0byBjb21iaW5lZCB0ZXh0
IGFuZCBoeXBoZW5zIChjb21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24pLiBPbmx5IG1l
YXN1cmUgdGhlCisgICAgICAgIHRleHQgcmVwcmVzZW50ZWQgYnkgdGhlIHNlbGVjdGlvbiBpZiB0
aGUgc3RhcnQgcG9zaXRpb24gPiAwIG9yIHRoZSBlbmQgcG9zaXRpb24gaXMgbm90IGVxdWFsCisg
ICAgICAgIHRvIHRoZSBsZW5ndGggb2YgdGhlIHJ1bi4KKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZVRleHRCb3g6OnBhaW50KTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUgdG8gZml4IHVwIHRoZSBz
ZWxlY3Rpb24gc3RhcnQgYW5kCisgICAgICAgIGVuZCBwb3NpdGlvbnMgYmFzZWQgb24gdGhlIHRy
dW5jYXRpb24gb2Zmc2V0IGFzIHRoaXMgaXMgZG9uZSBieSBjbGFtcGVkT2Zmc2V0KCksIGNhbGxl
ZCBieQorICAgICAgICBzZWxlY3Rpb25TdGFydEVuZCgpLgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lVGV4dEJveDo6Y2xhbXBlZE9mZnNldCBjb25zdCk6IE1vZGlmaWVkIHRvIGFkanVzdCB0aGUg
Y2xhbXBlZCBvZmZzZXQgd2l0aAorICAgICAgICByZXNwZWN0IHRvIHRydW5jYXRpb24gYXMgd2Vs
bCBhcyB0cmVhdCBjb21iaW5lZCB0ZXh0IG9yIGEgdHJhaWxpbmcgd29yZCBoYWx2ZSBwbHVzIGh5
cGhlbgorICAgICAgICBhcyBzaW5nbGUgdW5pdHMuIEFzc2VydCB0aGF0IHdlIGFyZSBub3QgZnVs
bHkgdHJ1bmNhdGVkIGJlY2F1c2UgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0bworICAgICAgICBi
ZSBjb21wdXRpbmcgdGhlIGNsYW1wZWQgb2Zmc2V0IGluIHN1Y2ggYSBzaXR1YXRpb24gc2luY2Ug
bm90aGluZyBzaG91bGQgYmUgcGFpbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRC
b3g6OnNlbGVjdGlvblN0YXJ0RW5kIGNvbnN0KTogTW9kaWZpZWQgdG8gY29tcHV0ZSB0aGUgZW5k
IG9mIGFuIGluc2lkZQorICAgICAgICBzZWxlY3Rpb24gdXNpbmcgY2xhbXBlZE9mZnNldCgpIHRv
IGFjY291bnQgZm9yIHRydW5jYXRpb24sIGNvbWJpbmVkIHRleHQgb3IgYSBoeXBoZW4uIFdlCisg
ICAgICAgIGFscmVhZHkgYXJlIHVzaW5nIGNsYW1wZWRPZmZzZXQoKSB3aGVuIGNvbXB1dGluZyB0
aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbiBmb3IgYWxsIG90aGVyCisgICAgICAgIHNlbGVjdGlv
biBzdGF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVjdGlv
bik6IENvbXB1dGUgdGV4dCBydW4sIGluY2x1ZGluZyBjb21iaW5lZCB0ZXh0CisgICAgICAgIG9y
IGh5cGhlbnMgZHVlIHRvIGxpbmUgd3JhcHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFu
ZCBlbmQgcG9zaXRpb25zIGFyZSBjbGFtcGVkIHdpdGgKKyAgICAgICAgcmVzcGVjdCB0byBjb21i
aW5lZCB0ZXh0IGFuZCBoeXBoZW5zIChjb21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24p
LiBSZW1vdmUgdW5uZWNlc3NhcnkKKyAgICAgICAgY29kZSB0byBhZGp1c3Qgc2VsZWN0aW9uIGVu
ZCBwb2ludCB3aXRoIHJlc3BlY3QgdG8gdHJ1bmNhdGlvbiwgY29tYmluZWQgdGV4dCwgb3IgYW4g
YWRkZWQKKyAgICAgICAgaHlwaGVuIG5vdyB0aGF0IHNlbGVjdGlvblN0YXJ0RW5kKCkgdGFrZXMg
Y2FyZSBvZiB0aGlzICh2aWEgY2xhbXBlZE9mZnNldCgpKS4KKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZVRleHRCb3g6OnBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZCk6IENvbXB1dGUgdGV4dCBy
dW4sIGluY2x1ZGluZyBjb21iaW5lZAorICAgICAgICB0ZXh0IG9yIGh5cGhlbnMgZHVlIHRvIGxp
bmUgd3JhcHBpbmcgbm93IHRoYXQgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGFy
ZSBjbGFtcGVkCisgICAgICAgIHdpdGggcmVzcGVjdCB0byBjb21iaW5lZCB0ZXh0IGFuZCBoeXBo
ZW5zIChjb21wdXRlZCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24pLgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcik6IENvbXB1dGUgdGV4dCBydW4s
IGluY2x1ZGluZyBjb21iaW5lZCB0ZXh0IG5vdworICAgICAgICB0aGF0IHNwZWNpZmllZCBzdGFy
dCBhbmQgZW5kIHBvc2l0aW9ucyBhcmUgY2xhbXBlZCB3aXRoIHJlc3BlY3QgdG8gY29tYmluZWQg
dGV4dCAoY29tcHV0ZWQgZWFybGllciBpbiB0aGlzIGZ1bmN0aW9uKS4KKyAgICAgICAgQWxzbyBy
ZW1vdmUgdW5uZWNlc3NhcnkgY29kZSB0byBhZGp1c3QgZW5kIG9mZnNldCBvZiB0aGUgbWFya2Vy
IHdpdGggcmVzcGVjdCB0byB0cnVuY2F0aW9uCisgICAgICAgIGFuZCBsZW5ndGggb2YgdGhlIHRl
eHQgcnVuIGFzIGNsYW1wZWRPZmZzZXQoKSBub3cgZG9lcyB0aGlzIGZvciB1cy4KKwogMjAxNy0x
MC0wOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdW0dUS10gUHJvcGFnYXRlIGxpYmVwb3h5IGNvbXBpbGVyIGZsYWdzIG9idGFpbmVk
IGZyb20gcGtnLWNvbmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCmluZGV4IGQ4MDBiMGE4YTVmZGVkYzlhMDM3M2M2NGE0YzAxMTdkMjRiZTU1YWMuLjEwOTNj
OTBiZmY1ZDNiYjVmYWVjZTMxMDM2ZTIxM2I2MzVhODZhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTIwNywxNiArMjA3LDEyIEBAIExheW91dFJl
Y3QgSW5saW5lVGV4dEJveDo6bG9jYWxTZWxlY3Rpb25SZWN0KHVuc2lnbmVkIHN0YXJ0UG9zLCB1
bnNpZ25lZCBlbmRQb3MpCiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AgPSB0aGlzLT5zZWxl
Y3Rpb25Ub3AoKTsKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkhlaWdodCA9IHRoaXMtPnNlbGVj
dGlvbkhlaWdodCgpOwogCi0gICAgLy8gRklYTUU6IEFkanVzdCBzZWxlY3Rpb24gcmVjdCB3aXRo
IHJlc3BlY3QgdG8gY29tYmluZWQgdGV4dC4KLSAgICBib29sIGlnbm9yZUNvbWJpbmVkVGV4dCA9
IHRydWU7Ci0gICAgYXV0byB0ZXh0ID0gdGhpcy0+dGV4dChpZ25vcmVDb21iaW5lZFRleHQpOwor
ICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoKTsKICAgICBUZXh0UnVuIHRleHRSdW4gPSBjcmVh
dGVUZXh0UnVuKHRleHQpOwotICAgIC8vIEZJWE1FOiBTaG91bGRuJ3Qgd2UgYWRqdXN0IGVQb3Mg
dG8gdGV4dFJ1bi5sZW5ndGgoKSBpZiBlUG9zID09IChtX3RydW5jYXRpb24gIT0gY05vVHJ1bmNh
dGlvbiA/IG1fdHJ1bmNhdGlvbiA6IG1fbGVuKQotICAgIC8vIHNvIHRoYXQgdGhlIHNlbGVjdGlv
biBzcGFucyB0aGUgaHlwZW4vY29tYmluZWQgdGV4dD8KIAogICAgIExheW91dFJlY3Qgc2VsZWN0
aW9uUmVjdCA9IExheW91dFJlY3QoTGF5b3V0UG9pbnQobG9naWNhbExlZnQoKSwgc2VsZWN0aW9u
VG9wKSwgTGF5b3V0U2l6ZShtX2xvZ2ljYWxXaWR0aCwgc2VsZWN0aW9uSGVpZ2h0KSk7CiAgICAg
Ly8gQXZvaWQgY29tcHV0aW5nIHRoZSBmb250IHdpZHRoIHdoZW4gdGhlIGVudGlyZSBsaW5lIGJv
eCBpcyBzZWxlY3RlZCBhcyBhbiBvcHRpbWl6YXRpb24uCi0gICAgaWYgKHNQb3MgfHwgZVBvcyAh
PSBtX2xlbikKKyAgICBpZiAoc1BvcyB8fCBlUG9zICE9IHRleHRSdW4ubGVuZ3RoKCkpCiAgICAg
ICAgIGxpbmVGb250KCkuYWRqdXN0U2VsZWN0aW9uUmVjdEZvclRleHQodGV4dFJ1biwgc2VsZWN0
aW9uUmVjdCwgc1BvcywgZVBvcyk7CiAgICAgLy8gRklYTUU6IFRoZSBjb21wdXRhdGlvbiBvZiB0
aGUgc25hcHBlZCBzZWxlY3Rpb24gcmVjdCBkaWZmZXJzIGZyb20gdGhlIGNvbXB1dGF0aW9uIG9m
IHRoaXMgcmVjdAogICAgIC8vIGluIHBhaW50U2VsZWN0aW9uKCkuIFNlZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODkxMz4uCkBAIC01MTEsMTEgKzUwNyw2IEBA
IHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCwKICAgICBpZiAoaGF2ZVNlbGVjdGlvbiAmJiAocGFpbnRT
ZWxlY3RlZFRleHRPbmx5IHx8IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSkpCiAgICAgICAg
IHN0ZDo6dGllKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpID0gc2VsZWN0aW9uU3RhcnRF
bmQoKTsKIAotICAgIGlmIChtX3RydW5jYXRpb24gIT0gY05vVHJ1bmNhdGlvbikgewotICAgICAg
ICBzZWxlY3Rpb25TdGFydCA9IHN0ZDo6bWluKHNlbGVjdGlvblN0YXJ0LCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV90cnVuY2F0aW9uKSk7Ci0gICAgICAgIHNlbGVjdGlvbkVuZCA9IHN0ZDo6bWlu
KHNlbGVjdGlvbkVuZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fdHJ1bmNhdGlvbikpOwotICAg
IH0KLQogICAgIGZsb2F0IGVtcGhhc2lzTWFya09mZnNldCA9IDA7CiAgICAgYm9vbCBlbXBoYXNp
c01hcmtBYm92ZTsKICAgICBib29sIGhhc1RleHRFbXBoYXNpcyA9IGVtcGhhc2lzTWFya0V4aXN0
c0FuZElzQWJvdmUobGluZVN0eWxlLCBlbXBoYXNpc01hcmtBYm92ZSk7CkBAIC02MzAsMTQgKzYy
MSwyNiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAKIHVuc2lnbmVkIElubGluZVRleHRCb3g6
OmNsYW1wZWRPZmZzZXQodW5zaWduZWQgeCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RkOjptYXgo
c3RkOjptaW4oeCwgc3RhcnQoKSArIGxlbigpKSwgc3RhcnQoKSkgLSBzdGFydCgpOworICAgIEFT
U0VSVChtX3RydW5jYXRpb24gIT0gY0Z1bGxUcnVuY2F0aW9uKTsKKyAgICB1bnNpZ25lZCBvZmZz
ZXQgPSBzdGQ6Om1heChzdGQ6Om1pbih4LCBtX3N0YXJ0ICsgbV9sZW4pLCBtX3N0YXJ0KSAtIG1f
c3RhcnQ7CisgICAgaWYgKG1fdHJ1bmNhdGlvbiAhPSBjTm9UcnVuY2F0aW9uKQorICAgICAgICBv
ZmZzZXQgPSBzdGQ6Om1pbjx1bnNpZ25lZD4ob2Zmc2V0LCBtX3RydW5jYXRpb24pOworICAgIGVs
c2UgaWYgKG9mZnNldCA9PSBtX2xlbikgeworICAgICAgICAvLyBGaXggdXAgdGhlIG9mZnNldCBp
ZiB3ZSBhcmUgY29tYmluZWQgdGV4dCBvciBoYXZlIGEgaHlwaGVuLiBXZSB0cmVhdCBjb21iaW5l
ZCB0ZXh0IGFzIGEKKyAgICAgICAgLy8gc2luZ2xlIHVuaXQuIFdlIGFsc28gdHJlYXQgdGhlIGxh
c3QgY29kZXBvaW50IGluIHRoaXMgYm94IGFuZCB0aGUgaHlwaGVuIGFzIGEgc2luZ2xlIHVuaXQu
CisgICAgICAgIGlmIChhdXRvKiBjb21iaW5lZFRleHQgPSB0aGlzLT5jb21iaW5lZFRleHQoKSkK
KyAgICAgICAgICAgIG9mZnNldCA9IGNvbWJpbmVkVGV4dC0+Y29tYmluZWRTdHJpbmdGb3JSZW5k
ZXJpbmcoKS5sZW5ndGgoKTsKKyAgICAgICAgZWxzZSBpZiAoaGFzSHlwaGVuKCkpCisgICAgICAg
ICAgICBvZmZzZXQgKz0gbGluZVN0eWxlKCkuaHlwaGVuU3RyaW5nKCkubGVuZ3RoKCk7CisgICAg
fQorICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+
IElubGluZVRleHRCb3g6OnNlbGVjdGlvblN0YXJ0RW5kKCkgY29uc3QKIHsKICAgICBhdXRvIHNl
bGVjdGlvblN0YXRlID0gcmVuZGVyZXIoKS5zZWxlY3Rpb25TdGF0ZSgpOwogICAgIGlmIChzZWxl
Y3Rpb25TdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkluc2lkZSkKLSAgICAgICAgcmV0
dXJuIHsgMCwgbV9sZW4gfTsKKyAgICAgICAgcmV0dXJuIHsgMCwgY2xhbXBlZE9mZnNldChtX3N0
YXJ0ICsgbV9sZW4pIH07CiAgICAgCiAgICAgYXV0byBzdGFydCA9IHJlbmRlcmVyKCkudmlldygp
LnNlbGVjdGlvbigpLnN0YXJ0UG9zaXRpb24oKTsKICAgICBhdXRvIGVuZCA9IHJlbmRlcmVyKCku
dmlldygpLnNlbGVjdGlvbigpLmVuZFBvc2l0aW9uKCk7CkBAIC02NzUsMTQgKzY3OCw4IEBAIHZv
aWQgSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFBvaW50JiBiCiAKICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlIHRleHQgaXMg
dHJ1bmNhdGVkLCB3ZSBsZXQgdGhlIHRoaW5nIGJlaW5nIHBhaW50ZWQgaW4gdGhlIHRydW5jYXRp
b24KICAgICAvLyBkcmF3IGl0cyBvd24gaGlnaGxpZ2h0LgotCi0gICAgLy8gRklYTUU6IEFkanVz
dCB0ZXh0IHJ1biBmb3IgY29tYmluZWQgdGV4dC4KLSAgICBib29sIGlnbm9yZUNvbWJpbmVkVGV4
dCA9IHRydWU7Ci0gICAgYXV0byB0ZXh0ID0gdGhpcy0+dGV4dChpZ25vcmVDb21iaW5lZFRleHQp
OworICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoKTsKICAgICBUZXh0UnVuIHRleHRSdW4gPSBj
cmVhdGVUZXh0UnVuKHRleHQpOwotICAgIHVuc2lnbmVkIGVuZE9mTGluZUlnbm9yaW5nSHlwaGVu
QW5kQ29tYmluZWRUZXh0ID0gbV90cnVuY2F0aW9uICE9IGNOb1RydW5jYXRpb24gPyBtX3RydW5j
YXRpb24gOiBtX2xlbjsKLSAgICBpZiAoc2VsZWN0aW9uRW5kID09IGVuZE9mTGluZUlnbm9yaW5n
SHlwaGVuQW5kQ29tYmluZWRUZXh0KQotICAgICAgICBzZWxlY3Rpb25FbmQgPSB0ZXh0UnVuLmxl
bmd0aCgpOyAvLyBFeHRlbmQgc2VsZWN0aW9uIHRvIGluY2x1ZGUgaHlwaGVuL2NvbWJpbmVkIHRl
eHQuCiAKICAgICBjb25zdCBSb290SW5saW5lQm94JiByb290Qm94ID0gcm9vdCgpOwogICAgIExh
eW91dFVuaXQgc2VsZWN0aW9uQm90dG9tID0gcm9vdEJveC5zZWxlY3Rpb25Cb3R0b20oKTsKQEAg
LTY5Myw2ICs2OTAsOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50U2VsZWN0aW9uKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYgogCiAgICAgTGF5b3V0UmVj
dCBzZWxlY3Rpb25SZWN0ID0gTGF5b3V0UmVjdChib3hPcmlnaW4ueCgpLCBib3hPcmlnaW4ueSgp
IC0gZGVsdGFZLCBtX2xvZ2ljYWxXaWR0aCwgc2VsZWN0aW9uSGVpZ2h0KTsKICAgICBsaW5lRm9u
dCgpLmFkanVzdFNlbGVjdGlvblJlY3RGb3JUZXh0KHRleHRSdW4sIHNlbGVjdGlvblJlY3QsIHNl
bGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgcGFp
bnRpbmcgY29tYmluZWQgdGV4dC4KICAgICBjb250ZXh0LmZpbGxSZWN0KHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHNXaXRoV3JpdGluZ0RpcmVjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJlcigpLmRv
Y3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgdGV4dFJ1bi5sdHIoKSksIGMpOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CkBAIC03MTYsMTIgKzcxNSwxMSBAQCBpbmxpbmUg
dm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFRleHRTdWJyYW5nZUJhY2tncm91bmQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LAogICAgIExheW91dFVuaXQgZGVsdGFZID0gcmVuZGVyZXIoKS5zdHls
ZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSgpIC0gbG9n
aWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wKCk7CiAgICAgTGF5b3V0
UmVjdCBzZWxlY3Rpb25SZWN0ID0gTGF5b3V0UmVjdChib3hPcmlnaW4ueCgpLCBib3hPcmlnaW4u
eSgpIC0gZGVsdGFZLCAwLCBzZWxlY3Rpb25IZWlnaHQoKSk7CiAKLSAgICAvLyBGSVhNRTogQWRq
dXN0IHRleHQgcnVuIGZvciBjb21iaW5lZCB0ZXh0IGFuZCBoeXBoZW5hdGlvbi4KLSAgICBib29s
IGlnbm9yZUNvbWJpbmVkVGV4dCA9IHRydWU7Ci0gICAgYm9vbCBpZ25vcmVIeXBoZW4gPSB0cnVl
OwotICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoaWdub3JlQ29tYmluZWRUZXh0LCBpZ25vcmVI
eXBoZW4pOworICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoKTsKICAgICBUZXh0UnVuIHRleHRS
dW4gPSBjcmVhdGVUZXh0UnVuKHRleHQpOwogICAgIGxpbmVGb250KCkuYWRqdXN0U2VsZWN0aW9u
UmVjdEZvclRleHQodGV4dFJ1biwgc2VsZWN0aW9uUmVjdCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCk7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBwYWludGluZyBjb21iaW5lZCB0ZXh0LgogICAg
IGNvbnRleHQuZmlsbFJlY3Qoc25hcFJlY3RUb0RldmljZVBpeGVsc1dpdGhXcml0aW5nRGlyZWN0
aW9uKHNlbGVjdGlvblJlY3QsIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3Rv
cigpLCB0ZXh0UnVuLmx0cigpKSwgY29sb3IpOwogfQogCkBAIC04MTMsMjAgKzgxMSwxNSBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaQogICAgICAgICB1bnNpZ25lZCBzdGFydFBvc2l0aW9uID0g
Y2xhbXBlZE9mZnNldChzdWJyYW5nZS5zdGFydE9mZnNldCk7CiAgICAgICAgIHVuc2lnbmVkIGVu
ZFBvc2l0aW9uID0gY2xhbXBlZE9mZnNldChzdWJyYW5nZS5lbmRPZmZzZXQpOwogCi0gICAgICAg
IGlmIChtX3RydW5jYXRpb24gIT0gY05vVHJ1bmNhdGlvbikKLSAgICAgICAgICAgIGVuZFBvc2l0
aW9uID0gc3RkOjptaW4oZW5kUG9zaXRpb24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3RydW5j
YXRpb24pKTsKLQogICAgICAgICAvLyBDYWxjdWxhdGUgc3RhcnQgJiB3aWR0aAotICAgICAgICAv
LyBGSVhNRTogQWRqdXN0IHRleHQgcnVuIGZvciBjb21iaW5lZCB0ZXh0LgotICAgICAgICBib29s
IGlnbm9yZUNvbWJpbmVkVGV4dCA9IHRydWU7CiAgICAgICAgIGludCBkZWx0YVkgPSByZW5kZXJl
cigpLnN0eWxlKCkuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpID8gc2VsZWN0aW9uQm90dG9t
KCkgLSBsb2dpY2FsQm90dG9tKCkgOiBsb2dpY2FsVG9wKCkgLSBzZWxlY3Rpb25Ub3AoKTsKICAg
ICAgICAgaW50IHNlbEhlaWdodCA9IHNlbGVjdGlvbkhlaWdodCgpOwogICAgICAgICBGbG9hdFBv
aW50IHN0YXJ0UG9pbnQoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRhWSk7Ci0g
ICAgICAgIGF1dG8gdGV4dCA9IHRoaXMtPnRleHQoaWdub3JlQ29tYmluZWRUZXh0KTsKKyAgICAg
ICAgYXV0byB0ZXh0ID0gdGhpcy0+dGV4dCgpOwogICAgICAgICBUZXh0UnVuIHJ1biA9IGNyZWF0
ZVRleHRSdW4odGV4dCk7CiAKICAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0ID0gTGF5
b3V0UmVjdChzdGFydFBvaW50LCBGbG9hdFNpemUoMCwgc2VsSGVpZ2h0KSk7Ci0gICAgICAgIGxp
bmVGb250KCkuYWRqdXN0U2VsZWN0aW9uUmVjdEZvclRleHQocnVuLCBzZWxlY3Rpb25SZWN0LCBz
dGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbiA+PSBsZW4oKSA/IHJ1bi5sZW5ndGgoKSA6IGVuZFBv
c2l0aW9uKTsKKyAgICAgICAgbGluZUZvbnQoKS5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9yVGV4dChy
dW4sIHNlbGVjdGlvblJlY3QsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKICAgICAgICAg
SW50UmVjdCBtYXJrZXJSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChzZWxlY3Rpb25SZWN0KTsKICAg
ICAgICAgc3RhcnQgPSBtYXJrZXJSZWN0LngoKSAtIHN0YXJ0UG9pbnQueCgpOwogICAgICAgICB3
aWR0aCA9IG1hcmtlclJlY3Qud2lkdGgoKTsKQEAgLTg3MCw2ICs4NjMsNyBAQCB2b2lkIElubGlu
ZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFBvaQogICAgICAgICAvLyBJbiBsYXJnZXIgZm9udHMsIHRob3VnaCwgcGxhY2Ug
dGhlIHVuZGVybGluZSB1cCBuZWFyIHRoZSBiYXNlbGluZSB0byBwcmV2ZW50IGEgYmlnIGdhcC4K
ICAgICAgICAgdW5kZXJsaW5lT2Zmc2V0ID0gYmFzZWxpbmUgKyAyOwogICAgIH0KKyAgICAvLyBG
SVhNRTogU3VwcG9ydCBwYWludGluZyBjb21iaW5lZCB0ZXh0LgogICAgIGNvbnRleHQuZHJhd0xp
bmVGb3JEb2N1bWVudE1hcmtlcihGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBzdGFydCwgYm94
T3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCksIHdpZHRoLCBsaW5lU3R5bGVGb3JTdWJyYW5n
ZVR5cGUoc3VicmFuZ2UudHlwZSkpOwogfQogCg==
</data>
<flag name="review"
          id="342962"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>