<?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>97895</bug_id>
          
          <creation_ts>2012-09-28 05:04:21 -0700</creation_ts>
          <short_desc>[GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+</short_desc>
          <delta_ts>2012-10-03 00:56: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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730517</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-28 05:04:21 -0700</bug_when>
    <thetext>When handling a custom URI scheme request it&apos;s very useful to know the web view that initiated the request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730536</commentid>
    <comment_count>1</comment_count>
      <attachid>166223</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-28 05:21:55 -0700</bug_when>
    <thetext>Created attachment 166223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730538</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 05:26:19 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730539</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 05:26:40 -0700</bug_when>
    <thetext>Attachment 166223 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:703:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h&quot;
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733021</commentid>
    <comment_count>4</comment_count>
      <attachid>166223</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-02 13:34:22 -0700</bug_when>
    <thetext>Comment on attachment 166223
Patch

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

Okay. This looks good to me. I wish there was a cleaner way to get the frame from the networking request, but

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:700
&gt; +    uint64_t* initiatingPageIDPtr = g_slice_new(uint64_t);

You should use FastAlloc instead of the GLib allocator here.

&gt;&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:703
&gt;&gt; +                           reinterpret_cast&lt;GDestroyNotify&gt;(initiatingPageIDPtrFree));
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Please fix this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733022</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-02 13:34:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 166223 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166223&amp;action=review
&gt; 
&gt; Okay. This looks good to me. I wish there was a cleaner way to get the frame from the networking request, but

...a little bit of ugliness is probably okay for now. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733417</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-03 00:56:53 -0700</bug_when>
    <thetext>Committed r130259: &lt;http://trac.webkit.org/changeset/130259&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166223</attachid>
            <date>2012-09-28 05:21:55 -0700</date>
            <delta_ts>2012-10-02 13:34:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-uri-request-view.diff</filename>
            <type>text/plain</type>
            <size>33447</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NjkzNDRhLi5hNDljNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDktMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0IHRoZSB3ZWIgdmlldyB0aGF0IGluaXRp
