<?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>172265</bug_id>
          
          <creation_ts>2017-05-18 01:49:26 -0700</creation_ts>
          <short_desc>[Threaded Compositor] Remove platform ifdefs from threaded compositor implementation</short_desc>
          <delta_ts>2017-05-19 05:32:56 -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>WebKit2</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>172268</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1310033</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-18 01:49:26 -0700</bug_when>
    <thetext>We could make threaded compositor cross-platform if WPE used the AcceleratedSurface and some other refactorings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310035</commentid>
    <comment_count>1</comment_count>
      <attachid>310500</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-18 02:06:59 -0700</bug_when>
    <thetext>Created attachment 310500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310038</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-18 03:11:00 -0700</bug_when>
    <thetext>Let me test this out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310553</commentid>
    <comment_count>3</comment_count>
      <attachid>310500</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-19 03:07:07 -0700</bug_when>
    <thetext>Comment on attachment 310500
Patch

Worked fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310576</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-19 05:32:56 -0700</bug_when>
    <thetext>Committed r217123: &lt;http://trac.webkit.org/changeset/217123&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310500</attachid>
            <date>2017-05-18 02:06:59 -0700</date>
            <delta_ts>2017-05-19 03:07:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-tc-cross.diff</filename>
            <type>text/plain</type>
            <size>40806</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNjIzMDQxODc3NS4uYjU5Y2I2NDgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1RocmVhZGVkIENvbXBvc2l0b3JdIFJlbW92ZSBwbGF0Zm9y
