<?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>86585</bug_id>
          
          <creation_ts>2012-05-16 00:25:13 -0700</creation_ts>
          <short_desc>[Refactoring] Node::shadowHost() and Node::setShadowHost() can be moved to ShadowRoot</short_desc>
          <delta_ts>2012-05-20 19:42:30 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>eric</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625067</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-05-16 00:25:13 -0700</bug_when>
    <thetext>Basically these methods are only for ShadowRoot. So we should be able to move them to ShadowRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626173</commentid>
    <comment_count>1</comment_count>
      <attachid>142398</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-05-16 20:02:38 -0700</bug_when>
    <thetext>Created attachment 142398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626359</commentid>
    <comment_count>2</comment_count>
      <attachid>142398</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-17 01:03:20 -0700</bug_when>
    <thetext>Comment on attachment 142398
Patch

I think you can move setParent() to private as parent() is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626389</commentid>
    <comment_count>3</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-05-17 02:10:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 142398 [details])
&gt; I think you can move setParent() to private as parent() is.

Unfortunately Attr::createTextChild touched it...
If we want to make it private, it should be done by another patch I think...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626391</commentid>
    <comment_count>4</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-05-17 02:12:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 142398 [details] [details])
&gt; &gt; I think you can move setParent() to private as parent() is.
&gt; 
&gt; Unfortunately Attr::createTextChild touched it...
&gt; If we want to make it private, it should be done by another patch I think...

Oh, let me discard this ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627309</commentid>
    <comment_count>5</comment_count>
      <attachid>142625</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-05-17 21:25:12 -0700</bug_when>
    <thetext>Created attachment 142625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628726</commentid>
    <comment_count>6</comment_count>
      <attachid>142625</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-20 19:41:25 -0700</bug_when>
    <thetext>Comment on attachment 142625
Patch

Clearing flags on attachment: 142625

Committed r117723: &lt;http://trac.webkit.org/changeset/117723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628727</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-20 19:42:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142398</attachid>
            <date>2012-05-16 20:02:38 -0700</date>
            <delta_ts>2012-05-17 21:25:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86585-20120517120236.patch</filename>
            <type>text/plain</type>
            <size>20739</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E1NmM0NzU4Y2U0YjQz
