<?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>79496</bug_id>
          
          <creation_ts>2012-02-24 09:03:42 -0800</creation_ts>
          <short_desc>[GTK] Add GMainLoop and GMainContext to be handled by GRefPtr</short_desc>
          <delta_ts>2012-02-28 11:35:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79499</blocked>
    
    <blocked>79500</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Mario Sanchez Prada">mario</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564354</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-24 09:03:42 -0800</bug_when>
    <thetext>This would be an useful addition IMHO for implementing new stuff (e.g. modal dialogs in WebKit2GTK+) but also for code already present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564360</commentid>
    <comment_count>1</comment_count>
      <attachid>128742</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-24 09:10:05 -0800</bug_when>
    <thetext>Created attachment 128742
Patch proposal

Here we go</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564383</commentid>
    <comment_count>2</comment_count>
      <attachid>128742</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-24 09:25:19 -0800</bug_when>
    <thetext>Comment on attachment 128742
Patch proposal

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

&gt; Source/JavaScriptCore/wtf/gobject/GRefPtr.cpp:49
&gt; +    g_main_context_unref(ptr);

g_main_context_unref doesn&apos;t accept NULL, you should check the pointer

&gt; Source/JavaScriptCore/wtf/gobject/GRefPtr.cpp:61
&gt; +    g_main_loop_unref(ptr);

Same for main_loop_unref

&gt; Source/WebCore/platform/gtk/RunLoopGtk.cpp:37
&gt; +    m_runLoopContext = adoptGRef(g_main_context_default());

g_main_context_default() is transfer none, we shouldn&apos;t adopt the ref. Previous code works because the context is unrefed only once, I think. I wouldn&apos;t use a GRefPtr for this.

&gt; Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp:138
&gt; +    if (m_eventContext)
&gt; +        m_eventContext.clear();

clear already checks the pointer before unref, so you don&apos;t need the check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565455</commentid>
    <comment_count>3</comment_count>
      <attachid>128980</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-27 01:26:38 -0800</bug_when>
    <thetext>Created attachment 128980
Patch proposal

Attaching a new patch after addressing some issues. See some comments below...

