<?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>175483</bug_id>
          
          <creation_ts>2017-08-11 10:24:23 -0700</creation_ts>
          <short_desc>Caging shouldn&apos;t have to use a patchpoint for adding</short_desc>
          <delta_ts>2017-08-12 11:46: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>JavaScriptCore</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>175493</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>buildbot</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1337914</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-11 10:24:23 -0700</bug_when>
    <thetext>Currently it&apos;s worth 1.6% on Octane and 5% on Kraken to use a patchpoint there.  That&apos;s super weird!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338000</commentid>
    <comment_count>1</comment_count>
      <attachid>317960</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-11 14:15:32 -0700</bug_when>
    <thetext>Created attachment 317960
I think this should work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338086</commentid>
    <comment_count>2</comment_count>
      <attachid>317977</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-11 17:34:53 -0700</bug_when>
    <thetext>Created attachment 317977
maybe the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338090</commentid>
    <comment_count>3</comment_count>
      <attachid>317979</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-11 18:03:13 -0700</bug_when>
    <thetext>Created attachment 317979
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338143</commentid>
    <comment_count>4</comment_count>
      <attachid>317979</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-12 07:51:34 -0700</bug_when>
    <thetext>Comment on attachment 317979
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        hoist it - that would require quite a bit of algebraic reasoning. But this is the only case we know
&gt; +        where our current constant reassociation heuristics are wrong is caging. So, we can get away with

/this is the only case we know where/the only case we know of where/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338163</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-12 11:45:12 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/220625/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338164</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-12 11:46:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/33864295&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317960</attachid>
            <date>2017-08-11 14:15:32 -0700</date>
            <delta_ts>2017-08-11 17:34:53 -0700</delta_ts>
            <desc>I think this should work</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7298</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lv
biAyMjA1OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHN3aXRj
aCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgIGNhc2UgVHJ1bmM6CiAgICAgICAgIGNhc2Ug
SWRlbnRpdHk6CisgICAgICAgIGNhc2UgT3BhcXVlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMzM2LDcg
KzMzMzcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgICAgICAKLSAgICAgICAgY2FzZSBJZGVudGl0eTogeworICAgICAgICBjYXNlIElkZW50aXR5
OgorICAgICAgICBjYXNlIE9wYXF1ZTogewogICAgICAgICAgICAgQVNTRVJUKHRtcChtX3ZhbHVl
LT5jaGlsZCgwKSkgPT0gdG1wKG1fdmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShyZXZpc2lvbiAy
MjA1OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDYsNiArMTA2LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIE9wYwogICAgIGNhc2UgSWRlbnRpdHk6CiAgICAgICAgIG91dC5wcmludCgiSWRlbnRp
dHkiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgT3BhcXVlOgorICAgICAgICBvdXQucHJp
bnQoIk9wYXF1ZSIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb25zdDMyOgogICAgICAg
ICBvdXQucHJpbnQoIkNvbnN0MzIiKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIyMDU5NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQCBl
bnVtIE9wY29kZSA6IGludDE2X3QgewogICAgIAogICAgIC8vIFBvbHltb3JwaGljIGlkZW50aXR5
LCB1c2FibGUgd2l0aCBhbnkgdmFsdWUgdHlwZS4KICAgICBJZGVudGl0eSwKKyAgICAgICAgCisg
ICAgLy8gVGhpcyBpcyBhbiBpZGVudGl0eSwgYnV0IHdlIHByb2hpYml0IHRoZSBjb21waWxlciBm
cm9tIHJlYWxpemluZyB0aGlzIHVudGlsIHRoZSBiaXR0ZXIgZW5kLiBUaGlzIGNhbgorICAgIC8v
IGJlIHVzZWQgdG8gYmxvY2sgcmVhc3NvY2lhdGlvbiBhbmQgb3RoZXIgY29tcGlsZXIgcmVhc29u
aW5nLCBpZiB3ZSBmaW5kIHRoYXQgaXQncyB3cm9uZyBvcgorICAgIC8vIHVucHJvZml0YWJsZSBh
bmQgd2UgbmVlZCBhbiBlc2NhcGUgaGF0Y2guCisgICAgT3BhcXVlLAogCiAgICAgLy8gQ29uc3Rh
bnRzLiBVc2UgdGhlIENvbnN0VmFsdWUqIGNsYXNzZXMuIENvbnN0YW50cyBleGlzdCBpbiB0aGUg
Y29udHJvbCBmbG93LCBzbyB0aGF0IHdlIGNhbgogICAgIC8vIHJlYXNvbiBhYm91dCB3aGVyZSB3
ZSB3b3VsZCBjb25zdHJ1Y3QgdGhlbS4gTGFyZ2UgY29uc3RhbnRzIGFyZSBleHBlbnNpdmUgdG8g
Y3JlYXRlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2
aXNpb24gMjIwNTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgSWRlbnRpdHk6CisgICAgICAg
ICAgICBjYXNlIE9wYXF1ZToKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPmtpbmQo
KS5oYXNFeHRyYUJpdHMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gdmFsdWUtPmNoaWxkKDApLT50eXBl
KCksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCShyZXZpc2lvbiAyMjA1OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0Niw2ICs1NDYsNyBAQCBFZmZlY3RzIFZhbHVlOjpl
ZmZlY3RzKCkgY29uc3QKICAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CiAgICAgY2FzZSBOb3A6CiAg
ICAgY2FzZSBJZGVudGl0eToKKyAgICBjYXNlIE9wYXF1ZToKICAgICBjYXNlIENvbnN0MzI6CiAg
ICAgY2FzZSBDb25zdDY0OgogICAgIGNhc2UgQ29uc3REb3VibGU6CkBAIC03MDQsNiArNzA1LDcg
QEAgVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0CiAgICAgY2FzZSBGcmFtZVBvaW50ZXI6CiAg
ICAgICAgIHJldHVybiBWYWx1ZUtleShraW5kKCksIHR5cGUoKSk7CiAgICAgY2FzZSBJZGVudGl0
eToKKyAgICBjYXNlIE9wYXF1ZToKICAgICBjYXNlIEFiczoKICAgICBjYXNlIENlaWw6CiAgICAg
Y2FzZSBGbG9vcjoKQEAgLTc5NCw2ICs3OTYsNyBAQCBib29sIFZhbHVlOjppc0ZyZWUoKSBjb25z
dAogICAgIGNhc2UgQ29uc3REb3VibGU6CiAgICAgY2FzZSBDb25zdEZsb2F0OgogICAgIGNhc2Ug
SWRlbnRpdHk6CisgICAgY2FzZSBPcGFxdWU6CiAgICAgY2FzZSBOb3A6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGRlZmF1bHQ6CkBAIC04MDksNiArODEyLDcgQEAgVHlwZSBWYWx1ZTo6dHlw
ZUZvcihLaW5kIGtpbmQsIFZhbHVlKiBmaQogewogICAgIHN3aXRjaCAoa2luZC5vcGNvZGUoKSkg
ewogICAgIGNhc2UgSWRlbnRpdHk6CisgICAgY2FzZSBPcGFxdWU6CiAgICAgY2FzZSBBZGQ6CiAg
ICAgY2FzZSBTdWI6CiAgICAgY2FzZSBNdWw6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmgJKHJldmlzaW9uIDIyMDU5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIGJhZEtpbmQoa2luZCwgbnVtQXJncyk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAgICAgY2FzZSBPcGFxdWU6CiAgICAgICAgIGNhc2Ug
TmVnOgogICAgICAgICBjYXNlIENsejoKICAgICAgICAgY2FzZSBBYnM6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMjA2
MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExNjMxLDI1ICsxMTYzMSwxNCBAQCBwcml2YXRlOgogICAgICAgICBM
VmFsdWUgYmFzZVB0ciA9IG1fb3V0LmNvbnN0SW50UHRyKEdpZ2FjYWdlOjpiYXNlUHRyKGtpbmQp
KTsKICAgICAgICAgTFZhbHVlIG1hc2sgPSBtX291dC5jb25zdEludFB0cihHSUdBQ0FHRV9NQVNL
KTsKICAgICAgICAgCi0gICAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgQjMg
bWVzc2luZyB1cCB0aGUgYml0QW5kLiBBbHNvLCB3ZSB3YW50IHRvIGdldCBCMydzIGV4Y2VsbGVu
dAotICAgICAgICAvLyBjb2RlZ2VuIGZvciAyLW9wZXJhbmQgYW5kcSBvbiB4ODYtNjQuCiAgICAg
ICAgIExWYWx1ZSBtYXNrZWQgPSBtX291dC5iaXRBbmQocHRyLCBtYXNrKTsKLSAgICAgICAgCi0g
ICAgICAgIC8vIEJ1dCBCMyB3aWxsIGN1cnJlbnRseSBtZXNzIHVwIHRoZSBjb2RlIGdlbmVyYXRp
b24gb2YgdGhpcyBhZGQuIEJhc2ljYWxseSwgYW55IG9mZnNldCBmcm9tIHdoYXQgd2UKLSAgICAg
ICAgLy8gY29tcHV0ZSBoZXJlIHdpbGwgZ2V0IHJlYXNzb2NpYXRlZCBhbmQgZm9sZGVkIHdpdGgg
R2lnYWNhZ2U6OmJhc2VQdHIuIFRoZXJlJ3MgYSB3b3JsZCBpbiB3aGljaAotICAgICAgICAvLyBt
b3ZlQ29uc3RhbnRzKCkgb2JzZXJ2ZXMgdGhhdCBpdCBuZWVkcyB0byByZWFzc29jaWF0ZSBpbiBv
cmRlciB0byBob2lzdCB0aGUgYmlnIGNvbnN0YW50cy4gQnV0Ci0gICAgICAgIC8vIGl0J3MgbXVj
aCBlYXNpZXIgdG8ganVzdCBibG9jayBCMydzIGJhZG5lc3MgaGVyZS4gVGhhdCdzIHdoYXQgd2Ug
ZG8gZm9yIG5vdy4KLSAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBk
aWRuJ3QgaGF2ZSB0byBkbyB0aGlzIGhhY2suCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0ODMKLSAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBw
YXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChwb2ludGVyVHlwZSgpKTsKLSAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGJhc2VQdHIpOwotICAgICAgICBwYXRjaHBvaW50
LT5hcHBlbmRTb21lUmVnaXN0ZXIobWFza2VkKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2Vu
ZXJhdG9yKAotICAgICAgICAgICAgW10gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICAgICAgICAgIGppdC5hZGRQdHIo
cGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cyA9IEVmZmVjdHM6Om5vbmUo
KTsKLSAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBt
X291dC5hZGQobWFza2VkLCBiYXNlUHRyKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBC
MyBkb2Vzbid0IHRyeSB0byBkbyBzbWFydCByZWFzc29jaWF0aW9uIG9mIHRoZXNlIHBvaW50ZXIg
Yml0cy4KKyAgICAgICAgLy8gRklYTUU6IEluIGFuIGlkZWFsIHdvcmxkLCBCMyB3b3VsZCBub3Qg
ZG8gaGFybWZ1bCByZWFzc29jaWF0aW9ucywgYW5kIGlmIGl0IGRpZCwgaXQgd291bGQgYmUgYWJs
ZQorICAgICAgICAvLyB0byB1bmRvIHRoZW0gZHVyaW5nIGNvbnN0YW50IGhvaXN0aW5nIGFuZCBy
ZWdhbGxvYy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTQ5MworICAgICAgICByZXR1cm4gbV9vdXQub3BhcXVlKHJlc3VsdCk7CiAgICAgfQog
ICAgIAogICAgIHZvaWQgYnVpbGRTd2l0Y2goU3dpdGNoRGF0YSogZGF0YSwgTFR5cGUgdHlwZSwg
TFZhbHVlIHN3aXRjaFZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0
cHV0LmNwcAkocmV2aXNpb24gMjIwNTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDExIEBAIExWYWx1ZSBP
dXRwdXQ6OnBoaShMVHlwZSB0eXBlKQogICAgIHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6
OlZhbHVlPihtX3Byb2MsIEIzOjpQaGksIHR5cGUsIG9yaWdpbigpKTsKIH0KIAorTFZhbHVlIE91
dHB1dDo6b3BhcXVlKExWYWx1ZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gbV9ibG9jay0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIE9wYXF1ZSwgb3JpZ2luKCksIHZhbHVlKTsKK30KKwogTFZhbHVl
IE91dHB1dDo6YWRkKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCiB7CiAgICAgaWYgKFZhbHVl
KiByZXN1bHQgPSBsZWZ0LT5hZGRDb25zdGFudChtX3Byb2MsIHJpZ2h0KSkgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAyMjA1OTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEs
NiArMTUxLDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhp
LCBWYWx1ZUZyb21CbG9jayk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gUGFyYW1zPgogICAg
IHZvaWQgYWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jaywgUGFyYW1z
Li4uIHRoZVJlc3QpOworICAgIAorICAgIExWYWx1ZSBvcGFxdWUoTFZhbHVlKTsKIAogICAgIExW
YWx1ZSBhZGQoTFZhbHVlLCBMVmFsdWUpOwogICAgIExWYWx1ZSBzdWIoTFZhbHVlLCBMVmFsdWUp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317977</attachid>
            <date>2017-08-11 17:34:53 -0700</date>
            <delta_ts>2017-08-11 18:03:13 -0700</delta_ts>
            <desc>maybe the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14356</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNjE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE3LTA4LTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FnaW5nIHNob3VsZG4ndCBoYXZlIHRvIHVzZSBhIHBhdGNocG9pbnQgZm9yIGFkZGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiMy9CM0xvd2Vy