MzQ4YjhhZDJkYWNhMDFjNWQ3ZWNiMjA5Mi4uNDRmM2YyYzY2NzdiMWRjMzEyYTBjZWIyYzE0MzJi
MmYwNzUyYzE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVmYWN0b3Jp
bmddIE5vZGU6OnNoYWRvd0hvc3QoKSBhbmQgTm9kZTo6c2V0U2hhZG93SG9zdCgpIGNhbiBiZSBt
b3ZlZCB0byBTaGFkb3dSb290LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODY1ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTaW5jZSBOb2RlOjpzaGFkb3dIb3N0KCkgYW5kIE5vZGU6OnNldFNoYWRvd0hv
c3QoKSBhcmUgdmFsaWQgb25seSBpZiBOb2RlIGlzIFNoYWRvd1Jvb3QsCisgICAgICAgIHRoZXkg
c2hvdWxkIGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgSG93ZXZlciwgTm9kZTo6
c2V0UGFyZW50IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBTaGFkb3dSb290LCB3ZSBhZGQgTm9kZTo6
c2V0UGFyZW50T3JIb3N0Tm9kZQorICAgICAgICB0byBjYWxsIGl0IGFzIE5vZGU6OnBhcmVudE9y
SG9zdE5vZGUoKSBjYWxscyBOb2RlOjpwYXJlbnQoKS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjphZGRTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKToKKyAgICAgICAgKiBkb20vRXZlbnRE
aXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1NW
R1RhcmdldFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6YWRqdXN0
VG9TaGFkb3dCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6
ZW5zdXJlRXZlbnRBbmNlc3RvcnMpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVy
OjpkZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKToKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRj
aGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV2ZW50RGlzcGF0Y2hlcik6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cGFyZW50T3JI
b3N0RWxlbWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0UGFyZW50T3JIb3N0Tm9kZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAg
ICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
aG9zdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6
OnNldEhvc3QpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlOjpmb2N1c2VkTm9kZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVl
cnk6Om1hdGNoZXMpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YXNGaWxlSW5wdXQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Omluc3RhbmNlQXNzb2NpYXRlZFdpdGhTaGFkb3dUcmVlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVu
dCk6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNTY29wZTo6b3duZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aGFzTGluZUlmRW1wdHkpOgorICAg
ICAgICAqIHN2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0
eWxlZEVsZW1lbnQ6OnRpdGxlKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU2hhZG93VGV4dDo6d2lsbFJlY2FsY1RleHRTdHlsZSk6CisK
IDIwMTItMDUtMTYgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBBdWRpb1BhcmFtIG11c3Qgc3VwcG9ydCBmYW4taW4gKG11bHRpcGxlIGF1ZGlvIGNvbm5lY3Rp
b25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCmluZGV4IDZlMTA0YWM2YTY5NjBk
NWU3NWQ0Zjc3MWJkMjc3NGNkZjM1M2FmZWIuLmEyODliOWUwNTBiM2QwNzYwZDJkNDE0M2M3ZTUz
ODgyOTY3Mzk0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKQEAgLTUzLDcg
KzUzLDcgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVu
dCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXAKICAgICBpZiAoIXNoYWRvd1Jvb3QpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkg
eworICAgIGlmIChzaGFkb3dSb290LT5ob3N0KCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlf
UkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC03NCw3ICs3NCw3
IEBAIHZvaWQgRWxlbWVudFNoYWRvdzo6YWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0
LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoCiAgICAgaWYgKCF2YWxpZGF0ZVNoYWRvd1Jvb3Qo
c2hhZG93SG9zdC0+ZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwgZWMpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzaGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KHNoYWRvd0hvc3QpOworICAg
IHNoYWRvd1Jvb3QtPnNldEhvc3Qoc2hhZG93SG9zdCk7CiAgICAgQ2hpbGROb2RlSW5zZXJ0aW9u
Tm90aWZpZXIoc2hhZG93SG9zdCkubm90aWZ5KHNoYWRvd1Jvb3QuZ2V0KCkpOwogCiAgICAgaWYg
KHNoYWRvd0hvc3QtPmF0dGFjaGVkKCkpIHsKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBFbGVtZW50
U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cygpCiAgICAgICAgIGlmIChvbGRSb290LT5hdHRh
Y2hlZCgpKQogICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CiAKLSAgICAgICAgb2xkUm9v
dC0+c2V0U2hhZG93SG9zdCgwKTsKKyAgICAgICAgb2xkUm9vdC0+c2V0SG9zdCgwKTsKICAgICAg
ICAgb2xkUm9vdC0+c2V0UHJldigwKTsKICAgICAgICAgb2xkUm9vdC0+c2V0TmV4dCgwKTsKICAg
ICAgICAgc2hhZG93SG9zdC0+ZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRSb290LmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMTY4OWUwNmI4Y2E0
YmYwYWI1ODNjOGYzOTFiZjk5ODkwYTk3NWJkYy4uZmVjZTRhODk3YzEyZDU0YmFhNDJkN2E1Njhh
MGM2MjBmZTllZmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0
Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgorI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJXaW5kb3dFdmVudENvbnRleHQuaCIKICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CkBAIC02
NSw3ICs2Niw3IEBAIGlubGluZSBzdGF0aWMgRXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0UmVzcGVj
dGluZ1NWR1RhcmdldFJ1bGVzKE5vZGUqIHJlZmVyZW5jZU5vCiAKICAgICAvLyBTcGVjOiBUaGUg
ZXZlbnQgaGFuZGxpbmcgZm9yIHRoZSBub24tZXhwb3NlZCB0cmVlIHdvcmtzIGFzIGlmIHRoZSBy
ZWZlcmVuY2VkIGVsZW1lbnQgaGFkIGJlZW4gdGV4dHVhbGx5IGluY2x1ZGVkCiAgICAgLy8gYXMg
YSBkZWVwbHkgY2xvbmVkIGNoaWxkIG9mIHRoZSAndXNlJyBlbGVtZW50LCBleGNlcHQgdGhhdCBl
dmVudHMgYXJlIGRpc3BhdGNoZWQgdG8gdGhlIFNWR0VsZW1lbnRJbnN0YW5jZSBvYmplY3RzCi0g
ICAgRWxlbWVudCogc2hhZG93SG9zdEVsZW1lbnQgPSByZWZlcmVuY2VOb2RlLT50cmVlU2NvcGUo
KS0+cm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpOworICAgIEVsZW1lbnQqIHNoYWRvd0hvc3RFbGVt
ZW50ID0gdG9TaGFkb3dSb290KHJlZmVyZW5jZU5vZGUtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgp
KS0+aG9zdCgpOwogICAgIC8vIEF0IHRoaXMgdGltZSwgU1ZHIG5vZGVzIGFyZSBub3QgYWxsb3dl
ZCBpbiBub24tPHVzZT4gc2hhZG93IHRyZWVzLCBzbyBhbnkgc2hhZG93IHJvb3Qgd2UgZG8KICAg
ICAvLyBoYXZlIHNob3VsZCBiZSBhIHVzZS4gVGhlIGFzc2VydCBhbmQgZm9sbG93aW5nIHRlc3Qg
aXMgaGVyZSB0byBjYXRjaCBmdXR1cmUgc2hhZG93IERPTSBjaGFuZ2VzCiAgICAgLy8gdGhhdCBk
byBlbmFibGUgU1ZHIGluIGEgc2hhZG93IHRyZWUuCkBAIC0xNTEsNyArMTUyLDcgQEAgUGFzc1Jl
ZlB0cjxFdmVudFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1NoYWRvd0JvdW5kYXJp
ZXMoUGFzc1JlZlB0cjxOb2QKICAgICBpZiAoIWRpdmVyZ2VkKSB7CiAgICAgICAgIC8vIFRoZSBy
ZWxhdGVkVGFyZ2V0IGlzIGFuIGFuY2VzdG9yIG9yIHNoYWRvd0hvc3Qgb2YgdGhlIHRhcmdldC4K
ICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGUgZmlyc3QgY2hlY2sgb25jZSBjb252ZXJzaW9u
IHRvIG5ldyBzaGFkb3cgRE9NIGlzIGNvbXBsZXRlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ4Njk4
PgotICAgICAgICBpZiAobV9ub2RlLT5zaGFkb3dIb3N0KCkgPT0gcmVsYXRlZFRhcmdldC5nZXQo
KSB8fCBpc1NoYWRvd0hvc3QocmVsYXRlZFRhcmdldC5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCht
X25vZGUtPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChtX25vZGUuZ2V0KCkpLT5ob3N0
KCkgPT0gcmVsYXRlZFRhcmdldC5nZXQoKSkgfHwgaXNTaGFkb3dIb3N0KHJlbGF0ZWRUYXJnZXQu
Z2V0KCkpKSB7CiAgICAgICAgICAgICBWZWN0b3I8RXZlbnRDb250ZXh0Pjo6Y29uc3RfaXRlcmF0
b3IgcmVsYXRlZFRhcmdldENoaWxkID0gdGFyZ2V0QW5jZXN0b3IgLSAxOwogICAgICAgICAgICAg
aWYgKHJlbGF0ZWRUYXJnZXRDaGlsZCA+PSBtX2FuY2VzdG9ycy5iZWdpbigpICYmIHJlbGF0ZWRU
YXJnZXRDaGlsZC0+bm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBsb3dl
c3RDb21tb25Cb3VuZGFyeSA9IHJlbGF0ZWRUYXJnZXRDaGlsZDsKQEAgLTIzOSw5ICsyNDAsMTAg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmVuc3VyZUV2ZW50QW5jZXN0b3JzKEV2ZW50KiBldmVu
dCkKICAgICBFdmVudFRhcmdldCogdGFyZ2V0ID0gZXZlbnRUYXJnZXRSZXNwZWN0aW5nU1ZHVGFy
Z2V0UnVsZXMoYW5jZXN0b3IpOwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIGlmIChhbmNl
c3Rvci0+aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlmIChkZXRlcm1pbmVEaXNwYXRj
aEJlaGF2aW9yKGV2ZW50LCBhbmNlc3RvcikgPT0gU3RheUluc2lkZVNoYWRvd0RPTSkKKyAgICAg
ICAgICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3QoYW5jZXN0b3IpOworICAgICAg
ICAgICAgaWYgKGRldGVybWluZURpc3BhdGNoQmVoYXZpb3IoZXZlbnQsIHJvb3QpID09IFN0YXlJ
bnNpZGVTaGFkb3dET00pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYW5j
ZXN0b3IgPSBhbmNlc3Rvci0+c2hhZG93SG9zdCgpOworICAgICAgICAgICAgYW5jZXN0b3IgPSBy
b290LT5ob3N0KCk7CiAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+aXNTVkdFbGVtZW50KCkpCiAg
ICAgICAgICAgICAgICAgdGFyZ2V0ID0gYW5jZXN0b3I7CiAgICAgICAgIH0gZWxzZQpAQCAtMzY0
LDcgKzM2Niw3IEBAIGNvbnN0IEV2ZW50Q29udGV4dCogRXZlbnREaXNwYXRjaGVyOjp0b3BFdmVu
dENvbnRleHQoKQogICAgIHJldHVybiBtX2FuY2VzdG9ycy5pc0VtcHR5KCkgPyAwIDogJm1fYW5j
ZXN0b3JzLmxhc3QoKTsKIH0KIAotRXZlbnREaXNwYXRjaEJlaGF2aW9yIEV2ZW50RGlzcGF0Y2hl
cjo6ZGV0ZXJtaW5lRGlzcGF0Y2hCZWhhdmlvcihFdmVudCogZXZlbnQsIE5vZGUqIHNoYWRvd1Jv
b3QpCitFdmVudERpc3BhdGNoQmVoYXZpb3IgRXZlbnREaXNwYXRjaGVyOjpkZXRlcm1pbmVEaXNw
YXRjaEJlaGF2aW9yKEV2ZW50KiBldmVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCkKIHsKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShWSURFTykKICAgICAvLyBWaWRlby1v
bmx5IGZ1bGwgc2NyZWVuIGlzIGEgbW9kZSB3aGVyZSB3ZSB1c2UgdGhlIHNoYWRvdyBET00gYXMg
YW4gaW1wbGVtZW50YXRpb24KQEAgLTM3Miw3ICszNzQsNyBAQCBFdmVudERpc3BhdGNoQmVoYXZp
b3IgRXZlbnREaXNwYXRjaGVyOjpkZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKEV2ZW50KiBldmVu
dCwgTgogICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbV9ub2RlLT5kb2N1bWVudCgpLT53ZWJr
aXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkgewogICAgICAgICAvLyBGSVhNRTogV2UgYXNz
dW1lIHRoYXQgaWYgdGhlIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaXMgYSBtZWRpYSBlbGVtZW50IHRo
YXQgaXQncwogICAgICAgICAvLyB0aGUgdmlkZW8tb25seSBmdWxsIHNjcmVlbi4gQm90aCBoZXJl
IGFuZCBlbHNld2hlcmUuIEJ1dCB0aGF0IGlzIHByb2JhYmx5IHdyb25nLgotICAgICAgICBpZiAo
ZWxlbWVudC0+aXNNZWRpYUVsZW1lbnQoKSAmJiBzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPnNo
YWRvd0hvc3QoKSA9PSBlbGVtZW50KQorICAgICAgICBpZiAoZWxlbWVudC0+aXNNZWRpYUVsZW1l
bnQoKSAmJiBzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPmhvc3QoKSA9PSBlbGVtZW50KQogICAg
ICAgICAgICAgcmV0dXJuIFN0YXlJbnNpZGVTaGFkb3dET007CiAgICAgfQogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAppbmRleCA4NWFlZmM0OTMwNDNkNTE3ZWM5NzczNGU2
MjE4YWFkODFkMTc5MDY3Li5iMDcyYTdmN2JjZmUzYTYzZWUzNTAwNzUwN2VkOTc0NmQ4NjhlMWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC00MCw2ICs0MCw3IEBAIGNs
YXNzIE5vZGU7CiBjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybU1v
dXNlRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CitjbGFzcyBTaGFkb3dSb290Owog
CiBlbnVtIEV2ZW50RGlzcGF0Y2hCZWhhdmlvciB7CiAgICAgUmV0YXJnZXRFdmVudCwKQEAgLTYx
LDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBFdmVudERpc3BhdGNoZXIoTm9kZSopOwogCiAgICAg
UGFzc1JlZlB0cjxFdmVudFRhcmdldD4gYWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQ
dHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0
QW5jZXN0b3JzKTsKLSAgICBFdmVudERpc3BhdGNoQmVoYXZpb3IgZGV0ZXJtaW5lRGlzcGF0Y2hC
ZWhhdmlvcihFdmVudCosIE5vZGUqIHNoYWRvd1Jvb3QpOworICAgIEV2ZW50RGlzcGF0Y2hCZWhh
dmlvciBkZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKEV2ZW50KiwgU2hhZG93Um9vdCopOwogICAg
IHZvaWQgZW5zdXJlRXZlbnRBbmNlc3RvcnMoRXZlbnQqKTsKICAgICBjb25zdCBFdmVudENvbnRl
eHQqIHRvcEV2ZW50Q29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZThlYTkzMjBiOGM4
OGNiZDg0NTA2NmIzYTE1NmM0YWZlMmRhYmNmZi4uMzYxNmUzMDM4ZjI1ZmY2MGMzYTRjNGQ3NzA2
ODBlNDM5ZGUwYTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDk3LDE3ICs0OTcsNiBAQCB2b2lk
IE5vZGU6OmNsZWFyUmFyZURhdGEoKQogICAgIGNsZWFyRmxhZyhIYXNSYXJlRGF0YUZsYWcpOwog
fQogCi1FbGVtZW50KiBOb2RlOjpzaGFkb3dIb3N0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdG9F
bGVtZW50KGlzU2hhZG93Um9vdCgpID8gcGFyZW50KCkgOiAwKTsKLX0KLQotdm9pZCBOb2RlOjpz
ZXRTaGFkb3dIb3N0KEVsZW1lbnQqIGhvc3QpCi17Ci0gICAgQVNTRVJUKCFwYXJlbnROb2RlKCkg
JiYgaXNTaGFkb3dSb290KCkpOwotICAgIHNldFBhcmVudChob3N0KTsKLX0KLQogTm9kZSogTm9k
ZTo6dG9Ob2RlKCkKIHsKICAgICByZXR1cm4gdGhpczsKQEAgLTE1NTIsNyArMTU0MSw3IEBAIEVs
ZW1lbnQqIE5vZGU6OnBhcmVudE9ySG9zdEVsZW1lbnQoKSBjb25zdAogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmIChwYXJlbnQtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gcGFy
ZW50LT5zaGFkb3dIb3N0KCk7CisgICAgICAgIHJldHVybiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+
aG9zdCgpOwogCiAgICAgaWYgKCFwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAppbmRleCA5ZDM0Yjk3MTdjYTlmMzhhYzVmYzQxMjYxNmM2ZGJmM2Nk
ODdiMzYxLi4zMTk4NWYwZWVlM2U1OTYzMzgyNzNjYTdhZmQ3ZDI2NmRiYzZkYjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAgICAgLy8gTm9kZSdzIHBhcmVudCwg
c2hhZG93IHRyZWUgaG9zdC4KICAgICBDb250YWluZXJOb2RlKiBwYXJlbnRPckhvc3ROb2RlKCkg
Y29uc3Q7CiAgICAgRWxlbWVudCogcGFyZW50T3JIb3N0RWxlbWVudCgpIGNvbnN0OworICAgIHZv
aWQgc2V0UGFyZW50T3JIb3N0Tm9kZShDb250YWluZXJOb2RlKik7CiAgICAgTm9kZSogaGlnaGVz
dEFuY2VzdG9yKCkgY29uc3Q7CiAKICAgICAvLyBVc2Ugd2hlbiBpdCdzIGd1YXJhbnRlZWQgdG8g
dGhhdCBzaGFkb3dIb3N0IGlzIDAuCkBAIC0yMzYsOSArMjM3LDYgQEAgcHVibGljOgogICAgIC8v
IFJldHVybnMgdGhlIHBhcmVudCBub2RlLCBidXQgMCBpZiB0aGUgcGFyZW50IG5vZGUgaXMgYSBT
aGFkb3dSb290LgogICAgIENvbnRhaW5lck5vZGUqIG5vblNoYWRvd0JvdW5kYXJ5UGFyZW50Tm9k
ZSgpIGNvbnN0OwogCi0gICAgRWxlbWVudCogc2hhZG93SG9zdCgpIGNvbnN0OwotICAgIHZvaWQg
c2V0U2hhZG93SG9zdChFbGVtZW50Kik7Ci0KICAgICBib29sIHNlbGZPckFuY2VzdG9ySGFzRGly
QXV0b0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoU2VsZk9yQW5jZXN0b3JIYXNE
aXJBdXRvRmxhZyk7IH0KICAgICB2b2lkIHNldFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJp
YnV0ZShib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9G
bGFnKTsgfQogCkBAIC04MzIsNiArODMwLDExIEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2Rl
OjpwYXJlbnROb2RlKCkgY29uc3QKICAgICByZXR1cm4gZ2V0RmxhZyhJc1NoYWRvd1Jvb3RGbGFn
KSA/IDAgOiBwYXJlbnQoKTsKIH0KIAoraW5saW5lIHZvaWQgTm9kZTo6c2V0UGFyZW50T3JIb3N0
Tm9kZShDb250YWluZXJOb2RlKiBwYXJlbnQpCit7CisgICAgc2V0UGFyZW50KHBhcmVudCk7Cit9
CisKIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlOjpwYXJlbnRPckhvc3ROb2RlKCkgY29uc3QK
IHsKICAgICByZXR1cm4gcGFyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCBjNjc5YmM4YzQxOTE2MWQ0NDNiZTBlYzIyMmFkMjdmMWFiODJi
M2JmLi5jYmFiYTQ4MzhlMjBiNzllZmU0ODI0ZTc2YjRkOGI1NzM4NWQ1NGJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAK
ICAgICBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+
aXNZb3VuZ2VzdCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdTaGFkb3dDaGlsZDsK
LSAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQtPnNoYWRv
d0hvc3QoKTsKKyAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSB0b1No
YWRvd1Jvb3QocGFyZW50KS0+aG9zdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBiMmU3ZjM3NWE1NjE1ODk0ZTdiZmU3ZjQyNDM2N2ZiMjcw
NWRjYmNjLi4xYzM0NjY5MTIwMGE4ZWNjZDc4MDllZmEzZjg3YjBhNmIzOTlkY2QyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgU2hhZG93Um9vdF9o
CiAjZGVmaW5lIFNoYWRvd1Jvb3RfaAogCisjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKQEAgLTY4LDcgKzY5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZvaWQgc2V0QXBwbHlB
dXRob3JTdHlsZXMoYm9vbCk7CiAKLSAgICBFbGVtZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4g
c2hhZG93SG9zdCgpOyB9CisgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0OworICAgIHZvaWQgc2V0
SG9zdChFbGVtZW50Kik7CiAgICAgRWxlbWVudFNoYWRvdyogb3duZXIoKSBjb25zdDsKIAogICAg
IFN0cmluZyBpbm5lckhUTUwoKSBjb25zdDsKQEAgLTEwNiw2ICsxMDgsMTYgQEAgcHJpdmF0ZToK
ICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87CiB9OwogCitp
bmxpbmUgRWxlbWVudCogU2hhZG93Um9vdDo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRv
RWxlbWVudChwYXJlbnRPckhvc3ROb2RlKCkpOworfQorCitpbmxpbmUgdm9pZCBTaGFkb3dSb290
OjpzZXRIb3N0KEVsZW1lbnQqIGhvc3QpCit7CisgICAgc2V0UGFyZW50T3JIb3N0Tm9kZShob3N0
KTsKK30KKwogaW5saW5lIEluc2VydGlvblBvaW50KiBTaGFkb3dSb290Ojphc3NpZ25lZFRvKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwCmluZGV4IDhiM2QxNWU4NTliYmRkZWQzOWZlYjFjZWI4YTQwZGQwNzdl
NTBiOTQuLmUwZDg2YTViN2I3M2ZiMjgxNjBkMjg1NTMyYWY3Mzc5MGU3ODEwZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KQEAgLTIwOCw3ICsyMDksNyBAQCBOb2RlKiBUcmVlU2NvcGU6OmZvY3VzZWRO
b2RlKCkKICAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IG5vZGUtPnRyZWVTY29wZSgpOwogCiAg
ICAgd2hpbGUgKHRyZWVTY29wZSAhPSB0aGlzICYmIHRyZWVTY29wZSAhPSBkb2N1bWVudCkgewot
ICAgICAgICBub2RlID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5zaGFkb3dIb3N0KCk7CisgICAg
ICAgIG5vZGUgPSB0b1NoYWRvd1Jvb3QodHJlZVNjb3BlLT5yb290Tm9kZSgpKS0+aG9zdCgpOwog
ICAgICAgICB0cmVlU2NvcGUgPSBub2RlLT50cmVlU2NvcGUoKTsKICAgICB9CiAgICAgaWYgKHRo
aXMgIT0gdHJlZVNjb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudFNlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDM4ZDQ0OWM3YjM3NTljMTM3NmMwZTM2ZWNhM2M2
MTViNDYxZWMwNTEuLmYxMmM1OTkyNWY3YzkzMjRmNmZlZmNiZWIyMjM1ODk1N2RmMjExZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhOb2RlKiBub2RlKSBjb25zdAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgQVNTRVJUKG5vZGUtPnBhcmVudE5vZGUoKSA9PSBtX2luc2VydGlvblBvaW50LT5z
aGFkb3dSb290KCktPnNoYWRvd0hvc3QoKSk7CisgICAgQVNTRVJUKG5vZGUtPnBhcmVudE5vZGUo
KSA9PSBtX2luc2VydGlvblBvaW50LT5zaGFkb3dSb290KCktPmhvc3QoKSk7CiAKICAgICBpZiAo
bV9pbnNlcnRpb25Qb2ludC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9pbnNlcnRpb25Qb2ludC0+
c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMTM1NDQ2Y2Y0MDg4NTc2ZjQxNTllZTQ5YWVlODQ4
NjNiMzIyMTNmMy4uZDJkYWE0Yjc2NDdlYWI3NTg3NDQ5MWFkNTY5MzQ4NGVhYzFmZWM0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2
ZW50LmgiCkBAIC0yNzYsNyArMjc3LDcgQEAgc3RhdGljIEhUTUxJbnB1dEVsZW1lbnQqIGFzRmls
ZUlucHV0KE5vZGUqIG5vZGUpCiAKICAgICAvLyBJZiB0aGlzIGlzIGEgYnV0dG9uIGluc2lkZSBv
ZiB0aGUgYSBmaWxlIGlucHV0LCBtb3ZlIHVwIHRvIHRoZSBmaWxlIGlucHV0LgogICAgIGlmIChp
bnB1dEVsZW1lbnQgJiYgaW5wdXRFbGVtZW50LT5pc1RleHRCdXR0b24oKSAmJiBpbnB1dEVsZW1l
bnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgaW5w
dXRFbGVtZW50ID0gaW5wdXRFbGVtZW50LT50cmVlU2NvcGUoKS0+cm9vdE5vZGUoKS0+c2hhZG93
SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOworICAgICAgICBpbnB1dEVsZW1lbnQgPSB0b1NoYWRv
d1Jvb3QoaW5wdXRFbGVtZW50LT50cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSktPmhvc3QoKS0+dG9J
bnB1dEVsZW1lbnQoKTsKIAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQgJiYgaW5wdXRFbGVtZW50
LT5pc0ZpbGVVcGxvYWQoKSA/IGlucHV0RWxlbWVudCA6IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggYjQyMjFiMGI0ZWY5N2IwOTdjZjg4ZGY3N2I2OGU5NWQ2Mjli
NDMyOS4uYTNhYjNmNGI5ZmM0OTk0YTg3MjU5MjVkZmZiYmVmOTUyMWQ1MTEyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTU5OSw3ICsxNTk5LDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQpCiAgICAgICAgIC8vIElmIGEgbW91c2UgZXZlbnQgaGFuZGxlciBjaGFuZ2Vz
IHRoZSBpbnB1dCBlbGVtZW50IHR5cGUgdG8gb25lIHRoYXQgaGFzIGEgd2lkZ2V0IGFzc29jaWF0
ZWQsCiAgICAgICAgIC8vIHdlJ2QgbGlrZSB0byBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJl
c3NFdmVudCB0byBwYXNzIHRoZSBldmVudCB0byB0aGUgd2lkZ2V0IGFuZCB0aHVzIHRoZQogICAg
ICAgICAvLyBldmVudCB0YXJnZXQgbm9kZSBjYW4ndCBzdGlsbCBiZSB0aGUgc2hhZG93IG5vZGUu
Ci0gICAgICAgIGlmICh0YXJnZXROb2RlKG1ldiktPmlzU2hhZG93Um9vdCgpICYmIHRhcmdldE5v
ZGUobWV2KS0+c2hhZG93SG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgeworICAgICAgICBp
ZiAodGFyZ2V0Tm9kZShtZXYpLT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QodGFyZ2V0
Tm9kZShtZXYpKS0+aG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAgICAgICAg
SGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0
UmVxdWVzdDo6QWN0aXZlKTsKICAgICAgICAgICAgIG1ldiA9IG1fZnJhbWUtPmRvY3VtZW50KCkt
PnByZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIGRvY3VtZW50UG9pbnQsIG1vdXNlRXZlbnQpOwog
ICAgICAgICB9CkBAIC0yMDkyLDExICsyMDkyLDExIEBAIHN0YXRpYyBpbmxpbmUgU1ZHRWxlbWVu
dEluc3RhbmNlKiBpbnN0YW5jZUFzc29jaWF0ZWRXaXRoU2hhZG93VHJlZUVsZW1lbnQoTm9kZSoK
ICAgICBpZiAoIXJlZmVyZW5jZU5vZGUgfHwgIXJlZmVyZW5jZU5vZGUtPmlzU1ZHRWxlbWVudCgp
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE5vZGUqIHNoYWRvd1RyZWVFbGVtZW50ID0gcmVm
ZXJlbmNlTm9kZS0+c2hhZG93Um9vdCgpOwotICAgIGlmICghc2hhZG93VHJlZUVsZW1lbnQpCisg
ICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHJlZmVyZW5jZU5vZGUtPnNoYWRvd1Jvb3QoKTsK
KyAgICBpZiAoIXNoYWRvd1Jvb3QpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgRWxlbWVudCog
c2hhZG93VHJlZVBhcmVudEVsZW1lbnQgPSBzaGFkb3dUcmVlRWxlbWVudC0+c2hhZG93SG9zdCgp
OworICAgIEVsZW1lbnQqIHNoYWRvd1RyZWVQYXJlbnRFbGVtZW50ID0gc2hhZG93Um9vdC0+aG9z
dCgpOwogICAgIGlmICghc2hhZG93VHJlZVBhcmVudEVsZW1lbnQpCiAgICAgICAgIHJldHVybiAw
OwogCkBAIC0yMjUwLDcgKzIyNTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZQogICAgICAg
ICAgICAgICAgIC8vIGZvY3VzZWQgaWYgdGhlIHVzZXIgZG9lcyBhIG1vdXNldXAgb3ZlciBpdCwg
aG93ZXZlciwgYmVjYXVzZSB0aGUgbW91c2V1cAogICAgICAgICAgICAgICAgIC8vIHdpbGwgc2V0
IGEgc2VsZWN0aW9uIGluc2lkZSBpdCwgd2hpY2ggd2lsbCBjYWxsIHNldEZvY3VzZU5vZGVJZk5l
ZWRlZC4KICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgICAg
ICAgICBOb2RlKiBuID0gbm9kZS0+aXNTaGFkb3dSb290KCkgPyBub2RlLT5zaGFkb3dIb3N0KCkg
OiBub2RlOworICAgICAgICAgICAgICAgIE5vZGUqIG4gPSBub2RlLT5pc1NoYWRvd1Jvb3QoKSA/
IHRvU2hhZG93Um9vdChub2RlKS0+aG9zdCgpIDogbm9kZTsKICAgICAgICAgICAgICAgICBpZiAo
bV9mcmFtZS0+c2VsZWN0aW9uKCktPmlzUmFuZ2UoKQogICAgICAgICAgICAgICAgICAgICAmJiBt
X2ZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS0+Y29tcGFyZU5vZGUobiwg
ZWMpID09IFJhbmdlOjpOT0RFX0lOU0lERQogICAgICAgICAgICAgICAgICAgICAmJiBuLT5pc0Rl
c2NlbmRhbnRPZihtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCAzN2U5N2RmNmRlYjk1ZGM2ZTM5ZDA3
ODE3NWUyMDI0MTU1Mjg3YjRiLi41YWI2ZGEzN2U3YjgxZTgwNzExNDlhOGRmNDNhOWY2M2JlOThj
ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0xMTAsNyAr
MTEwLDcgQEAgRWxlbWVudCogRm9jdXNTY29wZTo6b3duZXIoKSBjb25zdAogewogICAgIE5vZGUq
IHJvb3QgPSByb290Tm9kZSgpOwogICAgIGlmIChyb290LT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAg
ICAgcmV0dXJuIHJvb3QtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgcmV0dXJuIHRvU2hhZG93Um9v
dChyb290KS0+aG9zdCgpOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSByb290LT5kb2N1bWVudCgp
LT5mcmFtZSgpKQogICAgICAgICByZXR1cm4gZnJhbWUtPm93bmVyRWxlbWVudCgpOwogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYzg2
M2MzZGZjY2M3YTFhOTIxNjU5ZjZjOWZhMzRhN2I1OTIzODk3My4uMDE2MzA4YjNkNWI5ZGE5OTdm
M2YxMjE2YjAzZmQyMDU2NmIzYzkxOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTU3MDEsNyArNTcwMiw3IEBAIGJv
b2wgUmVuZGVyQmxvY2s6Omhhc0xpbmVJZkVtcHR5KCkgY29uc3QKICAgICBpZiAobm9kZSgpLT5p
c1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAg
aWYgKG5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgKG5vZGUoKS0+c2hhZG93SG9zdCgpLT5oYXNU
YWdOYW1lKGlucHV0VGFnKSkpCisgICAgaWYgKG5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgdG9T
aGFkb3dSb290KG5vZGUoKSktPmhvc3QoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZWRFbGVtZW50LmNwcAppbmRleCBjMTcxZmZhODZkNDQzNjVhZDUyMzVlOTM3Y2M5MTY2
ZDU1Nzc0MzgyLi5jMGNkMWU4YzEwMTgyMTFkYzJmNDliMGQ0NTIzN2JjMzhiYTZmZjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC05MCw3ICs5MSw3IEBAIFN0cmluZyBTVkdTdHls
ZWRFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAKICAgICAvLyBXYWxrIHVwIHRoZSB0cmVlLCB0byBm
aW5kIG91dCB3aGV0aGVyIHdlJ3JlIGluc2lkZSBhIDx1c2U+IHNoYWRvdyB0cmVlLCB0byBmaW5k
IHRoZSByaWdodCB0aXRsZS4KICAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICBF
bGVtZW50KiBzaGFkb3dIb3N0RWxlbWVudCA9IHRyZWVTY29wZSgpLT5yb290Tm9kZSgpLT5zaGFk
b3dIb3N0KCk7CisgICAgICAgIEVsZW1lbnQqIHNoYWRvd0hvc3RFbGVtZW50ID0gdG9TaGFkb3dS
b290KHRyZWVTY29wZSgpLT5yb290Tm9kZSgpKS0+aG9zdCgpOwogICAgICAgICAvLyBBdCB0aGlz
IHRpbWUsIFNWRyBub2RlcyBhcmUgbm90IGFsbG93ZWQgaW4gbm9uLTx1c2U+IHNoYWRvdyB0cmVl
cywgc28gYW55IHNoYWRvdyByb290IHdlIGRvCiAgICAgICAgIC8vIGhhdmUgc2hvdWxkIGJlIGEg
dXNlLiBUaGUgYXNzZXJ0IGFuZCBmb2xsb3dpbmcgdGVzdCBpcyBoZXJlIHRvIGNhdGNoIGZ1dHVy
ZSBzaGFkb3cgRE9NIGNoYW5nZXMKICAgICAgICAgLy8gdGhhdCBkbyBlbmFibGUgU1ZHIGluIGEg
c2hhZG93IHRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCA2Yjg1
OGYzMTdjMDU0NzVkN2YzM2QyMWUzYjMzNGQ3ZjRiNTg4Mjk5Li5kZWMzNjQyYzAxYTY4ZWY0Yjkx
ODJiZDY3Zjg3OGVkZGYzMmY4MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5j
cHAKQEAgLTE0Miw5ICsxNDIsOSBAQCBSZW5kZXJPYmplY3QqIFNWR1NoYWRvd1RleHQ6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiB2b2lkIFNWR1No
YWRvd1RleHQ6OndpbGxSZWNhbGNUZXh0U3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogewotICAg
IGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcGFyZW50Tm9kZSgpLT5zaGFkb3dIb3N0KCkpIHsK
KyAgICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHBhcmVudE5vZGUoKS0+aXNTaGFkb3dSb290
KCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5kZXJlcigpLT5z
ZXRTdHlsZShwYXJlbnROb2RlKCktPnNoYWRvd0hvc3QoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7
CisgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZSh0b1NoYWRvd1Jvb3QocGFyZW50Tm9k
ZSgpKS0+aG9zdCgpLT5yZW5kZXJlcigpLT5zdHlsZSgpKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142625</attachid>
            <date>2012-05-17 21:25:12 -0700</date>
            <delta_ts>2012-05-20 19:41:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86585-20120518132511.patch</filename>
            <type>text/plain</type>
            <size>25009</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUwMzQyNmRlZmQwZTQx
