<?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>192040</bug_id>
          
          <creation_ts>2018-11-27 14:50:29 -0800</creation_ts>
          <short_desc>Refactor duplicate code for calling into media controls</short_desc>
          <delta_ts>2018-11-27 15:45:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1482142</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-27 14:50:29 -0800</bug_when>
    <thetext>All of the methods on HTMLMediaElement that call into JS have the same setup code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482143</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-27 14:50:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/46278931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482151</commentid>
    <comment_count>2</comment_count>
      <attachid>355789</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-27 15:05:10 -0800</bug_when>
    <thetext>Created attachment 355789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482182</commentid>
    <comment_count>3</comment_count>
      <attachid>355789</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-27 15:45:52 -0800</bug_when>
    <thetext>Comment on attachment 355789
Patch

Clearing flags on attachment: 355789

Committed r238582: &lt;https://trac.webkit.org/changeset/238582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482183</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-27 15:45:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355789</attachid>
            <date>2018-11-27 15:05:10 -0800</date>
            <delta_ts>2018-11-27 15:45:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192040-20181127150510.patch</filename>
            <type>text/plain</type>
            <size>23944</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ0NjVlMTUyNGU3ZDk2
YjdlOTUxNDk1OGI0MzkwNzZlMjY2YzE0MS4uMWY2YmQ3NzRlMDAwNjQ5MzQ1YTM5MDBjYzQ0YzY3
ZDE3NDY0ZWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTExLTI3ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIGR1
cGxpY2F0ZSBjb2RlIGZvciBjYWxsaW5nIGludG8gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjA0MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDYyNzg5MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBmdW5jdGlvbmFsIGNoYW5nZS4KKworICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZXR1cEFuZENhbGxKUyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVDYXB0aW9uQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW5zdXJlTWVkaWFDb250cm9sc0luamVjdGVkU2NyaXB0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXJKU1By
b3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJB
Z2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpnZXRDdXJyZW50TWVkaWFDb250cm9sc1N0YXR1cyk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKIDIwMTgtMTEtMjYgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFj
Y2Vzc2luZyBkZWZhdWx0IHdlYiBjb250ZXh0IGJlZm9yZSBndGtfaW5pdCByZXN1bHRzIGluIGRy
YXdpbmcgZmFpbHVyZSAoR3RrLVdBUk5JTkcgKio6IGRyYXdpbmcgZmFpbHVyZSBmb3Igd2lkZ2V0
ICdXZWJLaXRXZWJWaWV3JzogaW52YWxpZCB2YWx1ZSBmb3IgYW4gaW5wdXQgVmlzdWFsKikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDc5ZThlYjkyNWMzZDY2
NzFjODA5ZmE4YzJiOTQ0MDg0NmUzYWQyOTUuLmY2YzI0YjNhMTk2ZWMxMzI0YTRiMmI5ZWU3NmIx
ZTE5OWUwMDI4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNDM1NSwxOCArNDM1NSwzMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVuc3VyZU1lZGlh
Q29udHJvbHNTaGFkb3dSb290KCkKICAgICBtX2NyZWF0aW5nQ29udHJvbHMgPSBmYWxzZTsKIH0K
IAorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzZXR1cEFuZENhbGxKUyhjb25zdCBKU1NldHVwRnVu
Y3Rpb24mIHRhc2spCit7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBwZW5kaW5nQWN0
aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKKyAgICBhdXRvJiB3b3JsZCA9IGVu
c3VyZUlzb2xhdGVkV29ybGQoKTsKKyAgICBhdXRvJiBzY3JpcHRDb250cm9sbGVyID0gZG9jdW1l
bnQoKS5mcmFtZSgpLT5zY3JpcHQoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHNjcmlwdENvbnRyb2xsZXIuZ2xvYmFsT2JqZWN0KHdv
cmxkKSk7CisgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworICAgIGF1dG8qIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKworICAgIHJldHVybiB0YXNrKCpn
bG9iYWxPYmplY3QsICpleGVjLCBzY3JpcHRDb250cm9sbGVyLCB3b3JsZCk7Cit9CisKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQ2FwdGlvbkNvbnRhaW5lcigpCiB7CiAjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX1NDUklQVCkKICAgICBpZiAobV9oYXZlU2V0VXBDYXB0aW9uQ29udGFp
bmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBET01XcmFwcGVyV29y
bGQmIHdvcmxkID0gZW5zdXJlSXNvbGF0ZWRXb3JsZCgpOwotCiAgICAgaWYgKCFlbnN1cmVNZWRp
YUNvbnRyb2xzSW5qZWN0ZWRTY3JpcHQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00Mzc1LDQw
ICs0Mzg5LDQwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQ2FwdGlvbkNvbnRhaW5l
cigpCiAgICAgaWYgKCFtX21lZGlhQ29udHJvbHNIb3N0KQogICAgICAgICBtX21lZGlhQ29udHJv
bHNIb3N0ID0gTWVkaWFDb250cm9sc0hvc3Q6OmNyZWF0ZSh0aGlzKTsKIAotICAgIFNjcmlwdENv
bnRyb2xsZXImIHNjcmlwdENvbnRyb2xsZXIgPSBkb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgp
OwotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KHNjcmlwdENvbnRyb2xsZXIuZ2xvYmFsT2JqZWN0KHdvcmxkKSk7Ci0g
ICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9jayh2bSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwot
ICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Cisg
ICAgc2V0dXBBbmRDYWxsSlMoW3RoaXNdKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IEpTQzo6RXhlY1N0YXRlJiBleGVjLCBTY3JpcHRDb250cm9sbGVyJiwgRE9NV3JhcHBlcldvcmxk
JikgeworICAgICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgIGF1dG8gY29udHJvbGxl
clZhbHVlID0gY29udHJvbGxlckpTVmFsdWUoZXhlYywgZ2xvYmFsT2JqZWN0LCAqdGhpcyk7Cisg
ICAgICAgIGF1dG8qIGNvbnRyb2xsZXJPYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpK
U09iamVjdCo+KHZtLCBjb250cm9sbGVyVmFsdWUpOworICAgICAgICBpZiAoIWNvbnRyb2xsZXJP
YmplY3QpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBKU0M6OkpTVmFsdWUgY29u
dHJvbGxlclZhbHVlID0gY29udHJvbGxlckpTVmFsdWUoKmV4ZWMsICpnbG9iYWxPYmplY3QsICp0
aGlzKTsKLSAgICBKU0M6OkpTT2JqZWN0KiBjb250cm9sbGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFt
aWNDYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKLSAgICBpZiAoIWNv
bnRyb2xsZXJPYmplY3QpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gVGhlIG1lZGlhIGNv
bnRyb2xzIHNjcmlwdCBtdXN0IHByb3ZpZGUgYSBtZXRob2Qgb24gdGhlIENvbnRyb2xsZXIgb2Jq
ZWN0IHdpdGggdGhlIGZvbGxvd2luZyBkZXRhaWxzLgorICAgICAgICAvLyBOYW1lOiB1cGRhdGVD
YXB0aW9uQ29udGFpbmVyCisgICAgICAgIC8vIFBhcmFtZXRlcnM6CisgICAgICAgIC8vICAgICBO
b25lCisgICAgICAgIC8vIFJldHVybiB2YWx1ZToKKyAgICAgICAgLy8gICAgIE5vbmUKKyAgICAg
ICAgYXV0byBtZXRob2RWYWx1ZSA9IGNvbnRyb2xsZXJPYmplY3QtPmdldCgmZXhlYywgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLCAidXBkYXRlQ2FwdGlvbkNvbnRhaW5lciIpKTsK
KyAgICAgICAgYXV0byogbWV0aG9kT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNP
YmplY3QqPih2bSwgbWV0aG9kVmFsdWUpOworICAgICAgICBpZiAoIW1ldGhvZE9iamVjdCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzY3Jp
cHQgbXVzdCBwcm92aWRlIGEgbWV0aG9kIG9uIHRoZSBDb250cm9sbGVyIG9iamVjdCB3aXRoIHRo
ZSBmb2xsb3dpbmcgZGV0YWlscy4KLSAgICAvLyBOYW1lOiB1cGRhdGVDYXB0aW9uQ29udGFpbmVy
Ci0gICAgLy8gUGFyYW1ldGVyczoKLSAgICAvLyAgICAgTm9uZQotICAgIC8vIFJldHVybiB2YWx1
ZToKLSAgICAvLyAgICAgTm9uZQotICAgIEpTQzo6SlNWYWx1ZSBtZXRob2RWYWx1ZSA9IGNvbnRy
b2xsZXJPYmplY3QtPmdldChleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
InVwZGF0ZUNhcHRpb25Db250YWluZXIiKSk7Ci0gICAgSlNDOjpKU09iamVjdCogbWV0aG9kT2Jq
ZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgbWV0aG9kVmFsdWUp
OwotICAgIGlmICghbWV0aG9kT2JqZWN0KQotICAgICAgICByZXR1cm47CisgICAgICAgIEpTQzo6
Q2FsbERhdGEgY2FsbERhdGE7CisgICAgICAgIGF1dG8gY2FsbFR5cGUgPSBtZXRob2RPYmplY3Qt
Pm1ldGhvZFRhYmxlKHZtKS0+Z2V0Q2FsbERhdGEobWV0aG9kT2JqZWN0LCBjYWxsRGF0YSk7Cisg
ICAgICAgIGlmIChjYWxsVHlwZSA9PSBKU0M6OkNhbGxUeXBlOjpOb25lKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU0M6OkNh
bGxUeXBlIGNhbGxUeXBlID0gbWV0aG9kT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldENhbGxE
YXRhKG1ldGhvZE9iamVjdCwgY2FsbERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBKU0M6OkNh
bGxUeXBlOjpOb25lKQotICAgICAgICByZXR1cm47CisgICAgICAgIEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXIgbm9Bcmd1bWVudHM7CisgICAgICAgIEFTU0VSVCghbm9Bcmd1bWVudHMuaGFzT3Zl
cmZsb3dlZCgpKTsKKyAgICAgICAgSlNDOjpjYWxsKCZleGVjLCBtZXRob2RPYmplY3QsIGNhbGxU
eXBlLCBjYWxsRGF0YSwgY29udHJvbGxlck9iamVjdCwgbm9Bcmd1bWVudHMpOworICAgICAgICBz
Y29wZS5jbGVhckV4Y2VwdGlvbigpOworCisgICAgICAgIG1faGF2ZVNldFVwQ2FwdGlvbkNvbnRh
aW5lciA9IHRydWU7CiAKLSAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIG5vQXJndW1lbnRz
OwotICAgIEFTU0VSVCghbm9Bcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKLSAgICBKU0M6OmNh
bGwoZXhlYywgbWV0aG9kT2JqZWN0LCBjYWxsVHlwZSwgY2FsbERhdGEsIGNvbnRyb2xsZXJPYmpl
Y3QsIG5vQXJndW1lbnRzKTsKLSAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9KTsKIAotICAgIG1faGF2ZVNldFVwQ2FwdGlvbkNvbnRhaW5lciA9
IHRydWU7CiAjZW5kaWYKIH0KIApAQCAtNjQ5MSw2ICs2NTA1LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpjb25maWd1cmVNZWRpYUNvbnRyb2xzKCkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoVGV4dFRy
YWNrVmlzaWJpbGl0eUNoZWNrVHlwZSBjaGVja1R5cGUpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSKTsKICAgICBBU1NFUlQobV90ZXh0VHJhY2tzKTsKIAogICAgIGlmIChtX3Byb2Nl
c3NpbmdQcmVmZXJlbmNlQ2hhbmdlKQpAQCAtNzE4NSw2ICs3MjAwLDcgQEAgRE9NV3JhcHBlcldv
cmxkJiBIVE1MTWVkaWFFbGVtZW50OjplbnN1cmVJc29sYXRlZFdvcmxkKCkKIGJvb2wgSFRNTE1l
ZGlhRWxlbWVudDo6ZW5zdXJlTWVkaWFDb250cm9sc0luamVjdGVkU2NyaXB0KCkKIHsKICAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5w
YWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03MTkzLDMx
ICs3MjA5LDI4IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5zdXJlTWVkaWFDb250cm9sc0lu
amVjdGVkU2NyaXB0KCkKICAgICBpZiAoIW1lZGlhQ29udHJvbHNTY3JpcHQubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSBlbnN1
cmVJc29sYXRlZFdvcmxkKCk7Ci0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0Q29udHJvbGxl
ciA9IGRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCk7Ci0gICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc2NyaXB0Q29u
dHJvbGxlci5nbG9iYWxPYmplY3Qod29ybGQpKTsKLSAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0gICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICByZXR1cm4gc2V0dXBBbmRDYWxsSlMo
W21lZGlhQ29udHJvbHNTY3JpcHRdKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpT
Qzo6RXhlY1N0YXRlJiBleGVjLCBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHRDb250cm9sbGVyLCBE
T01XcmFwcGVyV29ybGQmIHdvcmxkKSB7CisgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0
LnZtKCk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAot
ICAgIEpTQzo6SlNWYWx1ZSBmdW5jdGlvblZhbHVlID0gZ2xvYmFsT2JqZWN0LT5nZXQoZXhlYywg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJjcmVhdGVDb250cm9scyIpKTsKLSAg
ICBpZiAoZnVuY3Rpb25WYWx1ZS5pc0Z1bmN0aW9uKHZtKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGF1dG8gZnVuY3Rpb25WYWx1ZSA9IGdsb2JhbE9iamVjdC5nZXQoJmV4ZWMsIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhlYywgImNyZWF0ZUNvbnRyb2xzIikpOworICAg
ICAgICBpZiAoZnVuY3Rpb25WYWx1ZS5pc0Z1bmN0aW9uKHZtKSkKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOwogCiAjaWZuZGVmIE5ERUJVRwotICAgIC8vIFNldHRpbmcgYSBzY3JpcHRVUkwgYWxs
b3dzIHRoZSBzb3VyY2UgdG8gYmUgZGVidWdnYWJsZSBpbiB0aGUgaW5zcGVjdG9yLgotICAgIFVS
TCBzY3JpcHRVUkwgPSBVUkwoeyB9LCAibWVkaWFDb250cm9sc1NjcmlwdCJfcyk7CisgICAgICAg
IC8vIFNldHRpbmcgYSBzY3JpcHRVUkwgYWxsb3dzIHRoZSBzb3VyY2UgdG8gYmUgZGVidWdnYWJs
ZSBpbiB0aGUgaW5zcGVjdG9yLgorICAgICAgICBVUkwgc2NyaXB0VVJMID0gVVJMKHsgfSwgIm1l
ZGlhQ29udHJvbHNTY3JpcHQiX3MpOwogI2Vsc2UKLSAgICBVUkwgc2NyaXB0VVJMOworICAgICAg
ICBVUkwgc2NyaXB0VVJMOwogI2VuZGlmCi0gICAgc2NyaXB0Q29udHJvbGxlci5ldmFsdWF0ZUlu
V29ybGQoU2NyaXB0U291cmNlQ29kZShtZWRpYUNvbnRyb2xzU2NyaXB0LCBzY3JpcHRVUkwpLCB3
b3JsZCk7Ci0gICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewotICAgICAgICBz
Y29wZS5jbGVhckV4Y2VwdGlvbigpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAg
ICAgICBzY3JpcHRDb250cm9sbGVyLmV2YWx1YXRlSW5Xb3JsZChTY3JpcHRTb3VyY2VDb2RlKG1l
ZGlhQ29udHJvbHNTY3JpcHQsIHNjcmlwdFVSTCksIHdvcmxkKTsKKyAgICAgICAgaWYgKFVOTElL
RUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgeworICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRp
b24oKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogCi0gICAgcmV0dXJu
IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOwogfQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnVwZGF0ZVBhZ2VTY2FsZUZhY3RvckpTUHJvcGVydHkoKQpAQCAtNzI0MSwxMDcg
KzcyNTQsOTkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVVc2VzTFRSVXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbkpTUHJvcGVydHkoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNldENvbnRyb2xsZXJKU1Byb3BlcnR5KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlIHByb3BlcnR5VmFsdWUpCiB7Ci0gICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9IGVu
c3VyZUlzb2xhdGVkV29ybGQoKTsKLSAgICBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHRDb250cm9s
bGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKTsKLSAgICBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzY3JpcHRD
b250cm9sbGVyLmdsb2JhbE9iamVjdCh3b3JsZCkpOwotICAgIEpTQzo6RXhlY1N0YXRlKiBleGVj
ID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNDOjpWTSYgdm0gPSBleGVjLT52
bSgpOwotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOworICAgIHNldHVwQW5kQ2FsbEpT
KFt0aGlzLCBwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWVdKEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlJiBleGVjLCBTY3JpcHRDb250cm9sbGVyJiwgRE9N
V3JhcHBlcldvcmxkJikgeworICAgICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOwor
ICAgICAgICBhdXRvIGNvbnRyb2xsZXJWYWx1ZSA9IGNvbnRyb2xsZXJKU1ZhbHVlKGV4ZWMsIGds
b2JhbE9iamVjdCwgKnRoaXMpOworICAgICAgICBpZiAoY29udHJvbGxlclZhbHVlLmlzTnVsbCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSlNDOjpKU1ZhbHVlIGNvbnRyb2xs
ZXJWYWx1ZSA9IGNvbnRyb2xsZXJKU1ZhbHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0LCAqdGhpcyk7
Ci0gICAgaWYgKGNvbnRyb2xsZXJWYWx1ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICBKU0M6OlB1dFByb3BlcnR5U2xvdCBwcm9wZXJ0eVNsb3QoY29udHJvbGxlclZhbHVlKTsK
KyAgICAgICAgYXV0byogY29udHJvbGxlck9iamVjdCA9IGNvbnRyb2xsZXJWYWx1ZS50b09iamVj
dCgmZXhlYyk7CisgICAgICAgIGlmICghY29udHJvbGxlck9iamVjdCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHByb3BlcnR5U2xvdChjb250
cm9sbGVyVmFsdWUpOwotICAgIEpTQzo6SlNPYmplY3QqIGNvbnRyb2xsZXJPYmplY3QgPSBjb250
cm9sbGVyVmFsdWUudG9PYmplY3QoZXhlYyk7Ci0gICAgaWYgKCFjb250cm9sbGVyT2JqZWN0KQot
ICAgICAgICByZXR1cm47CisgICAgICAgIGNvbnRyb2xsZXJPYmplY3QtPm1ldGhvZFRhYmxlKHZt
KS0+cHV0KGNvbnRyb2xsZXJPYmplY3QsICZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcoJmV4ZWMsIHByb3BlcnR5TmFtZSksIHByb3BlcnR5VmFsdWUsIHByb3BlcnR5U2xvdCk7CiAK
LSAgICBjb250cm9sbGVyT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPnB1dChjb250cm9sbGVyT2Jq
ZWN0LCBleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgcHJvcGVydHlOYW1l
KSwgcHJvcGVydHlWYWx1ZSwgcHJvcGVydHlTbG90KTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93
Um9vdChTaGFkb3dSb290JiByb290KQogewogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSKTsK
IAotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSBlbnN1cmVJc29s
YXRlZFdvcmxkKCk7Ci0KICAgICBpZiAoIWVuc3VyZU1lZGlhQ29udHJvbHNJbmplY3RlZFNjcmlw
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHRDb250
cm9sbGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKTsKLSAgICBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzY3Jp
cHRDb250cm9sbGVyLmdsb2JhbE9iamVjdCh3b3JsZCkpOwotICAgIEpTQzo6Vk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKLSAgICBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgIHNldHVwQW5kQ2FsbEpTKFt0
aGlzLCAmcm9vdF0oSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3Rh
dGUmIGV4ZWMsIFNjcmlwdENvbnRyb2xsZXImLCBET01XcmFwcGVyV29ybGQmKSB7CisgICAgICAg
IGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX0NBVENIX1NDT1BFKHZtKTsKIAotICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzY3JpcHQg
bXVzdCBwcm92aWRlIGEgbWV0aG9kIHdpdGggdGhlIGZvbGxvd2luZyBkZXRhaWxzLgotICAgIC8v
IE5hbWU6IGNyZWF0ZUNvbnRyb2xzCi0gICAgLy8gUGFyYW1ldGVyczoKLSAgICAvLyAgICAgMS4g
VGhlIFNoYWRvd1Jvb3QgZWxlbWVudCB0aGF0IHdpbGwgaG9sZCB0aGUgY29udHJvbHMuCi0gICAg
Ly8gICAgIDIuIFRoaXMgb2JqZWN0IChhbmQgSFRNTE1lZGlhRWxlbWVudCkuCi0gICAgLy8gICAg
IDMuIFRoZSBNZWRpYUNvbnRyb2xzSG9zdCBvYmplY3QuCi0gICAgLy8gUmV0dXJuIHZhbHVlOgot
ICAgIC8vICAgICBBIHJlZmVyZW5jZSB0byB0aGUgY3JlYXRlZCBtZWRpYSBjb250cm9sbGVyIGlu
c3RhbmNlLgorICAgICAgICAvLyBUaGUgbWVkaWEgY29udHJvbHMgc2NyaXB0IG11c3QgcHJvdmlk
ZSBhIG1ldGhvZCB3aXRoIHRoZSBmb2xsb3dpbmcgZGV0YWlscy4KKyAgICAgICAgLy8gTmFtZTog
Y3JlYXRlQ29udHJvbHMKKyAgICAgICAgLy8gUGFyYW1ldGVyczoKKyAgICAgICAgLy8gICAgIDEu
IFRoZSBTaGFkb3dSb290IGVsZW1lbnQgdGhhdCB3aWxsIGhvbGQgdGhlIGNvbnRyb2xzLgorICAg
ICAgICAvLyAgICAgMi4gVGhpcyBvYmplY3QgKGFuZCBIVE1MTWVkaWFFbGVtZW50KS4KKyAgICAg
ICAgLy8gICAgIDMuIFRoZSBNZWRpYUNvbnRyb2xzSG9zdCBvYmplY3QuCisgICAgICAgIC8vIFJl
dHVybiB2YWx1ZToKKyAgICAgICAgLy8gICAgIEEgcmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIG1l
ZGlhIGNvbnRyb2xsZXIgaW5zdGFuY2UuCiAKLSAgICBKU0M6OkpTVmFsdWUgZnVuY3Rpb25WYWx1
ZSA9IGdsb2JhbE9iamVjdC0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCAiY3JlYXRlQ29udHJvbHMiKSk7Ci0gICAgaWYgKGZ1bmN0aW9uVmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvIGZ1bmN0aW9uVmFsdWUg
PSBnbG9iYWxPYmplY3QuZ2V0KCZleGVjLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4
ZWMsICJjcmVhdGVDb250cm9scyIpKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uVmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9t
ZWRpYUNvbnRyb2xzSG9zdCkKLSAgICAgICAgbV9tZWRpYUNvbnRyb2xzSG9zdCA9IE1lZGlhQ29u
dHJvbHNIb3N0OjpjcmVhdGUodGhpcyk7CisgICAgICAgIGlmICghbV9tZWRpYUNvbnRyb2xzSG9z
dCkKKyAgICAgICAgICAgIG1fbWVkaWFDb250cm9sc0hvc3QgPSBNZWRpYUNvbnRyb2xzSG9zdDo6
Y3JlYXRlKHRoaXMpOwogCi0gICAgYXV0byBtZWRpYUpTV3JhcHBlciA9IHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCAqdGhpcyk7Ci0gICAgYXV0byBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlciA9
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAqbV9tZWRpYUNvbnRyb2xzSG9zdCk7CisgICAgICAg
IGF1dG8gbWVkaWFKU1dyYXBwZXIgPSB0b0pTKCZleGVjLCAmZ2xvYmFsT2JqZWN0LCAqdGhpcyk7
CisgICAgICAgIGF1dG8gbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIgPSB0b0pTKCZleGVjLCAm
Z2xvYmFsT2JqZWN0LCAqbV9tZWRpYUNvbnRyb2xzSG9zdCk7CiAKLSAgICBKU0M6Ok1hcmtlZEFy
Z3VtZW50QnVmZmVyIGFyZ0xpc3Q7Ci0gICAgYXJnTGlzdC5hcHBlbmQodG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIHJvb3QpKTsKLSAgICBhcmdMaXN0LmFwcGVuZChtZWRpYUpTV3JhcHBlcik7Ci0g
ICAgYXJnTGlzdC5hcHBlbmQobWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIpOwotICAgIEFTU0VS
VCghYXJnTGlzdC5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ0xpc3Q7CisgICAgICAgIGFyZ0xpc3QuYXBwZW5kKHRvSlMoJmV4ZWMsICZnbG9i
YWxPYmplY3QsIHJvb3QpKTsKKyAgICAgICAgYXJnTGlzdC5hcHBlbmQobWVkaWFKU1dyYXBwZXIp
OworICAgICAgICBhcmdMaXN0LmFwcGVuZChtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlcik7Cisg
ICAgICAgIEFTU0VSVCghYXJnTGlzdC5oYXNPdmVyZmxvd2VkKCkpOwogCi0gICAgSlNDOjpKU09i
amVjdCogZnVuY3Rpb24gPSBmdW5jdGlvblZhbHVlLnRvT2JqZWN0KGV4ZWMpOwotICAgIHNjb3Bl
LmFzc2VydE5vRXhjZXB0aW9uKCk7Ci0gICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBK
U0M6OkNhbGxUeXBlIGNhbGxUeXBlID0gZnVuY3Rpb24tPm1ldGhvZFRhYmxlKHZtKS0+Z2V0Q2Fs
bERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gSlNDOjpDYWxs
VHlwZTo6Tm9uZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvKiBmdW5jdGlvbiA9IGZ1
bmN0aW9uVmFsdWUudG9PYmplY3QoJmV4ZWMpOworICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2Vw
dGlvbigpOworICAgICAgICBKU0M6OkNhbGxEYXRhIGNhbGxEYXRhOworICAgICAgICBhdXRvIGNh
bGxUeXBlID0gZnVuY3Rpb24tPm1ldGhvZFRhYmxlKHZtKS0+Z2V0Q2FsbERhdGEoZnVuY3Rpb24s
IGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09IEpTQzo6Q2FsbFR5cGU6Ok5vbmUp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBKU0M6OkpTVmFsdWUgY29udHJvbGxl
clZhbHVlID0gSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGds
b2JhbE9iamVjdCwgYXJnTGlzdCk7Ci0gICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKLSAgICBK
U0M6OkpTT2JqZWN0KiBjb250cm9sbGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6
SlNPYmplY3QqPih2bSwgY29udHJvbGxlclZhbHVlKTsKLSAgICBpZiAoIWNvbnRyb2xsZXJPYmpl
Y3QpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBjb250cm9sbGVyVmFsdWUgPSBKU0M6
OmNhbGwoJmV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsICZnbG9iYWxPYmplY3Qs
IGFyZ0xpc3QpOworICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICBhdXRv
KiBjb250cm9sbGVyT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNPYmplY3QqPih2
bSwgY29udHJvbGxlclZhbHVlKTsKKyAgICAgICAgaWYgKCFjb250cm9sbGVyT2JqZWN0KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gQ29ubmVjdCB0aGUgTWVkaWEsIE1lZGlh
Q29udHJvbGxlckhvc3QsIGFuZCBDb250cm9sbGVyIHNvIHRoZSBHQyBrbm93cyBhYm91dCB0aGVp
ciByZWxhdGlvbnNoaXAKLSAgICBKU0M6OkpTT2JqZWN0KiBtZWRpYUpTV3JhcHBlck9iamVjdCA9
IG1lZGlhSlNXcmFwcGVyLnRvT2JqZWN0KGV4ZWMpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7Ci0gICAgSlNDOjpJZGVudGlmaWVyIGNvbnRyb2xzSG9zdCA9IEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmZXhlYy0+dm0oKSwgImNvbnRyb2xzSG9zdCIpOworICAgICAgICAvLyBD
b25uZWN0IHRoZSBNZWRpYSwgTWVkaWFDb250cm9sbGVySG9zdCwgYW5kIENvbnRyb2xsZXIgc28g
dGhlIEdDIGtub3dzIGFib3V0IHRoZWlyIHJlbGF0aW9uc2hpcAorICAgICAgICBhdXRvKiBtZWRp
YUpTV3JhcHBlck9iamVjdCA9IG1lZGlhSlNXcmFwcGVyLnRvT2JqZWN0KCZleGVjKTsKKyAgICAg
ICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKyAgICAgICAgYXV0byBjb250cm9sc0hvc3Qg
PSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMudm0oKSwgImNvbnRyb2xzSG9zdCIp
OwogCi0gICAgQVNTRVJUKCFtZWRpYUpTV3JhcHBlck9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywg
Y29udHJvbHNIb3N0KSk7CisgICAgICAgIEFTU0VSVCghbWVkaWFKU1dyYXBwZXJPYmplY3QtPmhh
c1Byb3BlcnR5KCZleGVjLCBjb250cm9sc0hvc3QpKTsKIAotICAgIG1lZGlhSlNXcmFwcGVyT2Jq
ZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgY29udHJvbHNIb3N0LCBtZWRpYUNvbnRyb2xzSG9z
dEpTV3JhcHBlciwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpOworICAgICAgICBtZWRpYUpTV3JhcHBlck9iamVjdC0+cHV0RGlyZWN0KGV4ZWMudm0oKSwg
Y29udHJvbHNIb3N0LCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlciwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogCi0gICAgSlNDOjpKU09iamVjdCog
bWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlND
OjpKU09iamVjdCo+KHZtLCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlcik7Ci0gICAgaWYgKCFt
ZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCkKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICBhdXRvKiBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCA9IEpTQzo6anNEeW5hbWlj
Q2FzdDxKU0M6OkpTT2JqZWN0Kj4odm0sIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyKTsKKyAg
ICAgICAgaWYgKCFtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIEpTQzo6SWRlbnRpZmllciBjb250cm9sbGVyID0gSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLT52bSgpLCAiY29udHJvbGxlciIpOworICAgICAg
ICBhdXRvIGNvbnRyb2xsZXIgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMudm0o
KSwgImNvbnRyb2xsZXIiKTsKIAotICAgIEFTU0VSVCghY29udHJvbGxlck9iamVjdC0+aGFzUHJv
cGVydHkoZXhlYywgY29udHJvbGxlcikpOworICAgICAgICBBU1NFUlQoIWNvbnRyb2xsZXJPYmpl
Y3QtPmhhc1Byb3BlcnR5KCZleGVjLCBjb250cm9sbGVyKSk7CiAKLSAgICBtZWRpYUNvbnRyb2xz
SG9zdEpTV3JhcHBlck9iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGNvbnRyb2xsZXIsIGNv
bnRyb2xsZXJWYWx1ZSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpOworICAgICAgICBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdC0+cHV0RGly
ZWN0KGV4ZWMudm0oKSwgY29udHJvbGxlciwgY29udHJvbGxlclZhbHVlLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiAKLSAgICB1cGRhdGVQYWdlU2Nh
bGVGYWN0b3JKU1Byb3BlcnR5KCk7Ci0gICAgdXBkYXRlVXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb25KU1Byb3BlcnR5KCk7CisgICAgICAgIHVwZGF0ZVBhZ2VTY2FsZUZhY3RvckpT
UHJvcGVydHkoKTsKKyAgICAgICAgdXBkYXRlVXNlc0xUUlVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25KU1Byb3BlcnR5KCk7CiAKLSAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkp
KQotICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICBpZiAoVU5MSUtFTFko
c2NvcGUuZXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsK
KworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRNZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoYm9vbCBkZXBlbmRz
T25QYWdlU2NhbGUpCkBAIC03MzcyLDMzICs3Mzc3LDMyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5nZSgpCiAgICAg
aWYgKCFtX21lZGlhQ29udHJvbHNIb3N0IHx8IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0Fy
ZVN1c3BlbmRlZCgpIHx8IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9IGVuc3VyZUlz
b2xhdGVkV29ybGQoKTsKLSAgICBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHRDb250cm9sbGVyID0g
ZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKTsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzY3JpcHRDb250cm9s
bGVyLmdsb2JhbE9iamVjdCh3b3JsZCkpOwotICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgIHNldHVwQW5kQ2FsbEpTKFt0aGlzXShKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0
Q29udHJvbGxlciYsIERPTVdyYXBwZXJXb3JsZCYpIHsKKyAgICAgICAgYXV0byYgdm0gPSBnbG9i
YWxPYmplY3Qudm0oKTsKKyAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCi0gICAgSlNDOjpKU1ZhbHVlIGNvbnRyb2xsZXJWYWx1ZSA9IGNvbnRyb2xsZXJKU1Zh
bHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0LCAqdGhpcyk7Ci0gICAgSlNDOjpKU09iamVjdCogY29u
dHJvbGxlck9iamVjdCA9IGNvbnRyb2xsZXJWYWx1ZS50b09iamVjdChleGVjKTsKKyAgICAgICAg
YXV0byBjb250cm9sbGVyVmFsdWUgPSBjb250cm9sbGVySlNWYWx1ZShleGVjLCBnbG9iYWxPYmpl
Y3QsICp0aGlzKTsKKyAgICAgICAgYXV0byogY29udHJvbGxlck9iamVjdCA9IGNvbnRyb2xsZXJW
YWx1ZS50b09iamVjdCgmZXhlYyk7CiAKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAKLSAg
ICBKU0M6OkpTVmFsdWUgZnVuY3Rpb25WYWx1ZSA9IGNvbnRyb2xsZXJPYmplY3QtPmdldChleGVj
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImhhbmRsZVByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2UiKSk7Ci0gICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSB8fCBmdW5j
dGlvblZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAg
YXV0byBmdW5jdGlvblZhbHVlID0gY29udHJvbGxlck9iamVjdC0+Z2V0KCZleGVjLCBKU0M6Oklk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMsICJoYW5kbGVQcmVzZW50YXRpb25Nb2RlQ2hhbmdl
IikpOworICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpIHx8IGZ1bmN0aW9u
VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uID0gZnVuY3Rpb25WYWx1ZS50b09iamVjdChleGVj
KTsKLSAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwotICAgIEpTQzo6Q2FsbERhdGEgY2Fs
bERhdGE7Ci0gICAgSlNDOjpDYWxsVHlwZSBjYWxsVHlwZSA9IGZ1bmN0aW9uLT5tZXRob2RUYWJs
ZSh2bSktPmdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxUeXBl
ID09IEpTQzo6Q2FsbFR5cGU6Ok5vbmUpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byog
ZnVuY3Rpb24gPSBmdW5jdGlvblZhbHVlLnRvT2JqZWN0KCZleGVjKTsKKyAgICAgICAgc2NvcGUu
YXNzZXJ0Tm9FeGNlcHRpb24oKTsKKyAgICAgICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKKyAg
ICAgICAgYXV0byBjYWxsVHlwZSA9IGZ1bmN0aW9uLT5tZXRob2RUYWJsZSh2bSktPmdldENhbGxE
YXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBKU0M6OkNh
bGxUeXBlOjpOb25lKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnTGlzdDsKKyAgICAgICAgQVNTRVJUKCFhcmdMaXN0Lmhh
c092ZXJmbG93ZWQoKSk7CisgICAgICAgIEpTQzo6Y2FsbCgmZXhlYywgZnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgY29udHJvbGxlck9iamVjdCwgYXJnTGlzdCk7CiAKLSAgICBKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ0xpc3Q7Ci0gICAgQVNTRVJUKCFhcmdMaXN0Lmhhc092ZXJm
bG93ZWQoKSk7Ci0gICAgSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERh
dGEsIGNvbnRyb2xsZXJPYmplY3QsIGFyZ0xpc3QpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYWdlU2NhbGVGYWN0b3JDaGFuZ2Vk
KCkKQEAgLTc0MTMsMzkgKzc0MTcsNDAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uQ2hhbmdlZCgpCiAKIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50
OjpnZXRDdXJyZW50TWVkaWFDb250cm9sc1N0YXR1cygpCiB7Ci0gICAgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCA9IGVuc3VyZUlzb2xhdGVkV29ybGQoKTsKICAgICBlbnN1cmVNZWRpYUNvbnRyb2xz
U2hhZG93Um9vdCgpOwogCi0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0Q29udHJvbGxlciA9
IGRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCk7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc2NyaXB0Q29udHJv
bGxlci5nbG9iYWxPYmplY3Qod29ybGQpKTsKLSAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICBTdHJpbmcgc3RhdHVzOworICAgIHNldHVw
QW5kQ2FsbEpTKFt0aGlzLCAmc3RhdHVzXShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
LCBKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0Q29udHJvbGxlciYsIERPTVdyYXBwZXJXb3Js
ZCYpIHsKKyAgICAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNDOjpKU1ZhbHVlIGNv
bnRyb2xsZXJWYWx1ZSA9IGNvbnRyb2xsZXJKU1ZhbHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0LCAq
dGhpcyk7Ci0gICAgSlNDOjpKU09iamVjdCogY29udHJvbGxlck9iamVjdCA9IGNvbnRyb2xsZXJW
YWx1ZS50b09iamVjdChleGVjKTsKKyAgICAgICAgYXV0byBjb250cm9sbGVyVmFsdWUgPSBjb250
cm9sbGVySlNWYWx1ZShleGVjLCBnbG9iYWxPYmplY3QsICp0aGlzKTsKKyAgICAgICAgYXV0byog
Y29udHJvbGxlck9iamVjdCA9IGNvbnRyb2xsZXJWYWx1ZS50b09iamVjdCgmZXhlYyk7CiAKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogCi0gICAgSlNDOjpKU1ZhbHVlIGZ1bmN0
aW9uVmFsdWUgPSBjb250cm9sbGVyT2JqZWN0LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJnZXRDdXJyZW50Q29udHJvbHNTdGF0dXMiKSk7Ci0gICAgaWYgKFVO
TElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSB8fCBmdW5jdGlvblZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCi0gICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAgICBhdXRvIGZ1bmN0
aW9uVmFsdWUgPSBjb250cm9sbGVyT2JqZWN0LT5nZXQoJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmZXhlYywgImdldEN1cnJlbnRDb250cm9sc1N0YXR1cyIpKTsKKyAgICAgICAg
aWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSB8fCBmdW5jdGlvblZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBKU0M6OkpTT2Jq
ZWN0KiBmdW5jdGlvbiA9IGZ1bmN0aW9uVmFsdWUudG9PYmplY3QoZXhlYyk7Ci0gICAgc2NvcGUu
YXNzZXJ0Tm9FeGNlcHRpb24oKTsKLSAgICBKU0M6OkNhbGxEYXRhIGNhbGxEYXRhOwotICAgIEpT
Qzo6Q2FsbFR5cGUgY2FsbFR5cGUgPSBmdW5jdGlvbi0+bWV0aG9kVGFibGUodm0pLT5nZXRDYWxs
RGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIg
YXJnTGlzdDsKLSAgICBBU1NFUlQoIWFyZ0xpc3QuaGFzT3ZlcmZsb3dlZCgpKTsKLSAgICBpZiAo
Y2FsbFR5cGUgPT0gSlNDOjpDYWxsVHlwZTo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CisgICAgICAgIGF1dG8qIGZ1bmN0aW9uID0gZnVuY3Rpb25WYWx1ZS50b09iamVjdCgm
ZXhlYyk7CisgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CisgICAgICAgIEpTQzo6
Q2FsbERhdGEgY2FsbERhdGE7CisgICAgICAgIGF1dG8gY2FsbFR5cGUgPSBmdW5jdGlvbi0+bWV0
aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOworICAgICAgICBK
U0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ0xpc3Q7CisgICAgICAgIEFTU0VSVCghYXJnTGlz
dC5oYXNPdmVyZmxvd2VkKCkpOworICAgICAgICBpZiAoY2FsbFR5cGUgPT0gSlNDOjpDYWxsVHlw
ZTo6Tm9uZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBhdXRvIG91dHB1
dFZhbHVlID0gSlNDOjpjYWxsKCZleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBj
b250cm9sbGVyT2JqZWN0LCBhcmdMaXN0KTsKIAotICAgIEpTQzo6SlNWYWx1ZSBvdXRwdXRWYWx1
ZSA9IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBjb250cm9s
bGVyT2JqZWN0LCBhcmdMaXN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOwogCi0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW1wdHlTdHJpbmcoKSk7
CisgICAgICAgIHN0YXR1cyA9IG91dHB1dFZhbHVlLmdldFN0cmluZygmZXhlYyk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0pOwogCi0gICAgcmV0dXJuIG91dHB1dFZhbHVlLmdldFN0cmlu
ZyhleGVjKTsKKyAgICByZXR1cm4gc3RhdHVzOwogfQogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9D
T05UUk9MU19TQ1JJUFQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggOGEzZjQ4YjZmNWQ4NzUzZDk3NjQ2NGIxMjJlZjFiNjI1ZDg1ZWYyMC4uMzYwYWY4Njc0Y2Y4
ODA2MjEyYmM4MjU5YTk4ZjU3MDgzOTg4YTJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTc3LDExICs3NywxMyBAQCBjbGFzcyBBdWRpb1RyYWNrTGlzdDsKIGNs
YXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgQmxvYjsKIGNsYXNzIERPTUV4Y2VwdGlvbjsK
K2NsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIEV2
ZW50OwogY2xhc3MgSFRNTFNvdXJjZUVsZW1lbnQ7CiBjbGFzcyBIVE1MVHJhY2tFbGVtZW50Owog
Y2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0Owog
Y2xhc3MgTWVkaWFDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDb250cm9sczsKIGNsYXNzIE1lZGlh
Q29udHJvbHNIb3N0OwpAQCAtOTMsNiArOTUsNyBAQCBjbGFzcyBNZWRpYVNlc3Npb247CiBjbGFz
cyBNZWRpYVNvdXJjZTsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgUmVuZGVyTWVkaWE7Citj
bGFzcyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNs
YXNzIFNvdXJjZUJ1ZmZlcjsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CkBAIC05MDAsNiArOTAzLDkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNhcHRpb25Db250YWluZXIoKTsKICAgICB2b2lk
IGVuc3VyZU1lZGlhQ29udHJvbHNTaGFkb3dSb290KCk7CiAKKyAgICB1c2luZyBKU1NldHVwRnVu
Y3Rpb24gPSBXVEY6OkZ1bmN0aW9uPGJvb2woSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OkV4ZWNT
dGF0ZSYsIFNjcmlwdENvbnRyb2xsZXImLCBET01XcmFwcGVyV29ybGQmKT47CisgICAgYm9vbCBz
ZXR1cEFuZENhbGxKUyhjb25zdCBKU1NldHVwRnVuY3Rpb24mKTsKKwogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBwcmVwYXJlRm9yRG9jdW1lbnRTdXNwZW5z
aW9uKCkgZmluYWw7CiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkgZmlu
YWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>