YXRlZCBhIGN1c3RvbSBVUkkgcmVxdWVzdCB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBpbml0aWF0
aW5nUGFnZUlEKCkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
OgorICAgICAgICAoUmVzb3VyY2VIYW5kbGUpOiBBZGQgc3RhdGljIG1ldGhvZAorICAgICAgICBn
ZXRTb3VwUmVxdWVzdEluaXRpYWluZ1BhZ2VJRCgpLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCk6IEFkZCBpbml0aWF0aW5nUGFnZUlEKCkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZUludGVybmFsOjppbml0aWF0aW5nUGFnZUlEKTogR2V0IHRoZQorICAgICAgICBpbml0
aWF0aW5nIHBhZ2UgSUQgb2YgdGhlIHJlc291cmNlIGhhbmRsZSBuZXR3b3JraW5nIGNvbnRleHQu
CisgICAgICAgIChXZWJDb3JlOjppbml0aWF0aW5nUGFnZUlEUHRyRnJlZSk6IEhlbHBlciBmdW50
aW9uIHRvIHJlbW92ZSB0aGUKKyAgICAgICAgcGFnZSBJRCBhdHRhY2hlZCB0byBhIFNvdXBSZXF1
ZXN0LgorICAgICAgICAoV2ViQ29yZTo6c2V0U291cFJlcXVlc3RJbml0aWFpbmdQYWdlSUQpOiBI
ZWxwZXIgZnVuY3Rpb24gdG8KKyAgICAgICAgYXR0YWNoIGEgcGVnIElEIHRvIGEgU291cFJlcXVl
c3QuCisgICAgICAgIChXZWJDb3JlOjpzdGFydEhUVFBSZXF1ZXN0KTogQ2FsbCBzZXRTb3VwUmVx
dWVzdEluaXRpYWluZ1BhZ2VJRCgpCisgICAgICAgIHRvIGF0dGNoIHRoZSBpbml0aWF0aW5nIHBh
Z2UgSUQgdG8gdGhlIFNvdXBSZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6c3RhcnROb25IVFRQ
UmVxdWVzdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmdldFNv
dXBSZXF1ZXN0SW5pdGlhaW5nUGFnZUlEKTogU3RhdGljCisgICAgICAgIG1ldGhvZCB0byBnZXQg
dGhlIHBhZ2UgSUQgYXR0YWNoZWQgdG8gYSBTb3VwUmVxdWVzdC4KKwogMjAxMi0wOS0yNyAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gQWRk
aW5nIHBsYWNlaG9sZGVyIGZlYXR1cmUgdG8gRGF0ZVRpbWVOdW1lcmljRWxlbWVudCwgYW5kIHVw
ZGF0ZSBpdHMgZXhpc3Rpbmcgc3ViY2xhc3Nlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBkMmFlYTM2
Li4zMWY4NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMjgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIEFkZCBBUEkgdG8gZ2V0IHRoZSB3ZWIgdmlldyB0aGF0IGluaXRpYXRlZCBhIGN1c3RvbSBV
UkkgcmVxdWVzdCB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk3ODk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6Omlu
aXRpYXRpbmdQYWdlSUQpOiBTdHViCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaDoKKyAgICAgICAgKEZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwpOiBBZGRlZC4KKwogMjAxMi0wOS0yNyAgQ2hyaXN0b3Bo
ZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIE5v
IHdheSB0byBleGl0IHZpZGVvIGZ1bGxzY3JlZW4gbW9kZSBvbmNlIGVudGVyZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCAzYzZkZDI3Li5mOTQ5ZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDktMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0IHRoZSB3ZWIgdmlldyB0aGF0IGlu
aXRpYXRlZCBhIGN1c3RvbSBVUkkgcmVxdWVzdCB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0azo6aW5pdGlhdGluZ1BhZ2VJRCk6IFN0dWIKKyAgICAgICAgaW1wbGVtZW50
YXRpb24uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6IEFkZGVkLgorCiAyMDEy
LTA5LTI3ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgog
CiAgICAgICAgIFVuaWZ5IGV2ZW50IGhhbmRsaW5nIG9mIG1pZGRsZSBtb3VzZSBidXR0b24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZTRkNWRmYi4uMjY1NjI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBA
CisyMDEyLTA5LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGdldCB0aGUgd2ViIHZpZXcgdGhhdCBpbml0aWF0
ZWQgYSBjdXN0b20gVVJJIHJlcXVlc3QgdG8gV2ViS2l0MiBHVEsrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzg5NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtZXNzYWdlIERpZFJlY2VpdmVVUklS
ZXF1ZXN0IGlzIG5vdyBzZW50IHRvIHRoZSBwYWdlIHRoYXQKKyAgICAgICAgaW5pdGlhdGVkIHRo
ZSByZXF1ZXN0IHRoYXQgZm9yd2FyZHMgdGhlIG1lc2Fzc2FnZSB0byB0aGUKKyAgICAgICAgV2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvc291
cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5oOiBVcGRhdGUKKyAgICAgICAgZGlkUmVjZWl2ZVVSSVJl
cXVlc3QgY2FsbGJhY2sgdG8gcmVjZWl2ZSB0aGUgaW5pdGlhdGluZyBwYWdlIElELgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnQu
Y3BwOgorICAgICAgICAoZGlkUmVjZWl2ZVVSSVJlcXVlc3QpOiBVcGRhdGUgdGhlIGNhbGxiYWNr
IEFQSSBjaGFuZ2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1h
bmFnZXJDbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZVVSSVJlcXVlc3QpOiBQYXNzIHRo
ZSBpbml0aWF0aW5nIHBhZ2UgdG8gdGhlCisgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
Y29uc3RydWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHA6CisgICAgICAgIChfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUpOiBL
ZWVwIGEgcmVmZXJlbmNlIHRvIHRoZQorICAgICAgICBXZWJQYWdlUHJveHkgdGhhdCBpbml0aWF0
ZXNkIHRoZSByZXF1ZXN0LgorICAgICAgICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSk6
IFNhdmUgdGhlIGluaXRpYXRpbmcgcGFnZS4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3KTogUmV0dXJuIHRoZSB2aWV3IHdpZGdldAorICAgICAgICBvZiB0
aGUgaW5pdGlhdGluZyBXZWJQYWdlUHJveHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBzeW1ib2wuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVVUklSZXF1ZXN0KTogRm9yd2FyZCB0aGUgcmVxdWVzdAorICAg
ICAgICB0byB0aGUgc291cCByZXF1ZXN0IG1hbmFnZXIgcHJveHkuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFnZVByb3h5KTogQWRkIGRpZFJlY2Vp
dmVVUklSZXF1ZXN0KCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjogQWRkIERpZFJlY2VpdmVVUklSZXF1ZXN0CisgICAgICAgIG1lc3NhZ2UuCisgICAgICAg
ICogVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50OjpkaWRSZWNlaXZlVVJJUmVx
dWVzdCk6CisgICAgICAgIFBhc3MgdGhlIGluaXRpdGluZyBwYWdlIHRvIHRoZSBjbGllbnQgY2Fs
bGJhY2suCisgICAgICAgICogVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVUklSZXF1ZXN0
KTogUGFzcworICAgICAgICB0aGUgaW5pdGl0aW5nIHBhZ2UgdG8gdGhlIGNsaWVudC4KKyAgICAg
ICAgKiBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmUKKyAgICAgICAg
RGlkUmVjZWl2ZVVSSVJlcXVlc3QgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQpOgorICAgICAgICBTYXZlIHRoZSBwYWdlSUQgb2YgdGhlIFdlYkZyYW1lLgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKTogUmV0
dXJuIHRoZQorICAgICAgICBpbml0aXRpbmcgcGFnZSBJRC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OnNlbmQpOiBTZW5kIERpZFJlY2VpdmVVUklS
ZXF1ZXN0CisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIFdlYlBhZ2UgdGhhdCBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QuCisKIDIwMTItMDktMjcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgog
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzgyMwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCmluZGV4IDA0NjA4NWMuLmU0YzJkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVi
bGljOgogCiAjaWYgVVNFKFNPVVApCiAgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiogc291cFNlc3Np
b24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB1aW50NjRfdCBpbml0aWF0aW5nUGFnZUlEKCkg
Y29uc3QgPSAwOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCBmYmVhN2M5Li40NzYxYmVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CkBAIC0zNCw2ICszNCw3IEBACiAKICNpZiBVU0UoU09VUCkKIHR5cGVkZWYgc3RydWN0IF9Tb3Vw
U2Vzc2lvbiBTb3VwU2Vzc2lvbjsKK3R5cGVkZWYgc3RydWN0IF9Tb3VwUmVxdWVzdCBTb3VwUmVx
dWVzdDsKICNlbmRpZgogCiAjaWYgVVNFKENGKQpAQCAtMTY4LDYgKzE2OSw3IEBAIHB1YmxpYzoK
IAogI2lmIFVTRShTT1VQKQogICAgIHN0YXRpYyBTb3VwU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24o
KTsKKyAgICBzdGF0aWMgdWludDY0X3QgZ2V0U291cFJlcXVlc3RJbml0aWFpbmdQYWdlSUQoU291
cFJlcXVlc3QqKTsKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZp
Y2F0ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0
ZShjb25zdCBTdHJpbmcmIGhvc3QsIEdUbHNDZXJ0aWZpY2F0ZSopOwogICAgIHN0YXRpYyB2b2lk
IHNldElnbm9yZVNTTEVycm9ycyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggNjYzY2QwNC4u
NjNkZjI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTE5Myw2ICsxOTMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7CiAgICAgICAg
IFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBTb3VwU2Vzc2lv
biogc291cFNlc3Npb24oKTsKKyAgICAgICAgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCgpOwog
I2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBt
X2pvYjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYTNmYzQ0My4uOGZkYThlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKQEAgLTI0MCw2ICsyNDAsMTEgQEAgU291cFNlc3Npb24qIFJlc291
cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkKICAgICByZXR1cm4gc2Vzc2lvbkZyb21D
b250ZXh0KG1fY29udGV4dC5nZXQoKSk7CiB9CiAKK3VpbnQ2NF90IFJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OmluaXRpYXRpbmdQYWdlSUQoKQoreworICAgIHJldHVybiAobV9jb250ZXh0ICYmIG1f
Y29udGV4dC0+aXNWYWxpZCgpKSA/IG1fY29udGV4dC0+aW5pdGlhdGluZ1BhZ2VJRCgpIDogMDsK
K30KKwogUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiB7CiAgICAgY2xlYW51cFNv
dXBSZXF1ZXN0T3BlcmF0aW9uKHRoaXMsIHRydWUpOwpAQCAtNjgwLDYgKzY4NSwyNCBAQCBzdGF0
aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzc2FnZSosIEdTb2NrZXRDbGllbnRF
dmVudCBldmVudCwgR0lPU3RyZQogfQogI2VuZGlmCiAKK3N0YXRpYyBjb25zdCBjaGFyKiBnU291
cFJlcXVlc3RJbml0aWFpbmdQYWdlSURLZXkgPSAid2stc291cC1yZXF1ZXN0LWluaXRpYWluZy1w
YWdlLWlkIjsKKworc3RhdGljIHZvaWQgaW5pdGlhdGluZ1BhZ2VJRFB0ckZyZWUodWludDY0X3Qq
IGluaXRpYXRpbmdQYWdlSURQdHIpCit7CisgICAgZ19zbGljZV9mcmVlKHVpbnQ2NF90LCBpbml0
aWF0aW5nUGFnZUlEUHRyKTsKK30KKworc3RhdGljIHZvaWQgc2V0U291cFJlcXVlc3RJbml0aWFp
bmdQYWdlSUQoU291cFJlcXVlc3QqIHJlcXVlc3QsIHVpbnQ2NF90IGluaXRpYXRpbmdQYWdlSUQp
Cit7CisgICAgaWYgKCFpbml0aWF0aW5nUGFnZUlEKQorICAgICAgICByZXR1cm47CisKKyAgICB1
aW50NjRfdCogaW5pdGlhdGluZ1BhZ2VJRFB0ciA9IGdfc2xpY2VfbmV3KHVpbnQ2NF90KTsKKyAg
ICAqaW5pdGlhdGluZ1BhZ2VJRFB0ciA9IGluaXRpYXRpbmdQYWdlSUQ7CisgICAgZ19vYmplY3Rf
c2V0X2RhdGFfZnVsbChHX09CSkVDVChyZXF1ZXN0KSwgZ19pbnRlcm5fc3RhdGljX3N0cmluZyhn
U291cFJlcXVlc3RJbml0aWFpbmdQYWdlSURLZXkpLCBpbml0aWF0aW5nUGFnZUlEUHRyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4o
aW5pdGlhdGluZ1BhZ2VJRFB0ckZyZWUpKTsKK30KKwogc3RhdGljIGJvb2wgc3RhcnRIVFRQUmVx
dWVzdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAgIEFTU0VSVChoYW5kbGUpOwpAQCAt
NzAyLDYgKzcyNSw4IEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHNldFNvdXBS
ZXF1ZXN0SW5pdGlhaW5nUGFnZUlEKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPmluaXRpYXRp
bmdQYWdlSUQoKSk7CisKICAgICBkLT5tX3NvdXBNZXNzYWdlID0gYWRvcHRHUmVmKHNvdXBfcmVx
dWVzdF9odHRwX2dldF9tZXNzYWdlKFNPVVBfUkVRVUVTVF9IVFRQKGQtPm1fc291cFJlcXVlc3Qu
Z2V0KCkpKSk7CiAgICAgaWYgKCFkLT5tX3NvdXBNZXNzYWdlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xMDMzLDYgKzEwNTgsOCBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwgdXJsKQogICAgIC8vIGJhbGFuY2VkIGJ5IGEg
ZGVyZWYoKSBpbiBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24sIHdoaWNoIHNob3VsZCBhbHdh
eXMgcnVuCiAgICAgaGFuZGxlLT5yZWYoKTsKIAorICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhaW5n
UGFnZUlEKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPmluaXRpYXRpbmdQYWdlSUQoKSk7CisK
ICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5
IGRlZmVycmVkLgogICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKSB7CiAgICAgICAgIGQtPm1f
Y2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7CkBAIC0xMDc0LDQg
KzExMDEsMTAgQEAgU291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigp
CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKK3VpbnQ2NF90IFJlc291cmNlSGFuZGxlOjpnZXRT
b3VwUmVxdWVzdEluaXRpYWluZ1BhZ2VJRChTb3VwUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICB1
aW50NjRfdCogaW5pdGlhdGluZ1BhZ2VJRFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2NF90Kj4oZ19v
YmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QocmVxdWVzdCksIGdTb3VwUmVxdWVzdEluaXRpYWluZ1Bh
Z2VJREtleSkpOworICAgIHJldHVybiBpbml0aWF0aW5nUGFnZUlEUHRyID8gKmluaXRpYXRpbmdQ
YWdlSURQdHIgOiAwOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCmluZGV4IDhj
MjBiMjEuLjUzYzA1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEVmbC5oIgogCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgImV3a19mcmFtZS5oIgogI2luY2x1ZGUgImV3a192aWV3
LmgiCkBAIC01NCw0ICs1NSwxMCBAQCBTb3VwU2Vzc2lvbiogRnJhbWVOZXR3b3JraW5nQ29udGV4
dEVmbDo6c291cFNlc3Npb24oKSBjb25zdAogICAgIHJldHVybiBld2tfdmlld19zb3VwX3Nlc3Np
b25fZ2V0KGV3a19mcmFtZV92aWV3X2dldChtX2V3a0ZyYW1lKSk7CiB9CiAKK3VpbnQ2NF90IEZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OmluaXRpYXRpbmdQYWdlSUQoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRFZmwuaAppbmRleCA5M2ZmZDQ4Li42ODUzMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5o
CkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJh
bWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9CiAgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiog
c291cFNlc3Npb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IGluaXRpYXRpbmdQYWdl
SUQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKEZy
YW1lKiwgRXZhc19PYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKaW5kZXggNGI5
ZDEyNC4uMWMxNWE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKQEAgLTIxLDYgKzIx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrLmgiCiAKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzIsNCArMzMsMTAg
QEAgU291cFNlc3Npb24qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OnNvdXBTZXNzaW9uKCkg
Y29uc3QKICAgICByZXR1cm4gUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7CiB9CiAK
K3VpbnQ2NF90IEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OmluaXRpYXRpbmdQYWdlSUQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0
d29ya2luZ0NvbnRleHRHdGsuaAppbmRleCBhNTlhOTQwLi5jYWRhMTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oCkBAIC0zMyw2ICszMyw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OkZy
YW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9CiAgICAgdmlydHVhbCBT
b3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IGlu
aXRpYXRpbmdQYWdlSUQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLU291cFJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5oCmluZGV4
IDFjOWMwMDEuLjRkYmExMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9zb3VwL1dLU291cFJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuaApAQCAtMzMsNyArMzMsNyBA
QAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotdHlwZWRlZiB2b2lkICgqV0tTb3VwUmVxdWVzdE1h
bmFnZXJEaWRSZWNlaXZlVVJJUmVxdWVzdENhbGxiYWNrKShXS1NvdXBSZXF1ZXN0TWFuYWdlclJl
ZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmIHVybFJlZiwgdWludDY0X3QgcmVxdWVz
dElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLU291cFJlcXVl
c3RNYW5hZ2VyRGlkUmVjZWl2ZVVSSVJlcXVlc3RDYWxsYmFjaykoV0tTb3VwUmVxdWVzdE1hbmFn
ZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiB1cmxSZWYsIFdLUGFnZVJlZiBw
YWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tTb3VwUmVxdWVzdE1hbmFnZXJEaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdENh
bGxiYWNrKShXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS1Nv
dXBSZXF1ZXN0TWFuYWdlckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9yZXF1ZXN0X21hbmFnZXJfY2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdl
cl9jbGllbnQuY3BwCmluZGV4IGIyMmJkMzYuLjM0NGM4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
X3JlcXVlc3RfbWFuYWdlcl9jbGllbnQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBpbmxp
bmUgRXdrX0NvbnRleHQqIHRvRXdrQ29udGV4dChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVx
dWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiB1cmxSZWYsIHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVVUklSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIHNvdXBSZXF1ZXN0TWFu
YWdlclJlZiwgV0tVUkxSZWYgdXJsUmVmLCBXS1BhZ2VSZWYgaW5pdGlhdGluZ1BhZ2VSZWYsIHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBFd2tfVXJs
X1NjaGVtZV9SZXF1ZXN0KiBzY2hlbWVSZXF1ZXN0ID0gZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9u
ZXcoc291cFJlcXVlc3RNYW5hZ2VyUmVmLCB1cmxSZWYsIHJlcXVlc3RJRCk7CiAgICAgZXdrX2Nv
bnRleHRfdXJsX3NjaGVtZV9yZXF1ZXN0X3JlY2VpdmVkKHRvRXdrQ29udGV4dChjbGllbnRJbmZv
KSwgc2NoZW1lUmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKaW5kZXggOGVh
MDlmMi4uYjZjNzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcApAQCAtMjYsMTAg
KzI2LDEwIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVVUklSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIHNvdXBSZXF1ZXN0TWFuYWdl
clJlZiwgV0tVUkxSZWYgdXJsUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0
TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmIHVybFJlZiwgV0tQYWdl
UmVmIGluaXRpYXRpbmdQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCA9IFdFQktJVF9X
RUJfQ09OVEVYVChjbGllbnRJbmZvKTsKLSAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVl
c3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSh3ZWJD
b250ZXh0LCBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIHVybFJlZiwgcmVxdWVzdElEKSk7CisgICAg
R1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtp
dFVSSVNjaGVtZVJlcXVlc3RDcmVhdGUod2ViQ29udGV4dCwgc291cFJlcXVlc3RNYW5hZ2VyUmVm
LCB1cmxSZWYsIGluaXRpYXRpbmdQYWdlUmVmLCByZXF1ZXN0SUQpKTsKICAgICB3ZWJraXRXZWJD
b250ZXh0UmVjZWl2ZWRVUklSZXF1ZXN0KHdlYkNvbnRleHQsIHJlcXVlc3QuZ2V0KCkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGU2MmMxZmEuLmU2OTgzMWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuY3BwCkBAIC0yMiw2ICsyMiw4IEBACiAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvR093blB0clNvdXAuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CkBAIC0zNiw2ICszOCw3IEBAIEdf
REVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUgewogICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQ7CiAgICAgV0tSZXRhaW5QdHI8
V0tTb3VwUmVxdWVzdE1hbmFnZXJSZWY+IHdrUmVxdWVzdE1hbmFnZXI7CisgICAgV0tSZXRhaW5Q
dHI8V0tQYWdlUmVmPiB3a0luaXRpYXRpbmdQYWdlOwogICAgIHVpbnQ2NF90IHJlcXVlc3RJRDsK
ICAgICBDU3RyaW5nIHVyaTsKICAgICBHT3duUHRyPFNvdXBVUkk+IHNvdXBVUkk7CkBAIC02OCwx
MiArNzEsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9jbGFzc19p
bml0KFdlYktpdFVSSVNjaGVtZVJlcXVlc3RDbGFzcyogcmUKICAgICBnX3R5cGVfY2xhc3NfYWRk
X3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUpKTsKIH0KIAotV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVz
dENyZWF0ZShXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0LCBXS1NvdXBSZXF1ZXN0TWFuYWdl
clJlZiB3a1JlcXVlc3RNYW5hZ2VyLCBXS1VSTFJlZiB3a1VSTCwgdWludDY0X3QgcmVxdWVzdElE
KQorV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZShX
ZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0LCBXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiB3a1Jl
cXVlc3RNYW5hZ2VyLCBXS1VSTFJlZiB3a1VSTCwgV0tQYWdlUmVmIHdrSW5pdGlhdGluZ1BhZ2Us
IHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1
ZXN0ID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVFVRVNULCBOVUxMKSk7CiAgICAgcmVxdWVzdC0+cHJpdi0+d2ViQ29udGV4
dCA9IHdlYkNvbnRleHQ7CiAgICAgcmVxdWVzdC0+cHJpdi0+d2tSZXF1ZXN0TWFuYWdlciA9IHdr
UmVxdWVzdE1hbmFnZXI7CiAgICAgcmVxdWVzdC0+cHJpdi0+dXJpID0gdG9JbXBsKHdrVVJMKS0+
c3RyaW5nKCkudXRmOCgpOworICAgIHJlcXVlc3QtPnByaXYtPndrSW5pdGlhdGluZ1BhZ2UgPSB3
a0luaXRpYXRpbmdQYWdlOwogICAgIHJlcXVlc3QtPnByaXYtPnJlcXVlc3RJRCA9IHJlcXVlc3RJ
RDsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTEzOCw2ICsxNDIsMjEgQEAgY29uc3QgY2hh
ciogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0KQogICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5zb3VwVVJJLT5wYXRoOwog
fQogCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3OgorICog
QHJlcXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKKyAqCisgKiBHZXQgdGhlICNXZWJL
aXRXZWJWaWV3IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0LgorICoKKyAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogdGhlICNXZWJLaXRXZWJWaWV3IHRoYXQgaW5pdGlhdGVkIEByZXF1ZXN0
LgorICovCitXZWJLaXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJf
dmlldyhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIDApOworCisg
ICAgcmV0dXJuIFdFQktJVF9XRUJfVklFVyh0b0ltcGwocmVxdWVzdC0+cHJpdi0+d2tJbml0aWF0
aW5nUGFnZS5nZXQoKSktPnZpZXdXaWRnZXQoKSk7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdFVS
SVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0Fz
eW5jUmVzdWx0KiByZXN1bHQsIFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHNjaGVtZVJlcXVlc3Qp
CiB7CiAgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRH
UmVmKHNjaGVtZVJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCmluZGV4IDM0ZjIxNDQuLjllYWQ1
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTUxLDIyICs1MSwyNSBAQCBzdHJ1Y3QgX1dlYktp
dFVSSVNjaGVtZVJlcXVlc3RDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF90eXBlICAgKHZvaWQpOword2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfdHlwZSAgICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
LXdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZSAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCAqcmVxdWVzdCk7Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUgICAo
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiAKIFdFQktJVF9BUEkgY29uc3QgZ2No
YXIgKgotd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpICAgIChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICpyZXF1ZXN0KTsKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaSAg
ICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAogV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCi13ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoICAgKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOword2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
cGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJ
IFdlYktpdFdlYlZpZXcgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcg
KFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0
U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICptaW1l
X3R5cGUpOword2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9s
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgICAqbWltZV90eXBlKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMTQ5ODEzZC4uYjdjMDExZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vi
Q29udGV4dC5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tTb3VwUmVxdWVzdE1hbmFnZXIuaD4KIAot
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZShXZWJL
aXRXZWJDb250ZXh0KiwgV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmLCB1aW50NjRf
dCByZXF1ZXN0SUQpOworV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVx
dWVzdENyZWF0ZShXZWJLaXRXZWJDb250ZXh0KiwgV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdL
VVJMUmVmLCBXS1BhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiB1aW50NjRfdCB3ZWJraXRV
UklTY2hlbWVSZXF1ZXN0R2V0SUQoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCopOwogdm9pZCB3ZWJr
aXRVUklTY2hlbWVSZXF1ZXN0Q2FuY2VsKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggMTgyN2I2Yi4uZmQwZjFmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25z
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstc2VjdGlvbnMudHh0CkBAIC03NDUsNiArNzQ1LDcgQEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKK3dl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3CiB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2ZpbmlzaAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJD
b250ZXh0LmNwcAppbmRleCA3YTEzZDI4Li4xMzljMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0xNDYsNiArMTQ2LDggQEAgcHVibGljOgogICAgICAgICB0ZXN0LT5tX3Vy
aVNjaGVtZVJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0Rl
bGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHJlcXVlc3QpKTsKIAorICAgICAgICBnX2Fz
c2VydCh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyhyZXF1ZXN0KSA9PSB0
ZXN0LT5tX3dlYlZpZXcpOworCiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0
cmVhbSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwogICAgICAgICB0
ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGlucHV0
U3RyZWFtLmdldCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMDViMjFiNy4uZDIxMDNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTEwOCw2ICsxMDgsMTAgQEAKICNpbmNsdWRlICJBcmd1bWVudENv
ZGVyc0d0ay5oIgogI2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlICJXZWJTb3VwUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorI2VuZGlmCisKICNpZm5kZWYgTkRFQlVHCiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2VuZGlmCkBAIC00MTA2LDQgKzQxMTAsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0
YXRpb25Db250ZXh0LCBWZWN0b3I8U3RyaW4KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAor
I2lmIFVTRShTT1VQKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVVUklSZXF1ZXN0KFN0
cmluZyB1cmlTdHJpbmcsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3sKKyAgICBtX3Byb2Nlc3MtPmNv
bnRleHQoKS0+c291cFJlcXVlc3RNYW5hZ2VyUHJveHkoKS0+ZGlkUmVjZWl2ZVVSSVJlcXVlc3Qo
dXJpU3RyaW5nLCB0aGlzLCByZXF1ZXN0SUQpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3ZTFi
YTIuLmY4NjUxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTk5NCw2ICs5OTQsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAorI2lmIFVTRShTT1VQKQorICAgIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoU3RyaW5n
IHVyaVN0cmluZywgdWludDY0X3QgcmVxdWVzdElEKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjbGVh
ckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKTsKIAogICAgIHZvaWQgcGVyZm9ybURyYWdDb250cm9s
bGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSosIGNvbnN0
IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDVjYmIyMy4u
NjI3NWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0zMjQsNCArMzI0LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICAjIFNlYXJjaCBwb3B1cCBtZW51cwogICAgIFNhdmVSZWNlbnRTZWFyY2hlcyhXVEY6
OlN0cmluZyBuYW1lLCBWZWN0b3I8U3RyaW5nPiBzZWFyY2hJdGVtcykKICAgICBMb2FkUmVjZW50
U2VhcmNoZXMoV1RGOjpTdHJpbmcgbmFtZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHJlc3VsdCkKKwor
I2lmIFVTRShTT1VQKQorICAgICMgU291cCBjdXN0b20gVVJJIHJlcXVlc3QgbWVzc2FnZXMKKyAg
ICBEaWRSZWNlaXZlVVJJUmVxdWVzdChXVEY6OlN0cmluZyB1cmlTdHJpbmcsIHVpbnQ2NF90IHJl
cXVlc3RJRCk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCmluZGV4IGJlMmM2
Y2MuLmM1ZDdlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcApAQCAtMjQsMTIgKzI0LDEy
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29sIFdlYlNvdXBSZXF1ZXN0TWFuYWdlckNs
aWVudDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkqIHNv
dXBSZXF1ZXN0TWFuYWdlciwgV2ViVVJMKiB1cmwsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK2Jvb2wg
V2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50OjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eSogc291cFJlcXVlc3RNYW5hZ2VyLCBXZWJVUkwqIHVybCwgV2Vi
UGFnZVByb3h5KiBpbml0aWFpbmdQYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7CiAgICAgaWYg
KCFtX2NsaWVudC5kaWRSZWNlaXZlVVJJUmVxdWVzdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZVVSSVJlcXVlc3QodG9BUEkoc291cFJlcXVlc3RNYW5h
Z2VyKSwgdG9BUEkodXJsKSwgcmVxdWVzdElELCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBt
X2NsaWVudC5kaWRSZWNlaXZlVVJJUmVxdWVzdCh0b0FQSShzb3VwUmVxdWVzdE1hbmFnZXIpLCB0
b0FQSSh1cmwpLCB0b0FQSShpbml0aWFpbmdQYWdlKSwgcmVxdWVzdElELCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQuaAppbmRl
eCBkYzE3NTVlLi5lMjQ3ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQuaApAQCAtMzAsNyArMzAs
NyBAQCBjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCA6
IHB1YmxpYyBBUElDbGllbnQ8V0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQsIGtXS1NvdXBSZXF1
ZXN0TWFuYWdlckNsaWVudEN1cnJlbnRWZXJzaW9uPiB7CiBwdWJsaWM6Ci0gICAgYm9vbCBkaWRS
ZWNlaXZlVVJJUmVxdWVzdChXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSosIFdlYlVSTCosIHVp
bnQ2NF90IHJlcXVlc3RJRCk7CisgICAgYm9vbCBkaWRSZWNlaXZlVVJJUmVxdWVzdChXZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eSosIFdlYlVSTCosIFdlYlBhZ2VQcm94eSosIHVpbnQ2NF90IHJl
cXVlc3RJRCk7CiAgICAgdm9pZCBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdChXZWJTb3VwUmVxdWVz
dE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggYzc2NmIwYS4uMTllN2VlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtNzYsOSArNzYsOSBAQCB2b2lkIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlVVJJUmVxdWVzdERhdGEoY29uc3QgV2ViRGF0YSogcmVxdWVzdAogICAgIG1fd2ViQ29u
dGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJTb3VwUmVxdWVzdE1hbmFnZXI6
OkRpZFJlY2VpdmVVUklSZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBy
ZXF1ZXN0SUQpKTsKIH0KIAotdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZVVSSVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmlTdHJpbmcsIHVpbnQ2NF90IHJlcXVlc3RJ
RCkKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVVUklSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgdXJpU3RyaW5nLCBXZWJQYWdlUHJveHkqIGluaXRpYWluZ1BhZ2UsIHVp
bnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBpZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVVUklSZXF1
ZXN0KHRoaXMsIFdlYlVSTDo6Y3JlYXRlKHVyaVN0cmluZykuZ2V0KCksIHJlcXVlc3RJRCkpCisg
ICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVVJJUmVxdWVzdCh0aGlzLCBXZWJVUkw6OmNyZWF0
ZSh1cmlTdHJpbmcpLmdldCgpLCBpbml0aWFpbmdQYWdlLCByZXF1ZXN0SUQpKQogICAgICAgICBk
aWRIYW5kbGVVUklSZXF1ZXN0KFdlYkRhdGE6OmNyZWF0ZSgwLCAwKS5nZXQoKSwgMCwgU3RyaW5n
KCksIHJlcXVlc3RJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDkyYmQ2M2UuLmRh
YjhiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAv
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlVVJJUmVxdWVzdERhdGEoY29uc3QgV2ViRGF0YSosIHVpbnQ2NF90
IHJlcXVlc3RJRCk7CiAgICAgdm9pZCBkaWRGYWlsVG9Mb2FkVVJJUmVxdWVzdCh1aW50NjRfdCBy
ZXF1ZXN0SUQpOwogCisgICAgdm9pZCBkaWRSZWNlaXZlVVJJUmVxdWVzdChjb25zdCBTdHJpbmcm
IHVyaVN0cmluZywgV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiBwcml2YXRlOgpAQCAtNjEsOCArNjIs
NiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBB
UElUeXBlOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVVUklSZXF1ZXN0KGNvbnN0IFN0cmluZyYg
dXJpU3RyaW5nLCB1aW50NjRfdCByZXF1ZXN0SUQpOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiAgICAgV2ViQ29u
dGV4dCogbV93ZWJDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA4MTU5MWE0Li4xODA1OGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjEsNiArMjEsNSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAt
PiBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eSB7Ci0gICAgRGlkUmVjZWl2ZVVSSVJlcXVlc3Qo
V1RGOjpTdHJpbmcgdXJpU3RyaW5nLCB1aW50NjRfdCByZXF1ZXN0SUQpOwogICAgIERpZEZhaWxU
b0xvYWRVUklSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggODc2ZGU4MC4uNmU3YjU5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cApAQCAtMjYsMTYgKzI2LDMxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZy
YW1lKQorICAgIDogRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZS0+Y29yZUZyYW1lKCkpCisg
ICAgLCBtX2luaXRpYXRpbmdQYWdlSUQoMCkKK3sKKyAgICBpZiAoV2ViUGFnZSogcGFnZSA9IGZy
YW1lLT5wYWdlKCkpCisgICAgICAgIG1faW5pdGlhdGluZ1BhZ2VJRCA9IHBhZ2UtPnBhZ2VJRCgp
OworfQorCiBTb3VwU2Vzc2lvbiogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c291cFNlc3Np
b24oKSBjb25zdAogewogICAgIHJldHVybiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24o
KTsKIH0KIAordWludDY0X3QgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6aW5pdGlhdGluZ1Bh
Z2VJRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5pdGlhdGluZ1BhZ2VJRDsKK30KKwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAy
YTQyZDM4Li5hMDZhNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2lmbmRlZiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0X2gKICNkZWZpbmUgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKLSNpbmNs
dWRlICJXZWJGcmFtZS5oIgotCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJGcmFtZTsKKwogY2xhc3Mg
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViRnJhbWUqIGZyYW1lKQpAQCAtNDIsMTIgKzQyLDEyIEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dChXZWJGcmFtZSogZnJhbWUpCi0gICAgICAgIDogV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dChmcmFtZS0+Y29yZUZyYW1lKCkpCi0gICAgewotICAgIH0KKyAgICBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KFdlYkZyYW1lKik7CiAKICAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3Vw
U2Vzc2lvbigpIGNvbnN0OworICAgIHZpcnR1YWwgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCgp
IGNvbnN0OworCisgICAgdWludDY0X3QgbV9pbml0aWF0aW5nUGFnZUlEOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyLmNwcAppbmRleCA2YzVjYWQxLi43NDA2ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAt
MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYktpdFNv
dXBSZXF1ZXN0R2VuZXJpYy5oIgogI2luY2x1ZGUgIldlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtMTY5LDEyICsxNzAsMTQg
QEAgdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVVUklSZXF1ZXN0RGF0YShj
b25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmMKIHZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyOjpz
ZW5kKEdTaW1wbGVBc3luY1Jlc3VsdCogcmVzdWx0LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxl
KQogewogICAgIEdSZWZQdHI8V2ViS2l0U291cFJlcXVlc3RHZW5lcmljPiByZXF1ZXN0ID0gYWRv
cHRHUmVmKFdFQktJVF9TT1VQX1JFUVVFU1RfR0VORVJJQyhnX2FzeW5jX3Jlc3VsdF9nZXRfc291
cmNlX29iamVjdChHX0FTWU5DX1JFU1VMVChyZXN1bHQpKSkpOwotICAgIFNvdXBVUkkqIHVyaSA9
IHNvdXBfcmVxdWVzdF9nZXRfdXJpKFNPVVBfUkVRVUVTVChyZXF1ZXN0LmdldCgpKSk7Ci0gICAg
R093blB0cjxjaGFyPiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0UpKTsK
KyAgICBTb3VwUmVxdWVzdCogc291cFJlcXVlc3QgPSBTT1VQX1JFUVVFU1QocmVxdWVzdC5nZXQo
KSk7CisgICAgR093blB0cjxjaGFyPiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHNvdXBf
cmVxdWVzdF9nZXRfdXJpKHNvdXBSZXF1ZXN0KSwgRkFMU0UpKTsKIAogICAgIHVpbnQ2NF90IHJl
cXVlc3RJRCA9IGdlbmVyYXRlU291cFJlcXVlc3RJRCgpOwogICAgIG1fcmVxdWVzdE1hcC5zZXQo
cmVxdWVzdElELCBhZG9wdFB0cihuZXcgV2ViU291cFJlcXVlc3RBc3luY0RhdGEocmVzdWx0LCBy
ZXF1ZXN0LmdldCgpLCBjYW5jZWxsYWJsZSkpKTsKLSAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OkRpZFJlY2VpdmVV
UklSZXF1ZXN0KFN0cmluZzo6ZnJvbVVURjgodXJpU3RyaW5nLmdldCgpKSwgcmVxdWVzdElEKSwg
MCk7CisKKyAgICB1aW50NjRfdCBpbml0aWFpbmdQYWdlSUQgPSBXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Z2V0U291cFJlcXVlc3RJbml0aWFpbmdQYWdlSUQoc291cFJlcXVlc3QpOworICAgIG1f
cHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJl
Y2VpdmVVUklSZXF1ZXN0KFN0cmluZzo6ZnJvbVVURjgodXJpU3RyaW5nLmdldCgpKSwgcmVxdWVz
dElEKSwgaW5pdGlhaW5nUGFnZUlEKTsKIH0KIAogR0lucHV0U3RyZWFtKiBXZWJTb3VwUmVxdWVz
dE1hbmFnZXI6OmZpbmlzaChHU2ltcGxlQXN5bmNSZXN1bHQqIHJlc3VsdCkK
</data>
<flag name="review"
          id="178494"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="179177"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>