ZTliY2RkOWE3ZGQ4OTc2YTBkNDVkNDE5YS4uYjhmNmU4MTdlMWVjNjUzOWVlNzhhODM1OGYyOGI5
MzgyN2U1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEyLTA1LTE3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVmYWN0b3Jp
bmddIE5vZGU6OnNoYWRvd0hvc3QoKSBhbmQgTm9kZTo6c2V0U2hhZG93SG9zdCgpIGNhbiBiZSBt
b3ZlZCB0byBTaGFkb3dSb290LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODY1ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTaW5jZSBOb2RlOjpzaGFkb3dIb3N0KCkgYW5kIE5vZGU6OnNldFNoYWRvd0hv
c3QoKSBhcmUgdmFsaWQgb25seSBpZiBOb2RlIGlzIFNoYWRvd1Jvb3QsCisgICAgICAgIHRoZXkg
c2hvdWxkIGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgSG93ZXZlciwgTm9kZTo6
c2V0UGFyZW50IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBTaGFkb3dSb290LCB3ZSBhZGQgTm9kZTo6
c2V0UGFyZW50T3JIb3N0Tm9kZQorICAgICAgICB0byBjYWxsIGl0IGFzIE5vZGU6OnBhcmVudE9y
SG9zdE5vZGUoKSBjYWxscyBOb2RlOjpwYXJlbnQoKS4gTm9kZTo6c2V0UGFyZW50KCkgaXMgbm93
IHByaXZhdGUuCisgICAgICAgIFdlIGFsc28gYWRkIFNWR0VsZW1lbnRJbnN0YW5jZTo6c2V0UGFy
ZW50T3JIb3N0Tm9kZSgpIHRvIHNoYXJlIENvbnRhaW5lck5vZGVBbGdvcml0aG0uCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBkb20v
QXR0ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdHRyOjpjcmVhdGVUZXh0Q2hpbGQpOgorICAg
ICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZUNvbW1vbik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJO
b2RlOjpyZW1vdmVCZXR3ZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJl
bW92ZUNoaWxkcmVuKToKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZENoaWxkVG9Db250YWluZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZTo6YWRkQ2hpbGROb2Rlc1RvRGVsZXRpb25RdWV1ZSk6CisgICAgICAgICog
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGFkb3dS
b290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVtb3ZlQWxsU2hhZG93Um9vdHMpOgor
ICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZl
bnRUYXJnZXRSZXNwZWN0aW5nU1ZHVGFyZ2V0UnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnREaXNwYXRjaGVyOjplbnN1cmVFdmVudEFuY2VzdG9ycyk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudERpc3BhdGNoZXI6OmRldGVybWluZURpc3BhdGNoQmVoYXZpb3IpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRXZlbnRE
aXNwYXRjaGVyKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpwYXJlbnRPckhvc3RFbGVtZW50KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAg
ICAoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRQYXJlbnRPckhvc3ROb2RlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dSb290Ojpob3N0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdDo6c2V0SG9zdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmZvY3VzZWROb2RlKToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc0ZpbGVJbnB1dCk6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aW5zdGFuY2VBc3NvY2lhdGVkV2l0
aFNoYWRvd1RyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hNb3VzZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb2N1c1Njb3BlOjpvd25lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpoYXNMaW5l
SWZFbXB0eSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRWxlbWVudEluc3RhbmNlOjpzZXRQYXJlbnRPckhvc3ROb2RlKToKKyAgICAg
ICAgKFNWR0VsZW1lbnRJbnN0YW5jZSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6dGl0bGUpOgorICAgICAg
ICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTaGFkb3dU
ZXh0Ojp3aWxsUmVjYWxjVGV4dFN0eWxlKToKKwogMjAxMi0wNS0xNyAgU3VkYXJzYW5hIE5hZ2lu
ZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBNZW1v
cnkgbGVhayBpbiBOZXR3b3JrSW5mb0NsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IDgwN2Y3ZjRl
YzdhNWM5MDEwNjliNWVkODUyMzUwMTA3NWRiOGMxODcuLjM3MThlY2U2MmVjYjQ3ZDA2OTAzYmNl
ZjI1MDJmYTVmMzAxZTA2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9p
ZCBBdHRyOjpjcmVhdGVUZXh0Q2hpbGQoKQogCiAgICAgICAgIC8vIFRoaXMgZG9lcyBldmVyeXRo
aW5nIGFwcGVuZENoaWxkKCkgd291bGQgZG8gaW4gdGhpcyBzaXR1YXRpb24gKGFzc3VtaW5nIG1f
aWdub3JlQ2hpbGRyZW5DaGFuZ2VkIHdhcyBzZXQpLAogICAgICAgICAvLyBidXQgbXVjaCBtb3Jl
IGVmZmljaWVudGx5LgotICAgICAgICB0ZXh0Tm9kZS0+c2V0UGFyZW50KHRoaXMpOworICAgICAg
ICB0ZXh0Tm9kZS0+c2V0UGFyZW50T3JIb3N0Tm9kZSh0aGlzKTsKICAgICAgICAgc2V0Rmlyc3RD
aGlsZCh0ZXh0Tm9kZS5nZXQoKSk7CiAgICAgICAgIHNldExhc3RDaGlsZCh0ZXh0Tm9kZS5nZXQo
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDMzYWQ4MTdj
MGFlYjBjNjEyZjE4M2MzY2NjOGYxZDQ0NDMxMjg2NTkuLjZhNmM0ODhiZmNlY2Q4YWU3Y2IzYWIy
NTM1YjQ5YzdkOWNmNmUwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAg
LTE4Niw2ICsxODYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZUNvbW1vbihO
b2RlKiBuZXh0Q2hpbGQsIE5vZGUqIG5ld0NoaWxkKQogICAgIEFTU0VSVCghbmV3Q2hpbGQtPnBh
cmVudE5vZGUoKSk7IC8vIFVzZSBpbnNlcnRCZWZvcmUgaWYgeW91IG5lZWQgdG8gaGFuZGxlIHJl
cGFyZW50aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KICAgICBBU1NFUlQoIW5l
d0NoaWxkLT5uZXh0U2libGluZygpKTsKICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wcmV2aW91c1Np
YmxpbmcoKSk7CisgICAgQVNTRVJUKCFuZXdDaGlsZC0+aXNTaGFkb3dSb290KCkpOwogCiAgICAg
Zm9yYmlkRXZlbnREaXNwYXRjaCgpOwogICAgIE5vZGUqIHByZXYgPSBuZXh0Q2hpbGQtPnByZXZp
b3VzU2libGluZygpOwpAQCAtMTk5LDcgKzIwMCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6aW5z
ZXJ0QmVmb3JlQ29tbW9uKE5vZGUqIG5leHRDaGlsZCwgTm9kZSogbmV3Q2hpbGQpCiAgICAgICAg
IEFTU0VSVChtX2ZpcnN0Q2hpbGQgPT0gbmV4dENoaWxkKTsKICAgICAgICAgbV9maXJzdENoaWxk
ID0gbmV3Q2hpbGQ7CiAgICAgfQotICAgIG5ld0NoaWxkLT5zZXRQYXJlbnQodGhpcyk7CisgICAg
bmV3Q2hpbGQtPnNldFBhcmVudE9ySG9zdE5vZGUodGhpcyk7CiAgICAgbmV3Q2hpbGQtPnNldFBy
ZXZpb3VzU2libGluZyhwcmV2KTsKICAgICBuZXdDaGlsZC0+c2V0TmV4dFNpYmxpbmcobmV4dENo
aWxkKTsKICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKQEAgLTQyOCw3ICs0MjksNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4oTm9kZSogcHJldmlvdXNDaGlsZCwgTm9kZSog
bmV4dENoaWxkLCBOb2RlKiBvbAogCiAgICAgb2xkQ2hpbGQtPnNldFByZXZpb3VzU2libGluZygw
KTsKICAgICBvbGRDaGlsZC0+c2V0TmV4dFNpYmxpbmcoMCk7Ci0gICAgb2xkQ2hpbGQtPnNldFBh
cmVudCgwKTsKKyAgICBvbGRDaGlsZC0+c2V0UGFyZW50T3JIb3N0Tm9kZSgwKTsKIAogICAgIGRv
Y3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkQ2hpbGQpOwogCkBAIC00ODEsNyArNDgyLDcgQEAg
dm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAgICAgIC8vIHRoaXMgZGlz
Y3JlcGFuY3kgYmV0d2VlbiByZW1vdmVDaGlsZCgpIGFuZCBpdHMgb3B0aW1pemVkIHZlcnNpb24g
cmVtb3ZlQ2hpbGRyZW4oKS4KICAgICAgICAgbi0+c2V0UHJldmlvdXNTaWJsaW5nKDApOwogICAg
ICAgICBuLT5zZXROZXh0U2libGluZygwKTsKLSAgICAgICAgbi0+c2V0UGFyZW50KDApOworICAg
ICAgICBuLT5zZXRQYXJlbnRPckhvc3ROb2RlKDApOwogICAgICAgICBkb2N1bWVudCgpLT5hZG9w
dElmTmVlZGVkKG4uZ2V0KCkpOwogCiAgICAgICAgIG1fZmlyc3RDaGlsZCA9IG5leHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oCmluZGV4IGEzY2U4OGU2
OThjNTdmMjk5ZThlOTIwZjFmZTcxYTQ0NmI0Y2Q3ZGQuLjQyM2MwYzhlZjM5NDI2YzlmMDZkYjg1
YjMxMDcwMDNjN2JiOWVlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlQWxnb3JpdGhtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
QWxnb3JpdGhtcy5oCkBAIC0xMDUsNyArMTA1LDcgQEAgaW5saW5lIHZvaWQgcmVtb3ZlQWxsQ2hp
bGRyZW5JbkNvbnRhaW5lcihHZW5lcmljTm9kZUNvbnRhaW5lciogY29udGFpbmVyKQogdGVtcGxh
dGU8Y2xhc3MgR2VuZXJpY05vZGUsIGNsYXNzIEdlbmVyaWNOb2RlQ29udGFpbmVyPgogaW5saW5l
IHZvaWQgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihHZW5lcmljTm9kZSogY2hpbGQsIEdlbmVyaWNO
b2RlQ29udGFpbmVyKiBjb250YWluZXIpCiB7Ci0gICAgY2hpbGQtPnNldFBhcmVudChjb250YWlu
ZXIpOworICAgIGNoaWxkLT5zZXRQYXJlbnRPckhvc3ROb2RlKGNvbnRhaW5lcik7CiAKICAgICBH
ZW5lcmljTm9kZSogbGFzdENoaWxkID0gY29udGFpbmVyLT5sYXN0Q2hpbGQoKTsKICAgICBpZiAo
bGFzdENoaWxkKSB7CkBAIC0xNjEsNyArMTYxLDcgQEAgbmFtZXNwYWNlIFByaXZhdGUgewogICAg
ICAgICAgICAgbmV4dCA9IG4tPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICBuLT5zZXRQcmV2
aW91c1NpYmxpbmcoMCk7CiAgICAgICAgICAgICBuLT5zZXROZXh0U2libGluZygwKTsKLSAgICAg
ICAgICAgIG4tPnNldFBhcmVudCgwKTsKKyAgICAgICAgICAgIG4tPnNldFBhcmVudE9ySG9zdE5v
ZGUoMCk7CiAKICAgICAgICAgICAgIGlmICghbi0+cmVmQ291bnQoKSkgewogI2lmbmRlZiBOREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAppbmRleCA2ZTEwNGFjNmE2OTYwZDVl
NzVkNGY3NzFiZDI3NzRjZGYzNTNhZmViLi5hMjg5YjllMDUwYjNkMDc2MGQyZDQxNDNjN2U1Mzg4
Mjk2NzM5NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC01Myw3ICs1
Myw3IEBAIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQs
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwCiAgICAgaWYgKCFzaGFkb3dSb290KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0KCkpIHsK
KyAgICBpZiAoc2hhZG93Um9vdC0+aG9zdCgpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JF
UVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNzQsNyArNzQsNyBA
QCB2b2lkIEVsZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogc2hhZG93SG9zdCwg
UGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaAogICAgIGlmICghdmFsaWRhdGVTaGFkb3dSb290KHNo
YWRvd0hvc3QtPmRvY3VtZW50KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVjKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdChzaGFkb3dIb3N0KTsKKyAgICBz
aGFkb3dSb290LT5zZXRIb3N0KHNoYWRvd0hvc3QpOwogICAgIENoaWxkTm9kZUluc2VydGlvbk5v
dGlmaWVyKHNoYWRvd0hvc3QpLm5vdGlmeShzaGFkb3dSb290LmdldCgpKTsKIAogICAgIGlmIChz
aGFkb3dIb3N0LT5hdHRhY2hlZCgpKSB7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgRWxlbWVudFNo
YWRvdzo6cmVtb3ZlQWxsU2hhZG93Um9vdHMoKQogICAgICAgICBpZiAob2xkUm9vdC0+YXR0YWNo
ZWQoKSkKICAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwogCi0gICAgICAgIG9sZFJvb3Qt
PnNldFNoYWRvd0hvc3QoMCk7CisgICAgICAgIG9sZFJvb3QtPnNldEhvc3QoMCk7CiAgICAgICAg
IG9sZFJvb3QtPnNldFByZXYoMCk7CiAgICAgICAgIG9sZFJvb3QtPnNldE5leHQoMCk7CiAgICAg
ICAgIHNoYWRvd0hvc3QtPmRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IGZjZGMwZTU4MzFlNjA3
MGFmOTY5MDE1MjA4MTY3NDUwNTFlNjViNjIuLjczZTQ4NjNlOWZiMDZkY2Y5NWRhMDFmNmE4NDRi
YWMzOTE2MDU2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRDb250ZXh0LmgiCiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgpAQCAtMTI1
LDcgKzEyNiw3IEBAIGlubGluZSBzdGF0aWMgRXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0UmVzcGVj
dGluZ1NWR1RhcmdldFJ1bGVzKE5vZGUqIHJlZmVyZW5jZU5vCiAKICAgICAvLyBTcGVjOiBUaGUg
ZXZlbnQgaGFuZGxpbmcgZm9yIHRoZSBub24tZXhwb3NlZCB0cmVlIHdvcmtzIGFzIGlmIHRoZSBy
ZWZlcmVuY2VkIGVsZW1lbnQgaGFkIGJlZW4gdGV4dHVhbGx5IGluY2x1ZGVkCiAgICAgLy8gYXMg
YSBkZWVwbHkgY2xvbmVkIGNoaWxkIG9mIHRoZSAndXNlJyBlbGVtZW50LCBleGNlcHQgdGhhdCBl
dmVudHMgYXJlIGRpc3BhdGNoZWQgdG8gdGhlIFNWR0VsZW1lbnRJbnN0YW5jZSBvYmplY3RzCi0g
ICAgRWxlbWVudCogc2hhZG93SG9zdEVsZW1lbnQgPSByZWZlcmVuY2VOb2RlLT50cmVlU2NvcGUo
KS0+cm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpOworICAgIEVsZW1lbnQqIHNoYWRvd0hvc3RFbGVt
ZW50ID0gdG9TaGFkb3dSb290KHJlZmVyZW5jZU5vZGUtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgp
KS0+aG9zdCgpOwogICAgIC8vIEF0IHRoaXMgdGltZSwgU1ZHIG5vZGVzIGFyZSBub3QgYWxsb3dl
ZCBpbiBub24tPHVzZT4gc2hhZG93IHRyZWVzLCBzbyBhbnkgc2hhZG93IHJvb3Qgd2UgZG8KICAg
ICAvLyBoYXZlIHNob3VsZCBiZSBhIHVzZS4gVGhlIGFzc2VydCBhbmQgZm9sbG93aW5nIHRlc3Qg
aXMgaGVyZSB0byBjYXRjaCBmdXR1cmUgc2hhZG93IERPTSBjaGFuZ2VzCiAgICAgLy8gdGhhdCBk
byBlbmFibGUgU1ZHIGluIGEgc2hhZG93IHRyZWUuCkBAIC0xNzYsNyArMTc3LDYgQEAgdm9pZCBF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soTm9kZSogbm9kZSwgUGFzc1Jl
ZlB0cjxFdmVudD4gdW5kZXIKICAgICBnTm9kZXNEaXNwYXRjaGluZ1NpbXVsYXRlZENsaWNrcy0+
cmVtb3ZlKG5vZGUpOwogfQogCi0KIHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGp1c3RSZWxhdGVk
VGFyZ2V0KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcHJwUmVsYXRlZFRh
cmdldCkKIHsKICAgICBpZiAoIXBycFJlbGF0ZWRUYXJnZXQpCkBAIC0yMTYsNyArMjE2LDcgQEAg
dm9pZCBFdmVudERpc3BhdGNoZXI6OmVuc3VyZUV2ZW50QW5jZXN0b3JzKEV2ZW50KiBldmVudCkK
ICAgICB0YXJnZXRTdGFjay5hcHBlbmQob3JpZ2luYWxUYXJnZXQpOwogICAgIHdoaWxlICh0cnVl
KSB7CiAgICAgICAgIGlmIChhbmNlc3RvcldhbGtlci5nZXQoKS0+aXNTaGFkb3dSb290KCkpIHsK
LSAgICAgICAgICAgIGlmIChkZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKGV2ZW50LCBhbmNlc3Rv
cldhbGtlci5nZXQoKSkgPT0gU3RheUluc2lkZVNoYWRvd0RPTSkKKyAgICAgICAgICAgIGlmIChk
ZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKGV2ZW50LCB0b1NoYWRvd1Jvb3QoYW5jZXN0b3JXYWxr
ZXIuZ2V0KCkpKSA9PSBTdGF5SW5zaWRlU2hhZG93RE9NKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIGFuY2VzdG9yV2Fsa2VyLnBhcmVudEluY2x1ZGluZ0luc2VydGlvblBv
aW50QW5kU2hhZG93Um9vdCgpOwogICAgICAgICAgICAgaWYgKCFhbmNlc3RvcldhbGtlci5nZXQo
KSkKQEAgLTM0Nyw3ICszNDcsNyBAQCBjb25zdCBFdmVudENvbnRleHQqIEV2ZW50RGlzcGF0Y2hl
cjo6dG9wRXZlbnRDb250ZXh0KCkKICAgICByZXR1cm4gbV9hbmNlc3RvcnMuaXNFbXB0eSgpID8g
MCA6ICZtX2FuY2VzdG9ycy5sYXN0KCk7CiB9CiAKLUV2ZW50RGlzcGF0Y2hCZWhhdmlvciBFdmVu
dERpc3BhdGNoZXI6OmRldGVybWluZURpc3BhdGNoQmVoYXZpb3IoRXZlbnQqIGV2ZW50LCBOb2Rl
KiBzaGFkb3dSb290KQorRXZlbnREaXNwYXRjaEJlaGF2aW9yIEV2ZW50RGlzcGF0Y2hlcjo6ZGV0
ZXJtaW5lRGlzcGF0Y2hCZWhhdmlvcihFdmVudCogZXZlbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jv
b3QpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU8pCiAgICAg
Ly8gVmlkZW8tb25seSBmdWxsIHNjcmVlbiBpcyBhIG1vZGUgd2hlcmUgd2UgdXNlIHRoZSBzaGFk
b3cgRE9NIGFzIGFuIGltcGxlbWVudGF0aW9uCkBAIC0zNTUsNyArMzU1LDcgQEAgRXZlbnREaXNw
YXRjaEJlaGF2aW9yIEV2ZW50RGlzcGF0Y2hlcjo6ZGV0ZXJtaW5lRGlzcGF0Y2hCZWhhdmlvcihF
dmVudCogZXZlbnQsIE4KICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG1fbm9kZS0+ZG9jdW1l
bnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFdlIGFzc3VtZSB0aGF0IGlmIHRoZSBmdWxsIHNjcmVlbiBlbGVtZW50IGlzIGEgbWVkaWEg
ZWxlbWVudCB0aGF0IGl0J3MKICAgICAgICAgLy8gdGhlIHZpZGVvLW9ubHkgZnVsbCBzY3JlZW4u
IEJvdGggaGVyZSBhbmQgZWxzZXdoZXJlLiBCdXQgdGhhdCBpcyBwcm9iYWJseSB3cm9uZy4KLSAg
ICAgICAgaWYgKGVsZW1lbnQtPmlzTWVkaWFFbGVtZW50KCkgJiYgc2hhZG93Um9vdCAmJiBzaGFk
b3dSb290LT5zaGFkb3dIb3N0KCkgPT0gZWxlbWVudCkKKyAgICAgICAgaWYgKGVsZW1lbnQtPmlz
TWVkaWFFbGVtZW50KCkgJiYgc2hhZG93Um9vdCAmJiBzaGFkb3dSb290LT5ob3N0KCkgPT0gZWxl
bWVudCkKICAgICAgICAgICAgIHJldHVybiBTdGF5SW5zaWRlU2hhZG93RE9NOwogICAgIH0KICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggNmY4OTFjMTM0MjdjNjZh
Y2ZlOGEzYTdkY2YxM2EzMWZhZDU2YjBjMi4uYTExMzAxZTVjYmJmYTc5ZDE5YzYzZDZjZDJjMDMx
MzIwNzY4MDQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaApAQCAtNDAsNyAr
NDAsNyBAQCBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwotY2xhc3MgUGxhdGZvcm1XaGVl
bEV2ZW50OworY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRyZWVTY29wZTsKIAogZW51bSBFdmVu
dERpc3BhdGNoQmVoYXZpb3IgewpAQCAtNzUsNyArNzUsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEV2ZW50RGlzcGF0Y2hlcihOb2RlKik7CiAKLSAgICBFdmVudERpc3BhdGNoQmVoYXZpb3Ig
ZGV0ZXJtaW5lRGlzcGF0Y2hCZWhhdmlvcihFdmVudCosIE5vZGUqIHNoYWRvd1Jvb3QpOworICAg
IEV2ZW50RGlzcGF0Y2hCZWhhdmlvciBkZXRlcm1pbmVEaXNwYXRjaEJlaGF2aW9yKEV2ZW50Kiwg
U2hhZG93Um9vdCopOworCiAgICAgdm9pZCBlbnN1cmVFdmVudEFuY2VzdG9ycyhFdmVudCopOwog
ICAgIGNvbnN0IEV2ZW50Q29udGV4dCogdG9wRXZlbnRDb250ZXh0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCAwZGFmMDc5YzE2YmEzMWJmMzQwMmY4MjU0MGQ4MDI4YjNlYTVmOTliLi45MTA4ZjM2
MzIzNTJmNmJlNDU5OGQzZTdiYWU3MTMzMWRmYWRkNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC00
OTcsMTcgKzQ5Nyw2IEBAIHZvaWQgTm9kZTo6Y2xlYXJSYXJlRGF0YSgpCiAgICAgY2xlYXJGbGFn
KEhhc1JhcmVEYXRhRmxhZyk7CiB9CiAKLUVsZW1lbnQqIE5vZGU6OnNoYWRvd0hvc3QoKSBjb25z
dAotewotICAgIHJldHVybiB0b0VsZW1lbnQoaXNTaGFkb3dSb290KCkgPyBwYXJlbnQoKSA6IDAp
OwotfQotCi12b2lkIE5vZGU6OnNldFNoYWRvd0hvc3QoRWxlbWVudCogaG9zdCkKLXsKLSAgICBB
U1NFUlQoIXBhcmVudE5vZGUoKSAmJiBpc1NoYWRvd1Jvb3QoKSk7Ci0gICAgc2V0UGFyZW50KGhv
c3QpOwotfQotCiBOb2RlKiBOb2RlOjp0b05vZGUoKQogewogICAgIHJldHVybiB0aGlzOwpAQCAt
MTU1Miw3ICsxNTQxLDcgQEAgRWxlbWVudCogTm9kZTo6cGFyZW50T3JIb3N0RWxlbWVudCgpIGNv
bnN0CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKHBhcmVudC0+aXNTaGFkb3dSb290KCkp
Ci0gICAgICAgIHJldHVybiBwYXJlbnQtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgcmV0dXJuIHRv
U2hhZG93Um9vdChwYXJlbnQpLT5ob3N0KCk7CiAKICAgICBpZiAoIXBhcmVudC0+aXNFbGVtZW50
Tm9kZSgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGQ1NmUyZmYyZTkwMjRh
MmY0NGZhM2E2YjllNDMyZjMwOTA3ODQyMTcuLjY3NDZiY2RhOTVmNWM4Zjk3N2I5ZTY1MDk2NmU1
ZDU5ODE0OWNkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjI5LDYgKzIyOSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBOb2RlJ3MgcGFyZW50LCBzaGFkb3cgdHJlZSBob3N0LgogICAgIENvbnRhaW5lck5vZGUq
IHBhcmVudE9ySG9zdE5vZGUoKSBjb25zdDsKICAgICBFbGVtZW50KiBwYXJlbnRPckhvc3RFbGVt
ZW50KCkgY29uc3Q7CisgICAgdm9pZCBzZXRQYXJlbnRPckhvc3ROb2RlKENvbnRhaW5lck5vZGUq
KTsKICAgICBOb2RlKiBoaWdoZXN0QW5jZXN0b3IoKSBjb25zdDsKIAogICAgIC8vIFVzZSB3aGVu
IGl0J3MgZ3VhcmFudGVlZCB0byB0aGF0IHNoYWRvd0hvc3QgaXMgMC4KQEAgLTIzNiw5ICsyMzcs
NiBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgcGFyZW50IG5vZGUsIGJ1dCAwIGlmIHRo
ZSBwYXJlbnQgbm9kZSBpcyBhIFNoYWRvd1Jvb3QuCiAgICAgQ29udGFpbmVyTm9kZSogbm9uU2hh
ZG93Qm91bmRhcnlQYXJlbnROb2RlKCkgY29uc3Q7CiAKLSAgICBFbGVtZW50KiBzaGFkb3dIb3N0
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTaGFkb3dIb3N0KEVsZW1lbnQqKTsKLQogICAgIGJvb2wg
c2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4gZ2V0Rmxh
ZyhTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnKTsgfQogICAgIHZvaWQgc2V0U2VsZk9yQW5j
ZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wgZmxhZykgeyBzZXRGbGFnKGZsYWcsIFNlbGZP
ckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcpOyB9CiAKQEAgLTc3Niw2ICs3NzQsNyBAQCBwcml2YXRl
OgogICAgIC8vIFRoaXMgbWV0aG9kIGlzIG1hZGUgcHJpdmF0ZSB0byBlbnN1cmUgYSBjb21waWxl
ciBlcnJvciBvbiBjYWxsIHNpdGVzIHRoYXQKICAgICAvLyBkb24ndCBmb2xsb3cgdGhpcyBydWxl
LgogICAgIHVzaW5nIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT46OnBhcmVudDsKKyAgICB1c2lu
ZyBUcmVlU2hhcmVkPENvbnRhaW5lck5vZGU+OjpzZXRQYXJlbnQ7CiAKICAgICB2b2lkIHRyYWNr
Rm9yRGVidWdnaW5nKCk7CiAKQEAgLTgzMyw2ICs4MzIsMTEgQEAgaW5saW5lIENvbnRhaW5lck5v
ZGUqIE5vZGU6OnBhcmVudE5vZGUoKSBjb25zdAogICAgIHJldHVybiBnZXRGbGFnKElzU2hhZG93
Um9vdEZsYWcpID8gMCA6IHBhcmVudCgpOwogfQogCitpbmxpbmUgdm9pZCBOb2RlOjpzZXRQYXJl
bnRPckhvc3ROb2RlKENvbnRhaW5lck5vZGUqIHBhcmVudCkKK3sKKyAgICBzZXRQYXJlbnQocGFy
ZW50KTsKK30KKwogaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE9ySG9zdE5vZGUo
KSBjb25zdAogewogICAgIHJldHVybiBwYXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGM2NzliYzhjNDE5MTYxZDQ0M2JlMGVjMjIyYWQy
N2YxYWI4MmIzYmYuLmNiYWJhNDgzOGUyMGI3OWVmZTQ4MjRlNzZiNGQ4YjU3Mzg1ZDU0YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSog
bm9kZSkKIAogICAgIGlmIChwYXJlbnQtPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChw
YXJlbnQpLT5pc1lvdW5nZXN0KCkpIHsKICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ1NoYWRv
d0NoaWxkOwotICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVu
dC0+c2hhZG93SG9zdCgpOworICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSA9IHRvU2hhZG93Um9vdChwYXJlbnQpLT5ob3N0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDIzODY3ZTczYjk5NDBhYTU5NTkwMzk0ODE5
M2RjYmExNWM0NDU5OGMuLjY2MjZmMzkwOTM2OTJmOTVlNzlkNmM4ZTYxOWQ0Y2Q2MjNlZWY5MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTaGFk
b3dSb290X2gKICNkZWZpbmUgU2hhZG93Um9vdF9oCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2Rl
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNjgsNyArNjksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdm9pZCBz
ZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKIAotICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7
IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KKyAgICBFbGVtZW50KiBob3N0KCkgY29uc3Q7CisgICAg
dm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsKICAgICBFbGVtZW50U2hhZG93KiBvd25lcigpIGNvbnN0
OwogCiAgICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OwpAQCAtMTA0LDYgKzEwNiwxNiBAQCBw
cml2YXRlOgogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsK
IH07CiAKK2lubGluZSBFbGVtZW50KiBTaGFkb3dSb290Ojpob3N0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdG9FbGVtZW50KHBhcmVudE9ySG9zdE5vZGUoKSk7Cit9CisKK2lubGluZSB2b2lkIFNo
YWRvd1Jvb3Q6OnNldEhvc3QoRWxlbWVudCogaG9zdCkKK3sKKyAgICBzZXRQYXJlbnRPckhvc3RO
b2RlKGhvc3QpOworfQorCiBpbmxpbmUgSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1Jvb3Q6OmFzc2ln
bmVkVG8oKSBjb25zdAogewogICAgIHJldHVybiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMDc0MDlmMDY2ZGExNmE5NDk5OTMyNWM3YzVl
NmJlZjMxMTlhMmQxYy4uOWU4NDc4OTliYTliMGQ1NzI5ZDZmNjJhMjUzNzk2NmYxMzg2NDIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUcmVlU2NvcGVB
ZG9wdGVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjIxLDcgKzIyMiw3IEBAIE5vZGUqIFRyZWVTY29wZTo6
Zm9jdXNlZE5vZGUoKQogICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gbm9kZS0+dHJlZVNjb3Bl
KCk7CiAKICAgICB3aGlsZSAodHJlZVNjb3BlICE9IHRoaXMgJiYgdHJlZVNjb3BlICE9IGRvY3Vt
ZW50KSB7Ci0gICAgICAgIG5vZGUgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPnNoYWRvd0hvc3Qo
KTsKKyAgICAgICAgbm9kZSA9IHRvU2hhZG93Um9vdCh0cmVlU2NvcGUtPnJvb3ROb2RlKCkpLT5o
b3N0KCk7CiAgICAgICAgIHRyZWVTY29wZSA9IG5vZGUtPnRyZWVTY29wZSgpOwogICAgIH0KICAg
ICBpZiAodGhpcyAhPSB0cmVlU2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggMzhkNDQ5YzdiMzc1OWMxMzc2YzBl
MzZlY2EzYzYxNWI0NjFlYzA1MS4uZjEyYzU5OTI1ZjdjOTMyNGY2ZmVmY2JlYjIyMzU4OTU3ZGYy
MTFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgpID09IG1faW5zZXJ0aW9u
UG9pbnQtPnNoYWRvd1Jvb3QoKS0+c2hhZG93SG9zdCgpKTsKKyAgICBBU1NFUlQobm9kZS0+cGFy
ZW50Tm9kZSgpID09IG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1Jvb3QoKS0+aG9zdCgpKTsKIAog
ICAgIGlmIChtX2luc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBtX2luc2VydGlv
blBvaW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCAxMzU0NDZjZjQwODg1NzZmNDE1OWVl
NDlhZWU4NDg2M2IzMjIxM2YzLi5kMmRhYTRiNzY0N2VhYjc1ODc0NDkxYWQ1NjkzNDg0ZWFjMWZl
YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNjMsNiArNjMs
NyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJUZXh0RXZlbnQuaCIKQEAgLTI3Niw3ICsyNzcsNyBAQCBzdGF0aWMgSFRNTElucHV0RWxlbWVu
dCogYXNGaWxlSW5wdXQoTm9kZSogbm9kZSkKIAogICAgIC8vIElmIHRoaXMgaXMgYSBidXR0b24g
aW5zaWRlIG9mIHRoZSBhIGZpbGUgaW5wdXQsIG1vdmUgdXAgdG8gdGhlIGZpbGUgaW5wdXQuCiAg
ICAgaWYgKGlucHV0RWxlbWVudCAmJiBpbnB1dEVsZW1lbnQtPmlzVGV4dEJ1dHRvbigpICYmIGlu
cHV0RWxlbWVudC0+dHJlZVNjb3BlKCktPnJvb3ROb2RlKCktPmlzU2hhZG93Um9vdCgpKQotICAg
ICAgICBpbnB1dEVsZW1lbnQgPSBpbnB1dEVsZW1lbnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgp
LT5zaGFkb3dIb3N0KCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgICAgIGlucHV0RWxlbWVudCA9
IHRvU2hhZG93Um9vdChpbnB1dEVsZW1lbnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgpKS0+aG9z
dCgpLT50b0lucHV0RWxlbWVudCgpOwogCiAgICAgcmV0dXJuIGlucHV0RWxlbWVudCAmJiBpbnB1
dEVsZW1lbnQtPmlzRmlsZVVwbG9hZCgpID8gaW5wdXRFbGVtZW50IDogMDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBiNDIyMWIwYjRlZjk3YjA5N2NmODhkZjc3YjY4
ZTk1ZDYyOWI0MzI5Li5hM2FiM2Y0YjlmYzQ5OTRhODcyNTkyNWRmZmJiZWY5NTIxZDUxMTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTk5LDcgKzE1OTksNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAgICAgLy8gSWYgYSBtb3VzZSBldmVudCBoYW5kbGVy
IGNoYW5nZXMgdGhlIGlucHV0IGVsZW1lbnQgdHlwZSB0byBvbmUgdGhhdCBoYXMgYSB3aWRnZXQg
YXNzb2NpYXRlZCwKICAgICAgICAgLy8gd2UnZCBsaWtlIHRvIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VQcmVzc0V2ZW50IHRvIHBhc3MgdGhlIGV2ZW50IHRvIHRoZSB3aWRnZXQgYW5kIHRodXMg
dGhlCiAgICAgICAgIC8vIGV2ZW50IHRhcmdldCBub2RlIGNhbid0IHN0aWxsIGJlIHRoZSBzaGFk
b3cgbm9kZS4KLSAgICAgICAgaWYgKHRhcmdldE5vZGUobWV2KS0+aXNTaGFkb3dSb290KCkgJiYg
dGFyZ2V0Tm9kZShtZXYpLT5zaGFkb3dIb3N0KCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7Cisg
ICAgICAgIGlmICh0YXJnZXROb2RlKG1ldiktPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9v
dCh0YXJnZXROb2RlKG1ldikpLT5ob3N0KCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAg
ICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8
IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgICAgICAgICAgbWV2ID0gbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+cHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgZG9jdW1lbnRQb2ludCwgbW91c2VF
dmVudCk7CiAgICAgICAgIH0KQEAgLTIwOTIsMTEgKzIwOTIsMTEgQEAgc3RhdGljIGlubGluZSBT
VkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlQXNzb2NpYXRlZFdpdGhTaGFkb3dUcmVlRWxlbWVu
dChOb2RlKgogICAgIGlmICghcmVmZXJlbmNlTm9kZSB8fCAhcmVmZXJlbmNlTm9kZS0+aXNTVkdF
bGVtZW50KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTm9kZSogc2hhZG93VHJlZUVsZW1l
bnQgPSByZWZlcmVuY2VOb2RlLT5zaGFkb3dSb290KCk7Ci0gICAgaWYgKCFzaGFkb3dUcmVlRWxl
bWVudCkKKyAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gcmVmZXJlbmNlTm9kZS0+c2hhZG93
Um9vdCgpOworICAgIGlmICghc2hhZG93Um9vdCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBF
bGVtZW50KiBzaGFkb3dUcmVlUGFyZW50RWxlbWVudCA9IHNoYWRvd1RyZWVFbGVtZW50LT5zaGFk
b3dIb3N0KCk7CisgICAgRWxlbWVudCogc2hhZG93VHJlZVBhcmVudEVsZW1lbnQgPSBzaGFkb3dS
b290LT5ob3N0KCk7CiAgICAgaWYgKCFzaGFkb3dUcmVlUGFyZW50RWxlbWVudCkKICAgICAgICAg
cmV0dXJuIDA7CiAKQEAgLTIyNTAsNyArMjI1MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNw
YXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdl
CiAgICAgICAgICAgICAgICAgLy8gZm9jdXNlZCBpZiB0aGUgdXNlciBkb2VzIGEgbW91c2V1cCBv
dmVyIGl0LCBob3dldmVyLCBiZWNhdXNlIHRoZSBtb3VzZXVwCiAgICAgICAgICAgICAgICAgLy8g
d2lsbCBzZXQgYSBzZWxlY3Rpb24gaW5zaWRlIGl0LCB3aGljaCB3aWxsIGNhbGwgc2V0Rm9jdXNl
Tm9kZUlmTmVlZGVkLgogICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
ICAgICAgICAgICAgIE5vZGUqIG4gPSBub2RlLT5pc1NoYWRvd1Jvb3QoKSA/IG5vZGUtPnNoYWRv
d0hvc3QoKSA6IG5vZGU7CisgICAgICAgICAgICAgICAgTm9kZSogbiA9IG5vZGUtPmlzU2hhZG93
Um9vdCgpID8gdG9TaGFkb3dSb290KG5vZGUpLT5ob3N0KCkgOiBub2RlOwogICAgICAgICAgICAg
ICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+aXNSYW5nZSgpCiAgICAgICAgICAgICAgICAg
ICAgICYmIG1fZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpLT5jb21wYXJl
Tm9kZShuLCBlYykgPT0gUmFuZ2U6Ok5PREVfSU5TSURFCiAgICAgICAgICAgICAgICAgICAgICYm
IG4tPmlzRGVzY2VuZGFudE9mKG1fZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDM3ZTk3ZGY2ZGViOTVk
YzZlMzlkMDc4MTc1ZTIwMjQxNTUyODdiNGIuLjVhYjZkYTM3ZTdiODFlODA3MTE0OWE4ZGY0M2E5
ZjYzYmU5OGNmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAg
LTExMCw3ICsxMTAsNyBAQCBFbGVtZW50KiBGb2N1c1Njb3BlOjpvd25lcigpIGNvbnN0CiB7CiAg
ICAgTm9kZSogcm9vdCA9IHJvb3ROb2RlKCk7CiAgICAgaWYgKHJvb3QtPmlzU2hhZG93Um9vdCgp
KQotICAgICAgICByZXR1cm4gcm9vdC0+c2hhZG93SG9zdCgpOworICAgICAgICByZXR1cm4gdG9T
aGFkb3dSb290KHJvb3QpLT5ob3N0KCk7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3QtPmRv
Y3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBmcmFtZS0+b3duZXJFbGVtZW50KCk7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCBjMzAxN2E0MjVjNGRkYjEzMDNiMmIwZGQxNmFiM2M3MWE1MDFhMTRlLi41MWJlYjg5ZmQy
MmZmZjJmNTA3ZjE4MmJmMDdiNjk3MjU1YWM1NDIyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5n
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1T
dGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtNTc2Niw3ICs1NzY3
LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6aGFzTGluZUlmRW1wdHkoKSBjb25zdAogICAgIGlmIChu
b2RlKCktPmlzUm9vdEVkaXRhYmxlRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAKLSAgICBpZiAobm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSAmJiAobm9kZSgpLT5zaGFkb3dIb3N0
KCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSkKKyAgICBpZiAobm9kZSgpLT5pc1NoYWRvd1Jvb3Qo
KSAmJiB0b1NoYWRvd1Jvb3Qobm9kZSgpKS0+aG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5oCmluZGV4IDBiZDU5NGVkYTE0MmNhMGNkMjZmN2Zj
ZjA4YmYwODg1ZGM2ZGQ3ZWEuLjMxOWI5ZWRmOGViMjI5MzFmNjFhN2FmNGMyMmZjOWE2OGUzMWJj
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmgKQEAgLTQ4LDYgKzQ4
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+U1ZHRWxlbWVudEluc3RhbmNlKCk7CiAKKyAg
ICB2b2lkIHNldFBhcmVudE9ySG9zdE5vZGUoU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSkg
eyBzZXRQYXJlbnQoaW5zdGFuY2UpOyB9CisKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwogCkBAIC0xNDMsNiArMTQ1LDgg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBTVkdVc2VFbGVtZW50Owor
ICAgIHVzaW5nIFRyZWVTaGFyZWQ8U1ZHRWxlbWVudEluc3RhbmNlPjo6cGFyZW50OworICAgIHVz
aW5nIFRyZWVTaGFyZWQ8U1ZHRWxlbWVudEluc3RhbmNlPjo6c2V0UGFyZW50OwogCiAgICAgU1ZH
RWxlbWVudEluc3RhbmNlKFNWR1VzZUVsZW1lbnQqLCBTVkdVc2VFbGVtZW50KiwgUGFzc1JlZlB0
cjxTVkdFbGVtZW50PiBvcmlnaW5hbEVsZW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVkRWxlbWVudC5jcHAKaW5kZXggYzE3MWZmYTg2ZDQ0MzY1YWQ1MjM1ZTkzN2NjOTE2NmQ1NTc3
NDM4Mi4uYzBjZDFlOGMxMDE4MjExZGMyZjQ5YjBkNDUyMzdiYzM4YmE2ZmY3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1
ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHVXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtOTAsNyArOTEsNyBAQCBTdHJpbmcgU1ZHU3R5bGVkRWxl
bWVudDo6dGl0bGUoKSBjb25zdAogCiAgICAgLy8gV2FsayB1cCB0aGUgdHJlZSwgdG8gZmluZCBv
dXQgd2hldGhlciB3ZSdyZSBpbnNpZGUgYSA8dXNlPiBzaGFkb3cgdHJlZSwgdG8gZmluZCB0aGUg
cmlnaHQgdGl0bGUuCiAgICAgaWYgKGlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgRWxlbWVu
dCogc2hhZG93SG9zdEVsZW1lbnQgPSB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKS0+c2hhZG93SG9z
dCgpOworICAgICAgICBFbGVtZW50KiBzaGFkb3dIb3N0RWxlbWVudCA9IHRvU2hhZG93Um9vdCh0
cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSktPmhvc3QoKTsKICAgICAgICAgLy8gQXQgdGhpcyB0aW1l
LCBTVkcgbm9kZXMgYXJlIG5vdCBhbGxvd2VkIGluIG5vbi08dXNlPiBzaGFkb3cgdHJlZXMsIHNv
IGFueSBzaGFkb3cgcm9vdCB3ZSBkbwogICAgICAgICAvLyBoYXZlIHNob3VsZCBiZSBhIHVzZS4g
VGhlIGFzc2VydCBhbmQgZm9sbG93aW5nIHRlc3QgaXMgaGVyZSB0byBjYXRjaCBmdXR1cmUgc2hh
ZG93IERPTSBjaGFuZ2VzCiAgICAgICAgIC8vIHRoYXQgZG8gZW5hYmxlIFNWRyBpbiBhIHNoYWRv
dyB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggNmI4NThmMzE3
YzA1NDc1ZDdmMzNkMjFlM2IzMzRkN2Y0YjU4ODI5OS4uZGVjMzY0MmMwMWE2OGVmNGI5MTgyYmQ2
N2Y4NzhlZGRmMzJmODBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBA
IC0xNDIsOSArMTQyLDkgQEAgUmVuZGVyT2JqZWN0KiBTVkdTaGFkb3dUZXh0OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKIAogdm9pZCBTVkdTaGFkb3dU
ZXh0Ojp3aWxsUmVjYWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKLSAgICBpZiAo
Y2hhbmdlICE9IE5vQ2hhbmdlICYmIHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKSB7CisgICAg
aWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiBwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7
CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5
bGUocGFyZW50Tm9kZSgpLT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOworICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUodG9TaGFkb3dSb290KHBhcmVudE5vZGUoKSkt
Pmhvc3QoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>