<?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>99472</bug_id>
          
          <creation_ts>2012-10-16 09:41:44 -0700</creation_ts>
          <short_desc>[EFL][WK2] Start using OwnPtr for non-ref counted ewk types</short_desc>
          <delta_ts>2012-10-17 00:28:53 -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>WebKit EFL</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743216</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-16 09:41:44 -0700</bug_when>
    <thetext>We should start using OwnPtr internally for non-ref counted Ewk types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743276</commentid>
    <comment_count>1</comment_count>
      <attachid>168968</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-16 10:40:26 -0700</bug_when>
    <thetext>Created attachment 168968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743833</commentid>
    <comment_count>2</comment_count>
      <attachid>169082</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-16 21:22:51 -0700</bug_when>
    <thetext>Created attachment 169082
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743935</commentid>
    <comment_count>3</comment_count>
      <attachid>169082</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 00:15:00 -0700</bug_when>
    <thetext>Comment on attachment 169082
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager_private.h:51
&gt;  typedef struct _Ewk_Cookie_Manager Ewk_Cookie_Manager;

Why do we do these C style things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743939</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-17 00:18:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 169082 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169082&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager_private.h:51
&gt; &gt;  typedef struct _Ewk_Cookie_Manager Ewk_Cookie_Manager;
&gt; 
&gt; Why do we do these C style things?

Think we can do the same as it&apos;s done in WK C API:

typedef struct WKPageLoaderClient WKPageLoaderClient;

That would let us to remove typedef from private header at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743941</commentid>
    <comment_count>5</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-17 00:20:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 169082 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169082&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager_private.h:51
&gt; &gt; &gt;  typedef struct _Ewk_Cookie_Manager Ewk_Cookie_Manager;
&gt; &gt; 
&gt; &gt; Why do we do these C style things?
&gt; 
&gt; Think we can do the same as it&apos;s done in WK C API:
&gt; 
&gt; typedef struct WKPageLoaderClient WKPageLoaderClient;
&gt; 
&gt; That would let us to remove typedef from private header at all.

I mean use typedef struct Ewk_Cookie_Manager Ewk_Cookie_Manager; in public header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743951</commentid>
    <comment_count>6</comment_count>
      <attachid>169082</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 00:28:48 -0700</bug_when>
    <thetext>Comment on attachment 169082
Patch

Clearing flags on attachment: 169082

Committed r131558: &lt;http://trac.webkit.org/changeset/131558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743952</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 00:28:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168968</attachid>
            <date>2012-10-16 10:40:26 -0700</date>
            <delta_ts>2012-10-16 21:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99472_efl_ownptr.patch</filename>
            <type>text/plain</type>
            <size>38960</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2N2ZjYTAzLi43OTAwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsODMg
QEAKIDIwMTItMTAtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIFN0YXJ0IHVzaW5nIE93blB0ciBmb3Igbm9uLXJl
ZiBjb3VudGVkIGV3ayB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTk0NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVc2UgT3duUHRyIGludGVybmFsbHkgZm9yIG5vbi1yZWYgY291bnRlZCBFd2sg
dHlwZXMgdG8gYXZvaWQKKyAgICAgICAgbWFudWFsIG1lbW9yeSBoYW5kbGluZy4KKworICAgICAg
ICBQcml2YXRlIF9uZXcoKSBhbmQgX2ZyZWUoKSBmdW5jdGlvbnMgYXJlIHJlbW92ZWQgc2luY2Ug
dGhleQorICAgICAgICBhcmUgbm90IG5lZWRlZCBub3cgdGhhdCB0aGUgY2xhc3NlcyBhcmUgZGVm
aW5lZCBpbiB0aGUKKyAgICAgICAgcHJpdmF0ZSBoZWFkZXJzIGluc3RlYWQgb2YgdGhlIGNwcCBm
aWxlcy4gVGhlIGNvbnN0cnVjdG9yCisgICAgICAgIGZvciB0aG9zZSBjbGFzc2VzIHdhcyBtYWRl
IHByaXZhdGUgYW5kIGZhY3RvcnkgbWV0aG9kcyB3ZXJlCisgICAgICAgIGFkZGVkIHRvIGVuY291
cmFnZSBkZXZlbG9wZXJzIHRvIHVzZSBzbWFydCBwb2ludGVycyBpbnN0ZWFkCisgICAgICAgIG9m
IHJhdyBvbmVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0LmNwcDoKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAgICAo
X0V3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKF9Fd2tfQmFja19Gb3J3
YXJkX0xpc3Q6Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29udGV4dCk6CisgICAgICAg
IChfRXdrX0NvbnRleHQ6Ol9Fd2tfQ29udGV4dCk6CisgICAgICAgIChld2tfY29udGV4dF9jb29r
aWVfbWFuYWdlcl9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFzZV9n
ZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2Ns
aWVudC5jcHA6CisgICAgICAgIChkaWRGYWlsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29va2llX21hbmFnZXIuY3BwOgorICAgICAgICAoX0V3a19Db29raWVfTWFuYWdlcjo6
X0V3a19Db29raWVfTWFuYWdlcik6CisgICAgICAgIChfRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+X0V3
a19Db29raWVfTWFuYWdlcik6CisgICAgICAgIChnZXRBY2NlcHRQb2xpY3lDYWxsYmFjayk6Cisg
ICAgICAgIChnZXRIb3N0bmFtZXNXaXRoQ29va2llc0NhbGxiYWNrKToKKyAgICAgICAgKGV3a19j
b29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oOgorICAgICAgICAoQ29va2llX0NoYW5nZV9I
YW5kbGVyKToKKyAgICAgICAgKENvb2tpZV9DaGFuZ2VfSGFuZGxlcjo6Q29va2llX0NoYW5nZV9I
YW5kbGVyKToKKyAgICAgICAgKF9Fd2tfQ29va2llX01hbmFnZXIpOgorICAgICAgICAoX0V3a19D
b29raWVfTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwOgorICAgICAgICAoX0V3a19FcnJvcjo6X0V3a19FcnJvcik6CisgICAgICAgIChl
d2tfZXJyb3JfY2FuY2VsbGF0aW9uX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Vycm9yX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfRXJyb3IpOgorICAgICAgICAoX0V3
a19FcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNv
bl9kYXRhYmFzZS5jcHA6CisgICAgICAgIChfRXdrX0Zhdmljb25fRGF0YWJhc2U6Ol9Fd2tfRmF2
aWNvbl9EYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25f
ZGF0YWJhc2VfcHJpdmF0ZS5oOgorICAgICAgICAoSWNvbkNoYW5nZUNhbGxiYWNrRGF0YSk6Cisg
ICAgICAgIChJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhOjpJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhKToK
KyAgICAgICAgKEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhKToKKyAgICAgICAgKEljb25SZXF1ZXN0
Q2FsbGJhY2tEYXRhOjpJY29uUmVxdWVzdENhbGxiYWNrRGF0YSk6CisgICAgICAgIChfRXdrX0Zh
dmljb25fRGF0YWJhc2UpOgorICAgICAgICAoX0V3a19GYXZpY29uX0RhdGFiYXNlOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwOgor
ICAgICAgICAoX0V3a19Qb3B1cF9NZW51X0l0ZW06Ol9Fd2tfUG9wdXBfTWVudV9JdGVtKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaDoK
KyAgICAgICAgKF9Fd2tfUG9wdXBfTWVudV9JdGVtKToKKyAgICAgICAgKF9Fd2tfUG9wdXBfTWVu
dV9JdGVtOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3QuY3BwOgorICAgICAgICAoX0V3a19VcmxfU2NoZW1lX1JlcXVlc3Q6Ol9Fd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tf
Vmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX0V3
a19WaWV3X1ByaXZhdGVfRGF0YTo6fl9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAo
X2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAoZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xp
c3RfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3BvcHVwX21lbnVfcmVxdWVzdCk6CisgICAgICAg
IChld2tfdmlld19wb3B1cF9tZW51X2Nsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcDoKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9s
b2FkX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRGYWlsTG9hZEZvclJlc291cmNlKToKKworMjAx
Mi0xMC0xNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgor
CiAgICAgICAgIFtFRkxdW1dLMl0gSGF2ZSBpbnRlbnQgY2xhc3NlcyBzdWJjbGFzcyBSZWZDb3Vu
dGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTQ2
NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2JhY2tfZm9yd2FyZF9saXN0LmNwcAppbmRleCA5MjAzNTYzLi42NWEzNTU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2Zvcndh
cmRfbGlzdC5jcHAKQEAgLTI5LDI3ICsyOSwxMSBAQAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgog
I2luY2x1ZGUgIldLQXJyYXkuaCIKICNpbmNsdWRlICJXS0JhY2tGb3J3YXJkTGlzdC5oIgotI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCi0jaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0
ZW1fcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi10eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBSZWZQdHI8RXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+ID4gSXRlbXNNYXA7Ci0KLS8qKgotICogXHN0cnVjdCAg
X0V3a19CYWNrX0ZvcndhcmRfTGlzdAotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIEJhY2sgRm9y
d2FyZCBMaXN0IGRhdGEuCi0gKi8KLXN0cnVjdCBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0IHsKLSAg
ICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gd2tMaXN0OwotICAgIG11dGFibGUg
SXRlbXNNYXAgd3JhcHBlckNhY2hlOwotCi0gICAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdChXS0Jh
Y2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQotICAgICAgICA6IHdrTGlzdChsaXN0UmVmKQotICAg
IHsgfQotfTsKLQogI2RlZmluZSBFV0tfQkFDS19GT1JXQVJEX0xJU1RfV0tfR0VUX09SX1JFVFVS
TihsaXN0LCB3a0xpc3RfLCAuLi4pICBcCiAgICAgaWYgKCEobGlzdCkpIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEVJTkFfTE9HX0NSSVQo
Imxpc3QgaXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xNjksMjUgKzE1
MywzIEBAIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NoYW5nZWQoRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0KiBsaXN0LCBXS0JhY2tGb3J3YXJkTGlzCiAgICAgICAgIGxpc3QtPndyYXBwZXJDYWNo
ZS5yZW1vdmUod2tJdGVtKTsKICAgICB9CiB9Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBDb25z
dHJ1Y3RzIGEgRXdrX0JhY2tfRm9yd2FyZF9MaXN0IGZyb20gYSBXS0JhY2tGb3J3YXJkTGlzdFJl
Zi4KLSAqLwotRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3
KFdLQmFja0ZvcndhcmRMaXN0UmVmIHdrQmFja0ZvcndhcmRMaXN0UmVmKQotewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh3a0JhY2tGb3J3YXJkTGlzdFJlZiwgMCk7Ci0KLSAg
ICByZXR1cm4gbmV3IEV3a19CYWNrX0ZvcndhcmRfTGlzdCh3a0JhY2tGb3J3YXJkTGlzdFJlZik7
Ci19Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBGcmVlcyBhIEV3a19CYWNrX0ZvcndhcmRfTGlz
dCBvYmplY3QuCi0gKi8KLXZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2ZyZWUoRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0KiBsaXN0KQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGxp
c3QpOwotCi0gICAgZGVsZXRlIGxpc3Q7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV9wcml2YXRlLmgKaW5kZXggM2EzN2I0Ni4uYjZlNWQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2Zvcndh
cmRfbGlzdF9pdGVtX3ByaXZhdGUuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiV0tF
aW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiAvKioKICAqIFxzdHJ1Y3QgIF9Fd2tfQmFja19Gb3J3YXJk
X0xpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oCmluZGV4IDU5MmE0ZjQuLjI2YjA1
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNr
X2ZvcndhcmRfbGlzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaApAQCAtMjYsMTIgKzI2LDMyIEBA
CiAjaWZuZGVmIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlX2gKICNkZWZpbmUgZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNp
bmNsdWRlICJld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmgiCiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Qg
RXdrX0JhY2tfRm9yd2FyZF9MaXN0OwogCit0eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmLCBSZWZQdHI8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+ID4gSXRlbXNNYXA7
CisKK2NsYXNzIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QgeworcHVibGljOgorICAgIFdLUmV0YWlu
UHRyPFdLQmFja0ZvcndhcmRMaXN0UmVmPiB3a0xpc3Q7CisgICAgbXV0YWJsZSBJdGVtc01hcCB3
cmFwcGVyQ2FjaGU7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxfRXdrX0JhY2tfRm9yd2FyZF9M
aXN0PiBjcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgX0V3a19CYWNrX0ZvcndhcmRfTGlzdChsaXN0UmVmKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QoV0tC
YWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKKyAgICAgICAgOiB3a0xpc3QobGlzdFJlZikKKyAg
ICB7IH0KK307CisKIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NoYW5nZWQoRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0KiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrQWRkZWRJdGVtLCBXS0Fy
cmF5UmVmIHdrUmVtb3ZlZEl0ZW1zKTsKLUV3a19CYWNrX0ZvcndhcmRfTGlzdCogZXdrX2JhY2tf
Zm9yd2FyZF9saXN0X25ldyhXS0JhY2tGb3J3YXJkTGlzdFJlZiB3a0JhY2tGb3J3YXJkTGlzdFJl
Zik7Ci12b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9mcmVlKEV3a19CYWNrX0ZvcndhcmRfTGlz
dCogbGlzdCk7CiAKICNlbmRpZiAvLyBld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKaW5k
ZXggMWNlY2U0MS4uZTdmNTIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtNjgsOCArNjgsOCBAQCBzdHJ1Y3QgX0V3a19Db250
ZXh0IHsKICAgICB1bnNpZ25lZCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBvYmplY3QgKi8KICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQ7CiAKLSAg
ICBFd2tfQ29va2llX01hbmFnZXIqIGNvb2tpZU1hbmFnZXI7Ci0gICAgRXdrX0Zhdmljb25fRGF0
YWJhc2UqIGZhdmljb25EYXRhYmFzZTsKKyAgICBPd25QdHI8RXdrX0Nvb2tpZV9NYW5hZ2VyPiBj
b29raWVNYW5hZ2VyOworICAgIE93blB0cjxFd2tfRmF2aWNvbl9EYXRhYmFzZT4gZmF2aWNvbkRh
dGFiYXNlOwogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICBSZWZQdHI8QmF0dGVyeVBy
b3ZpZGVyPiBiYXR0ZXJ5UHJvdmlkZXI7CiAjZW5kaWYKQEAgLTg5LDggKzg5LDYgQEAgc3RydWN0
IF9Fd2tfQ29udGV4dCB7CiAgICAgX0V3a19Db250ZXh0KFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dFJlZikKICAgICAgICAgOiBfX3JlZigxKQogICAgICAgICAsIGNvbnRleHQoY29u
dGV4dFJlZikKLSAgICAgICAgLCBjb29raWVNYW5hZ2VyKDApCi0gICAgICAgICwgZmF2aWNvbkRh
dGFiYXNlKDApCiAgICAgICAgICwgcmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVl
c3RNYW5hZ2VyKGNvbnRleHRSZWYuZ2V0KCkpKQogICAgICAgICAsIGhpc3RvcnlDbGllbnQoKQog
ICAgIHsKQEAgLTEyMCwxNSArMTE4LDYgQEAgc3RydWN0IF9Fd2tfQ29udGV4dCB7CiAgICAgICAg
IGV3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9hdHRhY2godGhpcyk7CiAgICAgICAgIGV3a19j
b250ZXh0X2hpc3RvcnlfY2xpZW50X2F0dGFjaCh0aGlzKTsKICAgICB9Ci0KLSAgICB+X0V3a19D
b250ZXh0KCkKLSAgICB7Ci0gICAgICAgIGlmIChjb29raWVNYW5hZ2VyKQotICAgICAgICAgICAg
ZXdrX2Nvb2tpZV9tYW5hZ2VyX2ZyZWUoY29va2llTWFuYWdlcik7Ci0KLSAgICAgICAgaWYgKGZh
dmljb25EYXRhYmFzZSkKLSAgICAgICAgICAgIGV3a19mYXZpY29uX2RhdGFiYXNlX2ZyZWUoZmF2
aWNvbkRhdGFiYXNlKTsKLSAgICB9CiB9OwogCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfcmVm
KEV3a19Db250ZXh0KiBld2tDb250ZXh0KQpAQCAtMTU1LDkgKzE0NCw5IEBAIEV3a19Db29raWVf
TWFuYWdlciogZXdrX2NvbnRleHRfY29va2llX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0
KiBld2tDb250ZXh0CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a0NvbnRl
eHQsIDApOwogCiAgICAgaWYgKCFld2tDb250ZXh0LT5jb29raWVNYW5hZ2VyKQotICAgICAgICBj
b25zdF9jYXN0PEV3a19Db250ZXh0Kj4oZXdrQ29udGV4dCktPmNvb2tpZU1hbmFnZXIgPSBld2tf
Y29va2llX21hbmFnZXJfbmV3KFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoZXdrQ29udGV4dC0+
Y29udGV4dC5nZXQoKSkpOworICAgICAgICBjb25zdF9jYXN0PEV3a19Db250ZXh0Kj4oZXdrQ29u
dGV4dCktPmNvb2tpZU1hbmFnZXIgPSBFd2tfQ29va2llX01hbmFnZXI6OmNyZWF0ZShXS0NvbnRl
eHRHZXRDb29raWVNYW5hZ2VyKGV3a0NvbnRleHQtPmNvbnRleHQuZ2V0KCkpKTsKIAotICAgIHJl
dHVybiBld2tDb250ZXh0LT5jb29raWVNYW5hZ2VyOworICAgIHJldHVybiBld2tDb250ZXh0LT5j
b29raWVNYW5hZ2VyLmdldCgpOwogfQogCiBFd2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrX2NvbnRl
eHRfZmF2aWNvbl9kYXRhYmFzZV9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRleHQpCkBA
IC0xNzAsMTAgKzE1OSwxMCBAQCBFd2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrX2NvbnRleHRfZmF2
aWNvbl9kYXRhYmFzZV9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbgogICAgICAgICBTdHJp
bmcgZGF0YWJhc2VQYXRoID0gd2ViQ29udGV4dC0+aWNvbkRhdGFiYXNlUGF0aCgpICsgIi8iICsg
V2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpOwogICAgICAg
ICB3ZWJDb250ZXh0LT5zZXRJY29uRGF0YWJhc2VQYXRoKGRhdGFiYXNlUGF0aCk7CiAKLSAgICAg
ICAgY29uc3RfY2FzdDxFd2tfQ29udGV4dCo+KGV3a0NvbnRleHQpLT5mYXZpY29uRGF0YWJhc2Ug
PSBld2tfZmF2aWNvbl9kYXRhYmFzZV9uZXcoV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKGV3a0Nv
bnRleHQtPmNvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgY29uc3RfY2FzdDxFd2tfQ29udGV4dCo+
KGV3a0NvbnRleHQpLT5mYXZpY29uRGF0YWJhc2UgPSBFd2tfRmF2aWNvbl9EYXRhYmFzZTo6Y3Jl
YXRlKFdLQ29udGV4dEdldEljb25EYXRhYmFzZShld2tDb250ZXh0LT5jb250ZXh0LmdldCgpKSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIGV3a0NvbnRleHQtPmZhdmljb25EYXRhYmFzZTsKKyAgICBy
ZXR1cm4gZXdrQ29udGV4dC0+ZmF2aWNvbkRhdGFiYXNlLmdldCgpOwogfQogCiBXS0NvbnRleHRS
ZWYgZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCmluZGV4IDczMjBkN2YuLjMwNTM5ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
X2Rvd25sb2FkX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgImV3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3By
aXZhdGUuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpA
QCAtOTMsMTAgKzk0LDkgQEAgc3RhdGljIHZvaWQgZGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93
bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tFcnJvclJlZiBlcnJvciwgY28KICAgICBFd2tfRG93bmxv
YWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250
ZXh0KGNsaWVudEluZm8pLCBkb3dubG9hZElkKTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwogCi0g
ICAgRXdrX0Vycm9yKiBld2tFcnJvciA9IGV3a19lcnJvcl9uZXcoZXJyb3IpOworICAgIE93blB0
cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9yOjpjcmVhdGUoZXJyb3IpOwogICAgIGV3
a19kb3dubG9hZF9qb2Jfc3RhdGVfc2V0KGRvd25sb2FkLCBFV0tfRE9XTkxPQURfSk9CX1NUQVRF
X0ZBSUxFRCk7Ci0gICAgZXdrX3ZpZXdfZG93bmxvYWRfam9iX2ZhaWxlZChld2tfZG93bmxvYWRf
am9iX3ZpZXdfZ2V0KGRvd25sb2FkKSwgZG93bmxvYWQsIGV3a0Vycm9yKTsKLSAgICBld2tfZXJy
b3JfZnJlZShld2tFcnJvcik7CisgICAgZXdrX3ZpZXdfZG93bmxvYWRfam9iX2ZhaWxlZChld2tf
ZG93bmxvYWRfam9iX3ZpZXdfZ2V0KGRvd25sb2FkKSwgZG93bmxvYWQsIGV3a0Vycm9yLmdldCgp
KTsKICAgICBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfcmVtb3ZlKHRvRXdrQ29udGV4dChjbGll
bnRJbmZvKSwgZG93bmxvYWRJZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCmluZGV4IGE1MjA0NzMuLjUy
YjdjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b29raWVfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcApAQCAtMjksNTkgKzI5LDM1IEBACiAjaW5jbHVkZSAiU291
cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgog
I2luY2x1ZGUgIldLQXJyYXkuaCIKLSNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKLSNpbmNs
dWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiZXdrX2Nvb2tpZV9tYW5hZ2VyX3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfZXJyb3JfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19wcml2
YXRlLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAotc3RydWN0IENvb2tpZV9DaGFuZ2VfSGFuZGxlciB7Ci0gICAgRXdrX0Nvb2tp
ZV9NYW5hZ2VyX0NoYW5nZXNfV2F0Y2hfQ2IgY2FsbGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7
Ci0KLSAgICBDb29raWVfQ2hhbmdlX0hhbmRsZXIoKQotICAgICAgICA6IGNhbGxiYWNrKDApCi0g
ICAgICAgICwgdXNlckRhdGEoMCkKLSAgICB7IH0KLQotICAgIENvb2tpZV9DaGFuZ2VfSGFuZGxl
cihFd2tfQ29va2llX01hbmFnZXJfQ2hhbmdlc19XYXRjaF9DYiBfY2FsbGJhY2ssIHZvaWQqIF91
c2VyRGF0YSkKLSAgICAgICAgOiBjYWxsYmFjayhfY2FsbGJhY2spCi0gICAgICAgICwgdXNlckRh
dGEoX3VzZXJEYXRhKQotICAgIHsgfQotfTsKLQogc3RhdGljIHZvaWQgY29va2llc0RpZENoYW5n
ZShXS0Nvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi0vKioKLSAq
IFxzdHJ1Y3QgIF9Fd2tfQ29va2llX01hbmFnZXIKLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBj
b29raWUgbWFuYWdlciBkYXRhLgotICovCi1zdHJ1Y3QgX0V3a19Db29raWVfTWFuYWdlciB7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tDb29raWVNYW5hZ2VyUmVmPiB3a0Nvb2tpZU1hbmFnZXI7Ci0gICAg
Q29va2llX0NoYW5nZV9IYW5kbGVyIGNoYW5nZUhhbmRsZXI7Ci0KLSAgICBfRXdrX0Nvb2tpZV9N
YW5hZ2VyKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQotICAgICAgICA6IHdr
Q29va2llTWFuYWdlcihjb29raWVNYW5hZ2VyUmVmKQotICAgIHsKLSAgICAgICAgV0tDb29raWVN
YW5hZ2VyQ2xpZW50IHdrQ29va2llTWFuYWdlckNsaWVudCA9IHsKLSAgICAgICAgICAgIGtXS0Nv
b2tpZU1hbmFnZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAgICAgICAgICAgIHRoaXMsIC8vIGNs
aWVudEluZm8KLSAgICAgICAgICAgIGNvb2tpZXNEaWRDaGFuZ2UKLSAgICAgICAgfTsKLSAgICAg
ICAgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KHdrQ29va2llTWFuYWdlci5nZXQoKSwgJndrQ29v
a2llTWFuYWdlckNsaWVudCk7Ci0gICAgfQorX0V3a19Db29raWVfTWFuYWdlcjo6X0V3a19Db29r
aWVfTWFuYWdlcihXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZikKKyAgICA6IHdr
Q29va2llTWFuYWdlcihjb29raWVNYW5hZ2VyUmVmKQoreworICAgIFdLQ29va2llTWFuYWdlckNs
aWVudCB3a0Nvb2tpZU1hbmFnZXJDbGllbnQgPSB7CisgICAgICAgIGtXS0Nvb2tpZU1hbmFnZXJD
bGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgdGhpcywgLy8gY2xpZW50SW5mbworICAgICAg
ICBjb29raWVzRGlkQ2hhbmdlCisgICAgfTsKKyAgICBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQo
d2tDb29raWVNYW5hZ2VyLmdldCgpLCAmd2tDb29raWVNYW5hZ2VyQ2xpZW50KTsKK30KIAotICAg
IH5fRXdrX0Nvb2tpZV9NYW5hZ2VyKCkKLSAgICB7Ci0gICAgICAgIGlmIChjaGFuZ2VIYW5kbGVy
LmNhbGxiYWNrKQotICAgICAgICAgICAgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMod2tDb29raWVNYW5hZ2VyLmdldCgpKTsKLSAgICB9Ci19OworX0V3a19Db29raWVf
TWFuYWdlcjo6fl9Fd2tfQ29va2llX01hbmFnZXIoKQoreworICAgIGlmIChjaGFuZ2VIYW5kbGVy
LmNhbGxiYWNrKQorICAgICAgICBXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyh3a0Nvb2tpZU1hbmFnZXIuZ2V0KCkpOworfQogCiAjZGVmaW5lIEVXS19DT09LSUVfTUFO
QUdFUl9XS19HRVRfT1JfUkVUVVJOKG1hbmFnZXIsIHdrTWFuYWdlcl8sIC4uLikgICAgXAogICAg
IGlmICghKG1hbmFnZXIpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKQEAgLTE0MiwxMiArMTE4LDEwIEBAIHN0cnVjdCBHZXRfUG9saWN5X0Fz
eW5jX0RhdGEgewogc3RhdGljIHZvaWQgZ2V0QWNjZXB0UG9saWN5Q2FsbGJhY2soV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSwgV0tFcnJvclJlZiB3a0Vycm9yLCB2b2lkKiBkYXRhKQog
ewogICAgIEdldF9Qb2xpY3lfQXN5bmNfRGF0YSogY2FsbGJhY2tEYXRhID0gc3RhdGljX2Nhc3Q8
R2V0X1BvbGljeV9Bc3luY19EYXRhKj4oZGF0YSk7Ci0gICAgRXdrX0Vycm9yKiBld2tFcnJvciA9
IHdrRXJyb3IgPyBld2tfZXJyb3JfbmV3KHdrRXJyb3IpIDogMDsKKyAgICBPd25QdHI8RXdrX0Vy
cm9yPiBld2tFcnJvciA9IEV3a19FcnJvcjo6Y3JlYXRlKHdrRXJyb3IpOwogCi0gICAgY2FsbGJh
Y2tEYXRhLT5jYWxsYmFjayhzdGF0aWNfY2FzdDxFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3k+KHBv
bGljeSksIGV3a0Vycm9yLCBjYWxsYmFja0RhdGEtPnVzZXJEYXRhKTsKKyAgICBjYWxsYmFja0Rh
dGEtPmNhbGxiYWNrKHN0YXRpY19jYXN0PEV3a19Db29raWVfQWNjZXB0X1BvbGljeT4ocG9saWN5
KSwgZXdrRXJyb3IuZ2V0KCksIGNhbGxiYWNrRGF0YS0+dXNlckRhdGEpOwogCi0gICAgaWYgKGV3
a0Vycm9yKQotICAgICAgICBld2tfZXJyb3JfZnJlZShld2tFcnJvcik7CiAgICAgZGVsZXRlIGNh
bGxiYWNrRGF0YTsKIH0KIApAQCAtMTcyLDcgKzE0Niw3IEBAIHN0YXRpYyB2b2lkIGdldEhvc3Ru
YW1lc1dpdGhDb29raWVzQ2FsbGJhY2soV0tBcnJheVJlZiB3a0hvc3RuYW1lcywgV0tFcnJvclJl
ZiB3CiB7CiAgICAgRWluYV9MaXN0KiBob3N0bmFtZXMgPSAwOwogICAgIEdldF9Ib3N0bmFtZXNf
QXN5bmNfRGF0YSogY2FsbGJhY2tEYXRhID0gc3RhdGljX2Nhc3Q8R2V0X0hvc3RuYW1lc19Bc3lu
Y19EYXRhKj4oY29udGV4dCk7Ci0gICAgRXdrX0Vycm9yKiBld2tFcnJvciA9IHdrRXJyb3IgPyBl
d2tfZXJyb3JfbmV3KHdrRXJyb3IpIDogMDsKKyAgICBPd25QdHI8RXdrX0Vycm9yPiBld2tFcnJv
ciA9IEV3a19FcnJvcjo6Y3JlYXRlKHdrRXJyb3IpOwogCiAgICAgY29uc3Qgc2l6ZV90IGhvc3Ru
YW1lQ291bnQgPSBXS0FycmF5R2V0U2l6ZSh3a0hvc3RuYW1lcyk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBob3N0bmFtZUNvdW50OyArK2kpIHsKQEAgLTE4MywxMyArMTU3LDEyIEBAIHN0
YXRpYyB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzQ2FsbGJhY2soV0tBcnJheVJlZiB3a0hv
c3RuYW1lcywgV0tFcnJvclJlZiB3CiAgICAgICAgIGhvc3RuYW1lcyA9IGVpbmFfbGlzdF9hcHBl
bmQoaG9zdG5hbWVzLCBlaW5hX3N0cmluZ3NoYXJlX2FkZChob3N0bmFtZS51dGY4KCkuZGF0YSgp
KSk7CiAgICAgfQogCi0gICAgY2FsbGJhY2tEYXRhLT5jYWxsYmFjayhob3N0bmFtZXMsIGV3a0Vy
cm9yLCBjYWxsYmFja0RhdGEtPnVzZXJEYXRhKTsKKyAgICBjYWxsYmFja0RhdGEtPmNhbGxiYWNr
KGhvc3RuYW1lcywgZXdrRXJyb3IuZ2V0KCksIGNhbGxiYWNrRGF0YS0+dXNlckRhdGEpOwogCiAg
ICAgdm9pZCogaXRlbTsKICAgICBFSU5BX0xJU1RfRlJFRShob3N0bmFtZXMsIGl0ZW0pCiAgICAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzdGF0aWNfY2FzdDxFaW5hX1N0cmluZ3NoYXJlKj4oaXRl
bSkpOwotICAgIGlmIChld2tFcnJvcikKLSAgICAgICAgZXdrX2Vycm9yX2ZyZWUoZXdrRXJyb3Ip
OworCiAgICAgZGVsZXRlIGNhbGxiYWNrRGF0YTsKIH0KIApAQCAtMjMyLDI1ICsyMDUsMyBAQCB2
b2lkIGV3a19jb29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKEV3a19Db29raWVfTWFuYWdlciog
bWFuYWdlciwgRXdrX0Nvb2tpZV9NYQogICAgIGVsc2UKICAgICAgICAgV0tDb29raWVNYW5hZ2Vy
U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMod2tNYW5hZ2VyKTsKIH0KLQotLyoqCi0gKiBAaW50
ZXJuYWwKLSAqIEZyZWVzIGEgRXdrX0Nvb2tpZV9NYW5hZ2VyIG9iamVjdC4KLSAqLwotdm9pZCBl
d2tfY29va2llX21hbmFnZXJfZnJlZShFd2tfQ29va2llX01hbmFnZXIqIG1hbmFnZXIpCi17Ci0g
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWFuYWdlcik7Ci0KLSAgICBkZWxldGUgbWFu
YWdlcjsKLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIENvbnN0cnVjdHMgYSBFd2tfQ29va2ll
X01hbmFnZXIgZnJvbSBhIFdLQ29va2llTWFuYWdlclJlZi4KLSAqLwotRXdrX0Nvb2tpZV9NYW5h
Z2VyKiBld2tfY29va2llX21hbmFnZXJfbmV3KFdLQ29va2llTWFuYWdlclJlZiB3a0Nvb2tpZU1h
bmFnZXIpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHdrQ29va2llTWFu
YWdlciwgMCk7Ci0KLSAgICByZXR1cm4gbmV3IEV3a19Db29raWVfTWFuYWdlcih3a0Nvb2tpZU1h
bmFnZXIpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Nvb2tpZV9tYW5hZ2VyX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb29raWVfbWFuYWdlcl9wcml2YXRlLmgKaW5kZXggNjQyODVjOS4uNjkxMzIy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tp
ZV9tYW5hZ2VyX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oCkBAIC0yNiwxMSArMjYsNDQgQEAKICNpZm5k
ZWYgZXdrX2Nvb2tpZV9tYW5hZ2VyX3ByaXZhdGVfaAogI2RlZmluZSBld2tfY29va2llX21hbmFn
ZXJfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJX
S1JldGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19jb29raWVfbWFuYWdlci5oIgogI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworc3RydWN0
IENvb2tpZV9DaGFuZ2VfSGFuZGxlciB7CisgICAgRXdrX0Nvb2tpZV9NYW5hZ2VyX0NoYW5nZXNf
V2F0Y2hfQ2IgY2FsbGJhY2s7CisgICAgdm9pZCogdXNlckRhdGE7CisKKyAgICBDb29raWVfQ2hh
bmdlX0hhbmRsZXIoKQorICAgICAgICA6IGNhbGxiYWNrKDApCisgICAgICAgICwgdXNlckRhdGEo
MCkKKyAgICB7IH0KKworICAgIENvb2tpZV9DaGFuZ2VfSGFuZGxlcihFd2tfQ29va2llX01hbmFn
ZXJfQ2hhbmdlc19XYXRjaF9DYiBfY2FsbGJhY2ssIHZvaWQqIF91c2VyRGF0YSkKKyAgICAgICAg
OiBjYWxsYmFjayhfY2FsbGJhY2spCisgICAgICAgICwgdXNlckRhdGEoX3VzZXJEYXRhKQorICAg
IHsgfQorfTsKKwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0Nvb2tpZV9NYW5hZ2VyIEV3a19Db29r
aWVfTWFuYWdlcjsKIAotRXdrX0Nvb2tpZV9NYW5hZ2VyKiBld2tfY29va2llX21hbmFnZXJfbmV3
KFdLQ29va2llTWFuYWdlclJlZiB3a0Nvb2tpZU1hbmFnZXIpOwotdm9pZCBld2tfY29va2llX21h
bmFnZXJfZnJlZShFd2tfQ29va2llX01hbmFnZXIqIG1hbmFnZXIpOworY2xhc3MgX0V3a19Db29r
aWVfTWFuYWdlciB7CitwdWJsaWM6CisgICAgV0tSZXRhaW5QdHI8V0tDb29raWVNYW5hZ2VyUmVm
PiB3a0Nvb2tpZU1hbmFnZXI7CisgICAgQ29va2llX0NoYW5nZV9IYW5kbGVyIGNoYW5nZUhhbmRs
ZXI7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxfRXdrX0Nvb2tpZV9NYW5hZ2VyPiBjcmVhdGUo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IF9Fd2tfQ29va2llX01hbmFnZXIoY29va2llTWFuYWdlclJlZikpOwor
ICAgIH0KKworICAgIH5fRXdrX0Nvb2tpZV9NYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgX0V3a19Db29raWVfTWFuYWdlcihXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
clJlZik7Cit9OwogCiAjZW5kaWYgLy8gZXdrX2Nvb2tpZV9tYW5hZ2VyX3ByaXZhdGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKaW5kZXggYTdk
NTc2ZC4uZmVkOGUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Vycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZXJyb3IuY3BwCkBAIC0yNywzNCArMjcsMjAgQEAKICNpbmNsdWRlICJld2tfZXJyb3IuaCIK
IAogI2luY2x1ZGUgIkVycm9yc0VmbC5oIgotI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5o
IgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJl
d2tfZXJyb3JfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdLQVBJQ2FzdC5oPgotI2luY2x1ZGUgPFdL
RXJyb3IuaD4KLSNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCi1zdHJ1Y3QgX0V3a19FcnJvciB7Ci0gICAgV0tSZXRhaW5QdHI8V0tFcnJvclJlZj4g
d2tFcnJvcjsKLQotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgV0tFaW5hU2hhcmVk
U3RyaW5nIGRlc2NyaXB0aW9uOwotCi0gICAgX0V3a19FcnJvcihXS0Vycm9yUmVmIGVycm9yUmVm
KQotICAgICAgICA6IHdrRXJyb3IoZXJyb3JSZWYpCi0gICAgICAgICwgdXJsKEFkb3B0V0ssIFdL
RXJyb3JDb3B5RmFpbGluZ1VSTChlcnJvclJlZikpCi0gICAgICAgICwgZGVzY3JpcHRpb24oQWRv
cHRXSywgV0tFcnJvckNvcHlMb2NhbGl6ZWREZXNjcmlwdGlvbihlcnJvclJlZikpCi0gICAgeyB9
Ci0KLSAgICB+X0V3a19FcnJvcigpCi0gICAgewotICAgIH0KLX07CitfRXdrX0Vycm9yOjpfRXdr
X0Vycm9yKFdLRXJyb3JSZWYgZXJyb3JSZWYpCisgICAgOiB3a0Vycm9yKGVycm9yUmVmKQorICAg
ICwgdXJsKEFkb3B0V0ssIFdLRXJyb3JDb3B5RmFpbGluZ1VSTChlcnJvclJlZikpCisgICAgLCBk
ZXNjcmlwdGlvbihBZG9wdFdLLCBXS0Vycm9yQ29weUxvY2FsaXplZERlc2NyaXB0aW9uKGVycm9y
UmVmKSkKK3sgfQogCiAjZGVmaW5lIEVXS19FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3
a0Vycm9yXywgLi4uKSAgICBcCiAgICAgaWYgKCEoZXJyb3IpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTY3LDE3ICs1Myw2IEBAIHN0cnVjdCBfRXdr
X0Vycm9yIHsKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICBXS0Vycm9yUmVmIHdrRXJyb3JfID0gKGVycm9yKS0+d2tF
cnJvci5nZXQoKQogCi0vKioKLSAqIEBpbnRlcm5hbAotICogRnJlZXMgdGhlIGdpdmVuIG9iamVj
dC4KLSAqLwotdm9pZCBld2tfZXJyb3JfZnJlZShFd2tfRXJyb3IqIGVycm9yKQotewotICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGVycm9yKTsKLQotICAgIGRlbGV0ZSBlcnJvcjsKLX0K
LQogRXdrX0Vycm9yX1R5cGUgZXdrX2Vycm9yX3R5cGVfZ2V0KGNvbnN0IEV3a19FcnJvciogZXJy
b3IpCiB7CiAgICAgRVdLX0VSUk9SX1dLX0dFVF9PUl9SRVRVUk4oZXJyb3IsIHdrRXJyb3IsIEVX
S19FUlJPUl9UWVBFX05PTkUpOwpAQCAtMTI1LDEwICsxMDAsMyBAQCBFaW5hX0Jvb2wgZXdrX2Vy
cm9yX2NhbmNlbGxhdGlvbl9nZXQoY29uc3QgRXdrX0Vycm9yKiBlcnJvcikKIAogICAgIHJldHVy
biB0b0ltcGwod2tFcnJvciktPnBsYXRmb3JtRXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpOwogfQot
Ci1Fd2tfRXJyb3IqIGV3a19lcnJvcl9uZXcoV0tFcnJvclJlZiBlcnJvcikKLXsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXJyb3IsIDApOwotCi0gICAgcmV0dXJuIG5ldyBF
d2tfRXJyb3IoZXJyb3IpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19lcnJvcl9wcml2YXRlLmgKaW5kZXggMmYwMTk4OC4uNWFlNDU3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0
ZS5oCkBAIC0yNiwxMSArMjYsMjkgQEAKICNpZm5kZWYgZXdrX2Vycm9yX3ByaXZhdGVfaAogI2Rl
ZmluZSBld2tfZXJyb3JfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcu
aCIKICNpbmNsdWRlIDxXS0Vycm9yLmg+CisjaW5jbHVkZSA8V0tSZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9yIEV3a19F
cnJvcjsKIAotRXdrX0Vycm9yKiBld2tfZXJyb3JfbmV3KFdLRXJyb3JSZWYgZXJyb3IpOwotdm9p
ZCBld2tfZXJyb3JfZnJlZShFd2tfRXJyb3IqIGVycm9yKTsKK2NsYXNzIF9Fd2tfRXJyb3Igewor
cHVibGljOgorICAgIFdLUmV0YWluUHRyPFdLRXJyb3JSZWY+IHdrRXJyb3I7CisgICAgV0tFaW5h
U2hhcmVkU3RyaW5nIHVybDsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzY3JpcHRpb247CisK
KyAgICBzdGF0aWMgUGFzc093blB0cjxfRXdrX0Vycm9yPiBjcmVhdGUoV0tFcnJvclJlZiBlcnJv
clJlZikKKyAgICB7CisgICAgICAgIGlmICghZXJyb3JSZWYpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IF9Fd2tfRXJyb3IoZXJyb3JS
ZWYpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgX0V3a19FcnJvcihXS0Vycm9y
UmVmIGVycm9yUmVmKTsKK307CiAKICNlbmRpZiAvLyBld2tfZXJyb3JfcHJpdmF0ZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9k
YXRhYmFzZS5jcHAKaW5kZXggODBlMGU2NC4uNmU1MmMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmNwcApA
QCAtMjcsODEgKzI3LDMxIEBACiAjaW5jbHVkZSAiZXdrX2Zhdmljb25fZGF0YWJhc2UuaCIKIAog
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLSWNvbkRhdGFiYXNlLmgiCi0jaW5j
bHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJXS1VSTC5oIgogI2luY2x1ZGUgIldlYklj
b25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUgImV3a19mYXZpY29u
X2RhdGFiYXNlX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzRWZs
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1zdHJ1Y3QgSWNvbkNo
YW5nZUNhbGxiYWNrRGF0YSB7Ci0gICAgRXdrX0Zhdmljb25fRGF0YWJhc2VfSWNvbl9DaGFuZ2Vf
Q2IgY2FsbGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7Ci0KLSAgICBJY29uQ2hhbmdlQ2FsbGJh
Y2tEYXRhKCkKLSAgICAgICAgOiBjYWxsYmFjaygwKQotICAgICAgICAsIHVzZXJEYXRhKDApCi0g
ICAgeyB9Ci0KLSAgICBJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhKEV3a19GYXZpY29uX0RhdGFiYXNl
X0ljb25fQ2hhbmdlX0NiIF9jYWxsYmFjaywgdm9pZCogX3VzZXJEYXRhKQotICAgICAgICA6IGNh
bGxiYWNrKF9jYWxsYmFjaykKLSAgICAgICAgLCB1c2VyRGF0YShfdXNlckRhdGEpCi0gICAgeyB9
Ci19OwotCi1zdHJ1Y3QgSWNvblJlcXVlc3RDYWxsYmFja0RhdGEgewotICAgIEV3a19GYXZpY29u
X0RhdGFiYXNlX0FzeW5jX0ljb25fR2V0X0NiIGNhbGxiYWNrOwotICAgIHZvaWQqIHVzZXJEYXRh
OwotICAgIEV2YXMqIGV2YXM7Ci0KLSAgICBJY29uUmVxdWVzdENhbGxiYWNrRGF0YSgpCi0gICAg
ICAgIDogY2FsbGJhY2soMCkKLSAgICAgICAgLCB1c2VyRGF0YSgwKQotICAgICAgICAsIGV2YXMo
MCkKLSAgICB7IH0KLQotICAgIEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhKEV3a19GYXZpY29uX0Rh
dGFiYXNlX0FzeW5jX0ljb25fR2V0X0NiIF9jYWxsYmFjaywgdm9pZCogX3VzZXJEYXRhLCBFdmFz
KiBfZXZhcykKLSAgICAgICAgOiBjYWxsYmFjayhfY2FsbGJhY2spCi0gICAgICAgICwgdXNlckRh
dGEoX3VzZXJEYXRhKQotICAgICAgICAsIGV2YXMoX2V2YXMpCi0gICAgeyB9Ci19OwotCiBzdGF0
aWMgdm9pZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0
YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogc3RhdGlj
IHZvaWQgaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFi
YXNlLCBXS1VSTFJlZiBwYWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotdHlwZWRl
ZiBIYXNoTWFwPEV3a19GYXZpY29uX0RhdGFiYXNlX0ljb25fQ2hhbmdlX0NiLCBJY29uQ2hhbmdl
Q2FsbGJhY2tEYXRhPiBDaGFuZ2VMaXN0ZW5lck1hcDsKLXR5cGVkZWYgVmVjdG9yPEljb25SZXF1
ZXN0Q2FsbGJhY2tEYXRhPiBQZW5kaW5nSWNvblJlcXVlc3RWZWN0b3I7Ci10eXBlZGVmIEhhc2hN
YXA8U3RyaW5nIC8qIHBhZ2VVUkwgKi8sIFBlbmRpbmdJY29uUmVxdWVzdFZlY3Rvcj4gUGVuZGlu
Z0ljb25SZXF1ZXN0TWFwOwotCi0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfRmF2aWNvbl9EYXRhYmFz
ZQotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGZhdmljb24gZGF0YWJhc2UgZGF0YS4KLSAqLwot
c3RydWN0IF9Fd2tfRmF2aWNvbl9EYXRhYmFzZSB7Ci0gICAgV0tSZXRhaW5QdHI8V0tJY29uRGF0
YWJhc2VSZWY+IHdrSWNvbkRhdGFiYXNlOwotICAgIENoYW5nZUxpc3RlbmVyTWFwIGNoYW5nZUxp
c3RlbmVyczsKLSAgICBQZW5kaW5nSWNvblJlcXVlc3RNYXAgaWNvblJlcXVlc3RzOwotCi0gICAg
X0V3a19GYXZpY29uX0RhdGFiYXNlKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZikK
LSAgICAgICAgOiAgd2tJY29uRGF0YWJhc2UoaWNvbkRhdGFiYXNlUmVmKQotICAgIHsKLSAgICAg
ICAgV0tJY29uRGF0YWJhc2VDbGllbnQgaWNvbkRhdGFiYXNlQ2xpZW50OwotICAgICAgICBtZW1z
ZXQoJmljb25EYXRhYmFzZUNsaWVudCwgMCwgc2l6ZW9mKFdLSWNvbkRhdGFiYXNlQ2xpZW50KSk7
Ci0gICAgICAgIGljb25EYXRhYmFzZUNsaWVudC52ZXJzaW9uID0ga1dLSWNvbkRhdGFiYXNlQ2xp
ZW50Q3VycmVudFZlcnNpb247Ci0gICAgICAgIGljb25EYXRhYmFzZUNsaWVudC5jbGllbnRJbmZv
ID0gdGhpczsKLSAgICAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LmRpZENoYW5nZUljb25Gb3JQYWdl
VVJMID0gZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkw7Ci0gICAgICAgIGljb25EYXRhYmFzZUNsaWVu
dC5pY29uRGF0YVJlYWR5Rm9yUGFnZVVSTCA9IGljb25EYXRhUmVhZHlGb3JQYWdlVVJMOwotICAg
ICAgICBXS0ljb25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh3a0ljb25EYXRhYmFzZS5n
ZXQoKSwgJmljb25EYXRhYmFzZUNsaWVudCk7Ci0gICAgfQotfTsKK19Fd2tfRmF2aWNvbl9EYXRh
YmFzZTo6X0V3a19GYXZpY29uX0RhdGFiYXNlKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFz
ZVJlZikKKyAgICA6ICB3a0ljb25EYXRhYmFzZShpY29uRGF0YWJhc2VSZWYpCit7CisgICAgV0tJ
Y29uRGF0YWJhc2VDbGllbnQgaWNvbkRhdGFiYXNlQ2xpZW50OworICAgIG1lbXNldCgmaWNvbkRh
dGFiYXNlQ2xpZW50LCAwLCBzaXplb2YoV0tJY29uRGF0YWJhc2VDbGllbnQpKTsKKyAgICBpY29u
RGF0YWJhc2VDbGllbnQudmVyc2lvbiA9IGtXS0ljb25EYXRhYmFzZUNsaWVudEN1cnJlbnRWZXJz
aW9uOworICAgIGljb25EYXRhYmFzZUNsaWVudC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBpY29u
RGF0YWJhc2VDbGllbnQuZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwgPSBkaWRDaGFuZ2VJY29uRm9y
UGFnZVVSTDsKKyAgICBpY29uRGF0YWJhc2VDbGllbnQuaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwg
PSBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTDsKKyAgICBXS0ljb25EYXRhYmFzZVNldEljb25EYXRh
YmFzZUNsaWVudCh3a0ljb25EYXRhYmFzZS5nZXQoKSwgJmljb25EYXRhYmFzZUNsaWVudCk7Cit9
CiAKIHN0YXRpYyB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVm
LCBXS1VSTFJlZiBwYWdlVVJMUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMTUx
LDI4ICsxMDEsNiBAQCBzdGF0aWMgdm9pZCBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChXS0ljb25E
YXRhYmFzZVJlZiwgV0tVUkxSZWYgcGFnZVVSTCwgY29uc3QgdgogICAgIH0KIH0KIAotLyoqCi0g
KiBAaW50ZXJuYWwKLSAqIENvbnN0cnVjdHMgYSBFd2tfRmF2aWNvbl9EYXRhYmFzZSBpbnN0YW5j
ZS4KLSAqLwotRXdrX0Zhdmljb25fRGF0YWJhc2UqIGV3a19mYXZpY29uX2RhdGFiYXNlX25ldyhX
S0ljb25EYXRhYmFzZVJlZiB3a0ljb25EYXRhYmFzZSkKLXsKLSAgICBBU1NFUlQod2tJY29uRGF0
YWJhc2UpOwotCi0gICAgcmV0dXJuIG5ldyBFd2tfRmF2aWNvbl9EYXRhYmFzZSh3a0ljb25EYXRh
YmFzZSk7Ci19Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBGcmVlcyBhIEV3a19GYXZpY29uX0Rh
dGFiYXNlIGluc3RhbmNlLgotICovCi12b2lkIGV3a19mYXZpY29uX2RhdGFiYXNlX2ZyZWUoRXdr
X0Zhdmljb25fRGF0YWJhc2UqIGV3a0ljb25EYXRhYmFzZSkKLXsKLSAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihld2tJY29uRGF0YWJhc2UpOwotCi0gICAgZGVsZXRlIGV3a0ljb25EYXRh
YmFzZTsKLX0KLQogY29uc3QgY2hhciogZXdrX2Zhdmljb25fZGF0YWJhc2VfaWNvbl91cmxfZ2V0
KEV3a19GYXZpY29uX0RhdGFiYXNlKiBld2tJY29uRGF0YWJhc2UsIGNvbnN0IGNoYXIqIHBhZ2VV
UkwpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a0ljb25EYXRhYmFz
ZSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZmF2aWNvbl9kYXRhYmFzZV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZV9wcml2YXRlLmgKaW5kZXggOThlY2Y5MC4uYzU4ODQy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmlj
b25fZGF0YWJhc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGUuaApAQCAtMjYsOSArMjYsNjIgQEAKICNp
Zm5kZWYgZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19mYXZpY29u
X2RhdGFiYXNlX3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tJY29uRGF0YWJhc2UuaCIKKyNpbmNs
dWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19mYXZpY29uX2RhdGFiYXNlLmgiCiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCi1F
d2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrX2Zhdmljb25fZGF0YWJhc2VfbmV3KFdLSWNvbkRhdGFi
YXNlUmVmIHdrSWNvbkRhdGFiYXNlKTsKLXZvaWQgZXdrX2Zhdmljb25fZGF0YWJhc2VfZnJlZShF
d2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrSWNvbkRhdGFiYXNlKTsKK3N0cnVjdCBJY29uQ2hhbmdl
Q2FsbGJhY2tEYXRhIHsKKyAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYiBj
YWxsYmFjazsKKyAgICB2b2lkKiB1c2VyRGF0YTsKKworICAgIEljb25DaGFuZ2VDYWxsYmFja0Rh
dGEoKQorICAgICAgICA6IGNhbGxiYWNrKDApCisgICAgICAgICwgdXNlckRhdGEoMCkKKyAgICB7
IH0KKworICAgIEljb25DaGFuZ2VDYWxsYmFja0RhdGEoRXdrX0Zhdmljb25fRGF0YWJhc2VfSWNv
bl9DaGFuZ2VfQ2IgX2NhbGxiYWNrLCB2b2lkKiBfdXNlckRhdGEpCisgICAgICAgIDogY2FsbGJh
Y2soX2NhbGxiYWNrKQorICAgICAgICAsIHVzZXJEYXRhKF91c2VyRGF0YSkKKyAgICB7IH0KK307
CisKK3N0cnVjdCBJY29uUmVxdWVzdENhbGxiYWNrRGF0YSB7CisgICAgRXdrX0Zhdmljb25fRGF0
YWJhc2VfQXN5bmNfSWNvbl9HZXRfQ2IgY2FsbGJhY2s7CisgICAgdm9pZCogdXNlckRhdGE7Cisg
ICAgRXZhcyogZXZhczsKKworICAgIEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhKCkKKyAgICAgICAg
OiBjYWxsYmFjaygwKQorICAgICAgICAsIHVzZXJEYXRhKDApCisgICAgICAgICwgZXZhcygwKQor
ICAgIHsgfQorCisgICAgSWNvblJlcXVlc3RDYWxsYmFja0RhdGEoRXdrX0Zhdmljb25fRGF0YWJh
c2VfQXN5bmNfSWNvbl9HZXRfQ2IgX2NhbGxiYWNrLCB2b2lkKiBfdXNlckRhdGEsIEV2YXMqIF9l
dmFzKQorICAgICAgICA6IGNhbGxiYWNrKF9jYWxsYmFjaykKKyAgICAgICAgLCB1c2VyRGF0YShf
dXNlckRhdGEpCisgICAgICAgICwgZXZhcyhfZXZhcykKKyAgICB7IH0KK307CisKK3R5cGVkZWYg
SGFzaE1hcDxFd2tfRmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYiwgSWNvbkNoYW5nZUNh
bGxiYWNrRGF0YT4gQ2hhbmdlTGlzdGVuZXJNYXA7Cit0eXBlZGVmIFZlY3RvcjxJY29uUmVxdWVz
dENhbGxiYWNrRGF0YT4gUGVuZGluZ0ljb25SZXF1ZXN0VmVjdG9yOwordHlwZWRlZiBIYXNoTWFw
PFN0cmluZyAvKiBwYWdlVVJMICovLCBQZW5kaW5nSWNvblJlcXVlc3RWZWN0b3I+IFBlbmRpbmdJ
Y29uUmVxdWVzdE1hcDsKKworY2xhc3MgX0V3a19GYXZpY29uX0RhdGFiYXNlIHsKK3B1YmxpYzoK
KyAgICBXS1JldGFpblB0cjxXS0ljb25EYXRhYmFzZVJlZj4gd2tJY29uRGF0YWJhc2U7CisgICAg
Q2hhbmdlTGlzdGVuZXJNYXAgY2hhbmdlTGlzdGVuZXJzOworICAgIFBlbmRpbmdJY29uUmVxdWVz
dE1hcCBpY29uUmVxdWVzdHM7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxfRXdrX0Zhdmljb25f
RGF0YWJhc2U+IGNyZWF0ZShXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2VSZWYpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IF9Fd2tfRmF2aWNvbl9EYXRhYmFzZShpY29u
RGF0YWJhc2VSZWYpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgX0V3a19GYXZp
Y29uX0RhdGFiYXNlKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZik7Cit9OwogCiAj
ZW5kaWYgLy8gZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCmlu
ZGV4IDU2NmJiZWYuLmQwYTNmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCkBAIC0yNiw2NSArMjYsMjcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtLmgi
CiAKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJld2tfcG9wdXBf
bWVudV9pdGVtX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0g
KiBcc3RydWN0ICBfRXdrX1BvcHVwX01lbnVfSXRlbQotICogQGJyaWVmICAgQ29udGFpbnMgdGhl
IHBvcHVwIG1lbnUgZGF0YS4KLSAqLwotc3RydWN0IF9Fd2tfUG9wdXBfTWVudV9JdGVtIHsKLSAg
ICBFd2tfUG9wdXBfTWVudV9JdGVtX1R5cGUgdHlwZTsKLSAgICBFd2tfVGV4dF9EaXJlY3Rpb24g
dGV4dERpcmVjdGlvbjsKLQotICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwotICAg
IGJvb2wgaXNFbmFibGVkOwotICAgIGJvb2wgaXNMYWJlbDsKLSAgICBib29sIGlzU2VsZWN0ZWQ7
Ci0KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdGV4dDsKLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
dG9vbFRpcDsKLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgYWNjZXNzaWJpbGl0eVRleHQ7Ci0KLSAg
ICBleHBsaWNpdCBfRXdrX1BvcHVwX01lbnVfSXRlbShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRl
bSYgaXRlbSkKLSAgICAgICAgOiB0eXBlKHN0YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51X0l0ZW1f
VHlwZT4oaXRlbS5tX3R5cGUpKQotICAgICAgICAsIHRleHREaXJlY3Rpb24oc3RhdGljX2Nhc3Q8
RXdrX1RleHRfRGlyZWN0aW9uPihpdGVtLm1fdGV4dERpcmVjdGlvbikpCi0gICAgICAgICwgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlKGl0ZW0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpCi0g
ICAgICAgICwgaXNFbmFibGVkKGl0ZW0ubV9pc0VuYWJsZWQpCi0gICAgICAgICwgaXNMYWJlbChp
dGVtLm1faXNMYWJlbCkKLSAgICAgICAgLCBpc1NlbGVjdGVkKGl0ZW0ubV9pc1NlbGVjdGVkKQot
ICAgICAgICAsIHRleHQoaXRlbS5tX3RleHQudXRmOCgpLmRhdGEoKSkKLSAgICAgICAgLCB0b29s
VGlwKGl0ZW0ubV90b29sVGlwLnV0ZjgoKS5kYXRhKCkpCi0gICAgICAgICwgYWNjZXNzaWJpbGl0
eVRleHQoaXRlbS5tX2FjY2Vzc2liaWxpdHlUZXh0LnV0ZjgoKS5kYXRhKCkpCi0gICAgeyB9Ci19
OworX0V3a19Qb3B1cF9NZW51X0l0ZW06Ol9Fd2tfUG9wdXBfTWVudV9JdGVtKGNvbnN0IFdlYktp
dDo6V2ViUG9wdXBJdGVtJiBpdGVtKQorICAgIDogdHlwZShzdGF0aWNfY2FzdDxFd2tfUG9wdXBf
TWVudV9JdGVtX1R5cGU+KGl0ZW0ubV90eXBlKSkKKyAgICAsIHRleHREaXJlY3Rpb24oc3RhdGlj
X2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPihpdGVtLm1fdGV4dERpcmVjdGlvbikpCisgICAgLCBo
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoaXRlbS5tX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSkK
KyAgICAsIGlzRW5hYmxlZChpdGVtLm1faXNFbmFibGVkKQorICAgICwgaXNMYWJlbChpdGVtLm1f
aXNMYWJlbCkKKyAgICAsIGlzU2VsZWN0ZWQoaXRlbS5tX2lzU2VsZWN0ZWQpCisgICAgLCB0ZXh0
KGl0ZW0ubV90ZXh0LnV0ZjgoKS5kYXRhKCkpCisgICAgLCB0b29sVGlwKGl0ZW0ubV90b29sVGlw
LnV0ZjgoKS5kYXRhKCkpCisgICAgLCBhY2Nlc3NpYmlsaXR5VGV4dChpdGVtLm1fYWNjZXNzaWJp
bGl0eVRleHQudXRmOCgpLmRhdGEoKSkKK3sgfQogCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKEVXS19QT1BVUF9NRU5VX1NFUEFSQVRPUiwgV2ViUG9wdXBJdGVtOjpTZXBhcmF0b3IpOwog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfUE9QVVBfTUVOVV9JVEVNLCBXZWJQb3B1
cEl0ZW06Okl0ZW0pOwogCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ29uc3RydWN0cyBhIEV3a19Q
b3B1cF9NZW51X0l0ZW0uCi0gKi8KLUV3a19Qb3B1cF9NZW51X0l0ZW0qIGV3a19wb3B1cF9tZW51
X2l0ZW1fbmV3KGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVtKQotewotICAgIHJldHVy
biBuZXcgRXdrX1BvcHVwX01lbnVfSXRlbShpdGVtKTsKLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwK
LSAqIEZyZWVzIGEgRXdrX1BvcHVwX01lbnVfSXRlbS4KLSAqLwotdm9pZCBld2tfcG9wdXBfbWVu
dV9pdGVtX2ZyZWUoRXdrX1BvcHVwX01lbnVfSXRlbSogaXRlbSkKLXsKLSAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTihpdGVtKTsKLSAgICBkZWxldGUgaXRlbTsKLX0KLQogRXdrX1BvcHVw
X01lbnVfSXRlbV9UeXBlIGV3a19wb3B1cF9tZW51X2l0ZW1fdHlwZV9nZXQoY29uc3QgRXdrX1Bv
cHVwX01lbnVfSXRlbSogaXRlbSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoaXRlbSwgRVdLX1BPUFVQX01FTlVfVU5LTk9XTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0
ZS5oCmluZGV4IDZhNGE0MzUuLmVjMmVjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5o
CkBAIC0yNiw5ICsyNiwzNiBAQAogI2lmbmRlZiBld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGVf
aAogI2RlZmluZSBld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tF
aW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVtLmgiCisjaW5jbHVkZSAi
ZXdrX3BvcHVwX21lbnVfaXRlbS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLUV3
a19Qb3B1cF9NZW51X0l0ZW0qIGV3a19wb3B1cF9tZW51X2l0ZW1fbmV3KGNvbnN0IFdlYktpdDo6
V2ViUG9wdXBJdGVtJiBpdGVtKTsKLXZvaWQgZXdrX3BvcHVwX21lbnVfaXRlbV9mcmVlKEV3a19Q
b3B1cF9NZW51X0l0ZW0qIGl0ZW0pOworLyoqCisgKiBcc3RydWN0ICBfRXdrX1BvcHVwX01lbnVf
SXRlbQorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHBvcHVwIG1lbnUgZGF0YS4KKyAqLworY2xh
c3MgX0V3a19Qb3B1cF9NZW51X0l0ZW0geworcHVibGljOgorICAgIEV3a19Qb3B1cF9NZW51X0l0
ZW1fVHlwZSB0eXBlOworICAgIEV3a19UZXh0X0RpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uOworCisg
ICAgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgYm9vbCBpc0VuYWJsZWQ7Cisg
ICAgYm9vbCBpc0xhYmVsOworICAgIGJvb2wgaXNTZWxlY3RlZDsKKworICAgIFdLRWluYVNoYXJl
ZFN0cmluZyB0ZXh0OworICAgIFdLRWluYVNoYXJlZFN0cmluZyB0b29sVGlwOworICAgIFdLRWlu
YVNoYXJlZFN0cmluZyBhY2Nlc3NpYmlsaXR5VGV4dDsKKworICAgIHN0YXRpYyBQYXNzT3duUHRy
PF9Fd2tfUG9wdXBfTWVudV9JdGVtPiBjcmVhdGUoY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0m
IGl0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IF9Fd2tfUG9wdXBfTWVu
dV9JdGVtKGl0ZW0pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgX0V3a19Qb3B1
cF9NZW51X0l0ZW0oY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pOworfTsKIAogI2Vu
ZGlmIC8vIGV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3Bw
CmluZGV4IGM2MGM1ZDIuLmRmMTY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVf
cmVxdWVzdC5oIgogCisjaW5jbHVkZSAiR093blB0clNvdXAuaCIKICNpbmNsdWRlICJXS0RhdGEu
aCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgIldLU291cFJlcXVlc3RNYW5h
Z2VyLmgiCkBAIC01MiwxMCArNTMsOSBAQCBzdHJ1Y3QgX0V3a19VcmxfU2NoZW1lX1JlcXVlc3Qg
ewogICAgICAgICAsIHVybChlaW5hX3N0cmluZ3NoYXJlX2FkZChfdXJsKSkKICAgICAgICAgLCBy
ZXF1ZXN0SUQoX3JlcXVlc3RJRCkKICAgICB7Ci0gICAgICAgIFNvdXBVUkkqIHNvdXBVUkkgPSBz
b3VwX3VyaV9uZXcoX3VybCk7CisgICAgICAgIEdPd25QdHI8U291cFVSST4gc291cFVSSShzb3Vw
X3VyaV9uZXcoX3VybCkpOwogICAgICAgICBzY2hlbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChz
b3VwVVJJLT5zY2hlbWUpOwogICAgICAgICBwYXRoID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc291
cFVSSS0+cGF0aCk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUoc291cFVSSSk7CiAgICAgfQogCiAg
ICAgfl9Fd2tfVXJsX1NjaGVtZV9SZXF1ZXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBjMjBjNmJjLi5jNzlhMjZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0xMjYsNyArMTI2
LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIFdLRWluYVNoYXJlZFN0
cmluZyBmYXZpY29uVVJMOwogICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CiAgICAgTG9h
ZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwotICAgIEV3a19CYWNrX0Zvcndh
cmRfTGlzdCogYmFja0ZvcndhcmRMaXN0OworICAgIE93blB0cjxFd2tfQmFja19Gb3J3YXJkX0xp
c3Q+IGJhY2tGb3J3YXJkTGlzdDsKICAgICBPd25QdHI8RXdrX1NldHRpbmdzPiBzZXR0aW5nczsK
ICAgICBib29sIGFyZU1vdXNlRXZlbnRzRW5hYmxlZDsKICAgICBXS0NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJSZWYgY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsKQEAgLTE1MCw3ICsxNTAsNiBA
QCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAKICAgICBfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKCkKICAgICAgICAgOiBjdXJzb3JPYmplY3QoMCkKLSAgICAgICAgLCBiYWNrRm9yd2Fy
ZExpc3QoMCkKICAgICAgICAgLCBhcmVNb3VzZUV2ZW50c0VuYWJsZWQoZmFsc2UpCiAgICAgICAg
ICwgY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcigwKQogICAgICAgICAsIGNvbnRleHQoMCkKQEAg
LTE4MCwxMSArMTc5LDkgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAg
ICBpZiAoY3Vyc29yT2JqZWN0KQogICAgICAgICAgICAgZXZhc19vYmplY3RfZGVsKGN1cnNvck9i
amVjdCk7CiAKLSAgICAgICAgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2ZyZWUoYmFja0ZvcndhcmRM
aXN0KTsKLQogICAgICAgICB2b2lkKiBpdGVtOwogICAgICAgICBFSU5BX0xJU1RfRlJFRShwb3B1
cE1lbnVJdGVtcywgaXRlbSkKLSAgICAgICAgICAgIGV3a19wb3B1cF9tZW51X2l0ZW1fZnJlZShz
dGF0aWNfY2FzdDxFd2tfUG9wdXBfTWVudV9JdGVtKj4oaXRlbSkpOworICAgICAgICAgICAgZGVs
ZXRlIHN0YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51X0l0ZW0qPihpdGVtKTsKICAgICB9CiB9Owog
CkBAIC04MzIsNyArODI5LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRpYWxpemUoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKICNlbmRpZgogICAg
IHByaXYtPnBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAotICAgIHByaXYtPmJhY2tG
b3J3YXJkTGlzdCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uZXcodG9BUEkocHJpdi0+cGFnZVBy
b3h5LT5iYWNrRm9yd2FyZExpc3QoKSkpOworICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IEV3
a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3JlYXRlKHRvQVBJKHByaXYtPnBhZ2VQcm94eS0+YmFja0Zv
cndhcmRMaXN0KCkpKTsKICAgICBwcml2LT5zZXR0aW5ncyA9IGFkb3B0UHRyKG5ldyBFd2tfU2V0
dGluZ3MoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEko
cHJpdi0+cGFnZVByb3h5LmdldCgpKSkpKSk7CiAgICAgcHJpdi0+Y29udGV4dCA9IGV3a19jb250
ZXh0X3JlZihjb250ZXh0KTsKIApAQCAtMTQ3Nyw3ICsxNDc0LDcgQEAgRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0KiBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgMCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwg
MCk7CiAKLSAgICByZXR1cm4gcHJpdi0+YmFja0ZvcndhcmRMaXN0OworICAgIHJldHVybiBwcml2
LT5iYWNrRm9yd2FyZExpc3QuZ2V0KCk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfaW1hZ2VfZGF0YV9z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKQEAgLTE3ODAsNyArMTc3Nyw3IEBAIHZvaWQgZXdrX3ZpZXdfcG9wdXBfbWVudV9yZXF1
ZXN0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wCiAgICAg
RWluYV9MaXN0KiBwb3B1cEl0ZW1zID0gMDsKICAgICBzaXplX3Qgc2l6ZSA9IGl0ZW1zLnNpemUo
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcG9wdXBJ
dGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQocG9wdXBJdGVtcywgZXdrX3BvcHVwX21lbnVfaXRlbV9u
ZXcoaXRlbXNbaV0pKTsKKyAgICAgICAgcG9wdXBJdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQocG9w
dXBJdGVtcywgRXdrX1BvcHVwX01lbnVfSXRlbTo6Y3JlYXRlKGl0ZW1zW2ldKS5sZWFrUHRyKCkp
OwogICAgIHByaXYtPnBvcHVwTWVudUl0ZW1zID0gcG9wdXBJdGVtczsKIAogICAgIHNtYXJ0RGF0
YS0+YXBpLT5wb3B1cF9tZW51X3Nob3coc21hcnREYXRhLCByZWN0LCBzdGF0aWNfY2FzdDxFd2tf
VGV4dF9EaXJlY3Rpb24+KHRleHREaXJlY3Rpb24pLCBwYWdlU2NhbGVGYWN0b3IsIHBvcHVwSXRl
bXMsIHNlbGVjdGVkSW5kZXgpOwpAQCAtMTgwMiw3ICsxNzk5LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3BvcHVwX21lbnVfY2xvc2UoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAKICAgICB2b2lkKiBp
dGVtOwogICAgIEVJTkFfTElTVF9GUkVFKHByaXYtPnBvcHVwTWVudUl0ZW1zLCBpdGVtKQotICAg
ICAgICBld2tfcG9wdXBfbWVudV9pdGVtX2ZyZWUoc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVf
SXRlbSo+KGl0ZW0pKTsKKyAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51
X0l0ZW0qPihpdGVtKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cAppbmRleCBmYTIyZmE3Li5jMjhmZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgiCiAjaW5j
bHVkZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXdfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC04NywxMCArODgsOSBA
QCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZgogICAgICAgICByZXR1cm47CiAKICAgICBFdmFzX09i
amVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOwotICAgIEV3a19FcnJvciogZXdrRXJyb3IgPSBld2tfZXJyb3JfbmV3
KGVycm9yKTsKLSAgICBld2tfdmlld19sb2FkX2Vycm9yKGV3a1ZpZXcsIGV3a0Vycm9yKTsKKyAg
ICBPd25QdHI8RXdrX0Vycm9yPiBld2tFcnJvciA9IEV3a19FcnJvcjo6Y3JlYXRlKGVycm9yKTsK
KyAgICBld2tfdmlld19sb2FkX2Vycm9yKGV3a1ZpZXcsIGV3a0Vycm9yLmdldCgpKTsKICAgICBl
d2tfdmlld19sb2FkX2ZpbmlzaGVkKGV3a1ZpZXcpOwotICAgIGV3a19lcnJvcl9mcmVlKGV3a0Vy
cm9yKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCkBAIC0xMTcsOSArMTE3LDggQEAgc3RhdGljIHZvaWQgZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBm
cmFtZSwKICAgICAgICAgcmV0dXJuOwogCiAgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0
aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAg
ICBFd2tfRXJyb3IqIGV3a0Vycm9yID0gZXdrX2Vycm9yX25ldyhlcnJvcik7Ci0gICAgZXdrX3Zp
ZXdfbG9hZF9wcm92aXNpb25hbF9mYWlsZWQoZXdrVmlldywgZXdrRXJyb3IpOwotICAgIGV3a19l
cnJvcl9mcmVlKGV3a0Vycm9yKTsKKyAgICBPd25QdHI8RXdrX0Vycm9yPiBld2tFcnJvciA9IEV3
a19FcnJvcjo6Y3JlYXRlKGVycm9yKTsKKyAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX2Zh
aWxlZChld2tWaWV3LCBld2tFcnJvci5nZXQoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRl
ZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCmluZGV4IDY2OTdmZDkuLmY5Yjc4ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmll
d19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnRfcHJp
dmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODIsMTAgKzgzLDkgQEAgc3Rh
dGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291cmNlKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
dWludDY0X3QgcmVzb3VyY2VJZGUKIAogc3RhdGljIHZvaWQgZGlkRmFpbExvYWRGb3JSZXNvdXJj
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tF
cnJvclJlZiB3a0Vycm9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIEV3a19FcnJv
ciogZXdrRXJyb3IgPSBld2tfZXJyb3JfbmV3KHdrRXJyb3IpOwotICAgIGV3a192aWV3X3Jlc291
cmNlX2xvYWRfZmFpbGVkKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgcmVzb3VyY2VJZGVudGlmaWVy
LCBld2tFcnJvcik7CisgICAgT3duUHRyPEV3a19FcnJvcj4gZXdrRXJyb3IgPSBFd2tfRXJyb3I6
OmNyZWF0ZSh3a0Vycm9yKTsKKyAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2ZhaWxlZCh0b0V3
a1ZpZXcoY2xpZW50SW5mbyksIHJlc291cmNlSWRlbnRpZmllciwgZXdrRXJyb3IuZ2V0KCkpOwog
ICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfZmluaXNoZWQodG9Fd2tWaWV3KGNsaWVudEluZm8p
LCByZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIGV3a19lcnJvcl9mcmVlKGV3a0Vycm9yKTsKIH0K
IAogdm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBh
Z2VSZWYsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169082</attachid>
            <date>2012-10-16 21:22:51 -0700</date>
            <delta_ts>2012-10-17 00:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99472_efl_ownptr.patch</filename>
            <type>text/plain</type>
            <size>38992</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZDhmOGNkLi42NGFjNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsODMg
QEAKIDIwMTItMTAtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIFN0YXJ0IHVzaW5nIE93blB0ciBmb3Igbm9uLXJl
ZiBjb3VudGVkIGV3ayB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTk0NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVc2UgT3duUHRyIGludGVybmFsbHkgZm9yIG5vbi1yZWYgY291bnRlZCBFd2sg
dHlwZXMgdG8gYXZvaWQKKyAgICAgICAgbWFudWFsIG1lbW9yeSBoYW5kbGluZy4KKworICAgICAg
ICBQcml2YXRlIF9uZXcoKSBhbmQgX2ZyZWUoKSBmdW5jdGlvbnMgYXJlIHJlbW92ZWQgc2luY2Ug
dGhleQorICAgICAgICBhcmUgbm90IG5lZWRlZCBub3cgdGhhdCB0aGUgY2xhc3NlcyBhcmUgZGVm
aW5lZCBpbiB0aGUKKyAgICAgICAgcHJpdmF0ZSBoZWFkZXJzIGluc3RlYWQgb2YgdGhlIGNwcCBm
aWxlcy4gVGhlIGNvbnN0cnVjdG9yCisgICAgICAgIGZvciB0aG9zZSBjbGFzc2VzIHdhcyBtYWRl
IHByaXZhdGUgYW5kIGZhY3RvcnkgbWV0aG9kcyB3ZXJlCisgICAgICAgIGFkZGVkIHRvIGVuY291
cmFnZSBkZXZlbG9wZXJzIHRvIHVzZSBzbWFydCBwb2ludGVycyBpbnN0ZWFkCisgICAgICAgIG9m
IHJhdyBvbmVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0LmNwcDoKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAgICAo
X0V3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKF9Fd2tfQmFja19Gb3J3
YXJkX0xpc3Q6Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29udGV4dCk6CisgICAgICAg
IChfRXdrX0NvbnRleHQ6Ol9Fd2tfQ29udGV4dCk6CisgICAgICAgIChld2tfY29udGV4dF9jb29r
aWVfbWFuYWdlcl9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFzZV9n
ZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2Ns
aWVudC5jcHA6CisgICAgICAgIChkaWRGYWlsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29va2llX21hbmFnZXIuY3BwOgorICAgICAgICAoX0V3a19Db29raWVfTWFuYWdlcjo6
X0V3a19Db29raWVfTWFuYWdlcik6CisgICAgICAgIChfRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+X0V3
a19Db29raWVfTWFuYWdlcik6CisgICAgICAgIChnZXRBY2NlcHRQb2xpY3lDYWxsYmFjayk6Cisg
ICAgICAgIChnZXRIb3N0bmFtZXNXaXRoQ29va2llc0NhbGxiYWNrKToKKyAgICAgICAgKGV3a19j
b29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oOgorICAgICAgICAoQ29va2llX0NoYW5nZV9I
YW5kbGVyKToKKyAgICAgICAgKENvb2tpZV9DaGFuZ2VfSGFuZGxlcjo6Q29va2llX0NoYW5nZV9I
YW5kbGVyKToKKyAgICAgICAgKF9Fd2tfQ29va2llX01hbmFnZXIpOgorICAgICAgICAoX0V3a19D
b29raWVfTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwOgorICAgICAgICAoX0V3a19FcnJvcjo6X0V3a19FcnJvcik6CisgICAgICAgIChl
d2tfZXJyb3JfY2FuY2VsbGF0aW9uX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Vycm9yX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfRXJyb3IpOgorICAgICAgICAoX0V3
a19FcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNv
bl9kYXRhYmFzZS5jcHA6CisgICAgICAgIChfRXdrX0Zhdmljb25fRGF0YWJhc2U6Ol9Fd2tfRmF2
aWNvbl9EYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25f
ZGF0YWJhc2VfcHJpdmF0ZS5oOgorICAgICAgICAoSWNvbkNoYW5nZUNhbGxiYWNrRGF0YSk6Cisg
ICAgICAgIChJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhOjpJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhKToK
KyAgICAgICAgKEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhKToKKyAgICAgICAgKEljb25SZXF1ZXN0
Q2FsbGJhY2tEYXRhOjpJY29uUmVxdWVzdENhbGxiYWNrRGF0YSk6CisgICAgICAgIChfRXdrX0Zh
dmljb25fRGF0YWJhc2UpOgorICAgICAgICAoX0V3a19GYXZpY29uX0RhdGFiYXNlOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwOgor
ICAgICAgICAoX0V3a19Qb3B1cF9NZW51X0l0ZW06Ol9Fd2tfUG9wdXBfTWVudV9JdGVtKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaDoK
KyAgICAgICAgKF9Fd2tfUG9wdXBfTWVudV9JdGVtKToKKyAgICAgICAgKF9Fd2tfUG9wdXBfTWVu
dV9JdGVtOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3QuY3BwOgorICAgICAgICAoX0V3a19VcmxfU2NoZW1lX1JlcXVlc3Q6Ol9Fd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9Fd2tf
Vmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX0V3
a19WaWV3X1ByaXZhdGVfRGF0YTo6fl9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAo
X2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAoZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xp
c3RfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3BvcHVwX21lbnVfcmVxdWVzdCk6CisgICAgICAg
IChld2tfdmlld19wb3B1cF9tZW51X2Nsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcDoKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9s
b2FkX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRGYWlsTG9hZEZvclJlc291cmNlKToKKworMjAx
Mi0xMC0xNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgor
CiAgICAgICAgIFtFRkxdW1dLMl0gQWRkIGZhY3RvcnkgbWV0aG9kcyBmb3IgcmVmY291bnRlZCBF
d2sgdHlwZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NDc5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19iYWNrX2ZvcndhcmRfbGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3QuY3BwCmluZGV4IGQ3ZDg4ZTAuLjYzNDA4ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tf
Zm9yd2FyZF9saXN0LmNwcApAQCAtMjksMjcgKzI5LDExIEBACiAjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldLQmFja0ZvcndhcmRMaXN0Lmgi
Ci0jaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNsdWRlICJld2tfYmFja19mb3J3YXJkX2xp
c3RfaXRlbV9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZh
dGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKLXR5cGVkZWYgSGFzaE1hcDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFJlZlB0
cjxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gPiBJdGVtc01hcDsKLQotLyoqCi0gKiBcc3Ry
dWN0ICBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0Ci0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgQmFj
ayBGb3J3YXJkIExpc3QgZGF0YS4KLSAqLwotc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Qg
ewotICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0UmVmPiB3a0xpc3Q7Ci0gICAgbXV0
YWJsZSBJdGVtc01hcCB3cmFwcGVyQ2FjaGU7Ci0KLSAgICBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0
KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCi0gICAgICAgIDogd2tMaXN0KGxpc3RSZWYp
Ci0gICAgeyB9Ci19OwotCiAjZGVmaW5lIEVXS19CQUNLX0ZPUldBUkRfTElTVF9XS19HRVRfT1Jf
UkVUVVJOKGxpc3QsIHdrTGlzdF8sIC4uLikgIFwKICAgICBpZiAoIShsaXN0KSkgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRUlOQV9MT0df
Q1JJVCgibGlzdCBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE2OSwy
NSArMTUzLDMgQEAgdm9pZCBld2tfYmFja19mb3J3YXJkX2xpc3RfY2hhbmdlZChFd2tfQmFja19G
b3J3YXJkX0xpc3QqIGxpc3QsIFdLQmFja0ZvcndhcmRMaXMKICAgICAgICAgbGlzdC0+d3JhcHBl
ckNhY2hlLnJlbW92ZSh3a0l0ZW0pOwogICAgIH0KIH0KLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAq
IENvbnN0cnVjdHMgYSBFd2tfQmFja19Gb3J3YXJkX0xpc3QgZnJvbSBhIFdLQmFja0ZvcndhcmRM
aXN0UmVmLgotICovCi1Fd2tfQmFja19Gb3J3YXJkX0xpc3QqIGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9uZXcoV0tCYWNrRm9yd2FyZExpc3RSZWYgd2tCYWNrRm9yd2FyZExpc3RSZWYpCi17Ci0gICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHdrQmFja0ZvcndhcmRMaXN0UmVmLCAwKTsK
LQotICAgIHJldHVybiBuZXcgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KHdrQmFja0ZvcndhcmRMaXN0
UmVmKTsKLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIEZyZWVzIGEgRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0IG9iamVjdC4KLSAqLwotdm9pZCBld2tfYmFja19mb3J3YXJkX2xpc3RfZnJlZShFd2tf
QmFja19Gb3J3YXJkX0xpc3QqIGxpc3QpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4obGlzdCk7Ci0KLSAgICBkZWxldGUgbGlzdDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX3ByaXZhdGUuaAppbmRleCA1ZjVkNTA3Li4yNTQwNzRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9w
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tf
Zm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
V0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIC8q
KgogICogXHN0cnVjdCAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9wcml2YXRlLmgKaW5kZXggNTkyYTRmNC4uMjZiMDUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xp
c3RfcHJpdmF0ZS5oCkBAIC0yNiwxMiArMjYsMzIgQEAKICNpZm5kZWYgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X3ByaXZhdGVfaAogI2RlZmluZSBld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZV9o
CiAKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogdHlwZWRl
ZiBzdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdCBFd2tfQmFja19Gb3J3YXJkX0xpc3Q7CiAK
K3R5cGVkZWYgSGFzaE1hcDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFJlZlB0cjxFd2tfQmFj
a19Gb3J3YXJkX0xpc3RfSXRlbT4gPiBJdGVtc01hcDsKKworY2xhc3MgX0V3a19CYWNrX0Zvcndh
cmRfTGlzdCB7CitwdWJsaWM6CisgICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RSZWY+
IHdrTGlzdDsKKyAgICBtdXRhYmxlIEl0ZW1zTWFwIHdyYXBwZXJDYWNoZTsKKworICAgIHN0YXRp
YyBQYXNzT3duUHRyPF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Q+IGNyZWF0ZShXS0JhY2tGb3J3YXJk
TGlzdFJlZiBsaXN0UmVmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBfRXdr
X0JhY2tfRm9yd2FyZF9MaXN0KGxpc3RSZWYpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgX0V3a19CYWNrX0ZvcndhcmRfTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVm
KQorICAgICAgICA6IHdrTGlzdChsaXN0UmVmKQorICAgIHsgfQorfTsKKwogdm9pZCBld2tfYmFj
a19mb3J3YXJkX2xpc3RfY2hhbmdlZChFd2tfQmFja19Gb3J3YXJkX0xpc3QqLCBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgd2tBZGRlZEl0ZW0sIFdLQXJyYXlSZWYgd2tSZW1vdmVkSXRlbXMpOwot
RXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KFdLQmFja0Zv
cndhcmRMaXN0UmVmIHdrQmFja0ZvcndhcmRMaXN0UmVmKTsKLXZvaWQgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2ZyZWUoRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0KTsKIAogI2VuZGlmIC8vIGV3
a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAppbmRleCAxY2VjZTQxLi5lN2Y1MjIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCkBA
IC02OCw4ICs2OCw4IEBAIHN0cnVjdCBfRXdrX0NvbnRleHQgewogICAgIHVuc2lnbmVkIF9fcmVm
OyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAqLwogICAgIFdLUmV0YWlu
UHRyPFdLQ29udGV4dFJlZj4gY29udGV4dDsKIAotICAgIEV3a19Db29raWVfTWFuYWdlciogY29v
a2llTWFuYWdlcjsKLSAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZSogZmF2aWNvbkRhdGFiYXNlOwor
ICAgIE93blB0cjxFd2tfQ29va2llX01hbmFnZXI+IGNvb2tpZU1hbmFnZXI7CisgICAgT3duUHRy
PEV3a19GYXZpY29uX0RhdGFiYXNlPiBmYXZpY29uRGF0YWJhc2U7CiAjaWYgRU5BQkxFKEJBVFRF
UllfU1RBVFVTKQogICAgIFJlZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IGJhdHRlcnlQcm92aWRlcjsK
ICNlbmRpZgpAQCAtODksOCArODksNiBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0IHsKICAgICBfRXdr
X0NvbnRleHQoV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0UmVmKQogICAgICAgICA6
IF9fcmVmKDEpCiAgICAgICAgICwgY29udGV4dChjb250ZXh0UmVmKQotICAgICAgICAsIGNvb2tp
ZU1hbmFnZXIoMCkKLSAgICAgICAgLCBmYXZpY29uRGF0YWJhc2UoMCkKICAgICAgICAgLCByZXF1
ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIoY29udGV4dFJlZi5nZXQo
KSkpCiAgICAgICAgICwgaGlzdG9yeUNsaWVudCgpCiAgICAgewpAQCAtMTIwLDE1ICsxMTgsNiBA
QCBzdHJ1Y3QgX0V3a19Db250ZXh0IHsKICAgICAgICAgZXdrX2NvbnRleHRfZG93bmxvYWRfY2xp
ZW50X2F0dGFjaCh0aGlzKTsKICAgICAgICAgZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRfYXR0
YWNoKHRoaXMpOwogICAgIH0KLQotICAgIH5fRXdrX0NvbnRleHQoKQotICAgIHsKLSAgICAgICAg
aWYgKGNvb2tpZU1hbmFnZXIpCi0gICAgICAgICAgICBld2tfY29va2llX21hbmFnZXJfZnJlZShj
b29raWVNYW5hZ2VyKTsKLQotICAgICAgICBpZiAoZmF2aWNvbkRhdGFiYXNlKQotICAgICAgICAg
ICAgZXdrX2Zhdmljb25fZGF0YWJhc2VfZnJlZShmYXZpY29uRGF0YWJhc2UpOwotICAgIH0KIH07
CiAKIEV3a19Db250ZXh0KiBld2tfY29udGV4dF9yZWYoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQp
CkBAIC0xNTUsOSArMTQ0LDkgQEAgRXdrX0Nvb2tpZV9NYW5hZ2VyKiBld2tfY29udGV4dF9jb29r
aWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRleHQKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7CiAKICAgICBpZiAoIWV3a0Nv
bnRleHQtPmNvb2tpZU1hbmFnZXIpCi0gICAgICAgIGNvbnN0X2Nhc3Q8RXdrX0NvbnRleHQqPihl
d2tDb250ZXh0KS0+Y29va2llTWFuYWdlciA9IGV3a19jb29raWVfbWFuYWdlcl9uZXcoV0tDb250
ZXh0R2V0Q29va2llTWFuYWdlcihld2tDb250ZXh0LT5jb250ZXh0LmdldCgpKSk7CisgICAgICAg
IGNvbnN0X2Nhc3Q8RXdrX0NvbnRleHQqPihld2tDb250ZXh0KS0+Y29va2llTWFuYWdlciA9IEV3
a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoZXdrQ29u
dGV4dC0+Y29udGV4dC5nZXQoKSkpOwogCi0gICAgcmV0dXJuIGV3a0NvbnRleHQtPmNvb2tpZU1h
bmFnZXI7CisgICAgcmV0dXJuIGV3a0NvbnRleHQtPmNvb2tpZU1hbmFnZXIuZ2V0KCk7CiB9CiAK
IEV3a19GYXZpY29uX0RhdGFiYXNlKiBld2tfY29udGV4dF9mYXZpY29uX2RhdGFiYXNlX2dldChj
b25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKQEAgLTE3MCwxMCArMTU5LDEwIEBAIEV3a19G
YXZpY29uX0RhdGFiYXNlKiBld2tfY29udGV4dF9mYXZpY29uX2RhdGFiYXNlX2dldChjb25zdCBF
d2tfQ29udGV4dCogZXdrQ29uCiAgICAgICAgIFN0cmluZyBkYXRhYmFzZVBhdGggPSB3ZWJDb250
ZXh0LT5pY29uRGF0YWJhc2VQYXRoKCkgKyAiLyIgKyBXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmRl
ZmF1bHREYXRhYmFzZUZpbGVuYW1lKCk7CiAgICAgICAgIHdlYkNvbnRleHQtPnNldEljb25EYXRh
YmFzZVBhdGgoZGF0YWJhc2VQYXRoKTsKIAotICAgICAgICBjb25zdF9jYXN0PEV3a19Db250ZXh0
Kj4oZXdrQ29udGV4dCktPmZhdmljb25EYXRhYmFzZSA9IGV3a19mYXZpY29uX2RhdGFiYXNlX25l
dyhXS0NvbnRleHRHZXRJY29uRGF0YWJhc2UoZXdrQ29udGV4dC0+Y29udGV4dC5nZXQoKSkpOwor
ICAgICAgICBjb25zdF9jYXN0PEV3a19Db250ZXh0Kj4oZXdrQ29udGV4dCktPmZhdmljb25EYXRh
YmFzZSA9IEV3a19GYXZpY29uX0RhdGFiYXNlOjpjcmVhdGUoV0tDb250ZXh0R2V0SWNvbkRhdGFi
YXNlKGV3a0NvbnRleHQtPmNvbnRleHQuZ2V0KCkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gZXdr
Q29udGV4dC0+ZmF2aWNvbkRhdGFiYXNlOworICAgIHJldHVybiBld2tDb250ZXh0LT5mYXZpY29u
RGF0YWJhc2UuZ2V0KCk7CiB9CiAKIFdLQ29udGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRf
Z2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2Ns
aWVudC5jcHAKaW5kZXggYTQ2MWJkZi4uODgyMmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9j
bGllbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZV9w
cml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC05MywxMCArOTQsOSBAQCBzdGF0aWMg
dm9pZCBkaWRGYWlsKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS0Vy
cm9yUmVmIGVycm9yLCBjbwogICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2Nv
bnRleHRfZG93bmxvYWRfam9iX2dldCh0b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIGRvd25sb2Fk
SWQpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAKLSAgICBFd2tfRXJyb3IqIGV3a0Vycm9yID0g
ZXdrX2Vycm9yX25ldyhlcnJvcik7CisgICAgT3duUHRyPEV3a19FcnJvcj4gZXdrRXJyb3IgPSBF
d2tfRXJyb3I6OmNyZWF0ZShlcnJvcik7CiAgICAgZXdrX2Rvd25sb2FkX2pvYl9zdGF0ZV9zZXQo
ZG93bmxvYWQsIEVXS19ET1dOTE9BRF9KT0JfU1RBVEVfRkFJTEVEKTsKLSAgICBld2tfdmlld19k
b3dubG9hZF9qb2JfZmFpbGVkKGV3a19kb3dubG9hZF9qb2Jfdmlld19nZXQoZG93bmxvYWQpLCBk
b3dubG9hZCwgZXdrRXJyb3IpOwotICAgIGV3a19lcnJvcl9mcmVlKGV3a0Vycm9yKTsKKyAgICBl
d2tfdmlld19kb3dubG9hZF9qb2JfZmFpbGVkKGV3a19kb3dubG9hZF9qb2Jfdmlld19nZXQoZG93
bmxvYWQpLCBkb3dubG9hZCwgZXdrRXJyb3IuZ2V0KCkpOwogICAgIGV3a19jb250ZXh0X2Rvd25s
b2FkX2pvYl9yZW1vdmUodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCBkb3dubG9hZElkKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tp
ZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29r
aWVfbWFuYWdlci5jcHAKaW5kZXggYTUyMDQ3My4uNTJiN2NhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCkBA
IC0yOSw1OSArMjksMzUgQEAKICNpbmNsdWRlICJTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VU
eXBlLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgotI2lu
Y2x1ZGUgIldLQ29va2llTWFuYWdlci5oIgotI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5j
bHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNp
bmNsdWRlICJld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19lcnJv
cl9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1zdHJ1Y3QgQ29va2ll
X0NoYW5nZV9IYW5kbGVyIHsKLSAgICBFd2tfQ29va2llX01hbmFnZXJfQ2hhbmdlc19XYXRjaF9D
YiBjYWxsYmFjazsKLSAgICB2b2lkKiB1c2VyRGF0YTsKLQotICAgIENvb2tpZV9DaGFuZ2VfSGFu
ZGxlcigpCi0gICAgICAgIDogY2FsbGJhY2soMCkKLSAgICAgICAgLCB1c2VyRGF0YSgwKQotICAg
IHsgfQotCi0gICAgQ29va2llX0NoYW5nZV9IYW5kbGVyKEV3a19Db29raWVfTWFuYWdlcl9DaGFu
Z2VzX1dhdGNoX0NiIF9jYWxsYmFjaywgdm9pZCogX3VzZXJEYXRhKQotICAgICAgICA6IGNhbGxi
YWNrKF9jYWxsYmFjaykKLSAgICAgICAgLCB1c2VyRGF0YShfdXNlckRhdGEpCi0gICAgeyB9Ci19
OwotCiBzdGF0aWMgdm9pZCBjb29raWVzRGlkQ2hhbmdlKFdLQ29va2llTWFuYWdlclJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19Db29raWVfTWFu
YWdlcgotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGNvb2tpZSBtYW5hZ2VyIGRhdGEuCi0gKi8K
LXN0cnVjdCBfRXdrX0Nvb2tpZV9NYW5hZ2VyIHsKLSAgICBXS1JldGFpblB0cjxXS0Nvb2tpZU1h
bmFnZXJSZWY+IHdrQ29va2llTWFuYWdlcjsKLSAgICBDb29raWVfQ2hhbmdlX0hhbmRsZXIgY2hh
bmdlSGFuZGxlcjsKLQotICAgIF9Fd2tfQ29va2llX01hbmFnZXIoV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXJSZWYpCi0gICAgICAgIDogd2tDb29raWVNYW5hZ2VyKGNvb2tpZU1hbmFn
ZXJSZWYpCi0gICAgewotICAgICAgICBXS0Nvb2tpZU1hbmFnZXJDbGllbnQgd2tDb29raWVNYW5h
Z2VyQ2xpZW50ID0gewotICAgICAgICAgICAga1dLQ29va2llTWFuYWdlckNsaWVudEN1cnJlbnRW
ZXJzaW9uLAotICAgICAgICAgICAgdGhpcywgLy8gY2xpZW50SW5mbwotICAgICAgICAgICAgY29v
a2llc0RpZENoYW5nZQotICAgICAgICB9OwotICAgICAgICBXS0Nvb2tpZU1hbmFnZXJTZXRDbGll
bnQod2tDb29raWVNYW5hZ2VyLmdldCgpLCAmd2tDb29raWVNYW5hZ2VyQ2xpZW50KTsKLSAgICB9
CitfRXdrX0Nvb2tpZV9NYW5hZ2VyOjpfRXdrX0Nvb2tpZV9NYW5hZ2VyKFdLQ29va2llTWFuYWdl
clJlZiBjb29raWVNYW5hZ2VyUmVmKQorICAgIDogd2tDb29raWVNYW5hZ2VyKGNvb2tpZU1hbmFn
ZXJSZWYpCit7CisgICAgV0tDb29raWVNYW5hZ2VyQ2xpZW50IHdrQ29va2llTWFuYWdlckNsaWVu
dCA9IHsKKyAgICAgICAga1dLQ29va2llTWFuYWdlckNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAg
ICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIGNvb2tpZXNEaWRDaGFuZ2UKKyAgICB9
OworICAgIFdLQ29va2llTWFuYWdlclNldENsaWVudCh3a0Nvb2tpZU1hbmFnZXIuZ2V0KCksICZ3
a0Nvb2tpZU1hbmFnZXJDbGllbnQpOworfQogCi0gICAgfl9Fd2tfQ29va2llX01hbmFnZXIoKQot
ICAgIHsKLSAgICAgICAgaWYgKGNoYW5nZUhhbmRsZXIuY2FsbGJhY2spCi0gICAgICAgICAgICBX
S0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyh3a0Nvb2tpZU1hbmFnZXIu
Z2V0KCkpOwotICAgIH0KLX07CitfRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+X0V3a19Db29raWVfTWFu
YWdlcigpCit7CisgICAgaWYgKGNoYW5nZUhhbmRsZXIuY2FsbGJhY2spCisgICAgICAgIFdLQ29v
a2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKHdrQ29va2llTWFuYWdlci5nZXQo
KSk7Cit9CiAKICNkZWZpbmUgRVdLX0NPT0tJRV9NQU5BR0VSX1dLX0dFVF9PUl9SRVRVUk4obWFu
YWdlciwgd2tNYW5hZ2VyXywgLi4uKSAgICBcCiAgICAgaWYgKCEobWFuYWdlcikpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTQyLDEy
ICsxMTgsMTAgQEAgc3RydWN0IEdldF9Qb2xpY3lfQXN5bmNfRGF0YSB7CiBzdGF0aWMgdm9pZCBn
ZXRBY2NlcHRQb2xpY3lDYWxsYmFjayhXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBX
S0Vycm9yUmVmIHdrRXJyb3IsIHZvaWQqIGRhdGEpCiB7CiAgICAgR2V0X1BvbGljeV9Bc3luY19E
YXRhKiBjYWxsYmFja0RhdGEgPSBzdGF0aWNfY2FzdDxHZXRfUG9saWN5X0FzeW5jX0RhdGEqPihk
YXRhKTsKLSAgICBFd2tfRXJyb3IqIGV3a0Vycm9yID0gd2tFcnJvciA/IGV3a19lcnJvcl9uZXco
d2tFcnJvcikgOiAwOworICAgIE93blB0cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9y
OjpjcmVhdGUod2tFcnJvcik7CiAKLSAgICBjYWxsYmFja0RhdGEtPmNhbGxiYWNrKHN0YXRpY19j
YXN0PEV3a19Db29raWVfQWNjZXB0X1BvbGljeT4ocG9saWN5KSwgZXdrRXJyb3IsIGNhbGxiYWNr
RGF0YS0+dXNlckRhdGEpOworICAgIGNhbGxiYWNrRGF0YS0+Y2FsbGJhY2soc3RhdGljX2Nhc3Q8
RXdrX0Nvb2tpZV9BY2NlcHRfUG9saWN5Pihwb2xpY3kpLCBld2tFcnJvci5nZXQoKSwgY2FsbGJh
Y2tEYXRhLT51c2VyRGF0YSk7CiAKLSAgICBpZiAoZXdrRXJyb3IpCi0gICAgICAgIGV3a19lcnJv
cl9mcmVlKGV3a0Vycm9yKTsKICAgICBkZWxldGUgY2FsbGJhY2tEYXRhOwogfQogCkBAIC0xNzIs
NyArMTQ2LDcgQEAgc3RhdGljIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNDYWxsYmFjayhX
S0FycmF5UmVmIHdrSG9zdG5hbWVzLCBXS0Vycm9yUmVmIHcKIHsKICAgICBFaW5hX0xpc3QqIGhv
c3RuYW1lcyA9IDA7CiAgICAgR2V0X0hvc3RuYW1lc19Bc3luY19EYXRhKiBjYWxsYmFja0RhdGEg
PSBzdGF0aWNfY2FzdDxHZXRfSG9zdG5hbWVzX0FzeW5jX0RhdGEqPihjb250ZXh0KTsKLSAgICBF
d2tfRXJyb3IqIGV3a0Vycm9yID0gd2tFcnJvciA/IGV3a19lcnJvcl9uZXcod2tFcnJvcikgOiAw
OworICAgIE93blB0cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9yOjpjcmVhdGUod2tF
cnJvcik7CiAKICAgICBjb25zdCBzaXplX3QgaG9zdG5hbWVDb3VudCA9IFdLQXJyYXlHZXRTaXpl
KHdrSG9zdG5hbWVzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhvc3RuYW1lQ291bnQ7
ICsraSkgewpAQCAtMTgzLDEzICsxNTcsMTIgQEAgc3RhdGljIHZvaWQgZ2V0SG9zdG5hbWVzV2l0
aENvb2tpZXNDYWxsYmFjayhXS0FycmF5UmVmIHdrSG9zdG5hbWVzLCBXS0Vycm9yUmVmIHcKICAg
ICAgICAgaG9zdG5hbWVzID0gZWluYV9saXN0X2FwcGVuZChob3N0bmFtZXMsIGVpbmFfc3RyaW5n
c2hhcmVfYWRkKGhvc3RuYW1lLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB9CiAKLSAgICBjYWxsYmFj
a0RhdGEtPmNhbGxiYWNrKGhvc3RuYW1lcywgZXdrRXJyb3IsIGNhbGxiYWNrRGF0YS0+dXNlckRh
dGEpOworICAgIGNhbGxiYWNrRGF0YS0+Y2FsbGJhY2soaG9zdG5hbWVzLCBld2tFcnJvci5nZXQo
KSwgY2FsbGJhY2tEYXRhLT51c2VyRGF0YSk7CiAKICAgICB2b2lkKiBpdGVtOwogICAgIEVJTkFf
TElTVF9GUkVFKGhvc3RuYW1lcywgaXRlbSkKICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHN0
YXRpY19jYXN0PEVpbmFfU3RyaW5nc2hhcmUqPihpdGVtKSk7Ci0gICAgaWYgKGV3a0Vycm9yKQot
ICAgICAgICBld2tfZXJyb3JfZnJlZShld2tFcnJvcik7CisKICAgICBkZWxldGUgY2FsbGJhY2tE
YXRhOwogfQogCkBAIC0yMzIsMjUgKzIwNSwzIEBAIHZvaWQgZXdrX2Nvb2tpZV9tYW5hZ2VyX2No
YW5nZXNfd2F0Y2goRXdrX0Nvb2tpZV9NYW5hZ2VyKiBtYW5hZ2VyLCBFd2tfQ29va2llX01hCiAg
ICAgZWxzZQogICAgICAgICBXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyh3a01hbmFnZXIpOwogfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICogRnJlZXMgYSBFd2tfQ29v
a2llX01hbmFnZXIgb2JqZWN0LgotICovCi12b2lkIGV3a19jb29raWVfbWFuYWdlcl9mcmVlKEV3
a19Db29raWVfTWFuYWdlciogbWFuYWdlcikKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihtYW5hZ2VyKTsKLQotICAgIGRlbGV0ZSBtYW5hZ2VyOwotfQotCi0vKioKLSAqIEBpbnRl
cm5hbAotICogQ29uc3RydWN0cyBhIEV3a19Db29raWVfTWFuYWdlciBmcm9tIGEgV0tDb29raWVN
YW5hZ2VyUmVmLgotICovCi1Fd2tfQ29va2llX01hbmFnZXIqIGV3a19jb29raWVfbWFuYWdlcl9u
ZXcoV0tDb29raWVNYW5hZ2VyUmVmIHdrQ29va2llTWFuYWdlcikKLXsKLSAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwod2tDb29raWVNYW5hZ2VyLCAwKTsKLQotICAgIHJldHVybiBu
ZXcgRXdrX0Nvb2tpZV9NYW5hZ2VyKHdrQ29va2llTWFuYWdlcik7Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2Vy
X3ByaXZhdGUuaAppbmRleCA2NDI4NWM5Li42OTEzMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlcl9wcml2
YXRlLmgKQEAgLTI2LDExICsyNiw0NCBAQAogI2lmbmRlZiBld2tfY29va2llX21hbmFnZXJfcHJp
dmF0ZV9oCiAjZGVmaW5lIGV3a19jb29raWVfbWFuYWdlcl9wcml2YXRlX2gKIAorI2luY2x1ZGUg
IldLQ29va2llTWFuYWdlci5oIgorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSAi
ZXdrX2Nvb2tpZV9tYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorCitzdHJ1Y3QgQ29va2llX0NoYW5nZV9IYW5kbGVyIHsK
KyAgICBFd2tfQ29va2llX01hbmFnZXJfQ2hhbmdlc19XYXRjaF9DYiBjYWxsYmFjazsKKyAgICB2
b2lkKiB1c2VyRGF0YTsKKworICAgIENvb2tpZV9DaGFuZ2VfSGFuZGxlcigpCisgICAgICAgIDog
Y2FsbGJhY2soMCkKKyAgICAgICAgLCB1c2VyRGF0YSgwKQorICAgIHsgfQorCisgICAgQ29va2ll
X0NoYW5nZV9IYW5kbGVyKEV3a19Db29raWVfTWFuYWdlcl9DaGFuZ2VzX1dhdGNoX0NiIF9jYWxs
YmFjaywgdm9pZCogX3VzZXJEYXRhKQorICAgICAgICA6IGNhbGxiYWNrKF9jYWxsYmFjaykKKyAg
ICAgICAgLCB1c2VyRGF0YShfdXNlckRhdGEpCisgICAgeyB9Cit9OworCiAKIHR5cGVkZWYgc3Ry
dWN0IF9Fd2tfQ29va2llX01hbmFnZXIgRXdrX0Nvb2tpZV9NYW5hZ2VyOwogCi1Fd2tfQ29va2ll
X01hbmFnZXIqIGV3a19jb29raWVfbWFuYWdlcl9uZXcoV0tDb29raWVNYW5hZ2VyUmVmIHdrQ29v
a2llTWFuYWdlcik7Ci12b2lkIGV3a19jb29raWVfbWFuYWdlcl9mcmVlKEV3a19Db29raWVfTWFu
YWdlciogbWFuYWdlcik7CitjbGFzcyBfRXdrX0Nvb2tpZV9NYW5hZ2VyIHsKK3B1YmxpYzoKKyAg
ICBXS1JldGFpblB0cjxXS0Nvb2tpZU1hbmFnZXJSZWY+IHdrQ29va2llTWFuYWdlcjsKKyAgICBD
b29raWVfQ2hhbmdlX0hhbmRsZXIgY2hhbmdlSGFuZGxlcjsKKworICAgIHN0YXRpYyBQYXNzT3du
UHRyPF9Fd2tfQ29va2llX01hbmFnZXI+IGNyZWF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlclJlZikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgX0V3a19Db29r
aWVfTWFuYWdlcihjb29raWVNYW5hZ2VyUmVmKSk7CisgICAgfQorCisgICAgfl9Fd2tfQ29va2ll
X01hbmFnZXIoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBfRXdrX0Nvb2tpZV9NYW5hZ2Vy
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKTsKK307CiAKICNlbmRpZiAvLyBl
d2tfY29va2llX21hbmFnZXJfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Vycm9yLmNwcAppbmRleCBhN2Q1NzZkLi5mZWQ4ZTJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTI3LDM0ICsy
NywyMCBAQAogI2luY2x1ZGUgImV3a19lcnJvci5oIgogCiAjaW5jbHVkZSAiRXJyb3JzRWZsLmgi
Ci0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIK
ICNpbmNsdWRlICJXS1VSTC5oIgogI2luY2x1ZGUgImV3a19lcnJvcl9wcml2YXRlLmgiCiAjaW5j
bHVkZSA8V0tBUElDYXN0Lmg+Ci0jaW5jbHVkZSA8V0tFcnJvci5oPgotI2luY2x1ZGUgPFdLUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXN0cnVjdCBfRXdrX0Vycm9y
IHsKLSAgICBXS1JldGFpblB0cjxXS0Vycm9yUmVmPiB3a0Vycm9yOwotCi0gICAgV0tFaW5hU2hh
cmVkU3RyaW5nIHVybDsKLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzY3JpcHRpb247Ci0KLSAg
ICBfRXdrX0Vycm9yKFdLRXJyb3JSZWYgZXJyb3JSZWYpCi0gICAgICAgIDogd2tFcnJvcihlcnJv
clJlZikKLSAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tFcnJvckNvcHlGYWlsaW5nVVJMKGVycm9y
UmVmKSkKLSAgICAgICAgLCBkZXNjcmlwdGlvbihBZG9wdFdLLCBXS0Vycm9yQ29weUxvY2FsaXpl
ZERlc2NyaXB0aW9uKGVycm9yUmVmKSkKLSAgICB7IH0KLQotICAgIH5fRXdrX0Vycm9yKCkKLSAg
ICB7Ci0gICAgfQotfTsKK19Fd2tfRXJyb3I6Ol9Fd2tfRXJyb3IoV0tFcnJvclJlZiBlcnJvclJl
ZikKKyAgICA6IHdrRXJyb3IoZXJyb3JSZWYpCisgICAgLCB1cmwoQWRvcHRXSywgV0tFcnJvckNv
cHlGYWlsaW5nVVJMKGVycm9yUmVmKSkKKyAgICAsIGRlc2NyaXB0aW9uKEFkb3B0V0ssIFdLRXJy
b3JDb3B5TG9jYWxpemVkRGVzY3JpcHRpb24oZXJyb3JSZWYpKQoreyB9CiAKICNkZWZpbmUgRVdL
X0VSUk9SX1dLX0dFVF9PUl9SRVRVUk4oZXJyb3IsIHdrRXJyb3JfLCAuLi4pICAgIFwKICAgICBp
ZiAoIShlcnJvcikpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XApAQCAtNjcsMTcgKzUzLDYgQEAgc3RydWN0IF9Fd2tfRXJyb3IgewogICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFdL
RXJyb3JSZWYgd2tFcnJvcl8gPSAoZXJyb3IpLT53a0Vycm9yLmdldCgpCiAKLS8qKgotICogQGlu
dGVybmFsCi0gKiBGcmVlcyB0aGUgZ2l2ZW4gb2JqZWN0LgotICovCi12b2lkIGV3a19lcnJvcl9m
cmVlKEV3a19FcnJvciogZXJyb3IpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4o
ZXJyb3IpOwotCi0gICAgZGVsZXRlIGVycm9yOwotfQotCiBFd2tfRXJyb3JfVHlwZSBld2tfZXJy
b3JfdHlwZV9nZXQoY29uc3QgRXdrX0Vycm9yKiBlcnJvcikKIHsKICAgICBFV0tfRVJST1JfV0tf
R0VUX09SX1JFVFVSTihlcnJvciwgd2tFcnJvciwgRVdLX0VSUk9SX1RZUEVfTk9ORSk7CkBAIC0x
MjUsMTAgKzEwMCwzIEBAIEVpbmFfQm9vbCBld2tfZXJyb3JfY2FuY2VsbGF0aW9uX2dldChjb25z
dCBFd2tfRXJyb3IqIGVycm9yKQogCiAgICAgcmV0dXJuIHRvSW1wbCh3a0Vycm9yKS0+cGxhdGZv
cm1FcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCk7CiB9Ci0KLUV3a19FcnJvciogZXdrX2Vycm9yX25l
dyhXS0Vycm9yUmVmIGVycm9yKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChlcnJvciwgMCk7Ci0KLSAgICByZXR1cm4gbmV3IEV3a19FcnJvcihlcnJvcik7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUu
aAppbmRleCAyZjAxOTg4Li41YWU0NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvcl9wcml2YXRlLmgKQEAgLTI2LDExICsyNiwyOSBAQAog
I2lmbmRlZiBld2tfZXJyb3JfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19lcnJvcl9wcml2YXRlX2gK
IAorI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgPFdLRXJyb3IuaD4K
KyNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IHR5cGVkZWYgc3RydWN0IF9Fd2tfRXJyb3IgRXdrX0Vycm9yOwogCi1Fd2tfRXJyb3IqIGV3a19l
cnJvcl9uZXcoV0tFcnJvclJlZiBlcnJvcik7Ci12b2lkIGV3a19lcnJvcl9mcmVlKEV3a19FcnJv
ciogZXJyb3IpOworY2xhc3MgX0V3a19FcnJvciB7CitwdWJsaWM6CisgICAgV0tSZXRhaW5QdHI8
V0tFcnJvclJlZj4gd2tFcnJvcjsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOworICAgIFdL
RWluYVNoYXJlZFN0cmluZyBkZXNjcmlwdGlvbjsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPF9F
d2tfRXJyb3I+IGNyZWF0ZShXS0Vycm9yUmVmIGVycm9yUmVmKQorICAgIHsKKyAgICAgICAgaWYg
KCFlcnJvclJlZikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgX0V3a19FcnJvcihlcnJvclJlZikpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBfRXdrX0Vycm9yKFdLRXJyb3JSZWYgZXJyb3JSZWYpOworfTsKIAogI2Vu
ZGlmIC8vIGV3a19lcnJvcl9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmNwcAppbmRleCA4MGUwZTY0
Li42ZTUyYzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZmF2aWNvbl9kYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2UuY3BwCkBAIC0yNyw4MSArMjcsMzEgQEAKICNpbmNs
dWRlICJld2tfZmF2aWNvbl9kYXRhYmFzZS5oIgogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0j
aW5jbHVkZSAiV0tJY29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2lu
Y2x1ZGUgIldLVVJMLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
ZlB0ckNhaXJvLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKLXN0cnVjdCBJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhIHsKLSAgICBF
d2tfRmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYiBjYWxsYmFjazsKLSAgICB2b2lkKiB1
c2VyRGF0YTsKLQotICAgIEljb25DaGFuZ2VDYWxsYmFja0RhdGEoKQotICAgICAgICA6IGNhbGxi
YWNrKDApCi0gICAgICAgICwgdXNlckRhdGEoMCkKLSAgICB7IH0KLQotICAgIEljb25DaGFuZ2VD
YWxsYmFja0RhdGEoRXdrX0Zhdmljb25fRGF0YWJhc2VfSWNvbl9DaGFuZ2VfQ2IgX2NhbGxiYWNr
LCB2b2lkKiBfdXNlckRhdGEpCi0gICAgICAgIDogY2FsbGJhY2soX2NhbGxiYWNrKQotICAgICAg
ICAsIHVzZXJEYXRhKF91c2VyRGF0YSkKLSAgICB7IH0KLX07Ci0KLXN0cnVjdCBJY29uUmVxdWVz
dENhbGxiYWNrRGF0YSB7Ci0gICAgRXdrX0Zhdmljb25fRGF0YWJhc2VfQXN5bmNfSWNvbl9HZXRf
Q2IgY2FsbGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7Ci0gICAgRXZhcyogZXZhczsKLQotICAg
IEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhKCkKLSAgICAgICAgOiBjYWxsYmFjaygwKQotICAgICAg
ICAsIHVzZXJEYXRhKDApCi0gICAgICAgICwgZXZhcygwKQotICAgIHsgfQotCi0gICAgSWNvblJl
cXVlc3RDYWxsYmFja0RhdGEoRXdrX0Zhdmljb25fRGF0YWJhc2VfQXN5bmNfSWNvbl9HZXRfQ2Ig
X2NhbGxiYWNrLCB2b2lkKiBfdXNlckRhdGEsIEV2YXMqIF9ldmFzKQotICAgICAgICA6IGNhbGxi
YWNrKF9jYWxsYmFjaykKLSAgICAgICAgLCB1c2VyRGF0YShfdXNlckRhdGEpCi0gICAgICAgICwg
ZXZhcyhfZXZhcykKLSAgICB7IH0KLX07Ci0KIHN0YXRpYyB2b2lkIGRpZENoYW5nZUljb25Gb3JQ
YWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZSwgV0tVUkxSZWYgcGFnZVVSTCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiBzdGF0aWMgdm9pZCBpY29uRGF0YVJlYWR5Rm9yUGFn
ZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi10eXBlZGVmIEhhc2hNYXA8RXdrX0Zhdmljb25fRGF0
YWJhc2VfSWNvbl9DaGFuZ2VfQ2IsIEljb25DaGFuZ2VDYWxsYmFja0RhdGE+IENoYW5nZUxpc3Rl
bmVyTWFwOwotdHlwZWRlZiBWZWN0b3I8SWNvblJlcXVlc3RDYWxsYmFja0RhdGE+IFBlbmRpbmdJ
Y29uUmVxdWVzdFZlY3RvcjsKLXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcgLyogcGFnZVVSTCAqLywg
UGVuZGluZ0ljb25SZXF1ZXN0VmVjdG9yPiBQZW5kaW5nSWNvblJlcXVlc3RNYXA7Ci0KLS8qKgot
ICogXHN0cnVjdCAgX0V3a19GYXZpY29uX0RhdGFiYXNlCi0gKiBAYnJpZWYgICBDb250YWlucyB0
aGUgZmF2aWNvbiBkYXRhYmFzZSBkYXRhLgotICovCi1zdHJ1Y3QgX0V3a19GYXZpY29uX0RhdGFi
YXNlIHsKLSAgICBXS1JldGFpblB0cjxXS0ljb25EYXRhYmFzZVJlZj4gd2tJY29uRGF0YWJhc2U7
Ci0gICAgQ2hhbmdlTGlzdGVuZXJNYXAgY2hhbmdlTGlzdGVuZXJzOwotICAgIFBlbmRpbmdJY29u
UmVxdWVzdE1hcCBpY29uUmVxdWVzdHM7Ci0KLSAgICBfRXdrX0Zhdmljb25fRGF0YWJhc2UoV0tJ
Y29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlUmVmKQotICAgICAgICA6ICB3a0ljb25EYXRhYmFz
ZShpY29uRGF0YWJhc2VSZWYpCi0gICAgewotICAgICAgICBXS0ljb25EYXRhYmFzZUNsaWVudCBp
Y29uRGF0YWJhc2VDbGllbnQ7Ci0gICAgICAgIG1lbXNldCgmaWNvbkRhdGFiYXNlQ2xpZW50LCAw
LCBzaXplb2YoV0tJY29uRGF0YWJhc2VDbGllbnQpKTsKLSAgICAgICAgaWNvbkRhdGFiYXNlQ2xp
ZW50LnZlcnNpb24gPSBrV0tJY29uRGF0YWJhc2VDbGllbnRDdXJyZW50VmVyc2lvbjsKLSAgICAg
ICAgaWNvbkRhdGFiYXNlQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOwotICAgICAgICBpY29uRGF0
YWJhc2VDbGllbnQuZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwgPSBkaWRDaGFuZ2VJY29uRm9yUGFn
ZVVSTDsKLSAgICAgICAgaWNvbkRhdGFiYXNlQ2xpZW50Lmljb25EYXRhUmVhZHlGb3JQYWdlVVJM
ID0gaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkw7Ci0gICAgICAgIFdLSWNvbkRhdGFiYXNlU2V0SWNv
bkRhdGFiYXNlQ2xpZW50KHdrSWNvbkRhdGFiYXNlLmdldCgpLCAmaWNvbkRhdGFiYXNlQ2xpZW50
KTsKLSAgICB9Ci19OworX0V3a19GYXZpY29uX0RhdGFiYXNlOjpfRXdrX0Zhdmljb25fRGF0YWJh
c2UoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlUmVmKQorICAgIDogIHdrSWNvbkRhdGFi
YXNlKGljb25EYXRhYmFzZVJlZikKK3sKKyAgICBXS0ljb25EYXRhYmFzZUNsaWVudCBpY29uRGF0
YWJhc2VDbGllbnQ7CisgICAgbWVtc2V0KCZpY29uRGF0YWJhc2VDbGllbnQsIDAsIHNpemVvZihX
S0ljb25EYXRhYmFzZUNsaWVudCkpOworICAgIGljb25EYXRhYmFzZUNsaWVudC52ZXJzaW9uID0g
a1dLSWNvbkRhdGFiYXNlQ2xpZW50Q3VycmVudFZlcnNpb247CisgICAgaWNvbkRhdGFiYXNlQ2xp
ZW50LmNsaWVudEluZm8gPSB0aGlzOworICAgIGljb25EYXRhYmFzZUNsaWVudC5kaWRDaGFuZ2VJ
Y29uRm9yUGFnZVVSTCA9IGRpZENoYW5nZUljb25Gb3JQYWdlVVJMOworICAgIGljb25EYXRhYmFz
ZUNsaWVudC5pY29uRGF0YVJlYWR5Rm9yUGFnZVVSTCA9IGljb25EYXRhUmVhZHlGb3JQYWdlVVJM
OworICAgIFdLSWNvbkRhdGFiYXNlU2V0SWNvbkRhdGFiYXNlQ2xpZW50KHdrSWNvbkRhdGFiYXNl
LmdldCgpLCAmaWNvbkRhdGFiYXNlQ2xpZW50KTsKK30KIAogc3RhdGljIHZvaWQgZGlkQ2hhbmdl
SWNvbkZvclBhZ2VVUkwoV0tJY29uRGF0YWJhc2VSZWYsIFdLVVJMUmVmIHBhZ2VVUkxSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CkBAIC0xNTEsMjggKzEwMSw2IEBAIHN0YXRpYyB2b2lk
IGljb25EYXRhUmVhZHlGb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiBwYWdl
VVJMLCBjb25zdCB2CiAgICAgfQogfQogCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ29uc3RydWN0
cyBhIEV3a19GYXZpY29uX0RhdGFiYXNlIGluc3RhbmNlLgotICovCi1Fd2tfRmF2aWNvbl9EYXRh
YmFzZSogZXdrX2Zhdmljb25fZGF0YWJhc2VfbmV3KFdLSWNvbkRhdGFiYXNlUmVmIHdrSWNvbkRh
dGFiYXNlKQotewotICAgIEFTU0VSVCh3a0ljb25EYXRhYmFzZSk7Ci0KLSAgICByZXR1cm4gbmV3
IEV3a19GYXZpY29uX0RhdGFiYXNlKHdrSWNvbkRhdGFiYXNlKTsKLX0KLQotLyoqCi0gKiBAaW50
ZXJuYWwKLSAqIEZyZWVzIGEgRXdrX0Zhdmljb25fRGF0YWJhc2UgaW5zdGFuY2UuCi0gKi8KLXZv
aWQgZXdrX2Zhdmljb25fZGF0YWJhc2VfZnJlZShFd2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrSWNv
bkRhdGFiYXNlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGV3a0ljb25EYXRh
YmFzZSk7Ci0KLSAgICBkZWxldGUgZXdrSWNvbkRhdGFiYXNlOwotfQotCiBjb25zdCBjaGFyKiBl
d2tfZmF2aWNvbl9kYXRhYmFzZV9pY29uX3VybF9nZXQoRXdrX0Zhdmljb25fRGF0YWJhc2UqIGV3
a0ljb25EYXRhYmFzZSwgY29uc3QgY2hhciogcGFnZVVSTCkKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoZXdrSWNvbkRhdGFiYXNlLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNl
X3ByaXZhdGUuaAppbmRleCA5OGVjZjkwLi5jNTg4NDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2Vf
cHJpdmF0ZS5oCkBAIC0yNiw5ICsyNiw2MiBAQAogI2lmbmRlZiBld2tfZmF2aWNvbl9kYXRhYmFz
ZV9wcml2YXRlX2gKICNkZWZpbmUgZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZV9oCiAKKyNp
bmNsdWRlICJXS0ljb25EYXRhYmFzZS5oIgorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5j
bHVkZSAiZXdrX2Zhdmljb25fZGF0YWJhc2UuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKLUV3a19GYXZpY29uX0RhdGFiYXNlKiBld2tf
ZmF2aWNvbl9kYXRhYmFzZV9uZXcoV0tJY29uRGF0YWJhc2VSZWYgd2tJY29uRGF0YWJhc2UpOwot
dm9pZCBld2tfZmF2aWNvbl9kYXRhYmFzZV9mcmVlKEV3a19GYXZpY29uX0RhdGFiYXNlKiBld2tJ
Y29uRGF0YWJhc2UpOworc3RydWN0IEljb25DaGFuZ2VDYWxsYmFja0RhdGEgeworICAgIEV3a19G
YXZpY29uX0RhdGFiYXNlX0ljb25fQ2hhbmdlX0NiIGNhbGxiYWNrOworICAgIHZvaWQqIHVzZXJE
YXRhOworCisgICAgSWNvbkNoYW5nZUNhbGxiYWNrRGF0YSgpCisgICAgICAgIDogY2FsbGJhY2so
MCkKKyAgICAgICAgLCB1c2VyRGF0YSgwKQorICAgIHsgfQorCisgICAgSWNvbkNoYW5nZUNhbGxi
YWNrRGF0YShFd2tfRmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYiBfY2FsbGJhY2ssIHZv
aWQqIF91c2VyRGF0YSkKKyAgICAgICAgOiBjYWxsYmFjayhfY2FsbGJhY2spCisgICAgICAgICwg
dXNlckRhdGEoX3VzZXJEYXRhKQorICAgIHsgfQorfTsKKworc3RydWN0IEljb25SZXF1ZXN0Q2Fs
bGJhY2tEYXRhIHsKKyAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZV9Bc3luY19JY29uX0dldF9DYiBj
YWxsYmFjazsKKyAgICB2b2lkKiB1c2VyRGF0YTsKKyAgICBFdmFzKiBldmFzOworCisgICAgSWNv
blJlcXVlc3RDYWxsYmFja0RhdGEoKQorICAgICAgICA6IGNhbGxiYWNrKDApCisgICAgICAgICwg
dXNlckRhdGEoMCkKKyAgICAgICAgLCBldmFzKDApCisgICAgeyB9CisKKyAgICBJY29uUmVxdWVz
dENhbGxiYWNrRGF0YShFd2tfRmF2aWNvbl9EYXRhYmFzZV9Bc3luY19JY29uX0dldF9DYiBfY2Fs
bGJhY2ssIHZvaWQqIF91c2VyRGF0YSwgRXZhcyogX2V2YXMpCisgICAgICAgIDogY2FsbGJhY2so
X2NhbGxiYWNrKQorICAgICAgICAsIHVzZXJEYXRhKF91c2VyRGF0YSkKKyAgICAgICAgLCBldmFz
KF9ldmFzKQorICAgIHsgfQorfTsKKwordHlwZWRlZiBIYXNoTWFwPEV3a19GYXZpY29uX0RhdGFi
YXNlX0ljb25fQ2hhbmdlX0NiLCBJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhPiBDaGFuZ2VMaXN0ZW5l
ck1hcDsKK3R5cGVkZWYgVmVjdG9yPEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhPiBQZW5kaW5nSWNv
blJlcXVlc3RWZWN0b3I7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nIC8qIHBhZ2VVUkwgKi8sIFBl
bmRpbmdJY29uUmVxdWVzdFZlY3Rvcj4gUGVuZGluZ0ljb25SZXF1ZXN0TWFwOworCitjbGFzcyBf
RXdrX0Zhdmljb25fRGF0YWJhc2UgeworcHVibGljOgorICAgIFdLUmV0YWluUHRyPFdLSWNvbkRh
dGFiYXNlUmVmPiB3a0ljb25EYXRhYmFzZTsKKyAgICBDaGFuZ2VMaXN0ZW5lck1hcCBjaGFuZ2VM
aXN0ZW5lcnM7CisgICAgUGVuZGluZ0ljb25SZXF1ZXN0TWFwIGljb25SZXF1ZXN0czsKKworICAg
IHN0YXRpYyBQYXNzT3duUHRyPF9Fd2tfRmF2aWNvbl9EYXRhYmFzZT4gY3JlYXRlKFdLSWNvbkRh
dGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgX0V3a19GYXZpY29uX0RhdGFiYXNlKGljb25EYXRhYmFzZVJlZikpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBfRXdrX0Zhdmljb25fRGF0YWJhc2UoV0tJY29uRGF0YWJh
c2VSZWYgaWNvbkRhdGFiYXNlUmVmKTsKK307CiAKICNlbmRpZiAvLyBld2tfZmF2aWNvbl9kYXRh
YmFzZV9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5jcHAKaW5kZXggNTY2YmJlZi4uZDBhM2Y2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVf
aXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVw
X21lbnVfaXRlbS5jcHAKQEAgLTI2LDY1ICsyNiwyNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW0uaCIKIAotI2luY2x1ZGUgIldLRWluYVNoYXJl
ZFN0cmluZy5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfUG9wdXBfTWVu
dV9JdGVtCi0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgcG9wdXAgbWVudSBkYXRhLgotICovCi1z
dHJ1Y3QgX0V3a19Qb3B1cF9NZW51X0l0ZW0gewotICAgIEV3a19Qb3B1cF9NZW51X0l0ZW1fVHlw
ZSB0eXBlOwotICAgIEV3a19UZXh0X0RpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uOwotCi0gICAgYm9v
bCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VuYWJsZWQ7Ci0gICAgYm9v
bCBpc0xhYmVsOwotICAgIGJvb2wgaXNTZWxlY3RlZDsKLQotICAgIFdLRWluYVNoYXJlZFN0cmlu
ZyB0ZXh0OwotICAgIFdLRWluYVNoYXJlZFN0cmluZyB0b29sVGlwOwotICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBhY2Nlc3NpYmlsaXR5VGV4dDsKLQotICAgIGV4cGxpY2l0IF9Fd2tfUG9wdXBfTWVu
dV9JdGVtKGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVtKQotICAgICAgICA6IHR5cGUo
c3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlPihpdGVtLm1fdHlwZSkpCi0gICAg
ICAgICwgdGV4dERpcmVjdGlvbihzdGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KGl0ZW0u
bV90ZXh0RGlyZWN0aW9uKSkKLSAgICAgICAgLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoaXRl
bS5tX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSkKLSAgICAgICAgLCBpc0VuYWJsZWQoaXRlbS5t
X2lzRW5hYmxlZCkKLSAgICAgICAgLCBpc0xhYmVsKGl0ZW0ubV9pc0xhYmVsKQotICAgICAgICAs
IGlzU2VsZWN0ZWQoaXRlbS5tX2lzU2VsZWN0ZWQpCi0gICAgICAgICwgdGV4dChpdGVtLm1fdGV4
dC51dGY4KCkuZGF0YSgpKQotICAgICAgICAsIHRvb2xUaXAoaXRlbS5tX3Rvb2xUaXAudXRmOCgp
LmRhdGEoKSkKLSAgICAgICAgLCBhY2Nlc3NpYmlsaXR5VGV4dChpdGVtLm1fYWNjZXNzaWJpbGl0
eVRleHQudXRmOCgpLmRhdGEoKSkKLSAgICB7IH0KLX07CitfRXdrX1BvcHVwX01lbnVfSXRlbTo6
X0V3a19Qb3B1cF9NZW51X0l0ZW0oY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pCisg
ICAgOiB0eXBlKHN0YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51X0l0ZW1fVHlwZT4oaXRlbS5tX3R5
cGUpKQorICAgICwgdGV4dERpcmVjdGlvbihzdGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+
KGl0ZW0ubV90ZXh0RGlyZWN0aW9uKSkKKyAgICAsIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZShp
dGVtLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQorICAgICwgaXNFbmFibGVkKGl0ZW0ubV9p
c0VuYWJsZWQpCisgICAgLCBpc0xhYmVsKGl0ZW0ubV9pc0xhYmVsKQorICAgICwgaXNTZWxlY3Rl
ZChpdGVtLm1faXNTZWxlY3RlZCkKKyAgICAsIHRleHQoaXRlbS5tX3RleHQudXRmOCgpLmRhdGEo
KSkKKyAgICAsIHRvb2xUaXAoaXRlbS5tX3Rvb2xUaXAudXRmOCgpLmRhdGEoKSkKKyAgICAsIGFj
Y2Vzc2liaWxpdHlUZXh0KGl0ZW0ubV9hY2Nlc3NpYmlsaXR5VGV4dC51dGY4KCkuZGF0YSgpKQor
eyB9CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVdLX1BPUFVQX01FTlVfU0VQQVJB
VE9SLCBXZWJQb3B1cEl0ZW06OlNlcGFyYXRvcik7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKEVXS19QT1BVUF9NRU5VX0lURU0sIFdlYlBvcHVwSXRlbTo6SXRlbSk7CiAKLS8qKgotICog
QGludGVybmFsCi0gKiBDb25zdHJ1Y3RzIGEgRXdrX1BvcHVwX01lbnVfSXRlbS4KLSAqLwotRXdr
X1BvcHVwX01lbnVfSXRlbSogZXdrX3BvcHVwX21lbnVfaXRlbV9uZXcoY29uc3QgV2ViS2l0OjpX
ZWJQb3B1cEl0ZW0mIGl0ZW0pCi17Ci0gICAgcmV0dXJuIG5ldyBFd2tfUG9wdXBfTWVudV9JdGVt
KGl0ZW0pOwotfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICogRnJlZXMgYSBFd2tfUG9wdXBfTWVu
dV9JdGVtLgotICovCi12b2lkIGV3a19wb3B1cF9tZW51X2l0ZW1fZnJlZShFd2tfUG9wdXBfTWVu
dV9JdGVtKiBpdGVtKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGl0ZW0pOwot
ICAgIGRlbGV0ZSBpdGVtOwotfQotCiBFd2tfUG9wdXBfTWVudV9JdGVtX1R5cGUgZXdrX3BvcHVw
X21lbnVfaXRlbV90eXBlX2dldChjb25zdCBFd2tfUG9wdXBfTWVudV9JdGVtKiBpdGVtKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCBFV0tfUE9QVVBfTUVOVV9V
TktOT1dOKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKaW5kZXggNmE0YTQzNS4uZWMyZWMz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVw
X21lbnVfaXRlbV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKQEAgLTI2LDkgKzI2LDM2IEBACiAjaWZu
ZGVmIGV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19wb3B1cF9tZW51
X2l0ZW1fcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNs
dWRlICJXZWJQb3B1cEl0ZW0uaCIKKyNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotRXdrX1BvcHVwX01lbnVfSXRlbSogZXdrX3Bv
cHVwX21lbnVfaXRlbV9uZXcoY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pOwotdm9p
ZCBld2tfcG9wdXBfbWVudV9pdGVtX2ZyZWUoRXdrX1BvcHVwX01lbnVfSXRlbSogaXRlbSk7Cisv
KioKKyAqIFxzdHJ1Y3QgIF9Fd2tfUG9wdXBfTWVudV9JdGVtCisgKiBAYnJpZWYgICBDb250YWlu
cyB0aGUgcG9wdXAgbWVudSBkYXRhLgorICovCitjbGFzcyBfRXdrX1BvcHVwX01lbnVfSXRlbSB7
CitwdWJsaWM6CisgICAgRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlIHR5cGU7CisgICAgRXdrX1Rl
eHRfRGlyZWN0aW9uIHRleHREaXJlY3Rpb247CisKKyAgICBib29sIGhhc1RleHREaXJlY3Rpb25P
dmVycmlkZTsKKyAgICBib29sIGlzRW5hYmxlZDsKKyAgICBib29sIGlzTGFiZWw7CisgICAgYm9v
bCBpc1NlbGVjdGVkOworCisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRleHQ7CisgICAgV0tFaW5h
U2hhcmVkU3RyaW5nIHRvb2xUaXA7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGFjY2Vzc2liaWxp
dHlUZXh0OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8X0V3a19Qb3B1cF9NZW51X0l0ZW0+IGNy
ZWF0ZShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRlbSYgaXRlbSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgX0V3a19Qb3B1cF9NZW51X0l0ZW0oaXRlbSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBfRXdrX1BvcHVwX01lbnVfSXRlbShjb25zdCBXZWJLaXQ6
OldlYlBvcHVwSXRlbSYgaXRlbSk7Cit9OwogCiAjZW5kaWYgLy8gZXdrX3BvcHVwX21lbnVfaXRl
bV9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKaW5kZXggYzYwYzVkMi4uZGYxNjQ3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJH
T3duUHRyU291cC5oIgogI2luY2x1ZGUgIldLRGF0YS5oIgogI2luY2x1ZGUgIldLUmV0YWluUHRy
LmgiCiAjaW5jbHVkZSAiV0tTb3VwUmVxdWVzdE1hbmFnZXIuaCIKQEAgLTUyLDEwICs1Myw5IEBA
IHN0cnVjdCBfRXdrX1VybF9TY2hlbWVfUmVxdWVzdCB7CiAgICAgICAgICwgdXJsKGVpbmFfc3Ry
aW5nc2hhcmVfYWRkKF91cmwpKQogICAgICAgICAsIHJlcXVlc3RJRChfcmVxdWVzdElEKQogICAg
IHsKLSAgICAgICAgU291cFVSSSogc291cFVSSSA9IHNvdXBfdXJpX25ldyhfdXJsKTsKKyAgICAg
ICAgR093blB0cjxTb3VwVVJJPiBzb3VwVVJJKHNvdXBfdXJpX25ldyhfdXJsKSk7CiAgICAgICAg
IHNjaGVtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHNvdXBVUkktPnNjaGVtZSk7CiAgICAgICAg
IHBhdGggPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChzb3VwVVJJLT5wYXRoKTsKLSAgICAgICAgc291
cF91cmlfZnJlZShzb3VwVVJJKTsKICAgICB9CiAKICAgICB+X0V3a19VcmxfU2NoZW1lX1JlcXVl
c3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmlu
ZGV4IDRlNzFkODguLmMxZmZiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1By
aXZhdGVfRGF0YSB7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZhdmljb25VUkw7CiAgICAgRXZh
c19PYmplY3QqIGN1cnNvck9iamVjdDsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRpbmdS
ZXNvdXJjZXNNYXA7Ci0gICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBiYWNrRm9yd2FyZExpc3Q7
CisgICAgT3duUHRyPEV3a19CYWNrX0ZvcndhcmRfTGlzdD4gYmFja0ZvcndhcmRMaXN0OwogICAg
IE93blB0cjxFd2tfU2V0dGluZ3M+IHNldHRpbmdzOwogICAgIGJvb2wgYXJlTW91c2VFdmVudHNF
bmFibGVkOwogICAgIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBjb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyOwpAQCAtMTUwLDcgKzE1MCw2IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhIHsKIAogICAgIF9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IGN1cnNv
ck9iamVjdCgwKQotICAgICAgICAsIGJhY2tGb3J3YXJkTGlzdCgwKQogICAgICAgICAsIGFyZU1v
dXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKICAgICAgICAgLCBjb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyKDApCiAgICAgICAgICwgY29udGV4dCgwKQpAQCAtMTgwLDExICsxNzksOSBAQCBzdHJ1Y3Qg
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIGlmIChjdXJzb3JPYmplY3QpCiAgICAg
ICAgICAgICBldmFzX29iamVjdF9kZWwoY3Vyc29yT2JqZWN0KTsKIAotICAgICAgICBld2tfYmFj
a19mb3J3YXJkX2xpc3RfZnJlZShiYWNrRm9yd2FyZExpc3QpOwotCiAgICAgICAgIHZvaWQqIGl0
ZW07CiAgICAgICAgIEVJTkFfTElTVF9GUkVFKHBvcHVwTWVudUl0ZW1zLCBpdGVtKQotICAgICAg
ICAgICAgZXdrX3BvcHVwX21lbnVfaXRlbV9mcmVlKHN0YXRpY19jYXN0PEV3a19Qb3B1cF9NZW51
X0l0ZW0qPihpdGVtKSk7CisgICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8RXdrX1BvcHVw
X01lbnVfSXRlbSo+KGl0ZW0pOwogICAgIH0KIH07CiAKQEAgLTgzNiw3ICs4MzMsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0Nv
bnRleHQqIGNvbnRleHQsIFdLUAogI2VuZGlmCiAgICAgcHJpdi0+cGFnZVByb3h5LT5pbml0aWFs
aXplV2ViUGFnZSgpOwogCi0gICAgcHJpdi0+YmFja0ZvcndhcmRMaXN0ID0gZXdrX2JhY2tfZm9y
d2FyZF9saXN0X25ldyh0b0FQSShwcml2LT5wYWdlUHJveHktPmJhY2tGb3J3YXJkTGlzdCgpKSk7
CisgICAgcHJpdi0+YmFja0ZvcndhcmRMaXN0ID0gRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpjcmVh
dGUodG9BUEkocHJpdi0+cGFnZVByb3h5LT5iYWNrRm9yd2FyZExpc3QoKSkpOwogICAgIHByaXYt
PnNldHRpbmdzID0gYWRvcHRQdHIobmV3IEV3a19TZXR0aW5ncyhXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cCh0b0FQSShwcml2LT5wYWdlUHJveHkuZ2V0KCkpKSkp
KTsKICAgICBwcml2LT5jb250ZXh0ID0gZXdrX2NvbnRleHRfcmVmKGNvbnRleHQpOwogCkBAIC0x
NDgxLDcgKzE0NzgsNyBAQCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGV3a192aWV3X2JhY2tfZm9y
d2FyZF9saXN0X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldwogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKIAotICAgIHJldHVybiBwcml2LT5i
YWNrRm9yd2FyZExpc3Q7CisgICAgcmV0dXJuIHByaXYtPmJhY2tGb3J3YXJkTGlzdC5nZXQoKTsK
IH0KIAogdm9pZCBld2tfdmlld19pbWFnZV9kYXRhX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
dm9pZCogaW1hZ2VEYXRhLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTc4NCw3ICsxNzgxLDcg
QEAgdm9pZCBld2tfdmlld19wb3B1cF9tZW51X3JlcXVlc3QoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IFdlYlBvcHVwTWVudVByb3h5RWZsKiBwb3AKICAgICBFaW5hX0xpc3QqIHBvcHVwSXRlbXMgPSAw
OwogICAgIHNpemVfdCBzaXplID0gaXRlbXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwb3B1cEl0ZW1zID0gZWluYV9saXN0X2FwcGVuZChw
b3B1cEl0ZW1zLCBld2tfcG9wdXBfbWVudV9pdGVtX25ldyhpdGVtc1tpXSkpOworICAgICAgICBw
b3B1cEl0ZW1zID0gZWluYV9saXN0X2FwcGVuZChwb3B1cEl0ZW1zLCBFd2tfUG9wdXBfTWVudV9J
dGVtOjpjcmVhdGUoaXRlbXNbaV0pLmxlYWtQdHIoKSk7CiAgICAgcHJpdi0+cG9wdXBNZW51SXRl
bXMgPSBwb3B1cEl0ZW1zOwogCiAgICAgc21hcnREYXRhLT5hcGktPnBvcHVwX21lbnVfc2hvdyhz
bWFydERhdGEsIHJlY3QsIHN0YXRpY19jYXN0PEV3a19UZXh0X0RpcmVjdGlvbj4odGV4dERpcmVj
dGlvbiksIHBhZ2VTY2FsZUZhY3RvciwgcG9wdXBJdGVtcywgc2VsZWN0ZWRJbmRleCk7CkBAIC0x
ODA2LDcgKzE4MDMsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcG9wdXBfbWVudV9jbG9zZShFdmFz
X09iamVjdCogZXdrVmlldykKIAogICAgIHZvaWQqIGl0ZW07CiAgICAgRUlOQV9MSVNUX0ZSRUUo
cHJpdi0+cG9wdXBNZW51SXRlbXMsIGl0ZW0pCi0gICAgICAgIGV3a19wb3B1cF9tZW51X2l0ZW1f
ZnJlZShzdGF0aWNfY2FzdDxFd2tfUG9wdXBfTWVudV9JdGVtKj4oaXRlbSkpOworICAgICAgICBk
ZWxldGUgc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbSo+KGl0ZW0pOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IDkxZDhhZGYuLjhjN2EwNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xv
YWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiZXdr
X2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2FkZXJfY2xp
ZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKQEAgLTg3LDEwICs4OCw5IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVm
CiAgICAgICAgIHJldHVybjsKIAogICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nh
c3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAgRXdr
X0Vycm9yKiBld2tFcnJvciA9IGV3a19lcnJvcl9uZXcoZXJyb3IpOwotICAgIGV3a192aWV3X2xv
YWRfZXJyb3IoZXdrVmlldywgZXdrRXJyb3IpOworICAgIE93blB0cjxFd2tfRXJyb3I+IGV3a0Vy
cm9yID0gRXdrX0Vycm9yOjpjcmVhdGUoZXJyb3IpOworICAgIGV3a192aWV3X2xvYWRfZXJyb3Io
ZXdrVmlldywgZXdrRXJyb3IuZ2V0KCkpOwogICAgIGV3a192aWV3X2xvYWRfZmluaXNoZWQoZXdr
Vmlldyk7Ci0gICAgZXdrX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOwogfQogCiBzdGF0aWMgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTEx
Nyw5ICsxMTcsOCBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLAogICAgICAgICByZXR1cm47CiAK
ICAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwotICAgIEV3a19FcnJvciogZXdrRXJyb3IgPSBl
d2tfZXJyb3JfbmV3KGVycm9yKTsKLSAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX2ZhaWxl
ZChld2tWaWV3LCBld2tFcnJvcik7Ci0gICAgZXdrX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOworICAg
IE93blB0cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9yOjpjcmVhdGUoZXJyb3IpOwor
ICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfZmFpbGVkKGV3a1ZpZXcsIGV3a0Vycm9yLmdl
dCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJl
ZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVk
SXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2Ns
aWVudC5jcHAKaW5kZXggZWE5NmQyNS4uNDE0MzljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xv
YWRfY2xpZW50LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImV3a191cmxfcmVzcG9u
c2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC04MiwxMCArODMsOSBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9y
UmVzb3VyY2UoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCB1aW50NjRfdCByZXNvdXJjZUlkZQogCiBz
dGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
dWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS0Vycm9yUmVmIHdrRXJyb3IsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX0Vycm9yKiBld2tFcnJvciA9IGV3a19lcnJvcl9u
ZXcod2tFcnJvcik7Ci0gICAgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9mYWlsZWQodG9Fd2tWaWV3
KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIGV3a0Vycm9yKTsKKyAgICBPd25QdHI8
RXdrX0Vycm9yPiBld2tFcnJvciA9IEV3a19FcnJvcjo6Y3JlYXRlKHdrRXJyb3IpOworICAgIGV3
a192aWV3X3Jlc291cmNlX2xvYWRfZmFpbGVkKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgcmVzb3Vy
Y2VJZGVudGlmaWVyLCBld2tFcnJvci5nZXQoKSk7CiAgICAgZXdrX3ZpZXdfcmVzb3VyY2VfbG9h
ZF9maW5pc2hlZCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHJlc291cmNlSWRlbnRpZmllcik7Ci0g
ICAgZXdrX2Vycm9yX2ZyZWUoZXdrRXJyb3IpOwogfQogCiB2b2lkIGV3a192aWV3X3Jlc291cmNl
X2xvYWRfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>