<?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>157302</bug_id>
          
          <creation_ts>2016-05-02 23:38:37 -0700</creation_ts>
          <short_desc>[TexMap] Clean up TextureMapperShaderProgram</short_desc>
          <delta_ts>2016-05-04 23:42:01 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1189690</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-02 23:38:37 -0700</bug_when>
    <thetext>[TexMap] Clean up TextureMapperShaderProgram</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189691</commentid>
    <comment_count>1</comment_count>
      <attachid>277983</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-02 23:56:46 -0700</bug_when>
    <thetext>Created attachment 277983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189720</commentid>
    <comment_count>2</comment_count>
      <attachid>277983</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-03 03:54:28 -0700</bug_when>
    <thetext>Comment on attachment 277983
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:77
&gt;              HashMap&lt;TextureMapperShaderProgram::Options, RefPtr&lt;TextureMapperShaderProgram&gt; &gt;::AddResult result = m_programs.add(options, nullptr);
&gt;              if (result.isNewEntry)
&gt; -                result.iterator-&gt;value = TextureMapperShaderProgram::create(m_context, options);
&gt; +                result.iterator-&gt;value = TextureMapperShaderProgram::create(*m_context, options);
&gt;  
&gt;              return result.iterator-&gt;value;

This will be easier to read using auto for the AddResult and we could probably use ::ensure() instead of ::add()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189992</commentid>
    <comment_count>3</comment_count>
      <attachid>277983</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 00:23:08 -0700</bug_when>
    <thetext>Comment on attachment 277983
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:77
&gt;&gt;              return result.iterator-&gt;value;
&gt; 
&gt; This will be easier to read using auto for the AddResult and we could probably use ::ensure() instead of ::add()

This was done in bug #157303.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189993</commentid>
    <comment_count>4</comment_count>
      <attachid>278068</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 00:32:07 -0700</bug_when>
    <thetext>Created attachment 278068
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190017</commentid>
    <comment_count>5</comment_count>
      <attachid>278073</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 02:59:43 -0700</bug_when>
    <thetext>Created attachment 278073
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190331</commentid>
    <comment_count>6</comment_count>
      <attachid>278160</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 23:01:28 -0700</bug_when>
    <thetext>Created attachment 278160
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190336</commentid>
    <comment_count>7</comment_count>
      <attachid>278160</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 23:41:53 -0700</bug_when>
    <thetext>Comment on attachment 278160
Patch for landing

Clearing flags on attachment: 278160

Committed r200451: &lt;http://trac.webkit.org/changeset/200451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190337</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 23:42:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277983</attachid>
            <date>2016-05-02 23:56:46 -0700</date>
            <delta_ts>2016-05-04 00:31:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157302-20160502235723.patch</filename>
            <type>text/plain</type>
            <size>13122</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M5NDhiYTJiMGFjYTUz