VG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpzaG91bGRDb3B5
UHJvcGFnYXRlKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6
CisgICAgICAgICogYjMvQjNPcGNvZGUuaDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVl
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3RzIGNvbnN0KToKKyAgICAgICAg
KEpTQzo6QjM6OlZhbHVlOjprZXkgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Omlz
RnJlZSBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6dHlwZUZvcik6CisgICAgICAg
ICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzVmFsdWVLZXkuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6VmFsdWVLZXk6Om1hdGVyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y2FnZWQpOgorICAgICAgICAqIGZ0bC9GVExPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
Ok91dHB1dDo6b3BhcXVlKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisKIDIwMTctMDgt
MTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBKU0xleGljYWxF
bnZpcm9ubWVudCBuZWVkcyB0byBiZSBpbiB0aGUgSlNWYWx1ZSBnaWdhY2FnZQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIyMDYxOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODksNiArMTg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3dpdGNoICh2YWx1ZS0+
b3Bjb2RlKCkpIHsKICAgICAgICAgY2FzZSBUcnVuYzoKICAgICAgICAgY2FzZSBJZGVudGl0eToK
KyAgICAgICAgY2FzZSBPcGFxdWU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMzMzYsNyArMzMzNyw4IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIElkZW50aXR5OiB7CisgICAgICAgIGNhc2UgSWRlbnRpdHk6CisgICAgICAg
IGNhc2UgT3BhcXVlOiB7CiAgICAgICAgICAgICBBU1NFUlQodG1wKG1fdmFsdWUtPmNoaWxkKDAp
KSA9PSB0bXAobV92YWx1ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIyMDYxOCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNiw2ICsxMDYsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bj
CiAgICAgY2FzZSBJZGVudGl0eToKICAgICAgICAgb3V0LnByaW50KCJJZGVudGl0eSIpOwogICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBPcGFxdWU6CisgICAgICAgIG91dC5wcmludCgiT3BhcXVl
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbnN0MzI6CiAgICAgICAgIG91dC5wcmlu
dCgiQ29uc3QzMiIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNPcGNvZGUuaAkocmV2aXNpb24gMjIwNjE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIGVudW0gT3Bjb2Rl
IDogaW50MTZfdCB7CiAgICAgCiAgICAgLy8gUG9seW1vcnBoaWMgaWRlbnRpdHksIHVzYWJsZSB3
aXRoIGFueSB2YWx1ZSB0eXBlLgogICAgIElkZW50aXR5LAorICAgICAgICAKKyAgICAvLyBUaGlz
IGlzIGFuIGlkZW50aXR5LCBidXQgd2UgcHJvaGliaXQgdGhlIGNvbXBpbGVyIGZyb20gcmVhbGl6
aW5nIHRoaXMgdW50aWwgdGhlIGJpdHRlciBlbmQuIFRoaXMgY2FuCisgICAgLy8gYmUgdXNlZCB0
byBibG9jayByZWFzc29jaWF0aW9uIGFuZCBvdGhlciBjb21waWxlciByZWFzb25pbmcsIGlmIHdl
IGZpbmQgdGhhdCBpdCdzIHdyb25nIG9yCisgICAgLy8gdW5wcm9maXRhYmxlIGFuZCB3ZSBuZWVk
IGFuIGVzY2FwZSBoYXRjaC4KKyAgICBPcGFxdWUsCiAKICAgICAvLyBDb25zdGFudHMuIFVzZSB0
aGUgQ29uc3RWYWx1ZSogY2xhc3Nlcy4gQ29uc3RhbnRzIGV4aXN0IGluIHRoZSBjb250cm9sIGZs
b3csIHNvIHRoYXQgd2UgY2FuCiAgICAgLy8gcmVhc29uIGFib3V0IHdoZXJlIHdlIHdvdWxkIGNv
bnN0cnVjdCB0aGVtLiBMYXJnZSBjb25zdGFudHMgYXJlIGV4cGVuc2l2ZSB0byBjcmVhdGUuCkBA
IC0yNTgsNyArMjYzLDcgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICAvLyBvZiB0cmFu
c2Zvcm1hdGlvbiBvciBhbmFseXNpcyB0aGF0IHJlbGllcyBvbiB0aGUgaW5zaWdodCB0aGF0IERl
cGVuZCBpcyByZWFsbHkgemVybyBpcyB1bnNvdW5kLAogICAgIC8vIGJlY2F1c2UgaXQgdW5sb2Nr
cyByZW9yZGVyaW5nIG9mIHVzZXJzIG9mIEByZXN1bHQgYW5kIEBwaGFudG9tLgogICAgIC8vCi0g
ICAgLy8gT24gWDg2LCB0aGlzIGlzIGxvd2VyZWQgdG8gYSBsb2FkLWxvYWQgZmVuY2UgYW5kIEBy
ZXN1bHQgdXNlcyBAcGhhbnRvbSBkaXJlY3RseS4KKyAgICAvLyBPbiBYODYsIHRoaXMgaXMgbG93
ZXJlZCB0byBhIGxvYWQtbG9hZCBmZW5jZSBhbmQgQHJlc3VsdCBmb2xkcyB0byB6ZXJvLgogICAg
IC8vCiAgICAgLy8gT24gQVJNLCB0aGlzIGlzIGxvd2VyZWQgYXMgaWYgbGlrZToKICAgICAvLwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAko
cmV2aXNpb24gMjIwNjE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODUsNiArNDg1LDE1IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZWR1Y2VWYWx1ZVN0cmVuZ3RoKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV92
YWx1ZS0+b3Bjb2RlKCkpIHsKKyAgICAgICAgY2FzZSBPcGFxdWU6CisgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IE9wYXF1ZShPcGFxdWUodmFsdWUpKQorICAgICAgICAgICAgLy8gSW50byB0aGlz
OiBPcGFxdWUodmFsdWUpCisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IE9wYXF1ZSkgeworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92
YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBZGQ6CiAgICAg
ICAgICAgICBoYW5kbGVDb21tdXRhdGl2aXR5KCk7CiAgICAgICAgICAgICAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIyMDYxOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICAgICAgY2FzZSBPcGFxdWU6CiAg
ICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5raW5kKCkuaGFzRXh0cmFCaXRzKCksICgi
QXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxk
cmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2
YWx1ZS0+dHlwZSgpID09IHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjIwNjE4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NDYsNiArNTQ2LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAg
c3dpdGNoIChvcGNvZGUoKSkgewogICAgIGNhc2UgTm9wOgogICAgIGNhc2UgSWRlbnRpdHk6Cisg
ICAgY2FzZSBPcGFxdWU6CiAgICAgY2FzZSBDb25zdDMyOgogICAgIGNhc2UgQ29uc3Q2NDoKICAg
ICBjYXNlIENvbnN0RG91YmxlOgpAQCAtNzAwLDEwICs3MDEsMTMgQEAgRWZmZWN0cyBWYWx1ZTo6
ZWZmZWN0cygpIGNvbnN0CiAKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogeworICAgIC8v
IE5PVEU6IEV4Y2VwdCBmb3IgZXhvdGljIHRoaW5ncyBsaWtlIENoZWNrQWRkIGFuZCBmcmllbmRz
LCB3ZSB3YW50IGV2ZXJ5IGNhc2UgaGVyZSB0byBoYXZlIGEKKyAgICAvLyBjb3JyZXNwb25kaW5n
IGNhc2UgaW4gVmFsdWVLZXk6Om1hdGVyaWFsaXplKCkuCiAgICAgc3dpdGNoIChvcGNvZGUoKSkg
ewogICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICByZXR1cm4gVmFsdWVLZXkoa2luZCgp
LCB0eXBlKCkpOwogICAgIGNhc2UgSWRlbnRpdHk6CisgICAgY2FzZSBPcGFxdWU6CiAgICAgY2Fz
ZSBBYnM6CiAgICAgY2FzZSBDZWlsOgogICAgIGNhc2UgRmxvb3I6CkBAIC03OTQsNiArNzk4LDcg
QEAgYm9vbCBWYWx1ZTo6aXNGcmVlKCkgY29uc3QKICAgICBjYXNlIENvbnN0RG91YmxlOgogICAg
IGNhc2UgQ29uc3RGbG9hdDoKICAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgT3BhcXVlOgog
ICAgIGNhc2UgTm9wOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgpAQCAtODA5
LDYgKzgxNCw3IEBAIFR5cGUgVmFsdWU6OnR5cGVGb3IoS2luZCBraW5kLCBWYWx1ZSogZmkKIHsK
ICAgICBzd2l0Y2ggKGtpbmQub3Bjb2RlKCkpIHsKICAgICBjYXNlIElkZW50aXR5OgorICAgIGNh
c2UgT3BhcXVlOgogICAgIGNhc2UgQWRkOgogICAgIGNhc2UgU3ViOgogICAgIGNhc2UgTXVsOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMjA2MTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjgs
NiArMzI4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBiYWRLaW5kKGtpbmQsIG51bUFy
Z3MpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSWRlbnRpdHk6CisgICAgICAg
IGNhc2UgT3BhcXVlOgogICAgICAgICBjYXNlIE5lZzoKICAgICAgICAgY2FzZSBDbHo6CiAgICAg
ICAgIGNhc2UgQWJzOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVLZXku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlS2V5LmNw
cAkocmV2aXNpb24gMjIwNjE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVL
ZXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsMTEgKzU2LDIwIEBAIHZvaWQgVmFsdWVLZXk6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY28KIAogVmFsdWUqIFZhbHVlS2V5OjptYXRlcmlhbGl6
ZShQcm9jZWR1cmUmIHByb2MsIE9yaWdpbiBvcmlnaW4pIGNvbnN0CiB7CisgICAgLy8gTk9URTog
V2Ugc29tZXRpbWVzIGNhbm5vdCByZXR1cm4gYSBWYWx1ZSogZm9yIHNvbWUga2V5LCBsaWtlIGZv
ciBDaGVjayBhbmQgZnJpZW5kcy4gVGhhdCdzIGJlY2F1c2UKKyAgICAvLyB0aG91Z2ggdGhvc2Ug
bm9kZXMgaGF2ZSBzaWRlIGV4aXQgZWZmZWN0cy4gSXQgd291bGQgYmUgd2VpcmQgdG8gbWF0ZXJp
YWxpemUgYW55dGhpbmcgdGhhdCBoYXMgYSBzaWRlCisgICAgLy8gZXhpdC4gV2UgY2FuJ3QgcG9z
c2libHkga25vdyBlbm91Z2ggYWJvdXQgYSBzaWRlIGV4aXQgdG8ga25vdyB3aGVyZSBpdCB3b3Vs
ZCBiZSBzYWZlIHRvIGVtaXQgb25lLgogICAgIHN3aXRjaCAob3Bjb2RlKCkpIHsKICAgICBjYXNl
IEZyYW1lUG9pbnRlcjoKICAgICAgICAgcmV0dXJuIHByb2MuYWRkPFZhbHVlPihraW5kKCksIHR5
cGUoKSwgb3JpZ2luKTsKICAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgT3BhcXVlOgorICAg
IGNhc2UgQWJzOgorICAgIGNhc2UgRmxvb3I6CisgICAgY2FzZSBDZWlsOgogICAgIGNhc2UgU3Fy
dDoKKyAgICBjYXNlIE5lZzoKKyAgICBjYXNlIERlcGVuZDoKICAgICBjYXNlIFNFeHQ4OgogICAg
IGNhc2UgU0V4dDE2OgogICAgIGNhc2UgU0V4dDMyOgpAQCAtNzEsNyArODAsNiBAQCBWYWx1ZSog
VmFsdWVLZXk6Om1hdGVyaWFsaXplKFByb2NlZHVyZSYgCiAgICAgY2FzZSBJVG9GOgogICAgIGNh
c2UgRmxvYXRUb0RvdWJsZToKICAgICBjYXNlIERvdWJsZVRvRmxvYXQ6Ci0gICAgY2FzZSBDaGVj
azoKICAgICAgICAgcmV0dXJuIHByb2MuYWRkPFZhbHVlPihraW5kKCksIHR5cGUoKSwgb3JpZ2lu
LCBjaGlsZChwcm9jLCAwKSk7CiAgICAgY2FzZSBBZGQ6CiAgICAgY2FzZSBTdWI6CkBAIC05Niw2
ICsxMDQsNyBAQCBWYWx1ZSogVmFsdWVLZXk6Om1hdGVyaWFsaXplKFByb2NlZHVyZSYgCiAgICAg
Y2FzZSBCZWxvdzoKICAgICBjYXNlIEFib3ZlRXF1YWw6CiAgICAgY2FzZSBCZWxvd0VxdWFsOgor
ICAgIGNhc2UgRXF1YWxPclVub3JkZXJlZDoKICAgICAgICAgcmV0dXJuIHByb2MuYWRkPFZhbHVl
PihraW5kKCksIHR5cGUoKSwgb3JpZ2luLCBjaGlsZChwcm9jLCAwKSwgY2hpbGQocHJvYywgMSkp
OwogICAgIGNhc2UgU2VsZWN0OgogICAgICAgICByZXR1cm4gcHJvYy5hZGQ8VmFsdWU+KGtpbmQo
KSwgdHlwZSgpLCBvcmlnaW4sIGNoaWxkKHByb2MsIDApLCBjaGlsZChwcm9jLCAxKSwgY2hpbGQo
cHJvYywgMikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAkocmV2aXNpb24gMjIwNjE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYyOCwyNSArMTE2Mjgs
MjEgQEAgcHJpdmF0ZToKICAgICAgICAgTFZhbHVlIGJhc2VQdHIgPSBtX291dC5jb25zdEludFB0
cihHaWdhY2FnZTo6YmFzZVB0cihraW5kKSk7CiAgICAgICAgIExWYWx1ZSBtYXNrID0gbV9vdXQu
Y29uc3RJbnRQdHIoR0lHQUNBR0VfTUFTSyk7CiAgICAgICAgIAotICAgICAgICAvLyBXZSBkb24n
dCBoYXZlIHRvIHdvcnJ5IGFib3V0IEIzIG1lc3NpbmcgdXAgdGhlIGJpdEFuZC4gQWxzbywgd2Ug
d2FudCB0byBnZXQgQjMncyBleGNlbGxlbnQKLSAgICAgICAgLy8gY29kZWdlbiBmb3IgMi1vcGVy
YW5kIGFuZHEgb24geDg2LTY0LgogICAgICAgICBMVmFsdWUgbWFza2VkID0gbV9vdXQuYml0QW5k
KHB0ciwgbWFzayk7Ci0gICAgICAgIAotICAgICAgICAvLyBCdXQgQjMgd2lsbCBjdXJyZW50bHkg
bWVzcyB1cCB0aGUgY29kZSBnZW5lcmF0aW9uIG9mIHRoaXMgYWRkLiBCYXNpY2FsbHksIGFueSBv
ZmZzZXQgZnJvbSB3aGF0IHdlCi0gICAgICAgIC8vIGNvbXB1dGUgaGVyZSB3aWxsIGdldCByZWFz
c29jaWF0ZWQgYW5kIGZvbGRlZCB3aXRoIEdpZ2FjYWdlOjpiYXNlUHRyLiBUaGVyZSdzIGEgd29y
bGQgaW4gd2hpY2gKLSAgICAgICAgLy8gbW92ZUNvbnN0YW50cygpIG9ic2VydmVzIHRoYXQgaXQg
bmVlZHMgdG8gcmVhc3NvY2lhdGUgaW4gb3JkZXIgdG8gaG9pc3QgdGhlIGJpZyBjb25zdGFudHMu
IEJ1dAotICAgICAgICAvLyBpdCdzIG11Y2ggZWFzaWVyIHRvIGp1c3QgYmxvY2sgQjMncyBiYWRu
ZXNzIGhlcmUuIFRoYXQncyB3aGF0IHdlIGRvIGZvciBub3cuCi0gICAgICAgIC8vIEZJWE1FOiBJ
dCB3b3VsZCBiZSBiZXR0ZXIgaWYgd2UgZGlkbid0IGhhdmUgdG8gZG8gdGhpcyBoYWNrLgotICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDgzCi0g
ICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQocG9p
bnRlclR5cGUoKSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihiYXNl
UHRyKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKG1hc2tlZCk7Ci0g
ICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKLSAgICAgICAgICAgIFtdIChDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAg
ICAgICAgICAgICAgICBqaXQuYWRkUHRyKHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigp
LCBwYXJhbXNbMF0uZ3ByKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIHBhdGNocG9pbnQt
PmVmZmVjdHMgPSBFZmZlY3RzOjpub25lKCk7Ci0gICAgICAgIHJldHVybiBwYXRjaHBvaW50Owor
ICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuYWRkKG1hc2tlZCwgYmFzZVB0cik7CisKKyAg
ICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgQjMgZG9lc24ndCB0cnkgdG8gZG8gc21hcnQgcmVhc3Nv
Y2lhdGlvbiBvZiB0aGVzZSBwb2ludGVyIGJpdHMuCisgICAgICAgIC8vIEZJWE1FOiBJbiBhbiBp
ZGVhbCB3b3JsZCwgQjMgd291bGQgbm90IGRvIGhhcm1mdWwgcmVhc3NvY2lhdGlvbnMsIGFuZCBp
ZiBpdCBkaWQsIGl0IHdvdWxkIGJlIGFibGUKKyAgICAgICAgLy8gdG8gdW5kbyB0aGVtIGR1cmlu
ZyBjb25zdGFudCBob2lzdGluZyBhbmQgcmVnYWxsb2MuIEFzIGl0IHN0YW5kcywgaWYgeW91IHJl
bW92ZSB0aGlzIHRoZW4gT2N0YW5lCisgICAgICAgIC8vIGdldHMgMS42JSBzbG93ZXIgYW5kIEty
YWtlbiBnZXRzIDUlIHNsb3dlci4gSXQncyBhbGwgYmVjYXVzZSB0aGUgYmFzZVB0ciwgd2hpY2gg
aXMgYSBjb25zdGFudCwKKyAgICAgICAgLy8gZ2V0cyByZWFzc29jaWF0ZWQgb3V0IG9mIHRoZSBh
ZGQgYWJvdmUgYW5kIGludG8gdGhlIGFkZHJlc3MgYXJpdGhtZXRpYy4gVGhpcyBkaXNhYmxlcyBo
b2lzdGluZyBvZgorICAgICAgICAvLyB0aGUgYmFzZVB0ciBjb25zdGFudC4gSG9pc3RpbmcgdGhh
dCBjb25zdGFudCBpcyB3b3J0aCBhIGxvdCBtb3JlIHBlcmYgdGhhbiB0aGUgcmVhc3NvY2lhdGlv
bi4gT25lCisgICAgICAgIC8vIHdheSB0byBtYWtlIHRoaXMgYWxsIHdvcmsgaGFwcGlseSBpcyB0
byBjb21iaW5lIG9mZnNldCBsZWdhbGl6YXRpb24gd2l0aCBjb25zdGFudCBob2lzdGluZywgYW5k
CisgICAgICAgIC8vIHRoZW4gdGVhY2ggaXQgcmVhc3NvY2lhdGlvbi4gU28sIEFkZChBZGQoYSwg
YiksIGNvbnN0KSB3aGVyZSBhIGlzIGxvb3AtaW52YXJpYW50IHdoaWxlIGIgaXNuJ3QKKyAgICAg
ICAgLy8gd2lsbCB0dXJuIGludG8gQWRkKEFkZChhLCBjb25zdCksIGIpIGJ5IHRoZSBjb25zdGFu
dCBob2lzdGVyLiBXZSB3b3VsZCBoYXZlIHRvIHRlYWNoIEIzIHRvIGRvIHRoaXMKKyAgICAgICAg
Ly8gYW5kIHBvc3NpYmx5IG90aGVyIHNtYXJ0IHRoaW5ncyBpZiB3ZSB3YW50IHRvIGJlIGFibGUg
dG8gcmVtb3ZlIHRoaXMgb3BhcXVlLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDkzCisgICAgICAgIHJldHVybiBtX291dC5vcGFxdWUocmVz
dWx0KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBidWlsZFN3aXRjaChTd2l0Y2hEYXRhKiBkYXRh
LCBMVHlwZSB0eXBlLCBMVmFsdWUgc3dpdGNoVmFsdWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE91dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPdXRwdXQuY3BwCShyZXZpc2lvbiAyMjA2MTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcs
MTEgQEAgTFZhbHVlIE91dHB1dDo6cGhpKExUeXBlIHR5cGUpCiAgICAgcmV0dXJuIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlBoaSwgdHlwZSwgb3JpZ2luKCkpOwog
fQogCitMVmFsdWUgT3V0cHV0OjpvcGFxdWUoTFZhbHVlIHZhbHVlKQoreworICAgIHJldHVybiBt
X2Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT3BhcXVlLCBvcmlnaW4oKSwgdmFsdWUp
OworfQorCiBMVmFsdWUgT3V0cHV0OjphZGQoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkKIHsK
ICAgICBpZiAoVmFsdWUqIHJlc3VsdCA9IGxlZnQtPmFkZENvbnN0YW50KG1fcHJvYywgcmlnaHQp
KSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJldmlzaW9uIDIy
MDYxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE1MSw2ICsxNTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRJbmNvbWluZ1Rv
UGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBQYXJhbXM+CiAgICAgdm9pZCBhZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJv
bUJsb2NrLCBQYXJhbXMuLi4gdGhlUmVzdCk7CisgICAgCisgICAgTFZhbHVlIG9wYXF1ZShMVmFs
dWUpOwogCiAgICAgTFZhbHVlIGFkZChMVmFsdWUsIExWYWx1ZSk7CiAgICAgTFZhbHVlIHN1YihM
VmFsdWUsIExWYWx1ZSk7CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNjE4
KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxNy0wOC0xMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgor
CisgICAgICAgIENhZ2luZyBzaG91bGRuJ3QgaGF2ZSB0byB1c2UgYSBwYXRjaHBvaW50IGZvciBh
ZGRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNy0wOC0wNyAg
Sm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgc3VwZXJzY3JpcHQg
cmVuZGVyaW5nIGZvciBibG9nIHBvc3RzCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3Mv
YjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShy
ZXZpc2lvbiAyMjA2MTgpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRp
YXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTIg
QEAKICAgICAgICAgdG8gYW4gSWRlbnRpdHkgYnkgZG9pbmcgY29udmVydFRvSWRlbnRpdHkob3Ro
ZXJWYWx1ZSkuICBJZiB0aGUgdmFsdWUgaXMgVm9pZCwKICAgICAgICAgY29udmVydFRvSWRlbnRp
dHkoKSBjb252ZXJ0cyBpdCB0byBhIE5vcCBpbnN0ZWFkLjwvZGQ+CiAKKyAgICAgIDxkdD5UIE9w
YXF1ZShUKTwvZHQ+CisgICAgICA8ZGQ+UmV0dXJucyB0aGUgcGFzc2VkIHZhbHVlLiAgTWF5IGJl
IHVzZWQgZm9yIGFueSB0eXBlIGV4Y2VwdCBWb2lkLiAgVGhpcyBvcGNvZGUgaXMgcHJvdmlkZWQg
YXMgYSBoYWNrCisgICAgICAgIGZvciBhdm9pZGluZyBCMyBvcHRpbWl6YXRpb25zIHRoYXQgdGhl
IGNsaWVudCBmaW5kcyB1bnByb2ZpdGFibGUuICBCMyB0cmVhdHMgT3BhcXVlIGFzIGFuIGlkZW50
aXR5CisgICAgICAgIG9ubHkgZHVyaW5nIGluc3RydWN0aW9uIHNlbGVjdGlvbi4gIEFsbCBwcmlv
ciBvcHRpbWl6YXRpb25zIChpbmNsdWRpbmcgYWxsIEIzIElSIG9wdGltaXphdGlvbnMpIGRvCisg
ICAgICAgIG5vdCBrbm93IHdoYXQgT3BhcXVlIGRvZXMsIG90aGVyIHRoYW4gT3BhcXVlKHgpID09
IE9wYXF1ZSh4KSBhbmQgT3BhcXVlKE9wYXF1ZSh4KSkgPT0gT3BhcXVlKHgpLjwvZGQ+CisKICAg
ICAgIDxkdD5JbnQzMiBDb25zdDMyKGNvbnN0YW50KTwvZHQ+CiAgICAgICA8ZGQ+MzItYml0IGlu
dGVnZXIgY29uc3RhbnQuICBNdXN0IHVzZSB0aGUgQ29uc3QzMlZhbHVlIGNsYXNzLCB3aGljaCBo
YXMgc3BhY2UgZm9yIHRoZQogICAgICAgICBpbnQzMl90IGNvbnN0YW50LjwvZGQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317979</attachid>
            <date>2017-08-11 18:03:13 -0700</date>
            <delta_ts>2017-08-12 07:51:34 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16886</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNjE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE3LTA4LTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FnaW5nIHNob3VsZG4ndCBoYXZlIHRvIHVzZSBhIHBhdGNocG9pbnQgZm9yIGFkZGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FnaW5nIGludm9s
