<?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>170780</bug_id>
          
          <creation_ts>2017-04-12 11:03:42 -0700</creation_ts>
          <short_desc>Stop using didReceiveDataArray callback on El Capitan</short_desc>
          <delta_ts>2017-04-12 12:41:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296779</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-12 11:03:42 -0700</bug_when>
    <thetext>Stop using didReceiveDataArray callback on El Capitan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296780</commentid>
    <comment_count>1</comment_count>
      <attachid>306922</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-12 11:10:40 -0700</bug_when>
    <thetext>Created attachment 306922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296801</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-12 12:41:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/r215280</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306922</attachid>
            <date>2017-04-12 11:10:40 -0700</date>
            <delta_ts>2017-04-12 11:25:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170780-20170412111039.patch</filename>
            <type>text/plain</type>
            <size>33134</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTI3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA0LTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2lu
ZyBkaWRSZWNlaXZlRGF0YUFycmF5IGNhbGxiYWNrIG9uIEVsIENhcGl0YW4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDc4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGRpZFJlY2VpdmVEYXRhQXJyYXkg
d2FzIGFuIG9wdGltaXphdGlvbiB0aGF0IGltcHJvdmVkIHBlcmZvcm1hbmNlIG9uIGlPUyBidXQg
aXMgbm90IG5lZWRlZCBhbnkgbW9yZS4KKyAgICAgICAgVGhlIG9ubHkgcGxhdGZvcm0gd2hlcmUg
dGhpcyBpcyB1c2VkIGlzIEVsIENhcGl0YW4sIGFuZCBkaWRSZWNlaXZlRGF0YSB3b3JrcyBmaW5l
IG9uIHRoYXQgcGxhdGZvcm0uCisgICAgICAgIEkndmUgbGVmdCBzb21lIGNsZWFudXAgc3RpbGwg
dG8gYmUgZG9uZSBpbiBTaGFyZWRCdWZmZXIsIGFuZCBkb2luZyB0aGF0IGlzIHRoZSBtb3RpdmF0
aW9uIGZvciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2YvU3VicmVz
b3VyY2VMb2FkZXJDRi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogbG9hZGVyL21hYy9SZXNvdXJj
ZUxvYWRlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVu
dDo6c3VwcG9ydHNEYXRhQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlOjptYWtlQ29ubmVjdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlRGF0YUFycmF5Q2FsbGJh
Y2spOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlRGF0YUFycmF5KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhQXJyYXk6XSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlRGF0YUFycmF5
Ol0pOiBEZWxldGVkLgorCiAyMDE3LTA0LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkIGFmdGVyIHIyMTUy
NjUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDIxNTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzIyNSw3ICszMjI1LDYg
QEAKIAkJN0Q0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdENEM5NkQ4MUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgKi87IH07CiAJCTdENEM5NkREMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0Q0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hI
ZWFkZXJzLmggKi87IH07CiAJCTdENzQxQkRBMTc3MjI2QUEwMDg1OTE3MCAvKiBDU1NWYWx1ZUtl
eXdvcmRzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jk
cy5oICovOyB9OwotCQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2Fk
ZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07
CiAJCTdFNDI4Q0U1MTNFMzQwN0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDI4Q0U0MTNFMzQw
N0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlPUy5tbSAqLzsgfTsKIAkJN0U0NkY2RkExNjI3
QTJDQTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMg
LyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U0NkY2RkIxNjI3QTJDQTAw
MDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VT
RWxlbWVudEluZGV4VWludC5oICovOyB9OwpAQCAtMTEyMjcsNyArMTEyMjYsNiBAQAogCQk3Q0ZE
QzU3QjFBQzFEODA1MDBFMjRBNTcgLyogQ29udGVudEV4dGVuc2lvbkVycm9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25FcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RDRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aEhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRj
aEhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RDRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNGZXRjaEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
N0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDI4Q0U0MTNFMzQwN0YwMDNCNjYxQyAv
KiBSZXNvdXJjZUhhbmRsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlc291cmNlSGFuZGxlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTRWxlbWVudEluZGV4VWlu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDZGNkY5MTYyN0EyQzkwMDA2
MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNPRVNFbGVtZW50SW5kZXhVaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTY1MSw3ICsxOTY0OSw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNG
TmV0LmNwcCAqLywKLQkJCQk3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VM
b2FkZXJDRi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTMzMDk2LDcgKzMzMDkzLDYgQEAKIAkJCQkxRkM0MEZCOTE2NTVDQ0I2MDA0
MEYyOUUgLyogU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0REMzEyNTFGMTJEMDAzRUYyNjkgLyogU3VibWl0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRTIyN0U0MEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVz
b3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RThGQURDNDE5OUE5NUIxMDA3
MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3
NzhCRDg0MURBNDgxN0IwMDlFMzAwOSAvKiBTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNCMkQ4MTgwRjk5MjBFRTAwNkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAko
cmV2aXNpb24gMjE1MjcxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw5ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgbG9uZyBsb25nIGVu
Y29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSNpZiBVU0UoTkVUV09SS19DRkRBVEFf
QVJSQVlfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZB
cnJheVJlZiBkYXRhQXJyYXkpOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRpZFJldHJpZXZl
RGVyaXZlZERhdGFGcm9tQ2FjaGUoY29uc3QgU3RyaW5nJiB0eXBlLCBTaGFyZWRCdWZmZXImKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwpAQCAtMTk2
LDkgKzE5Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgd2FzQmxvY2tlZChSZXNv
dXJjZUhhbmRsZSopIG92ZXJyaWRlOwogICAgIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhh
bmRsZSopIG92ZXJyaWRlOwotI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykK
LSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5UmVm
IGRhdGFBcnJheSkgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGUgeyByZXR1cm4gc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoKTsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNo
YWxsZW5nZSkgb3ZlcnJpZGUgeyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hh
bGxlbmdlKTsgfSAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDIx
NTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MywxMCArODMsNiBAQCBwcml2YXRlOgogICAgIENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmKSBvdmVycmlkZTsKICNlbmRpZgogCi0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FS
UkFZX0NBTExCQUNLKQotICAgIGJvb2wgc3VwcG9ydHNEYXRhQXJyYXkoKSBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYpIG92
ZXJyaWRlOwotI2VuZGlmCiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgb3ZlcnJpZGU7CiAK
ICNpZiBVU0UoU09VUCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jZi9TdWJyZXNvdXJj
ZUxvYWRlckNGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2YvU3Vi
cmVzb3VyY2VMb2FkZXJDRi5jcHAJKHJldmlzaW9uIDIxNTI3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jZi9TdWJyZXNvdXJjZUxvYWRlckNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJT
dWJyZXNvdXJjZUxvYWRlci5oIgotCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKLSNpbmNs
dWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmIFVTRShORVRXT1JL
X0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLXZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCi17Ci0gICAgLy8gUmVmZXJlbmNlIHRo
ZSBvYmplY3QgaW4gdGhpcyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBj
YW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nCi0gICAgLy8gcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJl
bmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDxyZGFyOi8vcHJvYmxl
bS8zMjY2MjE2Pi4KLSAgICBSZWY8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRo
aXMpOwotCi0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkoZGF0YUFycmF5
KTsKLQotICAgIGlmIChjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgLy8gQSBzdWJyZXNvdXJjZSBsb2FkZXIgZG9lcyBub3QgbG9hZCBtdWx0aXBh
cnQgc2VjdGlvbnMgcHJvZ3Jlc3NpdmVseS4KLSAgICAvLyBTbyBkb24ndCBkZWxpdmVyIGFueSBk
YXRhIHRvIHRoZSBsb2FkZXIgeWV0LgotICAgIGlmICghbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVu
dCkgewotICAgICAgICBDRkluZGV4IGFycmF5Q291bnQgPSBDRkFycmF5R2V0Q291bnQoZGF0YUFy
cmF5KTsKLSAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgYXJyYXlDb3VudDsgKytpKSAg
ewotICAgICAgICAgICAgLy8gQSBwcmV2aW91cyBpdGVyYXRpb24gb2YgdGhpcyBsb29wIG1pZ2h0
IGhhdmUgcmVzdWx0ZWQgaW4gdGhlIGxvYWQKLSAgICAgICAgICAgIC8vIGJlaW5nIGNhbmNlbGxl
ZC4gQmFpbCBvdXQgaWYgd2Ugbm8gbG9uZ2VyIGhhdmUgYSBjYWNoZWQgcmVzb3VyY2UuCi0gICAg
ICAgICAgICBpZiAoIW1fcmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlRGF0YSA9IHRoaXMtPnJlc291cmNlRGF0YSgpKQotICAg
ICAgICAgICAgICAgIG1fcmVzb3VyY2UtPmFkZERhdGFCdWZmZXIoKnJlc291cmNlRGF0YSk7Ci0g
ICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBDRkRhdGFSZWYgY2ZEYXRhID0gcmVp
bnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZGF0YUFycmF5
LCBpKSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciogZGF0YSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhciAqPihDRkRhdGFHZXRCeXRlUHRyKGNmRGF0YSkpOwotICAgICAgICAgICAg
ICAgIENGSW5kZXggbGVuZ3RoID0gQ0ZEYXRhR2V0TGVuZ3RoKGNmRGF0YSk7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKGxlbmd0aCA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPENGSW5kZXg+OjptYXgo
KSk7Ci0gICAgICAgICAgICAgICAgbV9yZXNvdXJjZS0+YWRkRGF0YShkYXRhLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obGVuZ3RoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0jZW5kaWYKLQotfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxv
YWRlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291
cmNlTG9hZGVyTWFjLm1tCShyZXZpc2lvbiAyMTUyNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OCw0NSArNTgs
NCBAQCBOU0NhY2hlZFVSTFJlc3BvbnNlKiBSZXNvdXJjZUxvYWRlcjo6d2lsCiAKICNlbmRpZgog
Ci0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotCi12b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQotewotICAg
IC8vIFByb3RlY3QgdGhpcyBpbiB0aGlzIGRlbGVnYXRlIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRp
b25hbCBwcm9jZXNzaW5nIGNhbiBkbwotICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJs
eSBkZXJlZmluZyB0aGlzOyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIFJhZGFyIDMyNjYyMTYuCi0g
ICAgUmVmPFJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQotICAgIENGSW5k
ZXggYXJyYXlDb3VudCA9IENGQXJyYXlHZXRDb3VudChkYXRhQXJyYXkpOwotICAgIGZvciAoQ0ZJ
bmRleCBpID0gMDsgaSA8IGFycmF5Q291bnQ7ICsraSkgewotICAgICAgICBDRkRhdGFSZWYgZGF0
YSA9IHN0YXRpY19jYXN0PENGRGF0YVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChkYXRhQXJy
YXksIGkpKTsKLSAgICAgICAgdW5zaWduZWQgZGF0YUxlbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihDRkRhdGFHZXRMZW5ndGgoZGF0YSkpOwotCi0gICAgICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9PSBCdWZmZXJEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoIW1fcmVzb3Vy
Y2VEYXRhKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoKTsKLSAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhLT5hcHBlbmQoZGF0YSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3Jl
IHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCi0gICAg
ICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3Bl
ZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KLSAgICAgICAgLy8gQ291bGQgYmUg
YW4gaXNzdWUgd2l0aCBhIGdpYW50IGxvY2FsIGZpbGUuCi0gICAgICAgIGlmIChtX29wdGlvbnMu
c2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrcyAmJiBtX2ZyYW1lKQotICAgICAgICAg
ICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRSZWNlaXZlRGF0YSh0aGlzLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgZGF0YUxlbiwg
ZGF0YUxlbik7Ci0gICAgfQotfQotCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YUFycmF5KFJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCi17Ci0gICAgQ0ZJ
bmRleCBhcnJheUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGRhdGFBcnJheSk7Ci0gICAgQ0ZJbmRl
eCBkYXRhTGVuZ3RoID0gMDsKLSAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBhcnJheUNvdW50
OyArK2kpIHsKLSAgICAgICAgQ0ZEYXRhUmVmIGRhdGEgPSBzdGF0aWNfY2FzdDxDRkRhdGFSZWY+
KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZGF0YUFycmF5LCBpKSk7Ci0gICAgICAgIGRhdGFMZW5n
dGggKz0gQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEpOwotICAgIH0KLQotICAgIGRpZFJlY2VpdmVEYXRh
QXJyYXkoZGF0YUFycmF5KTsKLX0KLQotI2VuZGlmCi0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHJl
dmlzaW9uIDIxNTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsOTAgKzQyLDg1IEBAIE9CSkNf
Q0xBU1MgTlNDYWNoZWRVUkxSZXNwb25zZTsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci0gICAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7Ci0gICAgY2xhc3MgQ3JlZGVudGlh
bDsKLSAgICBjbGFzcyBVUkw7Ci0gICAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwotICAgIGNsYXNz
IFJlc291cmNlSGFuZGxlOwotICAgIGNsYXNzIFJlc291cmNlRXJyb3I7Ci0gICAgY2xhc3MgUmVz
b3VyY2VSZXF1ZXN0OwotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2hh
cmVkQnVmZmVyOwotCi0gICAgZW51bSBDYWNoZVN0b3JhZ2VQb2xpY3kgewotICAgICAgICBTdG9y
YWdlQWxsb3dlZCwKLSAgICAgICAgU3RvcmFnZUFsbG93ZWRJbk1lbW9yeU9ubHksCi0gICAgICAg
IFN0b3JhZ2VOb3RBbGxvd2VkCi0gICAgfTsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OworY2xhc3MgQ3JlZGVudGlhbDsKK2NsYXNzIFVSTDsKK2NsYXNzIFByb3RlY3Rpb25TcGFjZTsK
K2NsYXNzIFJlc291cmNlSGFuZGxlOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291
cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTaGFyZWRCdWZmZXI7
CisKK2VudW0gQ2FjaGVTdG9yYWdlUG9saWN5IHsKKyAgICBTdG9yYWdlQWxsb3dlZCwKKyAgICBT
dG9yYWdlQWxsb3dlZEluTWVtb3J5T25seSwKKyAgICBTdG9yYWdlTm90QWxsb3dlZAorfTsKKwor
Y2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JU
IFJlc291cmNlSGFuZGxlQ2xpZW50KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVz
b3VyY2VIYW5kbGVDbGllbnQoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVzb3Vy
Y2VSZXF1ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVz
dCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShS
ZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyAvKmJ5dGVzU2VudCovLCB1bnNpZ25l
ZCBsb25nIGxvbmcgLyp0b3RhbEJ5dGVzVG9CZVNlbnQqLykgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYm
KSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pIHsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291
cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsK
ICAgICAKLSAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVudCB7Ci0gICAgcHVibGljOgotICAg
ICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUhhbmRsZUNsaWVudCgpOwotICAgICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZUNsaWVudCgpOwotCi0gICAgICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVzb3VyY2VSZXF1ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBs
b25nIGxvbmcgLypieXRlc1NlbnQqLywgdW5zaWduZWQgbG9uZyBsb25nIC8qdG90YWxCeXRlc1Rv
QmVTZW50Ki8pIHsgfQotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIHsgfQotICAgICAgICAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSB7IH0KLSAgICAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUq
LCBSZWY8U2hhcmVkQnVmZmVyPiYmLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgICAgICAK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSB7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291
cmNlSGFuZGxlKikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291
cmNlSGFuZGxlKikgeyB9Ci0KLSAgICAgICAgdmlydHVhbCBib29sIHVzZXNBc3luY0NhbGxiYWNr
cygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxv
Y2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJM
KFJlc291cmNlSGFuZGxlKikgeyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGxvYWRpbmdTeW5j
aHJvbm91c1hIUigpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNBc3lu
Y0NhbGxiYWNrcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAgICAgLy8gQ2xpZW50IHdpbGwg
cGFzcyBhbiB1cGRhdGVkIHJlcXVlc3QgdXNpbmcgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2ls
bFNlbmRSZXF1ZXN0KCkgd2hlbiByZWFkeS4KLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJik7CisgICAgdmlydHVhbCBib29sIGxvYWRpbmdTeW5j
aHJvbm91c1hIUigpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAgICAgLy8gQ2xpZW50IHdpbGwg
Y2FsbCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSB3aGVuIHJl
YWR5LgotICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpOworICAgIC8vIENs
aWVudCB3aWxsIHBhc3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCgpIHdoZW4gcmVhZHkuCisgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJik7CisKKyAgICAvLyBDbGllbnQgd2lsbCBj
YWxsIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIHdoZW4gcmVh
ZHkuCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmKTsKIAogI2lmIFVTRShQUk9U
RUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgICAgIC8vIENsaWVudCB3aWxsIHBhc3Mg
YW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51ZUNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoKSB3aGVuIHJlYWR5LgotICAgICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CisgICAg
Ly8gQ2xpZW50IHdpbGwgcGFzcyBhbiB1cGRhdGVkIHJlcXVlc3QgdXNpbmcgUmVzb3VyY2VIYW5k
bGU6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSgpIHdoZW4g
cmVhZHkuCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYpOwogI2VuZGlmCi0gICAgICAgIC8vIENsaWVudCB3aWxsIHBhc3MgYW4gdXBkYXRl
ZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNl
KCkgd2hlbiByZWFkeS4KKyAgICAvLyBDbGllbnQgd2lsbCBwYXNzIGFuIHVwZGF0ZWQgcmVxdWVz
dCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZSgpIHdoZW4g
cmVhZHkuCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2ls
bENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpOwogI2VsaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRV
UkxSZXNwb25zZSAqKTsKLSNlbmRpZgotCi0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NB
TExCQUNLKQotICAgICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhQXJyYXkoKSB7IHJldHVy
biBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShSZXNv
dXJjZUhhbmRsZSosIENGQXJyYXlSZWYpIHsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxS
ZXNwb25zZSAqKTsKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCi0gICAgICAgIHZpcnR1YWwgY2hh
ciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCAvKnJlcXVlc3RlZExlbmd0aCovLCBzaXpl
X3QmIC8qYWN0dWFsTGVuZ3RoKi8pIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGNoYXIqIGdl
dE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgLypyZXF1ZXN0ZWRMZW5ndGgqLywgc2l6ZV90JiAv
KmFjdHVhbExlbmd0aCovKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVy
biBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3Vy
Y2VIYW5kbGUqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpIHsgfQogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpIHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0
aW9uKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIHsgfQogCiAjaWYgUExBVEZPUk0oSU9TKSB8
fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgICAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkRpY3Rp
b25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKFJlc291cmNlSGFuZGxlKikgeyByZXR1cm4g
bnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVj
dGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5k
aWYKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgICAgIHZpcnR1YWwgQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlOyB9CisgICAgdmlydHVh
bCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0K
ICNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmIC8vIFBM
QVRGT1JNKFdJTikKIAogI2VsaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIHZpcnR1YWwgTlND
YWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0Nh
Y2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KKyAgICB2aXJ0
dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlOyB9CiAj
ZW5kaWYKLSAgICB9OworfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAyMTUyNzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsMTMgKzEyMSw2IEBAIEJvb2xlYW4g
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWwKIH0KICNlbmRpZiAvLyBVU0UoUFJPVEVD
VElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogCi0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZ
X0NBTExCQUNLKQotdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpk
aWRSZWNlaXZlRGF0YUFycmF5Q2FsbGJhY2soQ0ZVUkxDb25uZWN0aW9uUmVmLCBDRkFycmF5UmVm
IGRhdGFBcnJheSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBzdGF0aWNfY2FzdDxS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT5kaWRSZWNlaXZlRGF0YUFycmF5KGRhdGFBcnJheSk7Ci19Ci0jZW5kaWYg
Ly8gVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotCiBSZXRhaW5QdHI8Q0ZVUkxS
ZXNwb25zZVJlZj4gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6c3ludGhl
c2l6ZVJlZGlyZWN0UmVzcG9uc2VJZk5lY2Vzc2FyeShDRlVSTFJlcXVlc3RSZWYgbmV3UmVxdWVz
dCwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgaWYgKGNmUmVk
aXJlY3RSZXNwb25zZSkKQEAgLTIwNywxMSArMjAwLDcgQEAgQ0ZVUkxDb25uZWN0aW9uQ2xpZW50
X1Y2IFJlc291cmNlSGFuZGxlQwogICAgICAgICAwLAogI2VuZGlmCiAgICAgICAgIDAsCi0jaWYg
VVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotICAgICAgICAmUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFBcnJheUNhbGxiYWNrCi0j
ZWxzZQogICAgICAgICAwCi0jZW5kaWYKICAgICB9OwogICAgIHJldHVybiBjbGllbnQ7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAko
cmV2aXNpb24gMjE1MjcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDkgKzcyLDYgQEAgcHJpdmF0ZToKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NB
TExCQUNLKQogICAgIHN0YXRpYyBCb29sZWFuIGNhblJlc3BvbmRUb1Byb3RlY3Rpb25TcGFjZUNh
bGxiYWNrKENGVVJMQ29ubmVjdGlvblJlZiwgQ0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhf
Q0FMTEJBQ0spCi0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotICAgIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXlDYWxsYmFjayhDRlVSTENvbm5lY3Rpb25SZWYs
IENGQXJyYXlSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotI2VuZGlmIC8vIFVTRShORVRX
T1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKIAogICAgIHZpcnR1YWwgQ0ZVUkxSZXF1ZXN0UmVm
IHdpbGxTZW5kUmVxdWVzdChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQ29ubmVjdGlvblJlZiwg
Q0ZVUkxSZXNwb25zZVJlZikgPSAwOwpAQCAtODgsOSArODUsNiBAQCBwcml2YXRlOgogI2lmIFVT
RShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdmlydHVhbCBCb29sZWFuIGNh
blJlc3BvbmRUb1Byb3RlY3Rpb25TcGFjZShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZikgPSAwOwog
I2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0jaWYgVVNFKE5F
VFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
RGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KSA9IDA7Ci0jZW5kaWYgLy8gVVNFKE5FVFdP
UktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQogCiBwcm90ZWN0ZWQ6CiAgICAgUmVzb3VyY2VIYW5k
bGUqIG1faGFuZGxlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCShy
ZXZpc2lvbiAyMTUyNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDMsMjQgKzMwMyw2IEBAIEJvb2xlYW4gUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWwKIH0KICNlbmRpZiAvLyBVU0UoUFJPVEVDVElPTl9TUEFDRV9B
VVRIX0NBTExCQUNLKQogCi0jaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQot
dm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1
ZXVlOjpkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQotewotICAgIC8v
IEZJWE1FOiBUaGUgYmxvY2sgaW1wbGljaXRseSBjb3BpZXMgcHJvdGVjdG9yIG9iamVjdCwgd2hp
Y2ggaXMgd2FzdGVmdWwuIFdlIHNob3VsZCBqdXN0IGNhbGwgcmVmKCksCi0gICAgLy8gY2FwdHVy
ZSAidGhpcyIgYnkgcG9pbnRlciB2YWx1ZSwgYW5kIHVzZSBhIEMrKyBsYW1iZGEgdG8gcHJldmVu
dCBvdGhlciB1bmludGVudGlvbmFsIGNhcHR1cmluZy4KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZT4gcHJvdGVjdGVkVGhp
cyh0aGlzKTsKLSAgICBDRlJldGFpbihkYXRhQXJyYXkpOwotICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5o
YXNIYW5kbGUoKSAmJiBtX2hhbmRsZS0+Y2xpZW50KCkpIHsKLSAgICAgICAgICAgIExPRyhOZXR3
b3JrLCAiQ0ZOZXQgLSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlOjpkaWRTZW5kQm9keURhdGEoaGFuZGxlPSVwKSAoJXMpIiwgbV9oYW5kbGUs
IG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LQotICAgICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlQnVmZmVyKG1faGFu
ZGxlLCBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheShkYXRhQXJyYXkpLCAtMSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgQ0ZSZWxlYXNlKGRhdGFBcnJheSk7Ci0gICAgfSk7Ci19Ci0jZW5kaWYg
Ly8gVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotCiB2b2lkIFJlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2ls
bFNlbmRSZXF1ZXN0KENGVVJMUmVxdWVzdFJlZiByZXF1ZXN0KQogewogICAgIG1fcmVxdWVzdFJl
c3VsdCA9IHJlcXVlc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAkocmV2
aXNpb24gMjE1MjcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDYgQEAgcHJpdmF0ZToKICNpZiBVU0UoUFJPVEVDVElP
Tl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJvdGVjdGlv
blNwYWNlKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmKSBvdmVycmlkZTsKICNlbmRpZiAvLyBVU0Uo
UFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQotI2lmIFVTRShORVRXT1JLX0NGREFUQV9B
UlJBWV9DQUxMQkFDSykKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBk
YXRhQXJyYXkpIG92ZXJyaWRlOwotI2VuZGlmIC8vIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9D
QUxMQkFDSykKIAogICAgIHZvaWQgY29udGludWVXaWxsU2VuZFJlcXVlc3QoQ0ZVUkxSZXF1ZXN0
UmVmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgb3Zl
cnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAyMTUyNzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MiwxOSAr
MjcyLDYgQEAgQm9vbGVhbiBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDbwogfQogI2Vu
ZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAKLSNpZiBVU0UoTkVU
V09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCi12b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVm
IGRhdGFBcnJheSkKLXsKLSAgICBpZiAoIW1faGFuZGxlLT5jbGllbnQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZURhdGFBcnJheShoYW5kbGU9JXAs
IGFycmF5TGVuZ3RoPSVsZCkgKCVzKSIsIG1faGFuZGxlLCBDRkFycmF5R2V0Q291bnQoZGF0YUFy
cmF5KSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotCi0gICAgaWYgKFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX2hhbmRsZS0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2hhbmRsZSwgU2hh
cmVkQnVmZmVyOjp3cmFwQ0ZEYXRhQXJyYXkoZGF0YUFycmF5KSwgLTEpOwotfQotI2VuZGlmIC8v
IFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLQogdm9pZCBTeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1
ZXN0KENGVVJMUmVxdWVzdFJlZikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuaAkocmV2aXNpb24gMjE1MjcxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYsIENGSW5kZXggb3JpZ2luYWxMZW5ndGgpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGlkRmFpbChDRkVycm9yUmVmKSBvdmVycmlkZTsKLSNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJS
QVlfQ0FMTEJBQ0spCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0
YUFycmF5KSBvdmVycmlkZTsKLSNlbmRpZiAvLyBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FM
TEJBQ0spCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXR1cFJlcXVlc3QoQ0ZNdXRhYmxlVVJMUmVx
dWVzdFJlZikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
RGVsZWdhdGUubW0JKHJldmlzaW9uIDIxNTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE1MywyMyArMTUzLDYgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljbwogICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNv
dXJjZVJlc3BvbnNlKSk7CiB9CiAKLSNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJB
Q0spCi0tICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlk
UmVjZWl2ZURhdGFBcnJheTooTlNBcnJheSAqKWRhdGFBcnJheQotewotICAgIFVOVVNFRF9QQVJB
TShjb25uZWN0aW9uKTsKLSAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25u
ZWN0aW9uOiVwIGRpZFJlY2VpdmVEYXRhQXJyYXk6JXAgYXJyYXlTaXplOiVkIiwgbV9oYW5kbGUs
IGNvbm5lY3Rpb24sIGRhdGFBcnJheSwgW2RhdGFBcnJheSBjb3VudF0pOwotCi0gICAgaWYgKCFk
YXRhQXJyYXkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFu
ZGxlLT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9oYW5kbGUtPmNsaWVudCgp
LT5kaWRSZWNlaXZlQnVmZmVyKG1faGFuZGxlLCBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJh
eShyZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRhdGFBcnJheSkpLCAtMSk7Ci0gICAgLy8g
VGhlIGNhbGwgdG8gZGlkUmVjZWl2ZURhdGEgYWJvdmUgY2FuIGNhbmNlbCBhIGxvYWQsIGFuZCBp
ZiBzbywgdGhlIGRlbGVnYXRlIChzZWxmKSBjb3VsZCBoYXZlIGJlZW4gZGVhbGxvY2F0ZWQgYnkg
dGhpcyBwb2ludC4KLX0KLSNlbmRpZgotCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEgbGVuZ3RoUmVj
ZWl2ZWQ6KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAogewogICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9uIDIxNTI3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDI3ICsyMDUsNiBA
QCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiB9CiAK
LSNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCi0tICh2b2lkKWNvbm5lY3Rp
b246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGFBcnJheTooTlNB
cnJheSAqKWRhdGFBcnJheQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKLQotICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRl
bGVnYXRlIGNvbm5lY3Rpb246JXAgZGlkUmVjZWl2ZURhdGFBcnJheTolcCBhcnJheVNpemU6JWQi
LCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgZGF0YUFycmF5LCBbZGF0YUFycmF5IGNvdW50XSk7Ci0K
LSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAg
ICBpZiAoIWRhdGFBcnJheSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIW1f
aGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlQnVmZmVyKG1faGFuZGxlLCBTaGFy
ZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheShyZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRh
dGFBcnJheSkpLCAtMSk7Ci0gICAgICAgIC8vIFRoZSBjYWxsIHRvIGRpZFJlY2VpdmVEYXRhIGFi
b3ZlIGNhbiBjYW5jZWwgYSBsb2FkLCBhbmQgaWYgc28sIHRoZSBkZWxlZ2F0ZSAoc2VsZikgY291
bGQgaGF2ZSBiZWVuIGRlYWxsb2NhdGVkIGJ5IHRoaXMgcG9pbnQuCi0gICAgfSk7Ci19Ci0jZW5k
aWYKLQogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRp
ZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhIGxlbmd0aFJlY2VpdmVkOihsb25nIGxvbmcpbGVu
Z3RoUmVjZWl2ZWQKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxNTI3MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA0LTEyICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBkaWRSZWNlaXZl
RGF0YUFycmF5IGNhbGxiYWNrIG9uIEVsIENhcGl0YW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3VwcG9ydHNEYXRhQXJyYXkpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZURhdGFBcnJheSk6
IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKwogMjAx
Ny0wNC0xMiAgQW5kcmV3IEdvbGQgIDxhZ29sZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cg
aU9TIHRvIHRvZ2dsZSB3ZWJSVENBUEkgbGVnYWN5IGZsYWcuCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAyMTUyNzEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUyNCwyMCArNTI0LDYgQEAgdm9pZCBOZXR3b3JrTG9hZDo6Y29udGludWVDYW5B
dXRoZW50aWNhdAogfQogI2VuZGlmCiAKLSNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FM
TEJBQ0spCi1ib29sIE5ldHdvcmtMb2FkOjpzdXBwb3J0c0RhdGFBcnJheSgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTmV0d29ya0xvYWQ6
OmRpZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5UmVmKQotewotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0jZW5kaWYK
LQogdm9pZCBOZXR3b3JrTG9hZDo6ZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09IG1faGFu
ZGxlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
aAkocmV2aXNpb24gMjE1MjcxKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDYgQEAgcHVibGljOgogI2lm
IFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZTsKICNlbmRpZgotI2lm
IFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICBib29sIHN1cHBvcnRzRGF0
YUFycmF5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZikgb3ZlcnJpZGU7Ci0jZW5kaWYKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIHZvaWQgd2lsbENhY2hl
UmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYpIG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="328238"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>