Y2FhZGViMDlmZDE5NjkxOGNiMTg1NjA0Zi4uNGNjODA5NjIwZTFjODI4YTUwMjY0ODM2ZmJmY2U5
ZTI2ZTEwOTA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTAyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbVGV4TWFwXSBDbGVh
biB1cCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGhlYWRlciBhbmQgdGhlIGltcGxl
bWVudGF0aW9uIGZpbGUgb2YgdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
IGNsYXNzLiBSZWZlcmVuY2UgdGhlIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIG9iamVjdCB0
aHJvdWdoIGEgUmVmPD4sIGFuZCBoYXZlIHRoZSBjb250ZXh0KCkgcmV0dXJuIGEgcmVmZXJlbmNl
LAorICAgICAgICBub3QgYSBwb2ludGVyLgorCisgICAgICAgIFNvcnQgdGhlIHBhcnRzIG9mIHRo
ZSBpbXBsZW1lbnRhdGlvbiBmaWxlIGludG8gc29tZXRoaW5nIG1vcmUKKyAgICAgICAgc2Vuc2li
bGUuIFN0cmluZ0J1aWxkZXIgdXNhZ2UgaW4gY3JlYXRlKCkgaXMgaW1wcm92ZWQuIGdldExvY2F0
aW9uKCkKKyAgICAgICAgb25seSBuZWVkcyB0byBkbyBvbmUgbG9va3VwIGluIHRoZSBtX3Zhcmlh
YmxlcyBtYXAgYnkgdXNpbmcgZW5zdXJlKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0tIG5v
IGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
RGF0YTo6U2hhcmVkR0xEYXRhOjpnZXRTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6
OnByZXBhcmVGaWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0pOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpnZXRMb2NhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y29udGV4dCk6CisKIDIwMTYtMDUtMDIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgcnVuIHRyYW5zaXRp
b25zIHRvL2Zyb20gJ2F1dG8nIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCBmMmU2
OTQ5NTM0NmQ5NjhkMDhhZGNmNTgxNDJiOTFhMTU4ZTRlNTFiLi5kM2QzYzQ0YzRiMGNiMzc5MjY1
ZTM4YmRiZjU3MjI3OTMwZTU3MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtNzIsNyAr
NzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhhc2hNYXA8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMsIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbT4gPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fcHJvZ3JhbXMuYWRkKG9wdGlvbnMsIG51bGxw
dHIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAg
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKG1fY29udGV4dCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoKm1fY29udGV4dCwg
b3B0aW9ucyk7CiAKICAgICAgICAgICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwog
ICAgICAgICB9CkBAIC0zNTMsNyArMzUzLDcgQEAgc3RhdGljIGZsb2F0KiBnYXVzc2lhbktlcm5l
bCgpCiAKIHN0YXRpYyB2b2lkIHByZXBhcmVGaWx0ZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG9wZXJhdGlvbiwgdW5z
aWduZWQgcGFzcywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgR0MzRHVpbnQgY29udGVudFRleHR1cmUp
CiB7Ci0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gcHJvZ3JhbS0+Y29u
dGV4dCgpOworICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9IHByb2dyYW0tPmNv
bnRleHQoKTsKICAgICBjb250ZXh0LT51c2VQcm9ncmFtKHByb2dyYW0tPnByb2dyYW1JRCgpKTsK
IAogICAgIHN3aXRjaCAob3BlcmF0aW9uLnR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMDdhNzQ2ZDNiNTFlOTgxYzZiMzZhN2Q4MDI5NzIz
MDk0MTlkMTE5Ni4uMzA2YmIxYmI2ZDE1Y2JlZmMxNTkyMjQ4MDJmOGNkYzRiZmRhM2I0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0yNCwxNCArMjQs
MTAgQEAKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIAotI2luY2x1ZGUgIkxlbmd0aEZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
R0wuaCIKLQogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotI2RlZmluZSBT
VFJJTkdJRlkoLi4uKSAjX19WQV9BUkdTX18KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgaW5saW5lIGJvb2wgY29tcG9zaXRpbmdMb2dFbmFibGVkKCkKQEAgLTQzLDc2ICszOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKQogI2VuZGlmCiB9CiAK
LVRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHZlcnRl
eCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotewot
ICAgIG1fdmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250
ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBtX2NvbnRleHQt
PmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSKTsKLSAgICBt
X2NvbnRleHQtPnNoYWRlclNvdXJjZShtX3ZlcnRleFNoYWRlciwgdmVydGV4KTsKLSAgICBtX2Nv
bnRleHQtPnNoYWRlclNvdXJjZShtX2ZyYWdtZW50U2hhZGVyLCBmcmFnbWVudCk7Ci0gICAgbV9p
ZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOwotICAgIG1fY29udGV4dC0+Y29tcGlsZVNo
YWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyKG1fZnJh
Z21lbnRTaGFkZXIpOwotICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKG1faWQsIG1fdmVydGV4
U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihtX2lkLCBtX2ZyYWdtZW50U2hh
ZGVyKTsKLSAgICBtX2NvbnRleHQtPmxpbmtQcm9ncmFtKG1faWQpOwotCi0gICAgaWYgKCFjb21w
b3NpdGluZ0xvZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fY29udGV4
dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1IpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFN0cmluZyBsb2cgPSBtX2NvbnRleHQtPmdldFNoYWRlckluZm9Mb2cobV92
ZXJ0ZXhTaGFkZXIpOwotICAgIExPRyhDb21wb3NpdGluZywgIlZlcnRleCBzaGFkZXIgbG9nOiAl
c1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOwotICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0U2hhZGVy
SW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBMT0coQ29tcG9zaXRpbmcsICJGcmFnbWVu
dCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOwotICAgIGxvZyA9IG1fY29u
dGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cobV9pZCk7Ci0gICAgTE9HKENvbXBvc2l0aW5nLCAiUHJv
Z3JhbSBsb2c6ICVzXG4iLCBsb2cudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeChHQzNEdWludCBsb2NhdGlvbiwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKLXsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4OwotICAgIG1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRB
cnJheShmbG9hdE1hdHJpeCk7Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4NGZ2KGxvY2F0
aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRyaXgpOwotfQotCi1HQzNEdWludCBUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWYXJp
YWJsZVR5cGUgdHlwZSkKLXsKLSAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgR0MzRHVpbnQ+Ojpp
dGVyYXRvciBpdCA9IG1fdmFyaWFibGVzLmZpbmQobmFtZSk7Ci0gICAgaWYgKGl0ICE9IG1fdmFy
aWFibGVzLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwotCi0gICAgR0MzRHVpbnQg
bG9jYXRpb24gPSAwOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgVW5pZm9ybVZhcmlh
YmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1f
aWQsIG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEF0dHJpYlZhcmlhYmxlOgotICAg
ICAgICBsb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24obV9pZCwgbmFtZSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBtX3ZhcmlhYmxlcy5hZGQobmFtZSwg
bG9jYXRpb24pOwotICAgIHJldHVybiBsb2NhdGlvbjsKLX0KLQotVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06On5UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgpCi17Ci0gICAgUGxhdGZvcm0z
RE9iamVjdCBwcm9ncmFtSUQgPSBtX2lkOwotICAgIGlmICghcHJvZ3JhbUlEKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2NvbnRleHQtPmRldGFjaFNoYWRlcihwcm9ncmFtSUQsIG1fdmVydGV4
U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0g
ICAgbV9jb250ZXh0LT5kZXRhY2hTaGFkZXIocHJvZ3JhbUlELCBtX2ZyYWdtZW50U2hhZGVyKTsK
LSAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2Nv
bnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbUlEKTsKLX0KKyNkZWZpbmUgU1RSSU5HSUZZKC4u
LikgI19fVkFfQVJHU19fCiAKICNkZWZpbmUgR0xTTF9ESVJFQ1RJVkUoLi4uKSAiIyIjX19WQV9B
UkdTX18iXG4iCiAKQEAgLTM3MywxMyArMzAwLDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFn
bWVudFRlbXBsYXRlID0KICAgICAgICAgfQogICAgICk7CiAKLVBhc3NSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKK1JlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4g
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShSZWY8R3JhcGhpY3NDb250ZXh0M0Q+
JiYgY29udGV4dCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykK
IHsKLSAgICBTdHJpbmdCdWlsZGVyIHNoYWRlckJ1aWxkZXI7CiAjZGVmaW5lIFNFVF9BUFBMSUVS
X0ZST01fT1BUSU9OUyhBcHBsaWVyKSBcCi0gICAgc2hhZGVyQnVpbGRlci5hcHBlbmQoXAorICAg
IG9wdGlvbnNBcHBsaWVyQnVpbGRlci5hcHBlbmQoXAogICAgICAgICAob3B0aW9ucyAmIFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBcHBsaWVyKSA/IEVOQUJMRV9BUFBMSUVSKEFwcGxpZXIp
IDogRElTQUJMRV9BUFBMSUVSKEFwcGxpZXIpKQogCisgICAgU3RyaW5nQnVpbGRlciBvcHRpb25z
QXBwbGllckJ1aWxkZXI7CiAgICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKFRleHR1cmUpOwog
ICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSZWN0KTsKICAgICBTRVRfQVBQTElFUl9GUk9N
X09QVElPTlMoU29saWRDb2xvcik7CkBAIC0zOTYsMTYgKzMyMyw4MiBAQCBQYXNzUmVmUHRyPFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKFBhc3NSZQogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhCbHVyRmlsdGVyKTsKICAg
ICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQWxwaGFCbHVyKTsKICAgICBTRVRfQVBQTElFUl9G
Uk9NX09QVElPTlMoQ29udGVudFRleHR1cmUpOwotICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4QnVp
bGRlcjsKLSAgICB2ZXJ0ZXhCdWlsZGVyLmFwcGVuZChzaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCkp
OwotICAgIHZlcnRleEJ1aWxkZXIuYXBwZW5kKHZlcnRleFRlbXBsYXRlKTsKLSAgICBzaGFkZXJC
dWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlKTsKIAotICAgIFN0cmluZyB2ZXJ0ZXhTb3Vy
Y2UgPSB2ZXJ0ZXhCdWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgU3RyaW5nIGZyYWdtZW50U291cmNl
ID0gc2hhZGVyQnVpbGRlci50b1N0cmluZygpOworICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4U2hh
ZGVyQnVpbGRlcjsKKyAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGll
ckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgdmVydGV4U2hhZGVyQnVpbGRlci5hcHBlbmQodmVy
dGV4VGVtcGxhdGUpOworCisgICAgU3RyaW5nQnVpbGRlciBmcmFnbWVudFNoYWRlckJ1aWxkZXI7
CisgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGllckJ1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRl
bXBsYXRlKTsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW0oY29udGV4dCwgdmVydGV4U291cmNlLCBmcmFnbWVudFNvdXJjZSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKFdURk1vdmUoY29udGV4
dCksIHZlcnRleFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSwgZnJhZ21lbnRTaGFkZXJCdWlsZGVy
LnRvU3RyaW5nKCkpKTsKIH0KIAorVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtKFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIHZlcnRleCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKKyAgICA6IG1fY29udGV4
dChXVEZNb3ZlKGNvbnRleHQpKQoreworICAgIG1fdmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5j
cmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOworICAgIG1fY29u
dGV4dC0+c2hhZGVyU291cmNlKG1fdmVydGV4U2hhZGVyLCB2ZXJ0ZXgpOworCisgICAgbV9mcmFn
bWVudFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFHTUVOVF9TSEFERVIpOworICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKG1fZnJhZ21lbnRT
aGFkZXIsIGZyYWdtZW50KTsKKworICAgIG1faWQgPSBtX2NvbnRleHQtPmNyZWF0ZVByb2dyYW0o
KTsKKyAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXIobV92ZXJ0ZXhTaGFkZXIpOworICAgIG1f
Y29udGV4dC0+Y29tcGlsZVNoYWRlcihtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQt
PmF0dGFjaFNoYWRlcihtX2lkLCBtX3ZlcnRleFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5hdHRh
Y2hTaGFkZXIobV9pZCwgbV9mcmFnbWVudFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5saW5rUHJv
Z3JhbShtX2lkKTsKKworICAgIGlmICghY29tcG9zaXRpbmdMb2dFbmFibGVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2NvbnRleHQtPmdldEVycm9yKCkgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6Ok5PX0VSUk9SKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgbG9nID0gbV9j
b250ZXh0LT5nZXRTaGFkZXJJbmZvTG9nKG1fdmVydGV4U2hhZGVyKTsKKyAgICBMT0coQ29tcG9z
aXRpbmcsICJWZXJ0ZXggc2hhZGVyIGxvZzogJXNcbiIsIGxvZy51dGY4KCkuZGF0YSgpKTsKKyAg
ICBsb2cgPSBtX2NvbnRleHQtPmdldFNoYWRlckluZm9Mb2cobV9mcmFnbWVudFNoYWRlcik7Cisg
ICAgTE9HKENvbXBvc2l0aW5nLCAiRnJhZ21lbnQgc2hhZGVyIGxvZzogJXNcbiIsIGxvZy51dGY4
KCkuZGF0YSgpKTsKKyAgICBsb2cgPSBtX2NvbnRleHQtPmdldFByb2dyYW1JbmZvTG9nKG1faWQp
OworICAgIExPRyhDb21wb3NpdGluZywgIlByb2dyYW0gbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5k
YXRhKCkpOworfQorCitUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6flRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtKCkKK3sKKyAgICBpZiAoIW1faWQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29udGV4dC0+ZGV0YWNoU2hhZGVyKG1faWQsIG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2Nv
bnRleHQtPmRlbGV0ZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5kZXRh
Y2hTaGFkZXIobV9pZCwgbV9mcmFnbWVudFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5kZWxldGVT
aGFkZXIobV9mcmFnbWVudFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKG1f
aWQpOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpzZXRNYXRyaXgoR0Mz
RHVpbnQgbG9jYXRpb24sIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpCit7Cisg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXg6OkZsb2F0TWF0cml4NCBmbG9hdE1hdHJpeDsKKyAgICBt
YXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXkoZmxvYXRNYXRyaXgpOworICAgIG1fY29udGV4
dC0+dW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgMSwgZmFsc2UsIGZsb2F0TWF0cml4KTsKK30K
KworR0MzRHVpbnQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmdldExvY2F0aW9uKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgVmFyaWFibGVUeXBlIHR5cGUpCit7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX3ZhcmlhYmxlcy5lbnN1cmUobmFtZSwKKyAgICAgICAgW3RoaXMsICZuYW1lLCB0
eXBlXSB7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVW5p
Zm9ybVZhcmlhYmxlOgorICAgICAgICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFVuaWZv
cm1Mb2NhdGlvbihtX2lkLCBuYW1lKTsKKyAgICAgICAgICAgIGNhc2UgQXR0cmliVmFyaWFibGU6
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24obV9p
ZCwgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgfSk7CisgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggMjAzODQx
NmE4YTEwNDFkODFiZDAyZWRjZmZhYzM1ZjJmMzM4ZTAzMi4uOWE4OTU1YTZmOGM2MDRjYjEwODMy
Y2YzOTk3Mzc4OWJkYTVhZDZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmgKQEAgLTIyLDE0ICsyMiwxNSBAQAogI2RlZmluZSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbV9oCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICNkZWZpbmUgVEVY
TUFQX0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsIE5hbWUsIFR5cGUpIEdDM0R1aW50IEFjY2Vz
c29yIyNMb2NhdGlvbigpIHsgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyBuYW1lKE5hbWUpOyBy
ZXR1cm4gZ2V0TG9jYXRpb24obmFtZSwgVHlwZSk7IH0KICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVf
VU5JRk9STShBY2Nlc3NvcikgVEVYTUFQX0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsICJ1XyIj
QWNjZXNzb3IsIFVuaWZvcm1WYXJpYWJsZSkKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfQVRUUklC
VVRFKEFjY2Vzc29yKSBURVhNQVBfREVDTEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgImFfIiNBY2Nl
c3NvciwgQXR0cmliVmFyaWFibGUpCkBAIC01OCwxMCArNTksMTEgQEAgcHVibGljOgogCiAgICAg
dHlwZWRlZiB1bnNpZ25lZCBPcHRpb25zOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiwgT3B0aW9ucyk7CisgICAgc3RhdGljIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4g
Y3JlYXRlKFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgT3B0aW9ucyk7CiAgICAgdmlydHVhbCB+
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oKTsKKwogICAgIFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisgICAgR3JhcGhpY3NDb250ZXh0
M0QmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIFRFWE1BUF9ERUNMQVJF
X0FUVFJJQlVURSh2ZXJ0ZXgpCiAKQEAgLTgzLDE0ICs4NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNYXRyaXgoR0MzRHVpbnQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKIHBy
aXZhdGU6Ci0gICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oUGFzc1JlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4sIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBTdHJp
bmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bShSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291
cmNlLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKKwogICAgIFBsYXRmb3Jt
M0RPYmplY3QgbV92ZXJ0ZXhTaGFkZXI7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBtX2ZyYWdtZW50
U2hhZGVyOwogCiAgICAgZW51bSBWYXJpYWJsZVR5cGUgeyBVbmlmb3JtVmFyaWFibGUsIEF0dHJp
YlZhcmlhYmxlIH07CiAgICAgR0MzRHVpbnQgZ2V0TG9jYXRpb24oY29uc3QgQXRvbWljU3RyaW5n
JiwgVmFyaWFibGVUeXBlKTsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250
ZXh0OworICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIFBsYXRmb3Jt
M0RPYmplY3QgbV9pZDsKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgR0MzRHVpbnQ+IG1fdmFy
aWFibGVzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278068</attachid>
            <date>2016-05-04 00:32:07 -0700</date>
            <delta_ts>2016-05-04 02:59:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157302-20160504003245.patch</filename>
            <type>text/plain</type>
            <size>12825</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDQwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTA0ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbVGV4TWFwXSBDbGVhbiB1
cCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGhlYWRlciBhbmQgdGhlIGlt
cGxlbWVudGF0aW9uIGZpbGUgb2YgdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtIGNsYXNzLiBSZWZlcmVuY2UgdGhlIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIG9iamVj
dCB0aHJvdWdoIGEgUmVmPD4sIGFuZCBoYXZlIHRoZSBjb250ZXh0KCkgcmV0dXJuIGEgcmVmZXJl
bmNlLAorICAgICAgICBub3QgYSBwb2ludGVyLgorCisgICAgICAgIFNvcnQgdGhlIHBhcnRzIG9m
IHRoZSBpbXBsZW1lbnRhdGlvbiBmaWxlIGludG8gc29tZXRoaW5nIG1vcmUKKyAgICAgICAgc2Vu
c2libGUuIFN0cmluZ0J1aWxkZXIgdXNhZ2UgaW4gY3JlYXRlKCkgaXMgaW1wcm92ZWQuIGdldExv
Y2F0aW9uKCkKKyAgICAgICAgb25seSBuZWVkcyB0byBkbyBvbmUgbG9va3VwIGluIHRoZSBtX3Zh
cmlhYmxlcyBtYXAgYnkgdXNpbmcgZW5zdXJlKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0t
IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckdMRGF0YTo6U2hhcmVkR0xEYXRhOjpnZXRTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNv
cmU6OnByZXBhcmVGaWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5UZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpnZXRMb2NhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y29udGV4dCk6CisKIDIwMTYtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBvbiBJREwgYXR0cmlidXRlcwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAJKHJl
dmlzaW9uIDIwMDQwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgSGFzaE1hcDxUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6T3B0aW9ucywgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+OjpB
ZGRSZXN1bHQgcmVzdWx0ID0gbV9wcm9ncmFtcy5hZGQob3B0aW9ucywgbnVsbHB0cik7CiAgICAg
ICAgICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZSA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUobV9jb250
ZXh0LCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0g
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZSgqbV9jb250ZXh0LCBvcHRpb25zKTsK
IAogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgIH0K
QEAgLTM1Myw3ICszNTMsNyBAQCBzdGF0aWMgZmxvYXQqIGdhdXNzaWFuS2VybmVsKCkKIAogc3Rh
dGljIHZvaWQgcHJlcGFyZUZpbHRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0q
IHByb2dyYW0sIGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1bnNpZ25lZCBwYXNz
LCBjb25zdCBJbnRTaXplJiBzaXplLCBHQzNEdWludCBjb250ZW50VGV4dHVyZSkKIHsKLSAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBwcm9ncmFtLT5jb250ZXh0KCk7Cisg
ICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gcHJvZ3JhbS0+Y29udGV4dCgpOwog
ICAgIGNvbnRleHQtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwogCiAgICAgc3dp
dGNoIChvcGVyYXRpb24udHlwZSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5jcHAJKHJldmlzaW9uIDIwMDQwNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDE0ICsyNCwxMCBAQAogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogCi0jaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgotCiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCi0jZGVmaW5lIFNUUklOR0lGWSguLi4pICNfX1ZBX0FSR1NfXwotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wb3NpdGluZ0xvZ0Vu
YWJsZWQoKQpAQCAtNDMsNzYgKzM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBvc2l0aW5n
TG9nRW5hYmxlZAogI2VuZGlmCiB9CiAKLVRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIHZlcnRleCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKLSAgICA6
IG1fY29udGV4dChjb250ZXh0KQotewotICAgIG1fdmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5j
cmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIG1fZnJh
Z21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6
RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShtX3ZlcnRleFNo
YWRlciwgdmVydGV4KTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShtX2ZyYWdtZW50U2hh
ZGVyLCBmcmFnbWVudCk7Ci0gICAgbV9pZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOwot
ICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9jb250
ZXh0LT5jb21waWxlU2hhZGVyKG1fZnJhZ21lbnRTaGFkZXIpOwotICAgIG1fY29udGV4dC0+YXR0
YWNoU2hhZGVyKG1faWQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmF0dGFjaFNo
YWRlcihtX2lkLCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmxpbmtQcm9ncmFt
KG1faWQpOwotCi0gICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6Tk9fRVJST1IpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBsb2cgPSBtX2NvbnRl
eHQtPmdldFNoYWRlckluZm9Mb2cobV92ZXJ0ZXhTaGFkZXIpOwotICAgIExPRyhDb21wb3NpdGlu
ZywgIlZlcnRleCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOwotICAgIGxv
ZyA9IG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBM
T0coQ29tcG9zaXRpbmcsICJGcmFnbWVudCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5k
YXRhKCkpOwotICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cobV9pZCk7Ci0g
ICAgTE9HKENvbXBvc2l0aW5nLCAiUHJvZ3JhbSBsb2c6ICVzXG4iLCBsb2cudXRmOCgpLmRhdGEo
KSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeChHQzNE
dWludCBsb2NhdGlvbiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKLXsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4OwotICAgIG1h
dHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShmbG9hdE1hdHJpeCk7Ci0gICAgbV9jb250ZXh0
LT51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRyaXgpOwotfQot
Ci1HQzNEdWludCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24oY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBWYXJpYWJsZVR5cGUgdHlwZSkKLXsKLSAgICBIYXNoTWFwPEF0
b21pY1N0cmluZywgR0MzRHVpbnQ+OjppdGVyYXRvciBpdCA9IG1fdmFyaWFibGVzLmZpbmQobmFt
ZSk7Ci0gICAgaWYgKGl0ICE9IG1fdmFyaWFibGVzLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQt
PnZhbHVlOwotCi0gICAgR0MzRHVpbnQgbG9jYXRpb24gPSAwOwotICAgIHN3aXRjaCAodHlwZSkg
ewotICAgIGNhc2UgVW5pZm9ybVZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29udGV4
dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1faWQsIG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEF0dHJpYlZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0QXR0
cmliTG9jYXRpb24obV9pZCwgbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAg
ICBtX3ZhcmlhYmxlcy5hZGQobmFtZSwgbG9jYXRpb24pOwotICAgIHJldHVybiBsb2NhdGlvbjsK
LX0KLQotVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbSgpCi17Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtSUQgPSBtX2lkOwotICAgIGlm
ICghcHJvZ3JhbUlEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvbnRleHQtPmRldGFjaFNo
YWRlcihwcm9ncmFtSUQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNo
YWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9jb250ZXh0LT5kZXRhY2hTaGFkZXIocHJvZ3Jh
bUlELCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihtX2Zy
YWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbUlEKTsK
LX0KKyNkZWZpbmUgU1RSSU5HSUZZKC4uLikgI19fVkFfQVJHU19fCiAKICNkZWZpbmUgR0xTTF9E
SVJFQ1RJVkUoLi4uKSAiIyIjX19WQV9BUkdTX18iXG4iCiAKQEAgLTM3MywxMyArMzAwLDEzIEBA
IHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlID0KICAgICAgICAgfQogICAgICk7
CiAKLVBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4
dCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKK1JlZjxUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0
ZShSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHNoYWRlckJ1aWxk
ZXI7CiAjZGVmaW5lIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhBcHBsaWVyKSBcCi0gICAgc2hh
ZGVyQnVpbGRlci5hcHBlbmQoXAorICAgIG9wdGlvbnNBcHBsaWVyQnVpbGRlci5hcHBlbmQoXAog
ICAgICAgICAob3B0aW9ucyAmIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBcHBsaWVyKSA/
IEVOQUJMRV9BUFBMSUVSKEFwcGxpZXIpIDogRElTQUJMRV9BUFBMSUVSKEFwcGxpZXIpKQogCisg
ICAgU3RyaW5nQnVpbGRlciBvcHRpb25zQXBwbGllckJ1aWxkZXI7CiAgICAgU0VUX0FQUExJRVJf
RlJPTV9PUFRJT05TKFRleHR1cmUpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSZWN0
KTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoU29saWRDb2xvcik7CkBAIC0zOTYsMTYg
KzMyMyw4MyBAQCBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUCiAgICAg
U0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEJsdXJGaWx0ZXIpOwogICAgIFNFVF9BUFBMSUVSX0ZS
T01fT1BUSU9OUyhBbHBoYUJsdXIpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhDb250
ZW50VGV4dHVyZSk7Ci0gICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhCdWlsZGVyOwotICAgIHZlcnRl
eEJ1aWxkZXIuYXBwZW5kKHNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgdmVydGV4QnVp
bGRlci5hcHBlbmQodmVydGV4VGVtcGxhdGUpOwotICAgIHNoYWRlckJ1aWxkZXIuYXBwZW5kKGZy
YWdtZW50VGVtcGxhdGUpOwogCi0gICAgU3RyaW5nIHZlcnRleFNvdXJjZSA9IHZlcnRleEJ1aWxk
ZXIudG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgZnJhZ21lbnRTb3VyY2UgPSBzaGFkZXJCdWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhTaGFkZXJCdWlsZGVyOworICAg
IHZlcnRleFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZCh2ZXJ0ZXhUZW1wbGF0ZSk7CisK
KyAgICBTdHJpbmdCdWlsZGVyIGZyYWdtZW50U2hhZGVyQnVpbGRlcjsKKyAgICBmcmFnbWVudFNo
YWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGUpOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShjb250ZXh0LCB2
ZXJ0ZXhTb3VyY2UsIGZyYWdtZW50U291cmNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oV1RGTW92ZShjb250ZXh0KSwgdmVydGV4U2hhZGVy
QnVpbGRlci50b1N0cmluZygpLCBmcmFnbWVudFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSkpOwog
fQogCitUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0oUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdmVydGV4
LCBjb25zdCBTdHJpbmcmIGZyYWdtZW50KQorICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4
dCkpCit7CisgICAgbV92ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7CisgICAgbV9jb250ZXh0LT5zaGFkZXJTb3Vy
Y2UobV92ZXJ0ZXhTaGFkZXIsIHZlcnRleCk7CisKKyAgICBtX2ZyYWdtZW50U2hhZGVyID0gbV9j
b250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7
CisgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UobV9mcmFnbWVudFNoYWRlciwgZnJhZ21lbnQp
OworCisgICAgbV9pZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOworICAgIG1fY29udGV4
dC0+Y29tcGlsZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7CisgICAgbV9jb250ZXh0LT5jb21waWxl
U2hhZGVyKG1fZnJhZ21lbnRTaGFkZXIpOworICAgIG1fY29udGV4dC0+YXR0YWNoU2hhZGVyKG1f
aWQsIG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihtX2lkLCBt
X2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmxpbmtQcm9ncmFtKG1faWQpOworCisg
ICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1fY29udGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1Ip
CisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBsb2cgPSBtX2NvbnRleHQtPmdldFNoYWRl
ckluZm9Mb2cobV92ZXJ0ZXhTaGFkZXIpOworICAgIExPRyhDb21wb3NpdGluZywgIlZlcnRleCBz
aGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOworICAgIGxvZyA9IG1fY29udGV4
dC0+Z2V0U2hhZGVySW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBMT0coQ29tcG9zaXRp
bmcsICJGcmFnbWVudCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOworICAg
IGxvZyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cobV9pZCk7CisgICAgTE9HKENvbXBv
c2l0aW5nLCAiUHJvZ3JhbSBsb2c6ICVzXG4iLCBsb2cudXRmOCgpLmRhdGEoKSk7Cit9CisKK1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjp+VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oKQor
eworICAgIGlmICghbV9pZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LT5kZXRh
Y2hTaGFkZXIobV9pZCwgbV92ZXJ0ZXhTaGFkZXIpOworICAgIG1fY29udGV4dC0+ZGVsZXRlU2hh
ZGVyKG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRldGFjaFNoYWRlcihtX2lkLCBt
X2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihtX2ZyYWdtZW50
U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0obV9pZCk7Cit9CisKK3ZvaWQg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeChHQzNEdWludCBsb2NhdGlvbiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKK3sKKyAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4OworICAgIG1hdHJpeC50b0NvbHVtbk1h
am9yRmxvYXRBcnJheShmbG9hdE1hdHJpeCk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4
NGZ2KGxvY2F0aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRyaXgpOworfQorCitHQzNEdWludCBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBWYXJpYWJsZVR5cGUgdHlwZSkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmFyaWFi
bGVzLmVuc3VyZShuYW1lLAorICAgICAgICBbdGhpcywgJm5hbWUsIHR5cGVdIHsKKyAgICAgICAg
ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBVbmlmb3JtVmFyaWFibGU6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1faWQs
IG5hbWUpOworICAgICAgICAgICAgY2FzZSBBdHRyaWJWYXJpYWJsZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbV9jb250ZXh0LT5nZXRBdHRyaWJMb2NhdGlvbihtX2lkLCBuYW1lKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIH0pOworICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZiAvLyBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0u
aAkocmV2aXNpb24gMjAwNDA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDE0ICsyMiwxNSBAQAogI2RlZmluZSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbV9oCiAKICNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
SGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVf
VkFSSUFCTEUoQWNjZXNzb3IsIE5hbWUsIFR5cGUpIEdDM0R1aW50IEFjY2Vzc29yIyNMb2NhdGlv
bigpIHsgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyBuYW1lKE5hbWUpOyByZXR1cm4gZ2V0TG9j
YXRpb24obmFtZSwgVHlwZSk7IH0KICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfVU5JRk9STShBY2Nl
c3NvcikgVEVYTUFQX0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsICJ1XyIjQWNjZXNzb3IsIFVu
aWZvcm1WYXJpYWJsZSkKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfQVRUUklCVVRFKEFjY2Vzc29y
KSBURVhNQVBfREVDTEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgImFfIiNBY2Nlc3NvciwgQXR0cmli
VmFyaWFibGUpCkBAIC01OCwxMCArNTksMTEgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNp
Z25lZCBPcHRpb25zOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgT3B0aW9ucyk7
CisgICAgc3RhdGljIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gY3JlYXRlKFJlZjxH
cmFwaGljc0NvbnRleHQzRD4mJiwgT3B0aW9ucyk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0oKTsKKwogICAgIFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbUlEKCkgY29u
c3QgeyByZXR1cm4gbV9pZDsgfQotICAgIEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KCkgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQo
KSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIFRFWE1BUF9ERUNMQVJFX0FUVFJJQlVURSh2
ZXJ0ZXgpCiAKQEAgLTgzLDE0ICs4NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXRyaXgo
R0MzRHVpbnQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKIHByaXZhdGU6Ci0gICAg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4s
IGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50
U2hhZGVyU291cmNlKTsKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShSZWY8R3JhcGhp
Y3NDb250ZXh0M0Q+JiYsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBT
dHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKKwogICAgIFBsYXRmb3JtM0RPYmplY3QgbV92
ZXJ0ZXhTaGFkZXI7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBtX2ZyYWdtZW50U2hhZGVyOwogCiAg
ICAgZW51bSBWYXJpYWJsZVR5cGUgeyBVbmlmb3JtVmFyaWFibGUsIEF0dHJpYlZhcmlhYmxlIH07
CiAgICAgR0MzRHVpbnQgZ2V0TG9jYXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiwgVmFyaWFibGVU
eXBlKTsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OworICAgIFJl
ZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIFBsYXRmb3JtM0RPYmplY3QgbV9p
ZDsKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgR0MzRHVpbnQ+IG1fdmFyaWFibGVzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278073</attachid>
            <date>2016-05-04 02:59:43 -0700</date>
            <delta_ts>2016-05-04 23:01:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157302-20160504030021.patch</filename>
            <type>text/plain</type>
            <size>14198</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkYWJhM2JjNGE0MWZi