dmVzIGRvaW5nIGEgQWRkKHB0ciwgbGFyZ2VDb25zdGFudCkuIEFsbCBvZiBCMydzIGhldXJpc3Rp
Y3MgZm9yIGhvdyB0byBkZWFsIHdpdGgKKyAgICAgICAgY29uc3RhbnRzIGFuZCBhc3NvY2lhdGl2
ZSBvcGVyYXRpb25zIGRpY3RhdGUgdGhhdCB5b3UgYWx3YXlzIHdhbnQgdG8gc2luayBjb25zdGFu
dHMuIEZvciBleGFtcGxlLAorICAgICAgICBBZGQoQWRkKGEsIGNvbnN0YW50KSwgYikgYWx3YXlz
IGJlY29tZXMgQWRkKEFkZChhLCBiKSwgY29uc3RhbnQpLiBUaGlzIGlzIHByb2ZpdGFibGUgYmVj
YXVzZSBpbgorICAgICAgICB0eXBpY2FsIGNvZGUsIGl0IHJldmVhbHMgZG93bnN0cmVhbSBvcHRp
bWl6YXRpb25zLiBCdXQgaXQncyB0ZXJyaWJsZSBpbiB0aGUgY2FzZSBvZiBjYWdpbmcsIGJlY2F1
c2UKKyAgICAgICAgd2Ugd2FudCB0aGUgbGFyZ2UgY29uc3RhbnQgKHdoaWNoIGlzIHNoYXJlZCBi
eSBhbGwgY2FnaW5nIG9wZXJhdGlvbnMpIHRvIGJlIGhvaXN0ZWQuIFJlYXNzb2NpYXRpbmcgdG8K
KyAgICAgICAgc2luayBjb25zdGFudHMgb2JzY3VyZXMgdGhlIGNvbnN0YW50IGluIHRoaXMgY2Fz
ZS4gQ3VycmVudGx5LCBtb3ZlQ29uc3RhbnRzIGlzIG5vdCBzbWFydCBlbm91Z2ggdG8KKyAgICAg
ICAgcmVhc3NvY2lhdGUsIHNvIGluc3RlYWQgb2Ygc2lua2luZyBsYXJnZUNvbnN0YW50LCBpdCB0
cmllcyAoYW5kIG9mdGVuIGZhaWxzKSB0byBzaW5rIHNvbWUgb3RoZXIKKyAgICAgICAgY29uc3Rh
bnRzIGluc3RlYWQuIFdpdGhvdXQgc29tZSBoYWNrcywgdGhpcyBpcyBhIDUlIEtyYWtlbiByZWdy
ZXNzaW9uIGFuZCBhIDEuNiUgT2N0YW5lIHJlZ3Jlc3Npb24uCisgICAgICAgIEl0J3Mgbm90IGNs
ZWFyIHRoYXQgbW92ZUNvbnN0YW50cyBjb3VsZCBldmVyIGJlIHNtYXJ0IGVub3VnaCB0byByZW1h
dGVyaWFsaXplIHRoYXQgY29uc3RhbnQgYW5kIHRoZW4KKyAgICAgICAgaG9pc3QgaXQgLSB0aGF0
IHdvdWxkIHJlcXVpcmUgcXVpdGUgYSBiaXQgb2YgYWxnZWJyYWljIHJlYXNvbmluZy4gQnV0IHRo
aXMgaXMgdGhlIG9ubHkgY2FzZSB3ZSBrbm93CisgICAgICAgIHdoZXJlIG91ciBjdXJyZW50IGNv
bnN0YW50IHJlYXNzb2NpYXRpb24gaGV1cmlzdGljcyBhcmUgd3JvbmcgaXMgY2FnaW5nLiBTbywg
d2UgY2FuIGdldCBhd2F5IHdpdGgKKyAgICAgICAgc29tZSBoYWNrcyBmb3IganVzdCBzdG9wcGlu
ZyBCMydzIHJlYXNzb2NpYXRpb24gb25seSBpbiB0aGlzIHNwZWNpZmljIGNhc2UuCisgICAgICAg
IAorICAgICAgICBQcmV2aW91c2x5LCB3ZSBhY2hpZXZlZCB0aGlzIGJ5IGNvbmNlYWxpbmcgdGhl
IEFkZChwdHIsIGxhcmdlQ29uc3RhbnQpIGluc2lkZSBhIHBhdGNocG9pbnQuIFRoYXQncworICAg
ICAgICBPSywgYnV0IHBhdGNocG9pbnRzIGFyZSBleHBlbnNpdmUuIFRoZXkgcmVxdWlyZSBhIFNo
YXJlZFRhc2sgaW5zdGFuY2UuIFRoZXkgcmVxdWlyZSBjYWxsYmFja3MgZnJvbQorICAgICAgICB0
aGUgYmFja2VuZCwgaW5jbHVkaW5nIGR1cmluZyByZWdpc3RlciBhbGxvY2F0aW9uLiBBbmQgdGhl
eSBjYW5ub3QgYmUgQ1NFJ2QuIFdlIGRvIHdhbnQgQjMgdG8ga25vdworICAgICAgICB0aGF0IGlm
IHdlIGNhZ2UgdGhlIHNhbWUgcG9pbnRlciBpbiB0d28gcGxhY2VzLCBib3RoIHBsYWNlcyB3aWxs
IGNvbXB1dGUgdGhlIHNhbWUgdmFsdWUuCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoIGlt
cHJvdmVzIHRoZSBzaXR1YXRpb24gYnkgaW50cm9kdWNpbmcgdGhlIE9wYXF1ZSBvcGNvZGUuIFRo
aXMgaXMgaGFuZGxlZCBieSBMb3dlclRvQWlyIGFzCisgICAgICAgIGlmIGl0IHdhcyBJZGVudGl0
eSwgYnV0IGFsbCBwcmlvciBwaGFzZXMgdHJlYXQgaXQgYXMgYW4gdW5rbm93biBwdXJlIHVuYXJ5
IGlkZW1wb3RlbnQgb3BlcmF0aW9uLiBJLmUuCisgICAgICAgIHRoZXkga25vdyB0aGF0IE9wYXF1
ZSh4KSA9PSBPcGFxdWUoeCkgYW5kIHRoYXQgT3BhcXVlKE9wYXF1ZSh4KSkgPT0gT3BhcXVlKHgp
LiBCdXQgdGhleSBkb24ndCBrbm93CisgICAgICAgIHRoYXQgT3BhcXVlKHgpID09IHggdW50aWwg
TG93ZXJUb0Fpci4gU28sIHlvdSBjYW4gdXNlIE9wYXF1ZSBleGFjdGx5IHdoZW4geW91IGtub3cg
dGhhdCBCMyB3aWxsIG1lc3MKKyAgICAgICAgdXAgeW91ciBjb2RlIGJ1dCBBaXIgd29uJ3QuIChD
dXJyZW50bHkgd2Uga25vdyBvZiBubyBjYXNlcyB3aGVyZSBBaXIgbWVzc2VzIHRoaW5ncyB1cCBv
biBhIGxhcmdlCisgICAgICAgIGVub3VnaCBzY2FsZSB0byB3YXJyYW50IG5ldyBvcGNvZGVzLikK
KyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIHBlcmYtbmV1dHJhbCwgYnV0IG1heSBz
dGFydCB0byBoZWxwIGFzIEkgYWRkIG1vcmUgdXNlcyBvZiBjYWdlZCgpIGluIHRoZSBGVEwuIEl0
IGFsc28KKyAgICAgICAgbWFrZXMgdGhlIGNvZGUgYSBiaXQgbGVzcyB1Z2x5LgorCisgICAgICAg
ICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fp
cjo6c2hvdWxkQ29weVByb3BhZ2F0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9B
aXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnBy
aW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNS
ZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNWYWxpZGF0ZS5jcHA6CisgICAgICAg
ICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZWZmZWN0cyBjb25z
dCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6a2V5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
QjM6OlZhbHVlOjppc0ZyZWUgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnR5cGVG
b3IpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlS2V5LmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlS2V5OjptYXRlcmlhbGl6ZSBjb25zdCk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNhZ2VkKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0LmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om9wYXF1ZSk6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5o
OgorCiAyMDE3LTA4LTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgSlNMZXhpY2FsRW52aXJvbm1lbnQgbmVlZHMgdG8gYmUgaW4gdGhlIEpTVmFsdWUgZ2lnYWNh
Z2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZp
c2lvbiAyMjA2MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHN3
aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgIGNhc2UgVHJ1bmM6CiAgICAgICAgIGNh
c2UgSWRlbnRpdHk6CisgICAgICAgIGNhc2UgT3BhcXVlOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMzM2
LDcgKzMzMzcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSBJZGVudGl0eTogeworICAgICAgICBjYXNlIElkZW50
aXR5OgorICAgICAgICBjYXNlIE9wYXF1ZTogewogICAgICAgICAgICAgQVNTRVJUKHRtcChtX3Zh
bHVlLT5jaGlsZCgwKSkgPT0gdG1wKG1fdmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShyZXZpc2lv
biAyMjA2MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgSWRlbnRpdHk6CiAgICAgICAgIG91dC5wcmludCgiSWRl
bnRpdHkiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgT3BhcXVlOgorICAgICAgICBvdXQu
cHJpbnQoIk9wYXF1ZSIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb25zdDMyOgogICAg
ICAgICBvdXQucHJpbnQoIkNvbnN0MzIiKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIyMDYxOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBA
QCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogICAgIAogICAgIC8vIFBvbHltb3JwaGljIGlkZW50
aXR5LCB1c2FibGUgd2l0aCBhbnkgdmFsdWUgdHlwZS4KICAgICBJZGVudGl0eSwKKyAgICAgICAg
CisgICAgLy8gVGhpcyBpcyBhbiBpZGVudGl0eSwgYnV0IHdlIHByb2hpYml0IHRoZSBjb21waWxl
ciBmcm9tIHJlYWxpemluZyB0aGlzIHVudGlsIHRoZSBiaXR0ZXIgZW5kLiBUaGlzIGNhbgorICAg
IC8vIGJlIHVzZWQgdG8gYmxvY2sgcmVhc3NvY2lhdGlvbiBhbmQgb3RoZXIgY29tcGlsZXIgcmVh
c29uaW5nLCBpZiB3ZSBmaW5kIHRoYXQgaXQncyB3cm9uZyBvcgorICAgIC8vIHVucHJvZml0YWJs
ZSBhbmQgd2UgbmVlZCBhbiBlc2NhcGUgaGF0Y2guCisgICAgT3BhcXVlLAogCiAgICAgLy8gQ29u
c3RhbnRzLiBVc2UgdGhlIENvbnN0VmFsdWUqIGNsYXNzZXMuIENvbnN0YW50cyBleGlzdCBpbiB0
aGUgY29udHJvbCBmbG93LCBzbyB0aGF0IHdlIGNhbgogICAgIC8vIHJlYXNvbiBhYm91dCB3aGVy
ZSB3ZSB3b3VsZCBjb25zdHJ1Y3QgdGhlbS4gTGFyZ2UgY29uc3RhbnRzIGFyZSBleHBlbnNpdmUg
dG8gY3JlYXRlLgpAQCAtMjU4LDcgKzI2Myw3IEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAg
ICAgLy8gb2YgdHJhbnNmb3JtYXRpb24gb3IgYW5hbHlzaXMgdGhhdCByZWxpZXMgb24gdGhlIGlu
c2lnaHQgdGhhdCBEZXBlbmQgaXMgcmVhbGx5IHplcm8gaXMgdW5zb3VuZCwKICAgICAvLyBiZWNh
dXNlIGl0IHVubG9ja3MgcmVvcmRlcmluZyBvZiB1c2VycyBvZiBAcmVzdWx0IGFuZCBAcGhhbnRv
bS4KICAgICAvLwotICAgIC8vIE9uIFg4NiwgdGhpcyBpcyBsb3dlcmVkIHRvIGEgbG9hZC1sb2Fk
IGZlbmNlIGFuZCBAcmVzdWx0IHVzZXMgQHBoYW50b20gZGlyZWN0bHkuCisgICAgLy8gT24gWDg2
LCB0aGlzIGlzIGxvd2VyZWQgdG8gYSBsb2FkLWxvYWQgZmVuY2UgYW5kIEByZXN1bHQgZm9sZHMg
dG8gemVyby4KICAgICAvLwogICAgIC8vIE9uIEFSTSwgdGhpcyBpcyBsb3dlcmVkIGFzIGlmIGxp
a2U6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHAJKHJldmlzaW9uIDIyMDYxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg1LDYgKzQ4NSwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVkdWNlVmFsdWVTdHJlbmd0aCgpCiAgICAgewogICAgICAg
ICBzd2l0Y2ggKG1fdmFsdWUtPm9wY29kZSgpKSB7CisgICAgICAgIGNhc2UgT3BhcXVlOgorICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBPcGFxdWUoT3BhcXVlKHZhbHVlKSkKKyAgICAgICAgICAg
IC8vIEludG8gdGhpczogT3BhcXVlKHZhbHVlKQorICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNo
aWxkKDApLT5vcGNvZGUoKSA9PSBPcGFxdWUpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0
aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgQWRkOgogICAgICAgICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOwogICAgICAgICAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAy
MjA2MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAgICAgICAgIGNh
c2UgT3BhcXVlOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+a2luZCgpLmhhc0V4
dHJhQml0cygpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSB2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJl
dmlzaW9uIDIyMDYxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTQ2LDYgKzU0Niw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMo
KSBjb25zdAogICAgIHN3aXRjaCAob3Bjb2RlKCkpIHsKICAgICBjYXNlIE5vcDoKICAgICBjYXNl
IElkZW50aXR5OgorICAgIGNhc2UgT3BhcXVlOgogICAgIGNhc2UgQ29uc3QzMjoKICAgICBjYXNl
IENvbnN0NjQ6CiAgICAgY2FzZSBDb25zdERvdWJsZToKQEAgLTcwMCwxMCArNzAxLDEzIEBAIEVm
ZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogCiBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29u
c3QKIHsKKyAgICAvLyBOT1RFOiBFeGNlcHQgZm9yIGV4b3RpYyB0aGluZ3MgbGlrZSBDaGVja0Fk
ZCBhbmQgZnJpZW5kcywgd2Ugd2FudCBldmVyeSBjYXNlIGhlcmUgdG8gaGF2ZSBhCisgICAgLy8g
Y29ycmVzcG9uZGluZyBjYXNlIGluIFZhbHVlS2V5OjptYXRlcmlhbGl6ZSgpLgogICAgIHN3aXRj
aCAob3Bjb2RlKCkpIHsKICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgcmV0dXJuIFZh
bHVlS2V5KGtpbmQoKSwgdHlwZSgpKTsKICAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgT3Bh
cXVlOgogICAgIGNhc2UgQWJzOgogICAgIGNhc2UgQ2VpbDoKICAgICBjYXNlIEZsb29yOgpAQCAt
Nzk0LDYgKzc5OCw3IEBAIGJvb2wgVmFsdWU6OmlzRnJlZSgpIGNvbnN0CiAgICAgY2FzZSBDb25z
dERvdWJsZToKICAgICBjYXNlIENvbnN0RmxvYXQ6CiAgICAgY2FzZSBJZGVudGl0eToKKyAgICBj
YXNlIE9wYXF1ZToKICAgICBjYXNlIE5vcDoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVm
YXVsdDoKQEAgLTgwOSw2ICs4MTQsNyBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKEtpbmQga2luZCwg
VmFsdWUqIGZpCiB7CiAgICAgc3dpdGNoIChraW5kLm9wY29kZSgpKSB7CiAgICAgY2FzZSBJZGVu
dGl0eToKKyAgICBjYXNlIE9wYXF1ZToKICAgICBjYXNlIEFkZDoKICAgICBjYXNlIFN1YjoKICAg
ICBjYXNlIE11bDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24g
MjIwNjE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzI4LDYgKzMyOCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYmFkS2lu
ZChraW5kLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElkZW50
aXR5OgorICAgICAgICBjYXNlIE9wYXF1ZToKICAgICAgICAgY2FzZSBOZWc6CiAgICAgICAgIGNh
c2UgQ2x6OgogICAgICAgICBjYXNlIEFiczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlS2V5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZUtleS5jcHAJKHJldmlzaW9uIDIyMDYxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbHVlS2V5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDExICs1NiwyMCBAQCB2
b2lkIFZhbHVlS2V5OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvCiAKIFZhbHVlKiBWYWx1ZUtl
eTo6bWF0ZXJpYWxpemUoUHJvY2VkdXJlJiBwcm9jLCBPcmlnaW4gb3JpZ2luKSBjb25zdAogewor
ICAgIC8vIE5PVEU6IFdlIHNvbWV0aW1lcyBjYW5ub3QgcmV0dXJuIGEgVmFsdWUqIGZvciBzb21l
IGtleSwgbGlrZSBmb3IgQ2hlY2sgYW5kIGZyaWVuZHMuIFRoYXQncyBiZWNhdXNlCisgICAgLy8g
dGhvdWdoIHRob3NlIG5vZGVzIGhhdmUgc2lkZSBleGl0IGVmZmVjdHMuIEl0IHdvdWxkIGJlIHdl
aXJkIHRvIG1hdGVyaWFsaXplIGFueXRoaW5nIHRoYXQgaGFzIGEgc2lkZQorICAgIC8vIGV4aXQu
IFdlIGNhbid0IHBvc3NpYmx5IGtub3cgZW5vdWdoIGFib3V0IGEgc2lkZSBleGl0IHRvIGtub3cg
d2hlcmUgaXQgd291bGQgYmUgc2FmZSB0byBlbWl0IG9uZS4KICAgICBzd2l0Y2ggKG9wY29kZSgp
KSB7CiAgICAgY2FzZSBGcmFtZVBvaW50ZXI6CiAgICAgICAgIHJldHVybiBwcm9jLmFkZDxWYWx1
ZT4oa2luZCgpLCB0eXBlKCksIG9yaWdpbik7CiAgICAgY2FzZSBJZGVudGl0eToKKyAgICBjYXNl
IE9wYXF1ZToKKyAgICBjYXNlIEFiczoKKyAgICBjYXNlIEZsb29yOgorICAgIGNhc2UgQ2VpbDoK
ICAgICBjYXNlIFNxcnQ6CisgICAgY2FzZSBOZWc6CisgICAgY2FzZSBEZXBlbmQ6CiAgICAgY2Fz
ZSBTRXh0ODoKICAgICBjYXNlIFNFeHQxNjoKICAgICBjYXNlIFNFeHQzMjoKQEAgLTcxLDcgKzgw
LDYgQEAgVmFsdWUqIFZhbHVlS2V5OjptYXRlcmlhbGl6ZShQcm9jZWR1cmUmIAogICAgIGNhc2Ug
SVRvRjoKICAgICBjYXNlIEZsb2F0VG9Eb3VibGU6CiAgICAgY2FzZSBEb3VibGVUb0Zsb2F0Ogot
ICAgIGNhc2UgQ2hlY2s6CiAgICAgICAgIHJldHVybiBwcm9jLmFkZDxWYWx1ZT4oa2luZCgpLCB0
eXBlKCksIG9yaWdpbiwgY2hpbGQocHJvYywgMCkpOwogICAgIGNhc2UgQWRkOgogICAgIGNhc2Ug
U3ViOgpAQCAtOTYsNiArMTA0LDcgQEAgVmFsdWUqIFZhbHVlS2V5OjptYXRlcmlhbGl6ZShQcm9j
ZWR1cmUmIAogICAgIGNhc2UgQmVsb3c6CiAgICAgY2FzZSBBYm92ZUVxdWFsOgogICAgIGNhc2Ug
QmVsb3dFcXVhbDoKKyAgICBjYXNlIEVxdWFsT3JVbm9yZGVyZWQ6CiAgICAgICAgIHJldHVybiBw
cm9jLmFkZDxWYWx1ZT4oa2luZCgpLCB0eXBlKCksIG9yaWdpbiwgY2hpbGQocHJvYywgMCksIGNo
aWxkKHByb2MsIDEpKTsKICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAgcmV0dXJuIHByb2MuYWRk
PFZhbHVlPihraW5kKCksIHR5cGUoKSwgb3JpZ2luLCBjaGlsZChwcm9jLCAwKSwgY2hpbGQocHJv
YywgMSksIGNoaWxkKHByb2MsIDIpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIyMDYxOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2
MjgsMjUgKzExNjI4LDIxIEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSBiYXNlUHRyID0gbV9v
dXQuY29uc3RJbnRQdHIoR2lnYWNhZ2U6OmJhc2VQdHIoa2luZCkpOwogICAgICAgICBMVmFsdWUg
bWFzayA9IG1fb3V0LmNvbnN0SW50UHRyKEdJR0FDQUdFX01BU0spOwogICAgICAgICAKLSAgICAg
ICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBCMyBtZXNzaW5nIHVwIHRoZSBiaXRB
bmQuIEFsc28sIHdlIHdhbnQgdG8gZ2V0IEIzJ3MgZXhjZWxsZW50Ci0gICAgICAgIC8vIGNvZGVn
ZW4gZm9yIDItb3BlcmFuZCBhbmRxIG9uIHg4Ni02NC4KICAgICAgICAgTFZhbHVlIG1hc2tlZCA9
IG1fb3V0LmJpdEFuZChwdHIsIG1hc2spOwotICAgICAgICAKLSAgICAgICAgLy8gQnV0IEIzIHdp
bGwgY3VycmVudGx5IG1lc3MgdXAgdGhlIGNvZGUgZ2VuZXJhdGlvbiBvZiB0aGlzIGFkZC4gQmFz
aWNhbGx5LCBhbnkgb2Zmc2V0IGZyb20gd2hhdCB3ZQotICAgICAgICAvLyBjb21wdXRlIGhlcmUg
d2lsbCBnZXQgcmVhc3NvY2lhdGVkIGFuZCBmb2xkZWQgd2l0aCBHaWdhY2FnZTo6YmFzZVB0ci4g
VGhlcmUncyBhIHdvcmxkIGluIHdoaWNoCi0gICAgICAgIC8vIG1vdmVDb25zdGFudHMoKSBvYnNl
cnZlcyB0aGF0IGl0IG5lZWRzIHRvIHJlYXNzb2NpYXRlIGluIG9yZGVyIHRvIGhvaXN0IHRoZSBi
aWcgY29uc3RhbnRzLiBCdXQKLSAgICAgICAgLy8gaXQncyBtdWNoIGVhc2llciB0byBqdXN0IGJs
b2NrIEIzJ3MgYmFkbmVzcyBoZXJlLiBUaGF0J3Mgd2hhdCB3ZSBkbyBmb3Igbm93LgotICAgICAg
ICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIHdlIGRpZG4ndCBoYXZlIHRvIGRvIHRo
aXMgaGFjay4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTQ4MwotICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5w
YXRjaHBvaW50KHBvaW50ZXJUeXBlKCkpOwotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21l
UmVnaXN0ZXIoYmFzZVB0cik7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3Rl
cihtYXNrZWQpOwotICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCi0gICAgICAgICAg
ICBbXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYg
cGFyYW1zKSB7Ci0gICAgICAgICAgICAgICAgaml0LmFkZFB0cihwYXJhbXNbMV0uZ3ByKCksIHBh
cmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICBwYXRjaHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6bm9uZSgpOwotICAgICAgICByZXR1cm4g
cGF0Y2hwb2ludDsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmFkZChtYXNrZWQsIGJh
c2VQdHIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IEIzIGRvZXNuJ3QgdHJ5IHRvIGRv
IHNtYXJ0IHJlYXNzb2NpYXRpb24gb2YgdGhlc2UgcG9pbnRlciBiaXRzLgorICAgICAgICAvLyBG
SVhNRTogSW4gYW4gaWRlYWwgd29ybGQsIEIzIHdvdWxkIG5vdCBkbyBoYXJtZnVsIHJlYXNzb2Np
YXRpb25zLCBhbmQgaWYgaXQgZGlkLCBpdCB3b3VsZCBiZSBhYmxlCisgICAgICAgIC8vIHRvIHVu
ZG8gdGhlbSBkdXJpbmcgY29uc3RhbnQgaG9pc3RpbmcgYW5kIHJlZ2FsbG9jLiBBcyBpdCBzdGFu
ZHMsIGlmIHlvdSByZW1vdmUgdGhpcyB0aGVuIE9jdGFuZQorICAgICAgICAvLyBnZXRzIDEuNiUg
c2xvd2VyIGFuZCBLcmFrZW4gZ2V0cyA1JSBzbG93ZXIuIEl0J3MgYWxsIGJlY2F1c2UgdGhlIGJh
c2VQdHIsIHdoaWNoIGlzIGEgY29uc3RhbnQsCisgICAgICAgIC8vIGdldHMgcmVhc3NvY2lhdGVk
IG91dCBvZiB0aGUgYWRkIGFib3ZlIGFuZCBpbnRvIHRoZSBhZGRyZXNzIGFyaXRobWV0aWMuIFRo
aXMgZGlzYWJsZXMgaG9pc3Rpbmcgb2YKKyAgICAgICAgLy8gdGhlIGJhc2VQdHIgY29uc3RhbnQu
IEhvaXN0aW5nIHRoYXQgY29uc3RhbnQgaXMgd29ydGggYSBsb3QgbW9yZSBwZXJmIHRoYW4gdGhl
IHJlYXNzb2NpYXRpb24uIE9uZQorICAgICAgICAvLyB3YXkgdG8gbWFrZSB0aGlzIGFsbCB3b3Jr
IGhhcHBpbHkgaXMgdG8gY29tYmluZSBvZmZzZXQgbGVnYWxpemF0aW9uIHdpdGggY29uc3RhbnQg
aG9pc3RpbmcsIGFuZAorICAgICAgICAvLyB0aGVuIHRlYWNoIGl0IHJlYXNzb2NpYXRpb24uIFNv
LCBBZGQoQWRkKGEsIGIpLCBjb25zdCkgd2hlcmUgYSBpcyBsb29wLWludmFyaWFudCB3aGlsZSBi
IGlzbid0CisgICAgICAgIC8vIHdpbGwgdHVybiBpbnRvIEFkZChBZGQoYSwgY29uc3QpLCBiKSBi
eSB0aGUgY29uc3RhbnQgaG9pc3Rlci4gV2Ugd291bGQgaGF2ZSB0byB0ZWFjaCBCMyB0byBkbyB0
aGlzCisgICAgICAgIC8vIGFuZCBwb3NzaWJseSBvdGhlciBzbWFydCB0aGluZ3MgaWYgd2Ugd2Fu
dCB0byBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIG9wYXF1ZS4KKyAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ5MworICAgICAgICByZXR1cm4gbV9v
dXQub3BhcXVlKHJlc3VsdCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgYnVpbGRTd2l0Y2goU3dp
dGNoRGF0YSogZGF0YSwgTFR5cGUgdHlwZSwgTFZhbHVlIHN3aXRjaFZhbHVlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkocmV2aXNpb24gMjIwNjE4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjcsNiArMTI3LDExIEBAIExWYWx1ZSBPdXRwdXQ6OnBoaShMVHlwZSB0eXBlKQogICAgIHJl
dHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpQaGksIHR5cGUs
IG9yaWdpbigpKTsKIH0KIAorTFZhbHVlIE91dHB1dDo6b3BhcXVlKExWYWx1ZSB2YWx1ZSkKK3sK
KyAgICByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE9wYXF1ZSwgb3Jp
Z2luKCksIHZhbHVlKTsKK30KKwogTFZhbHVlIE91dHB1dDo6YWRkKExWYWx1ZSBsZWZ0LCBMVmFs
dWUgcmlnaHQpCiB7CiAgICAgaWYgKFZhbHVlKiByZXN1bHQgPSBsZWZ0LT5hZGRDb25zdGFudCht
X3Byb2MsIHJpZ2h0KSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRw
dXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5o
CShyZXZpc2lvbiAyMjA2MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDggQEAgcHVibGljOgogICAgIHZvaWQg
YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jayk7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gUGFyYW1zPgogICAgIHZvaWQgYWRkSW5jb21pbmdUb1BoaShMVmFsdWUg
cGhpLCBWYWx1ZUZyb21CbG9jaywgUGFyYW1zLi4uIHRoZVJlc3QpOworICAgIAorICAgIExWYWx1
ZSBvcGFxdWUoTFZhbHVlKTsKIAogICAgIExWYWx1ZSBhZGQoTFZhbHVlLCBMVmFsdWUpOwogICAg
IExWYWx1ZSBzdWIoTFZhbHVlLCBMVmFsdWUpOwpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMDYxOCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDgtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBDYWdpbmcgc2hvdWxkbid0IGhhdmUgdG8gdXNlIGEgcGF0
Y2hwb2ludCBmb3IgYWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzU0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIFdyaXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcgT3BhcXVl
IG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9u
Lmh0bWw6CisKIDIwMTctMDgtMDcgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeGVkIHN1cGVyc2NyaXB0IHJlbmRlcmluZyBmb3IgYmxvZyBwb3N0cwpJbmRleDogV2Vi
c2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUt
cmVwcmVzZW50YXRpb24uaHRtbAkocmV2aXNpb24gMjIwNjE4KQorKysgV2Vic2l0ZXMvd2Via2l0
Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTYsNiArMjE2LDEyIEBACiAgICAgICAgIHRvIGFuIElkZW50aXR5IGJ5IGRvaW5n
IGNvbnZlcnRUb0lkZW50aXR5KG90aGVyVmFsdWUpLiAgSWYgdGhlIHZhbHVlIGlzIFZvaWQsCiAg
ICAgICAgIGNvbnZlcnRUb0lkZW50aXR5KCkgY29udmVydHMgaXQgdG8gYSBOb3AgaW5zdGVhZC48
L2RkPgogCisgICAgICA8ZHQ+VCBPcGFxdWUoVCk8L2R0PgorICAgICAgPGRkPlJldHVybnMgdGhl
IHBhc3NlZCB2YWx1ZS4gIE1heSBiZSB1c2VkIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFRo
aXMgb3Bjb2RlIGlzIHByb3ZpZGVkIGFzIGEgaGFjaworICAgICAgICBmb3IgYXZvaWRpbmcgQjMg
b3B0aW1pemF0aW9ucyB0aGF0IHRoZSBjbGllbnQgZmluZHMgdW5wcm9maXRhYmxlLiAgQjMgdHJl
YXRzIE9wYXF1ZSBhcyBhbiBpZGVudGl0eQorICAgICAgICBvbmx5IGR1cmluZyBpbnN0cnVjdGlv
biBzZWxlY3Rpb24uICBBbGwgcHJpb3Igb3B0aW1pemF0aW9ucyAoaW5jbHVkaW5nIGFsbCBCMyBJ
UiBvcHRpbWl6YXRpb25zKSBkbworICAgICAgICBub3Qga25vdyB3aGF0IE9wYXF1ZSBkb2VzLCBv
dGhlciB0aGFuIE9wYXF1ZSh4KSA9PSBPcGFxdWUoeCkgYW5kIE9wYXF1ZShPcGFxdWUoeCkpID09
IE9wYXF1ZSh4KS48L2RkPgorCiAgICAgICA8ZHQ+SW50MzIgQ29uc3QzMihjb25zdGFudCk8L2R0
PgogICAgICAgPGRkPjMyLWJpdCBpbnRlZ2VyIGNvbnN0YW50LiAgTXVzdCB1c2UgdGhlIENvbnN0
MzJWYWx1ZSBjbGFzcywgd2hpY2ggaGFzIHNwYWNlIGZvciB0aGUKICAgICAgICAgaW50MzJfdCBj
b25zdGFudC48L2RkPgo=
</data>
<flag name="review"
          id="338457"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>