(In reply to comment #2)
&gt; (From update of attachment 128742 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128742&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/gobject/GRefPtr.cpp:49
&gt; &gt; +    g_main_context_unref(ptr);
&gt; 
&gt; g_main_context_unref doesn&apos;t accept NULL, you should check the pointer

Fixed.

&gt; &gt; Source/JavaScriptCore/wtf/gobject/GRefPtr.cpp:61
&gt; &gt; +    g_main_loop_unref(ptr);
&gt; 
&gt; Same for main_loop_unref

Fixed.
 
&gt; &gt; Source/WebCore/platform/gtk/RunLoopGtk.cpp:37
&gt; &gt; +    m_runLoopContext = adoptGRef(g_main_context_default());
&gt; 
&gt; g_main_context_default() is transfer none, we shouldn&apos;t adopt the ref. Previous code works because the context is unrefed only once, I think.

Oops! Fixed.

&gt; I wouldn&apos;t use a GRefPtr for this.

I think I prefer to keep using a GRefPtr just in case, to ensure we have a valid context in functions like RunLoop::wakeUp() and RunLoop::start() when needed, even if it sounds unlikely to get any trouble with that.

&gt; &gt; Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp:138
&gt; &gt; +    if (m_eventContext)
&gt; &gt; +        m_eventContext.clear();
&gt; 
&gt; clear already checks the pointer before unref, so you don&apos;t need the check

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565476</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-27 01:50:15 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; I wouldn&apos;t use a GRefPtr for this.
&gt; 
&gt; I think I prefer to keep using a GRefPtr just in case, to ensure we have a valid context in functions like RunLoop::wakeUp() and RunLoop::start() when needed, even if it sounds unlikely to get any trouble with that.

The default main context is *never* unrefed, so you will always have a valid context. Taking a reference is harmless in any case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566609</commentid>
    <comment_count>5</comment_count>
      <attachid>128980</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-28 06:30:34 -0800</bug_when>
    <thetext>Comment on attachment 128980
Patch proposal

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

Looks good, but please fix the small things below.

&gt; Source/WebCore/platform/gtk/RunLoopGtk.cpp:31
&gt; +#include &lt;wtf/gobject/GRefPtr.h&gt;

This include isn&apos;t necessary in the header, so why is it necessary here?

&gt; Source/WebKit2/Platform/WorkQueue.h:53
&gt;  typedef struct _GMainContext GMainContext;
&gt;  typedef struct _GMainLoop GMainLoop;

You can remove these now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566921</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-28 11:35:33 -0800</bug_when>
    <thetext>Committed r109129: &lt;http://trac.webkit.org/changeset/109129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128742</attachid>
            <date>2012-02-24 09:10:05 -0800</date>
            <delta_ts>2012-02-27 01:26:38 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2012-02-24-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>19968</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAyNzY0OWE4NTM1MWZmNGM0MDRiNDY3ZTc1NGM5YjkxYzk4ZTVlNGJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDI0IEZlYiAyMDEyIDE3OjQ3OjUxICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMi0wMi0yNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFtHVEtdIEFkZCBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dCB0byBiZSBoYW5k
bGVkIGJ5IEdSZWZQdHIKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzk0OTYKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAg
IEhhbmRsZSBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dCBpbiBHUmVmUHRyLCBieSBjYWxsaW5n
CiAgICAgICAgZ19tYWluX2xvb3BfKHVuKXJlZiBhbmQgZ19tYWluX2NvbnRleHRfKHVuKXJlZiBp
biB0aGUKICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVmR1B0ciBhbmQgZGVyZWZHUHRy
IHRlbXBsYXRlIGZ1bmN0aW9ucy4KCiAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmNwcDoK
ICAgICAgICAoV1RGOjpyZWZHUHRyKToKICAgICAgICAoV1RGKToKICAgICAgICAoV1RGOjpkZXJl
ZkdQdHIpOgogICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5oOgogICAgICAgIChXVEYpOgog
ICAgICAgICogd3RmL2dvYmplY3QvR1R5cGVkZWZzLmg6CgoyMDEyLTAyLTI0ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgW0dUS10gQWRkIEdNYWlu
TG9vcCBhbmQgR01haW5Db250ZXh0IHRvIGJlIGhhbmRsZWQgYnkgR1JlZlB0cgogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ5NgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgVXBkYXRlZCBwbGFjZXMgd2hlcmUgcmF3
IHBvaW50ZXJzIHRvIEdNYWluTG9vcCBhbmQgR01haW5Db250ZXh0CiAgICAgICAgd2VyZSBiZWlu
ZyB1c2VkLCByZXBsYWNpbmcgdGhlbSB3aXRoIEdSZWZQdHItYmFzZWQgY29kZS4KCiAgICAgICAg
KiBwbGF0Zm9ybS9SdW5Mb29wLmg6CiAgICAgICAgKFJ1bkxvb3ApOgogICAgICAgICogcGxhdGZv
cm0vZ3RrL1J1bkxvb3BHdGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpSdW5Mb29w
KToKICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgogICAgICAgIChXZWJDb3Jl
OjpSdW5Mb29wOjptYWluTG9vcCk6CiAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnN0b3ApOgog
ICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjp3YWtlVXApOgogICAgICAgIChXZWJDb3JlOjpSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgogICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIp
OgogICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OldlYkNvcmVTeW5j
aHJvbm91c0xvYWRlcik6CiAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6fldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcik6CiAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVT
eW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CiAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6cnVuKToKCjIwMTItMDItMjQgIE1hcmlvIFNhbmNoZXog
UHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBbR1RLXSBBZGQgR01haW5Mb29w
IGFuZCBHTWFpbkNvbnRleHQgdG8gYmUgaGFuZGxlZCBieSBHUmVmUHRyCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDk2CgogICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBVcGRhdGVkIHBsYWNlcyB3aGVyZSByYXcgcG9p
bnRlcnMgdG8gR01haW5Mb29wIGFuZCBHTWFpbkNvbnRleHQKICAgICAgICB3ZXJlIGJlaW5nIHVz
ZWQsIHJlcGxhY2luZyB0aGVtIHdpdGggR1JlZlB0ci1iYXNlZCBjb2RlLgoKICAgICAgICAqIFBs
YXRmb3JtL1dvcmtRdWV1ZS5oOgogICAgICAgIChXb3JrUXVldWUpOgogICAgICAgICogUGxhdGZv
cm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHA6CiAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0
aWFsaXplKToKICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUludmFsaWRhdGUpOgogICAgICAg
IChXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZEJvZHkpOgogICAgICAgIChXb3JrUXVldWU6OnJl
Z2lzdGVyRXZlbnRTb3VyY2VIYW5kbGVyKToKICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaE9u
U291cmNlKToKICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3Bw
OgogICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpXZWJQb3B1cE1lbnVQcm94
eUd0ayk6CiAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1l
bnUpOgogICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpzaHV0ZG93blJ1bkxv
b3ApOgogICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oOgogICAg
ICAgIChXZWJQb3B1cE1lbnVQcm94eUd0ayk6Ci0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysrCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAgICAgICB8ICAgMjQgKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5o
ICAgICAgICB8ICAgIDQgKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5
cGVkZWZzLmggICAgICB8ICAgIDIgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCAgICAgICAgIHwgICAyNSArKysr
KysrLS0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcCAgIHwgICAxMCArKysrLS0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oICAgICAgICAgICAgICAgIHwgICAgNSArKy0KIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwICAgICAgIHwgICAyNCAr
KysrKysrLS0tLS0tLS0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQ
cm94eUd0ay5jcHAgfCAgIDEyICsrKystLS0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJQb3B1cE1lbnVQcm94eUd0ay5oICAgfCAgICAzICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAxMzcg
aW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggZDYyZTk1Yy4uZDFmMmJjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTItMDItMjQgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdIEFkZCBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dCB0byBi
ZSBoYW5kbGVkIGJ5IEdSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc5NDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSGFuZGxlIEdNYWluTG9vcCBhbmQgR01haW5Db250ZXh0IGluIEdSZWZQdHIs
IGJ5IGNhbGxpbmcKKyAgICAgICAgZ19tYWluX2xvb3BfKHVuKXJlZiBhbmQgZ19tYWluX2NvbnRl
eHRfKHVuKXJlZiBpbiB0aGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIHJlZkdQdHIg
YW5kIGRlcmVmR1B0ciB0ZW1wbGF0ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiB3dGYvZ29iamVj
dC9HUmVmUHRyLmNwcDoKKyAgICAgICAgKFdURjo6cmVmR1B0cik6CisgICAgICAgIChXVEYpOgor
ICAgICAgICAoV1RGOjpkZXJlZkdQdHIpOgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dSZWZQdHIu
aDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL2dvYmplY3QvR1R5cGVkZWZzLmg6CisK
IDIwMTItMDItMjIgIEhvam9uZyBIYW4gIDxob2pvbmcuaGFuQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFNob3J0IGNpcmN1aXQgZml4ZWQgZm9yIGEgMTYgYnQgcGF0dGVybiBjaGFyYWN0ZXIgYW5k
IGFuIDggYml0IHN0cmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Z29iamVjdC9HUmVmUHRyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9H
UmVmUHRyLmNwcAppbmRleCAxY2QyMmM1Li45YmY3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwCkBAIC0zNyw2ICszNywzMCBAQCB0ZW1wbGF0
ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpCiAgICAgZ19oYXNoX3RhYmxlX3Vu
cmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+IEdNYWluQ29udGV4dCogcmVmR1B0cihHTWFpbkNv
bnRleHQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX21haW5fY29udGV4dF9yZWYo
cHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihH
TWFpbkNvbnRleHQqIHB0cikKK3sKKyAgICBnX21haW5fY29udGV4dF91bnJlZihwdHIpOworfQor
Cit0ZW1wbGF0ZSA8PiBHTWFpbkxvb3AqIHJlZkdQdHIoR01haW5Mb29wKiBwdHIpCit7CisgICAg
aWYgKHB0cikKKyAgICAgICAgZ19tYWluX2xvb3BfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsK
K30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR01haW5Mb29wKiBwdHIpCit7CisgICAg
Z19tYWluX2xvb3BfdW5yZWYocHRyKTsKK30KKwogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAy
NCwgMCkKIHRlbXBsYXRlIDw+IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBwdHIpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuaAppbmRleCAxMGViZjA3
Li5mYzI2Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3Qv
R1JlZlB0ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRy
LmgKQEAgLTIwMSw2ICsyMDEsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEdSZWZQdHI8VD4g
YWRvcHRHUmVmKFQqIHApCiAKIHRlbXBsYXRlIDw+IEdIYXNoVGFibGUqIHJlZkdQdHIoR0hhc2hU
YWJsZSogcHRyKTsKIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdIYXNoVGFibGUqIHB0cik7
Cit0ZW1wbGF0ZSA8PiBHTWFpbkNvbnRleHQqIHJlZkdQdHIoR01haW5Db250ZXh0KiBwdHIpOwor
dGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR01haW5Db250ZXh0KiBwdHIpOwordGVtcGxhdGUg
PD4gR01haW5Mb29wKiByZWZHUHRyKEdNYWluTG9vcCogcHRyKTsKK3RlbXBsYXRlIDw+IHZvaWQg
ZGVyZWZHUHRyKEdNYWluTG9vcCogcHRyKTsKIHRlbXBsYXRlIDw+IEdWYXJpYW50KiByZWZHUHRy
KEdWYXJpYW50KiBwdHIpOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnQqIHB0
cik7CiB0ZW1wbGF0ZSA8PiBHU291cmNlKiByZWZHUHRyKEdTb3VyY2UqIHB0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmgKaW5kZXggY2IzODQyYi4u
ZTI5MjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dU
eXBlZGVmcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlwZWRl
ZnMuaApAQCAtNTEsNiArNTEsOCBAQCB0eXBlZGVmIHN0cnVjdCBfR0ZpbGUgR0ZpbGU7CiB0eXBl
ZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwogdHlwZWRlZiBzdHJ1Y3QgX0dJbnB1
dFN0cmVhbSBHSW5wdXRTdHJlYW07CiB0eXBlZGVmIHN0cnVjdCBfR0xpc3QgR0xpc3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKK3R5cGVkZWYgc3RydWN0IF9H
TWFpbkxvb3AgR01haW5Mb29wOwogdHlwZWRlZiBzdHJ1Y3QgX0dQYXR0ZXJuU3BlYyBHUGF0dGVy
blNwZWM7CiB0eXBlZGVmIHN0cnVjdCBfR1BvbGxhYmxlT3V0cHV0U3RyZWFtIEdQb2xsYWJsZU91
dHB1dFN0cmVhbTsKIHR5cGVkZWYgc3RydWN0IF9HU0xpc3QgR1NMaXN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDM3MTliYjIuLmIxZTg4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wMi0y
NCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS10gQWRkIEdNYWluTG9vcCBhbmQgR01haW5Db250ZXh0IHRvIGJlIGhhbmRsZWQgYnkgR1Jl
ZlB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGVkIHBsYWNlcyB3aGVyZSByYXcgcG9pbnRlcnMgdG8gR01haW5Mb29wIGFuZCBHTWFpbkNvbnRl
eHQKKyAgICAgICAgd2VyZSBiZWluZyB1c2VkLCByZXBsYWNpbmcgdGhlbSB3aXRoIEdSZWZQdHIt
YmFzZWQgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuaDoKKyAgICAgICAgKFJ1
bkxvb3ApOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6bWFpbkxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6UnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjp3
YWtlVXApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZVN5bmNocm9ub3VzTG9hZGVyOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjp+V2ViQ29yZVN5bmNocm9ub3Vz
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlk
RmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OnJ1bik6CisKIDIwMTItMDItMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbR1RLXSBmYXN0L2ZyYW1lcy9mcmFtZS1kZWFkLXJlZ2lvbi5odG1sIGNyYXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKaW5kZXggMWYxOWM4My4uMGRkYWE0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuaApAQCAtMTU3LDggKzE1Nyw4IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKICAgICBHTWFpbkxvb3AqIG1haW5M
b29wKCk7CiBwcml2YXRlOgotICAgIEdNYWluQ29udGV4dCogbV9ydW5Mb29wQ29udGV4dDsKLSAg
ICBHTWFpbkxvb3AqIG1fcnVuTG9vcE1haW47CisgICAgR1JlZlB0cjxHTWFpbkNvbnRleHQ+IG1f
cnVuTG9vcENvbnRleHQ7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IG1fcnVuTG9vcE1haW47CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApp
bmRleCA5MjlhN2I5Li5mYjJkZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUnVuTG9vcEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1
bkxvb3BHdGsuY3BwCkBAIC0yOCwyNyArMjgsMjIgQEAKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAK
ICNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJ1bkxvb3A6OlJ1bkxvb3AoKQogewotICAgIG1fcnVuTG9v
cENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CisgICAgbV9ydW5Mb29wQ29udGV4
dCA9IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOwogICAgIEFTU0VSVChtX3J1
bkxvb3BDb250ZXh0KTsKLSAgICBtX3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1fcnVu
TG9vcENvbnRleHQsIEZBTFNFKTsKKyAgICBtX3J1bkxvb3BNYWluID0gYWRvcHRHUmVmKGdfbWFp
bl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LmdldCgpLCBGQUxTRSkpOwogICAgIEFTU0VSVCht
X3J1bkxvb3BNYWluKTsKIH0KIAogUnVuTG9vcDo6flJ1bkxvb3AoKQogewotICAgIGlmIChtX3J1
bkxvb3BNYWluKSB7Ci0gICAgICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9v
cE1haW4pKQotICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKLSAg
ICAgICAgZ19tYWluX2xvb3BfdW5yZWYobV9ydW5Mb29wTWFpbik7Ci0gICAgfQotCi0gICAgaWYg
KG1fcnVuTG9vcENvbnRleHQpCi0gICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fcnVuTG9v
cENvbnRleHQpOworICAgIGlmIChtX3J1bkxvb3BNYWluICYmIGdfbWFpbl9sb29wX2lzX3J1bm5p
bmcobV9ydW5Mb29wTWFpbi5nZXQoKSkpCisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5M
b29wTWFpbi5nZXQoKSk7CiB9CiAKIHZvaWQgUnVuTG9vcDo6cnVuKCkKQEAgLTU4LDEyICs1Mywx
MiBAQCB2b2lkIFJ1bkxvb3A6OnJ1bigpCiAKIEdNYWluTG9vcCogUnVuTG9vcDo6bWFpbkxvb3Ao
KQogewotICAgIHJldHVybiBtX3J1bkxvb3BNYWluOworICAgIHJldHVybiBtX3J1bkxvb3BNYWlu
LmdldCgpOwogfQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewotICAgIGdfbWFpbl9sb29wX3F1
aXQobV9ydW5Mb29wTWFpbik7CisgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluLmdl
dCgpKTsKIH0KIAogZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3Ap
CkBAIC03Nyw5ICs3Miw5IEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKICAgICBHUmVmUHRyPEdT
b3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKICAgICBnX3Nv
dXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwogICAg
IGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9h
dHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250ZXh0KTsKKyAgICBnX3NvdXJjZV9hdHRh
Y2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKIAotICAgIGdfbWFpbl9j
b250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0KTsKKyAgICBnX21haW5fY29udGV4dF93YWtl
dXAobV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7CiB9CiAKIFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCkBAIC0xMTcsNyArMTEyLDcgQEAgdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQogICAg
IG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nh
c3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7CiAgICAgbV9pc1JlcGVhdGluZyA9IHJl
cGVhdDsKICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVp
bnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZENhbGxiYWNrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2Uu
Z2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7CisgICAgZ19zb3VyY2VfYXR0YWNo
KG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dC5nZXQoKSk7
CiB9CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKaW5kZXggZTY3MTY2MC4uOTJjNjZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5o
PgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoQkxPQikKQEAgLTg2
LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlc3BvbnNlJiBtX3Jlc3BvbnNlOwog
ICAgIFZlY3RvcjxjaGFyPiYgbV9kYXRhOwogICAgIGJvb2wgbV9maW5pc2hlZDsKLSAgICBHTWFp
bkxvb3AqIG1fbWFpbkxvb3A7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+IG1fbWFpbkxvb3A7CiB9
OwogCiBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcihS
ZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rvcjxj
aGFyPiYgZGF0YSkKQEAgLTk1LDEyICs5NiwxMSBAQCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6
OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcihSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyYwog
ICAgICwgbV9kYXRhKGRhdGEpCiAgICAgLCBtX2ZpbmlzaGVkKGZhbHNlKQogewotICAgIG1fbWFp
bkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwgZmFsc2UpOworICAgIG1fbWFpbkxvb3AgPSBhZG9w
dEdSZWYoZ19tYWluX2xvb3BfbmV3KDAsIGZhbHNlKSk7CiB9CiAKIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlcjo6fldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcigpCiB7Ci0gICAgZ19tYWluX2xvb3Bf
dW5yZWYobV9tYWluTG9vcCk7CiB9CiAKIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAog
CiB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSosIGRvdWJsZSkKIHsKLSAgICBnX21haW5fbG9vcF9xdWl0KG1fbWFpbkxvb3ApOwor
ICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9vcC5nZXQoKSk7CiAgICAgbV9maW5pc2hlZCA9
IHRydWU7CiB9CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycgog
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OnJ1bigpCiB7CiAgICAgaWYgKCFtX2Zpbmlz
aGVkKQotICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CisgICAgICAgIGdfbWFp
bl9sb29wX3J1bihtX21haW5Mb29wLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgY2xlYW51cFNv
dXBSZXF1ZXN0T3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiwgYm9vbCBpc0Rlc3Ryb3lpbmcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDk5NDgzNDQuLjkwZmFmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxMi0wMi0yNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS10gQWRkIEdNYWluTG9vcCBhbmQgR01haW5Db250ZXh0IHRvIGJlIGhh
bmRsZWQgYnkgR1JlZlB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzk0OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGVkIHBsYWNlcyB3aGVyZSByYXcgcG9pbnRlcnMgdG8gR01haW5Mb29wIGFu
ZCBHTWFpbkNvbnRleHQKKyAgICAgICAgd2VyZSBiZWluZyB1c2VkLCByZXBsYWNpbmcgdGhlbSB3
aXRoIEdSZWZQdHItYmFzZWQgY29kZS4KKworICAgICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5o
OgorICAgICAgICAoV29ya1F1ZXVlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9ndGsvV29ya1F1ZXVl
R3RrLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6
d29ya1F1ZXVlVGhyZWFkQm9keSk6CisgICAgICAgIChXb3JrUXVldWU6OnJlZ2lzdGVyRXZlbnRT
b3VyY2VIYW5kbGVyKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hPblNvdXJjZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpXZWJQb3B1cE1lbnVQcm94eUd0ayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OnNodXRkb3duUnVuTG9vcCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oOgorICAgICAgICAo
V2ViUG9wdXBNZW51UHJveHlHdGspOgorCiAyMDEyLTAyLTIzICBNYXJpbyBTYW5jaGV6IFByYWRh
ICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXcm9uZyBzaWduYWwgbmFt
ZSBvbiBlbWlzc2lvbiBpbiBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Xb3JrUXVldWUuaAppbmRleCA3YjRhZmY3Li40MTU0NWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Xb3JrUXVldWUuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBRT2JqZWN0OwogY2xhc3Mg
UVRocmVhZDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogdHlwZWRlZiBz
dHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7CiB0eXBlZGVmIHN0cnVjdCBfR01haW5M
b29wIEdNYWluTG9vcDsKIHR5cGVkZWYgZ2Jvb2xlYW4gKCpHU291cmNlRnVuYykgKGdwb2ludGVy
IGRhdGEpOwpAQCAtMTcxLDkgKzE3Miw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE9u
U291cmNlKEdTb3VyY2UqLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiwgR1NvdXJjZUZ1bmMpOwog
CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3dvcmtRdWV1ZVRocmVhZDsKLSAgICBHTWFpbkNvbnRl
eHQqIG1fZXZlbnRDb250ZXh0OworICAgIEdSZWZQdHI8R01haW5Db250ZXh0PiBtX2V2ZW50Q29u
dGV4dDsKICAgICBNdXRleCBtX2V2ZW50TG9vcExvY2s7Ci0gICAgR01haW5Mb29wKiBtX2V2ZW50
TG9vcDsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gbV9ldmVudExvb3A7CiAgICAgTXV0ZXggbV9l
dmVudFNvdXJjZXNMb2NrOwogICAgIGNsYXNzIEV2ZW50U291cmNlOwogICAgIEhhc2hNYXA8aW50
LCBWZWN0b3I8RXZlbnRTb3VyY2UqPiA+IG1fZXZlbnRTb3VyY2VzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcAppbmRleCBmMGMxMWY5Li5hYzgzZjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcApAQCAtMTAz
LDkgKzEwMyw5IEBAIHN0YXRpYyBjb25zdCBzaXplX3Qga1Zpc3VhbFN0dWRpb1RocmVhZE5hbWVM
aW1pdCA9IDMxOwogCiB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNo
YXIqIG5hbWUpCiB7Ci0gICAgbV9ldmVudENvbnRleHQgPSBnX21haW5fY29udGV4dF9uZXcoKTsK
KyAgICBtX2V2ZW50Q29udGV4dCA9IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7CiAg
ICAgQVNTRVJUKG1fZXZlbnRDb250ZXh0KTsKLSAgICBtX2V2ZW50TG9vcCA9IGdfbWFpbl9sb29w
X25ldyhtX2V2ZW50Q29udGV4dCwgRkFMU0UpOworICAgIG1fZXZlbnRMb29wID0gYWRvcHRHUmVm
KGdfbWFpbl9sb29wX25ldyhtX2V2ZW50Q29udGV4dC5nZXQoKSwgRkFMU0UpKTsKICAgICBBU1NF
UlQobV9ldmVudExvb3ApOwogCiAgICAgLy8gVGhpcyBuYW1lIGNhbiBiZSBjb20uYXBwbGUuV2Vi
S2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUuQ29yZUlQQy5SZWNlaXZlUXVldWUuCkBA
IC0xMjksMTcgKzEyOSwxMyBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkK
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9ldmVudExvb3BMb2NrKTsKIAogICAgIGlmIChtX2V2
ZW50TG9vcCkgewotICAgICAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX2V2ZW50TG9v
cCkpCi0gICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fZXZlbnRMb29wKTsKLQotICAgICAg
ICBnX21haW5fbG9vcF91bnJlZihtX2V2ZW50TG9vcCk7Ci0gICAgICAgIG1fZXZlbnRMb29wID0g
MDsKKyAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ldmVudExvb3AuZ2V0KCkp
KQorICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX2V2ZW50TG9vcC5nZXQoKSk7CisgICAg
ICAgIG1fZXZlbnRMb29wLmNsZWFyKCk7CiAgICAgfQogCi0gICAgaWYgKG1fZXZlbnRDb250ZXh0
KSB7Ci0gICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fZXZlbnRDb250ZXh0KTsKLSAgICAg
ICAgbV9ldmVudENvbnRleHQgPSAwOwotICAgIH0KKyAgICBpZiAobV9ldmVudENvbnRleHQpCisg
ICAgICAgIG1fZXZlbnRDb250ZXh0LmNsZWFyKCk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpzdGFy
dFdvcmtRdWV1ZVRocmVhZChXb3JrUXVldWUqIHdvcmtRdWV1ZSkKQEAgLTE0OSw3ICsxNDUsNyBA
QCB2b2lkIFdvcmtRdWV1ZTo6c3RhcnRXb3JrUXVldWVUaHJlYWQoV29ya1F1ZXVlKiB3b3JrUXVl
dWUpCiAKIHZvaWQgV29ya1F1ZXVlOjp3b3JrUXVldWVUaHJlYWRCb2R5KCkKIHsKLSAgICBnX21h
aW5fbG9vcF9ydW4obV9ldmVudExvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihtX2V2ZW50TG9v
cC5nZXQoKSk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpyZWdpc3RlckV2ZW50U291cmNlSGFuZGxl
cihpbnQgZmlsZURlc2NyaXB0b3IsIGludCBjb25kaXRpb24sIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uKQpAQCAtMTc3LDcgKzE3Myw3IEBAIHZvaWQgV29ya1F1ZXVlOjpyZWdpc3Rl
ckV2ZW50U291cmNlSGFuZGxlcihpbnQgZmlsZURlc2NyaXB0b3IsIGludCBjb25kaXRpb24sIGNv
CiAgICAgICAgIG1fZXZlbnRTb3VyY2VzLnNldChmaWxlRGVzY3JpcHRvciwgc291cmNlcyk7CiAg
ICAgfQogCi0gICAgZ19zb3VyY2VfYXR0YWNoKGRpc3BhdGNoU291cmNlLmdldCgpLCBtX2V2ZW50
Q29udGV4dCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKGRpc3BhdGNoU291cmNlLmdldCgpLCBtX2V2
ZW50Q29udGV4dC5nZXQoKSk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjp1bnJlZ2lzdGVyRXZlbnRT
b3VyY2VIYW5kbGVyKGludCBmaWxlRGVzY3JpcHRvcikKQEAgLTIwNiw3ICsyMDIsNyBAQCB2b2lk
IFdvcmtRdWV1ZTo6ZGlzcGF0Y2hPblNvdXJjZShHU291cmNlKiBkaXNwYXRjaFNvdXJjZSwgY29u
c3QgRnVuY3Rpb248dm9pZCgpPgogICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhkaXNwYXRjaFNv
dXJjZSwgc291cmNlQ2FsbGJhY2ssIGV2ZW50U291cmNlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5PigmV29ya1F1ZXVlOjpFdmVudFNv
dXJjZTo6ZGVsZXRlRXZlbnRTb3VyY2UpKTsKIAotICAgIGdfc291cmNlX2F0dGFjaChkaXNwYXRj
aFNvdXJjZSwgbV9ldmVudENvbnRleHQpOworICAgIGdfc291cmNlX2F0dGFjaChkaXNwYXRjaFNv
dXJjZSwgbV9ldmVudENvbnRleHQuZ2V0KCkpOwogfQogCiB2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0
Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCmluZGV4IDUyMWNm
NTMuLmRiOTRkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
UG9wdXBNZW51UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCkBAIC00MSw3ICs0MSw2IEBAIFdlYlBvcHVwTWVudVBy
b3h5R3RrOjpXZWJQb3B1cE1lbnVQcm94eUd0ayhHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBvcHVw
TWVudVByb3h5CiAgICAgOiBXZWJQb3B1cE1lbnVQcm94eShjbGllbnQpCiAgICAgLCBtX3dlYlZp
ZXcod2ViVmlldykKICAgICAsIG1fYWN0aXZlSXRlbSgtMSkKLSAgICAsIG1fcnVuTG9vcCgwKQog
ewogfQogCkBAIC05NiwxNCArOTUsMTMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hv
d1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAg
IC8vIFdlYlBhZ2VQcm94eSBleHBlY3RzIHRoZSBtZW51IHRvIHJ1biBpbiBhIG5lc3RlZCBydW4g
bG9vcCwgc2luY2UgaXQgaW52YWxpZGF0ZXMgdGhlCiAgICAgLy8gbWVudSByaWdodCBhZnRlciBj
YWxsaW5nIFdlYlBvcHVwTWVudVByb3h5OjpzaG93UG9wdXBNZW51KCkuCi0gICAgbV9ydW5Mb29w
ID0gZ19tYWluX2xvb3BfbmV3KDAsIEZBTFNFKTsKKyAgICBtX3J1bkxvb3AgPSBhZG9wdEdSZWYo
Z19tYWluX2xvb3BfbmV3KDAsIEZBTFNFKSk7CiAKICAgICBHREtfVEhSRUFEU19MRUFWRSgpOwot
ICAgIGdfbWFpbl9sb29wX3J1bihtX3J1bkxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihtX3J1
bkxvb3AuZ2V0KCkpOwogICAgIEdES19USFJFQURTX0VOVEVSKCk7CiAKLSAgICBnX21haW5fbG9v
cF91bnJlZihtX3J1bkxvb3ApOwotICAgIG1fcnVuTG9vcCA9IDA7CisgICAgbV9ydW5Mb29wLmNs
ZWFyKCk7CiAKICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QobV9wb3B1cC0+cGxhdGZv
cm1NZW51KCksIHVubWFwSGFuZGxlcik7CiAKQEAgLTEyMCw4ICsxMTgsOCBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBNZW51KCkKIAogdm9pZCBXZWJQb3B1cE1lbnVQcm94
eUd0azo6c2h1dGRvd25SdW5Mb29wKCkKIHsKLSAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmlu
ZyhtX3J1bkxvb3ApKQotICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcCk7CisgICAg
aWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wLmdldCgpKSkKKyAgICAgICAgZ19t
YWluX2xvb3BfcXVpdChtX3J1bkxvb3AuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBvcHVwTWVudVBy
b3h5R3RrOjptZW51SXRlbUFjdGl2YXRlZChHdGtBY3Rpb24qIGFjdGlvbiwgV2ViUG9wdXBNZW51
UHJveHlHdGsqIHBvcHVwTWVudSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRleCA5Mzk5ZWMxLi40YjMzNWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5o
CkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0d0a1BvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dN
YWluTG9vcCBHTWFpbkxvb3A7CiAKQEAgLTUzLDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBHdGtX
aWRnZXQqIG1fd2ViVmlldzsKICAgICBPd25QdHI8V2ViQ29yZTo6R3RrUG9wdXBNZW51PiBtX3Bv
cHVwOwogICAgIGludCBtX2FjdGl2ZUl0ZW07Ci0gICAgR01haW5Mb29wKiBtX3J1bkxvb3A7Cisg
ICAgR1JlZlB0cjxHTWFpbkxvb3A+IG1fcnVuTG9vcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAotLSAKMS43LjcuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128980</attachid>
            <date>2012-02-27 01:26:38 -0800</date>
            <delta_ts>2012-02-28 06:30:33 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-GTK-Add-GMainLoop-and-GMainContext-to-be-handled-by-.patch</filename>
            <type>text/plain</type>
            <size>19169</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA0YmY3OTBlMjJjZTM0YmIxNzllZDliYTI2YTFjNjYzNTZkYjY2MGE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBNb24sIDI3IEZlYiAyMDEyIDEwOjExOjAxICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gW0dUS10gQWRkIEdNYWluTG9vcCBhbmQgR01haW5Db250ZXh0IHRvIGJlIGhhbmRsZWQgYnkK
IEdSZWZQdHIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDk2CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9KYXZhU2NyaXB0Q29yZToKCkhhbmRs
ZSBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dCBpbiBHUmVmUHRyLCBieSBjYWxsaW5nCmdfbWFp
bl9sb29wXyh1bilyZWYgYW5kIGdfbWFpbl9jb250ZXh0Xyh1bilyZWYgaW4gdGhlCmltcGxlbWVu
dGF0aW9uIG9mIHRoZSByZWZHUHRyIGFuZCBkZXJlZkdQdHIgdGVtcGxhdGUgZnVuY3Rpb25zLgoK
KiB3dGYvZ29iamVjdC9HUmVmUHRyLmNwcDoKKFdURjo6cmVmR1B0cik6CihXVEYpOgooV1RGOjpk
ZXJlZkdQdHIpOgoqIHd0Zi9nb2JqZWN0L0dSZWZQdHIuaDoKKFdURik6Ciogd3RmL2dvYmplY3Qv
R1R5cGVkZWZzLmg6CgpTb3VyY2UvV2ViQ29yZToKClVwZGF0ZWQgcGxhY2VzIHdoZXJlIHJhdyBw
b2ludGVycyB0byBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dAp3ZXJlIGJlaW5nIHVzZWQsIHJl
cGxhY2luZyB0aGVtIHdpdGggR1JlZlB0ci1iYXNlZCBjb2RlLgoKKiBwbGF0Zm9ybS9SdW5Mb29w
Lmg6CihSdW5Mb29wKToKKiBwbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHA6CihXZWJDb3JlOjpS
dW5Mb29wOjpSdW5Mb29wKToKKFdlYkNvcmU6OlJ1bkxvb3A6On5SdW5Mb29wKToKKFdlYkNvcmU6
OlJ1bkxvb3A6Om1haW5Mb29wKToKKFdlYkNvcmU6OlJ1bkxvb3A6OnN0b3ApOgooV2ViQ29yZTo6
UnVuTG9vcDo6d2FrZVVwKToKKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgoq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgooV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyKToKKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6V2Vi
Q29yZVN5bmNocm9ub3VzTG9hZGVyKToKKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6fldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcik6CihXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgooV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3Vz
TG9hZGVyOjpydW4pOgoKU291cmNlL1dlYktpdDI6CgpVcGRhdGVkIHBsYWNlcyB3aGVyZSByYXcg
cG9pbnRlcnMgdG8gR01haW5Mb29wIGFuZCBHTWFpbkNvbnRleHQKd2VyZSBiZWluZyB1c2VkLCBy
ZXBsYWNpbmcgdGhlbSB3aXRoIEdSZWZQdHItYmFzZWQgY29kZS4KCiogUGxhdGZvcm0vV29ya1F1
ZXVlLmg6CihXb3JrUXVldWUpOgoqIFBsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwOgooV29y
a1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgooV29ya1F1ZXVlOjpwbGF0Zm9ybUludmFsaWRh
dGUpOgooV29ya1F1ZXVlOjp3b3JrUXVldWVUaHJlYWRCb2R5KToKKFdvcmtRdWV1ZTo6cmVnaXN0
ZXJFdmVudFNvdXJjZUhhbmRsZXIpOgooV29ya1F1ZXVlOjpkaXNwYXRjaE9uU291cmNlKToKKiBV
SVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcDoKKFdlYktpdDo6V2ViUG9wdXBN
ZW51UHJveHlHdGs6OldlYlBvcHVwTWVudVByb3h5R3RrKToKKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlHdGs6OnNob3dQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6
c2h1dGRvd25SdW5Mb29wKToKKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6
CihXZWJQb3B1cE1lbnVQcm94eUd0ayk6Ci0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysrCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5jcHAgICAgICB8ICAgMjYgKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmgg
ICAgICAgIHwgICAgNCArKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlw
ZWRlZnMuaCAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjYgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuaCAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwICAgICAgICAgfCAgIDI0ICsrKysr
KystLS0tLS0tLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAgICB8ICAgMTAgKysrKy0tLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCAgICAgICAgICAgICAgICB8ICAgIDUgKystCiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCAgICAgICB8ICAgMjMgKysr
KysrKy0tLS0tLS0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJv
eHlHdGsuY3BwIHwgICAxMiArKysrLS0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
UG9wdXBNZW51UHJveHlHdGsuaCAgIHwgICAgMyArLQogMTMgZmlsZXMgY2hhbmdlZCwgMTM4IGlu
c2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4
IGJkM2NjODIuLjU4YzRmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTAyLTI3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLXSBBZGQgR01haW5Mb29wIGFuZCBHTWFpbkNvbnRleHQgdG8gYmUg
aGFuZGxlZCBieSBHUmVmUHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03OTQ5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEhhbmRsZSBHTWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dCBpbiBHUmVmUHRyLCBi
eSBjYWxsaW5nCisgICAgICAgIGdfbWFpbl9sb29wXyh1bilyZWYgYW5kIGdfbWFpbl9jb250ZXh0
Xyh1bilyZWYgaW4gdGhlCisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSByZWZHUHRyIGFu
ZCBkZXJlZkdQdHIgdGVtcGxhdGUgZnVuY3Rpb25zLgorCisgICAgICAgICogd3RmL2dvYmplY3Qv
R1JlZlB0ci5jcHA6CisgICAgICAgIChXVEY6OnJlZkdQdHIpOgorICAgICAgICAoV1RGKToKKyAg
ICAgICAgKFdURjo6ZGVyZWZHUHRyKToKKyAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmg6
CisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oOgorCiAy
MDEyLTAyLTI2ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIE1vdmUgQ2hyb21lQ2xpZW50OjpzaG93Q29udGV4dE1lbnUoKSB0byBDb250ZXh0TWVudUNs
aWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQ
dHIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwCmlu
ZGV4IDFjZDIyYzUuLjMwZGYyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dv
YmplY3QvR1JlZlB0ci5jcHAKQEAgLTM3LDYgKzM3LDMyIEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVy
ZWZHUHRyKEdIYXNoVGFibGUqIHB0cikKICAgICBnX2hhc2hfdGFibGVfdW5yZWYocHRyKTsKIH0K
IAordGVtcGxhdGUgPD4gR01haW5Db250ZXh0KiByZWZHUHRyKEdNYWluQ29udGV4dCogcHRyKQor
eworICAgIGlmIChwdHIpCisgICAgICAgIGdfbWFpbl9jb250ZXh0X3JlZihwdHIpOworICAgIHJl
dHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdNYWluQ29udGV4dCog
cHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKHB0cik7
Cit9CisKK3RlbXBsYXRlIDw+IEdNYWluTG9vcCogcmVmR1B0cihHTWFpbkxvb3AqIHB0cikKK3sK
KyAgICBpZiAocHRyKQorICAgICAgICBnX21haW5fbG9vcF9yZWYocHRyKTsKKyAgICByZXR1cm4g
cHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHTWFpbkxvb3AqIHB0cikKK3sK
KyAgICBpZiAocHRyKQorICAgICAgICBnX21haW5fbG9vcF91bnJlZihwdHIpOworfQorCiAjaWYg
R0xJQl9DSEVDS19WRVJTSU9OKDIsIDI0LCAwKQogdGVtcGxhdGUgPD4gR1ZhcmlhbnQqIHJlZkdQ
dHIoR1ZhcmlhbnQqIHB0cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3Qv
R1JlZlB0ci5oCmluZGV4IDEwZWJmMDcuLmZjMjZjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuaApAQCAtMjAxLDYgKzIwMSwxMCBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gR1JlZlB0cjxUPiBhZG9wdEdSZWYoVCogcCkKIAogdGVtcGxhdGUgPD4gR0hh
c2hUYWJsZSogcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJl
ZkdQdHIoR0hhc2hUYWJsZSogcHRyKTsKK3RlbXBsYXRlIDw+IEdNYWluQ29udGV4dCogcmVmR1B0
cihHTWFpbkNvbnRleHQqIHB0cik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHTWFpbkNv
bnRleHQqIHB0cik7Cit0ZW1wbGF0ZSA8PiBHTWFpbkxvb3AqIHJlZkdQdHIoR01haW5Mb29wKiBw
dHIpOwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR01haW5Mb29wKiBwdHIpOwogdGVtcGxh
dGUgPD4gR1ZhcmlhbnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7CiB0ZW1wbGF0ZSA8PiB2b2lk
IGRlcmVmR1B0cihHVmFyaWFudCogcHRyKTsKIHRlbXBsYXRlIDw+IEdTb3VyY2UqIHJlZkdQdHIo
R1NvdXJjZSogcHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29i
amVjdC9HVHlwZWRlZnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlw
ZWRlZnMuaAppbmRleCBjYjM4NDJiLi5lMjkyNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCkBAIC01MSw2ICs1MSw4IEBAIHR5cGVkZWYgc3Ry
dWN0IF9HRmlsZSBHRmlsZTsKIHR5cGVkZWYgc3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7
CiB0eXBlZGVmIHN0cnVjdCBfR0lucHV0U3RyZWFtIEdJbnB1dFN0cmVhbTsKIHR5cGVkZWYgc3Ry
dWN0IF9HTGlzdCBHTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250
ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7CiB0eXBlZGVmIHN0cnVj
dCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKIHR5cGVkZWYgc3RydWN0IF9HUG9sbGFibGVP
dXRwdXRTdHJlYW0gR1BvbGxhYmxlT3V0cHV0U3RyZWFtOwogdHlwZWRlZiBzdHJ1Y3QgX0dTTGlz
dCBHU0xpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU1ZWMyMS4uMmFkNWE4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgR01haW5Mb29wIGFuZCBHTWFpbkNvbnRl
eHQgdG8gYmUgaGFuZGxlZCBieSBHUmVmUHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgcGxhY2VzIHdoZXJlIHJhdyBwb2ludGVycyB0byBH
TWFpbkxvb3AgYW5kIEdNYWluQ29udGV4dAorICAgICAgICB3ZXJlIGJlaW5nIHVzZWQsIHJlcGxh
Y2luZyB0aGVtIHdpdGggR1JlZlB0ci1iYXNlZCBjb2RlLgorCisgICAgICAgICogcGxhdGZvcm0v
UnVuTG9vcC5oOgorICAgICAgICAoUnVuTG9vcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1
bkxvb3BHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjp+UnVuTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5M
b29wOjptYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpzdG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6Ondha2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OldlYkNvcmVTeW5j
aHJvbm91c0xvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6On5XZWJDb3JlU3luY2hyb25vdXNMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6cnVuKToKKwogMjAxMi0wMi0yNyAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBj
b3VudGVyIGdyYXBocyBzaG91bGQgcmVzaXplIGFmdGVyIGNvbnNvbGUgc2hvd2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUnVuTG9vcC5oCmluZGV4IDFmMTljODMuLjBkZGFhNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW5Mb29wLmgKQEAgLTE1Nyw4ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGdi
b29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CiAgICAgR01haW5Mb29wKiBtYWluTG9vcCgpOwog
cHJpdmF0ZToKLSAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9vcENvbnRleHQ7Ci0gICAgR01haW5M
b29wKiBtX3J1bkxvb3BNYWluOworICAgIEdSZWZQdHI8R01haW5Db250ZXh0PiBtX3J1bkxvb3BD
b250ZXh0OworICAgIEdSZWZQdHI8R01haW5Mb29wPiBtX3J1bkxvb3BNYWluOwogI2VuZGlmCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKaW5kZXggOTI5
YTdiOS4uZTNiZWEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1
bkxvb3BHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3Rr
LmNwcApAQCAtMjgsMjcgKzI4LDIzIEBACiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogCiAjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBSdW5Mb29wOjpSdW5Mb29wKCkKIHsKKyAgICAvLyBnX21haW5fY29udGV4
dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEgcmVmZXJlbmNlLgogICAgIG1fcnVuTG9v
cENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CiAgICAgQVNTRVJUKG1fcnVuTG9v
cENvbnRleHQpOwotICAgIG1fcnVuTG9vcE1haW4gPSBnX21haW5fbG9vcF9uZXcobV9ydW5Mb29w
Q29udGV4dCwgRkFMU0UpOworICAgIG1fcnVuTG9vcE1haW4gPSBhZG9wdEdSZWYoZ19tYWluX2xv
b3BfbmV3KG1fcnVuTG9vcENvbnRleHQuZ2V0KCksIEZBTFNFKSk7CiAgICAgQVNTRVJUKG1fcnVu
TG9vcE1haW4pOwogfQogCiBSdW5Mb29wOjp+UnVuTG9vcCgpCiB7Ci0gICAgaWYgKG1fcnVuTG9v
cE1haW4pIHsKLSAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFp
bikpCi0gICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOwotICAgICAg
ICBnX21haW5fbG9vcF91bnJlZihtX3J1bkxvb3BNYWluKTsKLSAgICB9Ci0KLSAgICBpZiAobV9y
dW5Mb29wQ29udGV4dCkKLSAgICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9ydW5Mb29wQ29u
dGV4dCk7CisgICAgaWYgKG1fcnVuTG9vcE1haW4gJiYgZ19tYWluX2xvb3BfaXNfcnVubmluZyht
X3J1bkxvb3BNYWluLmdldCgpKSkKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BN
YWluLmdldCgpKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpydW4oKQpAQCAtNTgsMTIgKzU0LDEyIEBA
IHZvaWQgUnVuTG9vcDo6cnVuKCkKIAogR01haW5Mb29wKiBSdW5Mb29wOjptYWluTG9vcCgpCiB7
Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW47CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW4uZ2V0
KCk7CiB9CiAKIHZvaWQgUnVuTG9vcDo6c3RvcCgpCiB7Ci0gICAgZ19tYWluX2xvb3BfcXVpdCht
X3J1bkxvb3BNYWluKTsKKyAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4uZ2V0KCkp
OwogfQogCiBnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKQEAg
LTc3LDkgKzczLDkgQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogICAgIEdSZWZQdHI8R1NvdXJj
ZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOwogICAgIGdfc291cmNl
X3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CiAgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNl
RnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwotICAgIGdfc291cmNlX2F0dGFj
aChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOworICAgIGdfc291cmNlX2F0dGFjaChz
b3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwogCi0gICAgZ19tYWluX2NvbnRl
eHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQpOworICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cCht
X3J1bkxvb3BDb250ZXh0LmdldCgpKTsKIH0KIAogUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJh
c2UoUnVuTG9vcCogcnVuTG9vcCkKQEAgLTExNyw3ICsxMTMsNyBAQCB2b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAgICAgbV90
aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxn
dWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKICAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0
OwogICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2Fs
bGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQo
KSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0KTsKKyAgICBnX3NvdXJjZV9hdHRhY2gobV90
aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKIH0K
IAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApp
bmRleCBlNjcxNjYwLi45MmM2NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNTYsNiAr
NTYsNyBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAj
aW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShCTE9CKQpAQCAtODYsNyAr
ODcsNyBAQCBwcml2YXRlOgogICAgIFJlc291cmNlUmVzcG9uc2UmIG1fcmVzcG9uc2U7CiAgICAg
VmVjdG9yPGNoYXI+JiBtX2RhdGE7CiAgICAgYm9vbCBtX2ZpbmlzaGVkOwotICAgIEdNYWluTG9v
cCogbV9tYWluTG9vcDsKKyAgICBHUmVmUHRyPEdNYWluTG9vcD4gbV9tYWluTG9vcDsKIH07CiAK
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyKFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiBkYXRhKQpAQCAtOTUsMTIgKzk2LDExIEBAIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6V2Vi
Q29yZVN5bmNocm9ub3VzTG9hZGVyKFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjCiAgICAg
LCBtX2RhdGEoZGF0YSkKICAgICAsIG1fZmluaXNoZWQoZmFsc2UpCiB7Ci0gICAgbV9tYWluTG9v
cCA9IGdfbWFpbl9sb29wX25ldygwLCBmYWxzZSk7CisgICAgbV9tYWluTG9vcCA9IGFkb3B0R1Jl
ZihnX21haW5fbG9vcF9uZXcoMCwgZmFsc2UpKTsKIH0KIAogV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyOjp+V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyKCkKIHsKLSAgICBnX21haW5fbG9vcF91bnJl
ZihtX21haW5Mb29wKTsKIH0KIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAKIHZv
aWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKiwgZG91YmxlKQogewotICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9vcCk7CisgICAg
Z19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wLmdldCgpKTsKICAgICBtX2ZpbmlzaGVkID0gdHJ1
ZTsKIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlRXJyCiB2b2lk
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6cnVuKCkKIHsKICAgICBpZiAoIW1fZmluaXNoZWQp
Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAgICAgICAgZ19tYWluX2xv
b3BfcnVuKG1fbWFpbkxvb3AuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBjbGVhbnVwU291cFJl
cXVlc3RPcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqLCBib29sIGlzRGVzdHJveWluZyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggZjE2M2QyNy4uNjVjOTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDEyLTAyLTI3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR1RLXSBBZGQgR01haW5Mb29wIGFuZCBHTWFpbkNvbnRleHQgdG8gYmUgaGFuZGxl
ZCBieSBHUmVmUHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTQ5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZWQgcGxhY2VzIHdoZXJlIHJhdyBwb2ludGVycyB0byBHTWFpbkxvb3AgYW5kIEdN
YWluQ29udGV4dAorICAgICAgICB3ZXJlIGJlaW5nIHVzZWQsIHJlcGxhY2luZyB0aGVtIHdpdGgg
R1JlZlB0ci1iYXNlZCBjb2RlLgorCisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6Cisg
ICAgICAgIChXb3JrUXVldWUpOgorICAgICAgICAqIFBsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsu
Y3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAo
V29ya1F1ZXVlOjpwbGF0Zm9ybUludmFsaWRhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjp3b3Jr
UXVldWVUaHJlYWRCb2R5KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cmVnaXN0ZXJFdmVudFNvdXJj
ZUhhbmRsZXIpOgorICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaE9uU291cmNlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OldlYlBvcHVwTWVudVByb3h5R3RrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6c2h1dGRvd25SdW5Mb29wKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6CisgICAgICAgIChXZWJQ
b3B1cE1lbnVQcm94eUd0ayk6CisKIDIwMTItMDItMjYgIFlvdW5nVGFlY2sgU29uZyAgPHlvdW5n
dGFlY2suc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFkZCBJbmplY3Rl
ZEJ1bmRsZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtR
dWV1ZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKaW5kZXggN2I0YWZm
Ny4uNDE1NDViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKQEAgLTQ4LDYgKzQ4
LDcgQEAgY2xhc3MgUU9iamVjdDsKIGNsYXNzIFFUaHJlYWQ7CiAjZWxpZiBQTEFURk9STShHVEsp
CiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KIHR5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250
ZXh0OwogdHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7CiB0eXBlZGVmIGdib29s
ZWFuICgqR1NvdXJjZUZ1bmMpIChncG9pbnRlciBkYXRhKTsKQEAgLTE3MSw5ICsxNzIsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPblNvdXJjZShHU291cmNlKiwgY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYsIEdTb3VyY2VGdW5jKTsKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV93b3Jr
UXVldWVUaHJlYWQ7Ci0gICAgR01haW5Db250ZXh0KiBtX2V2ZW50Q29udGV4dDsKKyAgICBHUmVm
UHRyPEdNYWluQ29udGV4dD4gbV9ldmVudENvbnRleHQ7CiAgICAgTXV0ZXggbV9ldmVudExvb3BM
b2NrOwotICAgIEdNYWluTG9vcCogbV9ldmVudExvb3A7CisgICAgR1JlZlB0cjxHTWFpbkxvb3A+
IG1fZXZlbnRMb29wOwogICAgIE11dGV4IG1fZXZlbnRTb3VyY2VzTG9jazsKICAgICBjbGFzcyBF
dmVudFNvdXJjZTsKICAgICBIYXNoTWFwPGludCwgVmVjdG9yPEV2ZW50U291cmNlKj4gPiBtX2V2
ZW50U291cmNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3Jr
UXVldWVHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5j
cHAKaW5kZXggZjBjMTFmOS4uMWRmYWI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Z3RrL1dvcmtRdWV1ZUd0ay5jcHAKQEAgLTEwMyw5ICsxMDMsOSBAQCBzdGF0aWMgY29uc3Qgc2l6
ZV90IGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQgPSAzMTsKIAogdm9pZCBXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lKQogewotICAgIG1fZXZlbnRDb250
ZXh0ID0gZ19tYWluX2NvbnRleHRfbmV3KCk7CisgICAgbV9ldmVudENvbnRleHQgPSBhZG9wdEdS
ZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOwogICAgIEFTU0VSVChtX2V2ZW50Q29udGV4dCk7Ci0g
ICAgbV9ldmVudExvb3AgPSBnX21haW5fbG9vcF9uZXcobV9ldmVudENvbnRleHQsIEZBTFNFKTsK
KyAgICBtX2V2ZW50TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9vcF9uZXcobV9ldmVudENvbnRl
eHQuZ2V0KCksIEZBTFNFKSk7CiAgICAgQVNTRVJUKG1fZXZlbnRMb29wKTsKIAogICAgIC8vIFRo
aXMgbmFtZSBjYW4gYmUgY29tLmFwcGxlLldlYktpdC5Qcm9jZXNzTGF1bmNoZXIgb3IgY29tLmFw
cGxlLkNvcmVJUEMuUmVjZWl2ZVF1ZXVlLgpAQCAtMTI5LDE3ICsxMjksMTIgQEAgdm9pZCBXb3Jr
UXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXZl
bnRMb29wTG9jayk7CiAKICAgICBpZiAobV9ldmVudExvb3ApIHsKLSAgICAgICAgaWYgKGdfbWFp
bl9sb29wX2lzX3J1bm5pbmcobV9ldmVudExvb3ApKQotICAgICAgICAgICAgZ19tYWluX2xvb3Bf
cXVpdChtX2V2ZW50TG9vcCk7Ci0KLSAgICAgICAgZ19tYWluX2xvb3BfdW5yZWYobV9ldmVudExv
b3ApOwotICAgICAgICBtX2V2ZW50TG9vcCA9IDA7CisgICAgICAgIGlmIChnX21haW5fbG9vcF9p
c19ydW5uaW5nKG1fZXZlbnRMb29wLmdldCgpKSkKKyAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1
aXQobV9ldmVudExvb3AuZ2V0KCkpOworICAgICAgICBtX2V2ZW50TG9vcC5jbGVhcigpOwogICAg
IH0KIAotICAgIGlmIChtX2V2ZW50Q29udGV4dCkgewotICAgICAgICBnX21haW5fY29udGV4dF91
bnJlZihtX2V2ZW50Q29udGV4dCk7Ci0gICAgICAgIG1fZXZlbnRDb250ZXh0ID0gMDsKLSAgICB9
CisgICAgbV9ldmVudENvbnRleHQuY2xlYXIoKTsKIH0KIAogdm9pZCBXb3JrUXVldWU6OnN0YXJ0
V29ya1F1ZXVlVGhyZWFkKFdvcmtRdWV1ZSogd29ya1F1ZXVlKQpAQCAtMTQ5LDcgKzE0NCw3IEBA
IHZvaWQgV29ya1F1ZXVlOjpzdGFydFdvcmtRdWV1ZVRocmVhZChXb3JrUXVldWUqIHdvcmtRdWV1
ZSkKIAogdm9pZCBXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZEJvZHkoKQogewotICAgIGdfbWFp
bl9sb29wX3J1bihtX2V2ZW50TG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKG1fZXZlbnRMb29w
LmdldCgpKTsKIH0KIAogdm9pZCBXb3JrUXVldWU6OnJlZ2lzdGVyRXZlbnRTb3VyY2VIYW5kbGVy
KGludCBmaWxlRGVzY3JpcHRvciwgaW50IGNvbmRpdGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCkBAIC0xNzcsNyArMTcyLDcgQEAgdm9pZCBXb3JrUXVldWU6OnJlZ2lzdGVy
RXZlbnRTb3VyY2VIYW5kbGVyKGludCBmaWxlRGVzY3JpcHRvciwgaW50IGNvbmRpdGlvbiwgY28K
ICAgICAgICAgbV9ldmVudFNvdXJjZXMuc2V0KGZpbGVEZXNjcmlwdG9yLCBzb3VyY2VzKTsKICAg
ICB9CiAKLSAgICBnX3NvdXJjZV9hdHRhY2goZGlzcGF0Y2hTb3VyY2UuZ2V0KCksIG1fZXZlbnRD
b250ZXh0KTsKKyAgICBnX3NvdXJjZV9hdHRhY2goZGlzcGF0Y2hTb3VyY2UuZ2V0KCksIG1fZXZl
bnRDb250ZXh0LmdldCgpKTsKIH0KIAogdm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJFdmVudFNv
dXJjZUhhbmRsZXIoaW50IGZpbGVEZXNjcmlwdG9yKQpAQCAtMjA2LDcgKzIwMSw3IEBAIHZvaWQg
V29ya1F1ZXVlOjpkaXNwYXRjaE9uU291cmNlKEdTb3VyY2UqIGRpc3BhdGNoU291cmNlLCBjb25z
dCBGdW5jdGlvbjx2b2lkKCk+CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKGRpc3BhdGNoU291
cmNlLCBzb3VyY2VDYWxsYmFjaywgZXZlbnRTb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KCZXb3JrUXVldWU6OkV2ZW50U291
cmNlOjpkZWxldGVFdmVudFNvdXJjZSkpOwogCi0gICAgZ19zb3VyY2VfYXR0YWNoKGRpc3BhdGNo
U291cmNlLCBtX2V2ZW50Q29udGV4dCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKGRpc3BhdGNoU291
cmNlLCBtX2V2ZW50Q29udGV4dC5nZXQoKSk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggNTIxY2Y1
My4uZGI5NGQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQ
b3B1cE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgV2ViUG9wdXBNZW51UHJv
eHlHdGs6OldlYlBvcHVwTWVudVByb3h5R3RrKEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBN
ZW51UHJveHkKICAgICA6IFdlYlBvcHVwTWVudVByb3h5KGNsaWVudCkKICAgICAsIG1fd2ViVmll
dyh3ZWJWaWV3KQogICAgICwgbV9hY3RpdmVJdGVtKC0xKQotICAgICwgbV9ydW5Mb29wKDApCiB7
CiB9CiAKQEAgLTk2LDE0ICs5NSwxMyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93
UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAg
Ly8gV2ViUGFnZVByb3h5IGV4cGVjdHMgdGhlIG1lbnUgdG8gcnVuIGluIGEgbmVzdGVkIHJ1biBs
b29wLCBzaW5jZSBpdCBpbnZhbGlkYXRlcyB0aGUKICAgICAvLyBtZW51IHJpZ2h0IGFmdGVyIGNh
bGxpbmcgV2ViUG9wdXBNZW51UHJveHk6OnNob3dQb3B1cE1lbnUoKS4KLSAgICBtX3J1bkxvb3Ag
PSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOworICAgIG1fcnVuTG9vcCA9IGFkb3B0R1JlZihn
X21haW5fbG9vcF9uZXcoMCwgRkFMU0UpKTsKIAogICAgIEdES19USFJFQURTX0xFQVZFKCk7Ci0g
ICAgZ19tYWluX2xvb3BfcnVuKG1fcnVuTG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKG1fcnVu
TG9vcC5nZXQoKSk7CiAgICAgR0RLX1RIUkVBRFNfRU5URVIoKTsKIAotICAgIGdfbWFpbl9sb29w
X3VucmVmKG1fcnVuTG9vcCk7Ci0gICAgbV9ydW5Mb29wID0gMDsKKyAgICBtX3J1bkxvb3AuY2xl
YXIoKTsKIAogICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChtX3BvcHVwLT5wbGF0Zm9y
bU1lbnUoKSwgdW5tYXBIYW5kbGVyKTsKIApAQCAtMTIwLDggKzExOCw4IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlHdGs6OmhpZGVQb3B1cE1lbnUoKQogCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5
R3RrOjpzaHV0ZG93blJ1bkxvb3AoKQogewotICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5n
KG1fcnVuTG9vcCkpCi0gICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wKTsKKyAgICBp
ZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3AuZ2V0KCkpKQorICAgICAgICBnX21h
aW5fbG9vcF9xdWl0KG1fcnVuTG9vcC5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlHdGs6Om1lbnVJdGVtQWN0aXZhdGVkKEd0a0FjdGlvbiogYWN0aW9uLCBXZWJQb3B1cE1lbnVQ
cm94eUd0ayogcG9wdXBNZW51KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCmluZGV4IDkzOTllYzEuLjRiMzM1YmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvR3RrUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfR01h
aW5Mb29wIEdNYWluTG9vcDsKIApAQCAtNTMsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIEd0a1dp
ZGdldCogbV93ZWJWaWV3OwogICAgIE93blB0cjxXZWJDb3JlOjpHdGtQb3B1cE1lbnU+IG1fcG9w
dXA7CiAgICAgaW50IG1fYWN0aXZlSXRlbTsKLSAgICBHTWFpbkxvb3AqIG1fcnVuTG9vcDsKKyAg
ICBHUmVmUHRyPEdNYWluTG9vcD4gbV9ydW5Mb29wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0tIAoxLjcuNy41Cgo=
</data>
<flag name="review"
          id="131508"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="131861"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>