bSBpZmRlZnMgZnJvbSB0aHJlYWRlZCBjb21wb3NpdG9yIGltcGxlbWVudGF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUv
UGxhdGZvcm1EaXNwbGF5V1BFLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUv
UGxhdGZvcm1EaXNwbGF5V1BFLmg6CisKIDIwMTctMDUtMTYgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQy1zdHlsZSBjYXN0cyBieSB1c2luZyB4
bWxEb2NQdHIgaW5zdGVhZCBvZiB2b2lkKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAppbmRleCBmZGE4
YmJjZGIyNy4uNmEwOTcwYmRiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC01NSw2NCAr
NTUsMTEgQEAgdm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OmluaXRpYWxpemUoaW50IGhvc3RGZCkK
ICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxhdGZvcm1EaXNwbGF5
V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVudCwgaW50IGhvc3RG
ZCkKLXsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+KCp0aGlzLCBjbGll
bnQsIGhvc3RGZCk7Ci19Ci0KIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xPZmZzY3JlZW5U
YXJnZXQoKQogewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9mZnNjcmVlblRhcmdl
dD4oKnRoaXMpOwogfQogCi1QbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6RUdMVGFyZ2V0
KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1EaXNwbGF5V1BFOjpF
R0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQotICAgIDogbV9kaXNwbGF5KGRp
c3BsYXkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgbV9iYWNrZW5kID0gd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKLQotICAgIHN0YXRpYyBz
dHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQgc19jbGllbnQgPSB7
Ci0gICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCi0gICAgICAgIFtdKHZvaWQqIGRhdGEpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnByZXRfY2FzdDxFR0xU
YXJnZXQqPihkYXRhKTsKLSAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQuZnJhbWVDb21wbGV0
ZSgpOwotICAgICAgICB9LAotICAgIH07Ci0gICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3Rh
cmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsKLX0KLQotUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQotewotICAgIHdwZV9yZW5kZXJl
cl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOwotfQotCi12b2lkIFBsYXRm
b3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IEludFNpemUmIHNpemUp
Ci17Ci0gICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0aWFsaXplKG1fYmFj
a2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKLSAgICAgICAgc3RkOjptYXgoMCwgc2l6ZS53aWR0
aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOwotfQotCi1FR0xOYXRpdmVXaW5kb3dU
eXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAot
ewotICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2dldF9uYXRpdmVf
d2luZG93KG1fYmFja2VuZCk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJn
ZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQotewotICAgIHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwgc2l6ZS53aWR0aCgp
KSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOwotfQotCi12b2lkIFBsYXRmb3JtRGlzcGxh
eVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQotewotICAgIHdwZV9yZW5kZXJlcl9i
YWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5kKTsKLX0KLQotdm9p
ZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJlZCgpCi17Ci0gICAg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJlZChtX2JhY2tlbmQp
OwotfQotCiBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6RUdMT2Zmc2Ny
ZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkKIHsKICAgICBtX3Rh
cmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2NyZWF0ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5oCmluZGV4IDU5YjE1MmUzNzg3Li42ZmNiMzFmODIzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxh
eVdQRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9y
bURpc3BsYXlXUEUuaApAQCAtNTAsMzAgKzUwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0
aWFsaXplKGludCk7CiAKLSAgICBjbGFzcyBFR0xUYXJnZXQgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgY2xhc3MgQ2xpZW50IHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdmlydHVhbCB2
b2lkIGZyYW1lQ29tcGxldGUoKSA9IDA7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgRUdMVGFyZ2V0
KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYsIENsaWVudCYsIGludCk7Ci0gICAgICAgIH5FR0xU
YXJnZXQoKTsKLQotICAgICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOwotICAg
ICAgICBFR0xOYXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OwotCi0gICAgICAg
IHZvaWQgcmVzaXplKGNvbnN0IEludFNpemUmKTsKLQotICAgICAgICB2b2lkIGZyYW1lV2lsbFJl
bmRlcigpOwotICAgICAgICB2b2lkIGZyYW1lUmVuZGVyZWQoKTsKLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OwotICAgICAgICBDbGll
bnQmIG1fY2xpZW50OwotICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3Rh
cmdldCogbV9iYWNrZW5kOwotICAgIH07Ci0KICAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQg
ewogICAgIHB1YmxpYzoKICAgICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3Jt
RGlzcGxheVdQRSYpOwpAQCAtODUsOSArNjEsMTAgQEAgcHVibGljOgogICAgICAgICBzdHJ1Y3Qg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXQqIG1fdGFyZ2V0OwogICAg
IH07CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RUdMVGFyZ2V0PiBjcmVhdGVFR0xUYXJnZXQoRUdM
VGFyZ2V0OjpDbGllbnQmLCBpbnQpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xPZmZzY3JlZW5U
YXJnZXQ+IGNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOwogCisgICAgc3RydWN0IHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbCogYmFja2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZDsgfQor
CiBwcml2YXRlOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRm
b3JtRGlzcGxheTo6VHlwZTo6V1BFOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjOGEzYjA3ODE1Ny4uNTk5
YThhNmY5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxNy0wNS0xOCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1RocmVhZGVk
IENvbXBvc2l0b3JdIFJlbW92ZSBwbGF0Zm9ybSBpZmRlZnMgZnJvbSB0aHJlYWRlZCBjb21wb3Np
dG9yIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzIyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgQWNjZWxlcmF0ZWRTdXJmYWNlV1BFIGltcGxlbWVudGF0aW9uIHRoYXQg
aXMgZXF1aXZhbGVudCB0byB0aGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQuIFNpbmNl
IFdQRSBuZWVkcyB0aGUKKyAgICAgICAgc3VyZmFjZSB0byBiZSBpbml0aWFsaXplZC9maW5hbGl6
ZWQgaW4gdGhlIGNvbXBvc2l0aW5nIHRocmVhZCwgdHdvIG5ldyB2aXJ0dWFsIG1ldGhvZHMgaGFz
IGJlZW4gYWRkZWQgdG8KKyAgICAgICAgQWNjZWxlcmF0ZWRTdXJmYWNlIGluaXRpYWxpemUvZmlu
YWxpemUgdGhhdCBhcmUgb25seSBpbXBsZW1lbnRlZCBieSBXUEUuIFRoZSB0aHJlYWRlZCBjb21w
b3NpdG9yIG5vIGxvbmdlcgorICAgICAgICByZWNlaXZlcyBhIG5hdGl2ZSBzdXJmYWNlIGhhbmRs
ZSBhcyBjb250cnVjdG9yIHBhcmFtZXRlciwgaXQgbm93IGFza3MgdGhlIGNsaWVudCBmb3IgaXQg
ZnJvbSB0aGUgY29tcG9zaXRpbmcKKyAgICAgICAgdGhyZWFkLCByaWdodCBhZnRlciBpdCdzIGNy
ZWF0ZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUpOiBSZW1v
dmUgYXRpdmVTdXJmYWNlSGFuZGxlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFk
ZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IpOiBJbml0aWFsaXplIG1fbmF0aXZlU3Vy
ZmFjZUhhbmRsZSBmcm9tIHRoZSBjb21wb3NpdGluZyB0aHJlYWQKKyAgICAgICAgYXNraW5nIHRo
ZSBjbGllbnQgZm9yIGl0LgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmNy
ZWF0ZUdMQ29udGV4dCk6IFJlbW92ZSB0aGUgV1BFIGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUpOiBOb3RpZnkgdGhlIGNsaWVu
dCB0aGF0IHRoZSBHTCBjb250ZXh0IGhhcyBiZWVuIGRlc3Ryb3llZC4KKyAgICAgICAgKFdlYktp
dDo6VGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRp
bmcpOiBSZW1vdmUgR1RLIGlmZGVmcy4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3Np
dG9yOjpzZXRWaWV3cG9ydFNpemUpOiBSZW1vdmUgV1BFIGltcGxlbWVudGF0aW9uLgorICAgICAg
ICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSk6IE5vdGlmeSB0
aGUgY2xpZW50IHRoZSBmcmFtZSB3aWxsIGJlIHJlbmRlcmVkLCBhbmQgd2hlbiBpdCBoYXMKKyAg
ICAgICAgYmVlbiByZW5kZXJlZC4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9y
OjpmcmFtZUNvbXBsZXRlKTogUmVtb3ZlIFdQRSBpZmRlZnMuCisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZFN1cmZhY2U6OmNyZWF0ZSk6IEFkZCBjbGllbnQg
cGFyYW1ldGVyLgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZFN1cmZhY2U6OkFjY2VsZXJh
dGVkU3VyZmFjZSk6IENyZWF0ZSBhIEFjY2VsZXJhdGVkU3VyZmFjZVdQRSBpZiBkaXNwbGF5IGlz
IFdQRS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWRTdXJmYWNlLmg6
CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZTo6c3VyZmFjZUlEKToKKyAgICAg
ICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkU3VyZmFjZTo6d2lsbFJlbmRlckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6QWNj
ZWxlcmF0ZWRTdXJmYWNlOjpkaWRSZW5kZXJGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QpOiBQYXNzIHRoaXMgYXMgY2xpZW50
IG9mIEFjY2VsZXJhdGVkU3VyZmFjZS4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OmZyYW1lQ29tcGxldGUpOiBOb3RpZnkgdGhlIGNvbXBvc2l0b3Iu
CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpuYXRp
dmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpOiBJbml0aWFsaXplIHRoZSBzdXJmYWNlIGFu
ZCByZXR1cm4KKyAgICAgICAgdGhlIHdpbmRvdyBoYW5kbGVyLgorICAgICAgICAoV2ViS2l0OjpU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkRGVzdHJveUdMQ29udGV4dCk6IEZp
bmFsaXplIHRoZSBzdXJmYWNlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6d2lsbFJlbmRlckZyYW1lKTogTm90aWZ5IHRoZSBzdXJmYWNlLgorICAg
ICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkUmVuZGVy
RnJhbWUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmNyZWF0ZSk6IEFkZCBjbGll
bnQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5k
OjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmRpZFJlbmRlckZyYW1lKTogQ2FsbCBDbGllbnQ6OmZy
YW1lQ29tcGxldGUoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0Fj
Y2VsZXJhdGVkU3VyZmFjZVgxMS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3Vy
ZmFjZVgxMTo6Y3JlYXRlKTogQWRkIGNsaWVudCBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJLaXQ6
OkFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6QWNjZWxlcmF0ZWRTdXJmYWNlWDExKTogRGl0dG8uCisg
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6ZGlkUmVuZGVyRnJhbWUpOiBD
YWxsIENsaWVudDo6ZnJhbWVDb21wbGV0ZSgpLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6QWNjZWxlcmF0ZWRTdXJmYWNlV1BFOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZFN1cmZhY2VXUEU6OkFjY2VsZXJhdGVkU3VyZmFjZVdQRSk6CisgICAgICAgIChXZWJL
aXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6fkFjY2VsZXJhdGVkU3VyZmFjZVdQRSk6CisgICAg
ICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6aW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6ZmluYWxpemUpOgorICAgICAgICAoV2Vi
S2l0OjpBY2NlbGVyYXRlZFN1cmZhY2VXUEU6OndpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkU3VyZmFjZVdQRTo6c3VyZmFjZUlEKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxl
cmF0ZWRTdXJmYWNlV1BFOjpyZXNpemUpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZFN1
cmZhY2VXUEU6OndpbGxSZW5kZXJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
U3VyZmFjZVdQRTo6ZGlkUmVuZGVyRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvQWNjZWxlcmF0ZWRTdXJmYWNlV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmguCisKIDIwMTct
MDUtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEZpeCB0aGUgYnVpbGQgd2l0aCBNRURJQV9TVFJFQU0gZGlzYWJsZWQg
YWZ0ZXIgcjIxNjk1Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNt
YWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggNDk3NDMyOWRmY2Mu
LmU2MGRiMWFjYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTYyLDYgKzE2Miw3
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAogCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VXUEUuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3
aW5nQXJlYVdQRS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJ
V1BFLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAppbmRleCBlNThlMTkzYTlmZC4uOTQ2ZjYzNjAyODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwCkBAIC00NCwxNiArNDQsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwgY29uc3Qg
SW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZl
U3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBw
ZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1JlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCBTaG91bGREb0Zy
YW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdz
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQs
IHdlYlBhZ2UsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUs
IGRvRnJhbWVTeW5jLCBwYWludEZsYWdzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhy
ZWFkZWRDb21wb3NpdG9yKGNsaWVudCwgd2ViUGFnZSwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3Rv
ciwgZG9GcmFtZVN5bmMsIHBhaW50RmxhZ3MpKTsKIH0KIAotVGhyZWFkZWRDb21wb3NpdG9yOjpU
aHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2
ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFw
cGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVk
Q29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgU2hvdWxkRG9GcmFtZVN5bmMgZG9G
cmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKICAgICA6IG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlld3BvcnRTaXplKHZpZXdwb3J0U2l6ZSkKICAgICAs
IG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCi0gICAgLCBtX25hdGl2ZVN1cmZhY2VIYW5kbGUo
bmF0aXZlU3VyZmFjZUhhbmRsZSkKICAgICAsIG1fZG9GcmFtZVN5bmMoZG9GcmFtZVN5bmMpCiAg
ICAgLCBtX3BhaW50RmxhZ3MocGFpbnRGbGFncykKICAgICAsIG1fbmVlZHNSZXNpemUoIXZpZXdw
b3J0U2l6ZS5pc0VtcHR5KCkpCkBAIC02NSwyMSArNjQsMTQgQEAgVGhyZWFkZWRDb21wb3NpdG9y
OjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNv
bnN0IEkKICAgICBtX2NsaWVudFJlbmRlcnNOZXh0RnJhbWUuc3RvcmUoZmFsc2UpOwogICAgIG1f
Y29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRpb25XaXRoQ2xpZW50LnN0b3JlKGZhbHNlKTsKIAotI2lm
IFBMQVRGT1JNKFdQRSkKLSAgICBtX2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxpc2hDb25uZWN0
aW9uKHdlYlBhZ2UpOwotI2VuZGlmCi0KICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9y
bVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAg
ICAgbV9zY2VuZSA9IGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUodGhpcykp
OwotI2lmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgbV9uYXRpdmVTdXJmYWNlSGFuZGxlID0gbV9j
bGllbnQubmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKCk7CiAgICAgICAgIGlmICht
X25hdGl2ZVN1cmZhY2VIYW5kbGUpIHsKICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwog
ICAgICAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7Ci0jZWxpZiBQTEFURk9STShXUEUp
Ci0gICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKLSNlbmRpZgogICAgIH0pOwogfQog
CkBAIC05MSw3ICs4Myw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRl
eHQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0jaWYgUExBVEZPUk0oR1RL
KQogICAgIEFTU0VSVChtX25hdGl2ZVN1cmZhY2VIYW5kbGUpOwogCiAgICAgbV9jb250ZXh0ID0g
R0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRp
dmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZhY2VIYW5kbGUpLCAmUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CkBAIC0xMDIsMjIgKzkzLDYgQEAgdm9pZCBU
aHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4dCgpCiAgICAgICAgIGlmIChtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICAgICAgbV9jb250ZXh0LT5zd2FwSW50
ZXJ2YWwoMCk7CiAgICAgfQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShXUEUpCi0gICAgYXV0byYg
cGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7Ci0gICAg
UkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpKTsK
LSAgICBtX3RhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNw
bGF5KS5jcmVhdGVFR0xUYXJnZXQoKnRoaXMsIG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VD
b25uZWN0aW9uRmQoKSk7Ci0gICAgQVNTRVJUKG1fdGFyZ2V0KTsKLSAgICBtX3RhcmdldC0+aW5p
dGlhbGl6ZShtX3ZpZXdwb3J0U2l6ZSk7Ci0KLSAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNy
ZWF0ZUNvbnRleHRGb3JXaW5kb3cobV90YXJnZXQtPm5hdGl2ZVdpbmRvdygpLCAmcGxhdGZvcm1E
aXNwbGF5KTsKLSAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm47Ci0jZW5k
aWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUoKQpAQCAtMTMwLDkg
KzEwNSw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKICAgICBtX2Nv
bXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwog
ICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICAgICAg
bV90YXJnZXQgPSBudWxscHRyOwotI2VuZGlmCisgICAgICAgIG1fY2xpZW50LmRpZERlc3Ryb3lH
TENvbnRleHQoKTsKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7CiAgICAgfSk7CiAgICAgbV9j
b21wb3NpdGluZ1J1bkxvb3AgPSBudWxscHRyOwpAQCAtMTQwLDcgKzExMyw2IEBAIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6
OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7
Ci0jaWYgUExBVEZPUk0oR1RLKQogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRl
cygpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFuZGxlXSB7CiAgICAgICAgIC8vIEEgbmV3
IG5hdGl2ZSBoYW5kbGUgY2FuJ3QgYmUgc2V0IHdpdGhvdXQgZGVzdHJveWluZyB0aGUgcHJldmlv
dXMgb25lIGZpcnN0IGlmIGFueS4KQEAgLTE1NCw3ICsxMjYsNiBAQCB2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhh
bmRsZSkKICAgICAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9
KTsKLSNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0U2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGUpCkBAIC0xNzgsMTAgKzE0OSw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2Fs
CiB7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB2aWV3cG9ydFNpemUsIHNjYWxlXSB7CiAgICAg
ICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwotI2lmIFBMQVRGT1JNKFdQRSkKLSAg
ICAgICAgaWYgKG1fdGFyZ2V0KQotICAgICAgICAgICAgbV90YXJnZXQtPnJlc2l6ZSh2aWV3cG9y
dFNpemUpOwotI2VuZGlmCiAgICAgICAgIG1fc2NhbGVGYWN0b3IgPSBzY2FsZTsKICAgICAgICAg
bV9uZWVkc1Jlc2l6ZSA9IHRydWU7CiAgICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zY2hl
ZHVsZVVwZGF0ZSgpOwpAQCAtMjI2LDE3ICsxOTMsMTAgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnJlbmRlckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0Fj
dGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShXUEUpCi0gICAgaWYgKCFt
X2NvbnRleHQpCi0gICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwotI2VuZGlmCi0KICAgICBpZiAo
IW1fY29udGV4dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgUExBVEZPUk0oV1BFKQotICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5k
ZXIoKTsKLSNlbmRpZgorICAgIG1fY2xpZW50LndpbGxSZW5kZXJGcmFtZSgpOwogCiAgICAgaWYg
KG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3cG9ydCgwLCAwLCBtX3ZpZXdwb3J0U2l6
ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CkBAIC0yNTcsMTQgKzIxNyw4IEBA
IHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogCiAgICAgbV9jb250
ZXh0LT5zd2FwQnVmZmVycygpOwogCi0jaWYgUExBVEZPUk0oV1BFKQotICAgIG1fdGFyZ2V0LT5m
cmFtZVJlbmRlcmVkKCk7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykKICAgICBpZiAobV9z
Y2VuZS0+aXNBY3RpdmUoKSkKLSAgICAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOwotI2VuZGlm
CisgICAgICAgIG1fY2xpZW50LmRpZFJlbmRlckZyYW1lKCk7CiB9CiAKIHZvaWQgVGhyZWFkZWRD
b21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAgLTMzNCwxMyArMjg4LDExIEBAIHZv
aWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGll
bnQoKQogfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXUEUpCiB2b2lkIFRocmVhZGVkQ29tcG9z
aXRvcjo6ZnJhbWVDb21wbGV0ZSgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOwogfQotI2VuZGlmCiAKIH0KICNlbmRpZiAvLyBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRD
b21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggOWEyMTdjNmE2YTYu
Ljk4YTM4ZTc1Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUaHJlYWRlZENvbXBvc2l0b3Jf
aAotI2RlZmluZSBUaHJlYWRlZENvbXBvc2l0b3JfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAKQEAgLTQyLDExICs0MSw2IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oV1BFKQotI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTU4LDExICs1Miw3IEBA
IGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudDsKIGNsYXNzIFRocmVhZGVkRGlz
cGxheVJlZnJlc2hNb25pdG9yOwogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVGhyZWFkZWRDb21w
b3NpdG9yIDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRvcj4KLSNpZiBQTEFURk9STShXUEUp
Ci0gICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNs
aWVudAotI2VuZGlmCi0gICAgeworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFRocmVhZGVkQ29tcG9zaXRvcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGVk
Q29tcG9zaXRvcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC03
MCwxMSArNjAsMTcgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHJlbmRlck5leHRGcmFtZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFNjcm9s
bE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQp
ID0gMDsKKworICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JD
b21wb3NpdGluZygpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lHTENvbnRl
eHQoKSA9IDA7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW5kZXJGcmFtZSgpID0gMDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1lKCkgPSAwOwogICAgIH07CiAKICAg
ICBlbnVtIGNsYXNzIFNob3VsZERvRnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGlj
IFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdlJiwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJm
YWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3luYzo6WWVz
LCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CisgICAgc3RhdGljIFJl
ZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdlJiwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCBTaG91bGREb0ZyYW1lU3luYyA9IFNo
b3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3Mg
PSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBvc2l0b3IoKTsKIAogICAgIHZvaWQgc2V0
TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KTsKQEAgLTk3LDE5ICs5
MywxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhD
bGllbnQoKTsKICNlbmRpZgogCisgICAgdm9pZCBmcmFtZUNvbXBsZXRlKCk7CisKIHByaXZhdGU6
Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5k
bGUsIFNob3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdz
KTsKKyAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNv
cmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MpOwogCiAgICAgLy8gQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lQ2xpZW50CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKICAg
ICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTY3JvbGxP
ZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBv
dmVycmlkZTsKIAotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXlXUEU6OlN1cmZhY2U6OkNsaWVudAotICAgIHZvaWQgZnJhbWVDb21wbGV0ZSgpIG92ZXJy
aWRlOwotI2VuZGlmCi0KICAgICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwogICAgIHZvaWQgc2Nl
bmVVcGRhdGVGaW5pc2hlZCgpOwogCkBAIC0xMTcsMTIgKzExMCw2IEBAIHByaXZhdGU6CiAKICAg
ICBDbGllbnQmIG1fY2xpZW50OwogICAgIFJlZlB0cjxDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU+
IG1fc2NlbmU7Ci0KLSNpZiBQTEFURk9STShXUEUpCi0gICAgQ29tcG9zaXRpbmdNYW5hZ2VyIG1f
Y29tcG9zaXRpbmdNYW5hZ2VyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9y
bURpc3BsYXlXUEU6OkVHTFRhcmdldD4gbV90YXJnZXQ7Ci0jZW5kaWYKLQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIFdlYkNvcmU6Oklu
dFNpemUgbV92aWV3cG9ydFNpemU7CkBAIC0xNDcsNiArMTM0LDUgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZgorI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19USFJFQURFRCkKIAotI2VuZGlmIC8vIFRocmVhZGVkQ29tcG9zaXRvcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWRTdXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1
cmZhY2UuY3BwCmluZGV4IDZiMjBjZDg1ZDkyLi4yNmZhZWViYzdiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFjZS5j
cHAKQEAgLTM3LDI1ICszNywzNCBAQAogI2luY2x1ZGUgIkFjY2VsZXJhdGVkU3VyZmFjZVgxMS5o
IgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiQWNjZWxlcmF0ZWRTdXJm
YWNlV1BFLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1zdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlPiBBY2NlbGVy
YXRlZFN1cmZhY2U6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlKQorc3RkOjp1bmlxdWVfcHRyPEFj
Y2VsZXJhdGVkU3VyZmFjZT4gQWNjZWxlcmF0ZWRTdXJmYWNlOjpjcmVhdGUoV2ViUGFnZSYgd2Vi
UGFnZSwgQ2xpZW50JiBjbGllbnQpCiB7CiAjaWYgUExBVEZPUk0oV0FZTEFORCkKICAgICBpZiAo
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxh
eTo6VHlwZTo6V2F5bGFuZCkKLSAgICAgICAgcmV0dXJuIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQ6OmNyZWF0ZSh3ZWJQYWdlKTsKKyAgICAgICAgcmV0dXJuIEFjY2VsZXJhdGVkU3VyZmFjZVdh
eWxhbmQ6OmNyZWF0ZSh3ZWJQYWdlLCBjbGllbnQpOwogI2VuZGlmCiAjaWYgVVNFKFJFRElSRUNU
RURfWENPTVBPU0lURV9XSU5ET1cpCiAgICAgaWYgKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpLnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMSkKLSAgICAgICAgcmV0
dXJuIEFjY2VsZXJhdGVkU3VyZmFjZVgxMTo6Y3JlYXRlKHdlYlBhZ2UpOworICAgICAgICByZXR1
cm4gQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpjcmVhdGUod2ViUGFnZSwgY2xpZW50KTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBpZiAoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFKQorICAgICAgICByZXR1
cm4gQWNjZWxlcmF0ZWRTdXJmYWNlV1BFOjpjcmVhdGUod2ViUGFnZSwgY2xpZW50KTsKICNlbmRp
ZgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1BY2NlbGVyYXRlZFN1cmZhY2U6OkFjY2VsZXJh
dGVkU3VyZmFjZShXZWJQYWdlJiB3ZWJQYWdlKQorQWNjZWxlcmF0ZWRTdXJmYWNlOjpBY2NlbGVy
YXRlZFN1cmZhY2UoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX3dl
YlBhZ2Uod2ViUGFnZSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc2l6ZSh3ZWJQ
YWdlLnNpemUoKSkKIHsKICAgICBtX3NpemUuc2NhbGUobV93ZWJQYWdlLmRldmljZVNjYWxlRmFj
dG9yKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Fj
Y2VsZXJhdGVkU3VyZmFjZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Fj
Y2VsZXJhdGVkU3VyZmFjZS5oCmluZGV4IDI2YjRjOGE1MzAwLi4yOWVlOTU4N2MzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1
cmZhY2UuaApAQCAtMzUsMTggKzM1LDI5IEBAIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBBY2NlbGVy
YXRlZFN1cmZhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjY2VsZXJhdGVkU3VyZmFj
ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlPiBjcmVhdGUoV2ViUGFnZSYpOworICAgIGNsYXNz
IENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVDb21wbGV0
ZSgpID0gMDsKKyAgICB9OworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRl
ZFN1cmZhY2U+IGNyZWF0ZShXZWJQYWdlJiwgQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+QWNjZWxl
cmF0ZWRTdXJmYWNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCB1aW50NjRfdCB3aW5kb3co
KSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
dWludDY0X3Qgc3VyZmFjZUlEKCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJu
IDA7IH07CisgICAgdmlydHVhbCB1aW50NjRfdCBzdXJmYWNlSUQoKSBjb25zdCB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgYm9vbCByZXNpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludE1pcnJvcmVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXpl
KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHdpbGxSZW5kZXJGcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJGcmFtZSgp
IHsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgQWNjZWxlcmF0ZWRTdXJmYWNlKFdlYlBhZ2UmKTsKKyAg
ICBBY2NlbGVyYXRlZFN1cmZhY2UoV2ViUGFnZSYsIENsaWVudCYpOwogCiAgICAgV2ViUGFnZSYg
bV93ZWJQYWdlOworICAgIENsaWVudCYgbV9jbGllbnQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBt
X3NpemU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggZTJjNmI1YjQ3N2Mu
LjdiZWQzOWExNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC01Miw3ICs1Miw3
IEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+VGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3QoKQogVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Qod2ViUGFnZSkKICAgICAsIG1fY29tcG9zaXRvckNsaWVudCgq
dGhpcykKLSAgICAsIG1fc3VyZmFjZShBY2NlbGVyYXRlZFN1cmZhY2U6OmNyZWF0ZSh3ZWJQYWdl
KSkKKyAgICAsIG1fc3VyZmFjZShBY2NlbGVyYXRlZFN1cmZhY2U6OmNyZWF0ZSh3ZWJQYWdlLCAq
dGhpcykpCiAgICAgLCBtX3ZpZXdwb3J0Q29udHJvbGxlcih3ZWJQYWdlLnNpemUoKSkKIHsKICAg
ICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpKSB7
CkBAIC03MSwxMCArNzEsNyBAQCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6VGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSYgd2ViUAogICAgICAgICBpZiAo
bV9zdXJmYWNlLT5zaG91bGRQYWludE1pcnJvcmVkKCkpCiAgICAgICAgICAgICBwYWludEZsYWdz
IHw9IFRleHR1cmVNYXBwZXI6OlBhaW50aW5nTWlycm9yZWQ7CiAKLSAgICAgICAgLy8gRG8gbm90
IGRvIGZyYW1lIHN5bmMgd2hlbiByZW5kZXJpbmcgb2Zmc2NyZWVuIGluIHRoZSB3ZWIgcHJvY2Vz
cyB0byBlbnN1cmUgdGhhdCBTd2FwQnVmZmVycyBuZXZlciBibG9ja3MuCi0gICAgICAgIC8vIFJl
bmRlcmluZyB0byB0aGUgYWN0dWFsIHNjcmVlbiB3aWxsIGhhcHBlbiBsYXRlciBhbnl3YXkgc2lu
Y2UgdGhlIFVJIHByb2Nlc3Mgc2NoZWR1bGVzIGEgcmVkcmF3IGZvciBldmVyeSB1cGRhdGUsCi0g
ICAgICAgIC8vIHRoZSBjb21wb3NpdG9yIHdpbGwgdGFrZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJs
YW5rLgotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZSht
X2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1
cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZ
ZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0
b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxl
RmFjdG9yLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50
RmxhZ3MpOwogICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNl
LT5zdXJmYWNlSUQoKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFk
ZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRT
aXplLCBzY2FsZUZhY3Rvcik7CkBAIC05NSw2ICs5MiwzOCBAQCB2b2lkIFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnQoKQogICAgIG1fY29tcG9zaXRvci0+Zm9y
Y2VSZXBhaW50KCk7CiB9CiAKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OmZyYW1lQ29tcGxldGUoKQoreworICAgIG1fY29tcG9zaXRvci0+ZnJhbWVDb21wbGV0ZSgpOwor
fQorCit1aW50NjRfdCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bmF0aXZlU3Vy
ZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKCkKK3sKKyAgICBpZiAoIW1fc3VyZmFjZSkKKyAgICAg
ICAgcmV0dXJuIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQ7CisKKyAgICBtX3N1cmZhY2Ut
PmluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gbV9zdXJmYWNlLT53aW5kb3coKTsKK30KKwordm9p
ZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkRGVzdHJveUdMQ29udGV4dCgp
Cit7CisgICAgaWYgKG1fc3VyZmFjZSkKKyAgICAgICAgbV9zdXJmYWNlLT5maW5hbGl6ZSgpOwor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp3aWxsUmVuZGVyRnJh
bWUoKQoreworICAgIGlmIChtX3N1cmZhY2UpCisgICAgICAgIG1fc3VyZmFjZS0+d2lsbFJlbmRl
ckZyYW1lKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRp
ZFJlbmRlckZyYW1lKCkKK3sKKyAgICBpZiAobV9zdXJmYWNlKQorICAgICAgICBtX3N1cmZhY2Ut
PmRpZFJlbmRlckZyYW1lKCk7Cit9CisKIHZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGVhZjFjN2UzMmFmLi5mM2VkYTg5NDg3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNSwxMSArMjUsMTEgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0X2gKLSNkZWZpbmUgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Rf
aAorI3ByYWdtYSBvbmNlCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CiAKKyNpbmNsdWRlICJBY2NlbGVyYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJDb29yZGluYXRl
ZExheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJTaW1wbGVWaWV3cG9ydENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJUaHJlYWRlZENvbXBvc2l0b3IuaCIKQEAgLTQzLDEwICs0Myw5IEBAIHN0cnVj
dCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBBY2NlbGVyYXRlZFN1cmZhY2U7CiBjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCBmaW5hbCA6IHB1YmxpYyBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QgeworY2xhc3MgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QgZmluYWwgOiBw
dWJsaWMgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LCBwdWJsaWMgQWNjZWxlcmF0ZWRTdXJmYWNl
OjpDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q+IGNyZWF0ZShXZWJQYWdlJik7CiAgICAgdmlydHVhbCB+VGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QoKTsKQEAgLTkyLDYgKzkxLDI2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBtX2xheWVyVHJlZUhvc3QuY29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9mZnNl
dCk7CiAgICAgICAgIH0KIAorICAgICAgICB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlRm9y
Q29tcG9zaXRpbmcoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9s
YXllclRyZWVIb3N0Lm5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZygpOworICAgICAg
ICB9CisKKyAgICAgICAgdm9pZCBkaWREZXN0cm95R0xDb250ZXh0KCkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LmRpZERlc3Ryb3lHTENvbnRleHQoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbFJlbmRlckZyYW1lKCkgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LndpbGxSZW5kZXJGcmFtZSgpOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZSgpIG92ZXJyaWRlCisgICAg
ICAgIHsKKyAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC5kaWRSZW5kZXJGcmFtZSgpOworICAg
ICAgICB9CisKICAgICAgICAgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QmIG1fbGF5
ZXJUcmVlSG9zdDsKICAgICB9OwogCkBAIC0xMDYsNiArMTI1LDE0IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKICNlbmRpZgog
CisgICAgLy8gQWNjZWxlcmF0ZWRTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lkIGZyYW1lQ29tcGxl
dGUoKSBvdmVycmlkZTsKKworICAgIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21w
b3NpdGluZygpOworICAgIHZvaWQgZGlkRGVzdHJveUdMQ29udGV4dCgpOworICAgIHZvaWQgd2ls
bFJlbmRlckZyYW1lKCk7CisgICAgdm9pZCBkaWRSZW5kZXJGcmFtZSgpOworCiAgICAgZW51bSBj
bGFzcyBEaXNjYXJkYWJsZVN5bmNBY3Rpb25zIHsKICAgICAgICAgVXBkYXRlU2l6ZSA9IDEgPDwg
MSwKICAgICAgICAgVXBkYXRlVmlld3BvcnQgPSAxIDw8IDIsCkBAIC0xMjYsNSArMTUzLDMgQEAg
cHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQotCi0jZW5kaWYgLy8gVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKaW5kZXgg
YjZmMGI4N2Y3MGMuLjNjZjUyOGFlYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5
bGFuZC5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdheWxh
bmRDb21wb3NpdG9yRGlzcGxheT4mIHdheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpCiAgICAgcmV0
dXJuIHdheWxhbmREaXNwbGF5OwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZD4gQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6Y3JlYXRlKFdlYlBhZ2UmIHdl
YlBhZ2UpCitzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZD4gQWNjZWxl
cmF0ZWRTdXJmYWNlV2F5bGFuZDo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xp
ZW50KQogewotICAgIHJldHVybiB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKSA/IHN0ZDo6dW5p
cXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPihuZXcgQWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZCh3ZWJQYWdlKSkgOiBudWxscHRyOworICAgIHJldHVybiB3YXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXkoKSA/IHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPihu
ZXcgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCh3ZWJQYWdlLCBjbGllbnQpKSA6IG51bGxwdHI7
CiB9CiAKLUFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQoV2ViUGFnZSYgd2ViUGFnZSkKLSAgICA6IEFjY2VsZXJhdGVkU3VyZmFjZSh3ZWJQYWdlKQor
QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZChXZWJQ
YWdlJiB3ZWJQYWdlLCBDbGllbnQmIGNsaWVudCkKKyAgICA6IEFjY2VsZXJhdGVkU3VyZmFjZSh3
ZWJQYWdlLCBjbGllbnQpCiAgICAgLCBtX3N1cmZhY2Uod2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
KCktPmNyZWF0ZVN1cmZhY2UoKSkKICAgICAsIG1fd2luZG93KHdsX2VnbF93aW5kb3dfY3JlYXRl
KG1fc3VyZmFjZS5nZXQoKSwgc3RkOjptYXgoMSwgbV9zaXplLndpZHRoKCkpLCBzdGQ6Om1heCgx
LCBtX3NpemUuaGVpZ2h0KCkpKSkKIHsKQEAgLTExMiw2ICsxMTIsMTIgQEAgYm9vbCBBY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kOjpyZXNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpkaWRSZW5kZXJG
cmFtZSgpCit7CisgICAgLy8gRklYTUU6IGZyYW1lQ29tcGxldGUoKSBzaG91bGQgYmUgY2FsbGVk
IHdoZW4gdGhlIGZyYW1lIHdhcyBhY3R1YWxseSByZW5kZXJlZCBpbiB0aGUgc2NyZWVuLgorICAg
IG1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBQTEFURk9STShXQVlMQU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQuaAppbmRleCAzOGEyZmJjZDA0Yy4uYzNjODg2ZTU5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRT
dXJmYWNlV2F5bGFuZC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xh
c3MgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCBmaW5hbCA6IHB1YmxpYyBBY2NlbGVyYXRlZFN1
cmZhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ+IGNyZWF0ZShXZWJQYWdlJik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPiBjcmVh
dGUoV2ViUGFnZSYsIENsaWVudCYpOwogICAgIH5BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKCk7
CiAKICAgICB1aW50NjRfdCB3aW5kb3coKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiByZWludGVy
cHJldF9jYXN0PHVpbnQ2NF90PihtX3dpbmRvdyk7IH0KQEAgLTQ1LDggKzQ1LDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIHJlc2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzaG91bGRQYWludE1pcnJvcmVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdm9pZCBkaWRSZW5kZXJGcmFtZSgpIG92ZXJyaWRlOworCiBwcml2YXRlOgot
ICAgIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoV2ViUGFnZSYpOworICAgIEFjY2VsZXJhdGVk
U3VyZmFjZVdheWxhbmQoV2ViUGFnZSYsIENsaWVudCYpOwogCiAgICAgV2ViQ29yZTo6V2xVbmlx
dWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBzdHJ1Y3Qgd2xfZWdsX3dp
bmRvdyogbV93aW5kb3cgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAK
aW5kZXggYjQyZGQ2Y2E0ZmUuLjhhY2QxNDBmMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VY
MTEuY3BwCkBAIC00MSwxMSArNDEsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlWDEx
PiBBY2NlbGVyYXRlZFN1cmZhY2VYMTE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlKQorc3RkOjp1
bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVgxMT4gQWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpj
cmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKCFkb3du
Y2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgp
KS5zdXBwb3J0c1hDb21wb3NpdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VYMTE+KG5ldyBBY2NlbGVyYXRl
ZFN1cmZhY2VYMTEod2ViUGFnZSkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxl
cmF0ZWRTdXJmYWNlWDExPihuZXcgQWNjZWxlcmF0ZWRTdXJmYWNlWDExKHdlYlBhZ2UsIGNsaWVu
dCkpOwogfQogCiBzdGF0aWMgR2RrVmlzdWFsKiBkZWZhdWx0VmlzdWFsKCkKQEAgLTU1LDggKzU1
LDggQEAgc3RhdGljIEdka1Zpc3VhbCogZGVmYXVsdFZpc3VhbCgpCiAgICAgcmV0dXJuIGdka19z
Y3JlZW5fZ2V0X3N5c3RlbV92aXN1YWwoZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKTsKIH0KIAot
QWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpBY2NlbGVyYXRlZFN1cmZhY2VYMTEoV2ViUGFnZSYgd2Vi
UGFnZSkKLSAgICA6IEFjY2VsZXJhdGVkU3VyZmFjZSh3ZWJQYWdlKQorQWNjZWxlcmF0ZWRTdXJm
YWNlWDExOjpBY2NlbGVyYXRlZFN1cmZhY2VYMTEoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBj
bGllbnQpCisgICAgOiBBY2NlbGVyYXRlZFN1cmZhY2Uod2ViUGFnZSwgY2xpZW50KQogICAgICwg
bV9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4oUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpKQogewogICAgIFNjcmVlbiogc2NyZWVuID0gRGVmYXVs
dFNjcmVlbk9mRGlzcGxheShtX2Rpc3BsYXkpOwpAQCAtMTQ5LDYgKzE0OSwxMiBAQCBib29sIEFj
Y2VsZXJhdGVkU3VyZmFjZVgxMTo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK3ZvaWQgQWNjZWxlcmF0ZWRT
dXJmYWNlWDExOjpkaWRSZW5kZXJGcmFtZSgpCit7CisgICAgLy8gRklYTUU6IGZyYW1lQ29tcGxl
dGUoKSBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGZyYW1lIHdhcyBhY3R1YWxseSByZW5kZXJl
ZCBpbiB0aGUgc2NyZWVuLgorICAgIG1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRF
X1dJTkRPVykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5oCmluZGV4IDc0MGY1ODk3OGVmLi5jOTQ4
ZmMxMWRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5oCkBAIC00MSw3ICs0MSw3IEBAIGNs
YXNzIFdlYlBhZ2U7CiBjbGFzcyBBY2NlbGVyYXRlZFN1cmZhY2VYMTEgZmluYWwgOiBwdWJsaWMg
QWNjZWxlcmF0ZWRTdXJmYWNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBY2NlbGVyYXRl
ZFN1cmZhY2VYMTEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVgxMT4gY3JlYXRlKFdlYlBhZ2Um
KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVgxMT4gY3Jl
YXRlKFdlYlBhZ2UmLCBDbGllbnQmKTsKICAgICB+QWNjZWxlcmF0ZWRTdXJmYWNlWDExKCk7CiAK
ICAgICB1aW50NjRfdCB3aW5kb3coKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dpbmRvdy5n
ZXQoKTsgfQpAQCAtNDksOCArNDksMTAgQEAgcHVibGljOgogICAgIGJvb2wgcmVzaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFBhaW50TWlycm9y
ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdm9pZCBkaWRSZW5k
ZXJGcmFtZSgpIG92ZXJyaWRlOworCiBwcml2YXRlOgotICAgIEFjY2VsZXJhdGVkU3VyZmFjZVgx
MShXZWJQYWdlJik7CisgICAgQWNjZWxlcmF0ZWRTdXJmYWNlWDExKFdlYlBhZ2UmLCBDbGllbnQm
KTsKIAogICAgIHZvaWQgY3JlYXRlUGl4bWFwKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQWNjZWxlcmF0ZWRTdXJmYWNlV1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQWNjZWxlcmF0ZWRTdXJmYWNlV1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2JlODhkZDVhODcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2VsZXJhdGVk
U3VyZmFjZVdQRS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWJhY2tlbmQtZWds
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdQRT4gQWNjZWxlcmF0ZWRTdXJmYWNl
V1BFOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXUEU+KG5ldyBBY2NlbGVyYXRl
ZFN1cmZhY2VXUEUod2ViUGFnZSwgY2xpZW50KSk7Cit9CisKK0FjY2VsZXJhdGVkU3VyZmFjZVdQ
RTo6QWNjZWxlcmF0ZWRTdXJmYWNlV1BFKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50
KQorICAgIDogQWNjZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKK3sKKyAgICBtX2Nv
bXBvc2l0aW5nTWFuYWdlci5lc3RhYmxpc2hDb25uZWN0aW9uKHdlYlBhZ2UpOworfQorCitBY2Nl
bGVyYXRlZFN1cmZhY2VXUEU6On5BY2NlbGVyYXRlZFN1cmZhY2VXUEUoKQoreworICAgIEFTU0VS
VCghbV9iYWNrZW5kKTsKK30KKwordm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VXUEU6OmluaXRpYWxp
emUoKQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRf
Y3JlYXRlKG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VDb25uZWN0aW9uRmQoKSk7CisgICAg
c3RhdGljIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NsaWVudCBzX2Ns
aWVudCA9IHsKKyAgICAgICAgLy8gZnJhbWVfY29tcGxldGUKKyAgICAgICAgW10odm9pZCogZGF0
YSkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgc3VyZmFjZSA9ICpyZWludGVycHJldF9j
YXN0PEFjY2VsZXJhdGVkU3VyZmFjZVdQRSo+KGRhdGEpOworICAgICAgICAgICAgc3VyZmFjZS5t
X2NsaWVudC5mcmFtZUNvbXBsZXRlKCk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfcmVu
ZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3NldF9jbGllbnQobV9iYWNrZW5kLCAmc19jbGllbnQs
IHRoaXMpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfaW5pdGlhbGl6ZSht
X2JhY2tlbmQsIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkpLmJhY2tlbmQoKSwKKyAgICAgICAgc3RkOjptYXgoMCwgbV9zaXplLndp
ZHRoKCkpLCBzdGQ6Om1heCgwLCBtX3NpemUuaGVpZ2h0KCkpKTsKK30KKwordm9pZCBBY2NlbGVy
YXRlZFN1cmZhY2VXUEU6OmZpbmFsaXplKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0X2Rlc3Ryb3kobV9iYWNrZW5kKTsKKyAgICBtX2JhY2tlbmQgPSBudWxscHRyOwor
fQorCit1aW50NjRfdCBBY2NlbGVyYXRlZFN1cmZhY2VXUEU6OndpbmRvdygpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1fYmFja2VuZCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0
X3Q+KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3cobV9i
YWNrZW5kKSk7Cit9CisKK3VpbnQ2NF90IEFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6c3VyZmFjZUlE
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJRCgpOworfQorCitib29sIEFj
Y2VsZXJhdGVkU3VyZmFjZVdQRTo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAg
QVNTRVJUKG1fYmFja2VuZCk7CisgICAgaWYgKCFBY2NlbGVyYXRlZFN1cmZhY2U6OnJlc2l6ZShz
aXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRf
ZWdsX3RhcmdldF9yZXNpemUobV9iYWNrZW5kLCBzdGQ6Om1heCgwLCBtX3NpemUud2lkdGgoKSks
IHN0ZDo6bWF4KDAsIG1fc2l6ZS5oZWlnaHQoKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgQWNjZWxlcmF0ZWRTdXJmYWNlV1BFOjp3aWxsUmVuZGVyRnJhbWUoKQoreworICAgIEFT
U0VSVChtX2JhY2tlbmQpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJh
bWVfd2lsbF9yZW5kZXIobV9iYWNrZW5kKTsKK30KKwordm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VX
UEU6OmRpZFJlbmRlckZyYW1lKCkKK3sKKyAgICBBU1NFUlQobV9iYWNrZW5kKTsKKyAgICB3cGVf
cmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3JlbmRlcmVkKG1fYmFja2VuZCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDI2MGZmNzNhNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJh
dGVkU3VyZmFjZVdQRS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJBY2NlbGVy
YXRlZFN1cmZhY2UuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBBY2NlbGVyYXRlZFN1cmZhY2VXUEUgZmluYWwgOiBw
dWJsaWMgQWNjZWxlcmF0ZWRTdXJmYWNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBY2Nl
bGVyYXRlZFN1cmZhY2VXUEUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdQRT4gY3JlYXRlKFdl
YlBhZ2UmLCBDbGllbnQmKTsKKyAgICB+QWNjZWxlcmF0ZWRTdXJmYWNlV1BFKCk7CisKKyAgICB1
aW50NjRfdCB3aW5kb3coKSBjb25zdCBvdmVycmlkZTsKKyAgICB1aW50NjRfdCBzdXJmYWNlSUQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHJlc2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRQYWludE1pcnJvcmVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZmluYWxpemUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZW5kZXJGcmFtZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUoKSBvdmVycmlkZTsKKworcHJpdmF0
ZToKKyAgICBBY2NlbGVyYXRlZFN1cmZhY2VXUEUoV2ViUGFnZSYsIENsaWVudCYpOworCisgICAg
Q29tcG9zaXRpbmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2VyOworICAgIHN0cnVjdCB3cGVf
cmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0KiBtX2JhY2tlbmQgeyBudWxscHRyIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkK
</data>
<flag name="review"
          id="331562"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>