<?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>140964</bug_id>
          
          <creation_ts>2015-01-27 15:19:13 -0800</creation_ts>
          <short_desc>Remove dead code from MemoryCache</short_desc>
          <delta_ts>2015-05-21 10:25:42 -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>Page Loading</component>
          <version>528+ (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>
          <dependson>145270</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064691</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-27 15:19:13 -0800</bug_when>
    <thetext>Remove dead code from MemoryCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064693</commentid>
    <comment_count>1</comment_count>
      <attachid>245479</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-27 15:22:05 -0800</bug_when>
    <thetext>Created attachment 245479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064723</commentid>
    <comment_count>2</comment_count>
      <attachid>245491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-27 16:35:45 -0800</bug_when>
    <thetext>Created attachment 245491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064743</commentid>
    <comment_count>3</comment_count>
      <attachid>245497</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-27 17:26:24 -0800</bug_when>
    <thetext>Created attachment 245497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065016</commentid>
    <comment_count>4</comment_count>
      <attachid>245497</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-28 13:34:06 -0800</bug_when>
    <thetext>Comment on attachment 245497
Patch

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

r=me

&gt; Source/WebCore/loader/cache/MemoryCache.h:169
&gt; +    struct LRUList {
&gt; +        CachedResource* m_head {nullptr};
&gt; +        CachedResource* m_tail {nullptr};
&gt; +    };

v.nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065031</commentid>
    <comment_count>5</comment_count>
      <attachid>245497</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-28 14:20:37 -0800</bug_when>
    <thetext>Comment on attachment 245497
Patch

Clearing flags on attachment: 245497

Committed r179293: &lt;http://trac.webkit.org/changeset/179293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065032</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-28 14:20:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245479</attachid>
            <date>2015-01-27 15:22:05 -0800</date>
            <delta_ts>2015-01-27 16:35:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140964-20150127152209.patch</filename>
            <type>text/plain</type>
            <size>16394</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBlYWExMWY1NGQ0YThj
NDkyNjU3NTJmYzk3MDkyMDg2N2RkNTg1YS4uMzk1YjJmMmExM2E2OTQwOWJiMTI0ZWU0NDNjYjYw
YmMyODAxMTFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTAxLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBm
cm9tIE1lbW9yeUNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDA5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgZGVhZCBjb2RlIGZyb20gTWVtb3J5Q2FjaGUsIG1ha2UgbW9yZSB0aGlu
Z3MgcHJpdmF0ZSBhbmQKKyAgICAgICAgY2xlYW4gdXAgYSBsaXR0bGUgYml0LgorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNh
Y2hlOjpwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21TZXNzaW9uQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpz
ZXREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JV
UkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJl
c291cmNlc1RvUGVyY2VudGFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlD
YWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpldmljdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZVRvUGVyY2VudGFnZSk6IERlbGV0ZWQu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6TFJVTGlzdDo6TFJVTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpzZXRQcnVuZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6Om1pbkRlYWRDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6bWF4RGVhZENhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpjYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6bGl2ZVNpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OmRlYWRTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkpOgorCiAyMDE1LTAxLTI3ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTc5MTkyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwZDBjM2M2N2ViY2YwZjdmYzJjMDA5
YmUwNDY1NWU2ZmIzYWI1MWU4Li42YjZlODIwMjJmNzYxMTRhM2MxYzJhMGM4MWZlZWU0OWI2NGU3
OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTkxLDcgKzE5MSw2IEBAIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxMXNldERpc2FibGVkRWIKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUx
M2dldFN0YXRpc3RpY3NFdgogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTEzc2V0Q2FwYWNpdGll
c0VqamoKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNGV2aWN0UmVzb3VyY2VzRXYKLV9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNlRm9yVVJMRVJLTlNfM1VSTEUKIF9fWk43V2Vi
Q29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNlRm9yVVJMRVJLTlNfM1VSTEVOU185U2Vzc2lvbklE
RQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE1YWRkSW1hZ2VUb0NhY2hlRVA3Q0dJbWFnZVJL
TlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHJlc291
cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURFCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCAyZDM4MDRkOTkx
NTJhODQxZGVmMjc3YjdiNzA2NGNiMmNlZmVhZDMxLi41ZmEwMzIzOTc3YTg4MWIzMjkyYjUwZGQx
YjczNDEwZTJkYzI0NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlD
YWNoZS5jcHAKQEAgLTM1LDggKzM1LDYgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKLSNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAi
V29ya2VyTG9hZGVyUHJveHkuaCIKQEAgLTY2LDcgKzY0LDYgQEAgTWVtb3J5Q2FjaGUmIG1lbW9y
eUNhY2hlKCkKIAogTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKICAgICA6IG1fZGlzYWJsZWQo
ZmFsc2UpCi0gICAgLCBtX3BydW5lRW5hYmxlZCh0cnVlKQogICAgICwgbV9pblBydW5lUmVzb3Vy
Y2VzKGZhbHNlKQogICAgICwgbV9jYXBhY2l0eShjRGVmYXVsdENhY2hlQ2FwYWNpdHkpCiAgICAg
LCBtX21pbkRlYWRDYXBhY2l0eSgwKQpAQCAtMTM2LDEyICsxMzMsMTIgQEAgdm9pZCBNZW1vcnlD
YWNoZTo6cmV2YWxpZGF0aW9uU3VjY2VlZGVkKENhY2hlZFJlc291cmNlKiByZXZhbGlkYXRpbmdS
ZXNvdXJjZSwgY28KICAgICBBU1NFUlQocmVzb3VyY2UtPmlzTG9hZGVkKCkpOwogICAgIEFTU0VS
VChyZXZhbGlkYXRpbmdSZXNvdXJjZS0+aW5DYWNoZSgpKTsKIAotICAgIC8vIENhbGxpbmcgZXZp
Y3QoKSBjYW4gcG90ZW50aWFsbHkgZGVsZXRlIHJldmFsaWRhdGluZ1Jlc291cmNlLCB3aGljaCB3
ZSB1c2UKKyAgICAvLyBDYWxsaW5nIHJlbW92ZSgpIGNhbiBwb3RlbnRpYWxseSBkZWxldGUgcmV2
YWxpZGF0aW5nUmVzb3VyY2UsIHdoaWNoIHdlIHVzZQogICAgIC8vIGJlbG93LiBUaGlzIG11c3Ru
J3QgYmUgdGhlIGNhc2Ugc2luY2UgcmV2YWxpZGF0aW9uIG1lYW5zIGl0IGlzIGxvYWRlZAogICAg
IC8vIGFuZCBzbyBjYW5EZWxldGUoKSBpcyBmYWxzZS4KICAgICBBU1NFUlQoIXJldmFsaWRhdGlu
Z1Jlc291cmNlLT5jYW5EZWxldGUoKSk7CiAKLSAgICBldmljdChyZXZhbGlkYXRpbmdSZXNvdXJj
ZSk7CisgICAgcmVtb3ZlKHJldmFsaWRhdGluZ1Jlc291cmNlKTsKIAogICAgIENhY2hlZFJlc291
cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7
CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKQEAgLTE3OSwxMSArMTc2LDYgQEAgdm9p
ZCBNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9uRmFpbGVkKENhY2hlZFJlc291cmNlKiByZXZhbGlk
YXRpbmdSZXNvdXJjZSkKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+Y2xlYXJSZXNvdXJjZVRv
UmV2YWxpZGF0ZSgpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNl
Rm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwpCi17Ci0gICAgcmV0dXJuIHJlc291cmNlRm9y
VVJMKHJlc291cmNlVVJMLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Ci19Ci0KIENh
Y2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNv
dXJjZVVSTCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gcmVzb3VyY2VGb3JS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCksIHNlc3Npb25JRCk7CkBAIC0yNzQs
NyArMjY2LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2EKIAogICAgIC8vIEEgcmVzb3VyY2Ug
ZXhpc3RzIGFuZCBpcyBub3QgYSBtYW51YWxseSBjYWNoZWQgaW1hZ2UsIHNvIGp1c3QgcmVtb3Zl
IGl0LgogICAgIGlmICghaXM8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkgfHwgIWRvd25jYXN0PENh
Y2hlZEltYWdlPigqcmVzb3VyY2UpLmlzTWFudWFsbHlDYWNoZWQoKSkgewotICAgICAgICBldmlj
dChyZXNvdXJjZSk7CisgICAgICAgIHJlbW92ZShyZXNvdXJjZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTI4OSw5ICsyODEsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFn
ZUZyb21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYQogCiB2
b2lkIE1lbW9yeUNhY2hlOjpwcnVuZUxpdmVSZXNvdXJjZXMoYm9vbCBzaG91bGREZXN0cm95RGVj
b2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzKQogewotICAgIGlmICghbV9wcnVuZUVuYWJsZWQp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gc2hvdWxkRGVzdHJv
eURlY29kZWREYXRhRm9yQWxsTGl2ZVJlc291cmNlcyA/IDAgOiBsaXZlQ2FwYWNpdHkoKTsKICAg
ICBpZiAoY2FwYWNpdHkgJiYgbV9saXZlU2l6ZSA8PSBjYXBhY2l0eSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMzAxLDIwICsyOTAsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZUxpdmVSZXNvdXJj
ZXMoYm9vbCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzbwogICAgIHBydW5l
TGl2ZVJlc291cmNlc1RvU2l6ZSh0YXJnZXRTaXplLCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFG
b3JBbGxMaXZlUmVzb3VyY2VzKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVz
b3VyY2VzVG9QZXJjZW50YWdlKGZsb2F0IHBydW5lUGVyY2VudGFnZSkKLXsKLSAgICBpZiAoIW1f
cHJ1bmVFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocHJ1bmVQZXJjZW50YWdl
IDwgMC4wZiAgfHwgcHJ1bmVQZXJjZW50YWdlID4gMC45NWYpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHVuc2lnbmVkIGN1cnJlbnRTaXplID0gbV9saXZlU2l6ZSArIG1fZGVhZFNpemU7Ci0gICAg
dW5zaWduZWQgdGFyZ2V0U2l6ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjdXJyZW50U2l6ZSAq
IHBydW5lUGVyY2VudGFnZSk7Ci0KLSAgICBwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUodGFyZ2V0
U2l6ZSk7Ci19Ci0KIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlc1RvU2l6ZSh1
bnNpZ25lZCB0YXJnZXRTaXplLCBib29sIHNob3VsZERlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbExp
dmVSZXNvdXJjZXMpCiB7CiAgICAgaWYgKG1faW5QcnVuZVJlc291cmNlcykKQEAgLTM2Miw5ICsz
MzcsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUodW5zaWdu
ZWQgdGFyZ2V0U2l6ZSwgYm9vbCBzaG91bGREZXN0cgogCiB2b2lkIE1lbW9yeUNhY2hlOjpwcnVu
ZURlYWRSZXNvdXJjZXMoKQogewotICAgIGlmICghbV9wcnVuZUVuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gZGVhZENhcGFjaXR5KCk7CiAgICAgaWYg
KGNhcGFjaXR5ICYmIG1fZGVhZFNpemUgPD0gY2FwYWNpdHkpCiAgICAgICAgIHJldHVybjsKQEAg
LTM3MywyMCArMzQ1LDYgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzKCkK
ICAgICBwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodGFyZ2V0U2l6ZSk7CiB9CiAKLXZvaWQgTWVt
b3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvUGVyY2VudGFnZShmbG9hdCBwcnVuZVBlcmNl
bnRhZ2UpCi17Ci0gICAgaWYgKCFtX3BydW5lRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKHBydW5lUGVyY2VudGFnZSA8IDAuMGYgIHx8IHBydW5lUGVyY2VudGFnZSA+IDAuOTVm
KQotICAgICAgICByZXR1cm47Ci0KLSAgICB1bnNpZ25lZCBjdXJyZW50U2l6ZSA9IG1fbGl2ZVNp
emUgKyBtX2RlYWRTaXplOwotICAgIHVuc2lnbmVkIHRhcmdldFNpemUgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oY3VycmVudFNpemUgKiBwcnVuZVBlcmNlbnRhZ2UpOwotCi0gICAgcHJ1bmVEZWFk
UmVzb3VyY2VzVG9TaXplKHRhcmdldFNpemUpOwotfQotCiB2b2lkIE1lbW9yeUNhY2hlOjpwcnVu
ZURlYWRSZXNvdXJjZXNUb1NpemUodW5zaWduZWQgdGFyZ2V0U2l6ZSkKIHsKICAgICBpZiAobV9p
blBydW5lUmVzb3VyY2VzKQpAQCAtNDMwLDcgKzM4OCw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBy
dW5lRGVhZFJlc291cmNlc1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplKQogICAgICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHByZXZpb3VzID0gY3VycmVudC0+
bV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0OwogICAgICAgICAgICAgQVNTRVJUKCFwcmV2aW91cyB8
fCBwcmV2aW91cy0+aW5DYWNoZSgpKTsKICAgICAgICAgICAgIGlmICghY3VycmVudC0+aGFzQ2xp
ZW50cygpICYmICFjdXJyZW50LT5pc1ByZWxvYWRlZCgpICYmICFjdXJyZW50LT5pc0NhY2hlVmFs
aWRhdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBldmljdChjdXJyZW50KTsKKyAgICAgICAgICAg
ICAgICByZW1vdmUoY3VycmVudCk7CiAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFNpemUgJiYg
bV9kZWFkU2l6ZSA8PSB0YXJnZXRTaXplKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CkBAIC00NTgsNyArNDE2LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0Q2Fw
YWNpdGllcyh1bnNpZ25lZCBtaW5EZWFkQnl0ZXMsIHVuc2lnbmVkIG1heERlYWRCeXRlcywgdW4K
ICAgICBwcnVuZSgpOwogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmUoQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBMT0coUmVz
b3VyY2VMb2FkaW5nLCAiRXZpY3RpbmcgcmVzb3VyY2UgJXAgZm9yICclcycgZnJvbSBjYWNoZSIs
IHJlc291cmNlLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKQEAg
LTc1MCwyNyArNzA4LDYgQEAgdm9pZCBNZW1vcnlDYWNoZTo6YWRqdXN0U2l6ZShib29sIGxpdmUs
IGludCBkZWx0YSkKICAgICB9CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21D
YWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZywgU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hl
KGNvbnRleHQsIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCBzZXNzaW9uSUQpOwotfQotCi12
b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklE
IHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgaWYgKGlzPFdvcmtlckds
b2JhbFNjb3BlPigqY29udGV4dCkpIHsKLSAgICAgICAgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVl
c3REYXRhKiByZXF1ZXN0RGF0YSA9IHJlcXVlc3QuY29weURhdGEoKS5sZWFrUHRyKCk7Ci0gICAg
ICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFkKCkud29ya2Vy
TG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXF1ZXN0RGF0YSwgc2Vzc2lvbklEXSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgT3duUHRyPFJl
c291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KGFkb3B0UHRyKHJl
cXVlc3REYXRhKSkpOwotICAgICAgICAgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZSgmY29udGV4
dCwgKnJlcXVlc3QsIHNlc3Npb25JRCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCku
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCi0gICAgICAgIG1lbW9yeUNh
Y2hlKCkucmVtb3ZlKHJlc291cmNlKTsKLX0KLQogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CkBA
IC03ODUsNyArNzIyLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21TZXNz
aW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKIAogICAgIGZvciAoYXV0
byYgcmVzb3VyY2VzIDogbWVtb3J5Q2FjaGUoKS5tX3Nlc3Npb25SZXNvdXJjZXMpIHsKICAgICAg
ICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCkucmVzb3VyY2VG
b3JSZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVzb3VyY2VzLnZhbHVlKSkKLSAgICAgICAgbWVtb3J5
Q2FjaGUoKS5yZW1vdmUocmVzb3VyY2UpOworICAgICAgICAgICAgbWVtb3J5Q2FjaGUoKS5yZW1v
dmUocmVzb3VyY2UpOwogICAgIH0KIH0KIApAQCAtODU3LDkgKzc5NCw5IEBAIHZvaWQgTWVtb3J5
Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgICAgICBicmVhazsKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW06
Oml0ZXJhdG9yIGlubmVySXRlcmF0b3IgPSBvdXRlckl0ZXJhdG9yLT52YWx1ZS0+YmVnaW4oKTsK
LSAgICAgICAgZXZpY3QoaW5uZXJJdGVyYXRvci0+dmFsdWUpOworICAgICAgICByZW1vdmUoaW5u
ZXJJdGVyYXRvci0+dmFsdWUpOwogI2Vsc2UKLSAgICAgICAgZXZpY3Qob3V0ZXJJdGVyYXRvci0+
dmFsdWUpOworICAgICAgICByZW1vdmUob3V0ZXJJdGVyYXRvci0+dmFsdWUpOwogI2VuZGlmCiAg
ICAgfQogfQpAQCAtODgyLDEzICs4MTksNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZSgpCiAg
ICAgcHJ1bmVMaXZlUmVzb3VyY2VzKCk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lVG9Q
ZXJjZW50YWdlKGZsb2F0IHRhcmdldFBlcmNlbnRMaXZlKQotewotICAgIHBydW5lRGVhZFJlc291
cmNlc1RvUGVyY2VudGFnZSh0YXJnZXRQZXJjZW50TGl2ZSk7IC8vIFBydW5lIGRlYWQgZmlyc3Qs
IGluIGNhc2UgaXQgd2FzICJib3Jyb3dpbmciIGNhcGFjaXR5IGZyb20gbGl2ZS4KLSAgICBwcnVu
ZUxpdmVSZXNvdXJjZXNUb1BlcmNlbnRhZ2UodGFyZ2V0UGVyY2VudExpdmUpOwotfQotCi0KICNp
Zm5kZWYgTkRFQlVHCiB2b2lkIE1lbW9yeUNhY2hlOjpkdW1wU3RhdHMoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCA2OGU4ZGVkMmI3NmM3MWE2Y2My
OWQ4MDkzNThhOWI1NzM2ZDVjZGQwLi5jYmE2NWI5NDUyZTJiYzdhYzBmNjZhNGZmNDAzYjMwNjBk
YmU5Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAt
MzgsMTYgKzM4LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlICB7CiAKLWNsYXNzIENhY2hlZENT
U1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKLWNsYXNzIENhY2hlZFJlc291cmNl
TG9hZGVyOwogY2xhc3MgVVJMOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKLXN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7Ci1zdHJ1Y3Qg
U2VjdXJpdHlPcmlnaW5IYXNoOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1
c2VkIGJ5IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBA
IC02NywyMCArNjMsNiBAQCBjbGFzcyBNZW1vcnlDYWNoZSB7CiBwdWJsaWM6CiAgICAgZnJpZW5k
IE5ldmVyRGVzdHJveWVkPE1lbW9yeUNhY2hlPjsKIAotI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBDYWNo
ZWRSZXNvdXJjZUl0ZW07Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgT3duUHRyPENhY2hl
ZFJlc291cmNlSXRlbT4+IENhY2hlZFJlc291cmNlTWFwOwotI2Vsc2UKLSAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IENhY2hlZFJlc291cmNlTWFwOwotI2VuZGlm
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFJl
c291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOwotCi0gICAgc3RydWN0IExSVUxp
c3QgewotICAgICAgICBDYWNoZWRSZXNvdXJjZSogbV9oZWFkOwotICAgICAgICBDYWNoZWRSZXNv
dXJjZSogbV90YWlsOwotICAgICAgICBMUlVMaXN0KCkgOiBtX2hlYWQoMCksIG1fdGFpbCgwKSB7
IH0KLSAgICB9OwotCiAgICAgc3RydWN0IFR5cGVTdGF0aXN0aWMgewogICAgICAgICBpbnQgY291
bnQ7CiAgICAgICAgIGludCBzaXplOwpAQCAtMTA2LDEyICs4OCwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIFR5cGVTdGF0aXN0aWMgZm9udHM7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBVUkwmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklE
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CiAKICAgICBib29sIGFkZChDYWNo
ZWRSZXNvdXJjZSopOwotICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkg
eyBldmljdChyZXNvdXJjZSk7IH0KKyAgICB2b2lkIHJlbW92ZShDYWNoZWRSZXNvdXJjZSopOwog
CiAgICAgc3RhdGljIFVSTCByZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChjb25zdCBV
UkwmIG9yaWdpbmFsVVJMKTsKICAgICAKQEAgLTEzMiw5ICsxMTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2aWN0UmVzb3VyY2VzKCk7CiAgICAgCi0gICAgdm9pZCBz
ZXRQcnVuZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcHJ1bmVFbmFibGVkID0gZW5hYmxlZDsg
fQogICAgIHZvaWQgcHJ1bmUoKTsKLSAgICB2b2lkIHBydW5lVG9QZXJjZW50YWdlKGZsb2F0IHRh
cmdldFBlcmNlbnRMaXZlKTsKIAogICAgIHZvaWQgc2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25J
bnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsKSB7IG1fZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKCkgY29uc3QgeyByZXR1
cm4gbV9kZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsOyB9CkBAIC0xNTMsOCArMTMyLDYg
QEAgcHVibGljOgogICAgIHZvaWQgYWRkVG9MaXZlUmVzb3VyY2VzU2l6ZShDYWNoZWRSZXNvdXJj
ZSopOwogICAgIHZvaWQgcmVtb3ZlRnJvbUxpdmVSZXNvdXJjZXNTaXplKENhY2hlZFJlc291cmNl
Kik7CiAKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOwotICAgIHN0YXRp
YyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3Zl
UmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3Rh
dGlzdGljcyBmb3IgdGhlIGNhY2hlcyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgpA
QCAtMTY2LDEyICsxNDMsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1v
dmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmlnaW5zKTsK
IAotICAgIHVuc2lnbmVkIG1pbkRlYWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluRGVh
ZENhcGFjaXR5OyB9Ci0gICAgdW5zaWduZWQgbWF4RGVhZENhcGFjaXR5KCkgY29uc3QgeyByZXR1
cm4gbV9tYXhEZWFkQ2FwYWNpdHk7IH0KLSAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FwYWNpdHk7IH0KLSAgICB1bnNpZ25lZCBsaXZlU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGl2ZVNpemU7IH0KLSAgICB1bnNpZ25lZCBkZWFkU2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVhZFNpemU7IH0KLQogI2lmIFVTRShDRykKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBV
U0UoQ0cpIG9uY2Ugd2UgZWl0aGVyIG1ha2UgTmF0aXZlSW1hZ2VQdHIgYSBzbWFydCBwb2ludGVy
IG9uIGFsbCBwbGF0Zm9ybXMgb3IKICAgICAvLyByZW1vdmUgdGhlIHVzYWdlIG9mIENGUmV0YWlu
KCkgaW4gTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSgpIHNvIGFzIHRvIG1ha2UgdGhlIGNv
ZGUgcGxhdGZvcm0taW5kZXBlbmRlbnQuCkBAIC0xODUsOCArMTU2LDE4IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lTGl2ZVJlc291cmNlcyhib29sIHNob3VsZERlc3Ry
b3lEZWNvZGVkRGF0YUZvckFsbExpdmVSZXNvdXJjZXMgPSBmYWxzZSk7CiAKIHByaXZhdGU6Ci0g
ICAgdm9pZCBwcnVuZURlYWRSZXNvdXJjZXNUb1BlcmNlbnRhZ2UoZmxvYXQgcHJ1bmVQZXJjZW50
YWdlKTsgLy8gUHJ1bmUgdG8gJSBjdXJyZW50IHNpemUKLSAgICB2b2lkIHBydW5lTGl2ZVJlc291
cmNlc1RvUGVyY2VudGFnZShmbG9hdCBwcnVuZVBlcmNlbnRhZ2UpOworI2lmIEVOQUJMRShDQUNI
RV9QQVJUSVRJT05JTkcpCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2FjaGVkUmVzb3Vy
Y2UqPiBDYWNoZWRSZXNvdXJjZUl0ZW07CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgT3du
UHRyPENhY2hlZFJlc291cmNlSXRlbT4+IENhY2hlZFJlc291cmNlTWFwOworI2Vsc2UKKyAgICB0
eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IENhY2hlZFJlc291cmNlTWFw
OworI2VuZGlmCisKKyAgICBzdHJ1Y3QgTFJVTGlzdCB7CisgICAgICAgIENhY2hlZFJlc291cmNl
KiBtX2hlYWQge251bGxwdHJ9OworICAgICAgICBDYWNoZWRSZXNvdXJjZSogbV90YWlsIHtudWxs
cHRyfTsKKyAgICB9OworCiAgICAgdm9pZCBwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodW5zaWdu
ZWQgdGFyZ2V0U2l6ZSk7CiAgICAgdm9pZCBwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUodW5zaWdu
ZWQgdGFyZ2V0U2l6ZSwgYm9vbCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVz
b3VyY2VzID0gZmFsc2UpOwogCkBAIC0yMDIsMTQgKzE4MywxMCBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIGxpdmVDYXBhY2l0eSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGRlYWRDYXBhY2l0eSgp
IGNvbnN0OwogCi0gICAgdm9pZCBldmljdChDYWNoZWRSZXNvdXJjZSopOwotCi0gICAgV0VCQ09S
RV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKLQorICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJl
c291cmNlTWFwJik7CiAgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lv
bklEKTsKIAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNo
ZSBpcyBlbmFibGVkLgotICAgIGJvb2wgbV9wcnVuZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2luUHJ1
bmVSZXNvdXJjZXM7CiAKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwpAQCAtMjMwLDYgKzIwNyw3
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gQSBVUkwtYmFzZWQgbWFwIG9mIGFsbCByZXNvdXJj
ZXMgdGhhdCBhcmUgaW4gdGhlIGNhY2hlIChpbmNsdWRpbmcgdGhlIGZyZXNoZXN0IHZlcnNpb24g
b2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAgICAgLy8gcmVmZXJlbmNlZCBi
eSBhIFdlYiBwYWdlKS4KKyAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAgICAg
U2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwIG1fc2Vzc2lvblJlc291cmNlczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4
IDdkNzAyMmQ5NWExZTUxMmYxMGNhMmY1ODg2OTQ0MTg0Mjg1ZTk3ODIuLmUzNzYzM2UwM2Q5ZjRl
YzU1NTA0Y2QyYjRjMjFhZDVlY2VlYTY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkoKQogCiAgICAgewog
ICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQcnVuZSBNZW1vcnlDYWNoZSIpOwotICAgICAgICBt
ZW1vcnlDYWNoZSgpLnBydW5lVG9QZXJjZW50YWdlKDApOworICAgICAgICBtZW1vcnlDYWNoZSgp
LmV2aWN0UmVzb3VyY2VzKCk7CiAgICAgfQogCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245491</attachid>
            <date>2015-01-27 16:35:45 -0800</date>
            <delta_ts>2015-01-27 17:26:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140964-20150127163549.patch</filename>
            <type>text/plain</type>
            <size>16515</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQxNWNhYTAwNzU5YTIy
ZDNjYmM5ZjMyOTk2ODA3YWNhZmMwOTgxOC4uNTg2MTY5NzFjOWI1OWQ3OTUxNzFmYTk1YTc5Nzlh
MDQwNjJkOTNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTAxLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBm
cm9tIE1lbW9yeUNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDA5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgZGVhZCBjb2RlIGZyb20gTWVtb3J5Q2FjaGUsIG1ha2UgbW9yZSB0aGlu
Z3MgcHJpdmF0ZSBhbmQKKyAgICAgICAgY2xlYW4gdXAgYSBsaXR0bGUgYml0LgorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNh
Y2hlOjpwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21TZXNzaW9uQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpz
ZXREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JV
UkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJl
c291cmNlc1RvUGVyY2VudGFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlD
YWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpldmljdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZVRvUGVyY2VudGFnZSk6IERlbGV0ZWQu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6TFJVTGlzdDo6TFJVTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpzZXRQcnVuZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6Om1pbkRlYWRDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6bWF4RGVhZENhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpjYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6bGl2ZVNpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OmRlYWRTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkpOgorCiAyMDE1LTAxLTI3ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGh0dHAvdGVzdHMvbWVk
aWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDBkMGMzYzY3
ZWJjZjBmN2ZjMmMwMDliZTA0NjU1ZTZmYjNhYjUxZTguLjZiNmU4MjAyMmY3NjExNGEzYzFjMmEw
YzgxZmVlZTQ5YjY0ZTc5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xOTEsNyArMTkxLDYg
QEAgX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3Jl
MTFNZW1vcnlDYWNoZTEzZ2V0U3RhdGlzdGljc0V2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hl
MTNzZXRDYXBhY2l0aWVzRWpqagogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0ZXZpY3RSZXNv
dXJjZXNFdgotX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18z
VVJMRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18zVVJM
RU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTVhZGRJbWFnZVRvQ2Fj
aGVFUDdDR0ltYWdlUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFNZW1v
cnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFTlNfOVNl
c3Npb25JREUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmlu
ZGV4IDJkMzgwNGQ5OTE1MmE4NDFkZWYyNzdiN2I3MDY0Y2IyY2VmZWFkMzEuLjVmYTAzMjM5Nzdh
ODgxYjMyOTJiNTBkZDFiNzM0MTBlMmRjMjQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtMzUsOCArMzUsNiBAQAogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgpAQCAtNjYsNyArNjQsNiBAQCBNZW1v
cnlDYWNoZSYgbWVtb3J5Q2FjaGUoKQogCiBNZW1vcnlDYWNoZTo6TWVtb3J5Q2FjaGUoKQogICAg
IDogbV9kaXNhYmxlZChmYWxzZSkKLSAgICAsIG1fcHJ1bmVFbmFibGVkKHRydWUpCiAgICAgLCBt
X2luUHJ1bmVSZXNvdXJjZXMoZmFsc2UpCiAgICAgLCBtX2NhcGFjaXR5KGNEZWZhdWx0Q2FjaGVD
YXBhY2l0eSkKICAgICAsIG1fbWluRGVhZENhcGFjaXR5KDApCkBAIC0xMzYsMTIgKzEzMywxMiBA
QCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogICAgIEFTU0VSVChyZXNvdXJjZS0+aXNMb2FkZWQo
KSk7CiAgICAgQVNTRVJUKHJldmFsaWRhdGluZ1Jlc291cmNlLT5pbkNhY2hlKCkpOwogCi0gICAg
Ly8gQ2FsbGluZyBldmljdCgpIGNhbiBwb3RlbnRpYWxseSBkZWxldGUgcmV2YWxpZGF0aW5nUmVz
b3VyY2UsIHdoaWNoIHdlIHVzZQorICAgIC8vIENhbGxpbmcgcmVtb3ZlKCkgY2FuIHBvdGVudGlh
bGx5IGRlbGV0ZSByZXZhbGlkYXRpbmdSZXNvdXJjZSwgd2hpY2ggd2UgdXNlCiAgICAgLy8gYmVs
b3cuIFRoaXMgbXVzdG4ndCBiZSB0aGUgY2FzZSBzaW5jZSByZXZhbGlkYXRpb24gbWVhbnMgaXQg
aXMgbG9hZGVkCiAgICAgLy8gYW5kIHNvIGNhbkRlbGV0ZSgpIGlzIGZhbHNlLgogICAgIEFTU0VS
VCghcmV2YWxpZGF0aW5nUmVzb3VyY2UtPmNhbkRlbGV0ZSgpKTsKIAotICAgIGV2aWN0KHJldmFs
aWRhdGluZ1Jlc291cmNlKTsKKyAgICByZW1vdmUocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCiAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2Ut
PnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQpAQCAtMTc5LDEx
ICsxNzYsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25GYWlsZWQoQ2FjaGVkUmVz
b3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlKQogICAgIHJldmFsaWRhdGluZ1Jlc291cmNlLT5j
bGVhclJlc291cmNlVG9SZXZhbGlkYXRlKCk7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlD
YWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKLXsKLSAgICByZXR1
cm4gcmVzb3VyY2VGb3JVUkwocmVzb3VyY2VVUkwsIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKLX0KLQogQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTChj
b25zdCBVUkwmIHJlc291cmNlVVJMLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVy
biByZXNvdXJjZUZvclJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlVVJMKSwgc2Vzc2lv
bklEKTsKQEAgLTI3NCw3ICsyNjYsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZy
b21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYQogCiAgICAg
Ly8gQSByZXNvdXJjZSBleGlzdHMgYW5kIGlzIG5vdCBhIG1hbnVhbGx5IGNhY2hlZCBpbWFnZSwg
c28ganVzdCByZW1vdmUgaXQuCiAgICAgaWYgKCFpczxDYWNoZWRJbWFnZT4oKnJlc291cmNlKSB8
fCAhZG93bmNhc3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkuaXNNYW51YWxseUNhY2hlZCgpKSB7
Ci0gICAgICAgIGV2aWN0KHJlc291cmNlKTsKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjg5LDkgKzI4MSw2IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGRv
bWFpbkZvckNhCiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyhib29sIHNo
b3VsZERlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbExpdmVSZXNvdXJjZXMpCiB7Ci0gICAgaWYgKCFt
X3BydW5lRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdW5zaWduZWQgY2FwYWNpdHkg
PSBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzID8gMCA6IGxpdmVD
YXBhY2l0eSgpOwogICAgIGlmIChjYXBhY2l0eSAmJiBtX2xpdmVTaXplIDw9IGNhcGFjaXR5KQog
ICAgICAgICByZXR1cm47CkBAIC0zMDEsMjAgKzI5MCw2IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBy
dW5lTGl2ZVJlc291cmNlcyhib29sIHNob3VsZERlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbExpdmVS
ZXNvCiAgICAgcHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKHRhcmdldFNpemUsIHNob3VsZERlc3Ry
b3lEZWNvZGVkRGF0YUZvckFsbExpdmVSZXNvdXJjZXMpOwogfQogCi12b2lkIE1lbW9yeUNhY2hl
OjpwcnVuZUxpdmVSZXNvdXJjZXNUb1BlcmNlbnRhZ2UoZmxvYXQgcHJ1bmVQZXJjZW50YWdlKQot
ewotICAgIGlmICghbV9wcnVuZUVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChw
cnVuZVBlcmNlbnRhZ2UgPCAwLjBmICB8fCBwcnVuZVBlcmNlbnRhZ2UgPiAwLjk1ZikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgdW5zaWduZWQgY3VycmVudFNpemUgPSBtX2xpdmVTaXplICsgbV9k
ZWFkU2l6ZTsKLSAgICB1bnNpZ25lZCB0YXJnZXRTaXplID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGN1cnJlbnRTaXplICogcHJ1bmVQZXJjZW50YWdlKTsKLQotICAgIHBydW5lTGl2ZVJlc291cmNl
c1RvU2l6ZSh0YXJnZXRTaXplKTsKLX0KLQogdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVz
b3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUsIGJvb2wgc2hvdWxkRGVzdHJveURlY29k
ZWREYXRhRm9yQWxsTGl2ZVJlc291cmNlcykKIHsKICAgICBpZiAobV9pblBydW5lUmVzb3VyY2Vz
KQpAQCAtMzYyLDkgKzMzNyw2IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNl
c1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplLCBib29sIHNob3VsZERlc3RyCiAKIHZvaWQgTWVt
b3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlcygpCiB7Ci0gICAgaWYgKCFtX3BydW5lRW5hYmxl
ZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBkZWFkQ2FwYWNp
dHkoKTsKICAgICBpZiAoY2FwYWNpdHkgJiYgbV9kZWFkU2l6ZSA8PSBjYXBhY2l0eSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMzczLDIwICszNDUsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZURl
YWRSZXNvdXJjZXMoKQogICAgIHBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSh0YXJnZXRTaXplKTsK
IH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKGZs
b2F0IHBydW5lUGVyY2VudGFnZSkKLXsKLSAgICBpZiAoIW1fcHJ1bmVFbmFibGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAocHJ1bmVQZXJjZW50YWdlIDwgMC4wZiAgfHwgcHJ1bmVQZXJj
ZW50YWdlID4gMC45NWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIHVuc2lnbmVkIGN1cnJlbnRT
aXplID0gbV9saXZlU2l6ZSArIG1fZGVhZFNpemU7Ci0gICAgdW5zaWduZWQgdGFyZ2V0U2l6ZSA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjdXJyZW50U2l6ZSAqIHBydW5lUGVyY2VudGFnZSk7Ci0K
LSAgICBwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodGFyZ2V0U2l6ZSk7Ci19Ci0KIHZvaWQgTWVt
b3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplKQog
ewogICAgIGlmIChtX2luUHJ1bmVSZXNvdXJjZXMpCkBAIC00MzAsNyArMzg4LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUp
CiAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJldmlv
dXMgPSBjdXJyZW50LT5tX3ByZXZJbkFsbFJlc291cmNlc0xpc3Q7CiAgICAgICAgICAgICBBU1NF
UlQoIXByZXZpb3VzIHx8IHByZXZpb3VzLT5pbkNhY2hlKCkpOwogICAgICAgICAgICAgaWYgKCFj
dXJyZW50LT5oYXNDbGllbnRzKCkgJiYgIWN1cnJlbnQtPmlzUHJlbG9hZGVkKCkgJiYgIWN1cnJl
bnQtPmlzQ2FjaGVWYWxpZGF0b3IoKSkgewotICAgICAgICAgICAgICAgIGV2aWN0KGN1cnJlbnQp
OworICAgICAgICAgICAgICAgIHJlbW92ZShjdXJyZW50KTsKICAgICAgICAgICAgICAgICBpZiAo
dGFyZ2V0U2l6ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTQ1OCw3ICs0MTYsNyBAQCB2b2lkIE1lbW9y
eUNhY2hlOjpzZXRDYXBhY2l0aWVzKHVuc2lnbmVkIG1pbkRlYWRCeXRlcywgdW5zaWduZWQgbWF4
RGVhZEJ5dGVzLCB1bgogICAgIHBydW5lKCk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZShDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkp
OwogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmljdGluZyByZXNvdXJjZSAlcCBmb3IgJyVz
JyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEo
KS5kYXRhKCkpOwpAQCAtNzUwLDI3ICs3MDgsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjphZGp1c3RT
aXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKQogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6
cmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksIHNlc3Np
b25JRCk7Ci19Ci0KLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBp
ZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KSkgewotICAgICAgICBDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGEqIHJlcXVlc3REYXRhID0gcmVxdWVzdC5jb3B5RGF0YSgpLmxl
YWtQdHIoKTsKLSAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3JlcXVlc3REYXRh
LCBzZXNzaW9uSURdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAg
ICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVxdWVzdDo6YWRv
cHQoYWRvcHRQdHIocmVxdWVzdERhdGEpKSk7Ci0gICAgICAgICAgICByZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlKCZjb250ZXh0LCAqcmVxdWVzdCwgc2Vzc2lvbklEKTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
bWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vzc2lvbklEKSkKLSAg
ICAgICAgbWVtb3J5Q2FjaGUoKS5yZW1vdmUocmVzb3VyY2UpOwotfQotCiB2b2lkIE1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VS
VChjb250ZXh0KTsKQEAgLTc4NSw3ICs3MjIsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVS
ZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAog
CiAgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLm1fc2Vzc2lvblJlc291
cmNlcykgewogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS5yZXNvdXJjZUZvclJlcXVlc3RJbXBsKHJlcXVlc3QsICpyZXNvdXJjZXMudmFsdWUpKQot
ICAgICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZShyZXNvdXJjZSk7CisgICAgICAgICAgICBtZW1v
cnlDYWNoZSgpLnJlbW92ZShyZXNvdXJjZSk7CiAgICAgfQogfQogCkBAIC04NTcsOSArNzk0LDkg
QEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKICAgICAgICAg
ICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hl
ZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZh
bHVlLT5iZWdpbigpOwotICAgICAgICBldmljdChpbm5lckl0ZXJhdG9yLT52YWx1ZSk7CisgICAg
ICAgIHJlbW92ZShpbm5lckl0ZXJhdG9yLT52YWx1ZSk7CiAjZWxzZQotICAgICAgICBldmljdChv
dXRlckl0ZXJhdG9yLT52YWx1ZSk7CisgICAgICAgIHJlbW92ZShvdXRlckl0ZXJhdG9yLT52YWx1
ZSk7CiAjZW5kaWYKICAgICB9CiB9CkBAIC04ODIsMTMgKzgxOSw2IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OnBydW5lKCkKICAgICBwcnVuZUxpdmVSZXNvdXJjZXMoKTsKIH0KIAotdm9pZCBNZW1vcnlD
YWNoZTo6cHJ1bmVUb1BlcmNlbnRhZ2UoZmxvYXQgdGFyZ2V0UGVyY2VudExpdmUpCi17Ci0gICAg
cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKHRhcmdldFBlcmNlbnRMaXZlKTsgLy8gUHJ1
bmUgZGVhZCBmaXJzdCwgaW4gY2FzZSBpdCB3YXMgImJvcnJvd2luZyIgY2FwYWNpdHkgZnJvbSBs
aXZlLgotICAgIHBydW5lTGl2ZVJlc291cmNlc1RvUGVyY2VudGFnZSh0YXJnZXRQZXJjZW50TGl2
ZSk7Ci19Ci0KLQogI2lmbmRlZiBOREVCVUcKIHZvaWQgTWVtb3J5Q2FjaGU6OmR1bXBTdGF0cygp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCmluZGV4IDY4ZThk
ZWQyYjc2YzcxYTZjYzI5ZDgwOTM1OGE5YjU3MzZkNWNkZDAuLjY2MTU3YzgzYWE0YjkyYzkwNjdi
M2VjOWEwNTRhOTQ5MzE4ZWQzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oCkBAIC0zOCwxNiArMzgsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgIHsKIAot
Y2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNsYXNzIENhY2hlZFJlc291cmNlOwotY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBVUkw7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YTsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkhhc2g7CiAKIC8vIFRoaXMgY2FjaGUgaG9sZHMg
c3VicmVzb3VyY2VzIHVzZWQgYnkgV2ViIHBhZ2VzOiBpbWFnZXMsIHNjcmlwdHMsIHN0eWxlc2hl
ZXRzLCBldGMuCiAKQEAgLTY3LDIwICs2Myw2IEBAIGNsYXNzIE1lbW9yeUNhY2hlIHsKIHB1Ymxp
YzoKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5Q2FjaGU+OwogCi0jaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRS
ZXNvdXJjZSo+IENhY2hlZFJlc291cmNlSXRlbTsKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBPd25QdHI8Q2FjaGVkUmVzb3VyY2VJdGVtPj4gQ2FjaGVkUmVzb3VyY2VNYXA7Ci0jZWxzZQot
ICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNlKj4gQ2FjaGVkUmVzb3Vy
Y2VNYXA7Ci0jZW5kaWYKLSAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7Ci0KLSAg
ICBzdHJ1Y3QgTFJVTGlzdCB7Ci0gICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7Ci0gICAg
ICAgIENhY2hlZFJlc291cmNlKiBtX3RhaWw7Ci0gICAgICAgIExSVUxpc3QoKSA6IG1faGVhZCgw
KSwgbV90YWlsKDApIHsgfQotICAgIH07Ci0KICAgICBzdHJ1Y3QgVHlwZVN0YXRpc3RpYyB7CiAg
ICAgICAgIGludCBjb3VudDsKICAgICAgICAgaW50IHNpemU7CkBAIC0xMDYsMTIgKzg4LDExIEBA
IHB1YmxpYzoKICAgICAgICAgVHlwZVN0YXRpc3RpYyBmb250czsKICAgICB9OwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBV
UkwmLCBTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZUZvclVSTChjb25zdCBVUkwmLCBTZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9y
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogCiAgICAgYm9vbCBh
ZGQoQ2FjaGVkUmVzb3VyY2UqKTsKLSAgICB2b2lkIHJlbW92ZShDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpIHsgZXZpY3QocmVzb3VyY2UpOyB9CisgICAgdm9pZCByZW1vdmUoQ2FjaGVkUmVzb3Vy
Y2UqKTsKIAogICAgIHN0YXRpYyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQo
Y29uc3QgVVJMJiBvcmlnaW5hbFVSTCk7CiAgICAgCkBAIC0xMzIsOSArMTEzLDcgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcygpOwogICAgIAotICAg
IHZvaWQgc2V0UHJ1bmVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BydW5lRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KICAgICB2b2lkIHBydW5lKCk7Ci0gICAgdm9pZCBwcnVuZVRvUGVyY2VudGFnZShm
bG9hdCB0YXJnZXRQZXJjZW50TGl2ZSk7CiAKICAgICB2b2lkIHNldERlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCkgeyBtX2Rl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSBpbnRlcnZhbDsgfQogICAgIHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbDsgfQpAQCAtMTUzLDgg
KzEzMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRvTGl2ZVJlc291cmNlc1NpemUoQ2FjaGVk
UmVzb3VyY2UqKTsKICAgICB2b2lkIHJlbW92ZUZyb21MaXZlUmVzb3VyY2VzU2l6ZShDYWNoZWRS
ZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgU2Vzc2lvbklEKTsKLSAg
ICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lk
IHJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBGdW5jdGlvbiB0byBjb2xsZWN0IGNh
Y2hlIHN0YXRpc3RpY3MgZm9yIHRoZSBjYWNoZXMgd2luZG93IGluIHRoZSBTYWZhcmkgRGVidWcg
bWVudS4KQEAgLTE2NiwxMiArMTQzLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiopOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZ2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3Jp
Z2lucyk7CiAKLSAgICB1bnNpZ25lZCBtaW5EZWFkQ2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBt
X21pbkRlYWRDYXBhY2l0eTsgfQotICAgIHVuc2lnbmVkIG1heERlYWRDYXBhY2l0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWF4RGVhZENhcGFjaXR5OyB9Ci0gICAgdW5zaWduZWQgY2FwYWNpdHkoKSBj
b25zdCB7IHJldHVybiBtX2NhcGFjaXR5OyB9Ci0gICAgdW5zaWduZWQgbGl2ZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX2xpdmVTaXplOyB9Ci0gICAgdW5zaWduZWQgZGVhZFNpemUoKSBjb25zdCB7
IHJldHVybiBtX2RlYWRTaXplOyB9Ci0KICNpZiBVU0UoQ0cpCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGUgVVNFKENHKSBvbmNlIHdlIGVpdGhlciBtYWtlIE5hdGl2ZUltYWdlUHRyIGEgc21hcnQg
cG9pbnRlciBvbiBhbGwgcGxhdGZvcm1zIG9yCiAgICAgLy8gcmVtb3ZlIHRoZSB1c2FnZSBvZiBD
RlJldGFpbigpIGluIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoKSBzbyBhcyB0byBtYWtl
IHRoZSBjb2RlIHBsYXRmb3JtLWluZGVwZW5kZW50LgpAQCAtMTg1LDggKzE1NiwxOCBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcnVuZUxpdmVSZXNvdXJjZXMoYm9vbCBzaG91
bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzID0gZmFsc2UpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgcHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKGZsb2F0IHBydW5l
UGVyY2VudGFnZSk7IC8vIFBydW5lIHRvICUgY3VycmVudCBzaXplCi0gICAgdm9pZCBwcnVuZUxp
dmVSZXNvdXJjZXNUb1BlcmNlbnRhZ2UoZmxvYXQgcHJ1bmVQZXJjZW50YWdlKTsKKyNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQorICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hl
ZFJlc291cmNlKj4gQ2FjaGVkUmVzb3VyY2VJdGVtOworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIE93blB0cjxDYWNoZWRSZXNvdXJjZUl0ZW0+PiBDYWNoZWRSZXNvdXJjZU1hcDsKKyNlbHNl
CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBDYWNoZWRSZXNv
dXJjZU1hcDsKKyNlbmRpZgorCisgICAgc3RydWN0IExSVUxpc3QgeworICAgICAgICBDYWNoZWRS
ZXNvdXJjZSogbV9oZWFkIHtudWxscHRyfTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIG1fdGFp
bCB7bnVsbHB0cn07CisgICAgfTsKKwogICAgIHZvaWQgcHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXpl
KHVuc2lnbmVkIHRhcmdldFNpemUpOwogICAgIHZvaWQgcHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXpl
KHVuc2lnbmVkIHRhcmdldFNpemUsIGJvb2wgc2hvdWxkRGVzdHJveURlY29kZWREYXRhRm9yQWxs
TGl2ZVJlc291cmNlcyA9IGZhbHNlKTsKIApAQCAtMjAyLDE0ICsxODMsMTAgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsaXZlQ2FwYWNpdHkoKSBjb25zdDsKICAgICB1bnNpZ25lZCBkZWFkQ2Fw
YWNpdHkoKSBjb25zdDsKIAotICAgIHZvaWQgZXZpY3QoQ2FjaGVkUmVzb3VyY2UqKTsKLQotICAg
IFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJlc291cmNlTWFwJik7Ci0KKyAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBD
YWNoZWRSZXNvdXJjZU1hcCYpOwogICAgIENhY2hlZFJlc291cmNlTWFwJiBnZXRTZXNzaW9uTWFw
KFNlc3Npb25JRCk7CiAKICAgICBib29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0
aGUgY2FjaGUgaXMgZW5hYmxlZC4KLSAgICBib29sIG1fcHJ1bmVFbmFibGVkOwogICAgIGJvb2wg
bV9pblBydW5lUmVzb3VyY2VzOwogCiAgICAgdW5zaWduZWQgbV9jYXBhY2l0eTsKQEAgLTIzMCw2
ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEEgVVJMLWJhc2VkIG1hcCBvZiBhbGwg
cmVzb3VyY2VzIHRoYXQgYXJlIGluIHRoZSBjYWNoZSAoaW5jbHVkaW5nIHRoZSBmcmVzaGVzdCB2
ZXJzaW9uIG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIAogICAgIC8vIHJlZmVy
ZW5jZWQgYnkgYSBXZWIgcGFnZSkuCisgICAgdHlwZWRlZiBIYXNoTWFwPFNlc3Npb25JRCwgc3Rk
Ojp1bmlxdWVfcHRyPENhY2hlZFJlc291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFw
OwogICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcCBtX3Nlc3Npb25SZXNvdXJjZXM7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA3ZDcwMjJkOTVhMWU1MTJmMTBjYTJmNTg4Njk0NDE4NDI4NWU5NzgyLi5lMzc2MzNl
MDNkOWY0ZWM1NTUwNGNkMmI0YzIxYWQ1ZWNlZWE2NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKIAog
ICAgIHsKICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHJ1bmUgTWVtb3J5Q2FjaGUiKTsKLSAg
ICAgICAgbWVtb3J5Q2FjaGUoKS5wcnVuZVRvUGVyY2VudGFnZSgwKTsKKyAgICAgICAgbWVtb3J5
Q2FjaGUoKS5ldmljdFJlc291cmNlcygpOwogICAgIH0KIAogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245497</attachid>
            <date>2015-01-27 17:26:24 -0800</date>
            <delta_ts>2015-01-28 14:20:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140964-20150127172628.patch</filename>
            <type>text/plain</type>
            <size>18114</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQxNWNhYTAwNzU5YTIy
ZDNjYmM5ZjMyOTk2ODA3YWNhZmMwOTgxOC4uNTg2MTY5NzFjOWI1OWQ3OTUxNzFmYTk1YTc5Nzlh
MDQwNjJkOTNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTAxLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBm
cm9tIE1lbW9yeUNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDA5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgZGVhZCBjb2RlIGZyb20gTWVtb3J5Q2FjaGUsIG1ha2UgbW9yZSB0aGlu
Z3MgcHJpdmF0ZSBhbmQKKyAgICAgICAgY2xlYW4gdXAgYSBsaXR0bGUgYml0LgorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNh
Y2hlOjpwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21TZXNzaW9uQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpz
ZXREaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JV
UkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJl
c291cmNlc1RvUGVyY2VudGFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlD
YWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpldmljdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZVRvUGVyY2VudGFnZSk6IERlbGV0ZWQu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6TFJVTGlzdDo6TFJVTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpzZXRQcnVuZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6Om1pbkRlYWRDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6bWF4RGVhZENhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpjYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6bGl2ZVNpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OmRlYWRTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkpOgorCiAyMDE1LTAxLTI3ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGh0dHAvdGVzdHMvbWVk
aWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDBkMGMzYzY3
ZWJjZjBmN2ZjMmMwMDliZTA0NjU1ZTZmYjNhYjUxZTguLjZiNmU4MjAyMmY3NjExNGEzYzFjMmEw
YzgxZmVlZTQ5YjY0ZTc5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xOTEsNyArMTkxLDYg
QEAgX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3Jl
MTFNZW1vcnlDYWNoZTEzZ2V0U3RhdGlzdGljc0V2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hl
MTNzZXRDYXBhY2l0aWVzRWpqagogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0ZXZpY3RSZXNv
dXJjZXNFdgotX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18z
VVJMRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18zVVJM
RU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTVhZGRJbWFnZVRvQ2Fj
aGVFUDdDR0ltYWdlUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFNZW1v
cnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFTlNfOVNl
c3Npb25JREUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmlu
ZGV4IDJkMzgwNGQ5OTE1MmE4NDFkZWYyNzdiN2I3MDY0Y2IyY2VmZWFkMzEuLjVmYTAzMjM5Nzdh
ODgxYjMyOTJiNTBkZDFiNzM0MTBlMmRjMjQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtMzUsOCArMzUsNiBAQAogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgpAQCAtNjYsNyArNjQsNiBAQCBNZW1v
cnlDYWNoZSYgbWVtb3J5Q2FjaGUoKQogCiBNZW1vcnlDYWNoZTo6TWVtb3J5Q2FjaGUoKQogICAg
IDogbV9kaXNhYmxlZChmYWxzZSkKLSAgICAsIG1fcHJ1bmVFbmFibGVkKHRydWUpCiAgICAgLCBt
X2luUHJ1bmVSZXNvdXJjZXMoZmFsc2UpCiAgICAgLCBtX2NhcGFjaXR5KGNEZWZhdWx0Q2FjaGVD
YXBhY2l0eSkKICAgICAsIG1fbWluRGVhZENhcGFjaXR5KDApCkBAIC0xMzYsMTIgKzEzMywxMiBA
QCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogICAgIEFTU0VSVChyZXNvdXJjZS0+aXNMb2FkZWQo
KSk7CiAgICAgQVNTRVJUKHJldmFsaWRhdGluZ1Jlc291cmNlLT5pbkNhY2hlKCkpOwogCi0gICAg
Ly8gQ2FsbGluZyBldmljdCgpIGNhbiBwb3RlbnRpYWxseSBkZWxldGUgcmV2YWxpZGF0aW5nUmVz
b3VyY2UsIHdoaWNoIHdlIHVzZQorICAgIC8vIENhbGxpbmcgcmVtb3ZlKCkgY2FuIHBvdGVudGlh
bGx5IGRlbGV0ZSByZXZhbGlkYXRpbmdSZXNvdXJjZSwgd2hpY2ggd2UgdXNlCiAgICAgLy8gYmVs
b3cuIFRoaXMgbXVzdG4ndCBiZSB0aGUgY2FzZSBzaW5jZSByZXZhbGlkYXRpb24gbWVhbnMgaXQg
aXMgbG9hZGVkCiAgICAgLy8gYW5kIHNvIGNhbkRlbGV0ZSgpIGlzIGZhbHNlLgogICAgIEFTU0VS
VCghcmV2YWxpZGF0aW5nUmVzb3VyY2UtPmNhbkRlbGV0ZSgpKTsKIAotICAgIGV2aWN0KHJldmFs
aWRhdGluZ1Jlc291cmNlKTsKKyAgICByZW1vdmUocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCiAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2Ut
PnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQpAQCAtMTc5LDEx
ICsxNzYsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25GYWlsZWQoQ2FjaGVkUmVz
b3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlKQogICAgIHJldmFsaWRhdGluZ1Jlc291cmNlLT5j
bGVhclJlc291cmNlVG9SZXZhbGlkYXRlKCk7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlD
YWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKLXsKLSAgICByZXR1
cm4gcmVzb3VyY2VGb3JVUkwocmVzb3VyY2VVUkwsIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKLX0KLQogQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTChj
b25zdCBVUkwmIHJlc291cmNlVVJMLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVy
biByZXNvdXJjZUZvclJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlVVJMKSwgc2Vzc2lv
bklEKTsKQEAgLTI3NCw3ICsyNjYsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZy
b21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYQogCiAgICAg
Ly8gQSByZXNvdXJjZSBleGlzdHMgYW5kIGlzIG5vdCBhIG1hbnVhbGx5IGNhY2hlZCBpbWFnZSwg
c28ganVzdCByZW1vdmUgaXQuCiAgICAgaWYgKCFpczxDYWNoZWRJbWFnZT4oKnJlc291cmNlKSB8
fCAhZG93bmNhc3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkuaXNNYW51YWxseUNhY2hlZCgpKSB7
Ci0gICAgICAgIGV2aWN0KHJlc291cmNlKTsKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjg5LDkgKzI4MSw2IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGRv
bWFpbkZvckNhCiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyhib29sIHNo
b3VsZERlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbExpdmVSZXNvdXJjZXMpCiB7Ci0gICAgaWYgKCFt
X3BydW5lRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdW5zaWduZWQgY2FwYWNpdHkg
PSBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzID8gMCA6IGxpdmVD
YXBhY2l0eSgpOwogICAgIGlmIChjYXBhY2l0eSAmJiBtX2xpdmVTaXplIDw9IGNhcGFjaXR5KQog
ICAgICAgICByZXR1cm47CkBAIC0zMDEsMjAgKzI5MCw2IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBy
dW5lTGl2ZVJlc291cmNlcyhib29sIHNob3VsZERlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbExpdmVS
ZXNvCiAgICAgcHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKHRhcmdldFNpemUsIHNob3VsZERlc3Ry
b3lEZWNvZGVkRGF0YUZvckFsbExpdmVSZXNvdXJjZXMpOwogfQogCi12b2lkIE1lbW9yeUNhY2hl
OjpwcnVuZUxpdmVSZXNvdXJjZXNUb1BlcmNlbnRhZ2UoZmxvYXQgcHJ1bmVQZXJjZW50YWdlKQot
ewotICAgIGlmICghbV9wcnVuZUVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChw
cnVuZVBlcmNlbnRhZ2UgPCAwLjBmICB8fCBwcnVuZVBlcmNlbnRhZ2UgPiAwLjk1ZikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgdW5zaWduZWQgY3VycmVudFNpemUgPSBtX2xpdmVTaXplICsgbV9k
ZWFkU2l6ZTsKLSAgICB1bnNpZ25lZCB0YXJnZXRTaXplID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGN1cnJlbnRTaXplICogcHJ1bmVQZXJjZW50YWdlKTsKLQotICAgIHBydW5lTGl2ZVJlc291cmNl
c1RvU2l6ZSh0YXJnZXRTaXplKTsKLX0KLQogdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVz
b3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUsIGJvb2wgc2hvdWxkRGVzdHJveURlY29k
ZWREYXRhRm9yQWxsTGl2ZVJlc291cmNlcykKIHsKICAgICBpZiAobV9pblBydW5lUmVzb3VyY2Vz
KQpAQCAtMzYyLDkgKzMzNyw2IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNl
c1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplLCBib29sIHNob3VsZERlc3RyCiAKIHZvaWQgTWVt
b3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlcygpCiB7Ci0gICAgaWYgKCFtX3BydW5lRW5hYmxl
ZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBkZWFkQ2FwYWNp
dHkoKTsKICAgICBpZiAoY2FwYWNpdHkgJiYgbV9kZWFkU2l6ZSA8PSBjYXBhY2l0eSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMzczLDIwICszNDUsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZURl
YWRSZXNvdXJjZXMoKQogICAgIHBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSh0YXJnZXRTaXplKTsK
IH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKGZs
b2F0IHBydW5lUGVyY2VudGFnZSkKLXsKLSAgICBpZiAoIW1fcHJ1bmVFbmFibGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAocHJ1bmVQZXJjZW50YWdlIDwgMC4wZiAgfHwgcHJ1bmVQZXJj
ZW50YWdlID4gMC45NWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIHVuc2lnbmVkIGN1cnJlbnRT
aXplID0gbV9saXZlU2l6ZSArIG1fZGVhZFNpemU7Ci0gICAgdW5zaWduZWQgdGFyZ2V0U2l6ZSA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjdXJyZW50U2l6ZSAqIHBydW5lUGVyY2VudGFnZSk7Ci0K
LSAgICBwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodGFyZ2V0U2l6ZSk7Ci19Ci0KIHZvaWQgTWVt
b3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplKQog
ewogICAgIGlmIChtX2luUHJ1bmVSZXNvdXJjZXMpCkBAIC00MzAsNyArMzg4LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUp
CiAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJldmlv
dXMgPSBjdXJyZW50LT5tX3ByZXZJbkFsbFJlc291cmNlc0xpc3Q7CiAgICAgICAgICAgICBBU1NF
UlQoIXByZXZpb3VzIHx8IHByZXZpb3VzLT5pbkNhY2hlKCkpOwogICAgICAgICAgICAgaWYgKCFj
dXJyZW50LT5oYXNDbGllbnRzKCkgJiYgIWN1cnJlbnQtPmlzUHJlbG9hZGVkKCkgJiYgIWN1cnJl
bnQtPmlzQ2FjaGVWYWxpZGF0b3IoKSkgewotICAgICAgICAgICAgICAgIGV2aWN0KGN1cnJlbnQp
OworICAgICAgICAgICAgICAgIHJlbW92ZShjdXJyZW50KTsKICAgICAgICAgICAgICAgICBpZiAo
dGFyZ2V0U2l6ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTQ1OCw3ICs0MTYsNyBAQCB2b2lkIE1lbW9y
eUNhY2hlOjpzZXRDYXBhY2l0aWVzKHVuc2lnbmVkIG1pbkRlYWRCeXRlcywgdW5zaWduZWQgbWF4
RGVhZEJ5dGVzLCB1bgogICAgIHBydW5lKCk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZShDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkp
OwogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmljdGluZyByZXNvdXJjZSAlcCBmb3IgJyVz
JyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEo
KS5kYXRhKCkpOwpAQCAtNzUwLDI3ICs3MDgsNiBAQCB2b2lkIE1lbW9yeUNhY2hlOjphZGp1c3RT
aXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKQogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6
cmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksIHNlc3Np
b25JRCk7Ci19Ci0KLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBp
ZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KSkgewotICAgICAgICBDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGEqIHJlcXVlc3REYXRhID0gcmVxdWVzdC5jb3B5RGF0YSgpLmxl
YWtQdHIoKTsKLSAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3JlcXVlc3REYXRh
LCBzZXNzaW9uSURdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAg
ICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVxdWVzdDo6YWRv
cHQoYWRvcHRQdHIocmVxdWVzdERhdGEpKSk7Ci0gICAgICAgICAgICByZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlKCZjb250ZXh0LCAqcmVxdWVzdCwgc2Vzc2lvbklEKTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
bWVtb3J5Q2FjaGUoKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vzc2lvbklEKSkKLSAg
ICAgICAgbWVtb3J5Q2FjaGUoKS5yZW1vdmUocmVzb3VyY2UpOwotfQotCiB2b2lkIE1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VS
VChjb250ZXh0KTsKQEAgLTc4NSw3ICs3MjIsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVS
ZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAog
CiAgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLm1fc2Vzc2lvblJlc291
cmNlcykgewogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS5yZXNvdXJjZUZvclJlcXVlc3RJbXBsKHJlcXVlc3QsICpyZXNvdXJjZXMudmFsdWUpKQot
ICAgICAgICBtZW1vcnlDYWNoZSgpLnJlbW92ZShyZXNvdXJjZSk7CisgICAgICAgICAgICBtZW1v
cnlDYWNoZSgpLnJlbW92ZShyZXNvdXJjZSk7CiAgICAgfQogfQogCkBAIC04NTcsOSArNzk0LDkg
QEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKICAgICAgICAg
ICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hl
ZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZh
bHVlLT5iZWdpbigpOwotICAgICAgICBldmljdChpbm5lckl0ZXJhdG9yLT52YWx1ZSk7CisgICAg
ICAgIHJlbW92ZShpbm5lckl0ZXJhdG9yLT52YWx1ZSk7CiAjZWxzZQotICAgICAgICBldmljdChv
dXRlckl0ZXJhdG9yLT52YWx1ZSk7CisgICAgICAgIHJlbW92ZShvdXRlckl0ZXJhdG9yLT52YWx1
ZSk7CiAjZW5kaWYKICAgICB9CiB9CkBAIC04ODIsMTMgKzgxOSw2IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OnBydW5lKCkKICAgICBwcnVuZUxpdmVSZXNvdXJjZXMoKTsKIH0KIAotdm9pZCBNZW1vcnlD
YWNoZTo6cHJ1bmVUb1BlcmNlbnRhZ2UoZmxvYXQgdGFyZ2V0UGVyY2VudExpdmUpCi17Ci0gICAg
cHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKHRhcmdldFBlcmNlbnRMaXZlKTsgLy8gUHJ1
bmUgZGVhZCBmaXJzdCwgaW4gY2FzZSBpdCB3YXMgImJvcnJvd2luZyIgY2FwYWNpdHkgZnJvbSBs
aXZlLgotICAgIHBydW5lTGl2ZVJlc291cmNlc1RvUGVyY2VudGFnZSh0YXJnZXRQZXJjZW50TGl2
ZSk7Ci19Ci0KLQogI2lmbmRlZiBOREVCVUcKIHZvaWQgTWVtb3J5Q2FjaGU6OmR1bXBTdGF0cygp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCmluZGV4IDY4ZThk
ZWQyYjc2YzcxYTZjYzI5ZDgwOTM1OGE5YjU3MzZkNWNkZDAuLjY2MTU3YzgzYWE0YjkyYzkwNjdi
M2VjOWEwNTRhOTQ5MzE4ZWQzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oCkBAIC0zOCwxNiArMzgsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgIHsKIAot
Y2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNsYXNzIENhY2hlZFJlc291cmNlOwotY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBVUkw7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0
RGF0YTsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkhhc2g7CiAKIC8vIFRoaXMgY2FjaGUgaG9sZHMg
c3VicmVzb3VyY2VzIHVzZWQgYnkgV2ViIHBhZ2VzOiBpbWFnZXMsIHNjcmlwdHMsIHN0eWxlc2hl
ZXRzLCBldGMuCiAKQEAgLTY3LDIwICs2Myw2IEBAIGNsYXNzIE1lbW9yeUNhY2hlIHsKIHB1Ymxp
YzoKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5Q2FjaGU+OwogCi0jaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRS
ZXNvdXJjZSo+IENhY2hlZFJlc291cmNlSXRlbTsKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBPd25QdHI8Q2FjaGVkUmVzb3VyY2VJdGVtPj4gQ2FjaGVkUmVzb3VyY2VNYXA7Ci0jZWxzZQot
ICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNlKj4gQ2FjaGVkUmVzb3Vy
Y2VNYXA7Ci0jZW5kaWYKLSAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7Ci0KLSAg
ICBzdHJ1Y3QgTFJVTGlzdCB7Ci0gICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7Ci0gICAg
ICAgIENhY2hlZFJlc291cmNlKiBtX3RhaWw7Ci0gICAgICAgIExSVUxpc3QoKSA6IG1faGVhZCgw
KSwgbV90YWlsKDApIHsgfQotICAgIH07Ci0KICAgICBzdHJ1Y3QgVHlwZVN0YXRpc3RpYyB7CiAg
ICAgICAgIGludCBjb3VudDsKICAgICAgICAgaW50IHNpemU7CkBAIC0xMDYsMTIgKzg4LDExIEBA
IHB1YmxpYzoKICAgICAgICAgVHlwZVN0YXRpc3RpYyBmb250czsKICAgICB9OwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBV
UkwmLCBTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZUZvclVSTChjb25zdCBVUkwmLCBTZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9y
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogCiAgICAgYm9vbCBh
ZGQoQ2FjaGVkUmVzb3VyY2UqKTsKLSAgICB2b2lkIHJlbW92ZShDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpIHsgZXZpY3QocmVzb3VyY2UpOyB9CisgICAgdm9pZCByZW1vdmUoQ2FjaGVkUmVzb3Vy
Y2UqKTsKIAogICAgIHN0YXRpYyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQo
Y29uc3QgVVJMJiBvcmlnaW5hbFVSTCk7CiAgICAgCkBAIC0xMzIsOSArMTEzLDcgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcygpOwogICAgIAotICAg
IHZvaWQgc2V0UHJ1bmVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BydW5lRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KICAgICB2b2lkIHBydW5lKCk7Ci0gICAgdm9pZCBwcnVuZVRvUGVyY2VudGFnZShm
bG9hdCB0YXJnZXRQZXJjZW50TGl2ZSk7CiAKICAgICB2b2lkIHNldERlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCkgeyBtX2Rl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSBpbnRlcnZhbDsgfQogICAgIHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbDsgfQpAQCAtMTUzLDgg
KzEzMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRvTGl2ZVJlc291cmNlc1NpemUoQ2FjaGVk
UmVzb3VyY2UqKTsKICAgICB2b2lkIHJlbW92ZUZyb21MaXZlUmVzb3VyY2VzU2l6ZShDYWNoZWRS
ZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgU2Vzc2lvbklEKTsKLSAg
ICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lk
IHJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBGdW5jdGlvbiB0byBjb2xsZWN0IGNh
Y2hlIHN0YXRpc3RpY3MgZm9yIHRoZSBjYWNoZXMgd2luZG93IGluIHRoZSBTYWZhcmkgRGVidWcg
bWVudS4KQEAgLTE2NiwxMiArMTQzLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiopOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZ2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3Jp
Z2lucyk7CiAKLSAgICB1bnNpZ25lZCBtaW5EZWFkQ2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBt
X21pbkRlYWRDYXBhY2l0eTsgfQotICAgIHVuc2lnbmVkIG1heERlYWRDYXBhY2l0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWF4RGVhZENhcGFjaXR5OyB9Ci0gICAgdW5zaWduZWQgY2FwYWNpdHkoKSBj
b25zdCB7IHJldHVybiBtX2NhcGFjaXR5OyB9Ci0gICAgdW5zaWduZWQgbGl2ZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX2xpdmVTaXplOyB9Ci0gICAgdW5zaWduZWQgZGVhZFNpemUoKSBjb25zdCB7
IHJldHVybiBtX2RlYWRTaXplOyB9Ci0KICNpZiBVU0UoQ0cpCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGUgVVNFKENHKSBvbmNlIHdlIGVpdGhlciBtYWtlIE5hdGl2ZUltYWdlUHRyIGEgc21hcnQg
cG9pbnRlciBvbiBhbGwgcGxhdGZvcm1zIG9yCiAgICAgLy8gcmVtb3ZlIHRoZSB1c2FnZSBvZiBD
RlJldGFpbigpIGluIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoKSBzbyBhcyB0byBtYWtl
IHRoZSBjb2RlIHBsYXRmb3JtLWluZGVwZW5kZW50LgpAQCAtMTg1LDggKzE1NiwxOCBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcnVuZUxpdmVSZXNvdXJjZXMoYm9vbCBzaG91
bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZlUmVzb3VyY2VzID0gZmFsc2UpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgcHJ1bmVEZWFkUmVzb3VyY2VzVG9QZXJjZW50YWdlKGZsb2F0IHBydW5l
UGVyY2VudGFnZSk7IC8vIFBydW5lIHRvICUgY3VycmVudCBzaXplCi0gICAgdm9pZCBwcnVuZUxp
dmVSZXNvdXJjZXNUb1BlcmNlbnRhZ2UoZmxvYXQgcHJ1bmVQZXJjZW50YWdlKTsKKyNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQorICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hl
ZFJlc291cmNlKj4gQ2FjaGVkUmVzb3VyY2VJdGVtOworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIE93blB0cjxDYWNoZWRSZXNvdXJjZUl0ZW0+PiBDYWNoZWRSZXNvdXJjZU1hcDsKKyNlbHNl
CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBDYWNoZWRSZXNv
dXJjZU1hcDsKKyNlbmRpZgorCisgICAgc3RydWN0IExSVUxpc3QgeworICAgICAgICBDYWNoZWRS
ZXNvdXJjZSogbV9oZWFkIHtudWxscHRyfTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIG1fdGFp
bCB7bnVsbHB0cn07CisgICAgfTsKKwogICAgIHZvaWQgcHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXpl
KHVuc2lnbmVkIHRhcmdldFNpemUpOwogICAgIHZvaWQgcHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXpl
KHVuc2lnbmVkIHRhcmdldFNpemUsIGJvb2wgc2hvdWxkRGVzdHJveURlY29kZWREYXRhRm9yQWxs
TGl2ZVJlc291cmNlcyA9IGZhbHNlKTsKIApAQCAtMjAyLDE0ICsxODMsMTAgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsaXZlQ2FwYWNpdHkoKSBjb25zdDsKICAgICB1bnNpZ25lZCBkZWFkQ2Fw
YWNpdHkoKSBjb25zdDsKIAotICAgIHZvaWQgZXZpY3QoQ2FjaGVkUmVzb3VyY2UqKTsKLQotICAg
IFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJlc291cmNlTWFwJik7Ci0KKyAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBD
YWNoZWRSZXNvdXJjZU1hcCYpOwogICAgIENhY2hlZFJlc291cmNlTWFwJiBnZXRTZXNzaW9uTWFw
KFNlc3Npb25JRCk7CiAKICAgICBib29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0
aGUgY2FjaGUgaXMgZW5hYmxlZC4KLSAgICBib29sIG1fcHJ1bmVFbmFibGVkOwogICAgIGJvb2wg
bV9pblBydW5lUmVzb3VyY2VzOwogCiAgICAgdW5zaWduZWQgbV9jYXBhY2l0eTsKQEAgLTIzMCw2
ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEEgVVJMLWJhc2VkIG1hcCBvZiBhbGwg
cmVzb3VyY2VzIHRoYXQgYXJlIGluIHRoZSBjYWNoZSAoaW5jbHVkaW5nIHRoZSBmcmVzaGVzdCB2
ZXJzaW9uIG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIAogICAgIC8vIHJlZmVy
ZW5jZWQgYnkgYSBXZWIgcGFnZSkuCisgICAgdHlwZWRlZiBIYXNoTWFwPFNlc3Npb25JRCwgc3Rk
Ojp1bmlxdWVfcHRyPENhY2hlZFJlc291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFw
OwogICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcCBtX3Nlc3Npb25SZXNvdXJjZXM7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA3ZDcwMjJkOTVhMWU1MTJmMTBjYTJmNTg4Njk0NDE4NDI4NWU5NzgyLi5lMzc2MzNl
MDNkOWY0ZWM1NTUwNGNkMmI0YzIxYWQ1ZWNlZWE2NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKIAog
ICAgIHsKICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHJ1bmUgTWVtb3J5Q2FjaGUiKTsKLSAg
ICAgICAgbWVtb3J5Q2FjaGUoKS5wcnVuZVRvUGVyY2VudGFnZSgwKTsKKyAgICAgICAgbWVtb3J5
Q2FjaGUoKS5ldmljdFJlc291cmNlcygpOwogICAgIH0KIAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4
cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRH
ZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggYjNmODE0YjRlOTlhYTNkY2NjOWYw
NzRlNjdlYzFmMzRmMzM1MWZhYS4uYzJhNjIzZjZhZjg2NjkyMTUwMWRkOGRlOTU5OWNkOGFiMjI1
NGI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBv
cnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAg
LTQwNiw3ICs0MDYsNiBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9wYXVz
ZVRyYW5zaXRpb25BdFRpbWVAQW5pbWF0aW9uQ29udHJvbGxlckBXZWJDb3JlQEBRQUVfTlBBVlJl
bmRlckVsZW1lbnRAMkBBQlZTdHJpbmdAV1RGQEBOQFosID9wYXVzZVRyYW5zaXRpb25BdFRpbWVA
QW5pbWF0aW9uQ29udHJvbGxlckBXZWJDb3JlQEBRRUFBX05QRUFWUmVuZGVyRWxlbWVudEAyQEFF
QlZTdHJpbmdAV1RGQEBOQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9tZW1vcnlDYWNo
ZUBXZWJDb3JlQEBZQUFBVk1lbW9yeUNhY2hlQDFAWFosID9tZW1vcnlDYWNoZUBXZWJDb3JlQEBZ
QUFFQVZNZW1vcnlDYWNoZUAxQFhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZXZpY3RS
ZXNvdXJjZXNATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUFFWFhaLCA/ZXZpY3RSZXNvdXJjZXNATWVt
b3J5Q2FjaGVAV2ViQ29yZUBAUUVBQVhYWikKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Jl
c291cmNlRm9yVVJMQE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFBRVBBVkNhY2hlZFJlc291cmNlQDJA
QUJWVVJMQDJAQFosID9yZXNvdXJjZUZvclVSTEBNZW1vcnlDYWNoZUBXZWJDb3JlQEBRRUFBUEVB
VkNhY2hlZFJlc291cmNlQDJAQUVCVlVSTEAyQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRl
cig/bm9uRmFzdFNjcm9sbGFibGVSZWN0c0BQYWdlQFdlYkNvcmVAQFFBRT9BVj8kUmVmQFZDbGll
bnRSZWN0TGlzdEBXZWJDb3JlQEBAV1RGQEBQQlZGcmFtZUAyQEBaLCA/bm9uRmFzdFNjcm9sbGFi
bGVSZWN0c0BQYWdlQFdlYkNvcmVAQFFFQUE/QVY/JFJlZkBWQ2xpZW50UmVjdExpc3RAV2ViQ29y
ZUBAQFdURkBAUEVCVkZyYW1lQDJAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9udW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnNAQW5pbWF0aW9uQ29udHJvbGxlckBXZWJDb3JlQEBRQkVJUEFW
RG9jdW1lbnRAMkBAWiwgP251bWJlck9mQWN0aXZlQW5pbWF0aW9uc0BBbmltYXRpb25Db250cm9s
bGVyQFdlYkNvcmVAQFFFQkFJUEVBVkRvY3VtZW50QDJAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQ
b2ludGVyKD9taW5ET01UaW1lckludGVydmFsQFNldHRpbmdzQFdlYkNvcmVAQFFBRU5YWiwgP21p
bkRPTVRpbWVySW50ZXJ2YWxAU2V0dGluZ3NAV2ViQ29yZUBAUUVBQU5YWikK
</data>

          </attachment>
      

    </bug>

</bugzilla>