YjY4OGNhMjBlNjVmN2M4YzcwNzU2M2QxMC4uOGM2Yjk5ODQ2OGEyZDM5YTI1YTMxZGQ1ZTk0NDcy
ODZkNjU1NzEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTA1LTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbVGV4TWFwXSBDbGVh
biB1cCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGhlYWRlciBhbmQgdGhl
IGltcGxlbWVudGF0aW9uIGZpbGUgb2YgdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtIGNsYXNzLiBSZWZlcmVuY2UgdGhlIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIG9i
amVjdCB0aHJvdWdoIGEgUmVmPD4sIGFuZCBoYXZlIHRoZSBjb250ZXh0KCkgcmV0dXJuIGEgcmVm
ZXJlbmNlLAorICAgICAgICBub3QgYSBwb2ludGVyLgorCisgICAgICAgIFNvcnQgdGhlIHBhcnRz
IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBmaWxlIGludG8gc29tZXRoaW5nIG1vcmUKKyAgICAgICAg
c2Vuc2libGUuIFN0cmluZ0J1aWxkZXIgdXNhZ2UgaW4gY3JlYXRlKCkgaXMgaW1wcm92ZWQuIGdl
dExvY2F0aW9uKCkKKyAgICAgICAgb25seSBuZWVkcyB0byBkbyBvbmUgbG9va3VwIGluIHRoZSBt
X3ZhcmlhYmxlcyBtYXAgYnkgdXNpbmcgZW5zdXJlKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IC0tIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFRy
YW5zcG9ydFN1cmZhY2U6OmluaXRpYWxpemVTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHTERhdGE6OlNoYXJlZEdMRGF0YTo6Z2V0U2hhZGVyUHJvZ3JhbSk6
CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlRmlsdGVyUHJvZ3JhbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtOjp+VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNvbnRleHQpOgorCiAyMDE2
LTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1p
emUgW1N0cmljdFR5cGVDaGVja2luZ10gb24gSURMIGF0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5z
cG9ydFN1cmZhY2UuY3BwCmluZGV4IGQxMDNlNWJlZWZmMGM2ZTQzNmIxOTFjYjI3MDg1MjFlNzc3
NTU4NDMuLjY5OTRhZWMyNmVjMTkzNDRmYWZiOGFiYzMzN2EyYWYyZGNjMjM1OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgR0xUcmFu
c3BvcnRTdXJmYWNlOjppbml0aWFsaXplU2hhZGVyUHJvZ3JhbSgpCiAgICAgdmVydGV4QXJyYXlP
YmplY3RTdXBwb3J0ZWQgPSBtX2NvbnRleHQzRC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKIAogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpPcHRpb25zIG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4
dHVyZTsKLSAgICBtX3NoYWRlclByb2dyYW0gPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
Y3JlYXRlKG1fY29udGV4dDNELCBvcHRpb25zKTsKKyAgICBtX3NoYWRlclByb2dyYW0gPSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKCptX2NvbnRleHQzRCwgb3B0aW9ucyk7CiAK
ICAgICA6OmdsVXNlUHJvZ3JhbShtX3NoYWRlclByb2dyYW0tPnByb2dyYW1JRCgpKTsKICAgICA6
OmdsVW5pZm9ybTFpKG1fc2hhZGVyUHJvZ3JhbS0+c2FtcGxlckxvY2F0aW9uKCksIDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcAppbmRleCBmMmU2OTQ5NTM0NmQ5NjhkMDhhZGNmNTgxNDJiOTFhMTU4
ZTRlNTFiLi5kM2QzYzQ0YzRiMGNiMzc5MjY1ZTM4YmRiZjU3MjI3OTMwZTU3MDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEhhc2hNYXA8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMsIFJl
ZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1f
cHJvZ3JhbXMuYWRkKG9wdGlvbnMsIG51bGxwdHIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5p
c05ld0VudHJ5KQotICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKG1fY29udGV4dCwgb3B0aW9ucyk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpjcmVhdGUoKm1fY29udGV4dCwgb3B0aW9ucyk7CiAKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogICAgICAgICB9CkBAIC0zNTMsNyArMzUzLDcgQEAg
c3RhdGljIGZsb2F0KiBnYXVzc2lhbktlcm5lbCgpCiAKIHN0YXRpYyB2b2lkIHByZXBhcmVGaWx0
ZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb24mIG9wZXJhdGlvbiwgdW5zaWduZWQgcGFzcywgY29uc3QgSW50U2l6ZSYgc2l6
ZSwgR0MzRHVpbnQgY29udGVudFRleHR1cmUpCiB7Ci0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBjb250ZXh0ID0gcHJvZ3JhbS0+Y29udGV4dCgpOworICAgIFJlZjxHcmFwaGljc0NvbnRl
eHQzRD4gY29udGV4dCA9IHByb2dyYW0tPmNvbnRleHQoKTsKICAgICBjb250ZXh0LT51c2VQcm9n
cmFtKHByb2dyYW0tPnByb2dyYW1JRCgpKTsKIAogICAgIHN3aXRjaCAob3BlcmF0aW9uLnR5cGUo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMDdh
NzQ2ZDNiNTFlOTgxYzZiMzZhN2Q4MDI5NzIzMDk0MTlkMTE5Ni4uMmQ2NTI4MDZiMmE3NTdiNjBl
ZDlhOGIzNGJjNTI4NzU4ODliY2FhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uY3BwCkBAIC0yNCwxNCArMjQsMTAgQEAKIAogI2lmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKIAotI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKLQogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAotI2RlZmluZSBTVFJJTkdJRlkoLi4uKSAjX19WQV9BUkdTX18KLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIGJvb2wgY29tcG9zaXRpbmdMb2dF
bmFibGVkKCkKQEAgLTQzLDc2ICszOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wb3NpdGlu
Z0xvZ0VuYWJsZWQoKQogI2VuZGlmCiB9CiAKLVRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHZlcnRleCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKLSAg
ICA6IG1fY29udGV4dChjb250ZXh0KQotewotICAgIG1fdmVydGV4U2hhZGVyID0gbV9jb250ZXh0
LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIG1f
ZnJhZ21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQz
RDo6RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShtX3ZlcnRl
eFNoYWRlciwgdmVydGV4KTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShtX2ZyYWdtZW50
U2hhZGVyLCBmcmFnbWVudCk7Ci0gICAgbV9pZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgp
OwotICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9j
b250ZXh0LT5jb21waWxlU2hhZGVyKG1fZnJhZ21lbnRTaGFkZXIpOwotICAgIG1fY29udGV4dC0+
YXR0YWNoU2hhZGVyKG1faWQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmF0dGFj
aFNoYWRlcihtX2lkLCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmxpbmtQcm9n
cmFtKG1faWQpOwotCi0gICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9fRVJST1IpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBsb2cgPSBtX2Nv
bnRleHQtPmdldFNoYWRlckluZm9Mb2cobV92ZXJ0ZXhTaGFkZXIpOwotICAgIExPRyhDb21wb3Np
dGluZywgIlZlcnRleCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOwotICAg
IGxvZyA9IG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVyKTsKLSAg
ICBMT0coQ29tcG9zaXRpbmcsICJGcmFnbWVudCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0Zjgo
KS5kYXRhKCkpOwotICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cobV9pZCk7
Ci0gICAgTE9HKENvbXBvc2l0aW5nLCAiUHJvZ3JhbSBsb2c6ICVzXG4iLCBsb2cudXRmOCgpLmRh
dGEoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeChH
QzNEdWludCBsb2NhdGlvbiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKLXsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4OwotICAg
IG1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShmbG9hdE1hdHJpeCk7Ci0gICAgbV9jb250
ZXh0LT51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRyaXgpOwot
fQotCi1HQzNEdWludCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24oY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWYXJpYWJsZVR5cGUgdHlwZSkKLXsKLSAgICBIYXNoTWFw
PEF0b21pY1N0cmluZywgR0MzRHVpbnQ+OjppdGVyYXRvciBpdCA9IG1fdmFyaWFibGVzLmZpbmQo
bmFtZSk7Ci0gICAgaWYgKGl0ICE9IG1fdmFyaWFibGVzLmVuZCgpKQotICAgICAgICByZXR1cm4g
aXQtPnZhbHVlOwotCi0gICAgR0MzRHVpbnQgbG9jYXRpb24gPSAwOwotICAgIHN3aXRjaCAodHlw
ZSkgewotICAgIGNhc2UgVW5pZm9ybVZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29u
dGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1faWQsIG5hbWUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEF0dHJpYlZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0
QXR0cmliTG9jYXRpb24obV9pZCwgbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0K
LSAgICBtX3ZhcmlhYmxlcy5hZGQobmFtZSwgbG9jYXRpb24pOwotICAgIHJldHVybiBsb2NhdGlv
bjsKLX0KLQotVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5UZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbSgpCi17Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtSUQgPSBtX2lkOwotICAg
IGlmICghcHJvZ3JhbUlEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvbnRleHQtPmRldGFj
aFNoYWRlcihwcm9ncmFtSUQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0
ZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9jb250ZXh0LT5kZXRhY2hTaGFkZXIocHJv
Z3JhbUlELCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlciht
X2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbUlE
KTsKLX0KKyNkZWZpbmUgU1RSSU5HSUZZKC4uLikgI19fVkFfQVJHU19fCiAKICNkZWZpbmUgR0xT
TF9ESVJFQ1RJVkUoLi4uKSAiIyIjX19WQV9BUkdTX18iXG4iCiAKQEAgLTM3MywxMyArMzAwLDEz
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlID0KICAgICAgICAgfQogICAg
ICk7CiAKLVBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKK1JlZjxU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNy
ZWF0ZShSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHNoYWRlckJ1
aWxkZXI7CiAjZGVmaW5lIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhBcHBsaWVyKSBcCi0gICAg
c2hhZGVyQnVpbGRlci5hcHBlbmQoXAorICAgIG9wdGlvbnNBcHBsaWVyQnVpbGRlci5hcHBlbmQo
XAogICAgICAgICAob3B0aW9ucyAmIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBcHBsaWVy
KSA/IEVOQUJMRV9BUFBMSUVSKEFwcGxpZXIpIDogRElTQUJMRV9BUFBMSUVSKEFwcGxpZXIpKQog
CisgICAgU3RyaW5nQnVpbGRlciBvcHRpb25zQXBwbGllckJ1aWxkZXI7CiAgICAgU0VUX0FQUExJ
RVJfRlJPTV9PUFRJT05TKFRleHR1cmUpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhS
ZWN0KTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoU29saWRDb2xvcik7CkBAIC0zOTYs
MTYgKzMyMyw4MyBAQCBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFBhc3NSZQogICAgIFNFVF9BUFBMSUVSX0ZS
T01fT1BUSU9OUyhCbHVyRmlsdGVyKTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQWxw
aGFCbHVyKTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQ29udGVudFRleHR1cmUpOwot
ICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4QnVpbGRlcjsKLSAgICB2ZXJ0ZXhCdWlsZGVyLmFwcGVu
ZChzaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIHZlcnRleEJ1aWxkZXIuYXBwZW5kKHZl
cnRleFRlbXBsYXRlKTsKLSAgICBzaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRl
KTsKIAotICAgIFN0cmluZyB2ZXJ0ZXhTb3VyY2UgPSB2ZXJ0ZXhCdWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgU3RyaW5nIGZyYWdtZW50U291cmNlID0gc2hhZGVyQnVpbGRlci50b1N0cmluZygpOwor
ICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4U2hhZGVyQnVpbGRlcjsKKyAgICB2ZXJ0ZXhTaGFkZXJC
dWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgdmVy
dGV4U2hhZGVyQnVpbGRlci5hcHBlbmQodmVydGV4VGVtcGxhdGUpOworCisgICAgU3RyaW5nQnVp
bGRlciBmcmFnbWVudFNoYWRlckJ1aWxkZXI7CisgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFw
cGVuZChvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgZnJhZ21lbnRTaGFk
ZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlKTsKIAotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oY29udGV4dCwgdmVydGV4U291cmNlLCBm
cmFnbWVudFNvdXJjZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtKFdURk1vdmUoY29udGV4dCksIHZlcnRleFNoYWRlckJ1aWxkZXIudG9TdHJp
bmcoKSwgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCkpKTsKIH0KIAorVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKFJlZjxHcmFwaGlj
c0NvbnRleHQzRD4mJiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHZlcnRleCwgY29uc3QgU3RyaW5n
JiBmcmFnbWVudCkKKyAgICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQoreworICAgIG1f
dmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFUlRFWF9TSEFERVIpOworICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKG1fdmVydGV4U2hh
ZGVyLCB2ZXJ0ZXgpOworCisgICAgbV9mcmFnbWVudFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRl
U2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVIpOworICAgIG1fY29udGV4
dC0+c2hhZGVyU291cmNlKG1fZnJhZ21lbnRTaGFkZXIsIGZyYWdtZW50KTsKKworICAgIG1faWQg
PSBtX2NvbnRleHQtPmNyZWF0ZVByb2dyYW0oKTsKKyAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFk
ZXIobV92ZXJ0ZXhTaGFkZXIpOworICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihtX2ZyYWdt
ZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihtX2lkLCBtX3ZlcnRleFNo
YWRlcik7CisgICAgbV9jb250ZXh0LT5hdHRhY2hTaGFkZXIobV9pZCwgbV9mcmFnbWVudFNoYWRl
cik7CisgICAgbV9jb250ZXh0LT5saW5rUHJvZ3JhbShtX2lkKTsKKworICAgIGlmICghY29tcG9z
aXRpbmdMb2dFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2NvbnRleHQt
PmdldEVycm9yKCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SKQorICAgICAgICByZXR1
cm47CisKKyAgICBTdHJpbmcgbG9nID0gbV9jb250ZXh0LT5nZXRTaGFkZXJJbmZvTG9nKG1fdmVy
dGV4U2hhZGVyKTsKKyAgICBMT0coQ29tcG9zaXRpbmcsICJWZXJ0ZXggc2hhZGVyIGxvZzogJXNc
biIsIGxvZy51dGY4KCkuZGF0YSgpKTsKKyAgICBsb2cgPSBtX2NvbnRleHQtPmdldFNoYWRlcklu
Zm9Mb2cobV9mcmFnbWVudFNoYWRlcik7CisgICAgTE9HKENvbXBvc2l0aW5nLCAiRnJhZ21lbnQg
c2hhZGVyIGxvZzogJXNcbiIsIGxvZy51dGY4KCkuZGF0YSgpKTsKKyAgICBsb2cgPSBtX2NvbnRl
eHQtPmdldFByb2dyYW1JbmZvTG9nKG1faWQpOworICAgIExPRyhDb21wb3NpdGluZywgIlByb2dy
YW0gbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOworfQorCitUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6flRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKCkKK3sKKyAgICBpZiAoIW1f
aWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC0+ZGV0YWNoU2hhZGVyKG1faWQs
IG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlcihtX3ZlcnRleFNo
YWRlcik7CisgICAgbV9jb250ZXh0LT5kZXRhY2hTaGFkZXIobV9pZCwgbV9mcmFnbWVudFNoYWRl
cik7CisgICAgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIobV9mcmFnbWVudFNoYWRlcik7CisgICAg
bV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKG1faWQpOworfQorCit2b2lkIFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpzZXRNYXRyaXgoR0MzRHVpbnQgbG9jYXRpb24sIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiBtYXRyaXgpCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXg6OkZsb2F0
TWF0cml4NCBmbG9hdE1hdHJpeDsKKyAgICBtYXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXko
ZmxvYXRNYXRyaXgpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwg
MSwgZmFsc2UsIGZsb2F0TWF0cml4KTsKK30KKworR0MzRHVpbnQgVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06OmdldExvY2F0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmFyaWFibGVU
eXBlIHR5cGUpCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3ZhcmlhYmxlcy5lbnN1cmUobmFt
ZSwKKyAgICAgICAgW3RoaXMsICZuYW1lLCB0eXBlXSB7CisgICAgICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVW5pZm9ybVZhcmlhYmxlOgorICAgICAgICAgICAgICAg
IHJldHVybiBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX2lkLCBuYW1lKTsKKyAgICAg
ICAgICAgIGNhc2UgQXR0cmliVmFyaWFibGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fY29u
dGV4dC0+Z2V0QXR0cmliTG9jYXRpb24obV9pZCwgbmFtZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICB9KTsKKyAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKIH0KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCAyMDM4NDE2YThhMTA0
MWQ4MWJkMDJlZGNmZmFjMzVmMmYzMzhlMDMyLi45YTg5NTVhNmY4YzYwNGNiMTA4MzJjZjM5OTcz
Nzg5YmRhNWFkNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApA
QCAtMjIsMTQgKzIyLDE1IEBACiAjZGVmaW5lIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtX2gK
IAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKwogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNT
dHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogI2RlZmluZSBURVhNQVBfREVD
TEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgTmFtZSwgVHlwZSkgR0MzRHVpbnQgQWNjZXNzb3IjI0xv
Y2F0aW9uKCkgeyBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nIG5hbWUoTmFtZSk7IHJldHVybiBn
ZXRMb2NhdGlvbihuYW1lLCBUeXBlKTsgfQogI2RlZmluZSBURVhNQVBfREVDTEFSRV9VTklGT1JN
KEFjY2Vzc29yKSBURVhNQVBfREVDTEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgInVfIiNBY2Nlc3Nv
ciwgVW5pZm9ybVZhcmlhYmxlKQogI2RlZmluZSBURVhNQVBfREVDTEFSRV9BVFRSSUJVVEUoQWNj
ZXNzb3IpIFRFWE1BUF9ERUNMQVJFX1ZBUklBQkxFKEFjY2Vzc29yLCAiYV8iI0FjY2Vzc29yLCBB
dHRyaWJWYXJpYWJsZSkKQEAgLTU4LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVm
IHVuc2lnbmVkIE9wdGlvbnM7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBPcHRp
b25zKTsKKyAgICBzdGF0aWMgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBjcmVhdGUo
UmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBPcHRpb25zKTsKICAgICB2aXJ0dWFsIH5UZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbSgpOworCiAgICAgUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtSUQo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQo
KSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KKyAgICBHcmFwaGljc0NvbnRleHQzRCYgY29u
dGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgVEVYTUFQX0RFQ0xBUkVfQVRUUklC
VVRFKHZlcnRleCkKIApAQCAtODMsMTQgKzg1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1h
dHJpeChHQzNEdWludCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAogcHJpdmF0ZToK
LSAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXJTb3VyY2UsIGNvbnN0IFN0cmluZyYgZnJh
Z21lbnRTaGFkZXJTb3VyY2UpOworICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKFJlZjxH
cmFwaGljc0NvbnRleHQzRD4mJiwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXJTb3VyY2UsIGNv
bnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTb3VyY2UpOworCiAgICAgUGxhdGZvcm0zRE9iamVj
dCBtX3ZlcnRleFNoYWRlcjsKICAgICBQbGF0Zm9ybTNET2JqZWN0IG1fZnJhZ21lbnRTaGFkZXI7
CiAKICAgICBlbnVtIFZhcmlhYmxlVHlwZSB7IFVuaWZvcm1WYXJpYWJsZSwgQXR0cmliVmFyaWFi
bGUgfTsKICAgICBHQzNEdWludCBnZXRMb2NhdGlvbihjb25zdCBBdG9taWNTdHJpbmcmLCBWYXJp
YWJsZVR5cGUpOwogCi0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7Cisg
ICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgUGxhdGZvcm0zRE9iamVj
dCBtX2lkOwogICAgIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBHQzNEdWludD4gbV92YXJpYWJsZXM7
CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278160</attachid>
            <date>2016-05-04 23:01:28 -0700</date>
            <delta_ts>2016-05-04 23:01:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157302-20160504230207.patch</filename>
            <type>text/plain</type>
            <size>13347</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDQ0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTA1LTA0ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbVGV4TWFwXSBDbGVhbiB1
cCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGhlYWRlciBhbmQgdGhlIGlt
cGxlbWVudGF0aW9uIGZpbGUgb2YgdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtIGNsYXNzLiBSZWZlcmVuY2UgdGhlIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIG9iamVj
dCB0aHJvdWdoIGEgUmVmPD4sIGFuZCBoYXZlIHRoZSBjb250ZXh0KCkgcmV0dXJuIGEgcmVmZXJl
bmNlLAorICAgICAgICBub3QgYSBwb2ludGVyLgorCisgICAgICAgIFNvcnQgdGhlIHBhcnRzIG9m
IHRoZSBpbXBsZW1lbnRhdGlvbiBmaWxlIGludG8gc29tZXRoaW5nIG1vcmUKKyAgICAgICAgc2Vu
c2libGUuIFN0cmluZ0J1aWxkZXIgdXNhZ2UgaW4gY3JlYXRlKCkgaXMgaW1wcm92ZWQuIGdldExv
Y2F0aW9uKCkKKyAgICAgICAgb25seSBuZWVkcyB0byBkbyBvbmUgbG9va3VwIGluIHRoZSBtX3Zh
cmlhYmxlcyBtYXAgYnkgdXNpbmcgZW5zdXJlKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0t
IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFRyYW5z
cG9ydFN1cmZhY2U6OmluaXRpYWxpemVTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJHTERhdGE6OlNoYXJlZEdMRGF0YTo6Z2V0U2hhZGVyUHJvZ3JhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmVwYXJlRmlsdGVyUHJvZ3JhbSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
Ojp+VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNvbnRleHQpOgorCiAyMDE2LTA1
LTAzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFydCBvbiBk
aWN0aW9uYXJ5IHN1cHBvcnQgZm9yIElETCwgZ2V0dGluZyBlbm91Z2ggdG8gd29yayBmb3Igb25l
IGRpY3Rpb25hcnkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcAkocmV2aXNp
b24gMjAwNDQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R0xUcmFuc3BvcnRTdXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDcgKzE3MCw3IEBA
IHZvaWQgR0xUcmFuc3BvcnRTdXJmYWNlOjppbml0aWFsaXplU2hhZGUKICAgICB2ZXJ0ZXhBcnJh
eU9iamVjdFN1cHBvcnRlZCA9IG1fY29udGV4dDNELT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwogCiAgICAgVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpU
ZXh0dXJlOwotICAgIG1fc2hhZGVyUHJvZ3JhbSA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpjcmVhdGUobV9jb250ZXh0M0QsIG9wdGlvbnMpOworICAgIG1fc2hhZGVyUHJvZ3JhbSA9IFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoKm1fY29udGV4dDNELCBvcHRpb25zKTsK
IAogICAgIDo6Z2xVc2VQcm9ncmFtKG1fc2hhZGVyUHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwogICAg
IDo6Z2xVbmlmb3JtMWkobV9zaGFkZXJQcm9ncmFtLT5zYW1wbGVyTG9jYXRpb24oKSwgMCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAkocmV2aXNpb24gMjAwNDQ5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgZmxvYXQqIGdhdXNzaWFuS2VybmVs
KCkKIAogc3RhdGljIHZvaWQgcHJlcGFyZUZpbHRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0qIHByb2dyYW0sIGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1bnNp
Z25lZCBwYXNzLCBjb25zdCBJbnRTaXplJiBzaXplLCBHQzNEdWludCBjb250ZW50VGV4dHVyZSkK
IHsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBwcm9ncmFtLT5jb250
ZXh0KCk7CisgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gcHJvZ3JhbS0+Y29u
dGV4dCgpOwogICAgIGNvbnRleHQtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwog
CiAgICAgc3dpdGNoIChvcGVyYXRpb24udHlwZSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAJKHJldmlzaW9uIDIwMDQ0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDE0ICsyNCwxMCBAQAogCiAjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQogCi0jaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgotCiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jZGVmaW5lIFNUUklOR0lGWSguLi4pICNfX1ZBX0FS
R1NfXwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wb3Np
dGluZ0xvZ0VuYWJsZWQoKQpAQCAtNDMsNzYgKzM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNv
bXBvc2l0aW5nTG9nRW5hYmxlZAogI2VuZGlmCiB9CiAKLVRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHZlcnRleCwgY29uc3QgU3RyaW5nJiBmcmFnbWVu
dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotewotICAgIG1fdmVydGV4U2hhZGVyID0gbV9j
b250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwot
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0Nv
bnRleHQzRDo6RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSht
X3ZlcnRleFNoYWRlciwgdmVydGV4KTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShtX2Zy
YWdtZW50U2hhZGVyLCBmcmFnbWVudCk7Ci0gICAgbV9pZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJv
Z3JhbSgpOwotICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0g
ICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyKG1fZnJhZ21lbnRTaGFkZXIpOwotICAgIG1fY29u
dGV4dC0+YXR0YWNoU2hhZGVyKG1faWQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQt
PmF0dGFjaFNoYWRlcihtX2lkLCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmxp
bmtQcm9ncmFtKG1faWQpOwotCi0gICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6Tk9fRVJST1IpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBsb2cg
PSBtX2NvbnRleHQtPmdldFNoYWRlckluZm9Mb2cobV92ZXJ0ZXhTaGFkZXIpOwotICAgIExPRyhD
b21wb3NpdGluZywgIlZlcnRleCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkp
OwotICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVy
KTsKLSAgICBMT0coQ29tcG9zaXRpbmcsICJGcmFnbWVudCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9n
LnV0ZjgoKS5kYXRhKCkpOwotICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2co
bV9pZCk7Ci0gICAgTE9HKENvbXBvc2l0aW5nLCAiUHJvZ3JhbSBsb2c6ICVzXG4iLCBsb2cudXRm
OCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1h
dHJpeChHQzNEdWludCBsb2NhdGlvbiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJp
eCkKLXsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4
OwotICAgIG1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShmbG9hdE1hdHJpeCk7Ci0gICAg
bV9jb250ZXh0LT51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRy
aXgpOwotfQotCi1HQzNEdWludCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRp
b24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWYXJpYWJsZVR5cGUgdHlwZSkKLXsKLSAgICBI
YXNoTWFwPEF0b21pY1N0cmluZywgR0MzRHVpbnQ+OjppdGVyYXRvciBpdCA9IG1fdmFyaWFibGVz
LmZpbmQobmFtZSk7Ci0gICAgaWYgKGl0ICE9IG1fdmFyaWFibGVzLmVuZCgpKQotICAgICAgICBy
ZXR1cm4gaXQtPnZhbHVlOwotCi0gICAgR0MzRHVpbnQgbG9jYXRpb24gPSAwOwotICAgIHN3aXRj
aCAodHlwZSkgewotICAgIGNhc2UgVW5pZm9ybVZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9
IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1faWQsIG5hbWUpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEF0dHJpYlZhcmlhYmxlOgotICAgICAgICBsb2NhdGlvbiA9IG1fY29udGV4
dC0+Z2V0QXR0cmliTG9jYXRpb24obV9pZCwgbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICBtX3ZhcmlhYmxlcy5hZGQobmFtZSwgbG9jYXRpb24pOwotICAgIHJldHVybiBs
b2NhdGlvbjsKLX0KLQotVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbSgpCi17Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtSUQgPSBtX2lk
OwotICAgIGlmICghcHJvZ3JhbUlEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvbnRleHQt
PmRldGFjaFNoYWRlcihwcm9ncmFtSUQsIG1fdmVydGV4U2hhZGVyKTsKLSAgICBtX2NvbnRleHQt
PmRlbGV0ZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7Ci0gICAgbV9jb250ZXh0LT5kZXRhY2hTaGFk
ZXIocHJvZ3JhbUlELCBtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVNo
YWRlcihtX2ZyYWdtZW50U2hhZGVyKTsKLSAgICBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJv
Z3JhbUlEKTsKLX0KKyNkZWZpbmUgU1RSSU5HSUZZKC4uLikgI19fVkFfQVJHU19fCiAKICNkZWZp
bmUgR0xTTF9ESVJFQ1RJVkUoLi4uKSAiIyIjX19WQV9BUkdTX18iXG4iCiAKQEAgLTM3MywxMyAr
MzAwLDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlID0KICAgICAgICAg
fQogICAgICk7CiAKLVBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykK
K1JlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OmNyZWF0ZShSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHNo
YWRlckJ1aWxkZXI7CiAjZGVmaW5lIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhBcHBsaWVyKSBc
Ci0gICAgc2hhZGVyQnVpbGRlci5hcHBlbmQoXAorICAgIG9wdGlvbnNBcHBsaWVyQnVpbGRlci5h
cHBlbmQoXAogICAgICAgICAob3B0aW9ucyAmIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpB
cHBsaWVyKSA/IEVOQUJMRV9BUFBMSUVSKEFwcGxpZXIpIDogRElTQUJMRV9BUFBMSUVSKEFwcGxp
ZXIpKQogCisgICAgU3RyaW5nQnVpbGRlciBvcHRpb25zQXBwbGllckJ1aWxkZXI7CiAgICAgU0VU
X0FQUExJRVJfRlJPTV9PUFRJT05TKFRleHR1cmUpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BU
SU9OUyhSZWN0KTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoU29saWRDb2xvcik7CkBA
IC0zOTYsMTYgKzMyMyw4MyBAQCBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiBUCiAgICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEJsdXJGaWx0ZXIpOwogICAgIFNFVF9B
UFBMSUVSX0ZST01fT1BUSU9OUyhBbHBoYUJsdXIpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BU
SU9OUyhDb250ZW50VGV4dHVyZSk7Ci0gICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhCdWlsZGVyOwot
ICAgIHZlcnRleEJ1aWxkZXIuYXBwZW5kKHNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAg
dmVydGV4QnVpbGRlci5hcHBlbmQodmVydGV4VGVtcGxhdGUpOwotICAgIHNoYWRlckJ1aWxkZXIu
YXBwZW5kKGZyYWdtZW50VGVtcGxhdGUpOwogCi0gICAgU3RyaW5nIHZlcnRleFNvdXJjZSA9IHZl
cnRleEJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgZnJhZ21lbnRTb3VyY2UgPSBzaGFk
ZXJCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhTaGFkZXJCdWls
ZGVyOworICAgIHZlcnRleFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZCh2ZXJ0ZXhUZW1w
bGF0ZSk7CisKKyAgICBTdHJpbmdCdWlsZGVyIGZyYWdtZW50U2hhZGVyQnVpbGRlcjsKKyAgICBm
cmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGUp
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShj
b250ZXh0LCB2ZXJ0ZXhTb3VyY2UsIGZyYWdtZW50U291cmNlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oV1RGTW92ZShjb250ZXh0KSwgdmVy
dGV4U2hhZGVyQnVpbGRlci50b1N0cmluZygpLCBmcmFnbWVudFNoYWRlckJ1aWxkZXIudG9TdHJp
bmcoKSkpOwogfQogCitUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW0oUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgdmVydGV4LCBjb25zdCBTdHJpbmcmIGZyYWdtZW50KQorICAgIDogbV9jb250ZXh0KFdURk1v
dmUoY29udGV4dCkpCit7CisgICAgbV92ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNo
YWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7CisgICAgbV9jb250ZXh0LT5z
aGFkZXJTb3VyY2UobV92ZXJ0ZXhTaGFkZXIsIHZlcnRleCk7CisKKyAgICBtX2ZyYWdtZW50U2hh
ZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5U
X1NIQURFUik7CisgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UobV9mcmFnbWVudFNoYWRlciwg
ZnJhZ21lbnQpOworCisgICAgbV9pZCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOworICAg
IG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihtX3ZlcnRleFNoYWRlcik7CisgICAgbV9jb250ZXh0
LT5jb21waWxlU2hhZGVyKG1fZnJhZ21lbnRTaGFkZXIpOworICAgIG1fY29udGV4dC0+YXR0YWNo
U2hhZGVyKG1faWQsIG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmF0dGFjaFNoYWRl
cihtX2lkLCBtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmxpbmtQcm9ncmFtKG1f
aWQpOworCisgICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRleHQzRDo6
Tk9fRVJST1IpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBsb2cgPSBtX2NvbnRleHQt
PmdldFNoYWRlckluZm9Mb2cobV92ZXJ0ZXhTaGFkZXIpOworICAgIExPRyhDb21wb3NpdGluZywg
IlZlcnRleCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRhKCkpOworICAgIGxvZyA9
IG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBMT0co
Q29tcG9zaXRpbmcsICJGcmFnbWVudCBzaGFkZXIgbG9nOiAlc1xuIiwgbG9nLnV0ZjgoKS5kYXRh
KCkpOworICAgIGxvZyA9IG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cobV9pZCk7CisgICAg
TE9HKENvbXBvc2l0aW5nLCAiUHJvZ3JhbSBsb2c6ICVzXG4iLCBsb2cudXRmOCgpLmRhdGEoKSk7
Cit9CisKK1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjp+VGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW0oKQoreworICAgIGlmICghbV9pZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250
ZXh0LT5kZXRhY2hTaGFkZXIobV9pZCwgbV92ZXJ0ZXhTaGFkZXIpOworICAgIG1fY29udGV4dC0+
ZGVsZXRlU2hhZGVyKG1fdmVydGV4U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRldGFjaFNoYWRl
cihtX2lkLCBtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVNoYWRlciht
X2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0obV9pZCk7Cit9
CisKK3ZvaWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OnNldE1hdHJpeChHQzNEdWludCBs
b2NhdGlvbiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKK3sKKyAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6RmxvYXRNYXRyaXg0IGZsb2F0TWF0cml4OworICAgIG1hdHJpeC50
b0NvbHVtbk1ham9yRmxvYXRBcnJheShmbG9hdE1hdHJpeCk7CisgICAgbV9jb250ZXh0LT51bmlm
b3JtTWF0cml4NGZ2KGxvY2F0aW9uLCAxLCBmYWxzZSwgZmxvYXRNYXRyaXgpOworfQorCitHQzNE
dWludCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Z2V0TG9jYXRpb24oY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBWYXJpYWJsZVR5cGUgdHlwZSkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9
IG1fdmFyaWFibGVzLmVuc3VyZShuYW1lLAorICAgICAgICBbdGhpcywgJm5hbWUsIHR5cGVdIHsK
KyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBVbmlmb3JtVmFy
aWFibGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0
aW9uKG1faWQsIG5hbWUpOworICAgICAgICAgICAgY2FzZSBBdHRyaWJWYXJpYWJsZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRBdHRyaWJMb2NhdGlvbihtX2lkLCBuYW1l
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0pOworICAgIHJldHVybiBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZiAvLyBV
U0UoVEVYVFVSRV9NQVBQRVJfR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uaAkocmV2aXNpb24gMjAwNDQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDE0ICsyMiwxNSBAQAogI2RlZmluZSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bV9oCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bWljU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICNkZWZpbmUgVEVYTUFQ
X0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsIE5hbWUsIFR5cGUpIEdDM0R1aW50IEFjY2Vzc29y
IyNMb2NhdGlvbigpIHsgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyBuYW1lKE5hbWUpOyByZXR1
cm4gZ2V0TG9jYXRpb24obmFtZSwgVHlwZSk7IH0KICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfVU5J
Rk9STShBY2Nlc3NvcikgVEVYTUFQX0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsICJ1XyIjQWNj
ZXNzb3IsIFVuaWZvcm1WYXJpYWJsZSkKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfQVRUUklCVVRF
KEFjY2Vzc29yKSBURVhNQVBfREVDTEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgImFfIiNBY2Nlc3Nv
ciwgQXR0cmliVmFyaWFibGUpCkBAIC01OCwxMCArNTksMTEgQEAgcHVibGljOgogCiAgICAgdHlw
ZWRlZiB1bnNpZ25lZCBPcHRpb25zOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwg
T3B0aW9ucyk7CisgICAgc3RhdGljIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gY3Jl
YXRlKFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgT3B0aW9ucyk7CiAgICAgdmlydHVhbCB+VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0oKTsKKwogICAgIFBsYXRmb3JtM0RPYmplY3QgcHJvZ3Jh
bUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisgICAgR3JhcGhpY3NDb250ZXh0M0Qm
IGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIFRFWE1BUF9ERUNMQVJFX0FU
VFJJQlVURSh2ZXJ0ZXgpCiAKQEAgLTgzLDE0ICs4NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNYXRyaXgoR0MzRHVpbnQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKIHByaXZh
dGU6Ci0gICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4sIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBTdHJpbmcm
IGZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbShS
ZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNl
LCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKKwogICAgIFBsYXRmb3JtM0RP
YmplY3QgbV92ZXJ0ZXhTaGFkZXI7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBtX2ZyYWdtZW50U2hh
ZGVyOwogCiAgICAgZW51bSBWYXJpYWJsZVR5cGUgeyBVbmlmb3JtVmFyaWFibGUsIEF0dHJpYlZh
cmlhYmxlIH07CiAgICAgR0MzRHVpbnQgZ2V0TG9jYXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiwg
VmFyaWFibGVUeXBlKTsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0
OworICAgIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIFBsYXRmb3JtM0RP
YmplY3QgbV9pZDsKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgR0MzRHVpbnQ+IG1fdmFyaWFi
bGVzOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>